diff --git a/.eslintignore b/.eslintignore new file mode 100755 index 0000000..8e610d1 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,16 @@ +assets/fonts +coverage +.nyc_output +node_modules/ +.npm +.eslintcache +.env +.cache +.next +dist +dist-pkg +.DS_Store +dynamic-importer.js +ksconfig.json +shell/utils/dynamic-importer.js +shell/assets/fonts diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100755 index 0000000..3e3c07d --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,173 @@ +module.exports = { + root: true, + env: { + browser: true, + node: true + }, + globals: { NodeJS: true, Timer: true }, + extends: [ + 'standard', + 'eslint:recommended', + '@nuxtjs/eslint-config-typescript', + 'plugin:cypress/recommended' + ], + // add your custom rules here + rules: { + 'dot-notation': 'off', + 'generator-star-spacing': 'off', + 'guard-for-in': 'off', + 'linebreak-style': 'off', + 'new-cap': 'off', + 'no-empty': 'off', + 'no-extra-boolean-cast': 'off', + 'no-new': 'off', + 'no-plusplus': 'off', + 'no-useless-escape': 'off', + 'nuxt/no-cjs-in-config': 'off', + 'semi-spacing': 'off', + 'space-in-parens': 'off', + strict: 'off', + 'unicorn/no-new-buffer': 'off', + 'vue/html-self-closing': 'off', + 'vue/no-unused-components': 'warn', + 'vue/no-v-html': 'error', + 'wrap-iife': 'off', + + 'array-bracket-spacing': 'warn', + 'arrow-parens': 'warn', + 'arrow-spacing': ['warn', { before: true, after: true }], + 'block-spacing': ['warn', 'always'], + 'brace-style': ['warn', '1tbs'], + 'comma-dangle': ['warn', 'only-multiline'], + 'comma-spacing': 'warn', + curly: 'warn', + eqeqeq: 'warn', + 'func-call-spacing': ['warn', 'never'], + 'implicit-arrow-linebreak': 'warn', + indent: ['warn', 2], + 'keyword-spacing': 'warn', + 'lines-between-class-members': ['warn', 'always', { exceptAfterSingleLine: true }], + 'multiline-ternary': ['warn', 'never'], + 'newline-per-chained-call': ['warn', { ignoreChainWithDepth: 4 }], + 'no-caller': 'warn', + 'no-cond-assign': ['warn', 'except-parens'], + 'no-console': 'warn', + 'no-debugger': 'warn', + 'no-eq-null': 'warn', + 'no-eval': 'warn', + 'no-trailing-spaces': 'warn', + 'no-undef': 'warn', + 'no-unused-vars': 'warn', + 'no-whitespace-before-property': 'warn', + 'object-curly-spacing': ['warn', 'always'], + 'object-property-newline': 'warn', + 'object-shorthand': 'warn', + 'padded-blocks': ['warn', 'never'], + 'prefer-arrow-callback': 'warn', + 'prefer-template': 'warn', + 'quote-props': 'warn', + 'rest-spread-spacing': 'warn', + semi: ['warn', 'always'], + 'space-before-function-paren': ['warn', 'never'], + 'space-infix-ops': 'warn', + 'spaced-comment': 'warn', + 'switch-colon-spacing': 'warn', + 'template-curly-spacing': ['warn', 'always'], + 'yield-star-spacing': ['warn', 'both'], + + 'key-spacing': ['warn', { + align: { + beforeColon: false, + afterColon: true, + on: 'value', + mode: 'minimum' + }, + multiLine: { + beforeColon: false, + afterColon: true + }, + }], + + 'object-curly-newline': ['warn', { + ObjectExpression: { + multiline: true, + minProperties: 3 + }, + ObjectPattern: { + multiline: true, + minProperties: 4 + }, + ImportDeclaration: { + multiline: true, + minProperties: 5 + }, + ExportDeclaration: { + multiline: true, + minProperties: 3 + } + }], + + 'padding-line-between-statements': [ + 'warn', + { + blankLine: 'always', + prev: '*', + next: 'return', + }, + { + blankLine: 'always', + prev: 'function', + next: 'function', + }, + // This configuration would require blank lines after every sequence of variable declarations + { + blankLine: 'always', + prev: ['const', 'let', 'var'], + next: '*' + }, + { + blankLine: 'any', + prev: ['const', 'let', 'var'], + next: ['const', 'let', 'var'] + } + ], + + quotes: [ + 'warn', + 'single', + { + avoidEscape: true, + allowTemplateLiterals: true + }, + ], + + 'space-unary-ops': [ + 'warn', + { + words: true, + nonwords: false, + } + ], + + // FIXME: The following is disabled due to new linter and old JS code. These should all be enabled and underlying issues fixed + 'vue/order-in-components': 'off', + 'vue/no-lone-template': 'off', + 'vue/v-slot-style': 'off', + 'vue/component-tags-order': 'off', + 'vue/no-mutating-props': 'off', + '@typescript-eslint/no-unused-vars': 'off', + 'array-callback-return': 'off', + }, + overrides: [ + { + files: ['*.js'], + rules: { + // FIXME: The following is disabled due to new linter and old JS code. These should all be enabled and underlying issues fixed + 'prefer-regex-literals': 'off', + 'vue/component-definition-name-casing': 'off', + 'no-unreachable-loop': 'off', + 'computed-property-spacing': 'off', + } + } + ] +}; diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..7a98cd3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,70 @@ +# compiled output +/dist +/tmp +/out-tsc + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# IDEs and editors +.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +.sass-cache +connect.lock +typings + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Dependency directories +node_modules/ +jspm_packages/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# System Files +.DS_Store +Thumbs.db \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..2ab3d4b --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v16.20.2 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100755 index 0000000..3124fc1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,21 @@ +{ + "files.exclude": { + ".ackrc": true, + ".dockerignore": true, + ".drone.yml": true, + ".editorconfig": true, + ".eslintcache": true, + ".eslintignore": true, + ".eslintrc.js": true, + ".gitignore": true, + ".nyc_output": true, + ".vscode": true, + "LICENSE": true, + "node_modules": true, + "babel.config.js": true, + "jsconfig.json": true, + "yarn-error.log": true, + "pkg/**/.shell": true, + "pkg/**/node_modules": true, + } +} \ No newline at end of file diff --git a/README.md b/README.md old mode 100644 new mode 100755 index d2740a6..6fc2a7d --- a/README.md +++ b/README.md @@ -1,2 +1,153 @@ -# rancherui -his is an extension for Rancher Manager which allows you to interact with KubeArmor through Rancher UI. +# KubeArmor Rancher UI + +Welcome to the setup guide for integrating **KubeArmor** with **Rancher** using the custom extension. This guide will walk you through the installation of KubeArmor on your Kubernetes cluster managed by Rancher, and how to enable the KubeArmor extension for enhanced security features. + +## Table of Contents + +1. **[About KubeArmor](#about-kubearmor)** +2. **[Prerequisites](#prerequisites)** +3. **[Setting Up KubeArmor on Kubernetes](#setting-up-kubearmor-on-kubernetes)** + - [Installation](#installation) + - [Verification](#verification) +4. **[Integrating KubeArmor with Rancher](#integrating-kubearmor-with-rancher)** + - [Install Rancher](#install-rancher) + - [Access Rancher UI](#access-rancher-ui) +5. **[Using KubeArmor via Rancher](#using-kubearmor-via-rancher)** +6. **[Troubleshooting](#troubleshooting)** + +## About KubeArmor + +**KubeArmor** is a runtime security enforcement system for Kubernetes, which allows you to restrict the behavior of pods, containers, and nodes at the system level. It leverages Linux Security Modules like AppArmor, SELinux, or BPF-LSM for policy enforcement, providing: +- **Process Whitelisting** +- **Network Whitelisting** +- **File Access Control** +- **System Call Profiling** + +## Prerequisites + +Before you start, ensure you have: +- A Kubernetes cluster set up with Rancher managing it. +- `kubectl` configured to communicate with your Kubernetes cluster. +- Helm v3 installed on your local machine. + +## Setting Up KubeArmor on Kubernetes + +### Installation + + ```sh + helm repo add kubearmor https://kubearmor.github.io/charts + helm repo update kubearmor + helm upgrade --install kubearmor-operator kubearmor/kubearmor-operator -n kubearmor --create-namespace + kubectl apply -f https://raw.githubusercontent.com/kubearmor/KubeArmor/main/pkg/KubeArmorOperator/config/samples/sample-config.yml + ``` + +## Verification + +
+ Deny execution of package management tools (apt/apt-get) + +Package management tools can be used in the runtime env to download new binaries that will increase the attack surface of the pods. Attackers use package management tools to download accessory tooling (such as `masscan`) to further their cause. It is better to block usage of package management tools in production environments. + +Lets apply the policy to block such execution: + +``` +cat < + +## Integrating KubeArmor with Rancher + +### Access Rancher UI + +- **Log into Rancher:** Open your web browser and navigate to your Rancher server's URL, then log in with your credentials. + +### Add KubeArmor Extension + +1. **Navigate to Extensions:** + - From the top navigation bar, click on the hamburger menu (☰), and select `Extensions` under the `Configuration` section. + + +2. **Search for KubeArmor:** + - If the KubeArmor extension is listed in the Rancher **Available** tab: + - Look for the KubeArmor extension in the list. + - Click on `Install` next to the KubeArmor entry. + + - If it's not listed: + - You might need to manually add the extension: + - **Add Custom Repository:** Click on `⋮` in the upper right corner and select `Manage Repositories` and click `create` button in the upper right corner. + - **Enter the required details:** + - `Name`: Accuknox + - `Target`: Git repository containing Helm chart or cluster template definitions + - `Git Repo URL`: https://github.com/kubearmor/rancherui + - `Git Branch`: gh-pages + - Click on `create` button in the lower right corner + - After adding the repository, go back to your `Extensions` section under the `Configuration section` + +3. **Install KubeArmor Extension:** + - Click on the **Available** tab to search for extensions to add. + - Click `Install` + +4. **Installation Process:** + - Once you click `Install`, Rancher will handle the deployment of the extension. + - You might see a progress wheel or status change indicating the installation is in process. + - Once install you need to reload your rancher instance which can be done by clicking `reload` button in the upper right section. + + - **Note:** The exact steps might vary slightly depending on how the KubeArmor extension is packaged or if it requires additional configuration before installation. + +5. **Verify Installation:** + - Go back to the **Installed** tab in `Extensions`. + - Ensure KubeArmor appears in the list with a status indicating it's active or healthy. + +### Using Kubearmor via Rancher + +1. **Access KubeArmor Interface in Rancher:** + - After the extension is installed, navigate to the cluster where KubeArmor is deployed. + - Locate the Kubearmor dropdown list in left side panel + - **Create or Apply Policies:** + - Use the provided interface to create new policies or apply existing ones. This typically involves specifying which workloads the policy applies to, what actions are allowed or denied, etc. + + + +### Troubleshooting + + +- **Extension Not Visible:** + - Check if the extension repository was correctly added or if there are network issues preventing the extension from being fetched. + +- **Installation Failed:** + - Look at the Rancher logs or the installation logs in the `kubearmor` namespace for any errors or warnings that could explain the failure. + +- **Policies Not Enforcing:** + - Confirm that the policies are correctly applied to the targeted workloads. Check KubeArmor's logs for enforcement details or any errors. + + diff --git a/babel.config.js b/babel.config.js new file mode 100755 index 0000000..ac41fa8 --- /dev/null +++ b/babel.config.js @@ -0,0 +1 @@ +module.exports = require('@rancher/shell/babel.config.js'); diff --git a/dist-pkg/kubearmor-0.1.0/img/icon.04fa37b1.svg b/dist-pkg/kubearmor-0.1.0/img/icon.04fa37b1.svg new file mode 100644 index 0000000..c2f5e19 --- /dev/null +++ b/dist-pkg/kubearmor-0.1.0/img/icon.04fa37b1.svg @@ -0,0 +1 @@ +Kubearmor_logo_updated diff --git a/dist-pkg/kubearmor-0.1.0/img/kubearmor.129e1b02.svg b/dist-pkg/kubearmor-0.1.0/img/kubearmor.129e1b02.svg new file mode 100644 index 0000000..90dc79c --- /dev/null +++ b/dist-pkg/kubearmor-0.1.0/img/kubearmor.129e1b02.svg @@ -0,0 +1 @@ +Kubearmor_logo_updated \ No newline at end of file diff --git a/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.5.js b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.5.js new file mode 100644 index 0000000..579062e --- /dev/null +++ b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.5.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubearmor_0_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubearmor_0_1_0"]||[]).push([[5],{"7ada":function(e,t,n){(function(n){var o,a,i;(function(n,r){a=[],o=r,i="function"===typeof o?o.apply(t,a):o,void 0===i||(e.exports=i)})(0,(function(){"use strict";function t(e,t){return"undefined"==typeof t?t={autoBom:!1}:"object"!=typeof t&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}function o(e,t,n){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="blob",o.onload=function(){c(o.response,t,n)},o.onerror=function(){console.error("could not download file")},o.send()}function a(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function i(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(o){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var r="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof n&&n.global===n?n:void 0,c=r.saveAs||("object"!=typeof window||window!==r?function(){}:"download"in HTMLAnchorElement.prototype?function(e,t,n){var c=r.URL||r.webkitURL,s=document.createElement("a");t=t||e.name||"download",s.download=t,s.rel="noopener","string"==typeof e?(s.href=e,s.origin===location.origin?i(s):a(s.href)?o(e,t,n):i(s,s.target="_blank")):(s.href=c.createObjectURL(e),setTimeout((function(){c.revokeObjectURL(s.href)}),4e4),setTimeout((function(){i(s)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,n,r){if(n=n||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(t(e,r),n);else if(a(e))o(e,n,r);else{var c=document.createElement("a");c.href=e,c.target="_blank",setTimeout((function(){i(c)}))}}:function(e,t,n,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),"string"==typeof e)return o(e,t,n);var i="application/octet-stream"===e.type,c=/constructor/i.test(r.HTMLElement)||r.safari,s=/CriOS\/[\d]+/.test(navigator.userAgent);if((s||i&&c)&&"object"==typeof FileReader){var l=new FileReader;l.onloadend=function(){var e=l.result;e=s?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=e:location=e,a=null},l.readAsDataURL(e)}else{var f=r.URL||r.webkitURL,u=f.createObjectURL(e);a?a.location=u:location.href=u,a=null,setTimeout((function(){f.revokeObjectURL(u)}),4e4)}});r.saveAs=c.saveAs=c,e.exports=c}))}).call(this,n("7d15"))}}]); +//# sourceMappingURL=kubearmor-0.1.0.umd.min.5.js.map \ No newline at end of file diff --git a/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.5.js.map b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.5.js.map new file mode 100644 index 0000000..a0ebc88 --- /dev/null +++ b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://kubearmor-0.1.0//home/krish/rancherui/node_modules/file-saver/dist/FileSaver.min.js"],"names":["this","b","a","autoBom","console","warn","test","type","Blob","c","d","e","XMLHttpRequest","open","responseType","onload","response","onerror","error","send","status","dispatchEvent","MouseEvent","document","createEvent","initMouseEvent","window","f","self","global","saveAs","HTMLAnchorElement","prototype","g","h","i","URL","webkitURL","j","createElement","name","download","rel","href","origin","location","target","createObjectURL","setTimeout","revokeObjectURL","navigator","msSaveOrOpenBlob","title","body","innerText","HTMLElement","safari","userAgent","FileReader","onloadend","result","replace","readAsDataURL","k","l","module","exports"],"mappings":"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","file":"kubearmor-0.1.0.umd.min.5.js","sourcesContent":["(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(b,c,d){var e=new XMLHttpRequest;e.open(\"GET\",b),e.responseType=\"blob\",e.onload=function(){a(e.response,c,d)},e.onerror=function(){console.error(\"could not download file\")},e.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(a,b,d,e){if(e=e||open(\"\",\"_blank\"),e&&(e.document.title=e.document.body.innerText=\"downloading...\"),\"string\"==typeof a)return c(a,b,d);var g=\"application/octet-stream\"===a.type,h=/constructor/i.test(f.HTMLElement)||f.safari,i=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((i||g&&h)&&\"object\"==typeof FileReader){var j=new FileReader;j.onloadend=function(){var a=j.result;a=i?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),e?e.location.href=a:location=a,e=null},j.readAsDataURL(a)}else{var k=f.URL||f.webkitURL,l=k.createObjectURL(a);e?e.location=l:location.href=l,e=null,setTimeout(function(){k.revokeObjectURL(l)},4E4)}});f.saveAs=a.saveAs=a,\"undefined\"!=typeof module&&(module.exports=a)});\n\n//# sourceMappingURL=FileSaver.min.js.map"],"sourceRoot":""} \ No newline at end of file diff --git a/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.edit.js b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.edit.js new file mode 100644 index 0000000..0b09a24 --- /dev/null +++ b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.edit.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubearmor_0_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubearmor_0_1_0"]||[]).push([[0],{"052d":function(e,t,a){"use strict";a("adc7")},"061b":function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return t("div",[t("Tab",{attrs:{name:"general",label:"General",weight:99}},[t("General",{attrs:{"data-testid":"kw-policy-config-general-tab",mode:e.mode,"target-namespace":e.targetNamespace,"is-custom":e.isCustom},model:{value:e.chartValues,callback:function(t){e.chartValues=t},expression:"chartValues"}}),t("BasicConfig",{attrs:{mode:e.mode},model:{value:e.chartValues.policy,callback:function(t){e.$set(e.chartValues,"policy",t)},expression:"chartValues.policy"}})],1),t("Tab",{attrs:{name:"selector",label:"Selector",weight:97}},[t("SelectorMatch",{attrs:{"data-testid":"ka-policy-config-selector-tab",mode:e.mode},model:{value:e.chartValues.policy,callback:function(t){e.$set(e.chartValues,"policy",t)},expression:"chartValues.policy"}})],1),t("Tab",{attrs:{name:"file",label:"File Configuration",weight:96}},[t("FileMatch",{attrs:{"data-testid":"ka-policy-config-file-tab",mode:e.mode},model:{value:e.chartValues.policy,callback:function(t){e.$set(e.chartValues,"policy",t)},expression:"chartValues.policy"}})],1),t("Tab",{attrs:{name:"process",label:"Process Configuration",weight:96}},[t("ProcessMatch",{attrs:{"data-testid":"ka-policy-config-process-tab",mode:e.mode},model:{value:e.chartValues.policy,callback:function(t){e.$set(e.chartValues,"policy",t)},expression:"chartValues.policy"}})],1),t("Tab",{attrs:{name:"network",label:"Network Configuration",weight:96}},[t("NetworkMatch",{attrs:{"data-testid":"ka-policy-config-network-tab",mode:e.mode},model:{value:e.chartValues.policy,callback:function(t){e.$set(e.chartValues,"policy",t)},expression:"chartValues.policy"}})],1)],1)},o=[],i=a("330a"),r=a.n(i),l=a("da25"),n=a("38de"),c=a("a6b3"),u=a("bafb"),d=a("a600"),p=a("2876"),h=a("3bda"),m=a("7ce4"),v=a("9541"),b={props:{customPolicy:{type:Boolean,default:!1},mode:{type:String,default:l["n"]},value:{type:Object,required:!0}},components:{General:u["default"],Tab:n["a"],SelectorMatch:c["default"],ProcessMatch:d["default"],FileMatch:p["default"],TagsInput:h["default"],BasicConfig:m["default"],NetworkMatch:v["default"]},inject:["chartType"],data(){return{activeTab:null,chartValues:null}},created(){this.value&&(this.chartValues=this.value),this.value.message||this.$set(this.value,"message","")},computed:{hasFile(){var e;return!r()(null===(e=this.chartValues)||void 0===e||null===(e=e.policy)||void 0===e||null===(e=e.spec)||void 0===e?void 0:e.file)},hasProcess(){var e;return!r()(null===(e=this.chartValues)||void 0===e||null===(e=e.policy)||void 0===e||null===(e=e.spec)||void 0===e?void 0:e.process)},hasSelector(){var e;return!r()(null===(e=this.chartValues)||void 0===e||null===(e=e.policy)||void 0===e||null===(e=e.spec)||void 0===e?void 0:e.selector)},isCreate(){return this.mode===l["n"]},isCustom(){return this.customPolicy},targetNamespace(){var e;return this.forceNamespace||(null===(e=this.chartValues)||void 0===e||null===(e=e.metadata)||void 0===e?void 0:e.namespace)||"default"}},methods:{setActiveTab(e){this.activeTab=e}}},f=b,y=a("d802"),g=Object(y["a"])(f,s,o,!1,null,null,null);t["default"]=g.exports},"099d":function(e,t,a){"use strict";a("7258")},"09a2":function(e,t,a){var s=a("0fa6");s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var o=a("0ed3").default;o("3456a04c",s,!0,{sourceMap:!1,shadowMode:!1})},"0fa6":function(e,t,a){var s=a("5eaa");t=s(!1),t.push([e.i,".step__values__controls[data-v-bdce7b86]{display:flex;margin-bottom:15px}.step__values__controls[data-v-bdce7b86]>:not(:last-of-type){margin-right:10px}.step__values__content[data-v-bdce7b86],.step__values__controls--spacer[data-v-bdce7b86]{flex:1}.step__values__content[data-v-bdce7b86] .tab-container{overflow:auto}",""]),e.exports=t},"15d2":function(e,t,a){var s={"./kubearmor/_index":"3953","./kubearmor/_index.vue":"3953","./kubearmor/admission":"061b","./kubearmor/admission/":"061b","./kubearmor/admission/BasicConfig":"7ce4","./kubearmor/admission/BasicConfig.vue":"7ce4","./kubearmor/admission/FileMatch":"2876","./kubearmor/admission/FileMatch.vue":"2876","./kubearmor/admission/General":"bafb","./kubearmor/admission/General.vue":"bafb","./kubearmor/admission/NetworkMatch":"9541","./kubearmor/admission/NetworkMatch.vue":"9541","./kubearmor/admission/ProcessMatch":"a600","./kubearmor/admission/ProcessMatch.vue":"a600","./kubearmor/admission/SelectorMatch":"a6b3","./kubearmor/admission/SelectorMatch.vue":"a6b3","./kubearmor/admission/TagsInput":"3bda","./kubearmor/admission/TagsInput.vue":"3bda","./kubearmor/admission/index":"061b","./kubearmor/admission/index.vue":"061b"};function o(e){return Promise.resolve().then((function(){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}var o=s[e];return a(o)}))}o.keys=function(){return Object.keys(s)},o.id="15d2",e.exports=o},1877:function(e,t,a){var s=a("5eaa");t=s(!1),t.push([e.i,'.policy-table-container[data-v-556e35b7]{display:flex;flex-direction:column;gap:1rem;padding:1rem}.policy-table-actions[data-v-556e35b7]{display:flex;justify-content:space-between;align-items:center}.filter[data-v-556e35b7]{width:100%;display:grid;grid-template-rows:1fr;grid-template-columns:repeat(2,1fr) .25fr;grid-template-areas:"attributes search reset";gap:1rem}.filter>*[data-v-556e35b7]{margin:.5rem 0}.filter__attributes[data-v-556e35b7]{grid-area:attributes}.filter__search[data-v-556e35b7]{grid-area:search}.filter__reset[data-v-556e35b7]{grid-area:reset}.filter__reset p[data-v-556e35b7]{line-height:1.5;white-space:wrap}[data-v-556e35b7] tr:hover{cursor:pointer}',""]),e.exports=t},"1f6e":function(e,t,a){"use strict";a("6d70")},2876:function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"col mb-20"},[t("div",{staticClass:"col mb-40"},[t("div",{staticClass:"row mb-20"},[t("div",{staticClass:"col span-6"},[t("LabeledInput",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Specify the severity level of the policy (e.g., 1, 2, 3...).",expression:"`Specify the severity level of the policy (e.g., 1, 2, 3...).`"}],attrs:{mode:e.mode,label:"Severity",placeholder:"Enter severity level (e.g., 1)",type:"number",min:"1"},model:{value:e.file.severity,callback:function(t){e.$set(e.file,"severity",t)},expression:"file.severity"}})],1),t("div",{staticClass:"col span-6"},[t("LabeledSelect",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Specify the action to be taken when this policy is triggered (Allow, Audit, or Block).",expression:"`Specify the action to be taken when this policy is triggered (Allow, Audit, or Block).`"}],attrs:{mode:e.mode,options:e.actionOptions,label:"Action",placeholder:"Select Action"},model:{value:e.file.action,callback:function(t){e.$set(e.file,"action",t)},expression:"file.action"}})],1)])]),t("div",{staticClass:"col mb-40"},[t("h2",[e._v(" Match Paths "),t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Match file paths for security policies.",expression:"`Match file paths for security policies.`"}],staticClass:"icon icon-info"})]),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Match Path","default-add-value":{path:"",readOnly:!1,ownerOnly:!1,fromSource:[]}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("div",{staticClass:"col mb-20"},[t("LabeledInput",{attrs:{mode:e.mode,required:!0,label:"Absolute file path",placeholder:"Enter the absolute file path"},model:{value:a.row.value.path,callback:function(t){e.$set(a.row.value,"path",t)},expression:"props.row.value.path"}}),t("RadioGroup",{attrs:{name:"owner-file-matchpath",mode:e.mode,options:e.booleanOptions,label:"Owner Only"},model:{value:a.row.value.ownerOnly,callback:function(t){e.$set(a.row.value,"ownerOnly",t)},expression:"props.row.value.ownerOnly"}}),t("RadioGroup",{attrs:{name:"readonly-file-matchpath",mode:e.mode,options:e.booleanOptions,label:"Read Only"},model:{value:a.row.value.readOnly,callback:function(t){e.$set(a.row.value,"readOnly",t)},expression:"props.row.value.readOnly"}}),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Source Path","default-add-value":{path:""}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("LabeledInput",{attrs:{mode:e.mode,label:"Source Path",placeholder:"Enter source path"},model:{value:a.row.value.path,callback:function(t){e.$set(a.row.value,"path",t)},expression:"sourceProps.row.value.path"}})]}}],null,!0),model:{value:a.row.value.fromSource,callback:function(t){e.$set(a.row.value,"fromSource",t)},expression:"props.row.value.fromSource"}})],1)]}}]),model:{value:e.file.matchPaths,callback:function(t){e.$set(e.file,"matchPaths",t)},expression:"file.matchPaths"}})],1),t("div",{staticClass:"col mb-40"},[t("h2",[e._v(" Match Directories "),t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Match directories for security policies.",expression:"`Match directories for security policies.`"}],staticClass:"icon icon-info"})]),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Match Directory","default-add-value":{dir:"",recursive:!1,readOnly:!1,ownerOnly:!1,fromSource:[]}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("div",{staticClass:"col mb-20"},[t("LabeledInput",{attrs:{mode:e.mode,required:!0,label:"Absolute directory path",placeholder:"Enter the absolute directory path"},model:{value:a.row.value.dir,callback:function(t){e.$set(a.row.value,"dir",t)},expression:"props.row.value.dir"}}),t("RadioGroup",{attrs:{name:"recursive-file-matchdir",mode:e.mode,options:e.booleanOptions,label:"Recursive"},model:{value:a.row.value.recursive,callback:function(t){e.$set(a.row.value,"recursive",t)},expression:"props.row.value.recursive"}}),t("RadioGroup",{attrs:{name:"owner-file-matchdir",mode:e.mode,options:e.booleanOptions,label:"Owner Only"},model:{value:a.row.value.ownerOnly,callback:function(t){e.$set(a.row.value,"ownerOnly",t)},expression:"props.row.value.ownerOnly"}}),t("RadioGroup",{attrs:{name:"read-file-matchdir",mode:e.mode,options:e.booleanOptions,label:"Read Only"},model:{value:a.row.value.readOnly,callback:function(t){e.$set(a.row.value,"readOnly",t)},expression:"props.row.value.readOnly"}}),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Source Path","default-add-value":{path:""}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("LabeledInput",{attrs:{mode:e.mode,label:"Source Path",placeholder:"Enter source path"},model:{value:a.row.value.path,callback:function(t){e.$set(a.row.value,"path",t)},expression:"sourceProps.row.value.path"}})]}}],null,!0),model:{value:a.row.value.fromSource,callback:function(t){e.$set(a.row.value,"fromSource",t)},expression:"props.row.value.fromSource"}})],1)]}}]),model:{value:e.file.matchDirectories,callback:function(t){e.$set(e.file,"matchDirectories",t)},expression:"file.matchDirectories"}})],1),t("div",{staticClass:"col mb-40"},[t("h2",[e._v(" Match Patterns "),t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Match file patterns using regex.",expression:"`Match file patterns using regex.`"}],staticClass:"icon icon-info"})]),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Match Pattern","default-add-value":{pattern:"",readOnly:!1,ownerOnly:!1}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("div",{staticClass:"col mb-20"},[t("LabeledInput",{attrs:{mode:e.mode,required:!0,label:"Regex Pattern",placeholder:"Enter the regex pattern"},model:{value:a.row.value.pattern,callback:function(t){e.$set(a.row.value,"pattern",t)},expression:"props.row.value.pattern"}}),t("RadioGroup",{attrs:{name:"owner-file-matchpattern",mode:e.mode,options:e.booleanOptions,label:"Owner Only"},model:{value:a.row.value.ownerOnly,callback:function(t){e.$set(a.row.value,"ownerOnly",t)},expression:"props.row.value.ownerOnly"}}),t("RadioGroup",{attrs:{name:"read-file-matchpattern",mode:e.mode,options:e.booleanOptions,label:"Read Only"},model:{value:a.row.value.readOnly,callback:function(t){e.$set(a.row.value,"readOnly",t)},expression:"props.row.value.readOnly"}})],1)]}}]),model:{value:e.file.matchPatterns,callback:function(t){e.$set(e.file,"matchPatterns",t)},expression:"file.matchPatterns"}})],1)])},o=[],i=a("da25"),r=a("a0fb"),l=a("8e93"),n=a("466b"),c=a("e143"),u={props:{mode:{type:String,default:i["n"]},value:{type:Object,required:!0}},components:{ArrayListGrouped:r["a"],LabeledInput:l["a"],LabeledSelect:n["a"],RadioGroup:c["a"]},data(){return this.value.spec||this.$set(this.value,"spec",{}),this.value.spec.file||this.$set(this.value.spec,"file",{severity:1,action:"Block",matchPaths:[],matchDirectories:[],matchPatterns:[]}),{file:this.value.spec.file,booleanOptions:[{label:"True",value:!0},{label:"False",value:!1}],actionOptions:[{label:"Allow",value:"Allow"},{label:"Audit",value:"Audit"},{label:"Block",value:"Block"}]}},watch:{file:{deep:!0,handler(e){this.$set(this.value.spec,"file",e),this.$emit("input",this.value)}}}},d=u,p=a("d802"),h=Object(p["a"])(d,s,o,!1,null,null,null);t["default"]=h.exports},"29be":function(e,t,a){var s=a("5eaa");t=s(!1),t.push([e.i,".content[data-v-63892b7c]{position:relative;z-index:1}.banner__title[data-v-63892b7c]{padding-top:10px;margin-bottom:10px;border-bottom:1px solid var(--border);min-height:60px}.banner__readme-button[data-v-63892b7c]{padding:0 7px 0 0}",""]),e.exports=t},3953:function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return t("div",[t("div",{staticClass:"row mb-20"},[t("Checkbox",{attrs:{label:"Enable the Recommended Policies",tooltip:"The chart allows the user to install some recommended policies to enforce some best practice security checks."},model:{value:e.value["kubearmor-defaults"].recommendedPolicies.enabled,callback:function(t){e.$set(e.value["kubearmor-defaults"].recommendedPolicies,"enabled",t)},expression:"value['kubearmor-defaults'].recommendedPolicies.enabled"}})],1)])},o=[],i=a("da25"),r=a("0df0"),l={props:{chart:{type:Object,default:()=>({})},mode:{type:String,default:i["n"]},value:{type:Object,default:()=>({})}},components:{Checkbox:r["a"]}},n=l,c=a("d802"),u=Object(c["a"])(n,s,o,!1,null,null,null);t["default"]=u.exports},"3bda":function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return t("div",[t("h4",[e._v("Tags")]),t("div",{staticClass:"tags-input"},[e._l(e.tags,(function(a,s){return t("div",{key:s,staticClass:"tag-item"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.tags[s],expression:"tags[index]"}],staticClass:"tag-input",attrs:{placeholder:"Enter tag"},domProps:{value:e.tags[s]},on:{input:[function(t){t.target.composing||e.$set(e.tags,s,t.target.value)},e.updateTags]}}),t("button",{staticClass:"remove-btn",on:{click:function(t){return e.removeTag(s)}}},[e._v("x")])])})),t("button",{staticClass:"add-btn",on:{click:e.addTag}},[e._v("Add Tag")])],2)])},o=[],i={props:{value:{type:Array,default:()=>[]}},data(){return{tags:this.value}},watch:{tags:{deep:!0,handler(e){this.$emit("input",e)}}},methods:{addTag(){this.tags.push("")},removeTag(e){this.tags.splice(e,1)},updateTags(){this.$emit("input",this.tags)}}},r=i,l=(a("052d"),a("d802")),n=Object(l["a"])(r,s,o,!1,null,"66b7c3cb",null);t["default"]=n.exports},"5ea7":function(e,t,a){var s={"./kubearmor/_index":"3953","./kubearmor/_index.vue":"3953","./kubearmor/admission":"061b","./kubearmor/admission/":"061b","./kubearmor/admission/BasicConfig":"7ce4","./kubearmor/admission/BasicConfig.vue":"7ce4","./kubearmor/admission/FileMatch":"2876","./kubearmor/admission/FileMatch.vue":"2876","./kubearmor/admission/General":"bafb","./kubearmor/admission/General.vue":"bafb","./kubearmor/admission/NetworkMatch":"9541","./kubearmor/admission/NetworkMatch.vue":"9541","./kubearmor/admission/ProcessMatch":"a600","./kubearmor/admission/ProcessMatch.vue":"a600","./kubearmor/admission/SelectorMatch":"a6b3","./kubearmor/admission/SelectorMatch.vue":"a6b3","./kubearmor/admission/TagsInput":"3bda","./kubearmor/admission/TagsInput.vue":"3bda","./kubearmor/admission/index":"061b","./kubearmor/admission/index.vue":"061b"};function o(e){var t=i(e);return a(t)}function i(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}o.keys=function(){return Object.keys(s)},o.resolve=i,e.exports=o,o.id="5ea7"},"61c1":function(e,t,a){var s=a("5eaa");t=s(!1),t.push([e.i,".name-col div[data-v-1d1d0d06]:after,.name-col div[data-v-1d1d0d06]:before{content:unset;display:unset}",""]),e.exports=t},6341:function(e,t,a){var s=a("5eaa");t=s(!1),t.push([e.i,"[data-v-2761b367] .header{display:none}[data-v-2761b367] .controls-row{position:sticky;width:auto}[data-v-2761b367] .controls-row .controls-steps{display:flex}[data-v-2761b367] .custom{min-height:110px}[data-v-2761b367] .subtype{height:110px;margin:10px;position:relative;border-radius:calc(var(--border-radius)*1.5);border:1px solid var(--border);text-decoration:none!important;color:var(--body-text)!important}[data-v-2761b367] .subtype:hover:not(.disabled){box-shadow:0 0 30px var(--shadow);transition:box-shadow .1s ease-in-out;cursor:pointer;text-decoration:none!important}[data-v-2761b367] .subtype__metadata{padding:10px}[data-v-2761b367] .subtype__metadata__description,[data-v-2761b367] .subtype__metadata__label{padding-right:20px}[data-v-2761b367] .subtype__badge{position:absolute;right:0;top:0;padding:4px 5px;border-bottom-left-radius:var(--border-radius)}[data-v-2761b367] .subtype__badge label{font-size:12px;line-height:12px;text-align:center;display:block;white-space:no-wrap;text-overflow:ellipsis;color:var(--app-rancher-accent-text);margin:0}[data-v-2761b367] .subtype__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;line-height:normal}[data-v-2761b367] .subtype__description{margin-right:10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;text-overflow:ellipsis;color:var(--input-label)}[data-v-2761b367] .footer-error{margin-top:15px}.wizard[data-v-2761b367]{position:relative;height:100%;z-index:1}.banner__title[data-v-2761b367]{padding-top:10px;margin-bottom:10px;border-bottom:1px solid var(--border);min-height:60px}.banner__readme-button[data-v-2761b367]{padding:0 7px 0 0}",""]),e.exports=t},"6d70":function(e,t,a){var s=a("1877");s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var o=a("0ed3").default;o("3a58a165",s,!0,{sourceMap:!1,shadowMode:!1})},"6e79":function(e,t,a){var s=a("29be");s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var o=a("0ed3").default;o("f7b3317e",s,!0,{sourceMap:!1,shadowMode:!1})},7257:function(e,t,a){var s=a("5eaa");t=s(!1),t.push([e.i,"[data-v-69136ac1] .btn-sm{padding:0 7px 0 0}.policy-info-panel[data-v-69136ac1]{position:fixed;top:0;left:0;z-index:2;overflow-y:auto;--banner-top-offset:0}.policy-info-panel .glass[data-v-69136ac1]{left:0;width:100%;opacity:0}.policy-info-panel .glass[data-v-69136ac1],.policy-info-panel .slideIn[data-v-69136ac1]{position:fixed;top:calc(54px + var(--banner-top-offset));height:calc(100% - 54px - var(--banner-top-offset));overflow-y:auto}.policy-info-panel .slideIn[data-v-69136ac1]{border-left:var(--header-border-size) solid var(--header-border);right:-45%;background-color:var(--topmenu-bg);width:45%;display:flex;flex-direction:column;box-shadow:-3px 0 5px rgba(0,0,0,.1);padding:10px;transition:right .5s ease}.policy-info-panel .slideIn__header[data-v-69136ac1]{text-transform:capitalize}.policy-info-panel .slideIn .policy-info-content[data-v-69136ac1]{display:flex;flex-direction:column;overflow-y:auto}.policy-info-panel .slideIn h3[data-v-69136ac1]{font-size:14px;margin:0;opacity:.7;text-transform:uppercase}.policy-info-panel .slideIn .policy-header[data-v-69136ac1]{border-bottom:1px solid var(--border);display:flex;align-items:center}.policy-info-panel .slideIn .policy-header .policy-title[data-v-69136ac1]{flex:1}.policy-info-panel .slideIn__header[data-v-69136ac1]{display:flex;align-items:center;justify-content:space-between}.policy-info-panel .slideIn__header__buttons[data-v-69136ac1]{display:flex;align-items:center}.policy-info-panel .slideIn__header__button[data-v-69136ac1]{cursor:pointer;display:flex;align-items:center;justify-content:center}.policy-info-panel .slideIn__header__button>i[data-v-69136ac1]{font-size:20px;opacity:.5}.policy-info-panel .slideIn__header__button[data-v-69136ac1]:hover{background-color:var(--wm-closer-hover-bg)}.policy-info-panel .slideIn__show[data-v-69136ac1]{right:0}",""]),e.exports=t},7258:function(e,t,a){var s=a("cef3");s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var o=a("0ed3").default;o("77e73f26",s,!0,{sourceMap:!1,shadowMode:!1})},7303:function(e,t,a){var s=a("7257");s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var o=a("0ed3").default;o("0754c8fd",s,!0,{sourceMap:!1,shadowMode:!1})},"7ce4":function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return t("div",[t("div",{staticClass:"col mb-20"},[t("LabeledInput",{attrs:{mode:e.mode,type:"number",label:"Severity",placeholder:"Enter a severity level (1-10)",min:"1",max:"10",tooltip:"Specify the severity level (default is 1)"},model:{value:e.severity,callback:function(t){e.severity=t},expression:"severity"}})],1),t("div",{staticClass:"col mb-20"},[t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Tag","default-add-value":"",tooltip:"Add tags related to the policy"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("LabeledInput",{attrs:{mode:e.mode,label:"Tag",placeholder:"Enter a tag"},model:{value:a.row.value,callback:function(t){e.$set(a.row,"value",t)},expression:"props.row.value"}})]}}]),model:{value:e.tags,callback:function(t){e.tags=t},expression:"tags"}})],1),t("div",{staticClass:"col mb-20"},[t("LabeledInput",{attrs:{mode:e.mode,label:"Message",placeholder:"Enter a message",tooltip:"Enter a message to be displayed when the policy is triggered"},model:{value:e.message,callback:function(t){e.message=t},expression:"message"}})],1)])},o=[],i=a("da25"),r=a("8e93"),l=a("a0fb"),n={name:"BasicConfig",props:{mode:{type:String,default:i["n"]},value:{type:Object,required:!0}},components:{LabeledInput:r["a"],ArrayListGrouped:l["a"]},data(){return this.value.spec||this.$set(this.value,"spec",{}),void 0===this.value.spec.severity&&this.$set(this.value.spec,"severity",1),this.value.spec.tags||this.$set(this.value.spec,"tags",[]),this.value.spec.message||this.$set(this.value.spec,"message",""),{severity:this.value.spec.severity,tags:this.value.spec.tags,message:this.value.spec.message}},watch:{severity(e){this.$set(this.value.spec,"severity",e),this.$emit("input",this.value)},tags:{deep:!0,handler(e){this.$set(this.value.spec,"tags",e),this.$emit("input",this.value)}},message(e){this.$set(this.value.spec,"message",e),this.$emit("input",this.value)}}},c=n,u=a("d802"),d=Object(u["a"])(c,s,o,!1,null,null,null);t["default"]=d.exports},8086:function(e,t,a){"use strict";a("e646")},"915a":function(e,t,a){"use strict";a("7303")},9541:function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"col mb-20"},[t("div",{staticClass:"col mb-40"},[t("h2",[e._v(" Match Protocols "),t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Specify the network protocols to be matched.",expression:"`Specify the network protocols to be matched.`"}],staticClass:"icon icon-info"})]),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Match Protocol","default-add-value":{protocol:"",fromSource:[]}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("div",{staticClass:"col mb-20"},[t("LabeledSelect",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Select a network protocol (TCP, UDP, ICMP) to match.",expression:"`Select a network protocol (TCP, UDP, ICMP) to match.`"}],attrs:{mode:e.mode,options:e.protocolOptions,label:"Protocol",placeholder:"Select protocol"},model:{value:a.row.value.protocol,callback:function(t){e.$set(a.row.value,"protocol",t)},expression:"props.row.value.protocol"}})],1),t("div",{staticClass:"col mb-20"},[t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Source Path","default-add-value":{path:""}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("LabeledInput",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Specify the executable path that accesses this protocol.",expression:"`Specify the executable path that accesses this protocol.`"}],attrs:{mode:e.mode,label:"Source Path",placeholder:"Enter source executable path"},model:{value:a.row.value.path,callback:function(t){e.$set(a.row.value,"path",t)},expression:"sourceProps.row.value.path"}})]}}],null,!0),model:{value:a.row.value.fromSource,callback:function(t){e.$set(a.row.value,"fromSource",t)},expression:"props.row.value.fromSource"}})],1)]}}]),model:{value:e.value.spec.network.matchProtocols,callback:function(t){e.$set(e.value.spec.network,"matchProtocols",t)},expression:"value.spec.network.matchProtocols"}})],1)])},o=[],i=a("da25"),r=a("a0fb"),l=a("8e93"),n=a("466b"),c={props:{mode:{type:String,default:i["n"]},value:{type:Object,required:!0}},components:{ArrayListGrouped:r["a"],LabeledInput:l["a"],LabeledSelect:n["a"]},data(){return this.value.spec||this.$set(this.value,"spec",{}),this.value.spec.network||this.$set(this.value.spec,"network",{matchProtocols:[]}),{protocolOptions:[{label:"TCP",value:"TCP"},{label:"UDP",value:"UDP"},{label:"ICMP",value:"ICMP"}],network:this.value.spec.network}},watch:{network:{deep:!0,handler(e){this.$set(this.value.spec,"network",e),this.$emit("input",this.value)}}}},u=c,d=a("d802"),p=Object(d["a"])(u,s,o,!1,null,null,null);t["default"]=p.exports},9901:function(e,t,a){var s=a("6341");s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var o=a("0ed3").default;o("26080d71",s,!0,{sourceMap:!1,shadowMode:!1})},99026:function(e,t,a){"use strict";a("09a2")},"9f26":function(e,t,a){"use strict";a("9901")},a600:function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"col mb-20"},[t("div",{staticClass:"row mb-20"},[t("div",{staticClass:"col span-6"},[t("LabeledSelect",{attrs:{mode:e.mode,label:"Action",options:e.actionOptions,placeholder:"Select action (default: Block)"},model:{value:e.process.action,callback:function(t){e.$set(e.process,"action",t)},expression:"process.action"}})],1),t("div",{staticClass:"col span-6"},[t("LabeledInput",{attrs:{mode:e.mode,label:"Severity",type:"number",min:"1",placeholder:"Enter severity level (e.g., 1)"},model:{value:e.process.severity,callback:function(t){e.$set(e.process,"severity",t)},expression:"process.severity"}})],1)]),t("div",{staticClass:"col mb-40"},[t("h2",[e._v(" Match Paths "),t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Specify paths to match executables.",expression:"`Specify paths to match executables.`"}],staticClass:"icon icon-info"})]),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Match Path",required:!0,"default-add-value":{path:"",fromSource:[]}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("div",{staticClass:"col mb-20"},[t("LabeledInput",{attrs:{mode:e.mode,required:!0,label:"Absolute Path",placeholder:"Enter the executable path"},model:{value:a.row.value.path,callback:function(t){e.$set(a.row.value,"path",t)},expression:"props.row.value.path"}}),t("RadioGroup",{attrs:{name:"owner-process-matchpath",mode:e.mode,options:e.booleanOptions,label:"Owner Only"},model:{value:a.row.value.ownerOnly,callback:function(t){e.$set(a.row.value,"ownerOnly",t)},expression:"props.row.value.ownerOnly"}}),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Source Path","default-add-value":{path:""}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("LabeledInput",{attrs:{mode:e.mode,label:"Source Path",placeholder:"Enter source path"},model:{value:a.row.value.path,callback:function(t){e.$set(a.row.value,"path",t)},expression:"sourceProps.row.value.path"}})]}}],null,!0),model:{value:a.row.value.fromSource,callback:function(t){e.$set(a.row.value,"fromSource",t)},expression:"props.row.value.fromSource"}})],1)]}}]),model:{value:e.process.matchPaths,callback:function(t){e.$set(e.process,"matchPaths",t)},expression:"process.matchPaths"}})],1),t("div",{staticClass:"col mb-40"},[t("h2",[e._v(" Match Directories "),t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Specify directories to match.",expression:"`Specify directories to match.`"}],staticClass:"icon icon-info"})]),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Match Directory","default-add-value":{dir:"",recursive:!1,ownerOnly:!1,fromSource:[]}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("div",{staticClass:"col mb-20"},[t("LabeledInput",{attrs:{mode:e.mode,required:!0,label:"Directory Path",placeholder:"Enter the directory path"},model:{value:a.row.value.dir,callback:function(t){e.$set(a.row.value,"dir",t)},expression:"props.row.value.dir"}}),t("RadioGroup",{attrs:{name:"recursive-process-matchdir",mode:e.mode,options:e.booleanOptions,label:"Recursive"},model:{value:a.row.value.recursive,callback:function(t){e.$set(a.row.value,"recursive",t)},expression:"props.row.value.recursive"}}),t("RadioGroup",{attrs:{name:"owner-process-matchdir",mode:e.mode,options:e.booleanOptions,label:"Owner Only"},model:{value:a.row.value.ownerOnly,callback:function(t){e.$set(a.row.value,"ownerOnly",t)},expression:"props.row.value.ownerOnly"}}),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Source Path","default-add-value":{path:""}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("LabeledInput",{attrs:{mode:e.mode,label:"Source Path",placeholder:"Enter source path"},model:{value:a.row.value.path,callback:function(t){e.$set(a.row.value,"path",t)},expression:"sourceProps.row.value.path"}})]}}],null,!0),model:{value:a.row.value.fromSource,callback:function(t){e.$set(a.row.value,"fromSource",t)},expression:"props.row.value.fromSource"}})],1)]}}]),model:{value:e.process.matchDirectories,callback:function(t){e.$set(e.process,"matchDirectories",t)},expression:"process.matchDirectories"}})],1),t("div",{staticClass:"col mb-40"},[t("h2",[e._v(" Match Patterns "),t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"Define regex patterns to match processes.",expression:"`Define regex patterns to match processes.`"}],staticClass:"icon icon-info"})]),t("ArrayListGrouped",{attrs:{mode:e.mode,"add-label":"Add Match Pattern","default-add-value":{pattern:"",ownerOnly:!1}},scopedSlots:e._u([{key:"default",fn:function(a){return[t("div",{staticClass:"col mb-20"},[t("LabeledInput",{attrs:{mode:e.mode,required:!0,label:"Pattern",placeholder:"Enter regex pattern"},model:{value:a.row.value.pattern,callback:function(t){e.$set(a.row.value,"pattern",t)},expression:"props.row.value.pattern"}}),t("RadioGroup",{attrs:{name:"owner-process-matchpattern",mode:e.mode,options:e.booleanOptions,label:"Owner Only"},model:{value:a.row.value.ownerOnly,callback:function(t){e.$set(a.row.value,"ownerOnly",t)},expression:"props.row.value.ownerOnly"}})],1)]}}]),model:{value:e.process.matchPatterns,callback:function(t){e.$set(e.process,"matchPatterns",t)},expression:"process.matchPatterns"}})],1)])},o=[],i=a("a0fb"),r=a("8e93"),l=a("e143"),n=a("466b"),c=a("da25"),u={props:{mode:{type:String,default:c["n"]},value:{type:Object,required:!0}},components:{ArrayListGrouped:i["a"],LabeledInput:r["a"],RadioGroup:l["a"],LabeledSelect:n["a"]},data(){return this.value.spec||this.$set(this.value,"spec",{}),this.value.spec.process||this.$set(this.value.spec,"process",{action:"Block",severity:1,matchPaths:[],matchDirectories:[],matchPatterns:[]}),{process:this.value.spec.process,actionOptions:[{label:"Allow",value:"Allow"},{label:"Audit",value:"Audit"},{label:"Block",value:"Block"}],booleanOptions:[{label:"True",value:!0},{label:"False",value:!1}]}},watch:{process:{deep:!0,handler(e){this.$set(this.value.spec,"process",e),this.$emit("input",this.value)}}}},d=u,p=a("d802"),h=Object(p["a"])(d,s,o,!1,null,null,null);t["default"]=h.exports},a6b3:function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return t("div",[t("InfoBox",{ref:"infobox"},[t("h4",[e._v(" Match Labels "),t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:"MatchLabel for Kubearmor",expression:"('MatchLabel for Kubearmor')"}],staticClass:"icon icon-info icon-lg"})]),t("div",{staticClass:"row mb-20"},[t("div",{staticClass:"col span-12"},[t("KeyValue",{attrs:{mode:e.mode,"add-label":e.t("labels.addLabel"),placeholder:"Enter match label key"},model:{value:e.matchLabels,callback:function(t){e.matchLabels=t},expression:"matchLabels"}})],1)])])],1)},o=[],i=a("a232"),r=a("13a9"),l=a("da25"),n={props:{mode:{type:String,default:l["n"]},value:{type:Object,required:!0}},components:{KeyValue:i["a"],InfoBox:r["a"]},data(){return this.value.spec||this.$set(this.value,"spec",{}),this.value.spec.selector||this.$set(this.value.spec,"selector",{}),this.value.spec.selector.matchLabels||this.$set(this.value.spec.selector,"matchLabels",{}),{matchLabels:this.value.spec.selector.matchLabels}},watch:{matchLabels:{deep:!0,handler(e){this.$set(this.value.spec.selector,"matchLabels",e),this.$emit("input",this.value)}}}},c=n,u=a("d802"),d=Object(u["a"])(c,s,o,!1,null,null,null);t["default"]=d.exports},adc7:function(e,t,a){var s=a("de79");s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var o=a("0ed3").default;o("e8aac942",s,!0,{sourceMap:!1,shadowMode:!1})},bafb:function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return e.$fetchState.pending?t("Loading",{attrs:{mode:"relative"}}):t("div",[t("div",{staticClass:"row"},[t("div",{ref:"nameNsDescriptionWrapper",staticClass:"col span-6 name-col"},[t("NameNsDescription",{attrs:{"data-testid":"kw-policy-general-name-input",mode:e.mode,value:e.policy,namespaced:!e.isGlobal,"namespace-new-allowed":!0,"name-key":"metadata.name","namespace-key":"metadata.namespace"},on:{isNamespaceNew:function(t){e.isNamespaceNew=t}}})],1)])])},o=[],i=(a("330a"),a("da25")),r=a("e24b"),l=a("466b"),n=a("15ca"),c=a("3c8c"),u=a("6418"),d=a("8e93"),p=a("e143"),h=a("90cd"),m={name:"General",inject:["chartType"],props:{mode:{type:String,default:i["n"]},targetNamespace:{type:String,required:!0},isCustom:{type:Boolean,default:!1},value:{type:Object,required:!0}},components:{LabeledSelect:l["a"],Loading:n["a"],NameNsDescription:c["a"],Banner:u["a"],LabeledInput:d["a"],RadioGroup:p["a"]},async fetch(){this.$store.getters["cluster/canList"](h["g"].POLICY_SERVER)&&await this.$store.dispatch("cluster/findAll",{type:h["g"].POLICY_SERVER})},data(){var e;let t=null;return t=null!==(e=this.value)&&void 0!==e&&e.policy?this.value.policy:this.value||{},this.mode===i["n"]&&this.chartType===h["g"].ADMISSION_POLICY&&Object(r["i"])(t.metadata,"namespace","default"),{policy:t,initialPolicyMode:null,isNamespaceNew:!1}},watch:{isNamespaceNew(e){this.$set(this.value,"isNamespaceNew",e)}},created(){this.policyMode&&(this.initialPolicyMode=this.policyMode)},beforeUpdate(){this.$nextTick(()=>{var e;const t=null===(e=this.$refs)||void 0===e?void 0:e.nameNsDescriptionWrapper,a=null===t||void 0===t?void 0:t.querySelectorAll(".row.mb-20 > .col.span-3");this.isGlobal?1===(null===a||void 0===a?void 0:a.length)&&(a[0].classList.remove("span-3"),a[0].classList.add("span-12")):2===(null===a||void 0===a?void 0:a.length)&&(a[0].classList.remove("span-3"),a[0].classList.add("span-4"),a[1].classList.remove("span-3"),a[1].classList.add("span-8"))})},computed:{isCreate(){return this.mode===i["n"]},isGlobal(){return this.chartType===h["g"].CLUSTER_ADMISSION_POLICY},modeDisabled(){return!this.isCreate&&"protect"===this.initialPolicyMode},policyMode(){var e;return null===(e=this.value)||void 0===e||null===(e=e.policy)||void 0===e||null===(e=e.spec)||void 0===e?void 0:e.mode},policyServers(){return this.$store.getters["cluster/all"](h["g"].POLICY_SERVER)},policyServerOptions(){var e;if((null===(e=this.policyServers)||void 0===e?void 0:e.length)>0){const e=[];return this.policyServers.map(t=>e.push(t.id)),e}return this.policyServers||[]},showModeBanner(){return!this.isCreate&&"monitor"===this.initialPolicyMode&&"protect"===this.policyMode}}},v=m,b=(a("8086"),a("d802")),f=Object(b["a"])(v,s,o,!1,null,"1d1d0d06",null);t["default"]=f.exports},cef3:function(e,t,a){var s=a("5eaa");t=s(!1),t.push([e.i,"[data-v-7d654f0e] .cru__footer{z-index:1}",""]),e.exports=t},da42:function(e,t,a){"use strict";a("6e79")},de79:function(e,t,a){var s=a("5eaa");t=s(!1),t.push([e.i,".tags-input[data-v-66b7c3cb]{display:flex;flex-direction:column;gap:8px}.tag-item[data-v-66b7c3cb]{display:flex;align-items:center}.tag-input[data-v-66b7c3cb]{flex:1;padding:6px;margin-right:6px}.remove-btn[data-v-66b7c3cb]{background-color:red}.add-btn[data-v-66b7c3cb],.remove-btn[data-v-66b7c3cb]{color:#fff;border:none;cursor:pointer}.add-btn[data-v-66b7c3cb]{margin-top:10px;background-color:#5cb85c;padding:5px 10px}",""]),e.exports=t},e5d3:function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e._self._c;return e.isCreate?t("Created",{attrs:{value:e.value,mode:e.mode}}):t("CruResource",{attrs:{resource:e.value,mode:e.realMode,"can-yaml":!1},on:{finish:e.finish}},[t("Configed",{attrs:{value:e.value,mode:e.realMode},on:{updateYamlValues:e.updateYamlValuesFromEdit}})],1)},o=[],i=a("7838"),r=a.n(i),l=a("da25"),n=a("305c"),c=a("fd5f"),u=a("330a"),d=a.n(u),p=a("b506"),h=a.n(p);function m(e){return Object.keys(e).forEach(t=>{const a=e[t];void 0===a||null===a||""===a||Array.isArray(a)&&!a.length?delete e[t]:h()(a)&&(m(a),d()(a)&&delete e[t])}),d()(e)?null:e}function v(e){var t;const a=(null===(t=e.error)||void 0===t?void 0:t.data)||e.error,s=e.type||"Error";e.store.dispatch("growl/"+s.toLowerCase(),{title:a._statusText||s,message:a.message,timeout:5e3},{root:!0})}var b=function(){var e=this,t=e._self._c;return e.$fetchState.pending?t("Loading"):t("div",[t("div",{staticClass:"content"},[t("div",{staticClass:"banner__title"},[e.shortDescription?[t("p",{staticClass:"banner__short-description"},[e._v(" "+e._s(e.shortDescription)+" ")]),e.policyReadme?t("button",{staticClass:"btn btn-sm role-link banner__readme-button",on:{click:e.showReadme}},[e._v(" "+e._s("Show Readme")+" ")]):e._e()]:e._e()],2),t("Values",{attrs:{value:e.value,"chart-values":e.chartValues,"yaml-values":e.yamlValues,mode:e.mode},on:{updateYamlValues:function(t){return e.$emit("updateYamlValues",t)}}})],1),e.policyReadme?[t("PolicyReadmePanel",{ref:"readmePanel",attrs:{"package-values":e.artifactHubPackage}})]:e._e()],2)},f=[],y=a("1fcb"),g=a.n(y),w=a("c5e6"),k=a("e24b"),_=a("15ca"),x=a("90cd"),O=function(){var e=this,t=e._self._c;return e.$fetchState.pending?t("Loading",{attrs:{mode:"relative"}}):t("div",[e.isCreate||e.isEdit?t("div",{staticClass:"step__values__controls"},[t("ButtonGroup",{attrs:{"data-testid":"kw-policy-config-yaml-option",options:e.YAML_OPTIONS,"inactive-class":"bg-disabled btn-sm","active-class":"bg-primary btn-sm"},model:{value:e.yamlOption,callback:function(t){e.yamlOption=t},expression:"yamlOption"}})],1):e._e(),t("div",{staticClass:"scroll__container"},[t("div",{staticClass:"scroll__content"},[e.showForm?[t("Tabbed",{ref:"tabs",staticClass:"step__values__content",attrs:{"side-tabs":!0},on:{changed:function(t){return e.tabChanged(t)}}},[e.valuesComponent?[t(e.valuesComponent,{tag:"component",attrs:{mode:e.mode,"custom-policy":e.customPolicy},model:{value:e.chartValues,callback:function(t){e.chartValues=t},expression:"chartValues"}})]:e._e()],2)]:!e.isCreate&&!e.isEdit||e.showForm?e._e():[t("YamlEditor",{ref:"yaml",staticClass:"step__values__content",attrs:{"data-testid":"kw-policy-config-yaml-editor",scrolling:!0,"initial-yaml-values":e.originalYamlValues,"editor-mode":e.editorMode,"rhide-preview-buttons":!0},on:{onChanges:e.updateYamlValues},model:{value:e.currentYamlValues,callback:function(t){e.currentYamlValues=t},expression:"currentYamlValues"}})],t("ResourceCancelModal",{ref:"cancelModal",attrs:{"data-testid":"kw-policy-config-yaml-cancel","is-cancel-modal":!1,"is-form":!0},on:{"cancel-cancel":function(t){e.preYamlOption=e.yamlOption},"confirm-cancel":function(t){e.yamlOption=e.preYamlOption}}})],2)])])},C=[],S=a("907c"),P=a("cc2d"),$=a("6860"),M=a("0cb2"),V=a("870a"),L={name:"Values",props:{mode:{type:String,default:l["t"]},chartValues:{type:Object,default:()=>{}},customPolicy:{type:Boolean,default:!1},value:{type:Object,required:!0},yamlValues:{type:String,default:""}},components:{ButtonGroup:P["a"],Loading:_["a"],ResourceCancelModal:$["a"],Tabbed:M["a"],YamlEditor:V["b"]},async fetch(){try{this.version=this.$store.getters["catalog/version"]({repoType:"cluster",repoName:"kubearmor",chartName:x["h"].CONTROLLER}),await this.loadValuesComponent()}catch(e){console.warn("Unable to fetch Version: "+e)}this.generateYaml()},data(){return{YAML_OPTIONS:x["k"],currentYamlValues:"",originalYamlValues:"",showForm:!0,valuesComponent:null,preYamlOption:x["j"].FORM,yamlOption:x["j"].FORM}},mounted(){},watch:{yamlOption(e,t){switch(e){case x["j"].FORM:this.showForm=!0,this.$emit("editor",e);break;case x["j"].YAML:t===x["j"].FORM&&(this.currentYamlValues=Object(w["c"])(this.chartValues.policy),this.updateYamlValues()),this.showForm=!1,this.$emit("editor",e);break}}},computed:{editorMode(){return V["a"].EDIT_CODE},isCreate(){return this.mode===l["n"]},isEdit(){return this.mode===l["p"]}},methods:{artifactHubPackageVersion(){return()=>{if(!this.artifactHubWhitelist)return{error:"ArtifactHub.io has not been added to the `management.cattle.io.settings/whitelist-domain` setting"};try{var e;const t=null===(e=this.metadata)||void 0===e||null===(e=e.annotations)||void 0===e?void 0:e[x["b"]];if(t){const e=`/meta/proxy/${x["a"]}/packages/kubearmor/${t}`;return this.$dispatch("management/request",{url:e,redirectUnauthorized:!1},{root:!0})}}catch(t){console.warn("Error fetching pkg version: "+t)}}},parsePackageMetadata(e){if(e){const t=JSON.parse(JSON.stringify(e));return jsyaml.load(t)}return null},generateYaml(){var e,t;const a=this.$store.getters["cluster/all"](S["w"]),s=null!==(e=this.chartValues)&&void 0!==e&&e.policy?structuredClone(this.chartValues.policy):this.value;var o;null!==(t=this.yamlValues)&&void 0!==t&&t.length?this.currentYamlValues=this.yamlValues:this.currentYamlValues=Object(w["a"])(a,null===(o=this.value)||void 0===o?void 0:o.type,s)},haveComponent(e){try{return a("5ea7").resolve("./"+e),!0}catch(t){return!1}},importComponent(e){if(!e)throw new Error("Name required");return()=>a("15d2")("./"+e)},async loadValuesComponent(){null!==this&&void 0!==this&&this.haveComponent("kubearmor/admission")&&(this.valuesComponent=this.importComponent("kubearmor/admission"),await this.valuesComponent())},tabChanged(){window.scrollTop=0},updateYamlValues(){this.$emit("updateYamlValues",this.currentYamlValues)}}},A=L,I=(a("99026"),a("d802")),T=Object(I["a"])(A,O,C,!1,null,"bdce7b86",null),R=T.exports,E=function(){var e=this,t=e._self._c;return t("div",{staticClass:"policy-info-panel",style:"--banner-top-offset: 0px"},[t("h1",[e._v("readme")]),e.showSlideIn?t("div",{staticClass:"glass",attrs:{"data-testid":"extension-details-bg"},on:{click:function(t){return e.hide()}}}):e._e(),t("div",{staticClass:"slideIn",class:{hide:!1,slideIn__show:e.showSlideIn},attrs:{"data-testid":"extension-details"}},[t("div",{staticClass:"slideIn__header"},[e.packageValues?t("div",{staticClass:"policy-info-content"},[t("div",{staticClass:"policy-header pb-10"},[t("div",{staticClass:"slideIn__header__buttons"},[t("button",{staticClass:"btn btn-sm role-link",on:{click:e.hide}},[t("span",[e._v(e._s(e.t("generic.close")))]),t("i",{staticClass:"icon icon-chevron-right"})])])]),t("div",{staticClass:"policy-title mt-20"},[t("h2",{staticClass:"policy-info-title"},[e._v(" "+e._s(e.packageValues.display_name)+" ")])]),t("ChartReadme",{staticClass:"mt-20",attrs:{"version-info":e.packageValues}})],1):e._e()])])])},N=[],j=a("9ce4"),B=a("7202"),D={props:{packageValues:{type:Object,required:!0}},components:{ChartReadme:B["a"]},data(){return{showSlideIn:!1,info:void 0,infoVersion:void 0,versionInfo:void 0,versionError:void 0,headerBannerSize:0}},computed:{...Object(j["a"])({theme:"prefs/theme"}),applyDarkModeBg(){return"dark"===this.theme?{"dark-mode":!0}:{}}},methods:{show(){this.showSlideIn=!0},hide(){this.showSlideIn=!1}}},G=D,Y=(a("915a"),Object(I["a"])(G,E,N,!1,null,"69136ac1",null)),q=Y.exports,F={name:"Config",props:{mode:{type:String,default:l["t"]},value:{type:Object,default:()=>{}}},components:{Loading:_["a"],Values:R,PolicyReadmePanel:q},async fetch(){},async mounted(){var e;if(this.chartValues={policy:this.value,questions:null},null!==(e=this.value)&&void 0!==e&&null!==(e=e.metadata)&&void 0!==e&&null!==(e=e.annotations)&&void 0!==e&&e[x["b"]])try{const e=await this.value.artifactHubPackageVersion();var t;if(e&&!e.error)if(this.artifactHubPackage=e,e.description&&(this.shortDescription=e.description),e.readme&&(this.policyReadme=JSON.parse(JSON.stringify(e.readme))),null!==(t=e.data)&&void 0!==t&&t[x["c"].QUESTIONS]){var a;const t=structuredClone(x["d"]),s=g()(t.spec.settings,null===(a=this.chartValues.policy)||void 0===a||null===(a=a.spec)||void 0===a?void 0:a.settings);Object(k["i"])(this.chartValues.policy.spec,"settings",s),this.policyQuestions=this.value.parsePackageMetadata(e.data[x["c"].QUESTIONS]),this.policyQuestions&&Object(k["i"])(this.chartValues,"questions",this.policyQuestions)}}catch(s){console.warn("Unable to fetch artifacthub package: "+s)}this.yamlValues=Object(w["c"])(this.value)},data(){return{artifactHubPackage:null,chartValues:null,yamlValues:"",policyQuestions:null,shortDescription:"",policyReadme:null}},methods:{showReadme(){this.$refs.readmePanel.show()}}},H=F,z=(a("da42"),Object(I["a"])(H,b,f,!1,null,"63892b7c",null)),U=z.exports,Q=function(){var e=this,t=e._self._c;return t("div",[e.hideArtifactHubBanner?e._e():[t("Banner",{staticClass:"type-banner mb-20 mt-0",attrs:{"data-testid":"kw-policy-create-ah-banner",color:"warning",closable:!0},on:{close:function(t){return e.closeBanner("updateHideBannerArtifactHub")}}},[t("div",[t("p",{directives:[{name:"clean-html",rawName:"v-clean-html",value:"Official Kubearmor policies are hosted on ArtifactHub. In order to show these, you will need to add to the whitelist-domain setting.",expression:"('Official Kubearmor policies are hosted on ArtifactHub. In order to show these, you will need to add to the whitelist-domain setting.')"}],staticClass:"mb-10"}),t("AsyncButton",{attrs:{mode:"artifactHub"},on:{click:e.addArtifactHub}})],1)])],e.value&&!e.loadingPackages?t("Wizard",{ref:"wizard",staticClass:"wizard",attrs:{"data-testid":"kw-policy-create-wizard",errors:e.errors,steps:e.steps,"show-banner":!1,"edit-first-step":!0},on:{next:e.reset,cancel:e.done,finish:e.finish},scopedSlots:e._u([{key:"policies",fn:function(){return[t("PolicyTable",{attrs:{"data-testid":"kw-policy-create-table",value:e.packages},on:{selectType:function(t){return e.selectType(t)}}})]},proxy:!0},{key:"values",fn:function(){return[t("div",{staticClass:"banner__title"},[t("h2",[e._v(e._s(e.bannerTitle))]),e._v(" "+e._s()+" "),e.customPolicy?e._e():[t("p",{staticClass:"banner__short-description"},[e._v(" "+e._s(e.shortDescription)+" ")]),t("button",{staticClass:"btn btn-sm role-link banner__readme-button",on:{click:e.showReadme}},[e._v(" "+e._s("Show Readme")+" ")])]],2),t("Values",{attrs:{value:e.value,"chart-values":e.chartValues,"yaml-values":e.yamlValues,mode:e.mode,"custom-policy":e.customPolicy},on:{editor:t=>e.yamlOption=t,updateYamlValues:t=>e.yamlValues=t}})]},proxy:!0},{key:"finish",fn:function(){return[t("AsyncButton",{attrs:{"data-testid":"kw-policy-create-finish-button",disabled:!e.canFinish,mode:"finish"},on:{click:e.finish}})]},proxy:!0}],null,!1,2519213436),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}):e._e(),e.packageValues&&!e.customPolicy?[t("PolicyReadmePanel",{ref:"readmePanel",attrs:{"package-values":e.packageValues}}),void 0]:e._e()],2)},W=[],J=a("9e74"),K=a.n(J),X=a("4048"),Z=a("6418"),ee=a("d709"),te=a("ed59"),ae=a("f010"),se=function(){var e=this,t=e._self._c;return t("div",{staticClass:"policy-table-container"},[t("div",{staticClass:"filter"},[e.attributeOptions.length?t("LabeledSelect",{staticClass:"filter__attributes",attrs:{"data-testid":"kw-table-filter-source",clearable:!0,taggable:!0,mode:e.mode,multiple:!0,"label-key":"kubearmor.utils.attributes.label",options:e.attributeOptions},on:{selecting:t=>e.handleAttributeSelect(t)},model:{value:e.attributes,callback:function(t){e.attributes=t},expression:"attributes"}}):e._e(),t("LabeledInput",{ref:"searchQuery",staticClass:"input-sm filter__search",attrs:{"data-testid":"kw-table-filter-search",mode:e.mode,label:"Search By Name",placeholder:"Enter Name"},model:{value:e.searchQuery,callback:function(t){e.searchQuery=t},expression:"searchQuery"}}),t("button",{ref:"btn",staticClass:"btn role-tertiary filter__reset",attrs:{"data-testid":"kw-table-filter-refresh",type:"button"},on:{click:e.refresh}},[t("p",[e._v(" "+e._s("Reset Filter")+" ")])])],1),t("div",{staticClass:"policy-table-actions"},[t("button",{ref:"btn",staticClass:"btn role-tertiary",attrs:{"data-testid":"kw-table-custom-buttom",type:"button"},on:{click:function(t){return e.$emit("selectType","custom")}}},[t("p",[e._v(" "+e._s("Create Custom Policy")+" ")])])]),t("SortableTableWrapper",{attrs:{rows:e.filteredSubtypes,headers:e.POLICY_TABLE_HEADERS,"table-actions":!1,"row-actions":!1,"key-field":"package_id","default-sort-by":"name",paging:!0,search:!1},on:{selectRow:t=>e.$emit("selectType",t)}})],1)},oe=[],ie=a("d1f7"),re=a.n(ie),le=a("5000"),ne=a("2cb5"),ce=a("1d19"),ue=a("466b"),de=a("8e93"),pe=a("0df0"),he=a("5191"),me=function(){var e=this,t=e._self._c;return t("div",[t("SortableTable",{ref:"sortableTable",attrs:{rows:e.rows,headers:e.headers,"table-actions":e.tableActions,"row-actions":e.rowActions,"key-field":e.keyField,"default-sort-by":e.defaultSortBy,paging:e.paging,search:e.search}})],1)},ve=[],be=a("0fb1"),fe={props:{rows:{type:Array,required:!0},headers:{type:Array,required:!0},tableActions:{type:Boolean,default:!1},rowActions:{type:Boolean,default:!1},keyField:{type:String,required:!0},defaultSortBy:{type:String,default:""},paging:{type:Boolean,default:!1},search:{type:Boolean,default:!1}},components:{SortableTable:be["b"]},data(){return{listeners:[]}},watch:{rows(){this.addRowClickListener()}},mounted(){this.addRowClickListener()},methods:{addRowClickListener(){this.$nextTick(()=>{var e;const t=null===(e=this.$refs.sortableTable)||void 0===e||null===(e=e.$el)||void 0===e?void 0:e.querySelector("table");t&&(this.removeRowClickListener(),t.querySelectorAll("tbody tr").forEach((e,t)=>{const a=()=>this.$emit("selectRow",this.rows[t]);null===e||void 0===e||e.addEventListener("click",a),this.listeners.push({row:e,listener:a})}))})},removeRowClickListener(){var e;null===(e=this.listeners)||void 0===e||e.forEach(({row:e,listener:t})=>null===e||void 0===e?void 0:e.removeEventListener("click",t)),this.listeners=[]}}},ye=fe,ge=Object(I["a"])(ye,me,ve,!1,null,null,null),we=ge.exports,ke={props:{mode:{type:String,default:l["n"]},value:{type:Array,default:()=>[]}},components:{Checkbox:pe["a"],LabeledSelect:ue["a"],LabeledInput:de["a"],SortableTableWrapper:we},fetch(){const e=this.$route.query;this.category=e[l["c"]]||"",this.searchQuery=e[l["f"]]||""},data(){return{KUBEARMOR_PRODUCT_NAME:x["i"],POLICY_TABLE_HEADERS:he["e"],attributes:[this.t("kubearmor.utils.attributes.optionLabels.all")],searchQuery:null,hidePackages:[]}},computed:{allSchemas(){return this.$store.getters["cluster/all"](S["w"])},filteredPackages(){var e;const t=null===(e=this.value)||void 0===e?void 0:e.filter(e=>{const t=this.isPrerelease(e);return!(!this.showPreRelease&&t)});return t||[]},filteredSubtypes(){const e=this.filteredPackages||[],t=e.filter(e=>{if(this.searchQuery){const t=this.searchQuery.split(/\s*[, ]\s*/).map(e=>Object(ne["e"])(e,!1)),a=t.every(t=>{var a,s;return(null===(a=e.display_name)||void 0===a?void 0:a.match(t))||e.description&&e.description.match(t)||(null===(s=e.keywords)||void 0===s?void 0:s.some(e=>e.match(t)))});if(!a)return!1}if(this.attributes.length){if(this.attributes.includes(this.t("kubearmor.utils.attributes.optionLabels.all")))return!0;const t=this.attributes.some(t=>{var a;const s=this.featureOptions.includes(t);if(s){var o;const a="Mutation"===t?"mutation":"contextAwareResources";return null===(o=e.data)||void 0===o?void 0:o["kubearmor/"+a]}return null===(a=e.data)||void 0===a||null===(a=a["kubearmor/resources"])||void 0===a?void 0:a.includes(t)});if(!t)return!1}return!0});return Object(ce["a"])(t,["name"])},attributeOptions(){const e=[];return this.resourceOptions.length&&e.push({kind:"group",label:this.t("kubearmor.utils.attributes.optionLabels.resource")},...this.resourceOptions),this.featureOptions.length&&e.push({kind:"group",label:this.t("kubearmor.utils.attributes.optionLabels.features")},...this.featureOptions),e.length&&e.unshift(this.t("kubearmor.utils.attributes.optionLabels.all"),{kind:"divider",label:"divider"}),e},featureOptions(){const e=[];for(const s of this.filteredPackages){var t,a;"true"===(null===s||void 0===s||null===(t=s.data)||void 0===t?void 0:t["kubearmor/mutation"])&&e.push("Mutation"),null!==s&&void 0!==s&&null!==(a=s.data)&&void 0!==a&&a["kubearmor/contextAwareResources"]&&e.push("Context Aware")}return e&&0!==e.length?[...new Set(e.filter(Boolean))]:[]},resourceOptions(){var e;const t=null===(e=this.filteredPackages)||void 0===e?void 0:e.flatMap(e=>{var t;return(null===e||void 0===e||null===(t=e.data)||void 0===t?void 0:t["kubearmor/resources"])||[]});return t&&0!==t.length?[...new Set(t.filter(Boolean))]:[]},showPreRelease(){return this.$store.getters["prefs/get"](le["j"])}},methods:{isPrerelease(e){return!!re.a.prerelease(e.version)},refresh(){this.category=null,this.attributes=[this.t("kubearmor.utils.attributes.optionLabels.all")],this.searchQuery=null},handleAttributeSelect(e){const t=this.t("kubearmor.utils.attributes.optionLabels.all");e.includes(t)&&(1===e.length||0!==e.indexOf(t))?this.attributes=[t]:this.attributes=e.filter(e=>e!==t)}}},_e=ke,xe=(a("1f6e"),Object(I["a"])(_e,se,oe,!1,null,"556e35b7",null)),Oe=xe.exports,Ce={name:"Create",props:{mode:{type:String,default:l["n"]},value:{type:Object,default:()=>({})}},components:{AsyncButton:ee["b"],Banner:Z["a"],Loading:_["a"],Wizard:te["a"],PolicyTable:Oe,PolicyReadmePanel:q,Values:R},mixins:[n["a"]],created(){this.$store.dispatch("management/all",{type:S["k"].SETTING})},async fetch(){var e,t,a;this.hasArtifactHub&&await this.getPackages(),this.value.apiVersion=`${null===(e=this.schema)||void 0===e||null===(e=e.attributes)||void 0===e?void 0:e.group}.${null===(t=this.schema)||void 0===t||null===(t=t.attributes)||void 0===t?void 0:t.version}`,this.value.kind=null===(a=this.schema)||void 0===a||null===(a=a.attributes)||void 0===a?void 0:a.kind},data(){return{bannerTitle:null,shortDescription:null,loadingPackages:!1,packages:null,repository:null,type:null,typeModule:null,version:null,chartValues:{policy:{},questions:{}},yamlValues:"",hasCustomPolicy:!1,yamlOption:"form",finishAttempts:0,stepPolicies:{hidden:!1,name:"policies",label:"Policies",ready:!1,showSteps:!1,weight:99},stepValues:{name:"values",label:"Values",ready:!0,showSteps:!1,weight:98},hideArtifactHubBanner:!1}},computed:{isCreate(){return this.realMode===l["n"]},isSelected(){return!!this.type},customPolicy(){return"custom"===this.type},canFinish(){var e;return this.yamlOption===x["j"].YAML||!(null===(e=this.chartValues)||void 0===e||null===(e=e.policy)||void 0===e||!e.metadata.name)&&this.hasRequired},hasRequired(){var e;if(!d()(null===(e=this.chartValues)||void 0===e?void 0:e.policy)&&this.chartValues.policy.spec){const{selector:e,process:t,file:a}=this.chartValues.policy.spec,s=["matchLabels"],o=this.acceptedValues(e,s),i=["matchPaths","matchDirectories","matchPatterns"],r=i.some(e=>!d()(null===t||void 0===t?void 0:t[e])&&t[e].some(e=>e.path||e.dir||e.pattern)),l=["matchPaths","matchDirectories","matchPatterns"],n=l.some(e=>!d()(null===a||void 0===a?void 0:a[e])&&a[e].some(e=>e.path||e.dir||e.pattern));if(!d()(o)&&r&&n)return!0}return!1},hasArtifactHub(){return this.value.artifactHubWhitelist},whitelistSetting(){return this.$store.getters["management/all"](S["k"].SETTING).find(e=>"whitelist-domain"===e.id)},packageValues(){var e,t;return null!==(e=this.type)&&void 0!==e&&e.name?null===(t=this.packages)||void 0===t?void 0:t.find(e=>e.name===this.type.name):null},steps(){return[this.stepPolicies,this.stepValues].sort((e,t)=>t.weight-e.weight)}},watch:{type(e){null!==e&&void 0!==e&&e.name&&console.log("Type updated, fetching packageValues")}},methods:{acceptedValues(e,t){if(d()(t))return null;let a;return a=Array.isArray(e)?e.find(e=>this.checkProperties(e,t)):this.checkProperties(e,t),a},checkProperties(e,t){const a=[];if(!d()(t)){for(const s of t.values())d()(e[s])||a.push(s);if(t&&K()(a,t))return e}return null},async closeBanner(e,t=0){try{const a=await this.$store.dispatch("kubearmor/"+e,!0);0===t&&"error"===(null===a||void 0===a?void 0:a.type)&&500===(null===a||void 0===a?void 0:a.status)&&await this.closeBanner(e,t+1)}catch(a){console.error("Error closing banner:",a)}},async createNamespace(e){const t=this.$store.getters["cluster/all"](S["m"]),a={type:S["m"],metadata:{name:e},disableOpenApiValidation:!1},s=null===t||void 0===t?void 0:t.find(t=>{var a;return(null===t||void 0===t||null===(a=t.metadata)||void 0===a?void 0:a.name)===e});if(!s){const e=await this.$store.dispatch("cluster/create",a);try{await e.save()}catch(o){this.errors.push(o)}}},async addArtifactHub(){try{this.loadingPackages=!0,await this.updateWhitelist("artifacthub.io"),await this.getPackages(),this.loadingPackages=!1,this.hideArtifactHubBanner=!0}catch(e){v({error:e,store:this.$store}),this.loadingPackages=!1}},async updateWhitelist(e){const t=this.whitelistSetting;if(!t||!t.value)return void console.warn("Whitelist setting not found or value is undefined");const a=t.value.split(",");if(a.includes(e))console.log(e+" is already in the whitelist.");else{a.push(e),t.value=a.join();try{await t.save(),console.log(`Successfully added ${e} to the whitelist.`)}catch(s){const e=(null===s||void 0===s?void 0:s.data)||s;console.error("Error saving whitelist:",e)}}},async artifactHubRepo(){let e="/meta/proxy/";const t="packages/search",a={kind:19,limit:50};e+=`${x["a"]}/${t}`,e=Object(X["b"])(e,a);try{return await this.$store.dispatch("management/request",{url:e,redirectUnauthorized:!1},{root:!0})}catch(s){throw console.error("Error fetching ArtifactHub reposito ReferenceError: chartValues is not definedry:",s),s}},parsePackageMetadata(e){if(e){const t=JSON.parse(JSON.stringify(e));return r.a.load(t)}return null},artifactHubPackage(e){try{const t=`/meta/proxy/${x["a"]}/packages/kubearmor/${e.repository.name}/${e.name}`;return this.$store.dispatch("management/request",{url:t,redirectUnauthorized:!1},{root:!0})}catch(t){throw console.warn("Error fetching package: "+t),t}},done(){var e;this.$router.replace({name:"c-cluster-product-resource",params:{cluster:this.$route.params.cluster,product:"kubearmor",resource:null===(e=this.schema)||void 0===e?void 0:e.id}})},async finish(e){try{var t;let o;var a,s;if("YAML"===this.yamlOption)o=r.a.load(this.yamlValues);else o=null!==(a=this.chartValues)&&void 0!==a&&a.policy?this.chartValues.policy:r.a.load(this.yamlValues);if(m(o),this.finishAttempts>0?(Object.keys(this.value.spec).forEach(e=>{e in o.spec||this.$delete(this.value.spec,e)}),Object.keys(o.spec).forEach(e=>{this.$set(this.value.spec,e,o.spec[e])})):g()(this.value,o),this.chartType===x["g"].ADMISSION_POLICY&&null!==(t=this.chartValues)&&void 0!==t&&t.isNamespaceNew)await this.createNamespace(null===(s=this.value)||void 0===s||null===(s=s.metadata)||void 0===s?void 0:s.namespace);await this.attemptSave(e)}catch(o){console.error("Error creating Kubearmor policy:",o)}},async attemptSave(e){if(await this.save(e),this.errors&&this.errors.length>0){const e=new Error("Save operation failed");throw this.finishAttempts++,e}},async getPackages(){try{var e;if(this.repository=await this.artifactHubRepo(),(null===(e=this.repository)||void 0===e?void 0:e.packages.length)>0){const e=await Promise.all(this.repository.packages.map(this.packageDetails));this.packages=e.filter(e=>{var t;return"true"!==(null===e||void 0===e||null===(t=e.data)||void 0===t?void 0:t["kubearmor/hidden-ui"])})}}catch(t){v({error:t,store:this.$store}),console.warn("Error fetching packages:",t)}},async packageDetails(e){try{return await this.artifactHubPackage(e)}catch(t){console.error("Error fetching package details:",t)}},policyQuestions(){var e;const t=structuredClone(x["d"]);if(this.customPolicy){const e={spec:{contextAwareResources:[]}};return g()(t,e),Object(k["i"])(this.chartValues,"policy",t),void(this.yamlValues=Object(w["c"])(t))}const a=this.packages.find(e=>{var t;return e.name===(null===(t=this.type)||void 0===t?void 0:t.name)});if(!a)return;const s=this.parsePackageMetadata(null===a||void 0===a||null===(e=a.data)||void 0===e?void 0:e[ae["a"].QUESTIONS]);let o;try{o=r.a.load(Object.values(a.data.policies)[0])}catch(l){return void console.error("Error loading policy YAML:",l)}const i=g()(t,o);Object(k["i"])(this.chartValues,"policy",i),this.yamlValues=Object(w["c"])(i),s&&Object(k["i"])(this.chartValues,"questions",s),this.shortDescription=null===a||void 0===a?void 0:a.description},reset(e){this.$nextTick(()=>{var t;if((null===(t=e.step)||void 0===t?void 0:t.name)===this.stepPolicies.name){const e=["errors","bannerTitle","shortDescription","type","typeModule","version","hasCustomPolicy"];e.forEach(e=>this[e]=null),this.stepPolicies.ready=!1,this.stepValues.hidden=!1,this.chartValues={policy:{},questions:{}},this.yamlOption="form",this.yamlValues=""}})},selectType(e){var t;this.type=e,this.customPolicy?this.$set(this,"hasCustomPolicy",!0):this.$set(this,"hasCustomPolicy",!1),this.policyQuestions(),this.stepPolicies.ready=!0,this.$refs.wizard.next(),this.bannerTitle=this.customPolicy?"Custom Policy":null===e||void 0===e?void 0:e.display_name,this.typeModule=null===(t=this.chartValues)||void 0===t||null===(t=t.policy)||void 0===t?void 0:t.spec.module},showReadme(){this.$nextTick(()=>{this.packageValues&&this.$refs.readmePanel?this.$refs.readmePanel.show():console.warn("PolicyReadmePanel is not rendered or packageValues are missing.")})}}},Se=Ce,Pe=(a("9f26"),Object(I["a"])(Se,Q,W,!1,null,"2761b367",null)),$e=Pe.exports,Me={name:"AdmissionPolicy",props:{value:{type:Object,required:!0},mode:{type:String,default:l["p"]},realMode:{type:String,default:l["p"]}},components:{CruResource:c["a"],Configed:U,Created:$e},mixins:[n["a"]],provide(){return{chartType:this.value.type,realMode:this.realMode}},computed:{isCreate(){return this.realMode===l["n"]}},methods:{async finish(e){try{m(this.value),await this.save(e)}catch(t){v({error:t,store:this.$store})}},updateYamlValuesFromEdit(e){const t=r.a.load(e);m(t),Object.assign(this.value,t)}}},Ve=Me,Le=(a("099d"),Object(I["a"])(Ve,s,o,!1,null,"7d654f0e",null));t["default"]=Le.exports},e646:function(e,t,a){var s=a("61c1");s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var o=a("0ed3").default;o("058848b8",s,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=kubearmor-0.1.0.umd.min.edit.js.map \ No newline at end of file diff --git a/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.edit.js.map b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.edit.js.map new file mode 100644 index 0000000..27b2979 --- /dev/null +++ b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.edit.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://kubearmor-0.1.0/./chart/kubearmor/admission/TagsInput.vue?0021","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/index.vue","webpack://kubearmor-0.1.0/chart/kubearmor/admission/index.vue","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/index.vue?71ba","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/index.vue?5131","webpack://kubearmor-0.1.0/./edit/security.kubearmor.com.kubearmorpolicy/index.vue?f465","webpack://kubearmor-0.1.0/./components/Policies/Values.vue?be43","webpack://kubearmor-0.1.0/./components/Policies/Values.vue?91e8","webpack://kubearmor-0.1.0/./chart lazy ^\\.\\/.*$ namespace object","webpack://kubearmor-0.1.0/./components/Policies/PolicyTable.vue?4b16","webpack://kubearmor-0.1.0/./components/Policies/PolicyTable.vue?5ba8","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/FileMatch.vue","webpack://kubearmor-0.1.0/chart/kubearmor/admission/FileMatch.vue","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/FileMatch.vue?a6f2","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/FileMatch.vue?6384","webpack://kubearmor-0.1.0/./components/Policies/Configged.vue?f1f8","webpack://kubearmor-0.1.0/./chart/kubearmor/_index.vue","webpack://kubearmor-0.1.0/chart/kubearmor/_index.vue","webpack://kubearmor-0.1.0/./chart/kubearmor/_index.vue?ca14","webpack://kubearmor-0.1.0/./chart/kubearmor/_index.vue?d769","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/TagsInput.vue","webpack://kubearmor-0.1.0/chart/kubearmor/admission/TagsInput.vue","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/TagsInput.vue?71e4","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/TagsInput.vue?0279","webpack://kubearmor-0.1.0/./chart sync ^\\.\\/.*$","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/General.vue?6025","webpack://kubearmor-0.1.0/./components/Policies/Created.vue?8fcb","webpack://kubearmor-0.1.0/./components/Policies/PolicyTable.vue?3e94","webpack://kubearmor-0.1.0/./components/Policies/Configged.vue?6dce","webpack://kubearmor-0.1.0/./components/Policies/PolicyReadmePanel.vue?93dd","webpack://kubearmor-0.1.0/./edit/security.kubearmor.com.kubearmorpolicy/index.vue?9460","webpack://kubearmor-0.1.0/./components/Policies/PolicyReadmePanel.vue?7495","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/BasicConfig.vue","webpack://kubearmor-0.1.0/chart/kubearmor/admission/BasicConfig.vue","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/BasicConfig.vue?f073","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/BasicConfig.vue?0b6c","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/General.vue?3185","webpack://kubearmor-0.1.0/./components/Policies/PolicyReadmePanel.vue?396c","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/NetworkMatch.vue","webpack://kubearmor-0.1.0/chart/kubearmor/admission/NetworkMatch.vue","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/NetworkMatch.vue?47e7","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/NetworkMatch.vue?56aa","webpack://kubearmor-0.1.0/./components/Policies/Created.vue?a024","webpack://kubearmor-0.1.0/./components/Policies/Values.vue?6451","webpack://kubearmor-0.1.0/./components/Policies/Created.vue?2541","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/ProcessMatch.vue","webpack://kubearmor-0.1.0/chart/kubearmor/admission/ProcessMatch.vue","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/ProcessMatch.vue?f6f9","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/ProcessMatch.vue?5d3f","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/SelectorMatch.vue","webpack://kubearmor-0.1.0/chart/kubearmor/admission/SelectorMatch.vue","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/SelectorMatch.vue?1236","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/SelectorMatch.vue?3337","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/TagsInput.vue?a3ae","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/General.vue","webpack://kubearmor-0.1.0/chart/kubearmor/admission/General.vue","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/General.vue?f6aa","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/General.vue?ec7d","webpack://kubearmor-0.1.0/./edit/security.kubearmor.com.kubearmorpolicy/index.vue?89d6","webpack://kubearmor-0.1.0/./components/Policies/Configged.vue?4d18","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/TagsInput.vue?4b8e","webpack://kubearmor-0.1.0/./edit/security.kubearmor.com.kubearmorpolicy/index.vue","webpack://kubearmor-0.1.0/./utils/object.ts","webpack://kubearmor-0.1.0/./utils/handle-growl.ts","webpack://kubearmor-0.1.0/./components/Policies/Configged.vue","webpack://kubearmor-0.1.0/./components/Policies/Values.vue","webpack://kubearmor-0.1.0/components/Policies/Values.vue","webpack://kubearmor-0.1.0/./components/Policies/Values.vue?cccc","webpack://kubearmor-0.1.0/./components/Policies/Values.vue?fa25","webpack://kubearmor-0.1.0/./components/Policies/PolicyReadmePanel.vue","webpack://kubearmor-0.1.0/components/Policies/PolicyReadmePanel.vue","webpack://kubearmor-0.1.0/./components/Policies/PolicyReadmePanel.vue?d324","webpack://kubearmor-0.1.0/./components/Policies/PolicyReadmePanel.vue?841f","webpack://kubearmor-0.1.0/components/Policies/Configged.vue","webpack://kubearmor-0.1.0/./components/Policies/Configged.vue?d939","webpack://kubearmor-0.1.0/./components/Policies/Configged.vue?e74b","webpack://kubearmor-0.1.0/./components/Policies/Created.vue","webpack://kubearmor-0.1.0/./components/Policies/PolicyTable.vue","webpack://kubearmor-0.1.0/./components/SortableTableWrapper.vue","webpack://kubearmor-0.1.0/components/SortableTableWrapper.vue","webpack://kubearmor-0.1.0/./components/SortableTableWrapper.vue?2fa9","webpack://kubearmor-0.1.0/./components/SortableTableWrapper.vue?26ed","webpack://kubearmor-0.1.0/components/Policies/PolicyTable.vue","webpack://kubearmor-0.1.0/./components/Policies/PolicyTable.vue?ae18","webpack://kubearmor-0.1.0/./components/Policies/PolicyTable.vue?3d2d","webpack://kubearmor-0.1.0/components/Policies/Created.vue","webpack://kubearmor-0.1.0/./components/Policies/Created.vue?e5ea","webpack://kubearmor-0.1.0/./components/Policies/Created.vue?01ec","webpack://kubearmor-0.1.0/edit/security.kubearmor.com.kubearmorpolicy/index.vue","webpack://kubearmor-0.1.0/./edit/security.kubearmor.com.kubearmorpolicy/index.vue?f58f","webpack://kubearmor-0.1.0/./edit/security.kubearmor.com.kubearmorpolicy/index.vue?ab71","webpack://kubearmor-0.1.0/./chart/kubearmor/admission/General.vue?5008"],"names":["render","_vm","this","_c","_self","attrs","mode","targetNamespace","isCustom","model","value","chartValues","callback","$$v","expression","policy","$set","staticRenderFns","props","customPolicy","type","Boolean","default","String","_CREATE","Object","required","components","General","Tab","SelectorMatch","ProcessMatch","FileMatch","TagsInput","BasicConfig","NetworkMatch","inject","data","activeTab","created","message","computed","hasFile","_this$chartValues","isEmpty","spec","file","hasProcess","_this$chartValues2","process","hasSelector","_this$chartValues3","selector","isCreate","_this$chartValues4","forceNamespace","metadata","namespace","methods","setActiveTab","tab","component","content","__esModule","module","i","locals","exports","add","___CSS_LOADER_API_IMPORT___","push","map","webpackAsyncContext","req","Promise","resolve","then","__webpack_require__","o","e","Error","code","id","keys","staticClass","directives","name","rawName","severity","actionOptions","action","_v","path","readOnly","ownerOnly","fromSource","scopedSlots","_u","key","fn","row","booleanOptions","sourceProps","matchPaths","dir","recursive","matchDirectories","pattern","matchPatterns","ArrayListGrouped","LabeledInput","LabeledSelect","RadioGroup","label","watch","deep","handler","newVal","$emit","recommendedPolicies","enabled","chart","Checkbox","_l","tags","tag","index","domProps","on","$event","target","composing","updateTags","removeTag","addTag","Array","newTags","splice","webpackContext","webpackContextResolve","undefined","protocol","protocolOptions","network","matchProtocols","ref","t","matchLabels","KeyValue","InfoBox","$fetchState","pending","isGlobal","isNamespaceNew","Loading","NameNsDescription","Banner","$store","getters","KUBEARMOR","POLICY_SERVER","dispatch","_this$value","chartType","ADMISSION_POLICY","set","initialPolicyMode","neu","policyMode","beforeUpdate","$nextTick","_this$$refs","wrapper","$refs","nameNsDescriptionWrapper","children","querySelectorAll","length","classList","remove","CLUSTER_ADMISSION_POLICY","modeDisabled","_this$value2","policyServers","policyServerOptions","_this$policyServers","out","p","showModeBanner","realMode","finish","updateYamlValuesFromEdit","removeEmptyAttrs","obj","forEach","isArray","isObject","handleGrowl","config","_config$error","error","store","toLowerCase","title","_statusText","timeout","root","shortDescription","_s","policyReadme","showReadme","_e","yamlValues","artifactHubPackage","isEdit","YAML_OPTIONS","yamlOption","showForm","tabChanged","valuesComponent","originalYamlValues","editorMode","updateYamlValues","currentYamlValues","preYamlOption","_VIEW","ButtonGroup","ResourceCancelModal","Tabbed","YamlEditor","version","repoType","repoName","chartName","KUBEARMOR_CHARTS","CONTROLLER","loadValuesComponent","console","warn","generateYaml","VALUES_STATE","FORM","mounted","old","YAML","saferDump","EDITOR_MODES","EDIT_CODE","_EDIT","artifactHubPackageVersion","artifactHubWhitelist","_this$metadata","pkgAnnotation","annotations","ARTIFACTHUB_PKG_ANNOTATION","url","ARTIFACTHUB_ENDPOINT","$dispatch","redirectUnauthorized","parsePackageMetadata","parsed","JSON","parse","stringify","jsyaml","load","_this$yamlValues","schemas","SCHEMA","cloned","structuredClone","createYaml","haveComponent","importComponent","window","scrollTop","style","showSlideIn","hide","class","packageValues","display_name","ChartReadme","info","infoVersion","versionInfo","versionError","headerBannerSize","mapGetters","theme","applyDarkModeBg","show","Values","PolicyReadmePanel","questions","ahPackage","_ahPackage$data","description","readme","DATA_ANNOTATIONS","QUESTIONS","_this$chartValues$pol","defaultPolicy","DEFAULT_POLICY","merged","merge","settings","policyQuestions","readmePanel","hideArtifactHubBanner","closeBanner","addArtifactHub","loadingPackages","errors","steps","reset","done","packages","selectType","proxy","bannerTitle","canFinish","attributeOptions","handleAttributeSelect","attributes","searchQuery","refresh","filteredSubtypes","POLICY_TABLE_HEADERS","rows","headers","tableActions","rowActions","keyField","defaultSortBy","paging","search","SortableTable","listeners","addRowClickListener","_this$$refs$sortableT","table","sortableTable","$el","querySelector","removeRowClickListener","listener","addEventListener","_this$listeners","removeEventListener","SortableTableWrapper","fetch","query","$route","category","CATEGORY","SEARCH_QUERY","KUBEARMOR_PRODUCT_NAME","hidePackages","allSchemas","filteredPackages","filter","isPreRelease","isPrerelease","showPreRelease","subtypes","subtype","searchTokens","split","x","ensureRegex","matchesSearch","every","token","_subtype$display_name","_subtype$keywords","match","keywords","some","keyword","includes","matchesAttributes","attribute","_subtype$data2","isFeature","featureOptions","_subtype$data","normalizedAttribute","sortBy","resourceOptions","kind","unshift","featuresList","_subtype$data3","_subtype$data4","Set","_this$filteredPackage","resources","flatMap","_subtype$data5","SHOW_PRE_RELEASE","semver","prerelease","selected","allOption","indexOf","attr","AsyncButton","Wizard","PolicyTable","mixins","CreateEditView","MANAGEMENT","SETTING","_this$schema","_this$schema2","_this$schema3","hasArtifactHub","getPackages","apiVersion","schema","group","repository","typeModule","hasCustomPolicy","finishAttempts","stepPolicies","hidden","ready","showSteps","weight","stepValues","isSelected","hasRequired","selectorRequiredFields","selectorFilledFields","acceptedValues","processRequiredFields","processFilledFields","field","item","fileRequiredFields","fileFilledFields","whitelistSetting","find","s","_this$type","_this$packages","sort","a","b","newType","log","requiredProp","requiredKeys","accepted","prop","checkProperties","values","isEqual","banner","retry","res","status","ns","allNamespaces","NAMESPACE","nsTemplate","disableOpenApiValidation","existing","n","_n$metadata","nsResource","save","updateWhitelist","whitelist","whitelistValue","join","params","limit","addParams","pkg","_this$schema4","$router","replace","cluster","product","resource","event","$delete","createNamespace","attemptSave","_this$repository","artifactHubRepo","all","packageDetails","_pkg$data","_policyDetails$data","updatedCustomPolicy","contextAwareResources","policyDetails","_this$type2","packageQuestions","updatedPolicy","policies","mergedPolicy","_event$step","step","initialState","_this$chartValues5","wizard","next","CruResource","Configed","Created","provide","val","assign"],"mappings":"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","file":"kubearmor-0.1.0.umd.min.edit.js","sourcesContent":["export * from \"-!../../../../../node_modules/vue-style-loader/index.js??ref--8-oneOf-1-0!../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TagsInput.vue?vue&type=style&index=0&id=66b7c3cb&prod&scoped=true&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('Tab',{attrs:{\"name\":\"general\",\"label\":('General'),\"weight\":99}},[_c('General',{attrs:{\"data-testid\":\"kw-policy-config-general-tab\",\"mode\":_vm.mode,\"target-namespace\":_vm.targetNamespace,\"is-custom\":_vm.isCustom},model:{value:(_vm.chartValues),callback:function ($$v) {_vm.chartValues=$$v},expression:\"chartValues\"}}),_c('BasicConfig',{attrs:{\"mode\":_vm.mode},model:{value:(_vm.chartValues.policy),callback:function ($$v) {_vm.$set(_vm.chartValues, \"policy\", $$v)},expression:\"chartValues.policy\"}})],1),_c('Tab',{attrs:{\"name\":\"selector\",\"label\":'Selector',\"weight\":97}},[_c('SelectorMatch',{attrs:{\"data-testid\":\"ka-policy-config-selector-tab\",\"mode\":_vm.mode},model:{value:(_vm.chartValues.policy),callback:function ($$v) {_vm.$set(_vm.chartValues, \"policy\", $$v)},expression:\"chartValues.policy\"}})],1),_c('Tab',{attrs:{\"name\":\"file\",\"label\":'File Configuration',\"weight\":96}},[_c('FileMatch',{attrs:{\"data-testid\":\"ka-policy-config-file-tab\",\"mode\":_vm.mode},model:{value:(_vm.chartValues.policy),callback:function ($$v) {_vm.$set(_vm.chartValues, \"policy\", $$v)},expression:\"chartValues.policy\"}})],1),_c('Tab',{attrs:{\"name\":\"process\",\"label\":'Process Configuration',\"weight\":96}},[_c('ProcessMatch',{attrs:{\"data-testid\":\"ka-policy-config-process-tab\",\"mode\":_vm.mode},model:{value:(_vm.chartValues.policy),callback:function ($$v) {_vm.$set(_vm.chartValues, \"policy\", $$v)},expression:\"chartValues.policy\"}})],1),_c('Tab',{attrs:{\"name\":\"network\",\"label\":'Network Configuration',\"weight\":96}},[_c('NetworkMatch',{attrs:{\"data-testid\":\"ka-policy-config-network-tab\",\"mode\":_vm.mode},model:{value:(_vm.chartValues.policy),callback:function ($$v) {_vm.$set(_vm.chartValues, \"policy\", $$v)},expression:\"chartValues.policy\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f9e56978\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=7d654f0e&prod&lang=scss&scoped=true\"","// style-loader: Adds some css to the DOM by adding a \n ","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TagsInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TagsInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TagsInput.vue?vue&type=template&id=66b7c3cb&scoped=true\"\nimport script from \"./TagsInput.vue?vue&type=script&lang=js\"\nexport * from \"./TagsInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./TagsInput.vue?vue&type=style&index=0&id=66b7c3cb&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66b7c3cb\",\n null\n \n)\n\nexport default component.exports","var map = {\n\t\"./kubearmor/_index\": \"3953\",\n\t\"./kubearmor/_index.vue\": \"3953\",\n\t\"./kubearmor/admission\": \"061b\",\n\t\"./kubearmor/admission/\": \"061b\",\n\t\"./kubearmor/admission/BasicConfig\": \"7ce4\",\n\t\"./kubearmor/admission/BasicConfig.vue\": \"7ce4\",\n\t\"./kubearmor/admission/FileMatch\": \"2876\",\n\t\"./kubearmor/admission/FileMatch.vue\": \"2876\",\n\t\"./kubearmor/admission/General\": \"bafb\",\n\t\"./kubearmor/admission/General.vue\": \"bafb\",\n\t\"./kubearmor/admission/NetworkMatch\": \"9541\",\n\t\"./kubearmor/admission/NetworkMatch.vue\": \"9541\",\n\t\"./kubearmor/admission/ProcessMatch\": \"a600\",\n\t\"./kubearmor/admission/ProcessMatch.vue\": \"a600\",\n\t\"./kubearmor/admission/SelectorMatch\": \"a6b3\",\n\t\"./kubearmor/admission/SelectorMatch.vue\": \"a6b3\",\n\t\"./kubearmor/admission/TagsInput\": \"3bda\",\n\t\"./kubearmor/admission/TagsInput.vue\": \"3bda\",\n\t\"./kubearmor/admission/index\": \"061b\",\n\t\"./kubearmor/admission/index.vue\": \"061b\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"5ea7\";","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".name-col div[data-v-1d1d0d06]:after,.name-col div[data-v-1d1d0d06]:before{content:unset;display:unset}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"[data-v-2761b367] .header{display:none}[data-v-2761b367] .controls-row{position:sticky;width:auto}[data-v-2761b367] .controls-row .controls-steps{display:flex}[data-v-2761b367] .custom{min-height:110px}[data-v-2761b367] .subtype{height:110px;margin:10px;position:relative;border-radius:calc(var(--border-radius)*1.5);border:1px solid var(--border);text-decoration:none!important;color:var(--body-text)!important}[data-v-2761b367] .subtype:hover:not(.disabled){box-shadow:0 0 30px var(--shadow);transition:box-shadow .1s ease-in-out;cursor:pointer;text-decoration:none!important}[data-v-2761b367] .subtype__metadata{padding:10px}[data-v-2761b367] .subtype__metadata__description,[data-v-2761b367] .subtype__metadata__label{padding-right:20px}[data-v-2761b367] .subtype__badge{position:absolute;right:0;top:0;padding:4px 5px;border-bottom-left-radius:var(--border-radius)}[data-v-2761b367] .subtype__badge label{font-size:12px;line-height:12px;text-align:center;display:block;white-space:no-wrap;text-overflow:ellipsis;color:var(--app-rancher-accent-text);margin:0}[data-v-2761b367] .subtype__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;line-height:normal}[data-v-2761b367] .subtype__description{margin-right:10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;text-overflow:ellipsis;color:var(--input-label)}[data-v-2761b367] .footer-error{margin-top:15px}.wizard[data-v-2761b367]{position:relative;height:100%;z-index:1}.banner__title[data-v-2761b367]{padding-top:10px;margin-bottom:10px;border-bottom:1px solid var(--border);min-height:60px}.banner__readme-button[data-v-2761b367]{padding:0 7px 0 0}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a ","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./General.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./General.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./General.vue?vue&type=template&id=1d1d0d06&scoped=true\"\nimport script from \"./General.vue?vue&type=script&lang=js\"\nexport * from \"./General.vue?vue&type=script&lang=js\"\nimport style0 from \"./General.vue?vue&type=style&index=0&id=1d1d0d06&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d1d0d06\",\n null\n \n)\n\nexport default component.exports","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"[data-v-7d654f0e] .cru__footer{z-index:1}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Configged.vue?vue&type=style&index=0&id=63892b7c&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".tags-input[data-v-66b7c3cb]{display:flex;flex-direction:column;gap:8px}.tag-item[data-v-66b7c3cb]{display:flex;align-items:center}.tag-input[data-v-66b7c3cb]{flex:1;padding:6px;margin-right:6px}.remove-btn[data-v-66b7c3cb]{background-color:red}.add-btn[data-v-66b7c3cb],.remove-btn[data-v-66b7c3cb]{color:#fff;border:none;cursor:pointer}.add-btn[data-v-66b7c3cb]{margin-top:10px;background-color:#5cb85c;padding:5px 10px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isCreate)?_c('Created',{attrs:{\"value\":_vm.value,\"mode\":_vm.mode}}):_c('CruResource',{attrs:{\"resource\":_vm.value,\"mode\":_vm.realMode,\"can-yaml\":false},on:{\"finish\":_vm.finish}},[_c('Configed',{attrs:{\"value\":_vm.value,\"mode\":_vm.realMode},on:{\"updateYamlValues\":_vm.updateYamlValuesFromEdit}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import isEmpty from 'lodash/isEmpty';\nimport isObject from 'lodash/isObject';\n\nexport function removeEmptyAttrs(obj: any): any {\n Object.keys(obj).forEach((key: any) => {\n const value = obj[key];\n\n // Check for value being empty, null, or an empty array\n if ( value === undefined || value === null || value === '' || (Array.isArray(value) && !value.length) ) {\n delete obj[key];\n } else if ( isObject(value) ) {\n // Recursively clean the object\n removeEmptyAttrs(value);\n\n // After cleaning, if the object is empty, delete it\n if ( isEmpty(value) ) {\n delete obj[key];\n }\n }\n });\n\n // Added check: If the parent object is now empty, return null to signal removal\n if ( isEmpty(obj) ) {\n return null;\n }\n\n return obj;\n}\n","export interface GrowlConfig {\n error: {\n data?: {\n _statusText: String,\n message: String\n }\n _statusText: String,\n message: String\n },\n store?: any,\n type?: String\n}\n\nexport function handleGrowl(config: GrowlConfig): void {\n const error = config.error?.data || config.error;\n const type = config.type || 'Error';\n\n config.store.dispatch(`growl/${ type.toLowerCase() }`, {\n title: error._statusText || type,\n message: error.message,\n timeout: 5000,\n }, { root: true });\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading'):_c('div',[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"banner__title\"},[(_vm.shortDescription)?[_c('p',{staticClass:\"banner__short-description\"},[_vm._v(\" \"+_vm._s(_vm.shortDescription)+\" \")]),(_vm.policyReadme)?_c('button',{staticClass:\"btn btn-sm role-link banner__readme-button\",on:{\"click\":_vm.showReadme}},[_vm._v(\" \"+_vm._s(('Show Readme'))+\" \")]):_vm._e()]:_vm._e()],2),_c('Values',{attrs:{\"value\":_vm.value,\"chart-values\":_vm.chartValues,\"yaml-values\":_vm.yamlValues,\"mode\":_vm.mode},on:{\"updateYamlValues\":function($event){return _vm.$emit('updateYamlValues', $event)}}})],1),(_vm.policyReadme)?[_c('PolicyReadmePanel',{ref:\"readmePanel\",attrs:{\"package-values\":_vm.artifactHubPackage}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading',{attrs:{\"mode\":\"relative\"}}):_c('div',[(_vm.isCreate || _vm.isEdit)?_c('div',{staticClass:\"step__values__controls\"},[_c('ButtonGroup',{attrs:{\"data-testid\":\"kw-policy-config-yaml-option\",\"options\":_vm.YAML_OPTIONS,\"inactive-class\":\"bg-disabled btn-sm\",\"active-class\":\"bg-primary btn-sm\"},model:{value:(_vm.yamlOption),callback:function ($$v) {_vm.yamlOption=$$v},expression:\"yamlOption\"}})],1):_vm._e(),_c('div',{staticClass:\"scroll__container\"},[_c('div',{staticClass:\"scroll__content\"},[(_vm.showForm)?[_c('Tabbed',{ref:\"tabs\",staticClass:\"step__values__content\",attrs:{\"side-tabs\":true},on:{\"changed\":function($event){return _vm.tabChanged($event)}}},[(_vm.valuesComponent)?[_c(_vm.valuesComponent,{tag:\"component\",attrs:{\"mode\":_vm.mode,\"custom-policy\":_vm.customPolicy},model:{value:(_vm.chartValues),callback:function ($$v) {_vm.chartValues=$$v},expression:\"chartValues\"}})]:_vm._e()],2)]:((_vm.isCreate || _vm.isEdit) && !_vm.showForm)?[_c('YamlEditor',{ref:\"yaml\",staticClass:\"step__values__content\",attrs:{\"data-testid\":\"kw-policy-config-yaml-editor\",\"scrolling\":true,\"initial-yaml-values\":_vm.originalYamlValues,\"editor-mode\":_vm.editorMode,\"rhide-preview-buttons\":true},on:{\"onChanges\":_vm.updateYamlValues},model:{value:(_vm.currentYamlValues),callback:function ($$v) {_vm.currentYamlValues=$$v},expression:\"currentYamlValues\"}})]:_vm._e(),_c('ResourceCancelModal',{ref:\"cancelModal\",attrs:{\"data-testid\":\"kw-policy-config-yaml-cancel\",\"is-cancel-modal\":false,\"is-form\":true},on:{\"cancel-cancel\":function($event){_vm.preYamlOption = _vm.yamlOption},\"confirm-cancel\":function($event){_vm.yamlOption = _vm.preYamlOption}}})],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Values.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Values.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Values.vue?vue&type=template&id=bdce7b86&scoped=true\"\nimport script from \"./Values.vue?vue&type=script&lang=js\"\nexport * from \"./Values.vue?vue&type=script&lang=js\"\nimport style0 from \"./Values.vue?vue&type=style&index=0&id=bdce7b86&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bdce7b86\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"policy-info-panel\",style:(`--banner-top-offset: 0px`)},[_c('h1',[_vm._v(\"readme\")]),(_vm.showSlideIn)?_c('div',{staticClass:\"glass\",attrs:{\"data-testid\":\"extension-details-bg\"},on:{\"click\":function($event){return _vm.hide()}}}):_vm._e(),_c('div',{staticClass:\"slideIn\",class:{'hide': false, 'slideIn__show': _vm.showSlideIn},attrs:{\"data-testid\":\"extension-details\"}},[_c('div',{staticClass:\"slideIn__header\"},[(_vm.packageValues)?_c('div',{staticClass:\"policy-info-content\"},[_c('div',{staticClass:\"policy-header pb-10\"},[_c('div',{staticClass:\"slideIn__header__buttons\"},[_c('button',{staticClass:\"btn btn-sm role-link\",on:{\"click\":_vm.hide}},[_c('span',[_vm._v(_vm._s(_vm.t('generic.close')))]),_c('i',{staticClass:\"icon icon-chevron-right\"})])])]),_c('div',{staticClass:\"policy-title mt-20\"},[_c('h2',{staticClass:\"policy-info-title\"},[_vm._v(\" \"+_vm._s(_vm.packageValues.display_name)+\" \")])]),_c('ChartReadme',{staticClass:\"mt-20\",attrs:{\"version-info\":_vm.packageValues}})],1):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyReadmePanel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyReadmePanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PolicyReadmePanel.vue?vue&type=template&id=69136ac1&scoped=true\"\nimport script from \"./PolicyReadmePanel.vue?vue&type=script&lang=js\"\nexport * from \"./PolicyReadmePanel.vue?vue&type=script&lang=js\"\nimport style0 from \"./PolicyReadmePanel.vue?vue&type=style&index=0&id=69136ac1&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69136ac1\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Configged.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Configged.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Configged.vue?vue&type=template&id=63892b7c&scoped=true\"\nimport script from \"./Configged.vue?vue&type=script&lang=js\"\nexport * from \"./Configged.vue?vue&type=script&lang=js\"\nimport style0 from \"./Configged.vue?vue&type=style&index=0&id=63892b7c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"63892b7c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.hideArtifactHubBanner)?[_c('Banner',{staticClass:\"type-banner mb-20 mt-0\",attrs:{\"data-testid\":\"kw-policy-create-ah-banner\",\"color\":\"warning\",\"closable\":true},on:{\"close\":function($event){return _vm.closeBanner('updateHideBannerArtifactHub')}}},[_c('div',[_c('p',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(('Official Kubearmor policies are hosted on ArtifactHub. In order to show these, you will need to add to the whitelist-domain setting.')),expression:\"('Official Kubearmor policies are hosted on ArtifactHub. In order to show these, you will need to add to the whitelist-domain setting.')\"}],staticClass:\"mb-10\"}),_c('AsyncButton',{attrs:{\"mode\":\"artifactHub\"},on:{\"click\":_vm.addArtifactHub}})],1)])]:_vm._e(),(_vm.value && !_vm.loadingPackages)?_c('Wizard',{ref:\"wizard\",staticClass:\"wizard\",attrs:{\"data-testid\":\"kw-policy-create-wizard\",\"errors\":_vm.errors,\"steps\":_vm.steps,\"show-banner\":false,\"edit-first-step\":true},on:{\"next\":_vm.reset,\"cancel\":_vm.done,\"finish\":_vm.finish},scopedSlots:_vm._u([{key:\"policies\",fn:function(){return [_c('PolicyTable',{attrs:{\"data-testid\":\"kw-policy-create-table\",\"value\":_vm.packages},on:{\"selectType\":function($event){return _vm.selectType($event)}}})]},proxy:true},{key:\"values\",fn:function(){return [_c('div',{staticClass:\"banner__title\"},[_c('h2',[_vm._v(_vm._s(_vm.bannerTitle))]),_vm._v(\" \"+_vm._s()+\" \"),(!_vm.customPolicy)?[_c('p',{staticClass:\"banner__short-description\"},[_vm._v(\" \"+_vm._s(_vm.shortDescription)+\" \")]),_c('button',{staticClass:\"btn btn-sm role-link banner__readme-button\",on:{\"click\":_vm.showReadme}},[_vm._v(\" \"+_vm._s(('Show Readme'))+\" \")])]:_vm._e()],2),_c('Values',{attrs:{\"value\":_vm.value,\"chart-values\":_vm.chartValues,\"yaml-values\":_vm.yamlValues,\"mode\":_vm.mode,\"custom-policy\":_vm.customPolicy},on:{\"editor\":$event => _vm.yamlOption = $event,\"updateYamlValues\":$event => _vm.yamlValues = $event}})]},proxy:true},{key:\"finish\",fn:function(){return [_c('AsyncButton',{attrs:{\"data-testid\":\"kw-policy-create-finish-button\",\"disabled\":!_vm.canFinish,\"mode\":\"finish\"},on:{\"click\":_vm.finish}})]},proxy:true}],null,false,2519213436),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}):_vm._e(),(_vm.packageValues && !_vm.customPolicy)?[_c('PolicyReadmePanel',{ref:\"readmePanel\",attrs:{\"package-values\":_vm.packageValues}}),void 0]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"policy-table-container\"},[_c('div',{staticClass:\"filter\"},[(_vm.attributeOptions.length)?_c('LabeledSelect',{staticClass:\"filter__attributes\",attrs:{\"data-testid\":\"kw-table-filter-source\",\"clearable\":true,\"taggable\":true,\"mode\":_vm.mode,\"multiple\":true,\"label-key\":\"kubearmor.utils.attributes.label\",\"options\":_vm.attributeOptions},on:{\"selecting\":e => _vm.handleAttributeSelect(e)},model:{value:(_vm.attributes),callback:function ($$v) {_vm.attributes=$$v},expression:\"attributes\"}}):_vm._e(),_c('LabeledInput',{ref:\"searchQuery\",staticClass:\"input-sm filter__search\",attrs:{\"data-testid\":\"kw-table-filter-search\",\"mode\":_vm.mode,\"label\":('Search By Name'),\"placeholder\":('Enter Name')},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}}),_c('button',{ref:\"btn\",staticClass:\"btn role-tertiary filter__reset\",attrs:{\"data-testid\":\"kw-table-filter-refresh\",\"type\":\"button\"},on:{\"click\":_vm.refresh}},[_c('p',[_vm._v(\" \"+_vm._s(('Reset Filter'))+\" \")])])],1),_c('div',{staticClass:\"policy-table-actions\"},[_c('button',{ref:\"btn\",staticClass:\"btn role-tertiary\",attrs:{\"data-testid\":\"kw-table-custom-buttom\",\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('selectType', 'custom')}}},[_c('p',[_vm._v(\" \"+_vm._s(('Create Custom Policy'))+\" \")])])]),_c('SortableTableWrapper',{attrs:{\"rows\":_vm.filteredSubtypes,\"headers\":_vm.POLICY_TABLE_HEADERS,\"table-actions\":false,\"row-actions\":false,\"key-field\":\"package_id\",\"default-sort-by\":\"name\",\"paging\":true,\"search\":false},on:{\"selectRow\":(row) => _vm.$emit('selectType', row)}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('SortableTable',{ref:\"sortableTable\",attrs:{\"rows\":_vm.rows,\"headers\":_vm.headers,\"table-actions\":_vm.tableActions,\"row-actions\":_vm.rowActions,\"key-field\":_vm.keyField,\"default-sort-by\":_vm.defaultSortBy,\"paging\":_vm.paging,\"search\":_vm.search}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SortableTableWrapper.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SortableTableWrapper.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SortableTableWrapper.vue?vue&type=template&id=7934d794\"\nimport script from \"./SortableTableWrapper.vue?vue&type=script&lang=js\"\nexport * from \"./SortableTableWrapper.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PolicyTable.vue?vue&type=template&id=556e35b7&scoped=true\"\nimport script from \"./PolicyTable.vue?vue&type=script&lang=js\"\nexport * from \"./PolicyTable.vue?vue&type=script&lang=js\"\nimport style0 from \"./PolicyTable.vue?vue&type=style&index=0&id=556e35b7&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"556e35b7\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Created.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Created.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Created.vue?vue&type=template&id=2761b367&scoped=true\"\nimport script from \"./Created.vue?vue&type=script&lang=js\"\nexport * from \"./Created.vue?vue&type=script&lang=js\"\nimport style0 from \"./Created.vue?vue&type=style&index=0&id=2761b367&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2761b367\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7d654f0e&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7d654f0e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d654f0e\",\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a ","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyTableBadges.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyTableBadges.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PolicyTableBadges.vue?vue&type=template&id=dafa2dce&scoped=true\"\nimport script from \"./PolicyTableBadges.vue?vue&type=script&lang=js\"\nexport * from \"./PolicyTableBadges.vue?vue&type=script&lang=js\"\nimport style0 from \"./PolicyTableBadges.vue?vue&type=style&index=0&id=dafa2dce&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dafa2dce\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_vm._v(\" \"+_vm._s(_vm.features)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyTablePublisher.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyTablePublisher.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PolicyTablePublisher.vue?vue&type=template&id=2201bd0a\"\nimport script from \"./PolicyTablePublisher.vue?vue&type=script&lang=js\"\nexport * from \"./PolicyTablePublisher.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_vm._v(\" \"+_vm._s(_vm.features)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyTableDescription.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyTableDescription.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PolicyTableDescription.vue?vue&type=template&id=32714284\"\nimport script from \"./PolicyTableDescription.vue?vue&type=script&lang=js\"\nexport * from \"./PolicyTableDescription.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file diff --git a/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.js b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.js new file mode 100644 index 0000000..b1ab703 --- /dev/null +++ b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.js @@ -0,0 +1,16 @@ +(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("__jszip"),require("__jsyaml"),require("vue")):"function"===typeof define&&define.amd?define(["__jszip","__jsyaml"],t):"object"===typeof exports?exports["kubearmor-0.1.0"]=t(require("__jszip"),require("__jsyaml"),require("vue")):e["kubearmor-0.1.0"]=t(e["__jszip"],e["__jsyaml"],e["Vue"])})("undefined"!==typeof self?self:this,(function(e,t,n){return function(e){function t(t){for(var n,o,i=t[0],a=t[1],s=0,l=[];s=t?e:""+Array(t+1-r.length).join(n)+e},p={s:d,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+d(r,2,"0")+":"+d(o,2,"0")},m:function(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,a),o=t-r<0,i=e.clone().add(n+(o?-1:1),a);return Number(-(n+(t-r)/(o?r-i:i-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return{M:a,y:l,w:i,d:o,D:"date",h:r,m:n,s:t,ms:e,Q:s}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},f={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},h="en",v={};v[h]=f;var b=function(e){return e instanceof _},m=function(e,t,n){var r;if(!e)return h;if("string"==typeof e)v[e]&&(r=e),t&&(v[e]=t,r=e);else{var o=e.name;v[o]=e,r=o}return!n&&r&&(h=r),r||!n&&h},g=function(e,t){if(b(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new _(n)},y=p;y.l=m,y.i=b,y.w=function(e,t){return g(e,{locale:t.$L,utc:t.$u,$offset:t.$offset})};var _=function(){function d(e){this.$L=this.$L||m(e.locale,null,!0),this.parse(e)}var p=d.prototype;return p.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(y.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(c);if(r)return n?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(t)}(e),this.init()},p.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},p.$utils=function(){return y},p.isValid=function(){return!("Invalid Date"===this.$d.toString())},p.isSame=function(e,t){var n=g(e);return this.startOf(t)<=n&&n<=this.endOf(t)},p.isAfter=function(e,t){return g(e)e.nameDisplay).slice(0,5)},plusMore(){const e=this.toRemove.length-this.names.length;return this.t("promptRemove.andOthers",{count:e})}},watch:{value:{handler(e){this.handleRoleDeletionCheck(e,e[0].type,this.$route.hash)},immediate:!0}},methods:{resourceNames:o["n"],async handleRoleDeletionCheck(e,t,n){let r,o;this.warning="";let a=0;const s=new Set;switch(this.info=this.t("rbac.globalRoles.waiting",{count:e.length}),t){case i["k"].GLOBAL_ROLE:r=i["k"].GLOBAL_ROLE_BINDING,o="globalRoleName";break;default:r=n.includes(l)?i["k"].CLUSTER_ROLE_TEMPLATE_BINDING:i["k"].PROJECT_ROLE_TEMPLATE_BINDING,o="roleTemplateName";break}try{var c;const t=await this.$store.dispatch("management/request",{url:"/v1/"+r,method:"get"},{root:!0}),n=await this.$store.dispatch("management/request",{url:"/v1/"+i["k"].USER,method:"get"},{root:!0}),l=null===(c=n.data)||void 0===c?void 0:c.reduce((e,t)=>(t.username&&(e[t.id]=t),e),{});t.data&&t.data.length?(e.forEach(e=>{const n=t.data.filter(t=>t[o]===e.id);if(n.length){const e=[...new Set(n.map(e=>e.userName).filter(e=>l[e]))];e.length&&(a++,e.forEach(e=>s.add(e)))}}),a&&s.size?(this.info="",this.warning=this.t("rbac.globalRoles.usersBound",{count:s.size})):this.info=this.t("rbac.globalRoles.notBound",null,!0)):this.info=this.t("rbac.globalRoles.notBound",null,!0)}catch(u){this.info=this.t("rbac.globalRoles.unableToCheck")}}}}},"0634":function(e,t,n){var r=n("2ed5"),o=n("5e27");function i(e,t){return r(e,o(e),t)}e.exports=i},"0652":function(e,t,n){var r=n("ae68"),o=n("e2e2"),i=n("f72d");function a(e){return i(e)?r(e):o(e)}e.exports=a},"06a5":function(e,t,n){var r=n("1ec9"),o=n("659f"),i=n("4778"),a=n("c991"),s=n("9243"),l=n("c316"),c=n("dda8"),u=n("41dd"),d=1,p="[object Arguments]",f="[object Array]",h="[object Object]",v=Object.prototype,b=v.hasOwnProperty;function m(e,t,n,v,m,g){var y=l(e),_=l(t),w=y?f:s(e),x=_?f:s(t);w=w==p?h:w,x=x==p?h:x;var k=w==h,O=x==h,A=w==x;if(A&&c(e)){if(!c(t))return!1;y=!0,k=!1}if(A&&!k)return g||(g=new r),y||u(e)?o(e,t,n,v,m,g):i(e,t,w,n,v,m,g);if(!(n&d)){var E=k&&b.call(e,"__wrapped__"),S=O&&b.call(t,"__wrapped__");if(E||S){var T=E?e.value():e,R=S?t.value():t;return g||(g=new r),m(T,R,n,v,g)}}return!!A&&(g||(g=new r),a(e,t,n,v,m,g))}e.exports=m},"06cb":function(e,t){var n=/\w*$/;function r(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}e.exports=r},"0788":function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return a}));var r=n("907c"),o=n("e24b");r["w"];function i(e){var t;return e=((null===(t=e)||void 0===t?void 0:t.type)||e||"").toLowerCase(),e}async function a(e,t,n,r,i,a){const s=await i.dispatch(a+"/cleanForDiff",e,{root:!0}),l=await i.dispatch(a+"/cleanForDiff",t.toJSON(),{root:!0}),c=await i.dispatch(a+"/cleanForDiff",n.toJSON(),{root:!0}),u=Object(o["b"])(s,c),d=Object(o["b"])(s,l),p=Object(o["c"])(u,d);if(console.log("Background Change",u),console.log("User Change",d),console.log("Conflicts",p),t.metadata.resourceVersion=n.metadata.resourceVersion,Object(o["a"])(t,u),p.length){const e=[r["i18n/t"]("validation.conflict",{fields:p.join(", "),fieldCount:p.length})];return e}return!1}},"07d9":function(e,t,n){t.nextTick=function(e){var t=Array.prototype.slice.call(arguments);t.shift(),setTimeout((function(){e.apply(null,t)}),0)},t.platform=t.arch=t.execPath=t.title="browser",t.pid=1,t.browser=!0,t.env={},t.argv=[],t.binding=function(e){throw new Error("No such module. (Possibly not yet loaded)")},function(){var e,r="/";t.cwd=function(){return r},t.chdir=function(t){e||(e=n("a0d5")),r=e.resolve(t,r)}}(),t.exit=t.kill=t.umask=t.dlopen=t.uptime=t.memoryUsage=t.uvCounters=function(){},t.features={}},"0831":function(e,t,n){var r=n("1eb8");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("2b69c083",r,!0,{sourceMap:!1,shadowMode:!1})},"084c":function(e,t,n){var r=n("c364");function o(e){return function(t){return r(t,e)}}e.exports=o},"09aa":function(e,t,n){"use strict";n("4a35")},"09b2":function(e,t){var n=Object.prototype;function r(e){var t=e&&e.constructor,r="function"==typeof t&&t.prototype||n;return e===r}e.exports=r},"0a87":function(e,t,n){var r=n("e902");function o(e){return r(this.__data__,e)>-1}e.exports=o},"0c14":function(e,t,n){"use strict";n("9abb")},"0cfa":function(e,t,n){var r=n("b952");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("43eabed8",r,!0,{sourceMap:!1,shadowMode:!1})},"0df0":function(e,t,n){"use strict";var r=n("1032");n.d(t,"a",(function(){return r["a"]}))},"0e19":function(e,t,n){var r=n("4b2c"),o=n("2822"),i=n("907a"),a="[object Null]",s="[object Undefined]",l=r?r.toStringTag:void 0;function c(e){return null==e?void 0===e?s:a:l&&l in Object(e)?o(e):i(e)}e.exports=c},"0e30":function(e,t){function n(){return!1}e.exports=n},"0ed3":function(e,t,n){"use strict";function r(e,t){for(var n=[],r={},o=0;on.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(o=0;oe.advFilterSelectedLabel=t.label},model:{value:e.advFilterSelectedProp,callback:function(t){e.advFilterSelectedProp=t},expression:"advFilterSelectedProp"}})],1),t("div",{staticClass:"bottom-block"},[t("button",{staticClass:"btn role-secondary",attrs:{disabled:!e.advancedFilteringValues.length},on:{click:e.clearAllAdvancedFilters}},[e._v(" "+e._s(e.t("sortableTable.resetFilters"))+" ")]),t("button",{staticClass:"btn role-primary",on:{click:e.addAdvancedFilter}},[e._v(" "+e._s(e.t("sortableTable.add"))+" ")])])])]):e.search?t("input",{directives:[{name:"model",rawName:"v-model",value:e.eventualSearchQuery,expression:"eventualSearchQuery"}],ref:"searchQuery",staticClass:"input-sm search-box",attrs:{type:"search",placeholder:e.t("sortableTable.search")},domProps:{value:e.eventualSearchQuery},on:{input:function(t){t.target.composing||(e.eventualSearchQuery=t.target.value)}}}):e._e(),e._t("header-button")],2):e._e()]):e._e()],2),t("table",{staticClass:"sortable-table",class:e.classObject,attrs:{width:"100%"}},[e.showHeaders?t("THead",{attrs:{"label-for":e.labelFor,columns:e.columns,group:e.group,"group-options":e.advGroupOptions,"has-advanced-filtering":e.hasAdvancedFiltering,"adv-filter-hide-labels-as-cols":e.advFilterHideLabelsAsCols,"table-actions":e.tableActions,"table-cols-options":e.columnOptions,"row-actions":e.rowActions,"sub-expand-column":e.subExpandColumn,"row-actions-width":e.rowActionsWidth,"how-much-selected":e.howMuchSelected,"sort-by":e.sortBy,"default-sort-by":e._defaultSortBy,descending:e.descending,"no-rows":e.noRows,loading:e.loading&&!e.loadingDelay,"no-results":e.noResults},on:{"on-toggle-all":e.onToggleAll,"on-sort-change":e.changeSort,"col-visibility-change":e.changeColVisibility,"group-value-change":t=>e.$emit("group-value-change",t),"update-cols-options":e.updateColsOptions}}):e._e(),e.loading&&!e.loadingDelay?t("div"):e.loading?t("tbody",[e._t("loading",(function(){return[t("tr",[t("td",{attrs:{colspan:e.fullColspan}},[t("div",{staticClass:"data-loading"},[t("i",{staticClass:"icon-spin icon icon-spinner"}),t("t",{attrs:{k:"generic.loading",raw:!0}})],1)])])]}))],2):e.noRows?t("tbody",[e._t("no-rows",(function(){return[t("tr",{staticClass:"no-rows"},[t("td",{attrs:{colspan:e.fullColspan}},[e.showNoRows?t("t",{attrs:{k:e.noRowsKey}}):e._e()],1)])]}))],2):e.noResults?t("tbody",[e._t("no-results",(function(){return[t("tr",{staticClass:"no-results"},[t("td",{staticClass:"text-center",attrs:{colspan:e.fullColspan}},[t("t",{attrs:{k:e.noDataKey}})],1)])]}))],2):e._l(e.displayRows,(function(n){return t("tbody",{key:n.key,class:{group:e.groupBy}},[e.groupBy?e._t("group-row",(function(){return[t("tr",{staticClass:"group-row"},[t("td",{attrs:{colspan:e.fullColspan}},[e._t("group-by",(function(){return[t("div",{directives:[{name:"trim-whitespace",rawName:"v-trim-whitespace"}],staticClass:"group-tab"},[e._v(" "+e._s(n.ref)+" ")])]}),{group:n.grp})],2)])]}),{group:n,fullColspan:e.fullColspan}):e._e(),e._l(n.rows,(function(n,r){return[e._t("main-row",(function(){return[e._t("main-row:"+(n.row.mainRowKey||r),(function(){return[t("tr",{key:n.key,staticClass:"main-row",class:{"has-sub-row":n.showSubRow},attrs:{"data-testid":e.componentTestid+"-"+r+"-row","data-node-id":n.key,"data-cant-run-bulk-action-of-interest":e.actionOfInterest&&!n.canRunBulkActionOfInterest}},[e.tableActions?t("td",{staticClass:"row-check",attrs:{align:"middle"}},[e._v(" "+e._s(n.mainRowKey)),t("Checkbox",{staticClass:"selection-checkbox",attrs:{"data-node-id":n.key,"data-testid":e.componentTestid+"-"+r+"-checkbox",value:e.selectedRows.includes(n.row)}})],1):e._e(),e.subExpandColumn?t("td",{staticClass:"row-expand",attrs:{align:"middle"}},[t("i",{class:{icon:!0,"icon-chevron-right":!e.expanded[n.row[e.keyField]],"icon-chevron-down":!!e.expanded[n.row[e.keyField]]},attrs:{"data-title":"Toggle Expand"},on:{click:function(t){return t.stopPropagation(),e.toggleExpand(n.row)}}})]):e._e(),e._l(n.columns,(function(o,i){return[e._t("col:"+o.col.name,(function(){return[t("td",{directives:[{name:"show",rawName:"v-show",value:!e.hasAdvancedFiltering||e.hasAdvancedFiltering&&o.col.isColVisible,expression:"!hasAdvancedFiltering || (hasAdvancedFiltering && col.col.isColVisible)"}],key:o.col.name,class:{["col-"+o.dasherize]:!!o.col.formatter,[o.col.breakpoint]:!!o.col.breakpoint,["skip-select"]:o.col.skipSelect},attrs:{"data-title":o.col.label,"data-testid":`sortable-cell-${r}-${i}`,align:o.col.align||"left",width:o.col.width}},[e._t("cell:"+o.col.name,(function(){return[o.component&&o.needRef?t(o.component,e._b({ref:"column",refInFor:!0,tag:"component",attrs:{value:o.value,row:n.row,col:o.col,"row-key":n.key,"get-custom-detail-link":e.getCustomDetailLink}},"component",o.col.formatterOpts,!1)):o.component?t(o.component,e._b({tag:"component",attrs:{value:o.value,row:n.row,col:o.col,"row-key":n.key}},"component",o.col.formatterOpts,!1)):o.col.formatter?t(o.col.formatter,e._b({tag:"component",attrs:{value:o.value,row:n.row,col:o.col,"row-key":n.key}},"component",o.col.formatterOpts,!1)):""!==o.value?[e._v(" "+e._s(o.formatted)+" ")]:o.col.dashIfEmpty?[t("span",{staticClass:"text-muted"},[e._v("—")])]:e._e()]}),{row:n.row,col:o.col,value:o.value})],2)]}),{row:n.row,col:o.col,dt:e.dt,expanded:e.expanded,rowKey:n.key})]})),e.rowActions?t("td",{attrs:{align:"middle"}},[e._t("row-actions",(function(){return[t("button",{ref:"actionButton"+r,refInFor:!0,staticClass:"btn btn-sm role-multi-action actions",attrs:{id:`actionButton+${r}+${n.row&&n.row.name?n.row.name:""}`,"data-testid":e.componentTestid+"-"+r+"-action-button","aria-haspopup":"true","aria-expanded":"false",type:"button"},on:{click:function(t){return e.handleActionButtonClick(r,t)}}},[t("i",{staticClass:"icon icon-actions"})])]}),{row:n.row})],2):e._e()],2)]}),{fullColspan:e.fullColspan})]}),{row:n.row}),n.showSubRow?e._t("sub-row",(function(){return[n.row.stateDescription?t("tr",{key:n.row[e.keyField]+"-description",staticClass:"state-description sub-row",attrs:{"data-testid":e.componentTestid+"-"+r+"-row-description"},on:{mouseenter:e.onRowMouseEnter,mouseleave:e.onRowMouseLeave}},[e.tableActions?t("td",{staticClass:"row-check",attrs:{align:"middle"}}):e._e(),t("td",{class:{"text-error":n.row.stateObj.error},attrs:{colspan:e.fullColspan-(e.tableActions?1:0)}},[e._v(" "+e._s(n.row.stateDescription)+" ")])]):e._e()]}),{fullColspan:e.fullColspan,row:n.row,subMatches:e.subMatches,keyField:e.keyField,componentTestid:e.componentTestid,i:r,onRowMouseEnter:e.onRowMouseEnter,onRowMouseLeave:e.onRowMouseLeave}):e._e()]}))],2)}))],2),e.showPaging?t("div",{staticClass:"paging"},[t("button",{staticClass:"btn btn-sm role-multi-action",attrs:{type:"button",disabled:1==e.page},on:{click:function(t){return e.goToPage("first")}}},[t("i",{staticClass:"icon icon-chevron-beginning"})]),t("button",{staticClass:"btn btn-sm role-multi-action",attrs:{type:"button",disabled:1==e.page},on:{click:function(t){return e.goToPage("prev")}}},[t("i",{staticClass:"icon icon-chevron-left"})]),t("span",[e._v(" "+e._s(e.pagingDisplay)+" ")]),t("button",{staticClass:"btn btn-sm role-multi-action",attrs:{type:"button",disabled:e.page==e.totalPages},on:{click:function(t){return e.goToPage("next")}}},[t("i",{staticClass:"icon icon-chevron-right"})]),t("button",{staticClass:"btn btn-sm role-multi-action",attrs:{type:"button",disabled:e.page==e.totalPages},on:{click:function(t){return e.goToPage("last")}}},[t("i",{staticClass:"icon icon-chevron-end"})])]):e._e(),e.search?t("button",{directives:[{name:"shortkey",rawName:"v-shortkey.once",value:["/"],expression:"['/']",modifiers:{once:!0}}],staticClass:"hide",on:{shortkey:function(t){return e.focusSearch()}}}):e._e(),e.tableActions?[t("button",{directives:[{name:"shortkey",rawName:"v-shortkey",value:["j"],expression:"['j']"}],staticClass:"hide",on:{shortkey:function(t){return e.focusNext(t)}}}),t("button",{directives:[{name:"shortkey",rawName:"v-shortkey",value:["k"],expression:"['k']"}],staticClass:"hide",on:{shortkey:function(t){return e.focusPrevious(t)}}}),t("button",{directives:[{name:"shortkey",rawName:"v-shortkey",value:["shift","j"],expression:"['shift','j']"}],staticClass:"hide",on:{shortkey:function(t){return e.focusNext(t,!0)}}}),t("button",{directives:[{name:"shortkey",rawName:"v-shortkey",value:["shift","k"],expression:"['shift','k']"}],staticClass:"hide",on:{shortkey:function(t){return e.focusPrevious(t,!0)}}}),e._t("shortkeys")]:e._e()],2)},o=[],i=n("9ce4"),a=n("050d"),s=n.n(a),l=n("330a"),c=n.n(l),u=n("2cb5"),d=n("e24b"),p=n("bddd"),f=n("0df0"),h=n("d709"),v=function(){var e=this,t=e._self._c;return t("div",{staticClass:"dropdown-button-group"},[t("div",{staticClass:"dropdown-button bg-primary",class:{"one-action":!e.dualAction,[e.buttonSize]:!0,disabled:e.disableButton}},[t("v-popover",{attrs:{placement:"bottom",container:!1,disabled:e.disableButton,"popper-options":{modifiers:{flip:{enabled:!1}}}},scopedSlots:e._u([{key:"popover",fn:function(){return[e._t("popover-content")]},proxy:!0}],null,!0)},[e._t("button-content",(function(){return[t("button",{ref:"popoverButton",staticClass:"icon-container bg-primary no-left-border-radius",class:e.buttonSize,attrs:{disabled:e.disableButton,type:"button"}},[e._v(" Button "),t("i",{staticClass:"icon icon-chevron-down"})])]}),{buttonSize:e.buttonSize})],2)],1)])},b=[],m={name:"ActionDropdown",props:{size:{type:String,default:""},dualAction:{type:Boolean,default:!0},disableButton:{type:Boolean,default:!1}},computed:{buttonSize(){const{size:e}=this;let t;switch(e){case"":t="btn";break;case"xs":t="btn btn-xs";break;case"sm":t="btn btn-sm";break;case"lg":t="btn btn-lg";break;default:}return t}},methods:{hasSlot(e="default"){return!!this.$slots[e]||!!this.$scopedSlots[e]},togglePopover(){}}},g=m,y=(n("bdf6"),n("d802")),_=Object(y["a"])(g,v,b,!1,null,null,null),w=_.exports,x=n("05ca"),k=n.n(x),O=n("44db"),A=n.n(O),E=function(){var e=this,t=e._self._c;return t("thead",[t("tr",{class:{loading:e.loading}},[e.tableActions?t("th",{attrs:{width:e.checkWidth,align:"middle"}},[t("Checkbox",{staticClass:"check",attrs:{"data-testid":"sortable-table_check_select_all",indeterminate:e.isIndeterminate,disabled:e.noRows||e.noResults},model:{value:e.isAll,callback:function(t){e.isAll=t},expression:"isAll"}})],1):e._e(),e.subExpandColumn?t("th",{attrs:{width:e.expandWidth}}):e._e(),e._l(e.columns,(function(n){return t("th",{directives:[{name:"show",rawName:"v-show",value:!e.hasAdvancedFiltering||e.hasAdvancedFiltering&&n.isColVisible,expression:"!hasAdvancedFiltering || (hasAdvancedFiltering && col.isColVisible)"}],key:n.name,class:{sortable:n.sort,[n.breakpoint]:!!n.breakpoint},attrs:{align:n.align||"left",width:n.width},on:{click:function(t){return t.preventDefault(),e.changeSort(t,n)}}},[t("div",{staticClass:"table-header-container",class:{"not-filterable":e.hasAdvancedFiltering&&!n.isFilter}},[n.sort?t("span",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:e.tooltip(n),expression:"tooltip(col)"}]},[t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.labelFor(n),expression:"labelFor(col)"}]}),t("i",{directives:[{name:"show",rawName:"v-show",value:e.hasAdvancedFiltering&&!n.isFilter,expression:"hasAdvancedFiltering && !col.isFilter"},{name:"clean-tooltip",rawName:"v-clean-tooltip",value:e.t("sortableTable.tableHeader.noFilter"),expression:"t('sortableTable.tableHeader.noFilter')"}],staticClass:"icon icon-info not-filter-icon"}),t("span",{staticClass:"icon-stack"},[t("i",{staticClass:"icon icon-sort icon-stack-1x faded"}),e.isCurrent(n)&&!e.descending?t("i",{staticClass:"icon icon-sort-down icon-stack-1x"}):e._e(),e.isCurrent(n)&&e.descending?t("i",{staticClass:"icon icon-sort-up icon-stack-1x"}):e._e()])]):t("span",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:e.tooltip(n),expression:"tooltip(col)"}]},[e._v(e._s(e.labelFor(n)))])])])})),e.rowActions&&e.hasAdvancedFiltering&&e.tableColsOptions.length?t("th",{attrs:{width:e.rowActionsWidth}},[t("div",{ref:"table-options",staticClass:"table-options-group"},[t("button",{staticClass:"btn btn-sm role-multi-action table-options-btn",attrs:{"aria-haspopup":"true","aria-expanded":"false",type:"button"},on:{click:e.tableColsOptionsClick}},[t("i",{staticClass:"icon icon-actions"})]),t("div",{directives:[{name:"show",rawName:"v-show",value:e.tableColsOptionsVisibility,expression:"tableColsOptionsVisibility"}],staticClass:"table-options-container",style:e.tableColsMenuPosition},[e.hasAdvGrouping?t("div",{staticClass:"table-options-grouping"},[t("span",{staticClass:"table-options-col-subtitle"},[e._v(e._s(e.t("sortableTable.tableHeader.groupBy"))+":")]),t("LabeledSelect",{staticClass:"table-options-grouping-select",attrs:{clearable:!0,options:e.groupOptions,disabled:!1,searchable:!1,mode:"edit",multiple:!1,taggable:!1},model:{value:e.advGroup,callback:function(t){e.advGroup=t},expression:"advGroup"}})],1):e._e(),t("p",{staticClass:"table-options-col-subtitle mb-20"},[e._v(" "+e._s(e.t("sortableTable.tableHeader.show"))+": ")]),t("ul",e._l(e.tableColsOptions,(function(n,r){return t("li",{directives:[{name:"show",rawName:"v-show",value:n.isTableOption,expression:"col.isTableOption"}],key:r,class:{visible:!n.preventColToggle}},[t("Checkbox",{directives:[{name:"show",rawName:"v-show",value:!n.preventColToggle,expression:"!col.preventColToggle"}],staticClass:"table-options-checkbox",attrs:{label:n.label},on:{input:function(t){return e.tableOptionsCheckbox(t,n.label)}},model:{value:n.isColVisible,callback:function(t){e.$set(n,"isColVisible",t)},expression:"col.isColVisible"}})],1)})),0)])])]):e.rowActions?t("th",{attrs:{width:e.rowActionsWidth}}):e._e()],2)])},S=[],T=n("98d3");function R(e,t){var n;if(e=null===(n=e)||void 0===n?void 0:n.parentElement,!e)return null;const r=e.matches||e.matchesSelector;return r.call(e,t)?e:R(e,t)}const C="all",I="some",L="none";var D={mounted(){const e=this.$el.querySelector("TABLE");this._onRowClickBound=this.onRowClick.bind(this),this._onRowMousedownBound=this.onRowMousedown.bind(this),this._onRowContextBound=this.onRowContext.bind(this),e.addEventListener("click",this._onRowClickBound),e.addEventListener("mousedown",this._onRowMousedownBound),e.addEventListener("contextmenu",this._onRowContextBound)},beforeDestroy(){const e=this.$el.querySelector("TABLE");e.removeEventListener("click",this._onRowClickBound),e.removeEventListener("mousedown",this._onRowMousedownBound),e.removeEventListener("contextmenu",this._onRowContextBound)},computed:{howMuchSelected(){const e=this.pagedRows.length,t=this.selectedRows.length;return t>=e&&e>0?C:t>0?I:L},bulkActionsForSelection(){let e=!1;const t=this.pagedRows,n=this.arrangedRows;let r=this.selectedRows;if(!this.selectedRows.length){if(!n)return[];const t=n[0];r=t?[t]:[],e=!0}const o={};for(const a of t)if(a.availableActions)for(const e of a.availableActions)e.bulkable&&j(o,e,!1);for(const a of r)if(a.availableActions)for(const e of a.availableActions)e.bulkable&&e.enabled&&j(o,e,!1);const i=P(o,e);return i.forEach(e=>{const t=this.selectedRows.some(t=>{const n=t.availableActions||[];return n.some(t=>t.action===e.action&&t.enabled)});e.enabled=this.selectedRows.length>0&&t}),i.sort((e,t)=>(t.weight||0)-(e.weight||0))}},data(){return{selectedRows:[],prevNode:null}},watch:{pagedRows(){const e=this.pagedRows,t=[];for(const n of this.selectedRows)e.includes(n)||t.push(n);this.update([],t)}},methods:{onToggleAll(e){return e?(this.update(this.pagedRows,[]),!0):(this.update([],this.pagedRows),!1)},onRowMousedown(e){(Object(T["d"])(e)||this.isSelectionCheckbox(e.target))&&e.preventDefault()},onRowMouseEnter(e){const t=e.target.closest("TR");if(t.classList.contains("sub-row")){const e=t.previousElementSibling;e.classList.add("sub-row-hovered")}},onRowMouseLeave(e){const t=e.target.closest("TR");if(t.classList.contains("sub-row")){const e=t.previousElementSibling;e.classList.remove("sub-row-hovered")}},nodeForEvent(e){const t=e.target.tagName,n=e.target,r=n.closest(".actions");if(n.classList.contains("select-all-check"))return;if(!r&&("A"===t||"BUTTON"===t||R(n,".btn")))return;const o=e.target.closest("TR");return this.nodeForRow(o)},nodeForRow(e){var t;if(null!==(t=e)&&void 0!==t&&t.classList.contains("separator-row"))return;while(e&&!e.classList.contains("main-row"))e=e.previousElementSibling;if(!e)return;const n=e.dataset.nodeId;if(!n)return;const r=this.pagedRows.find(e=>Object(d["f"])(e,this.keyField)===n);return r},async onRowClick(e){const t=this.nodeForEvent(e),n=e.target.closest("TD"),r=null===n||void 0===n?void 0:n.classList.contains("skip-select");if(r)return;const o=this.selectedRows,i=this.isSelectionCheckbox(e.target)||(null===n||void 0===n?void 0:n.classList.contains("row-check")),a=null===n||void 0===n?void 0:n.classList.contains("row-expand"),s=this.pagedRows;if(this.$emit("rowClick",e),!t)return;if(a)return void this.toggleExpand(t);const l=e.target.closest(".actions");if(l){let n=[t];if(this.mangleActionResources){const e=l.querySelector("i");e.classList.remove("icon-actions"),e.classList.add("icon-spinner"),e.classList.add("icon-spin");try{n=await this.mangleActionResources(n)}finally{e.classList.remove("icon-spinner"),e.classList.remove("icon-spin"),e.classList.add("icon-actions")}}return void this.$store.commit("action-menu/show",{resources:n,event:e,elem:l})}const c=o.includes(t);let u=this.prevNode;if(u&&s.includes(u)||(u=t),Object(T["c"])(e))this.toggle(t);else if(Object(T["d"])(e)){const e=this.nodesBetween(u,t);c?this.update([],e):this.update(e,[])}else i?this.toggle(t):this.update([t],s);this.prevNode=t},async onRowContext(e){const t=this.nodeForEvent(e);if(Object(T["e"])(e))return;if(!t)return;e.preventDefault(),e.stopPropagation(),this.prevNode=t;const n=this.selectedRows.includes(t);n||this.update([t],this.selectedRows.slice());let r=this.selectedRows;this.mangleActionResources&&(r=await this.mangleActionResources(r)),this.$store.commit("action-menu/show",{resources:r,event:e})},keySelectRow(e,t=!1){const n=this.nodeForRow(e),r=this.pagedRows;n&&(t?this.update([n],[]):this.update([n],r),this.prevNode=n)},isSelectionCheckbox(e){return"INPUT"===e.tagName&&"checkbox"===e.type&&null!==e.closest(".selection-checkbox")},nodesBetween(e,t){let n=[];const r=this.groupBy;if(r){const r=this.groupedRows;let o=this.groupIdx(e),i=this.groupIdx(t);if(!o||!i)return[];(o.group>i.group||o.group===i.group&&o.item>i.item)&&([o,i]=[i,o]);for(let e=o.group;e<=i.group;e++){const t=r[e].rows;let a=o.group===e?o.item:0;while(t[a]&&(e!this.selectedRows.includes(e)),n},groupIdx(e){const t=this.groupedRows;for(let n=0;n{const t=this.selectedRows.findIndex(t=>t===e);-1!==t&&this.selectedRows.splice(t,1)}),e&&this.selectedRows.push(...e),t.length&&this.$nextTick(()=>{for(let e=0;e{for(let t=0;t{this.$emit("selection",this.selectedRows)})},updateInput(e,t,n){const r=Object(d["f"])(e,n);if(r){const e=this.$el.querySelector(`div[data-checkbox-ctrl][data-node-id="${r}"]`);if(e&&!e.disabled){const n=e.querySelector("label");n&&(n.value=t);let r=e.closest("tr"),o=!0;while(r&&(o||r.classList.contains("sub-row")))t?r.classList.add("row-selected"):r.classList.remove("row-selected"),r=r.nextElementSibling,o=!1}}},select(e){e.forEach(e=>{const t=Object(d["f"])(e,this.keyField),n=this.$el.querySelector(`label[data-node-id="${t}"]`);n.dispatchEvent(new Event("click"))})},applyTableAction(e,t,n){const r={alt:n&&Object(T["a"])(n),event:n},o=this.selectedRows.filter(t=>{const n=t.availableActions.find(t=>t.action===e.action);return null===n||void 0===n?void 0:n.enabled});F(o,e,t,r,this),this.actionOfInterest=null},clearSelection(){this.update([],this.selectedRows)}}};let N=0;function j(e,t,n=!0){let r=t.action;r||(r="anon"+N,N++);let o=e[r];return o||(o=Object.assign({},t),e[r]=o,o.allEnabled=!1),t.enabled?o.anyEnabled=!0:o.allEnabled=!1,n&&(o.available=(o.available||0)+(t.enabled?1:0),o.total=(o.total||0)+1),o}function P(e,t=!1){const n=Object(p["d"])(Object.values(e),"anyEnabled",!0);for(const r of n)r.enabled=!t&&r.available>=r.total;return n}function F(e,t,n,r={},o){if(n=n||[],t.invoke){const i={action:t,event:r.event,isAlt:!!r.alt};return t.invoke.apply(o,[i,e||[],n])}if(e.length>1&&t.bulkAction&&!r.alt){const r=e[0][t.bulkAction];if(r)return r.call(e[0],e,...n)}const i=[];for(const a of e){let e;e=r.alt&&t.altAction?a[t.altAction]:a[t.action],e&&i.push(e.apply(a,n))}return Promise.all(i)}const $="left",M="right",U="top",B="center",G="center",K="bottom",H="auto";function V(e){const t=e.getBoundingClientRect(),n=e.offsetWidth,r=e.offsetHeight;return{top:t.top,right:t.left+n,bottom:t.top+r,left:t.left,width:n,height:r}}function q(e){return{top:e.clientY,left:e.clientX,bottom:e.clientY,right:e.clientX,width:0,height:0}}function z(){const e=window.innerWidth,t=window.innerHeight,n=window.pageYOffset,r=window.pageXOffset;return{top:n,right:r+e,bottom:n+t,left:r,width:e,height:t}}function W(e,t,n,r){let{positionX:o=H,positionY:i=H}=n||{};const{fudgeX:a=0,fudgeY:s=0,overlapX:l=!0,overlapY:c=!1}=n||{},u=z();let d;d=t instanceof Event?q(t):V(t);let p={};e&&(p=V(e)),r&&(p={top:0,right:147,bottom:163,left:0,width:147,height:80});const f={position:"absolute"},h={left:l?d.left:d.right,center:(d.left+d.right)/2,right:l?d.right:d.left,top:c?d.bottom:d.top,middle:(d.top+d.bottom)/2,bottom:c?d.top:d.bottom},v={left:u.right-p.width-h.left,center:Math.min(u.right-p.width/2-h.center,h.center-p.width/2-u.left),right:h.right-p.width-u.left,top:h.bottom-p.height-u.top,middle:Math.min(h.middle-p.height/2-u.top,u.bottom-p.height/2-h.middle),bottom:u.bottom-p.height-h.top};switch(o===B&&v.center<0&&(o=H),o===H?o=v.left<0||1.5*v.right>v.left?M:$:i===$&&v.left<0?o=M:i===M&&v.right<0&&(o=$),o){case $:f.left=h.left-a+"px";break;case B:f.left=(h.left+h.right)/2-p.width/2-a+"px";break;case M:f.left=h.right+a-p.width+"px";break}switch(i===G&&v.middle<0&&(i=H),i===H?i=v.top<0||1.5*v.bottom>v.top?K:U:i===U&&v.top<0?i=K:i===K&&v.bottom<0&&(i=U),i){case U:f.top=h.top+s-p.height+"px";break;case B:f.top=(h.top+h.bottom)/2+s-p.height+"px";break;case K:f.top=h.bottom-s+"px";break}return f}var Y=n("466b"),X={components:{Checkbox:f["a"],LabeledSelect:Y["a"]},props:{columns:{type:Array,required:!0},sortBy:{type:String,required:!0},defaultSortBy:{type:String,default:""},group:{type:String,default:""},groupOptions:{type:Array,default:()=>[]},descending:{type:Boolean,required:!0},hasAdvancedFiltering:{type:Boolean,required:!1},tableColsOptions:{type:Array,default:()=>[]},tableActions:{type:Boolean,required:!0},rowActions:{type:Boolean,required:!0},howMuchSelected:{type:String,required:!0},checkWidth:{type:Number,default:30},rowActionsWidth:{type:Number,required:!0},subExpandColumn:{type:Boolean,default:!1},expandWidth:{type:Number,default:30},labelFor:{type:Function,required:!0},noRows:{type:Boolean,default:!0},noResults:{type:Boolean,default:!0},loading:{type:Boolean,required:!1}},data(){return{tableColsOptionsVisibility:!1,tableColsMenuPosition:null}},watch:{advancedFilteringValues(){this.watcherUpdateLiveAndDelayed(!0,!1)},tableColsOptionsVisibility(e){e?(window.addEventListener("click",this.onClickOutside),this.$emit("update-cols-options")):window.removeEventListener("click",this.onClickOutside)}},computed:{isAll:{get(){return this.howMuchSelected!==L},set(e){this.$emit("on-toggle-all",e)}},hasAdvGrouping(){var e,t;return(null===(e=this.group)||void 0===e?void 0:e.length)&&(null===(t=this.groupOptions)||void 0===t?void 0:t.length)},advGroup:{get(){return this.group||this.advGroup},set(e){this.$emit("group-value-change",e)}},isIndeterminate(){return this.howMuchSelected===I}},methods:{changeSort(e,t){if(!t.sort)return;let n=!1;this.sortBy===t.name&&(n=!this.descending),this.$emit("on-sort-change",t.name,n)},isCurrent(e){return e.name===this.sortBy},tableColsOptionsClick(e){const t=document.querySelector(".table-options-container"),n=document.querySelector(".table-options-btn");this.tableColsMenuPosition||(this.tableColsMenuPosition=W(t,e||n,{overlapX:!0,fudgeX:26,fudgeY:-22,positionX:B,positionY:H})),this.tableColsOptionsVisibility=!this.tableColsOptionsVisibility},onClickOutside(e){const t=this.$refs["table-options"];t&&!t.contains(e.target)&&(this.tableColsOptionsVisibility=!1)},tableOptionsCheckbox(e,t){this.$emit("col-visibility-change",{label:t,value:e})},tooltip(e){if(!e.tooltip)return null;const t=this.$store.getters["i18n/exists"];return t(e.tooltip)?this.t(e.tooltip):e.tooltip}}},J=X,Q=(n("0c14"),n("7c52"),Object(y["a"])(J,E,S,!1,null,"96d8a090",null)),Z=Q.exports;const ee="allcols",te="All Columns",ne=":::islabel";var re={data(){return{searchQuery:null,previousFilter:null,previousResult:null}},computed:{searchFields(){const e=oe(this.columns);return this.extraSearchFields&&Object(p["b"])(e,this.extraSearchFields),e},filteredRows(){return this.hasAdvancedFiltering?this.handleAdvancedFiltering():this.handleFiltering()}},methods:{handleAdvancedFiltering(){if(this.subMatches=null,this.searchQuery.length){const e=(this.arrangedRows||[]).slice(),t=e.filter(e=>this.searchQuery.every(t=>{if(t.prop===ee){const n=this.advFilterSelectOptions.slice(1);let r=[];return n.forEach(e=>{if(e.value.includes("[")&&e.value.includes("]"))r=r.concat(JSON.parse(e.value));else{const t=e.isLabel?`${e.label}${ne}`:e.value;r.push(t)}}),ae(r,[t.value],e)}{if(t.prop.includes("[")&&t.prop.includes("]"))return ae(JSON.parse(t.prop),[t.value],e);let n=t.prop;return t.prop.includes("metadata.labels")&&(n=`${t.label}${ne}`),ae([n],[t.value],e)}}));return t}return this.arrangedRows},handleFiltering(){const e=(this.searchQuery||"").trim().toLowerCase();let t;if(e&&this.previousResult&&e.startsWith(this.previousFilter)?t=this.previousResult.slice():(this.previousResult=null,t=(this.arrangedRows||[]).slice()),this.previousFilter=e,!e.length)return this.subMatches=null,this.previousResult=null,t;const n=this.searchFields,r=e.split(/\s*[, ]\s*/),o=this.subSearch,i=this.subFields,a={};for(let s=t.length-1;s>=0;s--){const e=t[s];let l=0,c=!0;if(c=ae(n,r,e),i&&o){const t=e[o]||[];for(let n=t.length-1;n>=0;n--){let t=!0;t=ae(i,r,e),t&&l++}a[Object(d["f"])(e,this.keyField)]=l}c||0!==l||Object(p["h"])(t,s)}return this.subMatches=a,this.previousResult=t,t}},watch:{arrangedRows(e){this.previousResult=null}}};function oe(e){const t=[];return(e||[]).forEach(e=>{const n=e.search;n?"string"===typeof n?Object(p["a"])(t,n):Object(p["g"])(n)&&Object(p["b"])(t,n):!1===n||Object(p["a"])(t,e.value||e.name)}),t.filter(e=>!!e)}const ie=/^[0-9a-f\.:]+$/i;function ae(e,t,n){for(let r=0;r0&&(e=r.substr(t+1),r=r.substr(0,t)),o=r.includes(".")?Object(d["f"])(n,r):n[r]}if(void 0!==o&&(o=(""+o).toLowerCase(),o))if(e){if("exact"===e){if(o===t)return!0}else if("ip"===e){const e=ie.test(t);if(e){const e=new RegExp(`(?:^|\\.)${t}(?:\\.|$)`);if(e.test(o))return!0}}else if("prefix"===e&&0===o.indexOf(t))return!0}else if(o.includes((""+t).toLowerCase()))return!0}return!1}var le=n("1d19"),ce={computed:{sortFields(){let e=(this.groupBy?this.groupSort||this.groupBy:null)||[],t=[];const n=(this.columns||this.headers).find(e=>e&&e.name&&e.name.toLowerCase()===this.sortBy.toLowerCase());this.sortBy&&n&&n.sort&&(t=n.sort),Array.isArray(e)||(e=[e]),Array.isArray(t)||(t=[t]);const r=[...e,...t];return Object(p["a"])(r,"nameSort"),Object(p["a"])(r,"id"),r},arrangedRows(){let e;if(this.sortGenerationFn&&(e=`${this.sortGenerationFn.apply(this)}/${this.rows.length}/${this.descending}/${this.sortFields.join(",")}`,this.cacheKey===e))return this.cachedRows;const t=Object(le["a"])(this.rows,this.sortFields,this.descending);return e&&(this.cacheKey=e,this.cachedRows=t),t}},data(){let e=null;if(this._defaultSortBy=this.defaultSortBy,!this._defaultSortBy){const e=this.headers.find(e=>!!e.defaultSort),t=this.headers.find(e=>"name"===e.name);if(e)this._defaultSortBy=e.name;else if(t)this._defaultSortBy=t.name;else{const e=this.headers.filter(e=>"state"!==e.name)[0];this._defaultSortBy=e?e.name:"id"}}return e&&this.headers.find(t=>t.name===e)||(e=this._defaultSortBy),{sortBy:e,descending:!1,cachedRows:null,cacheKey:null}},methods:{changeSort(e,t){this.sortBy=e,this.descending=t,this.setPage(1)}}},ue=n("5000"),de={computed:{indexFrom(){return Math.max(0,1+this.perPage*(this.page-1))},indexTo(){return Math.min(this.filteredRows.length,this.indexFrom+this.perPage-1)},totalPages(){return Math.ceil(this.filteredRows.length/this.perPage)},showPaging(){return!this.loading&&this.paging&&this.totalPages>1},pagingDisplay(){const e={...this.pagingParams||{},count:this.filteredRows.length,pages:this.totalPages,from:this.indexFrom,to:this.indexTo};return this.$store.getters["i18n/t"](this.pagingLabel,e)},pagedRows(){return this.paging?this.filteredRows.slice(this.indexFrom-1,this.indexTo):this.filteredRows}},data(){const e=this.getPerPage();return{page:1,perPage:e}},watch:{pagedRows(){const e=this.indexFrom,t=this.filteredRows.length;this.totalPages>0&&this.page>1&&e>t&&this.setPage(this.totalPages)}},methods:{getPerPage(){let e=this.rowsPerPage||0;return e<=0&&(e=parseInt(this.$store.getters["prefs/get"](ue["i"]),10)||0),e<=0&&(e=10),e},setPage(e){this.page!==e&&(this.page=e)},goToPage(e){let t;switch(e){case"first":t=1;break;case"prev":t=Math.max(1,this.page-1);break;case"next":t=Math.min(this.totalPages,this.page+1);break;case"last":t=this.totalPages;break}this.setPage(t)},getPageByRow(e,t=(e=>e)){const n=this.filteredRows.map(t).indexOf(e);return-1===n?null:Math.ceil(n/this.perPage)}}},pe={computed:{groupedRows(){const e=this.groupBy,t=this.groupRef||e;if(!e)return[{key:"default",ref:"default",rows:this.pagedRows}];const n=[],r={};for(const o of this.pagedRows){const i=Object(d["f"])(o,e)||"",a=Object(d["f"])(o,t);let s=r[i];s?s.rows.push(o):(s={key:i,ref:a,rows:[o]},r[i]=s,n.push(s))}return n}}};const fe="inline-block";var he={data(){return{bulkActionsClass:"bulk",bulkActionClass:"bulk-action",bulkActionsDropdownClass:"bulk-actions-dropdown",bulkActionAvailabilityClass:"action-availability",hiddenActions:[],updateHiddenBulkActions:A()(this.protectedUpdateHiddenBulkActions,10)}},beforeDestroy(){window.removeEventListener("resize",this.onWindowResize)},mounted(){window.addEventListener("resize",this.onWindowResize),this.updateHiddenBulkActions()},watch:{selectedRows(){this.updateHiddenBulkActions()},keyedAvailableActions(){this.updateHiddenBulkActions()}},computed:{availableActions(){return this.bulkActionsForSelection.filter(e=>!e.external)},keyedAvailableActions(){return this.availableActions.map(e=>e.action)},selectedRowsText(){return this.selectedRows.length?this.t("sortableTable.actionAvailability.selected",{actionable:this.selectedRows.length}):null},actionTooltip(){if(!this.selectedRows.length||!this.actionOfInterest)return null;const e=this.selectedRows.filter(this.canRunBulkActionOfInterest).length;return e===this.selectedRows.length?null:this.t("sortableTable.actionAvailability.some",{actionable:e,total:this.selectedRows.length})}},methods:{onWindowResize(){this.updateHiddenBulkActions(),this.onScroll()},protectedUpdateHiddenBulkActions(){if(!this.$refs.container)return;const e=this.$refs.container.querySelector("."+this.bulkActionsClass),t=this.$refs.container.querySelector("."+this.bulkActionsDropdownClass);if(!e||!t)return;const n=e.offsetWidth,r=this.$refs.container.querySelectorAll("."+this.bulkActionClass),o=Array.from(r||[]),i=this.$refs.container.querySelector("."+this.bulkActionAvailabilityClass);let a=0;this.selectedRowsText&&(i?(i.style.display=fe,a=i.offsetWidth):i.style.display="none;"),this.hiddenActions=[];let s=0,l=!1,c=n-a;for(let u=0;u=c)if(l){const t=e.attributes.getNamedItem("id").value;this.hiddenActions.push(this.availableActions.find(e=>e.action===t)),e.style.display="none"}else t.style.display=fe,u=-1,s=0,l=!0,c=n-t.offsetWidth-a}l||(t.style.display="none")}}};const ve=ee;var be={props:{group:{type:String,default:()=>""},groupOptions:{type:Array,default:()=>[]},hasAdvancedFiltering:{type:Boolean,default:!1},advFilterHideLabelsAsCols:{type:Boolean,default:!1},advFilterPreventFilteringLabels:{type:Boolean,default:!1}},data(){return{columnOptions:[],colOptionsWatcher:null,advancedFilteringVisibility:!1,advancedFilteringValues:[],advFilterSearchTerm:null,advFilterSelectedProp:ve,advFilterSelectedLabel:te,column:null}},mounted(){this.hasAdvancedFiltering&&this.updateColsOptions()},watch:{advancedFilteringValues(){this.watcherUpdateLiveAndDelayed(!0,!1)},advancedFilteringVisibility(e){e?(window.addEventListener("click",this.onClickOutside),this.updateColsOptions()):window.removeEventListener("click",this.onClickOutside)}},computed:{advFilterSelectOptions(){return this.columnOptions.filter(e=>e.isFilter&&!e.preventFiltering)},advGroupOptions(){return this.groupOptions.map(e=>({label:this.t(e.tooltipKey),value:e.value}))}},methods:{handleColsVisibilyAndFiltering(e){const t=e;return this.columnOptions.forEach(e=>{if(e.isTableOption){const n=t.findIndex(t=>t.name===e.name);-1!==n?(t[n].isColVisible=e.isColVisible,t[n].isFilter=e.isFilter):t.push(e)}}),t},setColsOptions(){let e=[];const t=[],n=[],r=this.headers.slice().filter(e=>!e.maxPageSize||e.maxPageSize&&e.maxPageSize>=this.perPage);return r.forEach(e=>{var t;const r=e.name,o=e.labelKey?this.t(""+e.labelKey):e.label,i=!(Object.keys(e).includes("search")&&!e.search);let a=e.sort;const s=e.valueProp||e.value;let l=null,c=!0;if(e.sort&&s?("string"===typeof e.sort&&(a=e.sort.includes(":")?[e.sort.split(":")[0]]:[e.sort]),l=a.includes(s)?JSON.stringify([s]):JSON.stringify(a.concat([s]))):l=s?JSON.stringify([s]):null,null!==(t=this.columnOptions)&&void 0!==t&&t.length){const e=this.columnOptions.find(e=>e.name===r&&e.label===o);e&&(c=e.isColVisible)}n.push({name:r,label:o,value:l,isFilter:i,isTableOption:!0,isColVisible:c})}),this.rows.length&&this.rows.forEach(e=>{var n,r,o;null!==(n=e.metadata)&&void 0!==n&&n.labels&&Object.keys(null===(r=e.metadata)||void 0===r?void 0:r.labels).length&&Object.keys(null===(o=e.metadata)||void 0===o?void 0:o.labels).forEach(e=>{var n;const r={name:e,label:e,value:"metadata.labels."+e,isFilter:!0,isTableOption:!0,isColVisible:!1,isLabel:!0,preventFiltering:this.advFilterPreventFilteringLabels,preventColToggle:this.advFilterHideLabelsAsCols};if(null!==(n=this.columnOptions)&&void 0!==n&&n.length){const t=this.columnOptions.find(t=>t.name===e&&t.label===e);t&&(r.isColVisible=t.isColVisible)}t.filter(t=>t.label===e).length||t.push(r)})}),e=n.concat(t),e.length&&e.unshift({name:te,label:te,value:ee,isFilter:!0,isTableOption:!1}),e},addAdvancedFilter(){this.advFilterSelectedProp&&this.advFilterSearchTerm&&(this.advancedFilteringValues.push({prop:this.advFilterSelectedProp,value:this.advFilterSearchTerm,label:this.advFilterSelectedLabel}),this.eventualSearchQuery=this.advancedFilteringValues,this.advancedFilteringVisibility=!1,this.advFilterSelectedProp=ve,this.advFilterSelectedLabel=te,this.advFilterSearchTerm=null)},clearAllAdvancedFilters(){this.advancedFilteringValues=[],this.eventualSearchQuery=this.advancedFilteringValues,this.advancedFilteringVisibility=!1,this.advFilterSelectedProp=ve,this.advFilterSelectedLabel=te,this.advFilterSearchTerm=null},clearAdvancedFilter(e){this.advancedFilteringValues.splice(e,1),this.eventualSearchQuery=this.advancedFilteringValues},onClickOutside(e){const t=this.$refs["advanced-filter-group"];t&&!t.contains(e.target)&&(this.advancedFilteringVisibility=!1)},updateColsOptions(){this.columnOptions=this.setColsOptions()},changeColVisibility(e){const t=this.columnOptions.findIndex(t=>t.label===e.label);-1!==t&&(this.columnOptions[t].isColVisible=e.value)}}};const me={},ge={TABLET:"tablet",LAPTOP:"laptop",DESKTOP:"desktop"};var ye={name:"SortableTable",components:{THead:Z,Checkbox:f["a"],AsyncButton:h["b"],ActionDropdown:w,LabeledSelect:Y["a"]},mixins:[re,ce,de,pe,D,he,be],props:{headers:{type:Array,required:!0},rows:{type:Array,required:!0},keyField:{type:String,default:"_key"},loading:{type:Boolean,required:!1},groupBy:{type:String,default:null},groupRef:{type:String,default:null},groupSort:{type:Array,default:null},defaultSortBy:{type:String,default:null},tableActions:{type:Boolean,default:!0},rowActions:{type:Boolean,default:!0},mangleActionResources:{type:Function,default:null},rowActionsWidth:{type:Number,default:40},search:{type:Boolean,default:!0},extraSearchFields:{type:Array,default:null},subRows:{type:Boolean,default:!1},subExpandable:{type:Boolean,default:!1},subExpandColumn:{type:Boolean,default:!1},subSearch:{type:String,default:null},subFields:{type:Array,default:null},topDivider:{type:Boolean,default:!0},bodyDividers:{type:Boolean,default:!1},overflowX:{type:Boolean,default:!1},overflowY:{type:Boolean,default:!1},paging:{type:Boolean,default:!1},pagingLabel:{type:String,default:"sortableTable.paging.generic"},pagingParams:{type:Object,default:null},rowsPerPage:{type:Number,default:null},noRowsKey:{type:String,default:"sortableTable.noRows"},showNoRows:{type:Boolean,default:!0},noDataKey:{type:String,default:"sortableTable.noData"},showHeaders:{type:Boolean,default:!0},sortGenerationFn:{type:Function,default:null},getCustomDetailLink:{type:Function,default:null},componentTestid:{type:String,default:"sortable-table"},useQueryParamsForSimpleFiltering:{type:Boolean,default:!1},forceUpdateLiveAndDelayed:{type:Number,default:0}},data(){var e;let t="",n="";var r,o;!this.hasAdvancedFiltering&&this.useQueryParamsForSimpleFiltering&&null!==(e=this.$route.query)&&void 0!==e&&e.q&&(t=null===(r=this.$route.query)||void 0===r?void 0:r.q,n=null===(o=this.$route.query)||void 0===o?void 0:o.q);return{currentPhase:h["a"].WAITING,expanded:{},searchQuery:t,eventualSearchQuery:n,actionOfInterest:null,loadingDelay:!1}},mounted(){this._loadingDelayTimer=setTimeout(()=>{this.loadingDelay=!0},200);const e=document.querySelector("main");this._onScroll=this.onScroll.bind(this),null===e||void 0===e||e.addEventListener("scroll",this._onScroll)},beforeDestroy(){clearTimeout(this.loadingDelayTimer),clearTimeout(this._scrollTimer),clearTimeout(this._loadingDelayTimer),clearTimeout(this._liveColumnsTimer),clearTimeout(this._delayedColumnsTimer),clearTimeout(this.manualRefreshTimer);const e=document.querySelector("main");null===e||void 0===e||e.removeEventListener("scroll",this._onScroll)},watch:{eventualSearchQuery:A()((function(e){if(this.searchQuery=e,!this.hasAdvancedFiltering&&this.useQueryParamsForSimpleFiltering){var t;const n={name:this.$route.name,params:{...this.$route.params},query:{...this.$route.query,q:e}};!e&&null!==(t=this.$route.query)&&void 0!==t&&t.q&&(n.query={}),this.$router.replace(n)}}),200),descending(e,t){this.watcherUpdateLiveAndDelayed(e,t)},searchQuery(e,t){this.watcherUpdateLiveAndDelayed(e,t)},sortFields(e,t){this.watcherUpdateLiveAndDelayed(e,t)},groupBy(e,t){this.watcherUpdateLiveAndDelayed(e,t)},namespaces(e,t){this.watcherUpdateLiveAndDelayed(e,t)},page(e,t){this.watcherUpdateLiveAndDelayed(e,t)},forceUpdateLiveAndDelayed(e,t){this.watcherUpdateLiveAndDelayed(e,t)},initalLoad:{handler(e){e&&(this._didinit=!0,this.$nextTick(()=>this.updateLiveAndDelayed()))},immediate:!0},manualRefreshLoadingFinished:{handler(e,t){this.currentPhase=e?h["a"].ACTION:h["a"].WAITING,e&&e!==t&&this.$nextTick(()=>this.updateLiveAndDelayed())},immediate:!0}},created(){this.debouncedRefreshTableData=A()(this.refreshTableData,500)},computed:{...Object(i["a"])({isTooManyItemsToAutoUpdate:"resource-fetch/isTooManyItemsToAutoUpdate"}),...Object(i["a"])({isManualRefreshLoading:"resource-fetch/manualRefreshIsLoading"}),namespaces(){return this.$store.getters["activeNamespaceCache"]},initalLoad(){var e;return!(this.loading||this._didinit||null===(e=this.rows)||void 0===e||!e.length)},manualRefreshLoadingFinished(){var e;return!(this.loading||!this._didinit||null===(e=this.rows)||void 0===e||!e.length||this.isManualRefreshLoading)},fullColspan(){let e=0;for(let t=0;t!e.maxPageSize||e.maxPageSize&&e.maxPageSize>=this.perPage);if(this.groupBy){const t=e.find(e=>e.name===this.groupBy);t&&Object(p["i"])(e,t)}const t=e.find(e=>!e.width);if(!t){const t=e.find(e=>e.canBeVariable);if(t){const n=Object(d["e"])(t);delete n.width,e.splice(e.indexOf(t),1,n)}}if(this.hasAdvancedFiltering){const t=this.handleColsVisibilyAndFiltering(e);return t}return e},dt(){const e={check:"Select: ",actions:"Actions: "};return this.columns.forEach(t=>{e[t.name]=(t.label||t.name)+":"}),e},classObject(){return{"top-divider":this.topDivider,"body-dividers":this.bodyDividers,"overflow-y":this.overflowY,"overflow-x":this.overflowX}},hasLiveColumns(){const e=this.columns.find(e=>{var t;return(null===(t=e.formatter)||void 0===t?void 0:t.startsWith("Live"))||e.liveUpdates});return!!e},hasDelayedColumns(){const e=this.columns.find(e=>e.delayLoading);return!!e},columnFormmatterIDs(){const e={};return this.columns.forEach(t=>{t.formatter&&(e[t.formatter]=Object(u["d"])(t.formatter))}),e},displayRows(){const e=[],t=this.columnFormmatterIDs;return this.groupedRows.forEach(n=>{const r={grp:n,key:n.key,ref:n.ref,rows:[]};e.push(r),n.rows.forEach(e=>{const n={row:e,key:this.get(e,this.keyField),showSubRow:this.showSubRow(e,this.keyField),canRunBulkActionOfInterest:this.canRunBulkActionOfInterest(e),columns:[]};r.rows.push(n),this.columns.forEach(r=>{var o;const i=r.delayLoading?void 0:this.valueFor(e,r,r.isLabel);let a,s=i,l=!1;if(Array.isArray(i)&&(s=i.join(", ")),r.formatter)if(me[r.formatter])a=me[r.formatter],l=!0;else{var c;const e=null===(c=this.$plugin)||void 0===c?void 0:c.getDynamic("formatters",r.formatter);e&&(a=e,l=!0)}n.columns.push({col:r,value:i,formatted:s,component:a,needRef:l,delayed:r.delayLoading,live:(null===(o=r.formatter)||void 0===o?void 0:o.startsWith("Live"))||r.liveUpdates,label:this.labelFor(r),dasherize:t[r.formatter]||""})})})}),e}},methods:{refreshTableData(){this.$store.dispatch("resource-fetch/doManualRefresh")},get:d["f"],dasherize:u["d"],onScroll(){(this.hasLiveColumns||this.hasDelayedColumns)&&(clearTimeout(this._liveColumnsTimer),clearTimeout(this._scrollTimer),clearTimeout(this._delayedColumnsTimer),this._scrollTimer=setTimeout(()=>{this.updateLiveColumns(),this.updateDelayedColumns()},300))},watcherUpdateLiveAndDelayed(e,t){e!==t&&this.$nextTick(()=>this.updateLiveAndDelayed())},updateLiveAndDelayed(){this.hasLiveColumns&&this.updateLiveColumns(),this.hasDelayedColumns&&this.updateDelayedColumns()},updateDelayedColumns(){if(clearTimeout(this._delayedColumnsTimer),!this.$refs.column||0===this.pagedRows.length)return;const e=this.$refs.column.filter(e=>e.startDelayedLoading&&!e.__delayedLoading),t=(window.innerHeight||document.documentElement.clientHeight)+100;let n=0;for(let r=0;r=0&&i<=t&&(o.startDelayedLoading(!0),o.__delayedLoading=!0,n++,4===n))return void(this._delayedColumnsTimer=setTimeout(this.updateDelayedColumns,100))}},updateLiveColumns(){if(clearTimeout(this._liveColumnsTimer),!this.$refs.column||!this.hasLiveColumns||0===this.pagedRows.length)return;const e=window.innerHeight||document.documentElement.clientHeight,t=this.$refs.column.filter(e=>!!e.liveUpdate),n=s()();let r=Number.MAX_SAFE_INTEGER;for(let o=0;o=0&&a<=e){const e=i.liveUpdate(n);ethis.updateLiveColumns(),1e3*r)},labelFor(e){return e.labelKey?this.t(e.labelKey,void 0,!0):e.label?e.label:Object(u["q"])(e.name)},valueFor(e,t,n){if("function"===typeof t.value)return t.value(e);var r,o,i;if(n)return null!==(r=e.metadata)&&void 0!==r&&r.labels&&null!==(o=e.metadata)&&void 0!==o&&o.labels[t.label]?null===(i=e.metadata)||void 0===i?void 0:i.labels[t.label]:"";const a=t.value||t.name,s=Object(d["f"])(e,a);return null===s||void 0===s?"":s},isExpanded(e){const t=e[this.keyField];return!!this.expanded[t]},toggleExpand(e){const t=e[this.keyField],n=!this.expanded[t];return this.expanded[t]=n,this.expanded={...this.expanded},n},setBulkActionOfInterest(e){this.actionOfInterest=e},canRunBulkActionOfInterest(e){var t;if(!this.actionOfInterest||c()(null===e||void 0===e?void 0:e.availableActions))return!1;const n=null===(t=e.availableActions)||void 0===t?void 0:t.find(e=>e.action===this.actionOfInterest.action);return null===n||void 0===n?void 0:n.enabled},focusSearch(){this.$refs.searchQuery&&(this.$refs.searchQuery.focus(),this.$refs.searchQuery.select())},nearestCheckbox(){var e;return null===(e=document.activeElement.closest("tr.main-row"))||void 0===e?void 0:e.querySelector(".checkbox-custom")},focusAdjacent(e=!0){const t=Array.from(this.$el.querySelectorAll(".checkbox-custom")),n=this.nearestCheckbox();let r=-1;return r=n?t.indexOf(n)+(e?1:-1):e?1:t.length-1,r<1?(r=1,null):r>=t.length?(r=t.length-1,null):t[r]?(t[r].focus(),t[r]):void 0},focusNext:k()((function(e,t=!1){const n=this.focusAdjacent(!0),r=R(n,"tr");null!==r&&void 0!==r&&r.classList.contains("row-selected")||this.keySelectRow(r,t)}),50),focusPrevious:k()((function(e,t=!1){const n=this.focusAdjacent(!1),r=R(n,"tr");null!==r&&void 0!==r&&r.classList.contains("row-selected")||this.keySelectRow(r,t)}),50),showSubRow(e,t){const n=this.subRows&&(!this.subExpandable||this.expanded[Object(d["f"])(e,t)]),r=e.stateDescription;return n||r},handleActionButtonClick(e,t){this.$emit("clickedActionButton",{event:t,targetElement:this.$refs["actionButton"+e][0]})}}},_e=ye,we=(n("4389"),n("ca68"),Object(y["a"])(_e,r,o,!1,null,"4c2ecb01",null));t["b"]=we.exports},1001:function(e,t,n){var r=n("986c");function o(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}e.exports=o},1032:function(e,t,n){"use strict";var r=function(){var e=this,t=e._self._c;e._self._setupProxy;return t("div",{staticClass:"checkbox-outer-container",attrs:{"data-checkbox-ctrl":""}},[t("label",{staticClass:"checkbox-container",class:{disabled:e.isDisabled},attrs:{for:e.id},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.clicked(t))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])?null:(t.preventDefault(),e.clicked(t))}],click:function(t){return e.clicked(t)}}},[t("input",{attrs:{type:"checkbox",tabindex:-1,name:e.id},domProps:{checked:e.isChecked,value:e.valueWhenTrue},on:{click:function(e){e.stopPropagation(),e.preventDefault()}}}),t("span",{staticClass:"checkbox-custom",class:{indeterminate:e.indeterminate},attrs:{tabindex:e.isDisabled?-1:0,"aria-label":e.label,"aria-checked":!!e.value,role:"checkbox"}}),e.$slots.label||e.label||e.labelKey||e.tooltipKey||e.tooltip?t("span",{staticClass:"checkbox-label",class:{"checkbox-primary":e.primary}},[e._t("label",(function(){return[e.labelKey?t("t",{attrs:{k:e.labelKey,raw:!0}}):e.label?[e._v(e._s(e.label))]:e._e(),e.tooltipKey?t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:e.t(e.tooltipKey),expression:"t(tooltipKey)"}],staticClass:"checkbox-info icon icon-info icon-lg"}):e.tooltip?t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:e.tooltip,expression:"tooltip"}],staticClass:"checkbox-info icon icon-info icon-lg"}):e._e()]}))],2):e._e()]),e.descriptionKey||e.description?t("div",{staticClass:"checkbox-outer-container-description"},[e.descriptionKey?t("t",{attrs:{k:e.descriptionKey}}):e.description?[e._v(" "+e._s(e.description)+" ")]:e._e()],2):e._e()])},o=[],i=n("8bbf"),a=n.n(i),s=n("da25"),l=n("bddd"),c=n("736a"),u=n.n(c),d=a.a.extend({name:"Checkbox",props:{value:{type:[Boolean,Array,String],default:!1},label:{type:String,default:null},labelKey:{type:String,default:null},id:{type:String,default:String(1e3*Math.random())},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},mode:{type:String,default:s["p"]},tooltip:{type:[String,Object],default:null},tooltipKey:{type:String,default:null},valueWhenTrue:{type:[Boolean,String,Number],default:!0},descriptionKey:{type:String,default:null},description:{type:String,default:null},primary:{type:Boolean,default:!1}},computed:{isDisabled(){return this.disabled||this.mode===s["t"]},isChecked(){return this.isMulti(this.value)?this.findTrueValues(this.value):this.value===this.valueWhenTrue}},methods:{clicked(e){if("A"===e.target.tagName&&e.target.href)return!0;if(e.stopPropagation(),e.preventDefault(),this.isDisabled)return;const t={bubbles:!0,cancelable:!1,shiftKey:e.shiftKey,altKey:e.altKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey},n=new CustomEvent("click",t),r=u()(this.value);this.isMulti(r)?(this.isChecked?Object(l["i"])(r,this.valueWhenTrue):Object(l["a"])(r,this.valueWhenTrue),this.$emit("input",r)):this.isString(this.valueWhenTrue)?this.isChecked?this.$emit("input",null):this.$emit("input",this.valueWhenTrue):(this.$emit("input",!r),this.$el.dispatchEvent(n))},isMulti(e){return Array.isArray(e)},isString(e){return"string"===typeof e},findTrueValues(e){return e.find(e=>e===this.valueWhenTrue)||!1}}}),p=d,f=(n("b5fc"),n("d802")),h=Object(f["a"])(p,r,o,!1,null,null,null);t["a"]=h.exports},"108e":function(e,t){function n(e){return function(t){return null==t?void 0:t[e]}}e.exports=n},"10d1":function(e,t,n){var r=n("201b"),o=function(){return r.Date.now()};e.exports=o},"119a":function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".header[data-v-02ac34ae],H2[data-v-02ac34ae]{position:relative}H2[data-v-02ac34ae]{margin:0 0 20px 0}.filter[data-v-02ac34ae]{line-height:45px}.right-action[data-v-02ac34ae]{position:absolute;top:10px;right:10px}",""]),e.exports=t},1279:function(e,t,n){"use strict";n("05b8")},1386:function(e,t){function n(e){var t=this.__data__,n=t["delete"](e);return this.size=t.size,n}e.exports=n},"13a8":function(e,t,n){var r=n("4953");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("007f64f3",r,!0,{sourceMap:!1,shadowMode:!1})},"15ca":function(e,t,n){"use strict";var r=function(){var e=this,t=e._self._c;return e.loading?t("div",{staticClass:"loading-indicator"},[e.showMessage?t("div",{staticClass:"overlay",class:{"overlay-content-mode":"content"===e.mode,"overlay-main-mode":"main"===e.mode}},[t("t",{attrs:{k:"generic.loading",raw:!0}})],1):e._e()]):t("div",[e._t("default")],2)},o=[],i={props:{loading:{type:Boolean,default:!0},mode:{type:String,default:"content"},noDelay:{type:Boolean,default:!1}},data(){return{timer:null,showMessage:this.noDelay}},mounted(){this.timer=setTimeout(()=>{this.showMessage=!0},250)},beforeDestroy(){clearTimeout(this.timer)}},a=i,s=(n("4720"),n("d802")),l=Object(s["a"])(a,r,o,!1,null,"23723280",null);t["a"]=l.exports},1722:function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));var r=n("7083"),o=n("98d3"),i=n("2cb5"),a=n("da25"),s=n("4fce"),l=n("e24b");function c({name:e,params:t,query:n},r){const o=Object(s["a"])({name:e,params:t,query:n});return"home"===r&&"home"===e||r===o}function u({name:e,query:t},n){return!(n!==a["p"]||!t.mode||t.mode!==a["p"]||t.as)||(!(n!==a["m"]||!t.as||t.as!==a["m"])||(!(n!==a["o"]||t.as||!e.includes("-id")||t.mode&&(null===t||void 0===t?void 0:t.mode)===a["p"])||(!(n!==a["r"]||e.includes("-id")||!e.includes("-resource"))||!(n!==a["n"]||!e.endsWith("-create")))))}function d(e,t,n){if(!Object.keys(t).length)return!0;const{params:r}=e,o=["product","resource","namespace","cluster","id","mode","path","hash","queryParam","context"];let i=!0;for(let a=0;a{if(d(a,e.locationConfig,l||{})){if(t===r["c"].CARD)n===r["b"].CLUSTER_DASHBOARD_CARD&&e.labelKey&&(c[p].label=s.t(e.labelKey));else if(t===r["c"].ACTION&&(n===r["a"].TABLE&&(e.labelKey&&(c[p].label=s.t(e.labelKey)),c[p].bulkable=c[p].multiple||c[p].bulkable,c[p].action||(c[p].action="custom-table-action-"+Object(i["m"])(10).toLowerCase())),n===r["a"].HEADER&&e.shortcut))if("string"===typeof e.shortcut)c[p].shortcutLabel=()=>o["b"]?`(⌘-${e.shortcut.toUpperCase()})`:`(Ctrl-${e.shortcut.toUpperCase()})`,c[p].shortcutKey={windows:["ctrl",e.shortcut],mac:["meta",e.shortcut]};else if("object"===typeof e.shortcut&&!Array.isArray(e.shortcut)&&null!==e.shortcut){c[p].shortcutKey=e.shortcut;const t=o["b"]?c[p].shortcut.mac:c[p].shortcut.windows?c[p].shortcut.windows:[];let n="";t.forEach((e,r)=>{r`(${n})`}u.push(c[p])}})}return u}},"1a7e":function(e,t,n){"use strict";n("13a8")},"1ab6":function(e,t,n){(function(e){var r=n("201b"),o=t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o,s=a?r.Buffer:void 0,l=s?s.allocUnsafe:void 0;function c(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}e.exports=c}).call(this,n("6984")(e))},"1c25":function(e,t,n){"use strict";if(n.r(t),"undefined"!==typeof window){var r=window.document.currentScript,o=r&&r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(n.p=o[1])}function i(e){e.register("edit","security.kubearmor.com.kubearmorpolicy",()=>Promise.all([n.e(3),n.e(0)]).then(n.bind(null,"e5d3"))),e.register("formatters","PolicyTableBadges",()=>n.e(1).then(n.bind(null,"af3a"))),e.register("formatters","PolicyTableDescription",()=>n.e(1).then(n.bind(null,"ee90"))),e.register("formatters","PolicyTablePublisher",()=>n.e(1).then(n.bind(null,"dde5"))),e.register("formatters","PolicyTableResources",()=>n.e(1).then(n.bind(null,"1a9e"))),e.register("formatters","matchExpressions",()=>n.e(1).then(n.bind(null,"177a")))}var a=function(){var e=this,t=e._self._c;return e.hasKubearmor?t("Console",{attrs:{url:e.consoleUrl}}):t("Install")},s=[],l=n("907c"),c=function(){var e=this,t=e._self._c;return t("div",{staticClass:"main"},[t("h2",[e._v("Kubearmor operator is not installed")]),e._m(0),t("div",{staticClass:"install-command"},[t("pre",[e._v(e._s(e.installCommand))]),t("button",{on:{click:e.copyText}},[e._v("Copy to Clipboard")])])])},u=[function(){var e=this,t=e._self._c;return t("p",[e._v(" Please complete the installation process "),t("a",{attrs:{href:"https://github.com/kubearmor/KubeArmor/blob/main/getting-started/deployment_guide.md#install-kubearmor",target:"_blank"}},[e._v(" following this guide ")]),e._v(". ")])}],d=n("9ce4"),p=n("a8b9"),f=n("8535");const h="ns",v="project",b=h+"://",m=v+"://",g="ResourceList",y=e=>{const t=e["management/byId"](l["k"].SETTING,f["b"].UI_PERFORMANCE);let n={};if(null!==t&&void 0!==t&&t.value)try{n=JSON.parse(t.value)}catch(r){console.warn("ui-performance setting contains invalid data")}return Object.assign(f["a"],n||{})};class _{isApplicable(e){return Array.isArray(e.namespaced)}isEnabled(e){var t;const n=e["currentProduct"];if("cluster"!==(null===n||void 0===n?void 0:n.inStore))return!1;if(null!==n&&void 0!==n&&n.showWorkspaceSwitcher)return!1;const r=y(e);return!(null===(t=r.forceNsFilterV2)||void 0===t||!t.enabled)}checkAndCreateParam(e){return this.isApplicable(e)?this.createParam(e.namespaced):""}createParam(e){if(!e||!e.length)return"";const t=e.map(e=>e.replace(b,"").replace(m,"")).join(",");return`${_.param}=${t}`}}_.param="projectsornamespaces";var w=new _,x={data(){return{forceUpdateLiveAndDelayed:0}},computed:{...Object(d["a"])(["currentProduct","currentCluster","namespaceFilters"]),namespaceFilterRequired(){return this.__namespaceRequired&&!this.__validFilter},namespaceFilter(){return this.__namespaceRequired?this.__validFilter:""},__validFilter(){const e=this.namespaceFilters.length&&this.namespaceFilters.every(e=>e.startsWith(h)||e.startsWith(v));return e?this.namespaceFilters:null},__namespaceRequired(){return!!w.isEnabled(this.$store.getters)&&this.__areResourcesNamespaced},__areResourcesNamespaced(){return"cluster"===this.currentProduct.inStore&&(this.loadResources||[]).every(e=>{var t;const n=this.$store.getters["cluster/schemaFor"](e);return null===n||void 0===n||null===(t=n.attributes)||void 0===t?void 0:t.namespaced})}},watch:{async namespaceFilter(e){e&&(this.$options.name!==g&&this.$fetch&&await this.$fetch(),this.forceUpdateLiveAndDelayed=(new Date).getTime())}}};const k=4;var O={mixins:[x],data(){const e=this.$store.getters["management/byId"](l["k"].SETTING,f["b"].UI_PERFORMANCE);let t={};if(e&&e.value)try{t=JSON.parse(e.value)}catch(n){console.warn("ui-performance setting contains invalid data")}else t=f["a"];return{perfConfig:t,init:!1,multipleResources:[],loadResources:[this.resource],hasManualRefresh:!1,watch:!0,isTooManyItemsToAutoUpdate:!1,force:!1,incremental:!1,fetchedResourceType:[]}},beforeDestroy(){this.init&&(this.$store.dispatch("resource-fetch/clearData"),this.fetchedResourceType.forEach(e=>{this.$store.dispatch(e.currStore+"/incrementLoadCounter",e.type)}))},computed:{...Object(d["a"])({refreshFlag:"resource-fetch/refreshFlag"}),rows(){const e=this.fetchedResourceType.find(e=>e.type===this.resource);return e?this.$store.getters[e.currStore+"/all"](this.resource):[]},loading(){return!this.rows.length&&this.$fetchState.pending}},watch:{refreshFlag(e){this.init&&e&&this.$fetch()}},methods:{$initializeFetchData(e,t=[],n){if(!this.init){const r=n||this.$store.getters["currentStore"]();this.__gatherResourceFetchData(e,t,r),this.watch||(this.force=!0),this.isTooManyItemsToAutoUpdate&&(this.hasManualRefresh=!0)}},$fetchType(e,t=[],n){var r;const o=n||this.$store.getters["currentStore"]();this.$initializeFetchData(e,t,o),this.fetchedResourceType.find(t=>t.type===e)||this.fetchedResourceType.push({type:e,currStore:o});let i=0;if(this.incremental){const t=this.__getCountForResources([e],this.namespaceFilter,o);i=Math.ceil(t/k)}const a={incremental:i,watch:this.watch,force:this.force,hasManualRefresh:this.hasManualRefresh},s=this.$store.getters[o+"/schemaFor"](e);return null!==s&&void 0!==s&&null!==(r=s.attributes)&&void 0!==r&&r.namespaced&&(a.namespaced=this.namespaceFilter),this.$store.dispatch(o+"/findAll",{type:e,opt:a})},__getCountForResources(e,t,n){const r=n||this.$store.getters["currentStore"]();return e.reduce((e,n)=>e+this.__getCountForResource(n,t,r),0)},__getCountForResource(e,t,n){var r,o,i;const a=null===(r=this.$store.getters[n+"/all"](l["c"])[0])||void 0===r?void 0:r.counts[""+e],s=t&&null!==a&&void 0!==a&&a.namespaces?null===a||void 0===a||null===(o=a.namespaces[t])||void 0===o?void 0:o.count:null===a||void 0===a||null===(i=a.summary)||void 0===i?void 0:i.count;return s||0},__gatherResourceFetchData(e,t,n){var r,o,i,a;this.init=!0;const s=null===(r=this.perfConfig)||void 0===r||null===(r=r.manualRefresh)||void 0===r?void 0:r.enabled,l=parseInt((null===(o=this.perfConfig)||void 0===o||null===(o=o.manualRefresh)||void 0===o?void 0:o.threshold)||"0",10),c=null===(i=this.perfConfig)||void 0===i||null===(i=i.incrementalLoading)||void 0===i?void 0:i.enabled,u=parseInt((null===(a=this.perfConfig)||void 0===a||null===(a=a.incrementalLoading)||void 0===a?void 0:a.threshold)||"0",10);this.multipleResources=t;let d=0,p=!0,f=!1,h=!1;const v=this.multipleResources.length?this.multipleResources:[e];d=this.__getCountForResources(v,this.namespaceFilter,n),s&&d>=l&&(p=!1,f=!0),h=c&&u>0&&d>=u,this.$store.dispatch("resource-fetch/updateIsTooManyItems",f),this.watch=p,this.isTooManyItemsToAutoUpdate=f,this.incremental=h}}},A={async fetch(){const e=[this.$fetchType(l["y"])];await Object(p["a"])(e)},mixins:[O],data(){return{console:!1,installCommand:"helm repo add kubearmor https://kubearmor.github.io/charts\nhelm repo update kubearmor\nhelm upgrade --install kubearmor-operator kubearmor/kubearmor-operator -n kubearmor --create-namespace\nkubectl apply -f https://raw.githubusercontent.com/kubearmor/KubeArmor/main/pkg/KubeArmorOperator/config/samples/sample-config.yml"}},methods:{copyText(){navigator.clipboard.writeText(this.installCommand).then(()=>{console.log("Copied to clipboard!")}).catch(e=>{console.error("Failed to copy:",e)})}},computed:{...Object(d["a"])(["currentCluster","currentProduct"]),...Object(d["a"])({allRepos:"catalog/repos"}),certManagerInstalled(){return!!this.$store.getters[this.currentProduct.inStore+"/schemaFor"]("cert-manager.io.certificate")}}},E=A,S=(n("daa5"),n("d802")),T=Object(S["a"])(E,c,u,!1,null,null,null),R=T.exports,C=function(){var e=this,t=e._self._c;return t("div",[t("h2",[e._v("Overview")]),e._m(0),t("a",{staticClass:"card",attrs:{href:e.computedUrl,target:"_blank"}},[t("svg",{staticClass:"open-link",attrs:{width:"1.5rem",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"}},[t("path",{attrs:{"stroke-linecap":"round","stroke-linejoin":"round",d:"M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"}})]),t("svg",{attrs:{id:"E",xmlns:"http://www.w3.org/2000/svg",width:"60px",viewBox:"0 0 800 800"}},[t("path",{attrs:{color:"currentColor",d:"m400,56.72c-192.15,0-348.5,154.01-348.5,343.26s156.35,343.3,348.5,343.3,348.5-154.01,348.5-343.3S592.15,56.72,400,56.72ZM117.24,267.04c50.56-103.58,158.3-175.27,282.76-175.27s232.2,71.69,282.76,175.27c1.3,2.7-2.31,5.01-4.16,2.7-58.85-74.81-161.62-124.36-278.6-124.36s-219.75,49.55-278.6,124.36c-1.85,2.31-5.46,0-4.16-2.7Zm523.66,20.6c-5.2,5.71-16.79,3.63-25.89-4.65-9.1-8.28-12.26-19.63-7.05-25.34,5.2-5.71,16.79-3.63,25.89,4.65s12.26,19.63,7.05,25.34Zm-46.33-45.12c-5.78,11.64-23.35,14.67-39.24,6.77-15.89-7.9-24.08-23.73-18.3-35.37s23.35-14.67,39.24-6.77c15.89,7.9,24.08,23.73,18.3,35.37Zm-92.35,47.6c0,23.77-19.31,43.11-43.11,43.11s-43.11-19.34-43.11-43.11,19.34-43.11,43.11-43.11,43.11,19.34,43.11,43.11Zm-118.21,0c0,23.77-19.34,43.11-43.11,43.11s-43.14-19.34-43.14-43.11,19.34-43.11,43.14-43.11,43.11,19.34,43.11,43.11Zm217.8,345.57c-54.59,45.22-125.01,72.53-201.8,72.53s-147.21-27.31-201.8-72.53c-2.34-1.98.26-5.66,2.89-4.03,55.37,34.04,124.26,54.23,198.91,54.23s143.54-20.19,198.91-54.23c2.63-1.63,5.23,2.05,2.89,4.03Zm26.95-173.84c.1.03,10.27,3.87,21.62,13.26-4.45-.52-9.53-.94-14.01-.81l-10.01.29,8.03,6.01c.23.16,21.46,16.13,34.92,27.93-15.77-3.12-46.91-8.71-71.75-10.05l-9.2-.46,6.57,6.47c.19.2,19.96,19.9,30.11,42.07-6.4-3.48-15.18-8-21.82-10.34l-7.9-2.76,3.54,7.58c.06.13,5.59,11.9,9.92,21.62-8.75-4.23-22.82-11.02-30.5-14.24l-13.43-5.66,9.36,11.15s15.61,18.5,26.46,31.44c-20.55-7.15-65.77-24.29-82.03-41.68l-17.52-18.73,11.83,22.76c.13.23,11.77,22.53,22.21,39.57-11.18-8.36-26.33-20.29-34.5-29.29l-12.61-13.92,6.76,17.56c.03.13,4.45,11.57,9.56,22.99-21-20.22-62.65-62.23-101.6-112.69l-2.76-3.58-2.76,3.58c-38.95,50.46-80.6,92.46-101.6,112.69,5.1-11.41,9.53-22.86,9.56-22.99l6.76-17.56-12.62,13.92c-8.16,9.01-23.31,20.94-34.5,29.29,10.44-17.04,22.08-39.34,22.21-39.6l11.83-22.73-17.52,18.73c-16.26,17.39-61.48,34.53-82.03,41.68,10.89-12.94,26.47-31.44,26.47-31.44l9.36-11.15-13.43,5.66c-7.51,3.19-20.97,9.62-30.5,14.24,4.32-9.72,9.85-21.49,9.92-21.62l3.54-7.58-7.9,2.76c-6.63,2.34-15.41,6.86-21.82,10.34,10.14-22.17,29.88-41.88,30.11-42.07l6.57-6.47-9.23.46c-24.81,1.33-55.95,6.93-71.72,10.05,13.46-11.8,34.69-27.77,34.92-27.93l8.03-6.01-10.01-.29c-4.45-.13-9.56.29-14.01.81,11.35-9.4,21.52-13.23,21.62-13.26l12.16-4.49-12.75-2.24c-13.79-2.44-40.54-1.5-55.34-.91,17.82-13.56,47.92-28.68,48.22-28.81l6.27-3.15-6.27-3.12c-9.49-4.78-27.86-9.88-41.68-13.36,11.96-.98,23.57-1.11,23.7-1.11l12.39-.13-10.63-6.4c-14.99-8.97-30.79-15.22-41.71-18.95,31.67-4.06,67.24-1.85,67.63-1.82l17.62,1.14-15.87-7.8c-6.01-2.96-12.39-5.62-18.99-8,23.25-3.28,47.6-3.35,47.86-3.35h15.51l-13.98-6.66c-12.48-5.95-35.63-13.53-51.14-18.37,23.93-1.53,45.71-1.95,45.97-1.95l8.81-.16-6.5-5.95c-1.95-1.76-4.39-3.61-7.32-5.56,124.85,12.35,202.26,55.76,203.07,56.21l1.72.98,1.72-.98c.81-.45,78.22-43.86,203.07-56.21-2.93,1.95-5.36,3.8-7.32,5.56l-6.5,5.95,8.81.16c.23,0,22.04.42,45.97,1.95-15.51,4.84-38.66,12.42-51.14,18.37l-13.98,6.66h15.51c.26,0,24.61.07,47.89,3.35-5.2,1.85-11.96,4.52-19.02,8l-15.87,7.8,17.62-1.14c.39-.03,35.93-2.24,67.63,1.82-10.92,3.74-26.72,9.98-41.71,18.95l-10.63,6.4,12.39.13c.13,0,11.74.13,23.7,1.11-13.82,3.48-32.19,8.62-41.68,13.36l-6.27,3.12,6.27,3.15c.29.13,30.4,15.25,48.15,29-14.73-.78-41.49-1.72-55.27.72l-12.74,2.24,12.16,4.49Z"}})]),e._m(1)])])},I=[function(){var e=this,t=e._self._c;return t("p",[e._v("Powered by: "),t("a",{attrs:{href:"https://clastix.io/",target:"_blank"}},[e._v("Clastix")])])},function(){var e=this,t=e._self._c;return t("div",[t("h3",[e._v("Kamaji Console")]),t("p",[e._v(" Deploys and operates Kubernetes Control Plane at scale with a fraction of the operational burden ")])])}],L={props:{url:String},components:{},data(){return{computedUrl:`https://${this.url}/ui`}}},D=L,N=(n("f009"),Object(S["a"])(D,C,I,!1,null,"865222be",null)),j=N.exports,P={name:"Dashboard",layout:"single",async beforeMount(){try{const e=await this.$store.dispatch("cluster/find",{type:l["D"].DEPLOYMENT,id:"kubearmor/kubearmor-operator"});this.operatorPresence=!!e,this.consoleUrl="https://kubearmor.io/"}catch(e){this.operatorPresence=!1,console.error("KubeArmor operator not found:",e)}},components:{Install:R,Console:j},data(){return{consoleUrl:"",operatorPresence:!1}},computed:{hasKubearmor(){return this.operatorPresence}}},F=P,$=Object(S["a"])(F,a,s,!1,null,null,null),M=$.exports,U=function(){var e=this,t=e._self._c;return e.hasKubearmor?t("div",{attrs:{url:e.consoleUrl}},[t("h1",[e._v("KubeArmor Probe")]),t("br"),t("br"),t("h2",[e._v("DaemonSets")]),t("SortableTable",{attrs:{headers:e.DAEMONSET_HEADERS,rows:e.kADaemonSets,rowActions:!0,titleSlot:'
DaemonSets
'}}),t("br"),e._v(" "),t("br"),t("h2",[e._v("Deployments")]),t("SortableTable",{attrs:{headers:e.DEPLOYMENT_HEADERS,rows:e.kADeployments,rowActions:!0,titleSlot:'
DaemonSets
'}}),t("br"),e._v(" "),t("br"),t("h2",[e._v("Nodelist")]),t("SortableTable",{attrs:{headers:e.NODELIST_HEADERS,rows:e.allNodes,rowActions:!0,titleSlot:'
DaemonSets
'}}),t("br"),e._v(" "),t("br")],1):t("Install")},B=[],G=n("0fb1"),K=function(){var e=this,t=e._self._c;return e.namespaceFilterRequired?t("IconMessage",{attrs:{vertical:!0,subtle:!1,icon:"icon-filter_alt"},scopedSlots:e._u([{key:"message",fn:function(){return[e._v(" "+e._s(e.t("resourceList.nsFiltering"))+" ")]},proxy:!0}],null,!1,4238627989)}):t("div",[e.showMasthead?t("Masthead",{attrs:{"type-display":e.customTypeDisplay,schema:e.schema,resource:e.resource,"show-incremental-loading-indicator":e.showIncrementalLoadingIndicator,"load-resources":e.loadResources,"load-indeterminate":e.loadIndeterminate}},[t("template",{slot:"extraActions"},[e._t("extraActions")],2)],2):e._e(),t("ExtensionPanel",{attrs:{resource:{},type:e.extensionType,location:e.extensionLocation}}),e.hasListComponent?t("div",[t(e.listComponent,e._b({tag:"component",attrs:{"incremental-loading-indicator":e.showIncrementalLoadingIndicator,rows:e.rows}},"component",e.$data,!1))],1):t("ResourceTable",{attrs:{schema:e.schema,rows:e.rows,loading:e.loading,headers:e.headers,"group-by":e.groupBy,"has-advanced-filtering":e.hasAdvancedFiltering,"adv-filter-hide-labels-as-cols":e.advFilterHideLabelsAsCols,"adv-filter-prevent-filtering-labels":e.advFilterPreventFilteringLabels,"use-query-params-for-simple-filtering":e.useQueryParamsForSimpleFiltering,"force-update-live-and-delayed":e.forceUpdateLiveAndDelayed}})],1)},H=[],V=function(){var e=this,t=e._self._c;return t("SortableTable",e._g(e._b({ref:"table",attrs:{headers:e._headers,rows:e.filteredRows,loading:e.loading,"group-by":e.computedGroupBy,group:e.group,"group-options":e.groupOptions,search:e.search,paging:!0,"paging-params":e.pagingParams,"paging-label":e.pagingLabel,"row-actions":e.rowActions,"table-actions":e._showBulkActions,"overflow-x":e.overflowX,"overflow-y":e.overflowY,"get-custom-detail-link":e.getCustomDetailLink,"has-advanced-filtering":e.hasAdvancedFiltering,"adv-filter-hide-labels-as-cols":e.advFilterHideLabelsAsCols,"adv-filter-prevent-filtering-labels":e.advFilterPreventFilteringLabels,"key-field":e.keyField,"sort-generation-fn":e.safeSortGenerationFn,"use-query-params-for-simple-filtering":e.useQueryParamsForSimpleFiltering,"force-update-live-and-delayed":e.forceUpdateLiveAndDelayed},on:{clickedActionButton:e.handleActionButtonClick,"group-value-change":function(t){e.group=t}},scopedSlots:e._u([e.showGrouping?{key:"header-middle",fn:function(){return[e._t("more-header-middle"),t("ButtonGroup",{attrs:{options:e.groupOptions},model:{value:e.group,callback:function(t){e.group=t},expression:"group"}})]},proxy:!0}:null,e.showGrouping?{key:"header-right",fn:function(){return[e._t("header-right")]},proxy:!0}:null,{key:"group-by",fn:function({group:e}){return[t("div",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.ref,expression:"thisGroup.ref"}],staticClass:"group-tab"})]}},e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}})),{key:"shortkeys",fn:function(){return[t("button",{directives:[{name:"shortkey",rawName:"v-shortkey.once",value:["e"],expression:"['e']",modifiers:{once:!0}}],staticClass:"hide",on:{shortkey:function(t){return e.keyAction("edit")}}}),t("button",{directives:[{name:"shortkey",rawName:"v-shortkey.once",value:["y"],expression:"['y']",modifiers:{once:!0}}],staticClass:"hide",on:{shortkey:function(t){return e.keyAction("yaml")}}}),e._showBulkActions?t("button",{directives:[{name:"shortkey",rawName:"v-shortkey.once",value:["del"],expression:"['del']",modifiers:{once:!0}}],staticClass:"hide",on:{shortkey:function(t){return e.keyAction("remove")}}}):e._e(),e._showBulkActions?t("button",{directives:[{name:"shortkey",rawName:"v-shortkey.once",value:["backspace"],expression:"['backspace']",modifiers:{once:!0}}],staticClass:"hide",on:{shortkey:function(t){return e.keyAction("remove")}}}):e._e()]},proxy:!0}],null,!0)},"SortableTable",e.$attrs,!1),e.$listeners))},q=[],z=n("e24b"),W=n("5000"),Y=n("cc2d"),X=n("462f"),J=n("bddd"),Q=n("7083"),Z=n("1722");const ee="namespace",te=(e,t)=>{var n,r;if(!e)return null;const o=e.id;let i=o;const a=t.getters["currentStore"](o),s=null===(n=(r=t.getters)[a+"/currentGeneration"])||void 0===n?void 0:n.call(r,o);s&&(i+="/"+s);const l=t.getters["activeNamespaceCacheKey"];return l?`${i}/${l}`:i};var ne={name:"ResourceTable",components:{ButtonGroup:Y["a"],SortableTable:G["b"]},props:{schema:{type:Object,default:null},rows:{type:Array,required:!0},loading:{type:Boolean,required:!1},keyField:{type:String,default:"_key"},headers:{type:Array,default:null},groupBy:{type:String,default:null},namespaced:{type:Boolean,default:null},search:{type:Boolean,default:!0},tableActions:{type:[Boolean,null],default:null},pagingLabel:{type:String,default:"sortableTable.paging.resource"},rowActions:{type:Boolean,default:!0},groupable:{type:Boolean,default:null},groupTooltip:{type:String,default:"resourceTable.groupBy.namespace"},overflowX:{type:Boolean,default:!1},overflowY:{type:Boolean,default:!1},sortGenerationFn:{type:Function,default:null},getCustomDetailLink:{type:Function,default:null},ignoreFilter:{type:Boolean,default:!1},hasAdvancedFiltering:{type:Boolean,default:!1},advFilterHideLabelsAsCols:{type:Boolean,default:!1},advFilterPreventFilteringLabels:{type:Boolean,default:!1},useQueryParamsForSimpleFiltering:{type:Boolean,default:!1},forceUpdateLiveAndDelayed:{type:Number,default:0}},mounted(){window.addEventListener("keyup",this.handleEnterKeyPress)},beforeDestroy(){window.removeEventListener("keyup",this.handleEnterKeyPress)},data(){var e;const t=this.$store.getters["type-map/optionsFor"](this.schema),n=(null===t||void 0===t?void 0:t.listGroups)||[],r=n.reduce((e,t)=>(e[t.value]=t,e),{}),o=null!==(e=this.schema)&&void 0!==e&&e.id?this.$store.getters["currentStore"](this.schema.id):void 0;return{listGroups:n,listGroupMapped:r,inStore:o}},computed:{...Object(d["a"])(["currentProduct"]),isNamespaced(){return null!==this.namespaced?this.namespaced:!!Object(z["f"])(this.schema,"attributes.namespaced")},showNamespaceColumn(){const e="namespace"===this.group,t=!this.showGrouping||!e;return t},_showBulkActions(){if(null!==this.tableActions)return this.tableActions;if(this.schema){const e=this.$store.getters["type-map/hideBulkActionsFor"](this.schema);return!e}return!1},_headers(){var e;let t;const n=this.showNamespaceColumn;if(t=this.headers?this.headers.slice():this.$store.getters["type-map/headersFor"](this.schema),null!==(e=this.$store.$plugin)&&void 0!==e&&e.getUIConfig){const e=Object(Z["a"])(this,Q["c"].TABLE_COL,Q["e"].RESOURCE,this.$route);let n=t.length;if(t.length>0){const e=t.findIndex(e=>e.name===X["b"].name);if(e>=0)n=e;else{const e=t.findIndex(e=>{var t,n;return(!e.label||!(null!==(t=e.label)&&void 0!==t&&t.trim()))&&(!e.labelKey||!(null!==(n=e.labelKey)&&void 0!==n&&n.trim()))});e>=0&&(n=e)}}e.forEach(e=>{!e.value&&e.getValue&&(e.value=e.getValue),t.splice(n,0,e)})}if(!n){const e=t.findIndex(e=>e.name===X["t"].name);e>=0&&t.splice(e,1)}const r=this.listGroupMapped[this.group];if(null!==r&&void 0!==r&&r.hideColumn){const e=t.findIndex(e=>e.name===r.hideColumn);e>=0&&t.splice(e,1)}return t},filteredRows(){var e,t;const n=this.$store.getters["isAllNamespaces"];if(!this.isNamespaced||this.ignoreFilter||n&&(null===(e=this.currentProduct)||void 0===e||!e.hideSystemResources)||this.inStore&&(null===(t=this.$store.getters[this.inStore+"/haveNamespace"](this.schema.id))||void 0===t?void 0:t.length))return this.rows||[];const r=this.$store.getters["namespaces"]();if(!this.rows)return[];const o=this.$store.getters["haveAllNamespace"];return this.rows.filter(e=>{var t;return null!==(t=this.currentProduct)&&void 0!==t&&t.hideSystemResources&&this.isNamespaced?!!r[e.metadata.namespace]&&!e.isSystemResource:!this.isNamespaced||(!!o||!!r[e.metadata.namespace])})},_group:Object(W["m"])(W["e"]),group:{get(){const e=this.groupOptions.find(e=>e.value===this._group);return e?this._group:ee},set(e){this._group=e}},showGrouping(){if(null===this.groupable){const e=this.$store.getters["isMultipleNamespaces"]&&this.isNamespaced,t=this.listGroups.length>0;return e||t}return this.groupable||!1},computedGroupBy(){if(this.groupBy)return this.groupBy;if("namespace"===this.group&&this.showGrouping)return"groupByLabel";const e=this.listGroupMapped[this.group];return e&&e.field?e.field:null},groupOptions(){const e=[{tooltipKey:"resourceTable.groupBy.none",icon:"icon-list-flat",value:"none"},{tooltipKey:this.groupTooltip,icon:"icon-folder",value:"namespace"}];return e.concat(this.listGroups)},pagingParams(){return this.schema?{singularLabel:this.$store.getters["type-map/labelFor"](this.schema),pluralLabel:this.$store.getters["type-map/labelFor"](this.schema,99)}:{singularLabel:"",pluralLabel:""}}},methods:{keyAction(e){const t=this.$refs.table;if(!t)return;const n=t.selectedRows;if("remove"!==e){if(1===n.length)switch(e){case"detail":n[0].goToDetail();break;case"edit":n[0].goToEdit();break;case"yaml":n[0].goToViewYaml();break}}else{const e=Object(J["e"])(t.availableActions,"action","promptRemove");e&&(t.setBulkActionOfInterest(e),t.applyTableAction(e))}},clearSelection(){this.$refs.table.clearSelection()},safeSortGenerationFn(){return this.sortGenerationFn?this.sortGenerationFn(this.schema,this.$store):te(this.schema,this.$store)},handleActionButtonClick(e){this.$emit("clickedActionButton",e)},handleEnterKeyPress(e){"Enter"===e.key&&this.keyAction("detail")}}},re=ne,oe=Object(S["a"])(re,V,q,!1,null,null,null),ie=oe.exports,ae=n("15ca"),se=function(){var e=this,t=e._self._c;return t("header",{staticClass:"with-subheader"},[e._t("typeDescription",(function(){return[t("TypeDescription",{attrs:{resource:e.resource}})]})),t("div",{staticClass:"title"},[t("h1",{staticClass:"m-0"},[e._v(" "+e._s(e._typeDisplay)+" "),e.isExplorer?t("Favorite",{attrs:{resource:e.favoriteResource||e.resource}}):e._e()],1),e.showIncrementalLoadingIndicator?t("ResourceLoadingIndicator",{attrs:{resources:e.loadResources,indeterminate:e.loadIndeterminate}}):e._e()],1),t("div",{staticClass:"sub-header"},[e._t("subHeader")],2),t("div",{staticClass:"actions-container"},[e._t("actions",(function(){return[t("div",{staticClass:"actions"},[e._t("extraActions"),e._t("createButton",(function(){return[e.hasEditComponent&&e._isCreatable?t("n-link",{staticClass:"btn role-primary",attrs:{to:e._createLocation,"data-testid":e.componentTestid+"-create"}},[e._v(" "+e._s(e._createButtonlabel)+" ")]):e._isYamlCreatable?t("n-link",{staticClass:"btn role-primary",attrs:{to:e._yamlCreateLocation,"data-testid":e.componentTestid+"-create-yaml"}},[e._v(" "+e._s(e.t("resourceList.head.createFromYaml"))+" ")]):e._e()]}))],2)]}))],2)],2)},le=[],ce=function(){var e=this,t=e._self._c;return t("i",{staticClass:"favorite icon",class:{"icon-star-open":!e.isFavorite,"icon-star":e.isFavorite},attrs:{tabindex:0,"aria-checked":!!e.isFavorite,"aria-role":"button"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.toggle.apply(null,arguments)},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.toggle.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])?null:(t.preventDefault(),e.toggle.apply(null,arguments))}]}})},ue=[],de={props:{resource:{type:String,required:!0}},computed:{isFavorite(){return this.$store.getters["type-map/isFavorite"](this.resource)}},methods:{toggle(){this.isFavorite?this.$store.dispatch("type-map/removeFavorite",this.resource):this.$store.dispatch("type-map/addFavorite",this.resource)}}},pe=de,fe=(n("e963"),Object(S["a"])(pe,ce,ue,!1,null,"f74a378a",null)),he=fe.exports,ve=function(){var e=this,t=e._self._c;return e.typeDescriptionKey?t("Banner",{staticClass:"type-banner mb-20 mt-0",attrs:{color:"info",closable:!0,"label-key":e.typeDescriptionKey},on:{close:e.hideTypeDescription}}):e._e()},be=[],me=n("6418"),ge={components:{Banner:me["a"]},props:{resource:{type:String,required:!0}},computed:{...Object(d["a"])(["currentCluster"]),hideDescriptions:Object(W["m"])(W["f"]),typeDescriptionKey(){let e;return e=this.resource===l["a"].CLUSTER_REPO?!this.currentCluster||this.currentCluster.isLocal?'typeDescription."catalog.cattle.io.clusterrepo.local"':'typeDescription."catalog.cattle.io.clusterrepo"':`typeDescription."${this.resource}"`,!this.hideDescriptions.includes(this.resource)&&!this.hideDescriptions.includes("ALL")&&(!!this.$store.getters["i18n/exists"](e)&&e)}},methods:{hideTypeDescription(){const e=this.hideDescriptions.slice();Object(J["a"])(e,this.resource),this.hideDescriptions=e}}},ye=ge,_e=Object(S["a"])(ye,ve,be,!1,null,null,null),we=_e.exports,xe=n("da25"),ke=function(){var e=this,t=e._self._c;return e.count&&!e.haveAll?t("div",{staticClass:"ml-10 resource-loading-indicator"},[t("div",{staticClass:"inner"},[t("div",{staticClass:"resource-loader"},[t("div",{staticClass:"rl-bg"},[t("i",{staticClass:"icon icon-spinner icon-spin"}),t("span",[e._v(e._s(e.t("resourceLoadingIndicator.loading"))+" "),e.indeterminate?e._e():t("span",[e._v(e._s(e.count)+" / "+e._s(e.total))])])])]),t("div",{staticClass:"resource-loader",style:{width:e.width}},[t("div",{staticClass:"rl-fg"},[t("i",{staticClass:"icon icon-spinner icon-spin"}),t("span",[e._v(e._s(e.t("resourceLoadingIndicator.loading"))+" "),e.indeterminate?e._e():t("span",[e._v(e._s(e.count)+" / "+e._s(e.total))])])])])])]):e._e()},Oe=[],Ae={name:"ResourceLoadingIndicator",props:{resources:{type:Array,required:!0},indeterminate:{type:Boolean,default:!1}},data(){const e=this.$store.getters["currentStore"](this.resource);return{inStore:e}},computed:{rowsCount(){if(this.resources.length>0){const e=this.$store.getters[this.inStore+"/all"](this.resources[0])||[];return(e||[]).length}return 0},haveAll(){return this.resources.reduce((e,t)=>e&&this.$store.getters[this.inStore+"/haveAll"](t),!0)},total(){const e=this.$store.getters[this.inStore+"/all"](l["c"]);return this.resources.reduce((t,n)=>{var r,o;const i=null===e||void 0===e||null===(r=e[0])||void 0===r||null===(r=r.counts)||void 0===r?void 0:r[n],a=null===i||void 0===i||null===(o=i.summary)||void 0===o?void 0:o.count,s=a||0;return t+s},0)},count(){return this.resources.reduce((e,t)=>e+(this.$store.getters[this.inStore+"/all"](t)||[]).length,0)},width(){const e=Math.ceil(this.count/this.total*100);return e+"%"}}},Ee=Ae,Se=(n("1279"),Object(S["a"])(Ee,ke,Oe,!1,null,"6457c305",null)),Te=Se.exports,Re={name:"MastheadResourceList",components:{Favorite:he,TypeDescription:we,ResourceLoadingIndicator:Te},props:{resource:{type:String,required:!0},favoriteResource:{type:String,default:null},schema:{type:Object,default:null},typeDisplay:{type:String,default:null},isCreatable:{type:Boolean,default:null},isYamlCreatable:{type:Boolean,default:null},createLocation:{type:Object,default:null},yamlCreateLocation:{type:Object,default:null},createButtonLabel:{type:String,default:null},loadResources:{type:Array,default:()=>[]},loadIndeterminate:{type:Boolean,default:!1},showIncrementalLoadingIndicator:{type:Boolean,default:!1},componentTestid:{type:String,default:"masthead"}},data(){const e={...this.$route.params},t={name:this.$route.name+"-create",params:e},n=this.$store.getters["type-map/hasCustomEdit"](this.resource),r={name:this.$route.name+"-create",params:e,query:{[xe["a"]]:xe["u"]}};return{formRoute:t,yamlRoute:r,hasEditComponent:n}},computed:{get:z["f"],...Object(d["a"])(["isExplorer"]),resourceName(){return this.schema?this.$store.getters["type-map/labelFor"](this.schema):this.resource},_typeDisplay(){return null!==this.typeDisplay?this.typeDisplay:this.schema?this.$store.getters["type-map/labelFor"](this.schema,99):"?"},_isYamlCreatable(){return null!==this.isYamlCreatable?this.isYamlCreatable:this.schema&&this._isCreatable&&this.$store.getters["type-map/optionsFor"](this.resource).canYaml},_isCreatable(){var e;return null!==this.isCreatable?this.isCreatable:!(this.schema&&(null===(e=this.schema)||void 0===e||!e.collectionMethods.find(e=>["blocked-post","post"].includes(e.toLowerCase()))))&&this.$store.getters["type-map/optionsFor"](this.resource).isCreatable},_createLocation(){return this.createLocation||this.formRoute},_yamlCreateLocation(){return this.yamlCreateLocation||this.yamlRoute},_createButtonlabel(){return this.createButtonLabel||this.t("resourceList.head.create")}}},Ce=Re,Ie=(n("09aa"),Object(S["a"])(Ce,se,le,!1,null,"c7fe785e",null)),Le=Ie.exports,De=function(){var e=this,t=e._self._c;return t("div",{staticClass:"message-icon",class:{vertical:e.vertical,subtle:e.subtle}},[t("i",{staticClass:"icon",class:{[e.icon]:!0,[e.iconState]:!!e.iconState}}),t("div",{staticClass:"message"},[e._t("message",(function(){return[e.messageKey?[e._v(" "+e._s(e.t(e.messageKey))+" ")]:[e._v(" "+e._s(e.message)+" ")]]}))],2)])},Ne=[],je={props:{vertical:{type:Boolean,default:!1},icon:{type:String,required:!0},iconState:{type:String,default:null},message:{type:String,default:null},messageKey:{type:String,default:null},subtle:{type:Boolean,default:!1}}},Pe=je,Fe=(n("f044"),Object(S["a"])(Pe,De,Ne,!1,null,"01996ade",null)),$e=Fe.exports,Me=function(){var e=this,t=e._self._c;return e.extensionData.length?t("div",e._l(e.extensionData,(function(n,r){return t("div",{key:`extensionData${e.location}${r}`},[t(n.component,{tag:"component",attrs:{resource:e.resource}})],1)})),0):e._e()},Ue=[],Be={name:"ExtensionPanel",props:{resource:{type:Object,default:()=>({})},type:{type:String,default:""},location:{type:String,default:""}},data(){return{extensionData:Object(Z["a"])(this,this.type,this.location,this.$route)}}},Ge=Be,Ke=Object(S["a"])(Ge,Me,Ue,!1,null,null,null),He=Ke.exports,Ve={name:g,components:{Loading:ae["a"],ResourceTable:ie,Masthead:Le,ResourceLoadingIndicator:Te,IconMessage:$e,ExtensionPanel:He},mixins:[O],props:{hasAdvancedFiltering:{type:Boolean,default:!1},advFilterHideLabelsAsCols:{type:Boolean,default:!1},advFilterPreventFilteringLabels:{type:Boolean,default:!1}},async fetch(){const e=this.$store,t=this.resource,n=this.schema;if(this.hasListComponent){var r;const e=this.listComponent,n=null===(r=await e())||void 0===r?void 0:r.default;if(null!==n&&void 0!==n&&n.typeDisplay&&(this.customTypeDisplay=n.typeDisplay.apply(this)),null!==n&&void 0!==n&&n.fetch&&(this.hasFetch=!0),null!==n&&void 0!==n&&n.$loadingResources){const{loadResources:e,loadIndeterminate:r}=null===n||void 0===n?void 0:n.$loadingResources(this.$route,this.$store);this.loadResources=e||[t],this.loadIndeterminate=r||!1}}if(!this.hasFetch){if(!n)return void e.dispatch("loadingError",new Error(this.t("nav.failWhale.resourceListNotFound",{resource:t},!0)));this.namespaceFilterRequired||await this.$fetchType(t)}},data(){const e=this.$store.getters,t={...this.$route.params},n=t.resource,r=e["type-map/hasCustomList"](n),o=e["currentStore"](n),i=e[o+"/schemaFor"](n),a=e["type-map/optionsFor"](n).showListMasthead;return{inStore:o,schema:i,hasListComponent:r,showMasthead:void 0===a||a,resource:n,extensionType:Q["c"].PANEL,extensionLocation:Q["d"].RESOURCE_LIST,loadResources:[n],hasFetch:!1,manualRefreshInit:!1,watch:!1,force:!1,customTypeDisplay:null,loadIndeterminate:!1,useQueryParamsForSimpleFiltering:!0}},computed:{headers(){return this.hasListComponent||!this.schema?[]:this.$store.getters["type-map/headersFor"](this.schema)},groupBy(){return this.$store.getters["type-map/groupByFor"](this.schema)},showIncrementalLoadingIndicator(){var e;return null===(e=this.perfConfig)||void 0===e||null===(e=e.incrementalLoading)||void 0===e?void 0:e.enabled}},watch:{namespaceFilter(e,t){Object(J["k"])(e,t)||e&&!this.hasFetch&&this.$fetchType(this.resource)}},created(){let e=!1;const t=this.$route.params.resource,n=this.$store.getters["type-map/hasCustomList"](t);n&&(e=this.$store.getters["type-map/importList"](t)),this.listComponent=e}},qe=Ve,ze=(n("225d"),Object(S["a"])(qe,K,H,!1,null,"02ac34ae",null)),We=ze.exports,Ye=(Object(d["a"])(["currentCluster"]),n("5191")),Xe={async beforeMount(){const e={},t=[l["D"].DAEMON_SET,l["D"].DEPLOYMENT,l["o"]];for(const r of t)this.$store.getters["cluster/canList"](r)&&(e[r]=this.$store.dispatch("cluster/findAll",{type:r}));await Object(p["a"])(e);try{const e=await this.$store.dispatch("cluster/find",{type:l["D"].DEPLOYMENT,id:"kubearmor/kubearmor-operator"});this.operatorPresence=!!e,this.consoleUrl="https://kubearmor.io/"}catch(n){this.operatorPresence=!1,console.error("KubeArmor operator not found:",n)}},data(){return{DAEMONSET_HEADERS:Ye["a"],DEPLOYMENT_HEADERS:Ye["b"],NODELIST_HEADERS:Ye["d"],consoleUrl:"",operatorPresence:!1}},computed:{hasKubearmor(){return this.operatorPresence},allDaemonSets(){return this.$store.getters["cluster/all"]({type:l["D"].DAEMON_SET})},allDeployments(){return this.$store.getters["cluster/all"](l["D"].DEPLOYMENT)},allNodes(){return this.$store.getters["cluster/all"](l["o"])},kADeployments(){var e;return null===(e=this.allDeployments)||void 0===e?void 0:e.filter(e=>{var t;return null===e||void 0===e||null===(t=e.metadata)||void 0===t||null===(t=t.labels)||void 0===t?void 0:t["kubearmor-app"]})},kADaemonSets(){var e;return null===(e=this.allDaemonSets)||void 0===e?void 0:e.filter(e=>{var t;return null===e||void 0===e||null===(t=e.metadata)||void 0===t||null===(t=t.labels)||void 0===t?void 0:t["kubearmor-app"]})}},methods:{logComputedValue(){console.log(this.kADeployments)}},mounted(){console.log("Initial computed value:",this.kADeployments)},components:{SortableTable:G["b"],ResourceList:We,Install:R}},Je=Xe,Qe=(n("eb2e"),Object(S["a"])(Je,U,B,!1,null,"3b5aaae2",null)),Ze=Qe.exports,et=n("90cd");const tt=[{name:`c-cluster-${et["e"]}-dashboard`,path:"/c/:cluster/:product/dashboard",component:M,meta:{product:"dashboard"}},{name:`c-cluster-${et["e"]}-KubeArmor_Probe`,path:"/c/:cluster/:product/KubeArmor_Probe",component:Ze,meta:{product:"kubearmor"}}];var nt=function(e){i(e),e.metadata=n("9224"),e.addProduct(n("85d6")),e.addRoutes(tt)};t["default"]=nt},"1d19":function(e,t,n){"use strict";n.d(t,"c",(function(){return s})),n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return v}));var r=n("e24b"),o=n("2cb5");const i={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object FileList]":"filelist"},{toString:a}=Object.prototype;function s(e){if(null===e)return"null";if(void 0===e)return"undefined";let t=i[a.call(e)]||"object";return"object"===t&&(e instanceof Error?t="error":e instanceof Date&&(t="date")),t}function l(e,t){const n=e-t;return(n>0)-(n<0)}const c={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10};function u(e,t){const n=s(e),r=s(t),o=l(c[n],c[r]);if(o)return o;switch(n){case"boolean":case"number":return l(e,t);case"string":return l(e.localeCompare(t),0);case"array":{const n=e.length,r=t.length,o=Math.min(n,r);for(let i=0;i{for(let i=0;ie.match(h)?Object(o["p"])(e,10,"0"):e).join("").trim()}},"1d5f":function(e){e.exports=JSON.parse('{"hasStylesheet":"true"}')},"1eb8":function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".text.info[data-v-5050d908]{display:flex;align-items:center}.text.info>span[data-v-5050d908]{margin-right:5px}",""]),e.exports=t},"1ec9":function(e,t,n){var r=n("fa8a"),o=n("44d9"),i=n("1386"),a=n("052a"),s=n("2fab"),l=n("e3f8");function c(e){var t=this.__data__=new r(e);this.size=t.size}c.prototype.clear=o,c.prototype["delete"]=i,c.prototype.get=a,c.prototype.has=s,c.prototype.set=l,e.exports=c},"1fcb":function(e,t,n){var r=n("3336"),o=n("c294"),i=o((function(e,t,n){r(e,t,n)}));e.exports=i},"1fce":function(e,t){function n(e,t){var n=-1,r=null==e?0:e.length,o=Array(r);while(++n-1)||n.indexOf(",")>-1||n.indexOf("/")>-1||r.StringUtilities.containsAny(o,e.specialCharacters))if(!t&&o.indexOf(",")>-1&&-1==o.indexOf("-")&&-1==o.indexOf("/")&&!r.StringUtilities.containsAny(n,e.specialCharacters)){var a=o.split(",");i+=this.i18n.at();for(var s=0;s0&&c.length>0&&(i+=", "),i+=c,i.length>0&&u.length>0&&(i+=", "),i+=u}else{var d=n.split("-");i+=r.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(o,d[0],""),this.formatTime(o,d[1],""))}else i+=this.i18n.atSpace()+this.formatTime(o,n,t);return i},e.prototype.getSecondsDescription=function(){var e=this,t=this.getSegmentDescription(this.expressionParts[0],this.i18n.everySecond(),(function(e){return e}),(function(t){return r.StringUtilities.format(e.i18n.everyX0Seconds(),t)}),(function(t){return e.i18n.secondsX0ThroughX1PastTheMinute()}),(function(t){return"0"==t?"":parseInt(t)<20?e.i18n.atX0SecondsPastTheMinute():e.i18n.atX0SecondsPastTheMinuteGt20()||e.i18n.atX0SecondsPastTheMinute()}));return t},e.prototype.getMinutesDescription=function(){var e=this,t=this.expressionParts[0],n=this.expressionParts[2],o=this.getSegmentDescription(this.expressionParts[1],this.i18n.everyMinute(),(function(e){return e}),(function(t){return r.StringUtilities.format(e.i18n.everyX0Minutes(),t)}),(function(t){return e.i18n.minutesX0ThroughX1PastTheHour()}),(function(r){try{return"0"==r&&-1==n.indexOf("/")&&""==t?e.i18n.everyHour():parseInt(r)<20?e.i18n.atX0MinutesPastTheHour():e.i18n.atX0MinutesPastTheHourGt20()||e.i18n.atX0MinutesPastTheHour()}catch(o){return e.i18n.atX0MinutesPastTheHour()}}));return o},e.prototype.getHoursDescription=function(){var e=this,t=this.expressionParts[2],n=this.getSegmentDescription(t,this.i18n.everyHour(),(function(t){return e.formatTime(t,"0","")}),(function(t){return r.StringUtilities.format(e.i18n.everyX0Hours(),t)}),(function(t){return e.i18n.betweenX0AndX1()}),(function(t){return e.i18n.atX0()}));return n},e.prototype.getDayOfWeekDescription=function(){var e=this,t=this.i18n.daysOfTheWeek(),n=null;return n="*"==this.expressionParts[5]?"":this.getSegmentDescription(this.expressionParts[5],this.i18n.commaEveryDay(),(function(e){var n=e;return e.indexOf("#")>-1?n=e.substr(0,e.indexOf("#")):e.indexOf("L")>-1&&(n=n.replace("L","")),t[parseInt(n)]}),(function(t){return 1==parseInt(t)?"":r.StringUtilities.format(e.i18n.commaEveryX0DaysOfTheWeek(),t)}),(function(t){return e.i18n.commaX0ThroughX1()}),(function(t){var n=null;if(t.indexOf("#")>-1){var r=t.substring(t.indexOf("#")+1),o=null;switch(r){case"1":o=e.i18n.first();break;case"2":o=e.i18n.second();break;case"3":o=e.i18n.third();break;case"4":o=e.i18n.fourth();break;case"5":o=e.i18n.fifth();break}n=e.i18n.commaOnThe()+o+e.i18n.spaceX0OfTheMonth()}else if(t.indexOf("L")>-1)n=e.i18n.commaOnTheLastX0OfTheMonth();else{var i="*"!=e.expressionParts[3];n=i?e.i18n.commaAndOnX0():e.i18n.commaOnlyOnX0()}return n})),n},e.prototype.getMonthDescription=function(){var e=this,t=this.i18n.monthsOfTheYear(),n=this.getSegmentDescription(this.expressionParts[4],"",(function(e){return t[parseInt(e)-1]}),(function(t){return 1==parseInt(t)?"":r.StringUtilities.format(e.i18n.commaEveryX0Months(),t)}),(function(t){return e.i18n.commaMonthX0ThroughMonthX1()||e.i18n.commaX0ThroughX1()}),(function(t){return e.i18n.commaOnlyInMonthX0?e.i18n.commaOnlyInMonthX0():e.i18n.commaOnlyInX0()}));return n},e.prototype.getDayOfMonthDescription=function(){var e=this,t=null,n=this.expressionParts[3];switch(n){case"L":t=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":t=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var o=n.match(/(\d{1,2}W)|(W\d{1,2})/);if(o){var i=parseInt(o[0].replace("W","")),a=1==i?this.i18n.firstWeekday():r.StringUtilities.format(this.i18n.weekdayNearestDayX0(),i.toString());t=r.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),a);break}var s=n.match(/L-(\d{1,2})/);if(s){var l=s[1];t=r.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(),l);break}if("*"==n&&"*"!=this.expressionParts[5])return"";t=this.getSegmentDescription(n,this.i18n.commaEveryDay(),(function(t){return"L"==t?e.i18n.lastDay():e.i18n.dayX0?r.StringUtilities.format(e.i18n.dayX0(),t):t}),(function(t){return"1"==t?e.i18n.commaEveryDay():e.i18n.commaEveryX0Days()}),(function(t){return e.i18n.commaBetweenDayX0AndX1OfTheMonth()}),(function(t){return e.i18n.commaOnDayX0OfTheMonth()}));break}return t},e.prototype.getYearDescription=function(){var e=this,t=this.getSegmentDescription(this.expressionParts[6],"",(function(e){return/^\d+$/.test(e)?new Date(parseInt(e),1).getFullYear().toString():e}),(function(t){return r.StringUtilities.format(e.i18n.commaEveryX0Years(),t)}),(function(t){return e.i18n.commaYearX0ThroughYearX1()||e.i18n.commaX0ThroughX1()}),(function(t){return e.i18n.commaOnlyInYearX0?e.i18n.commaOnlyInYearX0():e.i18n.commaOnlyInX0()}));return t},e.prototype.getSegmentDescription=function(e,t,n,o,i,a){var s=this,l=null;if(e)if("*"===e)l=t;else if(r.StringUtilities.containsAny(e,["/","-",","]))if(e.indexOf("/")>-1){var c=e.split("/");if(l=r.StringUtilities.format(o(c[1]),c[1]),c[0].indexOf("-")>-1){var u=this.generateBetweenSegmentDescription(c[0],i,n);0!=u.indexOf(", ")&&(l+=", "),l+=u}else if(!r.StringUtilities.containsAny(c[0],["*",","])){var d=r.StringUtilities.format(a(c[0]),n(c[0]));d=d.replace(", ",""),l+=r.StringUtilities.format(this.i18n.commaStartingX0(),d)}}else if(e.indexOf(",")>-1){c=e.split(",");for(var p="",f=0;f0&&c.length>2&&(p+=",",f0&&c.length>1&&(f==c.length-1||2==c.length)&&(p+=this.i18n.spaceAnd()+" "),c[f].indexOf("-")>-1){u=this.generateBetweenSegmentDescription(c[f],(function(e){return s.i18n.commaX0ThroughX1()}),n);u=u.replace(", ",""),p+=u}else p+=n(c[f]);l=r.StringUtilities.format(a(e),p)}else e.indexOf("-")>-1&&(l=this.generateBetweenSegmentDescription(e,i,n));else l=r.StringUtilities.format(a(e),n(e));else l="";return l},e.prototype.generateBetweenSegmentDescription=function(e,t,n){var o="",i=e.split("-"),a=n(i[0]),s=n(i[1]);s=s.replace(":00",":59");var l=t(e);return o+=r.StringUtilities.format(l,a,s),o},e.prototype.formatTime=function(e,t,n){var r=parseInt(e),o="",i=!1;this.options.use24HourTimeFormat||(i=this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime(),o=i?this.getPeriod(r)+" ":" "+this.getPeriod(r),r>12&&(r-=12),0===r&&(r=12));var a=t,s="";return n&&(s=":"+("00"+n).substring(n.length)),""+(i?o:"")+("00"+r.toString()).substring(r.toString().length)+":"+("00"+a.toString()).substring(a.toString().length)+s+(i?"":o)},e.prototype.transformVerbosity=function(e,t){return t||(e=e.replace(new RegExp(", "+this.i18n.everyMinute(),"g"),""),e=e.replace(new RegExp(", "+this.i18n.everyHour(),"g"),""),e=e.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),e=e.replace(/\, ?$/,"")),e},e.prototype.getPeriod=function(e){return e>=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},e.locales={},e}();t.ExpressionDescriptor=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.format=function(e){for(var t=[],n=1;n-1}))},e}();t.StringUtilities=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){void 0===t&&(t=!0),this.expression=e,this.dayOfWeekStartIndexZero=t}return e.prototype.parse=function(){var e=this.extractParts(this.expression);return this.normalize(e),this.validate(e),e},e.prototype.extractParts=function(e){if(!this.expression)throw new Error("Expression is empty");var t=e.trim().split(/[ ]+/);if(t.length<5)throw new Error("Expression has only "+t.length+" part"+(1==t.length?"":"s")+". At least 5 parts are required.");if(5==t.length)t.unshift(""),t.push("");else if(6==t.length)/\d{4}$/.test(t[5])?t.unshift(""):t.push("");else if(t.length>7)throw new Error("Expression has "+t.length+" parts; too many!");return t},e.prototype.normalize=function(e){var t=this;if(e[3]=e[3].replace("?","*"),e[5]=e[5].replace("?","*"),e[2]=e[2].replace("?","*"),0==e[0].indexOf("0/")&&(e[0]=e[0].replace("0/","*/")),0==e[1].indexOf("0/")&&(e[1]=e[1].replace("0/","*/")),0==e[2].indexOf("0/")&&(e[2]=e[2].replace("0/","*/")),0==e[3].indexOf("1/")&&(e[3]=e[3].replace("1/","*/")),0==e[4].indexOf("1/")&&(e[4]=e[4].replace("1/","*/")),0==e[5].indexOf("1/")&&(e[5]=e[5].replace("1/","*/")),0==e[6].indexOf("1/")&&(e[6]=e[6].replace("1/","*/")),e[5]=e[5].replace(/(^\d)|([^#/\s]\d)/g,(function(e){var n=e.replace(/\D/,""),r=n;return t.dayOfWeekStartIndexZero?"7"==n&&(r="0"):r=(parseInt(n)-1).toString(),e.replace(n,r)})),"L"==e[5]&&(e[5]="6"),"?"==e[3]&&(e[3]="*"),e[3].indexOf("W")>-1&&(e[3].indexOf(",")>-1||e[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var n={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var r in n)e[5]=e[5].replace(new RegExp(r,"gi"),n[r].toString());var o={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var i in o)e[4]=e[4].replace(new RegExp(i,"gi"),o[i].toString());"0"==e[0]&&(e[0]=""),/\*|\-|\,|\//.test(e[2])||!/\*|\//.test(e[1])&&!/\*|\//.test(e[0])||(e[2]+="-"+e[2]);for(var a=0;a-1&&!/^\*|\-|\,/.test(e[a])){var s=null;switch(a){case 4:s="12";break;case 5:s="6";break;case 6:s="9999";break;default:s=null;break}if(null!=s){var l=e[a].split("/");e[a]=l[0]+"-"+s+"/"+l[1]}}},e.prototype.validate=function(e){this.assertNoInvalidCharacters("DOW",e[5]),this.assertNoInvalidCharacters("DOM",e[3])},e.prototype.assertNoInvalidCharacters=function(e,t){var n=t.match(/[A-KM-VX-Z]+/gi);if(n&&n.length)throw new Error(e+" part contains invalid values: '"+n.toString()+"'")},e}();t.CronParser=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},e.prototype.atX0MinutesPastTheHourGt20=function(){return null},e.prototype.commaMonthX0ThroughMonthX1=function(){return null},e.prototype.commaYearX0ThroughYearX1=function(){return null},e.prototype.use24HourTimeFormatByDefault=function(){return!1},e.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occured when generating the expression description. Check the cron expression syntax."},e.prototype.everyMinute=function(){return"every minute"},e.prototype.everyHour=function(){return"every hour"},e.prototype.atSpace=function(){return"At "},e.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},e.prototype.at=function(){return"At"},e.prototype.spaceAnd=function(){return" and"},e.prototype.everySecond=function(){return"every second"},e.prototype.everyX0Seconds=function(){return"every %s seconds"},e.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},e.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},e.prototype.everyX0Minutes=function(){return"every %s minutes"},e.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},e.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},e.prototype.everyX0Hours=function(){return"every %s hours"},e.prototype.betweenX0AndX1=function(){return"between %s and %s"},e.prototype.atX0=function(){return"at %s"},e.prototype.commaEveryDay=function(){return", every day"},e.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},e.prototype.commaX0ThroughX1=function(){return", %s through %s"},e.prototype.first=function(){return"first"},e.prototype.second=function(){return"second"},e.prototype.third=function(){return"third"},e.prototype.fourth=function(){return"fourth"},e.prototype.fifth=function(){return"fifth"},e.prototype.commaOnThe=function(){return", on the "},e.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},e.prototype.lastDay=function(){return"the last day"},e.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},e.prototype.commaOnlyOnX0=function(){return", only on %s"},e.prototype.commaAndOnX0=function(){return", and on %s"},e.prototype.commaEveryX0Months=function(){return", every %s months"},e.prototype.commaOnlyInX0=function(){return", only in %s"},e.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},e.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},e.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},e.prototype.firstWeekday=function(){return"first weekday"},e.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},e.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},e.prototype.commaEveryX0Days=function(){return", every %s days"},e.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},e.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},e.prototype.commaEveryHour=function(){return", every hour"},e.prototype.commaEveryX0Years=function(){return", every %s years"},e.prototype.commaStartingX0=function(){return", starting %s"},e.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},e.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},e}();t.en=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n(5);r.ExpressionDescriptor.initialize(new o.enLocaleLoader),t.default=r.ExpressionDescriptor;var i=r.ExpressionDescriptor.toString;t.toString=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),o=function(){function e(){}return e.prototype.load=function(e){e["en"]=new r.en},e}();t.enLocaleLoader=o}])}))},"212d":function(e,t,n){var r=n("bf10"),o=n("201b"),i=r(o,"Promise");e.exports=i},"225d":function(e,t,n){"use strict";n("fca0")},2357:function(e,t,n){var r=n("e972"),o=/^\s+/;function i(e){return e?e.slice(0,r(e)+1).replace(o,""):e}e.exports=i},2419:function(e,t,n){var r=n("872c"),o=n("aa31"),i=n("7049");function a(e){var t=-1,n=null==e?0:e.length;this.__data__=new r;while(++t{return i("Starting wait for",t),new Promise((o,a)=>{e()&&(i("Wait for",t||"unknown","done immediately"),o(void 0));const s=setTimeout(()=>{if(i("Wait for",t,"timed out"),clearInterval(l),clearTimeout(s),!t)throw new Error(`waitFor timed out after ${n/1e3} seconds`);a(new Error("Failed waiting for: "+t))},n),l=setInterval(()=>{e()?(i("Wait for",t,"done"),clearInterval(l),clearTimeout(s),o(void 0)):t&&i("Wait for",t,"not done yet")},r)});function i(...e){o&&console.log(...e)}}},"2cb5":function(e,t,n){"use strict";function r(e){return w(e||"").split("-").map(e=>o(e)).join(" ")}function o(e){return e=e||"",e.substr(0,1).toUpperCase()+e.substr(1)}function i(e,t,n=" ",r=!1){if(e=""+e,e.length>=t)return e;const o=t-e.length+1,i=new Array(o).join(n).substr(0,o);return r?e+i:i+e}n.d(t,"b",(function(){return r})),n.d(t,"q",(function(){return o})),n.d(t,"p",(function(){return i})),n.d(t,"f",(function(){return s})),n.d(t,"g",(function(){return l})),n.d(t,"m",(function(){return h})),n.d(t,"l",(function(){return v})),n.d(t,"n",(function(){return b})),n.d(t,"h",(function(){return m})),n.d(t,"d",(function(){return w})),n.d(t,"a",(function(){return x})),n.d(t,"c",(function(){return k})),n.d(t,"j",(function(){return O})),n.d(t,"e",(function(){return A})),n.d(t,"k",(function(){return E})),n.d(t,"o",(function(){return T})),n.d(t,"i",(function(){return R}));const a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function s(e){return String(e).replace(/[&<>"']/g,e=>a[e])}function l(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function c(e){e=Math.max(0,e||1);const t=[];let n;if(window.crypto&&window.crypto.getRandomValues){const r=new Uint32Array(e);for(window.crypto.getRandomValues(r),n=0;nt[e%t.length]).join(""):null}function v(e){return e.match(/.*[^aeiou]y$/i)?e.substr(0,e.length-1)+"ies":e.endsWith("ics")?e:e.endsWith("s")?e+"es":e+"s"}function b(e,t,n){return e.reduce((r,o,i)=>(i>=5||(r+=`${s(o)}`,i===e.length-1?r+=t:r+=i===e.length-2?n("generic.and"):n("generic.comma")),r),"")}function m(e,t=2,n=" ",r=null){e="string"===typeof e?e.split(/\n/):e||[];const o=new Array(t+1).join(n),i=e.map(e=>{let t="",n=e;if(r){const o=e.match(r);o&&(t=o[o.length-1],n=e.substr(o[0].length))}return`${t}${o}${n}`}),a=i.join("\n");return a}const g=/([a-z\d])([A-Z])/g;function y(e){return e.replace(g,"$1_$2").toLowerCase()}const _=/[ _]/g;function w(e){return y(e).replace(_,"-")}function x(e){return e=e||"",!e.match(/[^\r\n\t\x20-\x7F]/)}function k(e,t){return"float"===t?e=parseFloat(e)||null:"int"===t?(e=parseInt(e,10),isNaN(e)&&(e=null)):"boolean"===t&&("true"===e.toLowerCase()?e=!0:"false"===e.toLowerCase()&&(e=!1)),e}function O(e,t=[]){return t.some(t=>{const n=e||"",r=A(t);return n.match(r)})}function A(e,t=!0){return"string"===typeof e?t?new RegExp(`^${l(e)}$`,"i"):new RegExp(""+l(e),"i"):e}function E(e){return s(e||"").replace(/(\r\n|\r|\n)/g,"
\n")}const S=/[^."']+|"([^"]*)"|'([^']*)'/g;function T(e){return e.includes('"')||e.includes("'")?e.match(S).map(e=>e.replace(/['"]/g,"")):e.split(".")}function R(e){let t="";for(const n of e)n.includes(".")?t+=`."${n}"`:t+="."+n;return t.startsWith(".")&&(t=t.substr(1)),t}},"2cbd":function(e,t){function n(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}e.exports=n},"2db8":function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".text.info[data-v-effd72b0]{display:flex;align-items:center}.text.info>span[data-v-effd72b0]{margin-right:5px}",""]),e.exports=t},"2e63":function(e,t){function n(e,t){var n=-1,r=null==e?0:e.length;while(++ntd{font-size:13px;padding-top:0;overflow-wrap:anywhere}.sortable-table tbody tr.active-row{color:var(--sortable-table-header-bg)}.sortable-table tbody tr.row-selected{background:var(--sortable-table-selected-bg)}.sortable-table tbody .no-rows td{padding:30px 0;text-align:center}.sortable-table tbody .no-results:hover,.sortable-table tbody .no-rows:hover{background-color:var(--body-bg)}.sortable-table tbody.group:before{content:"";display:block;height:20px;background-color:transparent}.sortable-table tbody tr.group-row{background-color:initial}.sortable-table tbody tr.group-row:first-child{border-bottom:2px solid var(--sortable-table-row-bg)}.sortable-table tbody tr.group-row:not(:first-child){margin-top:20px}.sortable-table tbody tr.group-row td{padding:0}.sortable-table tbody tr.group-row td:first-of-type{border-left:1px solid var(--sortable-table-accent-bg)}.sortable-table tbody tr.group-row .group-tab{height:40px;line-height:40px;padding:0 10px;border-radius:4px 4px 0 0;background-color:var(--sortable-table-row-bg);position:relative;top:1px;display:inline-block;z-index:10;min-width:72px}.sortable-table tbody tr.group-row .group-tab:after,.sortable-table tbody tr.group-row .group-tab:before{content:" ";display:table}.sortable-table tbody tr.group-row .group-tab:after{clear:both}.sortable-table tbody tr.group-row .group-tab>SPAN{color:var(--sortable-table-group-label)}.sortable-table tbody tr.group-row .group-tab:after{height:40px;width:70px;border-radius:5px 5px 0 0;background-color:var(--sortable-table-row-bg);content:"";position:absolute;right:-15px;top:0;transform:skewX(40deg);z-index:-1}.for-inputs TABLE.sortable-table{width:100%;border-collapse:collapse;margin-bottom:10px}.for-inputs TABLE.sortable-table>TBODY>TR>TD,.for-inputs TABLE.sortable-table>THEAD>TR>TH{padding-right:10px;padding-bottom:10px}.for-inputs TABLE.sortable-table>TBODY>TR>TD:last-of-type,.for-inputs TABLE.sortable-table>THEAD>TR>TH:last-of-type{padding-right:0}.for-inputs TABLE.sortable-table>TBODY>TR:first-of-type>TD{padding-top:10px}.for-inputs TABLE.sortable-table>TBODY>TR:last-of-type>TD{padding-bottom:0}.for-inputs.clone TABLE.sortable-table>THEAD>TR>TH,.for-inputs.create TABLE.sortable-table>THEAD>TR>TH,.for-inputs.edit TABLE.sortable-table>THEAD>TR>TH{border-color:transparent}.sortable-table-header{position:relative;z-index:11}.sortable-table-header.titled{display:flex;align-items:center}.fixed-header-actions.button{grid-template-columns:[bulk] auto [middle] min-content [search] minmax(min-content,350px)}.fixed-header-actions{padding:0 0 20px 0;width:100%;z-index:11;background:transparent;display:grid;grid-template-columns:[bulk] auto [middle] min-content [search] minmax(min-content,200px);grid-column-gap:10px}.fixed-header-actions.advanced-filtering{grid-template-columns:[bulk] auto [middle] minmax(min-content,auto) [search] minmax(min-content,auto)}.fixed-header-actions .bulk{grid-area:bulk}.fixed-header-actions .bulk>BUTTON{display:none}.fixed-header-actions .bulk>BUTTON:not(:last-of-type){margin-right:10px}.fixed-header-actions .bulk .action-availability{display:none;margin-left:10px;vertical-align:middle;margin-top:2px}.fixed-header-actions .bulk .dropdown-button li.disabled{color:var(--disabled-text);cursor:not-allowed}.fixed-header-actions .bulk .dropdown-button li.disabled:hover{color:var(--disabled-text);background-color:unset;cursor:not-allowed}.fixed-header-actions .bulk .bulk-action .icon{vertical-align:-10%}.fixed-header-actions .middle{grid-area:middle;white-space:nowrap}.fixed-header-actions .middle .icon.icon-backup.animate{animation-name:spin;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fixed-header-actions .search{grid-area:search;text-align:right;justify-content:flex-end}.fixed-header-actions .bulk-actions-dropdown{display:none}.fixed-header-actions .bulk-actions-dropdown .dropdown-button{background-color:var(--primary)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button:hover{background-color:var(--primary-hover-bg);color:var(--primary-hover-text)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button .icon-chevron-down,.fixed-header-actions .bulk-actions-dropdown .dropdown-button>*{color:var(--primary-text)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button .button-divider{border-color:var(--primary-text)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button.disabled{border-color:var(--disabled-bg)}.fixed-header-actions .bulk-actions-dropdown .dropdown-button.disabled .icon-chevron-down{color:var(--disabled-text)!important}.fixed-header-actions .bulk-actions-dropdown .dropdown-button.disabled .button-divider{border-color:var(--disabled-text)}.paging{margin-top:10px;text-align:center}.paging SPAN{display:inline-block;min-width:200px}',""]),e.exports=t},"330a":function(e,t,n){var r=n("e2e2"),o=n("9243"),i=n("6efc"),a=n("c316"),s=n("f72d"),l=n("dda8"),c=n("09b2"),u=n("41dd"),d="[object Map]",p="[object Set]",f=Object.prototype,h=f.hasOwnProperty;function v(e){if(null==e)return!0;if(s(e)&&(a(e)||"string"==typeof e||"function"==typeof e.splice||l(e)||u(e)||i(e)))return!e.length;var t=o(e);if(t==d||t==p)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(h.call(e,n))return!1;return!0}e.exports=v},3336:function(e,t,n){var r=n("1ec9"),o=n("6a68"),i=n("51db"),a=n("71bd"),s=n("b506"),l=n("cc7f"),c=n("2cbd");function u(e,t,n,d,p){e!==t&&i(t,(function(i,l){if(p||(p=new r),s(i))a(e,t,l,n,u,d,p);else{var f=d?d(c(e,l),i,l+"",e,t,p):void 0;void 0===f&&(f=i),o(e,l,f)}}),l)}e.exports=u},3434:function(e,t,n){var r=n("6784");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("0baa54e5",r,!0,{sourceMap:!1,shadowMode:!1})},"356f":function(e,t,n){var r=n("2589"),o=n("cfe4");function i(e,t){return null!=e&&o(e,t,r)}e.exports=i},3584:function(e,t,n){var r=n("06a5"),o=n("b4b4");function i(e,t,n,a,s){return e===t||(null==e||null==t||!o(e)&&!o(t)?e!==e&&t!==t:r(e,t,n,a,i,s))}e.exports=i},"35bb":function(e,t,n){var r=n("8045"),o=n("494f"),i=n("4fab"),a=i&&i.isMap,s=a?o(a):r;e.exports=s},"35d9":function(e,t,n){var r=n("f72d"),o=n("b4b4");function i(e){return o(e)&&r(e)}e.exports=i},3819:function(e,t,n){var r=n("bf10"),o=n("201b"),i=r(o,"Set");e.exports=i},"398e":function(e,t,n){var r=n("cbbe");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("3a7ff440",r,!0,{sourceMap:!1,shadowMode:!1})},"39f2":function(e,t,n){var r=n("73b4");function o(e,t){var n=null==e?0:e.length;return!!n&&r(e,t,0)>-1}e.exports=o},"3ad3":function(e,t,n){var r=n("4c0b"),o=r(Object.keys,Object);e.exports=o},"3b54":function(e,t,n){var r=n("c364"),o=n("cb86"),i=n("c68c");function a(e,t,n){var a=-1,s=t.length,l={};while(++anull===e?""+encodeURIComponent(t):`${encodeURIComponent(t)}=${encodeURIComponent(e)}`).join("&"),r}function o(e,t){return t&&"object"===typeof t&&Object.keys(t).forEach(n=>{e=r(e,n,t[n])}),e}function i(e){const t=i.options,n=t.parser[t.strictMode?"strict":"loose"].exec(e);if(!n)throw new Error("Cannot parse as uri: "+e);const r={};let o=14;while(o--)r[t.key[o]]=n[o]||"";return r.query={},r.queryStr.replace(t.q.parser,(e,n,o)=>(n&&(r[t.q.name][n]=o),"")),r}n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return i})),i.options={strictMode:!1,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","queryStr","anchor"],q:{name:"query",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}}},"405d":function(e,t,n){var r=n("bf10"),o=n("201b"),i=r(o,"DataView");e.exports=i},"40cc":function(e,t,n){var r=n("e697"),o=Object.prototype,i=o.hasOwnProperty;function a(e){var t=this.__data__;return r?void 0!==t[e]:i.call(t,e)}e.exports=a},"413d":function(e,t){function n(e,t){var n=-1,r=e.length;t||(t=Array(r));while(++npre{padding:2px;vertical-align:middle}",""]),e.exports=t},"44a5":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAABjFBMVEVHcEwMMiwJLi4MMiwMMiwNMy0MMysMMiwNNC4MMiwMMiwMMiwMMiwMMiz///8MMix9ko7O1tUQNS+pt7UTODLn6+oNMy2/ycihr63c4eAONC5xh4RHZF/d4uFhenbi5+YrTUdyiIXM1NJsg4AqTEbJ0dAaPjjX3dyRo6C5xMPl6en2+Pjr7u4qS0YgQz0yUk1cdnLAysgPNC6GmZYfQj2TpKF7j4xrgn9vhoJPamZQa2cvUEuQoZ6Nn5xWcW3o7OuKnJk3VlH9/f2ls7Gvu7lMaGO9yMYUODMeQTzN1dTv8fEhRD5Tbmr19/eotrQzU06VpqPI0M/CzMpqgn68x8XS2djs7+5AXlqsubcVOTOerasdQDuYqKYwUUuClpN4jYlje3dUb2tSbWh6jotTbWmXp6X6+/vq7e3P19aSo6H4+fnK0tFBX1oZPTj09fXu8fB8kY41VVBCYFuuu7n+/v40VE9Xcm17kI3W3Nu2wb9IZWC+yMfg5OQ+XFc2VVBZc2+ntbO7xsSZqaY/XVnvk2EjAAAADnRSTlMArxyp8Siw8ifvrq3s8H1RQAIAAAFMSURBVDjLzZNVcwIxEICDH5Vd3B2KFYe6UHd3d3d37x9vrsNAe8Mdb51+D5lJ9stsks0SIpMrkAeFiCFEpkQBlAyRoyDlRCEsSAmW4G8FX2O9qrauwfU9ae/mCE01dsih17Zq0Ar9CUtBiHZ1wE+yVjcdzZOpnOAdBi4DAM4F85SFFQxjUIzIIursDlZYKRoHI8aWTHNUiO/ASfoiepSO/Baqlw2z4WkqbMPpOaauMxir4hjGGb2WCntwhi9PcHV5nAlz0yR7qWCGB3xP+p4DIdwohEKdPcYRdx97TQ8k8DGI+ApxpElaVKqgE0BXeOp9uMfPN8Qb2MIhAAdd9AegWZMXXAdwSx/VfwijiG1qtYlutnnUWk2+Fl6Auw+THiZ4q7m2yx5rfJC/3PPrm6s2w3/4cjxCicapJCJhQUIYweatEBPClEl5G1MiJl+FK1ex1JQuFwAAAABJRU5ErkJggg=="},"44d9":function(e,t,n){var r=n("fa8a");function o(){this.__data__=new r,this.size=0}e.exports=o},"44db":function(e,t,n){var r=n("b506"),o=n("10d1"),i=n("9ef5"),a="Expected a function",s=Math.max,l=Math.min;function c(e,t,n){var c,u,d,p,f,h,v=0,b=!1,m=!1,g=!0;if("function"!=typeof e)throw new TypeError(a);function y(t){var n=c,r=u;return c=u=void 0,v=t,p=e.apply(r,n),p}function _(e){return v=e,f=setTimeout(k,t),b?y(e):p}function w(e){var n=e-h,r=e-v,o=t-n;return m?l(o,d-r):o}function x(e){var n=e-h,r=e-v;return void 0===h||n>=t||n<0||m&&r>=d}function k(){var e=o();if(x(e))return O(e);f=setTimeout(k,w(e))}function O(e){return f=void 0,g&&c?y(e):(c=u=void 0,p)}function A(){void 0!==f&&clearTimeout(f),v=0,c=h=u=f=void 0}function E(){return void 0===f?p:O(o())}function S(){var e=o(),n=x(e);if(c=arguments,u=this,h=e,n){if(void 0===f)return _(h);if(m)return clearTimeout(f),f=setTimeout(k,t),y(h)}return void 0===f&&(f=setTimeout(k,t)),p}return t=i(t)||0,r(n)&&(b=!!n.leading,m="maxWait"in n,d=m?s(i(n.maxWait)||0,t):d,g="trailing"in n?!!n.trailing:g),S.cancel=A,S.flush=E,S}e.exports=c},"45ab":function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,"pre{text-align:left;padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#000;color:#fff;font-family:monospace}.main{text-align:center;margin:0 auto;width:100%}.install-command{margin:20px auto;display:flex;flex-direction:column;align-items:center;gap:10px}.install-command button{padding:5px 10px;background-color:#007bff;color:#fff;border:none;border-radius:5px;cursor:pointer}",""]),e.exports=t},"45d2":function(e){e.exports=JSON.parse('{"hasStylesheet":"false"}')},"462f":function(e,t,n){"use strict";n.d(t,"H",(function(){return a})),n.d(t,"s",(function(){return s})),n.d(t,"J",(function(){return l})),n.d(t,"I",(function(){return c})),n.d(t,"x",(function(){return u})),n.d(t,"w",(function(){return d})),n.d(t,"t",(function(){return f})),n.d(t,"u",(function(){return h})),n.d(t,"b",(function(){return v})),n.d(t,"c",(function(){return b})),n.d(t,"e",(function(){return m})),n.d(t,"f",(function(){return g})),n.d(t,"y",(function(){return y})),n.d(t,"z",(function(){return _})),n.d(t,"n",(function(){return w})),n.d(t,"N",(function(){return x})),n.d(t,"Q",(function(){return k})),n.d(t,"T",(function(){return O})),n.d(t,"S",(function(){return A})),n.d(t,"P",(function(){return E})),n.d(t,"O",(function(){return S})),n.d(t,"R",(function(){return T})),n.d(t,"M",(function(){return R})),n.d(t,"K",(function(){return C})),n.d(t,"g",(function(){return I})),n.d(t,"o",(function(){return L})),n.d(t,"B",(function(){return D})),n.d(t,"v",(function(){return N})),n.d(t,"C",(function(){return j})),n.d(t,"A",(function(){return P})),n.d(t,"q",(function(){return F})),n.d(t,"k",(function(){return $})),n.d(t,"l",(function(){return M})),n.d(t,"m",(function(){return U})),n.d(t,"G",(function(){return B})),n.d(t,"L",(function(){return G})),n.d(t,"F",(function(){return K})),n.d(t,"W",(function(){return H})),n.d(t,"U",(function(){return V})),n.d(t,"V",(function(){return q})),n.d(t,"j",(function(){return z})),n.d(t,"r",(function(){return W})),n.d(t,"p",(function(){return Y})),n.d(t,"d",(function(){return X})),n.d(t,"i",(function(){return J})),n.d(t,"a",(function(){return Q})),n.d(t,"E",(function(){return ee})),n.d(t,"h",(function(){return te})),n.d(t,"D",(function(){return ne}));var r=n("4ac6"),o=n("907c"),i=n("0fb1");const a={name:"state",labelKey:"tableHeaders.state",sort:["stateSort","nameSort"],value:"stateDisplay",getValue:e=>e.stateDisplay,width:100,default:"unknown",formatter:"BadgeStateFormatter"},s={name:"name",labelKey:"tableHeaders.name",value:"nameDisplay",getValue:e=>e.nameDisplay,sort:["nameSort"],formatter:"LinkDetail",canBeVariable:!0},l={name:"storage_class_provisioner",labelKey:"tableHeaders.storage_class_provisioner",value:"provisionerDisplay",sort:["provisioner"]},c={name:"storage_class_default",labelKey:"tableHeaders.default",value:"isDefault",sort:["isDefault"],formatter:"Checked"},u={name:"persistent_volume_source",labelKey:"tableHeaders.persistentVolumeSource",value:"source",sort:["provisioner"]},d={name:"persistent-volume-claim",labelKey:"tableHeaders.persistentVolumeClaim",sort:["nameSort"],value:"claimName",formatter:"LinkDetail",formatterOpts:{reference:"claim.detailLocation"}},p={name:"localOutputRefs",labelKey:"tableHeaders.output",value:"outputs",sort:["outputsSortable"],formatter:"ListLink",formatterOpts:{options:{internal:!0}}},f={name:"namespace",labelKey:"tableHeaders.namespace",value:"namespace",getValue:e=>e.namespace,sort:"namespace",dashIfEmpty:!0},h={name:"node",labelKey:"tableHeaders.node",value:"spec.nodeName",getValue:e=>{var t;return null===(t=e.spec)||void 0===t?void 0:t.nodeName},sort:"spec.nodeName",formatter:"LinkName",formatterOpts:{type:o["o"]}},v={name:"age",labelKey:"tableHeaders.age",value:"creationTimestamp",getValue:e=>e.creationTimestamp,sort:"creationTimestamp:desc",search:!1,formatter:"LiveDate",width:100,align:"left"},b={...v,getValue:e=>e.created,value:"created",sort:"created:desc"},m={name:"description",labelKey:"tableHeaders.description",align:"left",sort:["description"],width:300},g={name:"duration",labelKey:"tableHeaders.duration",value:"duration.value",sort:"duration.seconds",formatter:"LiveDuration"},y={name:"pod_images",labelKey:"tableHeaders.podImages",value:"imageNames",getValue:e=>e.imageNames,sort:"imageNames",formatter:"PodImages"},_={name:"pod_restarts",labelKey:"tableHeaders.podRestarts",formatter:"LivePodRestarts",delayLoading:!0,value:"restartCount",getValue:e=>e.restartCount,search:!1,liveUpdates:!0},w={name:"keys",labelKey:"tableHeaders.keys",sort:!1,value:"keysDisplay"},x={name:"username",labelKey:"tableHeaders.username",value:"username",dashIfEmpty:!0,sort:"username"},k={name:"name",labelKey:"tableHeaders.name",value:"nameDisplay",sort:["nameSort"],dashIfEmpty:!0},O={name:"provider",labelKey:"tableHeaders.provider",value:"providerDisplay",dashIfEmpty:!0,sort:"providerDisplay"},A={name:"user-last-login",labelKey:"tableHeaders.userLastLogin",value:"userLastLogin",formatter:"LiveDate",formatterOpts:{addSuffix:!0},sort:"userLastLogin"},E={name:"user-disabled-in",labelKey:"tableHeaders.userDisabledIn",value:"userDisabledInDisplay",formatter:"LiveDate",formatterOpts:{isCountdown:!0},sort:"userDisabledIn"},S={name:"user-deleted-in",labelKey:"tableHeaders.userDeletedIn",value:"userDeletedIn",formatter:"LiveDate",formatterOpts:{isCountdown:!0},sort:"userDeletedIn"},T={name:"user-id",labelKey:"tableHeaders.userId",value:"id",formatter:"LinkDetail",canBeVariable:!0,sort:"id"},R={name:"type",labelKey:"tableHeaders.type",value:"typeDisplay",getValue:e=>e.typeDisplay,sort:["typeDisplay"],width:100},C={name:"subType",labelKey:"tableHeaders.subType",value:"subTypeDisplay",sort:["subTypeDisplay"],width:120},I={name:"type",labelKey:"tableHeaders.type",value:"eventType",sort:"eventType"},L={name:"lastSeen",labelKey:"tableHeaders.lastSeen",value:"lastSeen",sort:"lastTimestamp:desc",tooltip:"tableHeaders.lastSeenTooltip"},D={name:"reason",labelKey:"tableHeaders.reason",value:"reason",sort:["reason"]},N={name:"object",labelKey:"tableHeaders.object",value:"involvedObject",sort:["involvedObject.kind","involvedObject.name"],canBeVariable:!0,formatter:"InvolvedObjectLink"},j={name:"reclaimPolicy",labelKey:"tableHeaders.reclaimPolicy",value:"spec.persistentVolumeReclaimPolicy",sort:["spec.persistentVolumeReclaimPolicy"]},P={name:"pvReason",labelKey:"tableHeaders.reason",value:"status.reason",sort:["status.reason"]},F={name:"message",labelKey:"tableHeaders.message",value:"message",sort:["message"]},$={name:"ingressClassName",labelKey:"tableHeaders.ingressClass",value:"$['spec']['ingressClassName']",sort:"$['spec']['ingressClassName']"},M={name:"ingressDefaultBackend",labelKey:"tableHeaders.ingressDefaultBackend",value:"hasDefaultBackend",sort:["hasDefaultBackend:desc"],formatter:"Checked",width:75,align:"center"},U={name:"ingressTarget",labelKey:"tableHeaders.ingressTarget",value:"$['spec']",formatter:"IngressTarget",sort:"$['spec']['rules'][0].host"},B={name:"type",labelKey:"tableHeaders.type",value:"$['spec']['type']",sort:"$['spec']['type']",formatter:"ServiceType"},G={formatter:"ServiceTargets",labelKey:"tableHeaders.targetPort",name:"targetPort",sort:"$['spec']['targetPort']",value:"$['spec']['targetPort']"},K={formatter:"KeyValue",name:"selector",labelKey:"tableHeaders.selector",value:"$['spec']['selector']",sort:"$['spec']['selector']"},H={...y,value:"",breakpoint:i["a"].LAPTOP},V={name:"workloadEndpoints",labelKey:"tableHeaders.endpoints",value:`$['metadata']['annotations']['${r["c"]}']`,getValue:e=>{var t;return null===(t=e.metadata)||void 0===t||null===(t=t.annotations)||void 0===t?void 0:t[r["c"]]},formatter:"Endpoints",dashIfEmpty:!0,breakpoint:i["a"].DESKTOP,maxPageSize:25},q={name:"workloadHealthScale",labelKey:"tableHeaders.health",formatter:"WorkloadHealthScale",getValue:()=>{},width:150,skipSelect:!0,delayLoading:!0,search:!1,liveUpdates:!0},z={name:"reference",labelKey:"tableHeaders.hpaReference",value:"spec.scaleTargetRef.name",sort:"spec.scaleTargetRef.name"},W={name:"minimum-replica",labelKey:"tableHeaders.minReplicas",value:"spec.minReplicas",sort:"spec.minReplicas"},Y={name:"maximum-replica",labelKey:"tableHeaders.maxReplicas",value:"spec.maxReplicas",sort:"spec.maxReplicas"},X={name:"current-replica",labelKey:"tableHeaders.currentReplicas",value:"status.currentReplicas",sort:"status.currentReplicas"},J={...a,value:"$",formatter:"LiveExpiryBadgeState"},Q={name:"id",labelKey:"tableHeaders.accessKey",align:"left",sort:["name"],width:200},Z={name:"scope",value:"clusterName",labelKey:"tableHeaders.scope",dashIfEmpty:!0,align:"left",sort:["scope"],width:100},ee={...Z,value:"clusterId",sort:["clusterId"]},te={name:"expires",value:"expiresAt",labelKey:"tableHeaders.expires",align:"left",sort:["expiresAt"],width:200,formatter:"LiveExpiryDate"},ne={name:"role",value:"roleDisplay",labelKey:"tableHeaders.role"}},"466b":function(e,t,n){"use strict";var r=function(){var e=this,t=e._self._c;return t("div",{ref:"select",staticClass:"labeled-select",class:{disabled:e.isView||e.disabled,focused:e.focused,[e.mode]:!0,[e.status]:e.status,taggable:e.$attrs.taggable,taggable:e.$attrs.multiple,hoverable:e.hoverTooltip,"compact-input":e.isCompact,"no-label":!e.hasLabel},on:{click:e.focusSearch,focus:e.focusSearch}},[t("div",{class:{"labeled-container":!0,raised:e.raised,empty:e.empty,[e.mode]:!0},style:{border:"none"}},[e.hasLabel?t("label",[e.labelKey?t("t",{attrs:{k:e.labelKey}}):e.label?[e._v(e._s(e.label))]:e._e(),e.requiredField?t("span",{staticClass:"required"},[e._v("*")]):e._e()],2):e._e()]),t("v-select",e._g(e._b({ref:"select-input",staticClass:"inline",class:{"no-label":!(e.label||"").length},attrs:{"append-to-body":e.appendToBody,"calculate-position":e.positionDropdown,clearable:e.clearable,disabled:e.isView||e.disabled||e.loading,"get-option-key":e.getOptionKey,"get-option-label":t=>e.getOptionLabel(t),label:e.optionLabel,options:e.options,"map-keydown":e.mappedKeys,placeholder:e.placeholder,reduce:t=>e.reduce(t),searchable:e.isSearchable,selectable:e.selectable,value:null==e.value||e.loading?"":e.value,"dropdown-should-open":e.dropdownShouldOpen},on:{"search:blur":e.onBlur,"search:focus":e.onFocus,search:e.onSearch,open:e.onOpen,close:e.onClose,"option:selected":function(t){return e.$emit("selecting",t)}},scopedSlots:e._u([{key:"option",fn:function(n){return["group"===n.kind?[t("div",{staticClass:"vs__option-kind-group"},[t("b",[e._v(e._s(e.getOptionLabel(n)))]),n.badge?t("div",[e._v(" "+e._s(n.badge)+" ")]):e._e()])]:"divider"===n.kind?[t("hr")]:"highlighted"===n.kind?[t("div",{staticClass:"option-kind-highlighted"},[e._v(" "+e._s(n.label)+" ")])]:t("div",{on:{mousedown:t=>e.onClickOption(n,t)}},[e._v(" "+e._s(e.getOptionLabel(n))+" "),n.error?t("i",{staticClass:"icon icon-warning pull-right",staticStyle:{"font-size":"20px"}}):e._e()])]}},e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0)},"v-select",e.$attrs,!1),e.$listeners)),e.loading?t("i",{staticClass:"icon icon-spinner icon-spin icon-lg"}):e._e(),e.tooltip&&!e.focused?t("LabeledTooltip",{attrs:{hover:e.hoverTooltip,value:e.tooltip,status:e.status}}):e._e(),e.validationMessage?t("LabeledTooltip",{attrs:{hover:e.hoverTooltip,value:e.validationMessage}}):e._e()],1)},o=[],i=n("df7c"),a=n("480e"),s=n("e24b"),l=n("d174"),c=n("9f16"),u=n("e8f0"),d=n("9e74"),p=n.n(d),f={name:"LabeledSelect",components:{LabeledTooltip:l["a"]},mixins:[i["a"],a["a"],c["a"]],props:{appendToBody:{default:!0,type:Boolean},clearable:{default:!1,type:Boolean},disabled:{default:!1,type:Boolean},required:{default:!1,type:Boolean},hoverTooltip:{default:!0,type:Boolean},loading:{default:!1,type:Boolean},localizedLabel:{default:!1,type:Boolean},optionKey:{default:null,type:String},optionLabel:{default:"label",type:String},placement:{default:null,type:String},reduce:{default:e=>e&&"object"===typeof e&&void 0!==e.value?e.value:e,type:Function},selectable:{default:e=>!e||!e.disabled&&"group"!==e.kind&&"divider"!==e.kind&&!e.loading,type:Function},status:{default:null,type:String},tooltip:{default:null,type:[String,Object]},value:{default:null,type:[String,Object,Number,Array,Boolean]},closeOnSelect:{type:Boolean,default:!0}},data(){return{selectedVisibility:"visible",shouldOpen:!0}},computed:{hasLabel(){return!this.isCompact&&(!!this.label||!!this.labelKey||!!this.$slots.label)}},methods:{focusSearch(){const e=Date.now()-this.blurred;!this.focused&&e<250||this.$nextTick(()=>{var e;const t=null===(e=this.$refs["select-input"])||void 0===e?void 0:e.searchEl;t&&t.focus()})},onFocus(){this.selectedVisibility="hidden",this.onFocusLabeled()},onBlur(){this.selectedVisibility="visible",this.onBlurLabeled()},onOpen(){this.$emit("on-open"),this.resizeHandler()},onClose(){this.$emit("on-close")},getOptionLabel(e){if(e){if("object"===typeof this.options[0]){const t=this.getUpdatedOption(e);if(t){const e=Object(s["f"])(t,this.optionLabel);return this.localizedLabel&&this.$store.getters["i18n/t"](e)||e}}if(this.$attrs["get-option-label"])return this.$attrs["get-option-label"](e);if(Object(s["f"])(e,this.optionLabel)){if(this.localizedLabel){const t=Object(s["f"])(e,this.optionLabel);return this.$store.getters["i18n/t"](t)||t}return Object(s["f"])(e,this.optionLabel)}return e}},getUpdatedOption(e){const t=this.options&&!this.options.find(t=>e[this.optionLabel]===t[this.optionLabel]);return t?this.options.find(t=>p()(this.reduce(e),this.reduce(t))):void 0},positionDropdown(e,t,{width:n}){Object(u["a"])(e,t,n,this.placement)},get:s["f"],onClickOption(e,t){u["b"].call(this,e,t)},dropdownShouldOpen(e,t=!1){const{noDrop:n,mutableLoading:r}=e,{open:o}=e,i=this.shouldOpen;return t?(e.open=!0,!0):(!1===i&&(this.shouldOpen=!0,e.closeSearchOptions()),!n&&(o&&i&&!r))},onSearch(e){e&&this.dropdownShouldOpen(this.$refs["select-input"],!0)},getOptionKey(e){return this.optionKey?Object(s["f"])(e,this.optionKey):this.getOptionLabel(e)}}},h=f,v=(n("1a7e"),n("d802")),b=Object(v["a"])(h,r,o,!1,null,"2ec7d750",null);t["a"]=b.exports},4720:function(e,t,n){"use strict";n("969a")},4774:function(e,t,n){var r=n("cd68"),o=n("500b"),i=n("ecf6");function a(e,t){return i(o(e,t,r),e+"")}e.exports=a},4778:function(e,t,n){var r=n("4b2c"),o=n("986c"),i=n("a4fc"),a=n("659f"),s=n("6944"),l=n("5e52"),c=1,u=2,d="[object Boolean]",p="[object Date]",f="[object Error]",h="[object Map]",v="[object Number]",b="[object RegExp]",m="[object Set]",g="[object String]",y="[object Symbol]",_="[object ArrayBuffer]",w="[object DataView]",x=r?r.prototype:void 0,k=x?x.valueOf:void 0;function O(e,t,n,r,x,O,A){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case _:return!(e.byteLength!=t.byteLength||!O(new o(e),new o(t)));case d:case p:case v:return i(+e,+t);case f:return e.name==t.name&&e.message==t.message;case b:case g:return e==t+"";case h:var E=s;case m:var S=r&c;if(E||(E=l),e.size!=t.size&&!S)return!1;var T=A.get(e);if(T)return T==t;r|=u,A.set(e,t);var R=a(E(e),E(t),r,x,O,A);return A["delete"](e),R;case y:if(k)return k.call(e)==k.call(t)}return!1}e.exports=O},"479b":function(e,t,n){var r=n("a4fc"),o=n("f72d"),i=n("a67c"),a=n("b506");function s(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?o(n)&&i(t,n.length):"string"==s&&t in n)&&r(n[t],e)}e.exports=s},"480e":function(e,t,n){"use strict";var r=n("8bbf"),o=n.n(r),i=n("da25");function a(e,t){e&&("function"===typeof t&&(t=t()),e.style.width="string"!==typeof t?t+"px":t)}function s(e){if(e&&e.length)return e.length?parseFloat(getComputedStyle(e[0]).width.replace("px","")):parseFloat(getComputedStyle(e).width.replace("px",""))}t["a"]=o.a.extend({inheritAttrs:!1,props:{mode:{type:String,default:i["p"]},label:{type:String,default:null},labelKey:{type:String,default:null},placeholderKey:{type:String,default:null},tooltip:{type:[String,Object],default:null},hoverTooltip:{type:Boolean,default:!0},tooltipKey:{type:String,default:null},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placeholder:{type:[String,Number],default:""},value:{type:[String,Number,Object],default:""},options:{default:null,type:Array},searchable:{default:!1,type:Boolean},rules:{default:()=>[],type:Array,validator:e=>e.every(e=>["function"].includes(typeof e))}},data(){return{raised:this.mode===i["t"]||!!(""+this.value),focused:!1,blurred:null}},computed:{requiredField(){return this.required||this.rules.some(e=>"required"===(null===e||void 0===e?void 0:e.name))},empty(){return!!(""+this.value)},isView(){return this.mode===i["t"]},isDisabled(){return this.disabled||this.isView},isSearchable(){const{searchable:e}=this,t=this.options||[];return!!(e||t.length>=10)},validationMessage(){const e=this.rules.find(e=>"required"===(null===e||void 0===e?void 0:e.name)),t=[],n=null===this||void 0===this?void 0:this.value;if(e&&this.blurred&&!this.focused){const t=e(n);if(t)return t}for(const r of this.rules){const e=r(n);e&&"required"!==r.name&&t.push(e)}return t.length>0&&(this.blurred||this.focused)?t.join(", "):void 0}},methods:{resizeHandler(){this.$nextTick(()=>{const e=this.$refs.select.querySelector("ul.vs__dropdown-menu"),t=s(this.$refs.select)||0,n=s(e)||0;nbutton{height:20px;line-height:14px}.labeled-select.taggable[data-v-2ec7d750] .vs__selected-options .vs__selected>button:hover{background-color:var(--primary);border-radius:0}.labeled-select.taggable[data-v-2ec7d750] .vs__selected-options .vs__selected>button:hover:after{color:#fff}.labeled-select[data-v-2ec7d750] .vs__selected-options{margin-top:-5px}.labeled-select[data-v-2ec7d750] .v-select:not(.vs--single) .vs__selected-options{padding:5px 0}.labeled-select[data-v-2ec7d750] .vs__actions:after{position:relative;top:-10px}.labeled-select[data-v-2ec7d750] .v-select.vs--open .vs__dropdown-toggle{color:var(--outline)!important}[data-v-2ec7d750] .labeled-select.disabled .labeled-container,[data-v-2ec7d750] .labeled-select.disabled .vs__dropdown-toggle,[data-v-2ec7d750] .labeled-select.disabled input,[data-v-2ec7d750] .labeled-select.disabled label{cursor:not-allowed}.labeled-select .no-label[data-v-2ec7d750].v-select:not(.vs--single){min-height:33px}.labeled-select .no-label[data-v-2ec7d750].selected{padding-top:8px;padding-bottom:9px;position:relative;max-height:2.3em;overflow:hidden}.labeled-select .no-label[data-v-2ec7d750] .vs__selected-options{padding:8px 0 7px 0}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group[data-v-2ec7d750]{display:flex}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>b[data-v-2ec7d750]{flex:1}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>div[data-v-2ec7d750]{background-color:var(--primary);border-radius:4px;color:var(--primary-text);font-size:12px;height:18px;line-height:18px;margin-top:1px;padding:0 10px}.vs__dropdown-option>.option-kind-highlighted[data-v-2ec7d750]{color:var(--dropdown-highlight-text)}.vs__dropdown-option.vs__dropdown-option--highlight>.option-kind-highlighted[data-v-2ec7d750],.vs__dropdown-option.vs__dropdown-option--selected>.option-kind-highlighted[data-v-2ec7d750],.vs__dropdown-option>.option-kind-highlighted[data-v-2ec7d750]:hover{color:var(--dropdown-hover-text)}",""]),e.exports=t},4968:function(e,t,n){var r=n("6d0c");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("33805afa",r,!0,{sourceMap:!1,shadowMode:!1})},"4a35":function(e,t,n){var r=n("7380");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("5b873414",r,!0,{sourceMap:!1,shadowMode:!1})},"4a83":function(e,t,n){var r=n("d3e6"),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,n,r,o){t.push(r?o.replace(i,"$1"):n||e)})),t}));e.exports=a},"4a8f":function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));const r="backTo"},"4ac6":function(e,t,n){"use strict";n.d(t,"g",(function(){return r})),n.d(t,"d",(function(){return o})),n.d(t,"h",(function(){return i})),n.d(t,"c",(function(){return a})),n.d(t,"f",(function(){return l})),n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return u})),n.d(t,"e",(function(){return d}));const r="field.cattle.io/name",o="field.cattle.io/description",i="field.cattle.io/projectId",a="field.cattle.io/publicEndpoints",s=/cattle\.io\//,l=[s],c=[s],u=[/^kubectl\.kubernetes\.io\/.*$/,/^objectset\.rio\.cattle\.io\/.*$/],d={CLOUD_INIT:"harvesterhci.io/cloud-init-template",CLOUD_PROVIDER_IPAM:"cloudprovider.harvesterhci.io/ipam",NETWORK_ROUTE:"network.harvesterhci.io/route",IMAGE_NAME:"harvesterhci.io/image-name",NETWORK_TYPE:"network.harvesterhci.io/type",PRIMARY_SERVICE:"cloudprovider.harvesterhci.io/primary-service"}},"4b2c":function(e,t,n){var r=n("201b"),o=r.Symbol;e.exports=o},"4b48":function(e,t){function n(e,t){return e.has(t)}e.exports=n},"4b7a":function(e,t,n){var r=n("effc"),o=n("280a"),i=n("cd68"),a=n("c316"),s=n("d440");function l(e){return"function"==typeof e?e:null==e?i:"object"==typeof e?a(e)?o(e[0],e[1]):r(e):s(e)}e.exports=l},"4c0b":function(e,t){function n(e,t){return function(n){return e(t(n))}}e.exports=n},"4efd":function(e,t,n){var r=n("d856"),o=n("54f6"),i=n("f9f5"),a=n("40cc"),s=n("994b");function l(e){var t=-1,n=null==e?0:e.length;this.clear();while(++te.replace(/^ui-/,""),mangleWrite:e=>"ui-"+e}),o("pcs","",{asCookie:s,asUserPreference:!1}),o("locale","en-us",{asCookie:s}),o("keymap","sublime",{options:["sublime","emacs","vim"]})),v=o("per-page",100,{options:[10,25,50,100],parseJSON:a}),b=(o("logs-wrap",!0,{parseJSON:a}),o("logs-time",!0,{parseJSON:a}),o("logs-range","30 minutes",{parseJSON:a}),o("hide-repos",[],{parseJSON:a}),o("hide-desc",[],{parseJSON:a})),m=(o("hide-sensitive",!0,{options:[!0,!1],parseJSON:a}),o("show-pre-release",!1,{options:[!1,!0],parseJSON:a})),g=(o("chart-mode","featured",{parseJSON:a}),o("date-format","ddd, MMM D YYYY",{options:["ddd, MMM D YYYY","ddd, D MMM YYYY","D/M/YYYY","M/D/YYYY","YYYY-MM-DD"]}),o("time-format","h:mm:ss a",{options:["h:mm:ss a","HH:mm:ss"]}),o("time-zone","local"),o("dev",!1,{parseJSON:a})),y=o("view-in-api",!1,{parseJSON:a,inheritFrom:g}),_=(o("all-namespaces",!1,{parseJSON:a,inheritFrom:g}),o("theme-shortcut",!1,{parseJSON:a,inheritFrom:g}),o("last-visited","home",{parseJSON:a}),o("seen-whatsnew","",{parseJSON:a}),o("read-whatsnew","",{parseJSON:a}),o("after-login-route","home",{parseJSON:a})),w=(o("home-page-cards",{},{parseJSON:a}),o("plugin-developer",!1,{parseJSON:a,inheritFrom:g}),"rke1"),x="rke2";o("provisioner",x,{options:[w,x]}),o("hide-psp-deprecation-banner",!1,{parseJSON:a}),o("scale-pool-prompt",null,{parseJSON:a})}).call(this,n("07d9"))},"500b":function(e,t,n){var r=n("cda3"),o=Math.max;function i(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){var i=arguments,a=-1,s=o(i.length-t,0),l=Array(s);while(++a0&&e.canSeeProjectlessNamespaces?t("div",{staticClass:"mt-20 remove-project-dialog"},[t("Checkbox",{attrs:{label:e.t("promptRemove.deleteAssociatedNamespaces")},model:{value:e.deleteProjectNamespaces,callback:function(t){e.deleteProjectNamespaces=t},expression:"deleteProjectNamespaces"}}),t("div",{staticClass:"mt-10 ml-20"},[t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.resourceNames(e.names,e.plusMore,e.t),expression:"resourceNames(names, plusMore, t)"}]})])],1):e._e()])])},o=[],i=n("9ce4"),a=n("4ac6"),s=n("907c"),l=n("0df0"),c=n("2cb5"),u={name:"ProjectAndNamespacesPromptRemove",components:{Checkbox:l["a"]},props:{value:{type:Array,default:()=>[]},type:{type:String,required:!0}},async fetch(){this.allNamespaces=await this.$store.dispatch("cluster/findAll",{type:s["m"]}),this.allProjects=await this.$store.dispatch("management/findAll",{type:s["k"].PROJECT})},data(){return{deleteProjectNamespaces:!1,allNamespaces:[],allProjects:[]}},computed:{...Object(i["b"])("action-menu",["toRemove"]),...Object(i["a"])({t:"i18n/t"}),...Object(i["a"])(["currentCluster"]),currentProject(){return this.allProjects?this.value[0]:{}},filteredNamespaces(){return this.currentProject?this.allNamespaces.filter(e=>{var t;return e.metadata.labels[a["h"]]===(null===(t=this.currentProject.metadata)||void 0===t?void 0:t.name)}):[]},plusMore(){const e=this.filteredNamespaces.length>5?this.filteredNamespaces.length-5:0;return this.t("promptRemove.andOthers",{count:e})},displayName(){var e;return null===(e=this.currentProject)||void 0===e||null===(e=e.spec)||void 0===e?void 0:e.displayName},names(){return this.filteredNamespaces.map(e=>e.nameDisplay).slice(0,5)},canSeeProjectlessNamespaces(){return this.currentCluster.canUpdate}},methods:{resourceNames:c["n"],remove(){return!(!this.deleteProjectNamespaces&&this.canSeeProjectlessNamespaces)&&Promise.all(this.filteredNamespaces.map(e=>e.remove())).then(()=>!1)}}},d=u,p=(n("872e"),n("d802")),f=Object(p["a"])(d,r,o,!1,null,"3a26ac99",null);t["default"]=f.exports},5801:function(e,t,n){"use strict";n.r(t);var r=function(){var e=this,t=e._self._c;return t("div",{staticClass:"mt-10"},[t("div",{staticClass:"mb-30"},[e._v(" "+e._s(e.t("promptRemove.attemptingToRemove",{type:e.type}))+" "),t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.podNames,expression:"podNames"}],staticClass:"machine-name"})]),t("div",{staticClass:"mb-30"},[t("Checkbox",{attrs:{label:e.t("promptForceRemove.forceDelete")},model:{value:e.forceDelete,callback:function(t){e.forceDelete=t},expression:"forceDelete"}})],1),t("Banner",{attrs:{color:"warning","label-key":"promptForceRemove.podRemoveWarning"}}),e._l(e.errors,(function(e,n){return t("Banner",{key:n,attrs:{color:"error",label:e}})}))],2)},o=[],i=n("6418"),a=n("1032"),s=n("9ce4"),l=n("9ec3"),c={name:"PromptRemovePodDialog",components:{Banner:i["a"],Checkbox:a["a"]},props:{value:{type:Array,default:()=>[]},names:{type:Array,default:()=>[]},type:{type:String,required:!0}},data(){return{errors:[],forceDelete:!1}},computed:{...Object(s["b"])("action-menu",["toRemove"]),...Object(s["a"])({t:"i18n/t"}),plusMore(){const e=this.names.length-this.names.length;return this.t("promptRemove.andOthers",{count:e})},podNames(){return this.names.reduce((e,t,n)=>(n>=5||(e+=`${t}`,n===this.names.length-1?e+=this.plusMore:e+=n===this.toRemove.length-2?" and ":", "),e),"")}},methods:{async remove(e){const t=this.$parent.$parent.$parent;let n;t.doneLocation&&(n={...t.doneLocation});try{await Promise.all(this.value.map(e=>this.removePod(e))),n&&!Object(l["isEmpty"])(n)&&t.currentRouter.push(n),t.close()}catch(r){t.error=r,e(!1)}},removePod(e){const t=this.forceDelete?{data:{gracePeriod:0,force:!0}}:void 0;return e.remove(t)}}},u=c,d=(n("418e"),n("d802")),p=Object(d["a"])(u,r,o,!1,null,"db441fb2",null);t["default"]=p.exports},5877:function(t,n){t.exports=e},"5b4b":function(e,t){function n(e,t){var n=-1,r=null==e?0:e.length,o=0,i=[];while(++n=c&&(p=l,f=!1,t=new r(t));e:while(++d0&&n(u)?t>1?i(u,t-1,n,a,s):r(s,u):a||(s[s.length]=u)}return s}e.exports=i},"629b":function(e,t,n){var r=n("6bcf"),o=1/0;function i(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}e.exports=i},6418:function(e,t,n){"use strict";var r=n("eb32");n.d(t,"a",(function(){return r["a"]}))},"653d":function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));const r="R_REDIRECTED"},6552:function(e,t,n){var r=n("51db"),o=n("0f8f"),i=n("cc7f");function a(e,t){return null==e?e:r(e,o(t),i)}e.exports=a},"659f":function(e,t,n){var r=n("2419"),o=n("9b25"),i=n("4b48"),a=1,s=2;function l(e,t,n,l,c,u){var d=n&a,p=e.length,f=t.length;if(p!=f&&!(d&&f>p))return!1;var h=u.get(e),v=u.get(t);if(h&&v)return h==t&&v==e;var b=-1,m=!0,g=n&s?new r:void 0;u.set(e,t),u.set(t,e);while(++b{const{name:a,nodePort:l,port:c,targetPort:u}=e,d=r+1;if(i.length>1&&o()(a)&&n.push(t["i18n/t"]("validation.service.ports.name.required",{position:d})),!o()(a)){const e=Object(s["d"])(a,"name",t,void 0,n);o()(e)||(n=n.length&&n.length>0?[...n,...e]:e)}if(l){const e=parseInt(l,10);isNaN(e)&&n.push(t["i18n/t"]("validation.service.ports.nodePort.requiredInt",{position:d}))}if(c){const e=parseInt(c,10);isNaN(e)&&n.push(t["i18n/t"]("validation.service.ports.port.requiredInt",{position:d}))}else n.push(t["i18n/t"]("validation.service.ports.port.required",{position:d}));if(u){const e=t["i18n/t"]("validation.service.ports.targetPort.ianaAt",{position:d}),r=parseInt(u,10),i=new RegExp("^\\d+$"),a=i.test(u);if(a)(r<1||r>65535)&&n.push(t["i18n/t"]("validation.service.ports.targetPort.between",{position:d}));else{const r={ianaServiceName:!0,maxLength:15,validChars:"A-Za-z0-9-"},i=Object(s["d"])(u,e,t,r,n);o()(i)||n.push(...i)}}else n.push(t["i18n/t"]("validation.service.ports.targetPort.required",{position:d}))}),n)}function c(e,t,n,r){const o=["ClusterIP","NodePort","LoadBalancer"],i=null===e||void 0===e?void 0:e.type;return o.includes(i),n}function u(e,t,n,r){if("ExternalName"===(null===e||void 0===e?void 0:e.type))if(o()(null===e||void 0===e?void 0:e.externalName))n.push(t["i18n/t"]("validation.service.externalName.none"));else{const r=Object(s["f"])(e.externalName,"ExternalName",t,void 0,n);o()(r)||(n=n.length&&n.length>0?[...n,...r]:r)}return n}var d=n("d66a"),p=n.n(d);function f(e,t,n,r){return o()(null===e||void 0===e?void 0:e.groups)&&n.push(t["i18n/t"]("validation.prometheusRule.groups.required")),n}function h(e=[],t,n,r){return e.forEach((e,r)=>{const i=r+1;o()(null===e||void 0===e?void 0:e.name)&&n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.name",{index:i})),o()(null===e||void 0===e?void 0:e.rules)?n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.singleEntry",{index:i})):e.rules.forEach((e,r)=>{const a=r+1;p()(e,"alert")&&o()(null===e||void 0===e?void 0:e.alert)?n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.rule.alertName",{groupIndex:i,ruleIndex:a})):p()(e,"record")&&o()(null===e||void 0===e?void 0:e.record)&&n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.rule.recordName",{groupIndex:i,ruleIndex:a})),(p()(e,"expr")&&o()(e.expr)||!p()(e,"expr"))&&n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.rule.expr",{groupIndex:i,ruleIndex:a})),p()(e,"alert")&&(p()(e,"labels")&&o()(e.labels)||!p()(e,"labels"))&&n.push(t["i18n/t"]("validation.prometheusRule.groups.valid.rule.labels",{groupIndex:i,ruleIndex:a}))})}),n}function v(e,t,n,r){o()(null===e||void 0===e?void 0:e.match)&&o()(null===e||void 0===e?void 0:e["match_re"])&&n.push(t["i18n/t"]("validation.monitoring.route.match"))}function b(e,t,n,r,o){/^\d+[hms]$/.test(e)||n.push(t["i18n/t"]("validation.monitoring.route.interval",{key:o}))}var m=n("e24b");function g(e,t,n){let r;r=e.jobTemplate?Object(m["f"])(e,"jobTemplate.spec.template.spec"):Object(m["f"])(e,"template.spec"),r.containers&&r.containers.length?r.containers.forEach(e=>{e&&!e.image&&n.push(t["i18n/t"]("workload.validation.containerImage",{name:e.name}))}):n.push(t["i18n/t"]("validation.required",{key:t["i18n/t"]("workload.container.titles.containers")}))}var y=n("2105"),_=n.n(y);function w(e="",t,n){try{_.a.toString(e)}catch(r){n.push(t["i18n/t"]("validation.invalidCron"))}}function x(e,t,n){if(!e)return;const{podAffinity:r,podAntiAffinity:o}=e;if(r&&!Object(m["g"])(r)){const{preferredDuringSchedulingIgnoredDuringExecution:e=[],requiredDuringSchedulingIgnoredDuringExecution:o=[]}=r;e.forEach((e,r)=>{const o={index:r,group:t["i18n/t"]("validation.podAffinity.affinityTitle"),rules:t["i18n/t"]("validation.podAffinity.preferredDuringSchedulingIgnoredDuringExecution")};k(e,o,t,n);const{podAffinityTerm:i={}}=e;O(i,o,t,n),A(i,o,t,n)}),o.forEach((e,r)=>{const o={index:r,group:t["i18n/t"]("validation.podAffinity.affinityTitle"),rules:t["i18n/t"]("validation.podAffinity.requiredDuringSchedulingIgnoredDuringExecution")};O(e,o,t,n),A(e,o,t,n)})}if(o&&!Object(m["g"])(o)){const{preferredDuringSchedulingIgnoredDuringExecution:e=[],requiredDuringSchedulingIgnoredDuringExecution:r=[]}=o;e.forEach((e,r)=>{const o={index:r,group:t["i18n/t"]("validation.podAffinity.antiAffinityTitle"),rules:t["i18n/t"]("validation.podAffinity.preferredDuringSchedulingIgnoredDuringExecution")};k(e,o,t,n);const{podAffinityTerm:i={}}=e;O(i,o,t,n),A(i,o,t,n)}),r.forEach((e,r)=>{const o={index:r,group:t["i18n/t"]("validation.podAffinity.antiAffinityTitle"),rules:t["i18n/t"]("validation.podAffinity.requiredDuringSchedulingIgnoredDuringExecution")};O(e,o,t,n),A(e,o,t,n)})}}function k(e,t,n,r){const{weight:o=1}=e;("number"!==typeof o||o>100||o<1)&&r.push(n["i18n/t"]("validation.number.between",{key:n["i18n/t"]("workload.scheduling.matchExpressions.weight"),min:1,max:100,...t}))}function O(e,t,n,r){const{topologyKey:o}=e,i=RegExp("([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]");o&&i.test(o)||r.push(n["i18n/t"]("validation.podAffinity.topologyKey",t))}function A(e,t,n,r){const o=["In","NotIn","Exists","DoesNotExist"],{labelSelector:i}=e;if(i&&!Object(m["g"])(i)){const{matchExpressions:e=[]}=i;e.forEach((e,i)=>{const{operator:a,values:s}=e;o.includes(a)||r.push(n["i18n/t"]("validation.podAffinity.matchExpressions.operator",t)),"In"===a||"NotIn"===a?s&&s.length||r.push(n["i18n/t"]("validation.podAffinity.matchExpressions.valuesMustBeDefined",t)):s&&s.length&&r.push(n["i18n/t"]("validation.podAffinity.matchExpressions.valueMustBeEmpty",t))})}}var E=n("907c");function S(e=[],t,n,r=[]){e.some(e=>o()(e.verbs))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.missingVerb")),e.some(e=>{var t,n;return(null===(t=e.resources)||void 0===t?void 0:t.length)&&(null===(n=e.nonResourceURLs)||void 0===n?void 0:n.length)})&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.noResourceAndNonResource")),r[0]===E["u"].ROLE?(e.some(e=>o()(e.resources))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.missingResource")),e.some(e=>o()(e.apiGroups))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.missingApiGroup"))):e.some(e=>{var t,n;return(null===(t=e.resources)||void 0===t?void 0:t.length)&&(null===(n=e.nonResourceUrls)||void 0===n?void 0:n.length)})&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.noResourceAndNonResource")),e.some(e=>o()(e.resources)&&o()(e.nonResourceURLs))&&n.push(t["i18n/t"]("validation.roleTemplate.roleTemplateRules.missingOneResource"))}function T(e,t,n,r,o){const i="true"===r[0];return i&&(e||"").match(/^(c-.{5}|local)$/i)&&n.push(t["i18n/t"]("validation.cluster.name")),n}const R=["server-url"];function C(e,t,n,r,o){const i=r[0];return R.includes(i)&&!e.toLowerCase().startsWith("https://")&&n.push(t["i18n/t"]("validation.setting.serverUrl.https")),n}t["a"]={clusterName:T,clusterIp:c,externalName:u,flowOutput:i,groupsAreValid:h,logdna:a,ruleGroups:f,interval:b,servicePort:l,matching:v,containerImages:g,cronSchedule:w,podAffinity:x,roleTemplateRules:S,isHttps:C}},7049:function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},7083:function(e,t,n){"use strict";var r,o,i,a,s,l;n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return o})),n.d(t,"d",(function(){return i})),n.d(t,"b",(function(){return s})),n.d(t,"e",(function(){return l})),function(e){e["ACTION"]="Action",e["TAB"]="Tab",e["PANEL"]="Panel",e["CARD"]="Card",e["TABLE_COL"]="TableColumn"}(r||(r={})),function(e){e["HEADER"]="header-action",e["TABLE"]="table-action"}(o||(o={})),function(e){e["DETAILS_MASTHEAD"]="details-masthead",e["DETAIL_TOP"]="detail-top",e["RESOURCE_LIST"]="resource-list"}(i||(i={})),function(e){e["RESOURCE_DETAIL"]="tab",e["CLUSTER_CREATE_RKE2"]="cluster-create-rke2"}(a||(a={})),function(e){e["CLUSTER_DASHBOARD_CARD"]="cluster-dashboard-card"}(s||(s={})),function(e){e["RESOURCE"]="resource-list"}(l||(l={}))},7195:function(e,t,n){var r=n("2e63"),o=n("bc61"),i=n("cca9"),a=n("4b7a"),s=n("ff00"),l=n("c316"),c=n("dda8"),u=n("daaf"),d=n("b506"),p=n("41dd");function f(e,t,n){var f=l(e),h=f||c(e)||p(e);if(t=a(t,4),null==n){var v=e&&e.constructor;n=h?f?new v:[]:d(e)&&u(v)?o(s(e)):{}}return(h?r:i)(e,(function(e,r,o){return t(n,e,r,o)})),n}e.exports=f},"71bd":function(e,t,n){var r=n("6a68"),o=n("1ab6"),i=n("e91b"),a=n("413d"),s=n("b03d"),l=n("6efc"),c=n("c316"),u=n("35d9"),d=n("dda8"),p=n("daaf"),f=n("b506"),h=n("2a46"),v=n("41dd"),b=n("2cbd"),m=n("e127");function g(e,t,n,g,y,_,w){var x=b(e,n),k=b(t,n),O=w.get(k);if(O)r(e,n,O);else{var A=_?_(x,k,n+"",e,t,w):void 0,E=void 0===A;if(E){var S=c(k),T=!S&&d(k),R=!S&&!T&&v(k);A=k,S||T||R?c(x)?A=x:u(x)?A=a(x):T?(E=!1,A=o(k,!0)):R?(E=!1,A=i(k,!0)):A=[]:h(k)||l(k)?(A=x,l(x)?A=m(x):f(x)&&!p(x)||(A=s(k))):E=!1}E&&(w.set(k,A),y(A,k,g,_,w),w["delete"](k)),r(e,n,A)}}e.exports=g},"71d2":function(e,t,n){var r=n("6290"),o=1/0;function i(e){var t=null==e?0:e.length;return t?r(e,o):[]}e.exports=i},"735f":function(e,t){var n=Function.prototype,r=n.toString;function o(e){if(null!=e){try{return r.call(e)}catch(t){}try{return e+""}catch(t){}}return""}e.exports=o},"736a":function(e,t,n){var r=n("927d"),o=1,i=4;function a(e){return r(e,o|i)}e.exports=a},7380:function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,'.title[data-v-c7fe785e]{align-items:center;display:flex}.title h1[data-v-c7fe785e]{margin:0}header[data-v-c7fe785e]{margin-bottom:20px}header.with-subheader[data-v-c7fe785e]{grid-template-areas:"type-banner type-banner" "title actions" "sub-header sub-header" "state-banner state-banner"}.sub-header[data-v-c7fe785e]{grid-area:sub-header}',""]),e.exports=t},"73b4":function(e,t,n){var r=n("0ee5"),o=n("cfd2"),i=n("9f54");function a(e,t,n){return t===t?i(e,t,n):r(e,o,n)}e.exports=a},"73bd":function(e,t,n){var r=n("c02d"),o=n("a4fc"),i=Object.prototype,a=i.hasOwnProperty;function s(e,t,n){var i=e[t];a.call(e,t)&&o(i,n)&&(void 0!==n||t in e)||r(e,t,n)}e.exports=s},7576:function(e,t,n){var r=n("30c0");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("2d7e8ca0",r,!0,{sourceMap:!1,shadowMode:!1})},"75ff":function(e,t,n){var r=n("32ce");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("395fb48c",r,!0,{sourceMap:!1,shadowMode:!1})},"760b":function(e,t,n){"use strict";var r=n("907c"),o=n("4ac6"),i=n("330a"),a=n.n(i),s=n("d66a"),l=n.n(s),c=n("2105"),u=n.n(c);class d{constructor(e){this.string=String(e),this.int=parseInt(this.string,10),this.empty=!e&&0!==this.int,this.isNumber=!isNaN(this.int)&&!this.string.includes("e"),this.isInt=this.isNumber&&!this.string.includes(".")}}const p=["server-url"],f=(e,t)=>{for(const n of t){const t=n(e);if(t)return t}};t["a"]=function(e,{key:t="Value"}){const n=n=>r=>"."===(null===r||void 0===r?void 0:r.slice(0,1))?e(`validation.dns.${n}.startDot`,{key:t}):void 0,i=n=>r=>"."===(null===r||void 0===r?void 0:r.slice(-1))?e(`validation.dns.${n}.endDot`,{key:t}):void 0,s=n=>r=>{var o;return null!==r&&void 0!==r&&null!==(o=r.slice(0,1))&&void 0!==o&&o.match(/[0-9]/)?e(`validation.dns.${n}.startNumber`,{key:t}):void 0},c=n=>r=>"-"===(null===r||void 0===r?void 0:r.slice(0,1))?e(`validation.dns.${n}.startHyphen`,{key:t}):void 0,h=n=>r=>"-"===(null===r||void 0===r?void 0:r.slice(-1))?e(`validation.dns.${n}.endHyphen`,{key:t}):void 0,v=n=>r=>Number(r)r=>Number(r)>Number(n)?e("validation.maxValue",{key:t,max:n}):void 0,m=([n,r])=>o=>v(n)(o)||b(r)(o)?e("validation.betweenValues",{key:t,min:n,max:r}):void 0,g=n=>r=>r.lengthr=>r.length>Number(n)?e("validation.maxLength",{key:t,max:n}):void 0,_=([n,r])=>o=>g(n)(o)||y(r)(o)?e("validation.betweenLengths",{key:t,min:n,max:r}):void 0,w=n=>isNaN(parseInt(n,10))?e("validation.number.requiredInt",{key:t}):void 0,x=n=>!Number.isInteger(+n)||(""+n).match(/\.+/g)?e("validation.number.requiredInt",{key:t}):void 0,k=n=>+n<0?e("validation.number.isPositive",{key:t}):void 0,O=n=>{const r=""+n,o=r.match(/(^0+)(.+)/);return o?e("validation.number.isOctal",{key:t}):void 0},A=n=>parseInt(n,10)<1||parseInt(n,10)>65535?e("validation.number.between",{key:t,min:"1",max:"65535"}):void 0,E=n=>{const r=null===n||void 0===n?void 0:n.match(/[^${'A-Za-z0-9-'}]/g);if(r)return e("validation.chars",{key:t,count:r.length,chars:r.map(e=>" "===e?"Space":`"${e}"`).join(", ")})},S=n=>"--"===(null===n||void 0===n?void 0:n.substr(2,2))&&"xn"!==(null===n||void 0===n?void 0:n.substr(0,2))?e("validation.dns.doubleHyphen",{key:t}):void 0,T=n=>"--"===(null===n||void 0===n?void 0:n.substr(2,2))&&"xn"!==(null===n||void 0===n?void 0:n.substr(0,2))?e("validation.dns.doubleHyphen",{key:t}):void 0,R=n=>(r="")=>0===r.length?e(`validation.dns.${n}.emptyLabel`,{key:t,min:1}):void 0,C=(n,r=63)=>(o="")=>o.length>r?e(`validation.dns.${n}.tooLongLabel`,{key:t,max:r}):void 0,I=(n="")=>n.length>253?e("validation.dns.hostname.tooLong",{key:t,max:253}):void 0,L=(n="")=>"/"!==n[0]&&n.length>0?e("validation.path",{key:t}):void 0,D=n=>n||!1===n?void 0:e("validation.required",{key:t}),N=(n="")=>n.toLowerCase()!==n?e("validation.noUpperCase",{key:t}):void 0,j=t=>{try{u.a.toString(t)}catch(n){return e("validation.invalidCron")}},P=t=>{const n=n=>p.includes(t)&&!n.toLowerCase().startsWith("https://")?e("validation.setting.serverUrl.https"):void 0;return n},F=n=>/^\d+[hms]$/.test(n)?void 0:e("validation.monitoring.route.interval",{key:t}),$=t=>null!==t&&void 0!==t&&t.image?void 0:e("workload.validation.containerImage",{name:t.name}),M=t=>{var n,r;const o=t.jobTemplate?null===t||void 0===t||null===(n=t.jobTemplate)||void 0===n||null===(n=n.spec)||void 0===n||null===(n=n.template)||void 0===n||null===(n=n.spec)||void 0===n?void 0:n.containers:null===t||void 0===t||null===(r=t.template)||void 0===r||null===(r=r.spec)||void 0===r?void 0:r.containers;return o&&o.length?o.map(e=>$(e)).find(e=>e):e("validation.required",{key:e("workload.container.titles.containers")})},U=e=>{const t=[E,c("label"),h("label"),S,C("label")];return f(e,t)},B=e=>{const t=[E,c("label"),h("label"),T,R("label"),C("label",15)];return f(e,t)},G=e=>{const t=[E,s("label"),c("label"),h("label"),S,R("label"),C("label")];return f(e,t)},K=e=>{if(e){const t=[n("hostname"),I,i("hostname")],r=f(e,t);if(r)return r;const o=e.split("."),a=[E,c("hostname"),h("hostname"),S,R("hostname"),C("hostname")];for(let e=0;e(e=e?e.replace(/^\*\./,""):e,K(e)),V=t=>a()(t)?e("validation.service.externalName.none"):K(t),q=e=>"This is an error returned by the testRule validator",z=t=>a()(null===t||void 0===t?void 0:t.groups)?e("validation.prometheusRule.groups.required"):void 0,W=t=>n=>{var r;return t&&null!==(r=n||"")&&void 0!==r&&r.match(/^(c-.{5}|local)$/i)?e("validation.cluster.name"):void 0},Y=t=>{const{name:n,idx:r}=t,o=new d(t.nodePort),i=new d(t.port),s=new d(t.targetPort);if(a()(n))return e("validation.service.ports.name.required",{position:r+1});if(!o.empty){if(!o.isInt)return e("validation.service.ports.nodePort.requiredInt",{position:r+1});if(o.int<1||o.int>65535)return e("validation.service.ports.nodePort.between",{position:r+1})}if(i.empty)return e("validation.service.ports.port.required",{position:r+1});var l;if(!i.isInt)return e("validation.service.ports.port.requiredInt",{position:r+1});if(i.int<1||i.int>65535)return e("validation.service.ports.port.between",{position:r+1});if(null!==(l=i.string)&&void 0!==l&&l.includes("."))return i;if(s.empty)return e("validation.service.ports.targetPort.required",{position:r+1});if(s.isInt){if(s.int<1||s.int>65535)return e("validation.service.ports.targetPort.between",{position:r+1})}else{const e=B(s.string);if(e)return e}},X=(t,n)=>{let r;return a()(null===t||void 0===t?void 0:t.name)?e("validation.prometheusRule.groups.valid.name",{index:n}):a()(t.rules)?e("validation.prometheusRule.groups.valid.singleEntry",{index:n}):(t.rules.forEach((t,o)=>{const i=o+1;l()(t,"alert")&&a()(null===t||void 0===t?void 0:t.alert)&&!r?r=e("validation.prometheusRule.groups.valid.rule.alertName",{groupIndex:n,ruleIndex:i}):l()(t,"record")&&a()(null===t||void 0===t?void 0:t.record)&&(r=e("validation.prometheusRule.groups.valid.rule.recordName",{groupIndex:n,ruleIndex:i})),(l()(t,"expr")&&a()(t.expr)&&!r||!l()(t,"expr")&&!r)&&(r=e("validation.prometheusRule.groups.valid.rule.expr",{groupIndex:n,ruleIndex:i})),l()(t,"alert")&&(l()(t,"labels")&&a()(t.labels)&&!r||!l()(t,"labels")&&!r)&&(r=e("validation.prometheusRule.groups.valid.rule.labels",{groupIndex:n,ruleIndex:i}))}),r)},J=e=>{const t=[...e];let n;return t.forEach((e,t,r)=>{n=X(e,t+1),n&&(r.length=t+1)}),n},Q=t=>{if(a()(null===t||void 0===t?void 0:t.match)&&a()(null===t||void 0===t?void 0:t["match_re"]))return e("validation.monitoring.route.match")},Z=t=>(n=[])=>{if(n.some(e=>a()(e.verbs)))return e("validation.roleTemplate.roleTemplateRules.missingVerb");if(n.some(e=>{var t,n;return(null===(t=e.resources)||void 0===t?void 0:t.length)&&(null===(n=e.nonResourceURLs)||void 0===n?void 0:n.length)}))return e("validation.roleTemplate.roleTemplateRules.noResourceAndNonResource");if(t===r["u"].ROLE){if(n.some(e=>a()(e.resources)))return e("validation.roleTemplate.roleTemplateRules.missingResource");if(n.some(e=>a()(e.apiGroups)))return e("validation.roleTemplate.roleTemplateRules.missingApiGroup")}else if(n.some(e=>a()(e.resources)&&a()(e.nonResourceURLs)))return e("validation.roleTemplate.roleTemplateRules.missingOneResource")},ee=e=>{},te=t=>{const n=JSON.parse(t),r=n.type;if(!r)return e("validation.required",{key:"Type"});if("s3"===r){if(!n.accessKeyId)return e("validation.required",{key:"accessKeyId"});if(!n.secretAccessKey)return e("validation.required",{key:"secretAccessKey"});if(!n.bucketRegion)return e("validation.required",{key:"bucketRegion"});if(!n.bucketName)return e("validation.required",{key:"bucketName"})}},ne=t=>{const n=["qcow","qcow2","raw","img","iso"];if(!t||""===t)return;const r=t.split("/").pop(),o=r.split(".").pop().toLowerCase();return n.includes(o)?void 0:e("harvester.validation.image.ruleTip")},re=(t={})=>{if(!t[o["e"].IMAGE_NAME])return e("validation.required",{key:e("harvester.image.fileName")})},oe=r=>{const o=null===r||void 0===r?void 0:r.match(/[^a-z0-9.-]/g);return o?e("validation.chars",{key:t,count:o.length,chars:o.map(e=>" "===e?"Space":`"${e}"`).join(", ")}):f(r,[c("label"),h("label"),n("label"),i("label"),D])};return{absolutePath:L,backupTarget:te,betweenLengths:_,betweenValues:m,clusterIp:ee,clusterName:W,containerImage:$,containerImages:M,cronSchedule:j,dnsLabel:U,dnsLabelIanaServiceName:B,dnsLabelRestricted:G,externalName:V,fileRequired:re,groupsAreValid:J,hostname:K,imageUrl:ne,interval:F,isHttps:P,matching:Q,maxLength:y,maxValue:b,minLength:g,minValue:v,noUpperCase:N,portNumber:A,required:D,requiredInt:w,isInteger:x,isPositive:k,isOctal:O,roleTemplateRules:Z,ruleGroups:z,servicePort:Y,subDomain:oe,testRule:q,wildcardHostname:H}}},"770e":function(e,t,n){var r=n("25c2");function o(e){return null==e?"":r(e)}e.exports=o},7745:function(e,t,n){var r=n("24da");function o(e){var t=r(this,e)["delete"](e);return this.size-=t?1:0,t}e.exports=o},7838:function(e,n){e.exports=t},"78bc":function(e,t,n){"use strict";n.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[[e._v(" "+e._s(e.t("promptRemove.attemptingToRemove",{type:e.type}))+" "),t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.resourceNames(e.names,e.plusMore,e.t),expression:"resourceNames(names, plusMore, t)"}]})],e.info?t("div",{staticClass:"text info mb-10 mt-20"},[t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.info,expression:"info"}]})]):e._e(),e.warning?t("div",{staticClass:"text-warning mb-10 mt-20"},[e._v(" "+e._s(e.warning)+" ")]):e._e()],2)},o=[],i=n("060c"),a={name:"GlobalRolePromptRemove",mixins:[i["default"]],props:{value:{type:Array,default:()=>[]},type:{type:String,required:!0}}},s=a,l=(n("f967"),n("d802")),c=Object(l["a"])(s,r,o,!1,null,"effd72b0",null);t["default"]=c.exports},"78dd":function(e,t){function n(e){return function(){return e}}e.exports=n},"79ab":function(e,t,n){var r=n("24da");function o(e){return r(this,e).get(e)}e.exports=o},"79ad":function(e,t,n){"use strict";(function(e){n.d(t,"d",(function(){return l})),n.d(t,"c",(function(){return c})),n.d(t,"b",(function(){return d})),n.d(t,"a",(function(){return p})),n.d(t,"e",(function(){return h}));n("462f"),n("907c"),n("5000");var r=n("bddd"),o=(n("e24b"),n("2cb5")),i=n("d5fb"),a=(n("bcb3"),n("b506")),s=n.n(a);n("0788"),n("1d19"),n("f390"),n("e336");const l="__[[spoofed]]__",c="__[[spoofedapi]]__",u={},d={V2_MONITORING:"v2-monitoring",PROJECT:"project",NO_PROJECT:"no-project",NOT_V1_ISTIO:"not-v1-istio",MULTI_CLUSTER:"multi-cluster",NEUVECTOR_NAMESPACE:"neuvector-namespace",ADMIN:"admin-user",MCM_DISABLED:"mcm-disabled",NOT_STANDALONE_HARVESTER:"not-standalone-harvester"};function p(e,t,n="type-map"){return{product(r){const i={name:t,weight:1,inStore:"cluster",inExplorer:!1,removable:!0,showClusterSwitcher:!0,showNamespaceFilter:!1,public:!0,filterMode:"namespaces",...r};for(const e of["ifHaveGroup","ifHaveType"])i[e]&&(i[e]=v(Object(o["e"])(i[e])));e.commit(n+"/product",i)},basicType(o,i){!Object(r["g"])(o)&&o&&s()(o)&&(o=Object.values(o)),e.commit(n+"/basicType",{product:t,types:o,group:i})},groupBy(t,r){e.commit(n+"/groupBy",{type:t,field:r})},headers(t,r){r.forEach(e=>{e.getValue&&(e.valueProp=e.value,e.value=e.getValue),delete e.getValue}),e.commit(n+"/headers",{type:t,headers:r})},hideBulkActions(t,r){e.commit(n+"/hideBulkActions",{type:t,field:r})},configureType(t,r){r.graphConfig&&(u[t]=r.graphConfig,delete r.graphConfig),e.commit(n+"/configureType",{...r,match:t})},componentForType(t,r){e.commit(n+"/componentForType",{match:t,replace:r})},ignoreType(t){e.commit(n+"/ignoreType",t)},ignoreGroup(t,r){e.commit(n+"/ignoreGroup",{regexOrString:t,cb:r})},weightGroup(t,o,i){Object(r["g"])(t)?e.commit(n+"/weightGroup",{groups:t,weight:o,forBasic:i}):e.commit(n+"/weightGroup",{group:t,weight:o,forBasic:i})},setGroupDefaultType(t,o){Object(r["g"])(t)?e.commit(n+"/setGroupDefaultType",{groups:t,defaultType:o}):e.commit(n+"/setGroupDefaultType",{group:t,defaultType:o})},weightType(t,o,i){Object(r["g"])(t)?e.commit(n+"/weightType",{types:t,weight:o,forBasic:i}):e.commit(n+"/weightType",{type:t,weight:o,forBasic:i})},mapGroup(t,r,o=5,i=!1){e.commit(n+"/mapGroup",{match:t,replace:r,weight:o,continueOnMatch:i})},mapType(t,r,o=5,i=!1){e.commit(n+"/mapType",{match:t,replace:r,weight:o,continueOnMatch:i})},moveType(t,r,o=5,i=!1){e.commit(n+"/moveType",{match:t,group:r,weight:o})},virtualType(r){e.commit(n+"/virtualType",{product:t,obj:r})},spoofedType(r){e.commit(n+"/spoofedType",{product:t,obj:r})}}}let f=!1;async function h(e,t){if(!f){f=!0;for(const t of Object(i["k"])()){const n=await Object(i["l"])(t);null!==n&&void 0!==n&&n.init&&n.init(e)}t.loadProducts()}}function v(e){return e.source}}).call(this,n("07d9"))},"7bad":function(e,t,n){var r=n("24da");function o(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}e.exports=o},"7bdd":function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n("7d15"))},"7c52":function(e,t,n){"use strict";n("4292")},"7d15":function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}e.exports=n},"7f57":function(e){e.exports=JSON.parse('{"hasStylesheet":"true"}')},"7fd6":function(e,t,n){var r=n("1fce"),o=n("4b7a"),i=n("3b54"),a=n("cc5e");function s(e,t){if(null==e)return{};var n=r(a(e),(function(e){return[e]}));return t=o(t),i(e,n,(function(e,n){return t(e,n[0])}))}e.exports=s},8001:function(e,t,n){var r=n("5fe6"),o=n("6290"),i=n("b3e4");function a(e,t,n){var a=e.length;if(a<2)return a?i(e[0]):[];var s=-1,l=Array(a);while(++s[]},type:{type:String,required:!0}}},s=a,l=(n("b349"),n("d802")),c=Object(l["a"])(s,r,o,!1,null,"5050d908",null);t["default"]=c.exports},"872c":function(e,t,n){var r=n("9b9a"),o=n("7745"),i=n("79ab"),a=n("f522"),s=n("7bad");function l(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}e.exports=i},"907a":function(e,t){var n=Object.prototype,r=n.toString;function o(e){return r.call(e)}e.exports=o},"907c":function(e,t,n){"use strict";n.d(t,"z",(function(){return r})),n.d(t,"p",(function(){return o})),n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return a})),n.d(t,"f",(function(){return s})),n.d(t,"e",(function(){return l})),n.d(t,"h",(function(){return c})),n.d(t,"i",(function(){return u})),n.d(t,"j",(function(){return d})),n.d(t,"m",(function(){return p})),n.d(t,"o",(function(){return f})),n.d(t,"n",(function(){return h})),n.d(t,"q",(function(){return v})),n.d(t,"r",(function(){return b})),n.d(t,"s",(function(){return m})),n.d(t,"t",(function(){return g})),n.d(t,"v",(function(){return y})),n.d(t,"w",(function(){return _})),n.d(t,"y",(function(){return w})),n.d(t,"x",(function(){return x})),n.d(t,"A",(function(){return k})),n.d(t,"u",(function(){return O})),n.d(t,"C",(function(){return A})),n.d(t,"D",(function(){return E})),n.d(t,"a",(function(){return I})),n.d(t,"l",(function(){return L})),n.d(t,"k",(function(){return D})),n.d(t,"g",(function(){return N})),n.d(t,"B",(function(){return j})),n.d(t,"d",(function(){return P}));const r={PREFERENCE:"userpreference"},o={APP:"app",AUTH_CONFIG:"authconfig",ETCD_BACKUP:"etcdbackup",CLUSTER:"cluster",CLUSTER_TOKEN:"clusterregistrationtoken",CLUSTER_ROLE_TEMPLATE_BINDING:"clusterRoleTemplateBinding",CLOUD_CREDENTIAL:"cloudcredential",FLEET_WORKSPACES:"fleetworkspace",GLOBAL_ROLE:"globalRole",GLOBAL_ROLE_BINDING:"globalRoleBinding",NODE_POOL:"nodePool",NODE:"node",PRINCIPAL:"principal",PROJECT:"project",PROJECT_ROLE_TEMPLATE_BINDING:"projectroletemplatebinding",SPOOFED:{GROUP_PRINCIPAL:"group.principal"},ROLE_TEMPLATE:"roleTemplate",TOKEN:"token",USER:"user"},i="configmap",a="count",s="event",l="endpoints",c="autoscaling.horizontalpodautoscaler",u="networking.k8s.io.ingress",d="limitrange",p="namespace",f="node",h="networking.k8s.io.networkpolicy",v="pod",b="policy.poddisruptionbudget",m="persistentvolume",g="persistentvolumeclaim",y="resourcequota",_="schema",w="service",x="secret",k="storage.k8s.io.storageclass",O={ROLE:"rbac.authorization.k8s.io.role",CLUSTER_ROLE:"rbac.authorization.k8s.io.clusterrole",ROLE_BINDING:"rbac.authorization.k8s.io.rolebinding",CLUSTER_ROLE_BINDING:"rbac.authorization.k8s.io.clusterrolebinding"},A="workload",E={DEPLOYMENT:"apps.deployment",CRON_JOB:"batch.cronjob",DAEMON_SET:"apps.daemonset",JOB:"batch.job",STATEFUL_SET:"apps.statefulset",REPLICA_SET:"apps.replicaset",REPLICATION_CONTROLLER:"replicationcontroller"},{DAEMON_SET:S,CRON_JOB:T,JOB:R,...C}=E,I={CLUSTER_REPO:"catalog.cattle.io.clusterrepo",OPERATION:"catalog.cattle.io.operation",APP:"catalog.cattle.io.app",REPO:"catalog.cattle.io.repo"},L={ALERTMANAGER:"monitoring.coreos.com.alertmanager",ALERTMANAGERCONFIG:"monitoring.coreos.com.alertmanagerconfig",PODMONITOR:"monitoring.coreos.com.podmonitor",PROMETHEUS:"monitoring.coreos.com.prometheus",PROMETHEUSRULE:"monitoring.coreos.com.prometheusrule",SERVICEMONITOR:"monitoring.coreos.com.servicemonitor",THANOSRULER:"monitoring.coreos.com.thanosruler",SPOOFED:{RECEIVER:"monitoring.coreos.com.receiver",RECEIVER_SPEC:"monitoring.coreos.com.receiver.spec",RECEIVER_EMAIL:"monitoring.coreos.com.receiver.email",RECEIVER_SLACK:"monitoring.coreos.com.receiver.slack",RECEIVER_WEBHOOK:"monitoring.coreos.com.receiver.webhook",RECEIVER_PAGERDUTY:"monitoring.coreos.com.receiver.pagerduty",RECEIVER_OPSGENIE:"monitoring.coreos.com.receiver.opsgenie",RECEIVER_HTTP_CONFIG:"monitoring.coreos.com.receiver.httpconfig",RESPONDER:"monitoring.coreos.com.receiver.responder",ROUTE:"monitoring.coreos.com.route",ROUTE_SPEC:"monitoring.coreos.com.route.spec",ALERTMANAGERCONFIG_RECEIVER_SPEC:"monitoring.coreos.com.v1alpha1.alertmanagerconfig.spec.receivers",ALERTMANAGERCONFIG_ROUTE_SPEC:"monitoring.coreos.com.v1alpha1.alertmanagerconfig.spec.route"}},D={AUTH_CONFIG:"management.cattle.io.authconfig",CATALOG_TEMPLATE:"management.cattle.io.catalogtemplate",CLUSTER:"management.cattle.io.cluster",CLUSTER_ROLE_TEMPLATE_BINDING:"management.cattle.io.clusterroletemplatebinding",FEATURE:"management.cattle.io.feature",KONTAINER_DRIVER:"management.cattle.io.kontainerdriver",MULTI_CLUSTER_APP:"management.cattle.io.multiclusterapp",NODE:"management.cattle.io.node",NODE_DRIVER:"management.cattle.io.nodedriver",NODE_POOL:"management.cattle.io.nodepool",NODE_TEMPLATE:"management.cattle.io.nodetemplate",PROJECT:"management.cattle.io.project",PROJECT_ROLE_TEMPLATE_BINDING:"management.cattle.io.projectroletemplatebinding",ROLE_TEMPLATE:"management.cattle.io.roletemplate",SETTING:"management.cattle.io.setting",USER:"management.cattle.io.user",TOKEN:"management.cattle.io.token",GLOBAL_ROLE:"management.cattle.io.globalrole",GLOBAL_ROLE_BINDING:"management.cattle.io.globalrolebinding",POD_SECURITY_POLICY_TEMPLATE:"management.cattle.io.podsecuritypolicytemplate",PSP_TEMPLATE_BINDING:"management.cattle.io.podsecuritypolicytemplateprojectbinding",PSA:"management.cattle.io.podsecurityadmissionconfigurationtemplate",MANAGED_CHART:"management.cattle.io.managedchart",USER_NOTIFICATION:"management.cattle.io.rancherusernotification",GLOBAL_DNS_PROVIDER:"management.cattle.io.globaldnsprovider",RKE_TEMPLATE:"management.cattle.io.clustertemplate",RKE_TEMPLATE_REVISION:"management.cattle.io.clustertemplaterevision"},N={BUNDLE:"fleet.cattle.io.bundle",BUNDLE_DEPLOYMENT:"fleet.cattle.io.bundledeployment",CLUSTER:"fleet.cattle.io.cluster",CLUSTER_GROUP:"fleet.cattle.io.clustergroup",DASHBOARD:"fleet.cattle.io.dashboard",GIT_REPO:"fleet.cattle.io.gitrepo",WORKSPACE:"management.cattle.io.fleetworkspace",TOKEN:"fleet.cattle.io.clusterregistrationtoken",BUNDLE_NAMESPACE_MAPPING:"fleet.cattle.io.bundlenamespacemapping",GIT_REPO_RESTRICTION:"fleet.cattle.io.gitreporestriction"},j={CLUSTER_MEMBERS:"cluster-members",PROJECT_NAMESPACES:"projects-namespaces",NAMESPACES:"namespaces"},P="fleet-default"},"90cd":function(e,t,n){"use strict";n.d(t,"f",(function(){return v})),n.d(t,"e",(function(){return b})),n.d(t,"c",(function(){return r["a"]})),n.d(t,"i",(function(){return o})),n.d(t,"h",(function(){return i})),n.d(t,"g",(function(){return a})),n.d(t,"d",(function(){return l})),n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return u})),n.d(t,"j",(function(){return d})),n.d(t,"k",(function(){return p}));var r=n("f010");const o="kubearmor",i={CONTROLLER:"kubearmor-controller",DEFAULTS:"kubearmor-defaults"},a={ADMISSION_POLICY:"security.kubearmor.com.kubearmorpolicy"};var s;(function(e){e["ADMISSION_POLICY"]="security.kubearmor.com.kubearmorpolicy"})(s||(s={}));const l={apiVersion:"",kind:"",metadata:{name:"",namespace:""},spec:{tags:[],message:"",action:"Block",severity:1,selector:{matchLabels:{}},process:{matchPaths:[],matchDirectories:[],matchPatterns:[]},file:{action:"Block",matchPaths:[],matchDirectories:[],matchPatterns:[]},network:{matchProtocols:[]}}},c="artifacthub.io/api/v1",u="artifacthub/pkg";var d;(function(e){e["FORM"]="FORM",e["YAML"]="YAML"})(d||(d={}));const p=[{labelKey:"catalog.install.section.chartOptions",value:d.FORM},{labelKey:"catalog.install.section.valuesYaml",value:d.YAML}];var f,h;(function(e){e["INFO"]="info",e["LOW"]="low",e["MEDIUM"]="medium",e["HIGH"]="high",e["CRITICAL"]="critical"})(f||(f={})),function(e){e["SKIP"]="skip",e["PASS"]="pass",e["WARN"]="warn",e["FAIL"]="fail",e["ERROR"]="error"}(h||(h={}));const v="kubearmor",b="kubearmor"},"90dd":function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"g",(function(){return d})),n.d(t,"c",(function(){return p})),n.d(t,"f",(function(){return f})),n.d(t,"d",(function(){return h})),n.d(t,"e",(function(){return v})),n.d(t,"b",(function(){return b}));var r=n("330a"),o=n.n(r),i=n("8cb9"),a=n.n(i),s=n("e24b"),l=n("2cb5");function c(e,t,n,r,o=[]){r=r||{};const{invalidChars:i,forHostname:a=!1,errorKey:s=(a?"hostname":"label"),maxLength:l=63,minLength:c=1,validChars:u="A-Za-z0-9-"}=r;p(e,{validChars:u,invalidChars:i},t,n,o),"-"===e.slice(0,1)&&o.push(n["i18n/t"](`validation.dns.${s}.startHyphen`,{key:t})),"-"===e.slice(-1)&&o.push(n["i18n/t"](`validation.dns.${s}.endHyphen`,{key:t}));const d=c,f=l;return e.lengthf&&o.push(n["i18n/t"](`validation.dns.${s}.tooLongLabel`,{key:t,max:f})),o}function u(e,t,n){const r=`model.${e}.${t}`,o=r+".label";return n["i18n/exists"](r+".label")?n["i18n/t"](o):n["i18n/exists"](r)?n["i18n/t"](r):t.match(/.Id$/)?Object(l["b"])(t.replace(/Id$/,"")):Object(l["b"])(t)}function d(e,t,n,r,i=[]){const{nullable:a,required:l,type:c="",minLength:u,maxLength:d,min:p,max:f}=t,h=e?Object(s["f"])(e,"length"):0;if(!a&&l&&("object"===typeof e&&o()(e)||!e&&0!==e))return i.push(r["i18n/t"]("validation.required",{key:n})),i;if(null===e)return i;const v=0===c.indexOf("array[")?"arrayLength":"stringLength";let b=u,m=d;return b&&m?(hm)&&(b===m?i.push(r["i18n/t"](`validation.${v}.exactly`,{key:n,count:b})):i.push(r["i18n/t"](`validation.${v}.between`,{key:n,min:b,max:m}))):b&&hm&&i.push(r["i18n/t"](`validation.${v}.max`,{key:n,count:m})),b=p,m=f,null!==e&&b&&m?(em)&&(b===m?i.push(r["i18n/t"]("validation.number.exactly",{key:n,val:m})):i.push(r["i18n/t"]("validation.number.between",{key:n,min:b,max:m}))):b&&em&&i.push(r["i18n/t"]("validation.number.max",{key:n,val:m})),i}function p(e,t,n,r,o=[]){const{validChars:i,invalidChars:s}=t,l=[];if(i&&l.push(`[^${t.validChars}]`),s&&l.push(`[${t.invalidChars}]`),l.length){const t=new RegExp(`(${l.join("|")})`,"g");let i=e.match(t);i&&(i=a()(i).map(e=>" "===e?"[space]":e),o.push(r["i18n/t"]("validation.chars",{key:n,count:i.length,chars:i.join(" ")})))}return o}function f(e,t,n,r,o=[]){r=r||{};const{max:i=253,restricted:a=!1}=r;"."===e.slice(0,1)&&o.push(n["i18n/t"]("validation.dns.hostname.startDot",{key:t})),a&&e.length>1&&"."===e.slice(-1)&&o.push(n["i18n/t"]("validation.dns.hostname.endDot",{key:t})),0===e.length&&o.push(n["i18n/t"]("validation.dns.hostname.empty",{key:t})),e.length>i&&o.push(n["i18n/t"]("validation.dns.hostname.tooLong",{key:t,max:i}));const s=e.split(/\./);let l;for(let c=0;c= 2.7.0-0 < 2.9.0-0"}},"scripts":{"dev":"./node_modules/.bin/nuxt dev","nuxt":"./node_modules/.bin/nuxt"},"engines":{"node":">=12"},"devDependencies":{"@vue/cli-plugin-babel":"4.5.18","@vue/cli-service":"4.5.18","@vue/cli-plugin-typescript":"4.5.18"},"browserslist":["> 1%","last 2 versions","not dead"]}')},9243:function(e,t,n){var r=n("405d"),o=n("a9e0"),i=n("212d"),a=n("3819"),s=n("e3e5"),l=n("0e19"),c=n("735f"),u="[object Map]",d="[object Object]",p="[object Promise]",f="[object Set]",h="[object WeakMap]",v="[object DataView]",b=c(r),m=c(o),g=c(i),y=c(a),_=c(s),w=l;(r&&w(new r(new ArrayBuffer(1)))!=v||o&&w(new o)!=u||i&&w(i.resolve())!=p||a&&w(new a)!=f||s&&w(new s)!=h)&&(w=function(e){var t=l(e),n=t==d?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case b:return v;case m:return u;case g:return p;case y:return f;case _:return h}return t}),e.exports=w},"927d":function(e,t,n){var r=n("1ec9"),o=n("2e63"),i=n("73bd"),a=n("b4f4"),s=n("42b6"),l=n("1ab6"),c=n("413d"),u=n("0233"),d=n("0634"),p=n("b650"),f=n("cc5e"),h=n("9243"),v=n("dd09"),b=n("ecda"),m=n("b03d"),g=n("c316"),y=n("dda8"),_=n("35bb"),w=n("b506"),x=n("fe22"),k=n("0652"),O=n("cc7f"),A=1,E=2,S=4,T="[object Arguments]",R="[object Array]",C="[object Boolean]",I="[object Date]",L="[object Error]",D="[object Function]",N="[object GeneratorFunction]",j="[object Map]",P="[object Number]",F="[object Object]",$="[object RegExp]",M="[object Set]",U="[object String]",B="[object Symbol]",G="[object WeakMap]",K="[object ArrayBuffer]",H="[object DataView]",V="[object Float32Array]",q="[object Float64Array]",z="[object Int8Array]",W="[object Int16Array]",Y="[object Int32Array]",X="[object Uint8Array]",J="[object Uint8ClampedArray]",Q="[object Uint16Array]",Z="[object Uint32Array]",ee={};function te(e,t,n,R,C,I){var L,j=t&A,P=t&E,$=t&S;if(n&&(L=C?n(e,R,C,I):n(e)),void 0!==L)return L;if(!w(e))return e;var M=g(e);if(M){if(L=v(e),!j)return c(e,L)}else{var U=h(e),B=U==D||U==N;if(y(e))return l(e,j);if(U==F||U==T||B&&!C){if(L=P||B?{}:m(e),!j)return P?d(e,s(L,e)):u(e,a(L,e))}else{if(!ee[U])return C?e:{};L=b(e,U,j)}}I||(I=new r);var G=I.get(e);if(G)return G;I.set(e,L),x(e)?e.forEach((function(r){L.add(te(r,t,n,r,e,I))})):_(e)&&e.forEach((function(r,o){L.set(o,te(r,t,n,o,e,I))}));var K=$?P?f:p:P?O:k,H=M?void 0:K(e);return o(H||e,(function(r,o){H&&(o=r,r=e[o]),i(L,o,te(r,t,n,o,e,I))})),L}ee[T]=ee[R]=ee[K]=ee[H]=ee[C]=ee[I]=ee[V]=ee[q]=ee[z]=ee[W]=ee[Y]=ee[j]=ee[P]=ee[F]=ee[$]=ee[M]=ee[U]=ee[B]=ee[X]=ee[J]=ee[Q]=ee[Z]=!0,ee[L]=ee[D]=ee[G]=!1,e.exports=te},"930a":function(e,t,n){var r=n("e902"),o=Array.prototype,i=o.splice;function a(e){var t=this.__data__,n=r(t,e);if(n<0)return!1;var o=t.length-1;return n==o?t.pop():i.call(t,n,1),--this.size,!0}e.exports=a},"94a3":function(e,t,n){var r=n("5fe6"),o=n("6290"),i=n("4774"),a=n("35d9"),s=i((function(e,t){return a(e)?r(e,o(t,1,a,!0)):[]}));e.exports=s},"94dd":function(e,t,n){var r=n("1001");function o(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}e.exports=o},"969a":function(e,t,n){var r=n("1ff2");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("b363079e",r,!0,{sourceMap:!1,shadowMode:!1})},"986c":function(e,t,n){var r=n("201b"),o=r.Uint8Array;e.exports=o},"98d3":function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return c})),n.d(t,"c",(function(){return u})),n.d(t,"d",(function(){return d})),n.d(t,"e",(function(){return p}));const r="undefined"===typeof window?"server":window.navigator.platform.toLowerCase(),o="undefined"===typeof window?"server":window.navigator.userAgent,i=(r.includes("linux")||r.includes("unix"),r.includes("mac")),a=(r.includes("win"),i?"metaKey":"ctrlKey"),s=a,l="shiftKey";function c(e){return!!e[a]}function u(e){return!!e[s]}function d(e){return!!e[l]}function p(e){return e.ctrlKey&&2===e.button}o.includes("Gecko/");const f=o.includes("Chrome/");!f&&o.includes("AppleWebKit/"),!f&&o.includes("Safari/"),/Android|webOS|iPhone|iPad|iPod|IEMobile/i.test(o)},"994b":function(e,t,n){var r=n("e697"),o="__lodash_hash_undefined__";function i(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?o:t,this}e.exports=i},"9abb":function(e,t,n){var r=n("dbc0");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("638f7339",r,!0,{sourceMap:!1,shadowMode:!1})},"9b25":function(e,t){function n(e,t){var n=-1,r=null==e?0:e.length;while(++ne.apply(this),t,n||M,r||$,!0)}waitForState(e,t,n){return this.waitForTestFn(()=>(this.state||"").toLowerCase()===e.toLowerCase(),"state="+e,t,n)}waitForTransition(){return this.waitForTestFn(()=>!this.transitioning,"transition completion",void 0,void 0)}waitForAction(e){return this.waitForTestFn(()=>this.hasAction(e),"action="+e,void 0,void 0)}waitForLink(e){return this.waitForTestFn(()=>this.hasLink(e),"link="+e,void 0,void 0)}hasCondition(e){return this.isCondition(e,null)}isCondition(e,t="True"){if(!this.status||!this.status.conditions)return!1;const n=Object(a["e"])(this.status.conditions||[],"type",e);return!!n&&(!t||(n.status||"").toLowerCase()===(""+t).toLowerCase())}waitForCondition(e,t="True",n=M,r=$){return this.waitForTestFn(()=>this.isCondition(e,t),`condition ${e}=${t}`,n,r)}get availableActions(){const e=this._availableActions;let t=null;const n=e.filter(e=>{if(!1===e.enabled)return!1;const n=e.divider,r=!n||n&&!t;return t=n,r});while(n.length&&n[0].divider)n.shift();while(n.length&&n[n.length-1].divider)n.pop();for(let r=1;r{const t={...e},r=t.enabled,o=typeof r;switch(o){case"undefined":t.enabled=!0;break;case"function":Object.defineProperty(t,"enabled",{get:()=>r(this)});break;case"boolean":break;default:console.warn("Unsupported 'enabled' property type for action: "+(e.label||e.labelKey)),delete t.enabled;break}n.push(t)})),n}get canDelete(){return this._canDelete}get _canDelete(){return this.hasLink("remove")&&this.$rootGetters["type-map/optionsFor"](this.type).isRemovable}get canClone(){return!0}get canUpdate(){return this.hasLink("update")&&this.$rootGetters["type-map/optionsFor"](this.type).isEditable}get canCustomEdit(){return this.$rootGetters["type-map/hasCustomEdit"](this.type,this.id)}get canCreate(){var e;return!(this.schema&&(null===(e=this.schema)||void 0===e||!e.collectionMethods.find(e=>"post"===e.toLowerCase())))&&this.$rootGetters["type-map/optionsFor"](this.type).isCreatable}get canViewInApi(){return this.hasLink("self")&&this.$rootGetters["prefs/get"](i["k"])}get canYaml(){return this.hasLink("view")}get canEditYaml(){var e;return(null===(e=this.schema)||void 0===e||null===(e=e.resourceMethods)||void 0===e||!e.find(e=>"blocked-PUT"===e))&&this.canUpdate}hasLink(e){return!!this.linkFor(e)}linkFor(e){return(this.links||{})[e]}followLink(e,t={}){if(t.url||(t.url=(this.links||{})[e]),t.urlSuffix&&(t.url+=t.urlSuffix),!t.url)throw new Error(`Unknown link ${e} on ${this.type} ${this.id}`);return this.$dispatch("request",{opt:t,type:this.type})}hasAction(e){return!!this.actionLinkFor(e)}actionLinkFor(e){return(this.actions||this.actionLinks||{})[e]}doAction(e,t,n={}){return this.$dispatch("resourceAction",{resource:this,actionName:e,body:t,opt:n})}async doActionGrowl(e,t,n={}){try{await this.$dispatch("resourceAction",{resource:this,actionName:e,body:t,opt:n})}catch(r){this.$dispatch("growl/fromError",{title:this.$rootGetters["i18n/t"]("generic.notification.title.error"),err:r.data||r},{root:!0})}}patch(e,t={},n=!1,r=!1){if(t.url||(t.url=this.linkFor("view")||this.linkFor("self")),t.method="patch",t.headers=t.headers||{},!t.headers["content-type"]){const e=n?"application/strategic-merge-patch+json":"application/json-patch+json";t.headers["content-type"]=e}t.data=e;const o=this.$dispatch("request",{opt:t,type:this.type});return r?o.catch(e=>{const t=this.t("resource.errors.update",{name:this.name});console.error(t,e),this.$dispatch("growl/error",{title:t,message:null===e||void 0===e?void 0:e.message,timeout:5e3},{root:!0})}):o}save(){return this._save(...arguments)}processSaveResponse(e){}async _save(e={}){var t;delete this.__rehydrate,delete this.__clone;const n=!this.id,r=await this.validationErrors(this,e.ignoreFields);if(!w()(r))return Promise.reject(r);if(null!==(t=this.metadata)&&void 0!==t&&t.resourceVersion&&(this.metadata.resourceVersion=""+this.metadata.resourceVersion),!e.url)if(n){const t=this.$getters["schemaFor"](this.type);let n=t.linkFor("collection");t.attributes&&t.attributes.namespaced&&this.metadata&&this.metadata.namespace&&(n+="/"+this.metadata.namespace),e.url=n}else e.url=this.linkFor("update")||this.linkFor("self");if(e.method||(e.method=n?"post":"put"),e.headers||(e.headers={}),e.headers["content-type"]||(e.headers["content-type"]="application/json"),e.headers["accept"]||(e.headers["accept"]="application/json"),e.data=this.toSave()||{...this},null!==e&&void 0!==e&&e.data._type&&(e.data.type=e.data._type),null!==e&&void 0!==e&&e.data._name&&(e.data.name=e.data._name),null!==e&&void 0!==e&&e.data._labels&&(e.data.labels=e.data._labels),null!==e&&void 0!==e&&e.data._annotations&&(e.data.annotations=e.data._annotations),null!==e&&void 0!==e&&e.replace&&"put"===e.method){const t=e.url.includes("?")?"&":"?";e.url=`${e.url}${t}_replace=true`,delete e.replace}try{const t=await this.$dispatch("request",{opt:e,type:this.type});this.processSaveResponse(t),t&&"Table"!==t.kind&&await this.$dispatch("load",{data:t,existing:n?this:void 0})}catch(o){return this.type&&this.id&&409===(null===o||void 0===o?void 0:o._status)&&await this.$dispatch("find",{type:this.type,id:this.id,opt:{force:!0}}),Promise.reject(o)}return this}remove(){return this._remove(...arguments)}async _remove(e={}){e.url||(e.url=this.linkFor("self")),e.method="delete";const t=await this.$dispatch("request",{opt:e,type:this.type});204===(null===t||void 0===t?void 0:t._status)&&await this.$dispatch("ws.resource.remove",{data:this})}currentRoute(){return e.server?this.$rootState.$route:window.$nuxt.$route}currentRouter(){return e.server?this.$rootState.$router:window.$nuxt.$router}get listLocation(){return{name:"c-cluster-product-resource",params:{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"],resource:this.type}}}get _detailLocation(){var e,t,n;const r=this.$getters["schemaFor"](this.type),o=null===(e=this.id)||void 0===e?void 0:e.replace(/.*\//,"");return{name:`c-cluster-product-resource${null!==r&&void 0!==r&&null!==(t=r.attributes)&&void 0!==t&&t.namespaced?"-namespace":""}-id`,params:{product:this.$rootGetters["productId"],cluster:this.$rootGetters["clusterId"],resource:this.type,namespace:null===(n=this.metadata)||void 0===n?void 0:n.namespace,id:o}}}get detailLocation(){return this._detailLocation}goToDetail(){this.currentRouter().push(this.detailLocation)}goToClone(e={}){const t=this.detailLocation;t.query={...t.query,[o["d"]]:o["l"],[o["a"]]:o["s"],...e},this.currentRouter().push(t)}goToEdit(e={}){const t=this.detailLocation;t.query={...t.query,[o["d"]]:o["p"],[o["a"]]:o["s"],...e},this.currentRouter().push(t)}goToViewConfig(e={}){const t=this.detailLocation;t.query={...t.query,[o["d"]]:o["t"],[o["a"]]:o["m"],...e},this.currentRouter().push(t)}goToEditYaml(){const e=this.detailLocation;e.query={...e.query,[o["d"]]:o["p"],[o["a"]]:o["u"]},this.currentRouter().push(e)}goToViewYaml(){const e=this.detailLocation;e.query={...e.query,[o["d"]]:o["t"],[o["a"]]:o["u"]},this.currentRouter().push(e)}cloneYaml(e={}){const t=this.detailLocation;t.query={...t.query,[o["d"]]:o["l"],[o["a"]]:o["u"],...e},this.currentRouter().push(t)}async download(){const e=await this.followLink("view",{headers:{accept:"application/yaml"}}),t=await this.$dispatch("cleanForDownload",e.data);Object(l["a"])(this.nameDisplay+".yaml",t,"application/yaml")}async downloadBulk(e){const t={},n=[];for(const o of e){let e=o.nameDisplay+".yaml",t=2;while(n.includes(e))e=`${o.nameDisplay}_${t++}.yaml`;n.push(e)}await Object(u["c"])(e,10,(e,r)=>e.followLink("view",{headers:{accept:"application/yaml"}}).then(async e=>{const o=e.data||e,i=await this.$dispatch("cleanForDownload",o);t["resources/"+n[r]]=i}));const r=await Object(l["b"])(t);Object(l["a"])("resources.zip",r,"application/zip")}viewInApi(){window.open(this.links.self,"_blank")}promptRemove(e){e||(e=this),this.$dispatch("promptRemove",e)}get confirmRemove(){return!1}applyDefaults(){}get urlFromAttrs(){const e=this.$getters["schemaFor"](this.type),{metadata:{namespace:t="default"}}=this;let n=e.links.collection;const r=null===e||void 0===e?void 0:e.attributes;if(!r)throw new Error("Attributes must be present on the schema");const{group:o,resource:i}=r;return n=`${n.slice(0,n.indexOf("/v1"))}/apis/${o}/namespaces/${t}/${i}`,n}cleanYaml(e,t="edit"){try{const n=m.a.load(e);"edit"!==t&&this.$dispatch("cleanForNew",n),n._type&&(n.type=n._type,delete n._type);const r=m.a.dump(n,{skipInvalid:!0});return r}catch(n){return null}}cleanForNew(){this.$dispatch("cleanForNew",this)}cleanForDiff(){this.$dispatch("cleanForDiff",this.toJSON())}yamlForSave(e){try{const t=m.a.load(e);if(t)return this._type&&(t._type=t.type),m.a.dump(t)}catch(t){return null}}async saveYaml(e){await this._saveYaml(e)}async _saveYaml(e){var t;const n=m.a.load(e);if(null!==(t=this.schema)&&void 0!==t&&null!==(t=t.attributes)&&void 0!==t&&t.namespaced&&!n.metadata.namespace){const e=this.$rootGetters["i18n/t"]("resourceYaml.errors.namespaceRequired");throw e}let r;const o=!this.id,i={"content-type":"application/yaml",accept:"application/json"};r=o?await this.schema.followLink("collection",{method:"POST",headers:i,data:e}):await this.followLink("update",{method:"PUT",headers:i,data:e}),await this.$dispatch("load",{data:r,existing:o?this:void 0}),this.isSpoofed&&await this.$dispatch("cluster/findAll",{type:this.type,opt:{force:!0}},{root:!0})}get modelValidationRules(){const e=[],t=null===this||void 0===this?void 0:this.customValidationRules.filter(e=>!!e.validators||!!e.required).map(e=>{const t=Object(h["a"])(this.t,{displayKey:null!==e&&void 0!==e&&e.translationKey?this.t(e.translationKey):"Value"});return{path:e.path,rules:[...e.validators||[],...e.required?["required"]:[],...["dnsLabel","dnsLabelRestricted","hostname"].includes(e.type)?[e.type]:[]].map(e=>{if(e.includes(":")){const[n,r]=e.split(":");return t[n](r)}return t[e]}).filter(e=>!!e)}}).filter(e=>e.rules.length>0);return e.push(...t),e}customValidationErrors(e,t=[]){const n=[];let{customValidationRules:r}=this;return w()(r)||(k()(r)&&(r=r()),r.filter(e=>!t.includes(e.path)).forEach(t=>{const{path:r,requiredIf:o,validators:i=[],type:a}=t;let l=Object(c["f"])(e,r);const u=y()(i||[]);let d=r;if(t.translationKey&&this.$rootGetters["i18n/exists"](t.translationKey)&&(d=this.t(t.translationKey)),A()(l)&&(l=l.trim()),o){const t=Object(c["f"])(e,o);!w()(t)&&w()(l)&&0!==l&&n.push(this.t("validation.required",{key:d}))}if(Object(f["g"])(l,t,d,this.$rootGetters,n),Object(f["c"])(l,t,d,this.$rootGetters,n),!w()(l)&&N.includes(a)){const t=(l||"").toLowerCase();t!==l&&(l=t,R.a.set(e,r,l)),n.push(...Object(f["e"])(l,a,d,this.$rootGetters,n))}u.forEach(t=>{const r=t.split(":"),o=r.slice(0,1),i=r.slice(1)||null,a=Object.prototype.hasOwnProperty.call(s["a"],o);if(!w()(o)&&a)s["a"][o](l,this.$rootGetters,n,i,d,e);else if(!w()(o)&&!a){var c;const t=null===(c=this.$rootState.$plugin)||void 0===c?void 0:c.getValidator(o);t?t(l,this.$rootGetters,n,i,d,e):console.warn(this.t("validation.custom.missing",{validatorName:o}))}})})),n}validationErrors(e=this,t){const n=[],{type:r,schema:o}=e,i=Object(C["b"])(r);if(!r)return console.warn(this.t("validation.noType"),e),n;if(!o)return n;const a=o.resourceFields||{},s=Object.keys(a);let l,u,d,h;for(let b=0;b0)r.push(this.t("validation.required",{key:h})),n.push(...r);else{if("id"!==u&&!w()(d)&&N.includes(o)){const t=(d||"").toLowerCase();t!==d&&(d=t,R.a.set(e,u,d)),r.push(...Object(f["e"])(d,o,h,this.$rootGetters,r))}n.push(...r)}}return S()([...n,...this.customValidationErrors(e)])}get ownersByType(){var e;const t=(null===(e=this.metadata)||void 0===e?void 0:e.ownerReferences)||[],n={};return t.forEach(e=>{n[e.kind]?n[e.kind].push(e):n[e.kind]=[e]}),n}get owners(){const e=[];for(const t in this.ownersByType){const n=this.$rootGetters["cluster/schema"](t);if(n){const r=n.id,o=this.$rootGetters["cluster/all"](r);this.ownersByType[t].forEach((t,n)=>{const r=o.find(e=>{var n;return(null===e||void 0===e||null===(n=e.metadata)||void 0===n?void 0:n.uid)===t.uid});r&&e.push(r)})}}return e}get details(){return this._details}get _details(){var e;const t=[];return(null===(e=this.owners)||void 0===e?void 0:e.length)>0&&t.push({label:this.t("resourceDetail.detailTop.ownerReferences",{count:this.owners.length}),formatter:"ListLinkDetail",content:this.owners.map(e=>({key:e.id,row:e,col:{},value:e.metadata.name}))}),Object(c["f"])(this,"metadata.deletionTimestamp")&&t.push({label:this.t("resourceDetail.detailTop.deleted"),formatter:"LiveDate",formatterOpts:{addSuffix:!0},content:Object(c["f"])(this,"metadata.deletionTimestamp")}),t}get t(){return this.$rootGetters["i18n/t"]}findOwners(){return this._getRelationship("owner","from")}getOwners(){return this._getRelationship("owner","from")}findOwned(){return this._findRelationship("owner","to")}_relationshipsFor(e,t){var n;const r={selectors:[],ids:[]};if(null===(n=this.metadata)||void 0===n||null===(n=n.relationships)||void 0===n||!n.length)return r;for(const o of this.metadata.relationships)if(("any"===e||o.rel===e)&&o[t+"Type"])if(o.selector)Object(a["b"])(r.selectors,{type:o.toType,namespace:o.toNamespace,selector:o.selector});else{const e=o[t+"Type"];let n=o[t+"Namespace"],i=o[t+"Id"];if(!n&&i.includes("/")){const e=i.indexOf("/");n=i.substr(0,e),i=i.substr(e+1)}const s=(n?n+"/":"")+i;Object(a["a"])(r.ids,{type:e,namespace:n,name:i,id:s})}return r}_getRelationship(e,t){var n;const r=this._relationshipsFor(e,t);return null!==(n=r.selectors)&&void 0!==n&&n.length&&console.warn("Sync request for a relationship that is a selector"),r.ids||[]}async _findRelationship(e,t){const{selectors:n,ids:r}=this._relationshipsFor(e,t),o=[];for(const i of n){const e=await this.$dispatch("findMatching",i);Object(a["b"])(o,e.data)}for(const i of r){const{type:e,id:t}=i;let n=this.$getters["byId"](e,t);if(!n)try{n=await this.$dispatch("find",{type:e,id:t})}catch{}n&&Object(a["a"])(o,n)}return o}get shortId(){const e=this.id.split("/");return e.length>1?e[1]:e[0]}toJSON(){const e={},t=Object.keys(this);for(const r of t){var n;null!==(n=this[r])&&void 0!==n&&n.toJSON?e[r]=this[r].toJSON():e[r]=Object(c["e"])(this[r])}return e}toSave(){}get creationTimestamp(){var e;return null===(e=this.metadata)||void 0===e?void 0:e.creationTimestamp}}}).call(this,n("07d9"))},"9c38":function(e,t,n){var r=n("0e19"),o=n("c316"),i=n("b4b4"),a="[object String]";function s(e){return"string"==typeof e||!o(e)&&i(e)&&r(e)==a}e.exports=s},"9ce4":function(e,t,n){"use strict";(function(e){ +/*! + * vuex v3.6.2 + * (c) 2021 Evan You + * @license MIT + */ +function r(e){var t=Number(e.version.split(".")[0]);if(t>=2)e.mixin({beforeCreate:r});else{var n=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[r].concat(e.init):r,n.call(this,e)}}function r(){var e=this.$options;e.store?this.$store="function"===typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}n.d(t,"a",(function(){return L})),n.d(t,"b",(function(){return I}));var o="undefined"!==typeof window?window:"undefined"!==typeof e?e:{},i=o.__VUE_DEVTOOLS_GLOBAL_HOOK__;function a(e){i&&(e._devtoolHook=i,i.emit("vuex:init",e),i.on("vuex:travel-to-state",(function(t){e.replaceState(t)})),e.subscribe((function(e,t){i.emit("vuex:mutation",e,t)}),{prepend:!0}),e.subscribeAction((function(e,t){i.emit("vuex:action",e,t)}),{prepend:!0}))}function s(e,t){Object.keys(e).forEach((function(n){return t(e[n],n)}))}function l(e){return null!==e&&"object"===typeof e}function c(e){return e&&"function"===typeof e.then}function u(e,t){return function(){return e(t)}}var d=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var n=e.state;this.state=("function"===typeof n?n():n)||{}},p={namespaced:{configurable:!0}};p.namespaced.get=function(){return!!this._rawModule.namespaced},d.prototype.addChild=function(e,t){this._children[e]=t},d.prototype.removeChild=function(e){delete this._children[e]},d.prototype.getChild=function(e){return this._children[e]},d.prototype.hasChild=function(e){return e in this._children},d.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},d.prototype.forEachChild=function(e){s(this._children,e)},d.prototype.forEachGetter=function(e){this._rawModule.getters&&s(this._rawModule.getters,e)},d.prototype.forEachAction=function(e){this._rawModule.actions&&s(this._rawModule.actions,e)},d.prototype.forEachMutation=function(e){this._rawModule.mutations&&s(this._rawModule.mutations,e)},Object.defineProperties(d.prototype,p);var f=function(e){this.register([],e,!1)};function h(e,t,n){if(t.update(n),n.modules)for(var r in n.modules){if(!t.getChild(r))return void 0;h(e.concat(r),t.getChild(r),n.modules[r])}}f.prototype.get=function(e){return e.reduce((function(e,t){return e.getChild(t)}),this.root)},f.prototype.getNamespace=function(e){var t=this.root;return e.reduce((function(e,n){return t=t.getChild(n),e+(t.namespaced?n+"/":"")}),"")},f.prototype.update=function(e){h([],this.root,e)},f.prototype.register=function(e,t,n){var r=this;void 0===n&&(n=!0);var o=new d(t,n);if(0===e.length)this.root=o;else{var i=this.get(e.slice(0,-1));i.addChild(e[e.length-1],o)}t.modules&&s(t.modules,(function(t,o){r.register(e.concat(o),t,n)}))},f.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1],r=t.getChild(n);r&&r.runtime&&t.removeChild(n)},f.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1];return!!t&&t.hasChild(n)};var v;var b=function(e){var t=this;void 0===e&&(e={}),!v&&"undefined"!==typeof window&&window.Vue&&C(window.Vue);var n=e.plugins;void 0===n&&(n=[]);var r=e.strict;void 0===r&&(r=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new f(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new v,this._makeLocalGettersCache=Object.create(null);var o=this,i=this,s=i.dispatch,l=i.commit;this.dispatch=function(e,t){return s.call(o,e,t)},this.commit=function(e,t,n){return l.call(o,e,t,n)},this.strict=r;var c=this._modules.root.state;w(this,c,[],this._modules.root),_(this,c),n.forEach((function(e){return e(t)}));var u=void 0!==e.devtools?e.devtools:v.config.devtools;u&&a(this)},m={state:{configurable:!0}};function g(e,t,n){return t.indexOf(e)<0&&(n&&n.prepend?t.unshift(e):t.push(e)),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function y(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var n=e.state;w(e,n,[],e._modules.root,!0),_(e,n,t)}function _(e,t,n){var r=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var o=e._wrappedGetters,i={};s(o,(function(t,n){i[n]=u(t,e),Object.defineProperty(e.getters,n,{get:function(){return e._vm[n]},enumerable:!0})}));var a=v.config.silent;v.config.silent=!0,e._vm=new v({data:{$$state:t},computed:i}),v.config.silent=a,e.strict&&S(e),r&&(n&&e._withCommit((function(){r._data.$$state=null})),v.nextTick((function(){return r.$destroy()})))}function w(e,t,n,r,o){var i=!n.length,a=e._modules.getNamespace(n);if(r.namespaced&&(e._modulesNamespaceMap[a],e._modulesNamespaceMap[a]=r),!i&&!o){var s=T(t,n.slice(0,-1)),l=n[n.length-1];e._withCommit((function(){v.set(s,l,r.state)}))}var c=r.context=x(e,a,n);r.forEachMutation((function(t,n){var r=a+n;O(e,r,t,c)})),r.forEachAction((function(t,n){var r=t.root?n:a+n,o=t.handler||t;A(e,r,o,c)})),r.forEachGetter((function(t,n){var r=a+n;E(e,r,t,c)})),r.forEachChild((function(r,i){w(e,t,n.concat(i),r,o)}))}function x(e,t,n){var r=""===t,o={dispatch:r?e.dispatch:function(n,r,o){var i=R(n,r,o),a=i.payload,s=i.options,l=i.type;return s&&s.root||(l=t+l),e.dispatch(l,a)},commit:r?e.commit:function(n,r,o){var i=R(n,r,o),a=i.payload,s=i.options,l=i.type;s&&s.root||(l=t+l),e.commit(l,a,s)}};return Object.defineProperties(o,{getters:{get:r?function(){return e.getters}:function(){return k(e,t)}},state:{get:function(){return T(e.state,n)}}}),o}function k(e,t){if(!e._makeLocalGettersCache[t]){var n={},r=t.length;Object.keys(e.getters).forEach((function(o){if(o.slice(0,r)===t){var i=o.slice(r);Object.defineProperty(n,i,{get:function(){return e.getters[o]},enumerable:!0})}})),e._makeLocalGettersCache[t]=n}return e._makeLocalGettersCache[t]}function O(e,t,n,r){var o=e._mutations[t]||(e._mutations[t]=[]);o.push((function(t){n.call(e,r.state,t)}))}function A(e,t,n,r){var o=e._actions[t]||(e._actions[t]=[]);o.push((function(t){var o=n.call(e,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:e.getters,rootState:e.state},t);return c(o)||(o=Promise.resolve(o)),e._devtoolHook?o.catch((function(t){throw e._devtoolHook.emit("vuex:error",t),t})):o}))}function E(e,t,n,r){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return n(r.state,r.getters,e.state,e.getters)})}function S(e){e._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}function T(e,t){return t.reduce((function(e,t){return e[t]}),e)}function R(e,t,n){return l(e)&&e.type&&(n=t,t=e,e=e.type),{type:e,payload:t,options:n}}function C(e){v&&e===v||(v=e,r(v))}m.state.get=function(){return this._vm._data.$$state},m.state.set=function(e){0},b.prototype.commit=function(e,t,n){var r=this,o=R(e,t,n),i=o.type,a=o.payload,s=(o.options,{type:i,payload:a}),l=this._mutations[i];l&&(this._withCommit((function(){l.forEach((function(e){e(a)}))})),this._subscribers.slice().forEach((function(e){return e(s,r.state)})))},b.prototype.dispatch=function(e,t){var n=this,r=R(e,t),o=r.type,i=r.payload,a={type:o,payload:i},s=this._actions[o];if(s){try{this._actionSubscribers.slice().filter((function(e){return e.before})).forEach((function(e){return e.before(a,n.state)}))}catch(c){0}var l=s.length>1?Promise.all(s.map((function(e){return e(i)}))):s[0](i);return new Promise((function(e,t){l.then((function(t){try{n._actionSubscribers.filter((function(e){return e.after})).forEach((function(e){return e.after(a,n.state)}))}catch(c){0}e(t)}),(function(e){try{n._actionSubscribers.filter((function(e){return e.error})).forEach((function(t){return t.error(a,n.state,e)}))}catch(c){0}t(e)}))}))}},b.prototype.subscribe=function(e,t){return g(e,this._subscribers,t)},b.prototype.subscribeAction=function(e,t){var n="function"===typeof e?{before:e}:e;return g(n,this._actionSubscribers,t)},b.prototype.watch=function(e,t,n){var r=this;return this._watcherVM.$watch((function(){return e(r.state,r.getters)}),t,n)},b.prototype.replaceState=function(e){var t=this;this._withCommit((function(){t._vm._data.$$state=e}))},b.prototype.registerModule=function(e,t,n){void 0===n&&(n={}),"string"===typeof e&&(e=[e]),this._modules.register(e,t),w(this,this.state,e,this._modules.get(e),n.preserveState),_(this,this.state)},b.prototype.unregisterModule=function(e){var t=this;"string"===typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit((function(){var n=T(t.state,e.slice(0,-1));v.delete(n,e[e.length-1])})),y(this)},b.prototype.hasModule=function(e){return"string"===typeof e&&(e=[e]),this._modules.isRegistered(e)},b.prototype.hotUpdate=function(e){this._modules.update(e),y(this,!0)},b.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(b.prototype,m);var I=j((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,o=t.val;n[r]=function(){var t=this.$store.state,n=this.$store.getters;if(e){var r=P(this.$store,"mapState",e);if(!r)return;t=r.context.state,n=r.context.getters}return"function"===typeof o?o.call(this,t,n):t[o]},n[r].vuex=!0})),n})),L=(j((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,o=t.val;n[r]=function(){var t=[],n=arguments.length;while(n--)t[n]=arguments[n];var r=this.$store.commit;if(e){var i=P(this.$store,"mapMutations",e);if(!i)return;r=i.context.commit}return"function"===typeof o?o.apply(this,[r].concat(t)):r.apply(this.$store,[o].concat(t))}})),n})),j((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,o=t.val;o=e+o,n[r]=function(){if(!e||P(this.$store,"mapGetters",e))return this.$store.getters[o]},n[r].vuex=!0})),n})));j((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,o=t.val;n[r]=function(){var t=[],n=arguments.length;while(n--)t[n]=arguments[n];var r=this.$store.dispatch;if(e){var i=P(this.$store,"mapActions",e);if(!i)return;r=i.context.dispatch}return"function"===typeof o?o.apply(this,[r].concat(t)):r.apply(this.$store,[o].concat(t))}})),n}));function D(e){return N(e)?Array.isArray(e)?e.map((function(e){return{key:e,val:e}})):Object.keys(e).map((function(t){return{key:t,val:e[t]}})):[]}function N(e){return Array.isArray(e)||l(e)}function j(e){return function(t,n){return"string"!==typeof t?(n=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,n)}}function P(e,t,n){var r=e._modulesNamespaceMap[n];return r}}).call(this,n("7d15"))},"9d57":function(e,t,n){var r=n("2db8");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("1ae5fe58",r,!0,{sourceMap:!1,shadowMode:!1})},"9dfc":function(e,t,n){var r=n("5b4b"),o=n("4774"),i=n("8001"),a=n("35d9"),s=o((function(e){return i(r(e,a))}));e.exports=s},"9e74":function(e,t,n){var r=n("3584");function o(e,t){return r(e,t)}e.exports=o},"9e79":function(e,t){function n(){}e.exports=n},"9ec3":function(e,t,n){(function(e,r){var o; +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */(function(){var i,a="4.17.21",s=200,l="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",u="Invalid `variable` option passed into `_.template`",d="__lodash_hash_undefined__",p=500,f="__lodash_placeholder__",h=1,v=2,b=4,m=1,g=2,y=1,_=2,w=4,x=8,k=16,O=32,A=64,E=128,S=256,T=512,R=30,C="...",I=800,L=16,D=1,N=2,j=3,P=1/0,F=9007199254740991,$=17976931348623157e292,M=NaN,U=4294967295,B=U-1,G=U>>>1,K=[["ary",E],["bind",y],["bindKey",_],["curry",x],["curryRight",k],["flip",T],["partial",O],["partialRight",A],["rearg",S]],H="[object Arguments]",V="[object Array]",q="[object AsyncFunction]",z="[object Boolean]",W="[object Date]",Y="[object DOMException]",X="[object Error]",J="[object Function]",Q="[object GeneratorFunction]",Z="[object Map]",ee="[object Number]",te="[object Null]",ne="[object Object]",re="[object Promise]",oe="[object Proxy]",ie="[object RegExp]",ae="[object Set]",se="[object String]",le="[object Symbol]",ce="[object Undefined]",ue="[object WeakMap]",de="[object WeakSet]",pe="[object ArrayBuffer]",fe="[object DataView]",he="[object Float32Array]",ve="[object Float64Array]",be="[object Int8Array]",me="[object Int16Array]",ge="[object Int32Array]",ye="[object Uint8Array]",_e="[object Uint8ClampedArray]",we="[object Uint16Array]",xe="[object Uint32Array]",ke=/\b__p \+= '';/g,Oe=/\b(__p \+=) '' \+/g,Ae=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ee=/&(?:amp|lt|gt|quot|#39);/g,Se=/[&<>"']/g,Te=RegExp(Ee.source),Re=RegExp(Se.source),Ce=/<%-([\s\S]+?)%>/g,Ie=/<%([\s\S]+?)%>/g,Le=/<%=([\s\S]+?)%>/g,De=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ne=/^\w*$/,je=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pe=/[\\^$.*+?()[\]{}|]/g,Fe=RegExp(Pe.source),$e=/^\s+/,Me=/\s/,Ue=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Be=/\{\n\/\* \[wrapped with (.+)\] \*/,Ge=/,? & /,Ke=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,He=/[()=,{}\[\]\/\s]/,Ve=/\\(\\)?/g,qe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ze=/\w*$/,We=/^[-+]0x[0-9a-f]+$/i,Ye=/^0b[01]+$/i,Xe=/^\[object .+?Constructor\]$/,Je=/^0o[0-7]+$/i,Qe=/^(?:0|[1-9]\d*)$/,Ze=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,et=/($^)/,tt=/['\n\r\u2028\u2029\\]/g,nt="\\ud800-\\udfff",rt="\\u0300-\\u036f",ot="\\ufe20-\\ufe2f",it="\\u20d0-\\u20ff",at=rt+ot+it,st="\\u2700-\\u27bf",lt="a-z\\xdf-\\xf6\\xf8-\\xff",ct="\\xac\\xb1\\xd7\\xf7",ut="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",dt="\\u2000-\\u206f",pt=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ft="A-Z\\xc0-\\xd6\\xd8-\\xde",ht="\\ufe0e\\ufe0f",vt=ct+ut+dt+pt,bt="['’]",mt="["+nt+"]",gt="["+vt+"]",yt="["+at+"]",_t="\\d+",wt="["+st+"]",xt="["+lt+"]",kt="[^"+nt+vt+_t+st+lt+ft+"]",Ot="\\ud83c[\\udffb-\\udfff]",At="(?:"+yt+"|"+Ot+")",Et="[^"+nt+"]",St="(?:\\ud83c[\\udde6-\\uddff]){2}",Tt="[\\ud800-\\udbff][\\udc00-\\udfff]",Rt="["+ft+"]",Ct="\\u200d",It="(?:"+xt+"|"+kt+")",Lt="(?:"+Rt+"|"+kt+")",Dt="(?:"+bt+"(?:d|ll|m|re|s|t|ve))?",Nt="(?:"+bt+"(?:D|LL|M|RE|S|T|VE))?",jt=At+"?",Pt="["+ht+"]?",Ft="(?:"+Ct+"(?:"+[Et,St,Tt].join("|")+")"+Pt+jt+")*",$t="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Mt="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Ut=Pt+jt+Ft,Bt="(?:"+[wt,St,Tt].join("|")+")"+Ut,Gt="(?:"+[Et+yt+"?",yt,St,Tt,mt].join("|")+")",Kt=RegExp(bt,"g"),Ht=RegExp(yt,"g"),Vt=RegExp(Ot+"(?="+Ot+")|"+Gt+Ut,"g"),qt=RegExp([Rt+"?"+xt+"+"+Dt+"(?="+[gt,Rt,"$"].join("|")+")",Lt+"+"+Nt+"(?="+[gt,Rt+It,"$"].join("|")+")",Rt+"?"+It+"+"+Dt,Rt+"+"+Nt,Mt,$t,_t,Bt].join("|"),"g"),zt=RegExp("["+Ct+nt+at+ht+"]"),Wt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Yt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Xt=-1,Jt={};Jt[he]=Jt[ve]=Jt[be]=Jt[me]=Jt[ge]=Jt[ye]=Jt[_e]=Jt[we]=Jt[xe]=!0,Jt[H]=Jt[V]=Jt[pe]=Jt[z]=Jt[fe]=Jt[W]=Jt[X]=Jt[J]=Jt[Z]=Jt[ee]=Jt[ne]=Jt[ie]=Jt[ae]=Jt[se]=Jt[ue]=!1;var Qt={};Qt[H]=Qt[V]=Qt[pe]=Qt[fe]=Qt[z]=Qt[W]=Qt[he]=Qt[ve]=Qt[be]=Qt[me]=Qt[ge]=Qt[Z]=Qt[ee]=Qt[ne]=Qt[ie]=Qt[ae]=Qt[se]=Qt[le]=Qt[ye]=Qt[_e]=Qt[we]=Qt[xe]=!0,Qt[X]=Qt[J]=Qt[ue]=!1;var Zt={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},en={"&":"&","<":"<",">":">",'"':""","'":"'"},tn={"&":"&","<":"<",">":">",""":'"',"'":"'"},nn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},rn=parseFloat,on=parseInt,an="object"==typeof e&&e&&e.Object===Object&&e,sn="object"==typeof self&&self&&self.Object===Object&&self,ln=an||sn||Function("return this")(),cn=t&&!t.nodeType&&t,un=cn&&"object"==typeof r&&r&&!r.nodeType&&r,dn=un&&un.exports===cn,pn=dn&&an.process,fn=function(){try{var e=un&&un.require&&un.require("util").types;return e||pn&&pn.binding&&pn.binding("util")}catch(t){}}(),hn=fn&&fn.isArrayBuffer,vn=fn&&fn.isDate,bn=fn&&fn.isMap,mn=fn&&fn.isRegExp,gn=fn&&fn.isSet,yn=fn&&fn.isTypedArray;function _n(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function wn(e,t,n,r){var o=-1,i=null==e?0:e.length;while(++o-1}function Sn(e,t,n){var r=-1,o=null==e?0:e.length;while(++r-1);return n}function er(e,t){var n=e.length;while(n--&&$n(t,e[n],0)>-1);return n}function tr(e,t){var n=e.length,r=0;while(n--)e[n]===t&&++r;return r}var nr=Kn(Zt),rr=Kn(en);function or(e){return"\\"+nn[e]}function ir(e,t){return null==e?i:e[t]}function ar(e){return zt.test(e)}function sr(e){return Wt.test(e)}function lr(e){var t,n=[];while(!(t=e.next()).done)n.push(t.value);return n}function cr(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function ur(e,t){return function(n){return e(t(n))}}function dr(e,t){var n=-1,r=e.length,o=0,i=[];while(++n-1}function Gr(e,t){var n=this.__data__,r=uo(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Kr(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t=t?e:t)),e}function go(e,t,n,r,o,a){var s,l=t&h,c=t&v,u=t&b;if(n&&(s=o?n(e,r,o,a):n(e)),s!==i)return s;if(!Ou(e))return e;var d=lu(e);if(d){if(s=ts(e),!l)return oa(e,s)}else{var p=Ja(e),f=p==J||p==Q;if(fu(e))return Wi(e,l);if(p==ne||p==H||f&&!o){if(s=c||f?{}:ns(e),!l)return c?sa(e,ho(s,e)):aa(e,fo(s,e))}else{if(!Qt[p])return o?e:{};s=rs(e,p,l)}}a||(a=new Qr);var m=a.get(e);if(m)return m;a.set(e,s),Fu(e)?e.forEach((function(r){s.add(go(r,t,n,r,e,a))})):Eu(e)&&e.forEach((function(r,o){s.set(o,go(r,t,n,o,e,a))}));var g=u?c?Ua:Ma:c?kd:xd,y=d?i:g(e);return xn(y||e,(function(r,o){y&&(o=r,r=e[o]),co(s,o,go(r,t,n,o,e,a))})),s}function yo(e){var t=xd(e);return function(n){return _o(n,e,t)}}function _o(e,t,n){var r=n.length;if(null==e)return!r;e=nt(e);while(r--){var o=n[r],a=t[o],s=e[o];if(s===i&&!(o in e)||!a(s))return!1}return!0}function wo(e,t,n){if("function"!=typeof e)throw new it(c);return As((function(){e.apply(i,n)}),t)}function xo(e,t,n,r){var o=-1,i=En,a=!0,l=e.length,c=[],u=t.length;if(!l)return c;n&&(t=Tn(t,Xn(n))),r?(i=Sn,a=!1):t.length>=s&&(i=Qn,a=!1,t=new Yr(t));e:while(++oo?0:o+n),r=r===i||r>o?o:Wu(r),r<0&&(r+=o),r=n>r?0:Yu(r);while(n0&&n(s)?t>1?Ro(s,t-1,n,r,o):Rn(o,s):r||(o[o.length]=s)}return o}var Co=da(),Io=da(!0);function Lo(e,t){return e&&Co(e,t,xd)}function Do(e,t){return e&&Io(e,t,xd)}function No(e,t){return An(t,(function(t){return wu(e[t])}))}function jo(e,t){t=Hi(t,e);var n=0,r=t.length;while(null!=e&&nt}function Mo(e,t){return null!=e&&dt.call(e,t)}function Uo(e,t){return null!=e&&t in nt(e)}function Bo(e,t,n){return e>=Bt(t,n)&&e=120&&p.length>=120)?new Yr(l&&p):i}p=e[0];var f=-1,h=c[0];e:while(++f-1)s!==e&&At.call(s,l,1),At.call(e,l,1)}return e}function mi(e,t){var n=e?t.length:0,r=n-1;while(n--){var o=t[n];if(n==r||o!==i){var i=o;as(o)?At.call(e,o,1):Pi(e,o)}}return e}function gi(e,t){return e+Nt(qt()*(t-e+1))}function yi(e,t,r,o){var i=-1,a=Ut(Dt((t-e)/(r||1)),0),s=n(a);while(a--)s[o?a:++i]=e,e+=r;return s}function _i(e,t){var n="";if(!e||t<1||t>F)return n;do{t%2&&(n+=e),t=Nt(t/2),t&&(e+=e)}while(t);return n}function wi(e,t){return Es(_s(e,t,Cp),e+"")}function xi(e){return io(Bd(e))}function ki(e,t){var n=Bd(e);return Rs(n,mo(t,0,n.length))}function Oi(e,t,n,r){if(!Ou(e))return e;t=Hi(t,e);var o=-1,a=t.length,s=a-1,l=e;while(null!=l&&++oi?0:i+t),r=r>i?i:r,r<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;var a=n(i);while(++o>>1,a=e[i];null!==a&&!Mu(a)&&(n?a<=t:a=s){var u=t?null:Ra(e);if(u)return pr(u);a=!1,o=Qn,c=new Yr}else c=t?[]:l;e:while(++r=r?e:Ti(e,t,n)}var zi=Ct||function(e){return ln.clearTimeout(e)};function Wi(e,t){if(t)return e.slice();var n=e.length,r=wt?wt(n):new e.constructor(n);return e.copy(r),r}function Yi(e){var t=new e.constructor(e.byteLength);return new _t(t).set(new _t(e)),t}function Xi(e,t){var n=t?Yi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function Ji(e){var t=new e.constructor(e.source,ze.exec(e));return t.lastIndex=e.lastIndex,t}function Qi(e){return hr?nt(hr.call(e)):{}}function Zi(e,t){var n=t?Yi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function ea(e,t){if(e!==t){var n=e!==i,r=null===e,o=e===e,a=Mu(e),s=t!==i,l=null===t,c=t===t,u=Mu(t);if(!l&&!u&&!a&&e>t||a&&s&&c&&!l&&!u||r&&s&&c||!n&&c||!o)return 1;if(!r&&!a&&!u&&e=s)return l;var c=n[r];return l*("desc"==c?-1:1)}}return e.index-t.index}function na(e,t,r,o){var i=-1,a=e.length,s=r.length,l=-1,c=t.length,u=Ut(a-s,0),d=n(c+u),p=!o;while(++l1?n[o-1]:i,s=o>2?n[2]:i;a=e.length>3&&"function"==typeof a?(o--,a):i,s&&ss(n[0],n[1],s)&&(a=o<3?i:a,o=1),t=nt(t);while(++r-1?o[a?t[s]:s]:i}}function ga(e){return $a((function(t){var n=t.length,r=n,o=Er.prototype.thru;e&&t.reverse();while(r--){var a=t[r];if("function"!=typeof a)throw new it(c);if(o&&!s&&"wrapper"==Ga(a))var s=new Er([],!0)}r=s?r:n;while(++r1&&y.reverse(),p&&ul))return!1;var u=a.get(e),d=a.get(t);if(u&&d)return u==t&&d==e;var p=-1,f=!0,h=n&g?new Yr:i;a.set(e,t),a.set(t,e);while(++p1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(Ue,"{\n/* [wrapped with "+t+"] */\n")}function is(e){return lu(e)||su(e)||!!(Et&&e&&e[Et])}function as(e,t){var n=typeof e;return t=null==t?F:t,!!t&&("number"==n||"symbol"!=n&&Qe.test(e))&&e>-1&&e%1==0&&e0){if(++t>=I)return arguments[0]}else t=0;return e.apply(i,arguments)}}function Rs(e,t){var n=-1,r=e.length,o=r-1;t=t===i?r:t;while(++n1?e[t-1]:i;return n="function"==typeof n?(e.pop(),n):i,Pl(e,n)}));function Vl(e){var t=wr(e);return t.__chain__=!0,t}function ql(e,t){return t(e),e}function zl(e,t){return t(e)}var Wl=$a((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,o=function(t){return bo(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Sr&&as(n)?(r=r.slice(n,+n+(t?1:0)),r.__actions__.push({func:zl,args:[o],thisArg:i}),new Er(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(i),e}))):this.thru(o)}));function Yl(){return Vl(this)}function Xl(){return new Er(this.value(),this.__chain__)}function Jl(){this.__values__===i&&(this.__values__=qu(this.value()));var e=this.__index__>=this.__values__.length,t=e?i:this.__values__[this.__index__++];return{done:e,value:t}}function Ql(){return this}function Zl(e){var t,n=this;while(n instanceof Ar){var r=Ns(n);r.__index__=0,r.__values__=i,t?o.__wrapped__=r:t=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,t}function ec(){var e=this.__wrapped__;if(e instanceof Sr){var t=e;return this.__actions__.length&&(t=new Sr(this)),t=t.reverse(),t.__actions__.push({func:zl,args:[hl],thisArg:i}),new Er(t,this.__chain__)}return this.thru(hl)}function tc(){return Mi(this.__wrapped__,this.__actions__)}var nc=la((function(e,t,n){dt.call(e,n)?++e[n]:vo(e,n,1)}));function rc(e,t,n){var r=lu(e)?On:Ao;return n&&ss(e,t,n)&&(t=i),r(e,Ha(t,3))}function oc(e,t){var n=lu(e)?An:To;return n(e,Ha(t,3))}var ic=ma(qs),ac=ma(zs);function sc(e,t){return Ro(bc(e,t),1)}function lc(e,t){return Ro(bc(e,t),P)}function cc(e,t,n){return n=n===i?1:Wu(n),Ro(bc(e,t),n)}function uc(e,t){var n=lu(e)?xn:ko;return n(e,Ha(t,3))}function dc(e,t){var n=lu(e)?kn:Oo;return n(e,Ha(t,3))}var pc=la((function(e,t,n){dt.call(e,n)?e[n].push(t):vo(e,n,[t])}));function fc(e,t,n,r){e=uu(e)?e:Bd(e),n=n&&!r?Wu(n):0;var o=e.length;return n<0&&(n=Ut(o+n,0)),$u(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&$n(e,t,n)>-1}var hc=wi((function(e,t,r){var o=-1,i="function"==typeof t,a=uu(e)?n(e.length):[];return ko(e,(function(e){a[++o]=i?_n(t,e,r):Ho(e,t,r)})),a})),vc=la((function(e,t,n){vo(e,n,t)}));function bc(e,t){var n=lu(e)?Tn:ai;return n(e,Ha(t,3))}function mc(e,t,n,r){return null==e?[]:(lu(t)||(t=null==t?[]:[t]),n=r?i:n,lu(n)||(n=null==n?[]:[n]),pi(e,t,n))}var gc=la((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));function yc(e,t,n){var r=lu(e)?Cn:Hn,o=arguments.length<3;return r(e,Ha(t,4),n,o,ko)}function _c(e,t,n){var r=lu(e)?In:Hn,o=arguments.length<3;return r(e,Ha(t,4),n,o,Oo)}function wc(e,t){var n=lu(e)?An:To;return n(e,Bc(Ha(t,3)))}function xc(e){var t=lu(e)?io:xi;return t(e)}function kc(e,t,n){t=(n?ss(e,t,n):t===i)?1:Wu(t);var r=lu(e)?ao:ki;return r(e,t)}function Oc(e){var t=lu(e)?so:Si;return t(e)}function Ac(e){if(null==e)return 0;if(uu(e))return $u(e)?br(e):e.length;var t=Ja(e);return t==Z||t==ae?e.size:ri(e).length}function Ec(e,t,n){var r=lu(e)?Ln:Ri;return n&&ss(e,t,n)&&(t=i),r(e,Ha(t,3))}var Sc=wi((function(e,t){if(null==e)return[];var n=t.length;return n>1&&ss(e,t[0],t[1])?t=[]:n>2&&ss(t[0],t[1],t[2])&&(t=[t[0]]),pi(e,Ro(t,1),[])})),Tc=It||function(){return ln.Date.now()};function Rc(e,t){if("function"!=typeof t)throw new it(c);return e=Wu(e),function(){if(--e<1)return t.apply(this,arguments)}}function Cc(e,t,n){return t=n?i:t,t=e&&null==t?e.length:t,Ia(e,E,i,i,i,i,t)}function Ic(e,t){var n;if("function"!=typeof t)throw new it(c);return e=Wu(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=i),n}}var Lc=wi((function(e,t,n){var r=y;if(n.length){var o=dr(n,Ka(Lc));r|=O}return Ia(e,r,t,n,o)})),Dc=wi((function(e,t,n){var r=y|_;if(n.length){var o=dr(n,Ka(Dc));r|=O}return Ia(t,r,e,n,o)}));function Nc(e,t,n){t=n?i:t;var r=Ia(e,x,i,i,i,i,i,t);return r.placeholder=Nc.placeholder,r}function jc(e,t,n){t=n?i:t;var r=Ia(e,k,i,i,i,i,i,t);return r.placeholder=jc.placeholder,r}function Pc(e,t,n){var r,o,a,s,l,u,d=0,p=!1,f=!1,h=!0;if("function"!=typeof e)throw new it(c);function v(t){var n=r,a=o;return r=o=i,d=t,s=e.apply(a,n),s}function b(e){return d=e,l=As(y,t),p?v(e):s}function m(e){var n=e-u,r=e-d,o=t-n;return f?Bt(o,a-r):o}function g(e){var n=e-u,r=e-d;return u===i||n>=t||n<0||f&&r>=a}function y(){var e=Tc();if(g(e))return _(e);l=As(y,m(e))}function _(e){return l=i,h&&r?v(e):(r=o=i,s)}function w(){l!==i&&zi(l),d=0,r=u=o=l=i}function x(){return l===i?s:_(Tc())}function k(){var e=Tc(),n=g(e);if(r=arguments,o=this,u=e,n){if(l===i)return b(u);if(f)return zi(l),l=As(y,t),v(u)}return l===i&&(l=As(y,t)),s}return t=Xu(t)||0,Ou(n)&&(p=!!n.leading,f="maxWait"in n,a=f?Ut(Xu(n.maxWait)||0,t):a,h="trailing"in n?!!n.trailing:h),k.cancel=w,k.flush=x,k}var Fc=wi((function(e,t){return wo(e,1,t)})),$c=wi((function(e,t,n){return wo(e,Xu(t)||0,n)}));function Mc(e){return Ia(e,T)}function Uc(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new it(c);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(Uc.Cache||Kr),n}function Bc(e){if("function"!=typeof e)throw new it(c);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Gc(e){return Ic(2,e)}Uc.Cache=Kr;var Kc=Vi((function(e,t){t=1==t.length&&lu(t[0])?Tn(t[0],Xn(Ha())):Tn(Ro(t,1),Xn(Ha()));var n=t.length;return wi((function(r){var o=-1,i=Bt(r.length,n);while(++o=t})),su=Vo(function(){return arguments}())?Vo:function(e){return Au(e)&&dt.call(e,"callee")&&!Ot.call(e,"callee")},lu=n.isArray,cu=hn?Xn(hn):qo;function uu(e){return null!=e&&ku(e.length)&&!wu(e)}function du(e){return Au(e)&&uu(e)}function pu(e){return!0===e||!1===e||Au(e)&&Fo(e)==z}var fu=Pt||Wp,hu=vn?Xn(vn):zo;function vu(e){return Au(e)&&1===e.nodeType&&!Nu(e)}function bu(e){if(null==e)return!0;if(uu(e)&&(lu(e)||"string"==typeof e||"function"==typeof e.splice||fu(e)||Uu(e)||su(e)))return!e.length;var t=Ja(e);if(t==Z||t==ae)return!e.size;if(fs(e))return!ri(e).length;for(var n in e)if(dt.call(e,n))return!1;return!0}function mu(e,t){return Wo(e,t)}function gu(e,t,n){n="function"==typeof n?n:i;var r=n?n(e,t):i;return r===i?Wo(e,t,i,n):!!r}function yu(e){if(!Au(e))return!1;var t=Fo(e);return t==X||t==Y||"string"==typeof e.message&&"string"==typeof e.name&&!Nu(e)}function _u(e){return"number"==typeof e&&Ft(e)}function wu(e){if(!Ou(e))return!1;var t=Fo(e);return t==J||t==Q||t==q||t==oe}function xu(e){return"number"==typeof e&&e==Wu(e)}function ku(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=F}function Ou(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Au(e){return null!=e&&"object"==typeof e}var Eu=bn?Xn(bn):Xo;function Su(e,t){return e===t||Jo(e,t,qa(t))}function Tu(e,t,n){return n="function"==typeof n?n:i,Jo(e,t,qa(t),n)}function Ru(e){return Du(e)&&e!=+e}function Cu(e){if(ps(e))throw new o(l);return Qo(e)}function Iu(e){return null===e}function Lu(e){return null==e}function Du(e){return"number"==typeof e||Au(e)&&Fo(e)==ee}function Nu(e){if(!Au(e)||Fo(e)!=ne)return!1;var t=xt(e);if(null===t)return!0;var n=dt.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&ut.call(n)==vt}var ju=mn?Xn(mn):Zo;function Pu(e){return xu(e)&&e>=-F&&e<=F}var Fu=gn?Xn(gn):ei;function $u(e){return"string"==typeof e||!lu(e)&&Au(e)&&Fo(e)==se}function Mu(e){return"symbol"==typeof e||Au(e)&&Fo(e)==le}var Uu=yn?Xn(yn):ti;function Bu(e){return e===i}function Gu(e){return Au(e)&&Ja(e)==ue}function Ku(e){return Au(e)&&Fo(e)==de}var Hu=Ea(ii),Vu=Ea((function(e,t){return e<=t}));function qu(e){if(!e)return[];if(uu(e))return $u(e)?mr(e):oa(e);if(St&&e[St])return lr(e[St]());var t=Ja(e),n=t==Z?cr:t==ae?pr:Bd;return n(e)}function zu(e){if(!e)return 0===e?e:0;if(e=Xu(e),e===P||e===-P){var t=e<0?-1:1;return t*$}return e===e?e:0}function Wu(e){var t=zu(e),n=t%1;return t===t?n?t-n:t:0}function Yu(e){return e?mo(Wu(e),0,U):0}function Xu(e){if("number"==typeof e)return e;if(Mu(e))return M;if(Ou(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ou(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Yn(e);var n=Ye.test(e);return n||Je.test(e)?on(e.slice(2),n?2:8):We.test(e)?M:+e}function Ju(e){return ia(e,kd(e))}function Qu(e){return e?mo(Wu(e),-F,F):0===e?e:0}function Zu(e){return null==e?"":Ni(e)}var ed=ca((function(e,t){if(fs(t)||uu(t))ia(t,xd(t),e);else for(var n in t)dt.call(t,n)&&co(e,n,t[n])})),td=ca((function(e,t){ia(t,kd(t),e)})),nd=ca((function(e,t,n,r){ia(t,kd(t),e,r)})),rd=ca((function(e,t,n,r){ia(t,xd(t),e,r)})),od=$a(bo);function id(e,t){var n=kr(e);return null==t?n:fo(n,t)}var ad=wi((function(e,t){e=nt(e);var n=-1,r=t.length,o=r>2?t[2]:i;o&&ss(t[0],t[1],o)&&(r=1);while(++n1),t})),ia(e,Ua(e),n),r&&(n=go(n,h|v|b,Na));var o=t.length;while(o--)Pi(n,t[o]);return n}));function Rd(e,t){return Id(e,Bc(Ha(t)))}var Cd=$a((function(e,t){return null==e?{}:fi(e,t)}));function Id(e,t){if(null==e)return{};var n=Tn(Ua(e),(function(e){return[e]}));return t=Ha(t),hi(e,n,(function(e,n){return t(e,n[0])}))}function Ld(e,t,n){t=Hi(t,e);var r=-1,o=t.length;o||(o=1,e=i);while(++rt){var r=e;e=t,t=r}if(n||e%1||t%1){var o=qt();return Bt(e+o*(t-e+rn("1e-"+((o+"").length-1))),t)}return gi(e,t)}var qd=ha((function(e,t,n){return t=t.toLowerCase(),e+(n?zd(t):t)}));function zd(e){return _p(Zu(e).toLowerCase())}function Wd(e){return e=Zu(e),e&&e.replace(Ze,nr).replace(Ht,"")}function Yd(e,t,n){e=Zu(e),t=Ni(t);var r=e.length;n=n===i?r:mo(Wu(n),0,r);var o=n;return n-=t.length,n>=0&&e.slice(n,o)==t}function Xd(e){return e=Zu(e),e&&Re.test(e)?e.replace(Se,rr):e}function Jd(e){return e=Zu(e),e&&Fe.test(e)?e.replace(Pe,"\\$&"):e}var Qd=ha((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Zd=ha((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),ep=fa("toLowerCase");function tp(e,t,n){e=Zu(e),t=Wu(t);var r=t?br(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return ka(Nt(o),n)+e+ka(Dt(o),n)}function np(e,t,n){e=Zu(e),t=Wu(t);var r=t?br(e):0;return t&&r>>0,n?(e=Zu(e),e&&("string"==typeof t||null!=t&&!ju(t))&&(t=Ni(t),!t&&ar(e))?qi(mr(e),0,n):e.split(t,n)):[]}var cp=ha((function(e,t,n){return e+(n?" ":"")+_p(t)}));function up(e,t,n){return e=Zu(e),n=null==n?0:mo(Wu(n),0,e.length),t=Ni(t),e.slice(n,n+t.length)==t}function dp(e,t,n){var r=wr.templateSettings;n&&ss(e,t,n)&&(t=i),e=Zu(e),t=nd({},t,r,La);var a,s,l=nd({},t.imports,r.imports,La),c=xd(l),d=Jn(l,c),p=0,f=t.interpolate||et,h="__p += '",v=rt((t.escape||et).source+"|"+f.source+"|"+(f===Le?qe:et).source+"|"+(t.evaluate||et).source+"|$","g"),b="//# sourceURL="+(dt.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Xt+"]")+"\n";e.replace(v,(function(t,n,r,o,i,l){return r||(r=o),h+=e.slice(p,l).replace(tt,or),n&&(a=!0,h+="' +\n__e("+n+") +\n'"),i&&(s=!0,h+="';\n"+i+";\n__p += '"),r&&(h+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),p=l+t.length,t})),h+="';\n";var m=dt.call(t,"variable")&&t.variable;if(m){if(He.test(m))throw new o(u)}else h="with (obj) {\n"+h+"\n}\n";h=(s?h.replace(ke,""):h).replace(Oe,"$1").replace(Ae,"$1;"),h="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(a?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var g=xp((function(){return Me(c,b+"return "+h).apply(i,d)}));if(g.source=h,yu(g))throw g;return g}function pp(e){return Zu(e).toLowerCase()}function fp(e){return Zu(e).toUpperCase()}function hp(e,t,n){if(e=Zu(e),e&&(n||t===i))return Yn(e);if(!e||!(t=Ni(t)))return e;var r=mr(e),o=mr(t),a=Zn(r,o),s=er(r,o)+1;return qi(r,a,s).join("")}function vp(e,t,n){if(e=Zu(e),e&&(n||t===i))return e.slice(0,gr(e)+1);if(!e||!(t=Ni(t)))return e;var r=mr(e),o=er(r,mr(t))+1;return qi(r,0,o).join("")}function bp(e,t,n){if(e=Zu(e),e&&(n||t===i))return e.replace($e,"");if(!e||!(t=Ni(t)))return e;var r=mr(e),o=Zn(r,mr(t));return qi(r,o).join("")}function mp(e,t){var n=R,r=C;if(Ou(t)){var o="separator"in t?t.separator:o;n="length"in t?Wu(t.length):n,r="omission"in t?Ni(t.omission):r}e=Zu(e);var a=e.length;if(ar(e)){var s=mr(e);a=s.length}if(n>=a)return e;var l=n-br(r);if(l<1)return r;var c=s?qi(s,0,l).join(""):e.slice(0,l);if(o===i)return c+r;if(s&&(l+=c.length-l),ju(o)){if(e.slice(l).search(o)){var u,d=c;o.global||(o=rt(o.source,Zu(ze.exec(o))+"g")),o.lastIndex=0;while(u=o.exec(d))var p=u.index;c=c.slice(0,p===i?l:p)}}else if(e.indexOf(Ni(o),l)!=l){var f=c.lastIndexOf(o);f>-1&&(c=c.slice(0,f))}return c+r}function gp(e){return e=Zu(e),e&&Te.test(e)?e.replace(Ee,yr):e}var yp=ha((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),_p=fa("toUpperCase");function wp(e,t,n){return e=Zu(e),t=n?i:t,t===i?sr(e)?xr(e):jn(e):e.match(t)||[]}var xp=wi((function(e,t){try{return _n(e,i,t)}catch(n){return yu(n)?n:new o(n)}})),kp=$a((function(e,t){return xn(t,(function(t){t=Is(t),vo(e,t,Lc(e[t],e))})),e}));function Op(e){var t=null==e?0:e.length,n=Ha();return e=t?Tn(e,(function(e){if("function"!=typeof e[1])throw new it(c);return[n(e[0]),e[1]]})):[],wi((function(n){var r=-1;while(++rF)return[];var n=U,r=Bt(e,U);t=Ha(t),e-=U;var o=zn(r,t);while(++n0||t<0)?new Sr(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==i&&(t=Wu(t),n=t<0?n.dropRight(-t):n.take(t-e)),n)},Sr.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Sr.prototype.toArray=function(){return this.take(U)},Lo(Sr.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),o=wr[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);o&&(wr.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,l=t instanceof Sr,c=s[0],u=l||lu(t),d=function(e){var t=o.apply(wr,Rn([e],s));return r&&p?t[0]:t};u&&n&&"function"==typeof c&&1!=c.length&&(l=u=!1);var p=this.__chain__,f=!!this.__actions__.length,h=a&&!p,v=l&&!f;if(!a&&u){t=v?t:new Sr(this);var b=e.apply(t,s);return b.__actions__.push({func:zl,args:[d],thisArg:i}),new Er(b,p)}return h&&v?e.apply(this,s):(b=this.thru(d),h?r?b.value()[0]:b.value():b)})})),xn(["pop","push","shift","sort","splice","unshift"],(function(e){var t=at[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);wr.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(lu(o)?o:[],e)}return this[n]((function(n){return t.apply(lu(n)?n:[],e)}))}})),Lo(Sr.prototype,(function(e,t){var n=wr[t];if(n){var r=n.name+"";dt.call(cn,r)||(cn[r]=[]),cn[r].push({name:t,func:n})}})),cn[ya(i,_).name]=[{name:"wrapper",func:i}],Sr.prototype.clone=Tr,Sr.prototype.reverse=Rr,Sr.prototype.value=Cr,wr.prototype.at=Wl,wr.prototype.chain=Yl,wr.prototype.commit=Xl,wr.prototype.next=Jl,wr.prototype.plant=Zl,wr.prototype.reverse=ec,wr.prototype.toJSON=wr.prototype.valueOf=wr.prototype.value=tc,wr.prototype.first=wr.prototype.head,St&&(wr.prototype[St]=Ql),wr},Or=kr();ln._=Or,o=function(){return Or}.call(t,n,t,r),o===i||(r.exports=o)}).call(this)}).call(this,n("7d15"),n("6984")(e))},"9ef5":function(e,t,n){var r=n("2357"),o=n("b506"),i=n("6bcf"),a=NaN,s=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt;function d(e){if("number"==typeof e)return e;if(i(e))return a;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=l.test(e);return n||c.test(e)?u(e.slice(2),n?2:8):s.test(e)?a:+e}e.exports=d},"9f16":function(e,t,n){"use strict";t["a"]={methods:{mappedKeys(e,t){const n={...e};return n[9]=e=>{if(!t.open)return;e.preventDefault();const n=t.filteredOptions.length,r=t.typeAheadPointer;return e.shiftKey?0===r?t.onEscape():t.typeAheadUp():r+1===n?t.onEscape():t.typeAheadDown()},n[27]=e=>(t.open=!1,t.search="",!1),n[13]=(e,n)=>{if(!t.open)return void(t.open=!0);let r=t.filteredOptions[t.typeAheadPointer];t.$emit("option:selecting",r),t.isOptionSelected(r)||(t.taggable&&!t.optionExists(r)&&t.$emit("option:created",r),t.multiple&&(r=t.selectedValue.concat(r)),t.updateValue(r),t.$emit("option:selected",r),t.closeOnSelect&&(t.open=!1,t.typeAheadPointer=-1),t.clearSearchOnSelect&&(t.search=""))},n[38]=e=>(e.preventDefault(),t.open||(t.open=!0),t.typeAheadUp()),n[40]=e=>(e.preventDefault(),t.open||(t.open=!0),t.typeAheadDown()),n}}}},"9f54":function(e,t){function n(e,t,n){var r=n-1,o=e.length;while(++r=0;r--){var o=e[r];"."===o?e.splice(r,1):".."===o?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e){"string"!==typeof e&&(e+="");var t,n=0,r=-1,o=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!o){n=t+1;break}}else-1===r&&(o=!1,r=t+1);return-1===r?"":e.slice(n,r)}function o(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!r;i--){var a=i>=0?arguments[i]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,r="/"===a.charAt(0))}return t=n(o(t.split("/"),(function(e){return!!e})),!r).join("/"),(r?"/":"")+t||"."},t.normalize=function(e){var r=t.isAbsolute(e),a="/"===i(e,-1);return e=n(o(e.split("/"),(function(e){return!!e})),!r).join("/"),e||r||(e="."),e&&a&&(e+="/"),(r?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(o(e,(function(e,t){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t=0;n--)if(""!==e[n])break;return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var o=r(e.split("/")),i=r(n.split("/")),a=Math.min(o.length,i.length),s=a,l=0;l=1;--i)if(t=e.charCodeAt(i),47===t){if(!o){r=i;break}}else o=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},t.basename=function(e,t){var n=r(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!==typeof e&&(e+="");for(var t=-1,n=0,r=-1,o=!0,i=0,a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(47!==s)-1===r&&(o=!1,r=a+1),46===s?-1===t?t=a:1!==i&&(i=1):-1!==t&&(i=-1);else if(!o){n=a+1;break}}return-1===t||-1===r||0===i||1===i&&t===r-1&&t===n+1?"":e.slice(t,r)};var i="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n("07d9"))},a454:function(e,t,n){var r=n("872c"),o="Expected a function";function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(o);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(i.Cache||r),n}i.Cache=r,e.exports=i},a48a:function(e,t,n){var r=n("cbff"),o=n("c316");function i(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}e.exports=i},a4fc:function(e,t){function n(e,t){return e===t||e!==e&&t!==t}e.exports=n},a67c:function(e,t){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;function o(e,t){var o=typeof e;return t=null==t?n:t,!!t&&("number"==o||"symbol"!=o&&r.test(e))&&e>-1&&e%1==0&&e=this.queue.length&&(this.queue=this.queue.slice(this.offset),this.offset=0),e},this.peek=function(){return this.queue.length>0?this.queue[this.offset]:void 0},this.clear=function(){this.offset=0,this.queue.length=0}}async function o(e,t){const n=Object.keys(e),r=Object.values(e),o=await Promise[t](r),i={};for(let a=0;a{const s=new r;let l=0,c=!1;const u=[];for(let t=0;t{o&&console.log("Done",e),u[t]=n,l--,d()}).catch(t=>{o&&console.log("Failed",t,e),c=!0,a(t)})}}}d()})}n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return s}))},a9e0:function(e,t,n){var r=n("bf10"),o=n("201b"),i=r(o,"Map");e.exports=i},aa31:function(e,t){var n="__lodash_hash_undefined__";function r(e){return this.__data__.set(e,n),this}e.exports=r},ae68:function(e,t,n){var r=n("d99b"),o=n("6efc"),i=n("c316"),a=n("dda8"),s=n("a67c"),l=n("41dd"),c=Object.prototype,u=c.hasOwnProperty;function d(e,t){var n=i(e),c=!n&&o(e),d=!n&&!c&&a(e),p=!n&&!c&&!d&&l(e),f=n||c||d||p,h=f?r(e.length,String):[],v=h.length;for(var b in e)!t&&!u.call(e,b)||f&&("length"==b||d&&("offset"==b||"parent"==b)||p&&("buffer"==b||"byteLength"==b||"byteOffset"==b)||s(b,v))||h.push(b);return h}e.exports=d},b022:function(e,t){function n(e,t,n){var r=-1,o=null==e?0:e.length;while(++r{a.ENABLE_DEBUG_LOGGING&&console.debug("GC",...e)},this.gcLastRun=0,this.getUiPerfGarbageCollection=e=>{var t;const n=null===(t=e.management.types[r["k"].SETTING])||void 0===t?void 0:t.list.find(e=>e.id===o["b"].UI_PERFORMANCE);if(!n||!n.value)return;const i=`${n.metadata.generation}-${n.metadata.resourceVersion}`;if(this.cachedGcPrefsStamp!==i){this.debugLog(`Updating ${o["b"].UI_PERFORMANCE} cache`),this.cachedGcPrefsStamp=i;const e=JSON.parse(n.value);this.cachedGcPrefs=e.garbageCollection}return this.cachedGcPrefs},this.lastAccessedCache={},this.lastRouteChange=0}gcEnabledAll(e,t){return this.gcEnabledForStore(e.state)&&this.gcEnabledSetting(e)&&this.gcEnabledForType(e,t)}gcEnabledSetting(e){const{rootState:t}=e,n=this.getUiPerfGarbageCollection(t);return null===n||void 0===n?void 0:n.enabled}gcEnabledForStore(e){var t;return null===e||void 0===e||null===(t=e.config)||void 0===t?void 0:t.supportsGc}gcEnabledForType(e,t){const{getters:n}=e;return!(!t||n.gcIgnoreTypes[t])}gcEnabledInterval(e){const{rootState:t}=e,n=this.getUiPerfGarbageCollection(t);return{enabled:null===n||void 0===n?void 0:n.enabledInterval,interval:(null===n||void 0===n?void 0:n.interval)||0}}gcEnabledRoute(e){const{rootState:t}=e,n=this.getUiPerfGarbageCollection(t);return null===n||void 0===n?void 0:n.enabledOnNavigate}garbageCollect(e,t={}){const n=(new Date).getTime();if(null===this.gcLastRun||n-this.gcLastRun{var d;if(!l)return void this.debugLog(a+": Skipping (no accessed time)");if(!this.gcEnabledForType(e,a))return void this.debugLog(a+": Skipping (type ignored by store)");if(t[a])return void this.debugLog(a+": Skipping (navigating to type)");if(n-l<=c)return void this.debugLog(a+": Skipping (recently accessed)");if(void 0!==this.lastRouteChange&&this.lastRouteChange0&&console.info("Garbage Collected Resources",o),this.debugLog("------ Finished ------")}gcUpdateLastAccessed(e,t){if(!this.gcEnabledAll(e,t))return;const n=e.state.config.namespace;this.lastAccessedCache[n]||(this.lastAccessedCache[n]={}),this.lastAccessedCache[n][t]=(new Date).getTime()}gcUpdateRouteChanged(){this.lastRouteChange=(new Date).getTime()}gcResetStore(e){const t=e.config.namespace;delete this.lastAccessedCache[t],this.debugLog("Forgetting Store:",t)}gcResetType(e,t){const n=e.config.namespace;this.lastAccessedCache[n]&&(delete this.lastAccessedCache[n][t],this.debugLog("Forgetting Type:",n,t))}}a.ENABLE_DEBUG_LOGGING=!1,a.GC_RE_RUN_GAP=5e3;new a;n("4048");const s="allIfAuthed"},b349:function(e,t,n){"use strict";n("0831")},b3e4:function(e,t,n){var r=n("2419"),o=n("39f2"),i=n("b022"),a=n("4b48"),s=n("f533"),l=n("5e52"),c=200;function u(e,t,n){var u=-1,d=o,p=e.length,f=!0,h=[],v=h;if(n)f=!1,d=i;else if(p>=c){var b=t?null:s(e);if(b)return l(b);f=!1,d=a,v=new r}else v=t?[]:h;e:while(++u-1&&e%1==0&&e<=n}e.exports=r},b952:function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".dropdown-button-group .no-left-border-radius{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-button-group .no-right-border-radius{border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-button-group .btn{line-height:normal;border:0}.dropdown-button-group .btn-group-xs>.btn,.dropdown-button-group .btn-xs,.dropdown-button-group .btn-xs .btn-label{padding:2px 3px;font-size:13px}.dropdown-button-group .v-popover .text-right{margin-top:5px}.dropdown-button-group .v-popover .trigger{height:100%}.dropdown-button-group .v-popover .trigger .icon-container{height:100%;padding:10px 10px 10px 10px}.dropdown-button-group .v-popover .trigger .icon-container i{transform:scale(1)}.dropdown-button-group .v-popover .trigger .icon-container.btn-xs{padding:2px 4px 4px 4px}.dropdown-button-group .v-popover .trigger .icon-container.btn-sm{padding:10px 10px 10px 10px}.dropdown-button-group .v-popover .trigger .icon-container.btn-lg{padding:18px 10px 10px 10px}.dropdown-button-group .v-popover .trigger .icon-container:focus{outline-style:none;box-shadow:none;border-color:transparent}.dropdown-button-group .dropdown-button{background:var(--tooltip-bg);color:var(--link-text);padding:0;display:inline-flex}.dropdown-button-group .dropdown-button .wrapper-content button{border-right:0}.dropdown-button-group .dropdown-button .icon-chevron-down,.dropdown-button-group .dropdown-button>*{color:var(--primary);background-color:transparent}.dropdown-button-group .dropdown-button.bg-primary:hover{background:var(--accent-btn-hover)}.dropdown-button-group .dropdown-button.one-action{position:relative}.dropdown-button-group .dropdown-button.one-action>.btn{padding:15px 35px 15px 15px}.dropdown-button-group .dropdown-button.one-action .v-popover .trigger{position:absolute;top:0;right:0;left:0;bottom:0}.dropdown-button-group .dropdown-button.one-action .v-popover .trigger BUTTON{position:absolute;right:0}.dropdown-button-group .popover{border:none}.dropdown-button-group .tooltip{margin-top:0}.dropdown-button-group .tooltip[x-placement^=bottom] .tooltip-arrow{border-bottom-color:var(--dropdown-border)}.dropdown-button-group .tooltip[x-placement^=bottom] .tooltip-arrow:after{border-bottom-color:var(--dropdown-bg)}.dropdown-button-group .tooltip .tooltip-inner{color:var(--dropdown-text);background-color:var(--dropdown-bg);border:1px solid var(--dropdown-border);padding:0;text-align:left}.dropdown-button-group .tooltip .tooltip-inner LI{padding:10px}.dropdown-button-group .tooltip .tooltip-inner LI.divider{padding-top:0;padding-bottom:0}.dropdown-button-group .tooltip .tooltip-inner LI.divider>.divider-inner{padding:0;border-bottom:1px solid var(--dropdown-divider);width:125%;margin:0 auto}.dropdown-button-group .tooltip .tooltip-inner LI:not(.divider):hover{background-color:var(--dropdown-hover-bg);color:var(--dropdown-hover-text);cursor:pointer}.dropdown-button-group .user-info{border-bottom:1px solid var(--border);display:block}",""]),e.exports=t},bc61:function(e,t,n){var r=n("b506"),o=Object.create,i=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=i},bcb3:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));n("907c"),n("462f"),n("79ad");const r="explorer"},bddd:function(e,t,n){"use strict";n.d(t,"i",(function(){return a})),n.d(t,"j",(function(){return s})),n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return c})),n.d(t,"f",(function(){return u})),n.d(t,"g",(function(){return d})),n.d(t,"h",(function(){return p})),n.d(t,"c",(function(){return f})),n.d(t,"d",(function(){return v})),n.d(t,"e",(function(){return b})),n.d(t,"k",(function(){return m}));var r=n("9dfc"),o=n.n(r),i=n("e24b");function a(e,t){const n=e.indexOf(t);return n>=0&&e.splice(n,1),e}function s(e,t){let n,r=[];for(n=0;ne-t);const o=[];let i,a;while(r.length){i=r.shift(),a=i;while(r.length&&r[0]===a+1)a=r.shift();o.push({start:i,end:a})}for(n=o.length-1;n>=0;n--){const{start:t,end:r}=o[n];e.splice(t,r-t+1)}return e}function l(e,t){const n=e.indexOf(t);-1===n&&e.push(t)}function c(e,t){const n=[];for(const r of t)e.includes(r)||n.includes(r)||n.push(r);e.push(...n)}function u(e,t,...n){e.splice(t,0,...n)}function d(e){return Array.isArray(e)}function p(e,t,n=1){if(t<0)throw new Error("Index too low");if(t+n>e.length)throw new Error("Index + length too high");return e.splice(t,n),e}function f(e){e.splice(0,e.length)}function h(e,t,n,r){return t=t||[],"object"===typeof n?t[e](e=>{for(const t in n){const r=n[t],o=Object(i["f"])(e,t);if("undefined"===typeof r){if(!o)return!1}else if(o!==r)return!1}return!0}):void 0===r?t[e](e=>!!Object(i["f"])(e,n)):t[e](e=>Object(i["f"])(e,n)===r)}function v(e,t,n){return h("filter",e,t,n)}function b(e,t,n){return h("find",e,t,n)}function m(e,t){return 0===o()(e,t).length}},bdf6:function(e,t,n){"use strict";n("0cfa")},bf10:function(e,t,n){var r=n("e672"),o=n("e29f");function i(e,t){var n=o(e,t);return r(n)?n:void 0}e.exports=i},c02d:function(e,t,n){var r=n("3f3f");function o(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}e.exports=o},c268:function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".card[data-v-865222be]{background-color:#fff;color:#000!important;position:relative;color:inherit;text-decoration:none;margin-top:10px;border:1px solid #eee;border-radius:1rem;padding:1rem;border-left:1rem solid #add8e6;display:grid;grid-template-columns:auto 1fr;gap:10px;max-width:30rem}.card[data-v-865222be]:hover{background-color:#add8e6}.card h3[data-v-865222be]{color:#000}.card .open-link[data-v-865222be]{position:absolute;top:1rem;right:1rem}",""]),e.exports=t},c294:function(e,t,n){var r=n("4774"),o=n("479b");function i(e){return r((function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);while(++r=0;t--){let n=e[t].split(/\./);while(n.length)Object(o["a"])(e,n.join(".")),n=n.slice(0,-1)}for(const t of e){const e=t.split(/\./),n=e[e.length-1],r=e.slice(0,-1).join(".");r===p&&y.resourceFields&&y.resourceFields[n]&&Object(o["a"])(_,n)}}const k=Object.keys(y.resourceFields||{});k.forEach(e=>{("undefined"!==typeof n[e]||0===i&&"_type"===e)&&Object(o["a"])(_,e)});for(const a in n)"undefined"!==typeof n[a]&&Object(o["a"])(_,a);for(const a of d){const e=a.split(/\./),t=e[e.length-1],n=e.slice(0,-1).join(".");n===p&&Object(o["i"])(_,t)}for(const a of u){const e=a.split(/\./),t=e[e.length-1],n=e.slice(0,-1).join(".");n===p&&y.resourceFields&&y.resourceFields[t]&&Object(o["i"])(k,t)}Object(o["j"])(k,_);const A=_.map(e=>T(e)),E=k.map(t=>{if("metadata"===p&&"namespace"===t){var n;const t=Object(o["e"])(e,"id",f);if(t&&(null===(n=t.attributes)||void 0===n||!n.namespaced))return null}return v(T(t))}),S=[...A,...E].filter(e=>null!==e).join("\n").trim();return S;function T(t){var c;const u=null===(c=y.resourceFields)||void 0===c?void 0:c[t];let d=t+":";if("_type"===t&&(d="type:"),!u){if(n[t])try{const e=Object(s["d"])(n),r=a.a.dump(e[t]);return"object"===typeof n[t]||Array.isArray(n[t])?d+="\n"+b(r.trim()):d+=" "+r.trim(),d}catch(S){console.error("Error: Unable to parse map data for yaml key: "+t,S)}return null}const v=x(u.type),_=w("map",v),k=w("array",v),A=w("reference",v);if(_){if(n[t])try{const e=Object(s["d"])(n),r=O(e[t],g[t]);d+="\n"+b(r)}catch(S){console.error("Error: Unable to parse map data for yaml of type: "+v,S)}if(l.includes(_))d+="# key: "+_;else{const n=h(e,_,null,r,i+1,p?`${p}.${t}`:t,f,g);let o=b(n);o=o.replace(/^(#)?\s\s\s\s/,"$1"),d+=""+o}return d}if(k){if(n[t])try{const e=Object(s["d"])(n);if(null!==e&&void 0!==e&&e[t]){const n=a.a.dump(e[t]);d+="\n"+b(n.trim())}}catch(S){console.error("Error: Unale to parse array data for yaml of type: "+v,S)}if(l.includes(k))d+="\n# - "+k;else{const n=h(e,k,null,!1,i+1,p?`${p}.${t}`:t,f,g);let r=b(n,2);r=r.replace(/^(#)?\s*\s\s([^\s])/,"$1 - $2"),d+="\n"+r}return d}if(A)return d+=" #"+A,d;if(l.includes(v))return"_type"===t&&"undefined"===typeof n[t]&&"undefined"!==typeof n["type"]?d+=" "+m(n["type"]):"undefined"===typeof n[t]?d+=" #"+m(v):d+=" "+m(n[t]),d;if("json"===v||".spec"===v)try{const e=a.a.dump(n[t]);return d+=e?"\n"+b(e.trim()):" #"+v,d}catch(S){}const E=Object(o["e"])(e,"id",v);if(E){let o;if(null!==E&&void 0!==E&&E.resourceFields&&!Object(s["g"])(null===E||void 0===E?void 0:E.resourceFields))o=h(e,v,n[t],r,i+1,p?`${p}.${t}`:t,f,g);else if(n[t])try{const e=a.a.dump(n[t]);o=e.trim()}catch(S){console.error("Error: Unale to parse data for yaml of type: "+v,S)}d+="\n"+b(o)}else d+=" #"+v;return d}}function v(e){return(e||"").split("\n").map(e=>"#"+e.replace(/#/g,"")).join("\n")}function b(e,t=1){return Object(r["h"])(e,t*p," ",/^#/)}function m(e){return a.a.dump(e).trim()}function g(e,t){const n=y(e,t);return{header:n,indentation:_(n)}}function y(e,t){const n=`(${t})[\\:][\\s|\\t]+[\\|\\>][\\d]*[\\-\\+]?`,r=new RegExp(n,"gi"),o=e.match(r);return(null===o||void 0===o?void 0:o[0])||""}function _(e){const t=e.substr(e.indexOf(":")+1),n=t.match(/\d+/);return(null===n||void 0===n?void 0:n[0])||""}function w(e,t){const n=new RegExp(`^${e}\\[(.*)\\]$`),r=t.match(n);if(r)return x(r[1])}function x(e){return"integer"===e?"int":"io.k8s.apimachinery.pkg.api.resource.Quantity"===e?"string":e}function k(e){const t=a.a.dump(e||{});return"{}\n"===t?"":t}function O(e,t={}){const n=a.a.dump(e,t);let r=n;const o=Object.keys(e).filter(t=>{if("string"===typeof e[t])return e[t].includes("\n")});if(o.length)for(const a of o){var i,s,l,c;const{header:e,indentation:n}=g(r,a),o=null!==(i=null===(s=t[a])||void 0===s?void 0:s.scalarStyle)&&void 0!==i?i:"|",u=null!==(l=null===(c=t[a])||void 0===c?void 0:c.chomping)&&void 0!==l?l:"";e&&(r=r.replace(e,`${a}: ${o}${u}${n}`))}return r}},c68c:function(e,t,n){var r=n("c316"),o=n("8bb9"),i=n("4a83"),a=n("770e");function s(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}e.exports=s},c87d:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return a}));var r=n("5877"),o=n.n(r);async function i(e,t,r="text/plain;charset=utf-8"){const o=new Blob([t],{type:r}),{saveAs:i}=await n.e(5).then(n.t.bind(null,"7ada",7));return i(o,e)}function a(e){const t=new o.a;for(const n in e)t.file(n,e[n]);return t.generateAsync({type:"blob"}).then(e=>e)}},c991:function(e,t,n){var r=n("b650"),o=1,i=Object.prototype,a=i.hasOwnProperty;function s(e,t,n,i,s,l){var c=n&o,u=r(e),d=u.length,p=r(t),f=p.length;if(d!=f&&!c)return!1;var h=d;while(h--){var v=u[h];if(!(c?v in t:a.call(t,v)))return!1}var b=l.get(e),m=l.get(t);if(b&&m)return b==t&&m==e;var g=!0;l.set(e,t),l.set(t,e);var y=c;while(++h{let n;n=t&&"object"===typeof t&&"undefined"!==typeof t.value?Object.assign({},t):{label:t,value:t};const r=e===n.value;return n.class={btn:!0,[this.inactiveClass]:!r,[this.activeClass]:r},n})}},methods:{change(e){this.$emit("input",e)}}},a=i,s=n("d802"),l=Object(s["a"])(a,r,o,!1,null,null,null);t["a"]=l.exports},cc5e:function(e,t,n){var r=n("a48a"),o=n("5e27"),i=n("cc7f");function a(e){return r(e,i,o)}e.exports=a},cc7f:function(e,t,n){var r=n("ae68"),o=n("a769"),i=n("f72d");function a(e){return i(e)?r(e,!0):o(e)}e.exports=a},cca9:function(e,t,n){var r=n("51db"),o=n("0652");function i(e,t){return e&&r(e,t,o)}e.exports=i},cd68:function(e,t){function n(e){return e}e.exports=n},cda3:function(e,t){function n(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}e.exports=n},ce07:function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".manual-refresh[data-v-4c2ecb01]{height:40px}.advanced-filter-group[data-v-4c2ecb01]{position:relative;margin-left:10px}.advanced-filter-group .advanced-filter-container[data-v-4c2ecb01]{position:absolute;top:38px;right:0;width:300px;border:1px solid var(--primary);background-color:var(--body-bg);padding:20px;z-index:2}.advanced-filter-group .advanced-filter-container .middle-block[data-v-4c2ecb01]{display:flex;align-items:center;margin-top:20px}.advanced-filter-group .advanced-filter-container .middle-block span[data-v-4c2ecb01]{margin-right:20px}.advanced-filter-group .advanced-filter-container .middle-block button[data-v-4c2ecb01]{margin-left:20px}.advanced-filter-group .advanced-filter-container .bottom-block[data-v-4c2ecb01]{display:flex;align-items:center;margin-top:40px;justify-content:space-between}.advanced-filters-applied[data-v-4c2ecb01]{display:inline-flex;margin:0;padding:0;list-style:none;max-width:100%;flex-wrap:wrap;justify-content:flex-end}.advanced-filters-applied li[data-v-4c2ecb01]{margin:0 20px 10px 0;padding:2px 5px;border:1px solid;display:flex;align-items:center;position:relative;height:20px}.advanced-filters-applied li[data-v-4c2ecb01]:nth-child(4n+1){border-color:var(--success)}.advanced-filters-applied li:nth-child(4n+1) .bg[data-v-4c2ecb01]{background-color:var(--success)}.advanced-filters-applied li[data-v-4c2ecb01]:nth-child(4n+2){border-color:var(--warning)}.advanced-filters-applied li:nth-child(4n+2) .bg[data-v-4c2ecb01]{background-color:var(--warning)}.advanced-filters-applied li[data-v-4c2ecb01]:nth-child(4n+3){border-color:var(--info)}.advanced-filters-applied li:nth-child(4n+3) .bg[data-v-4c2ecb01]{background-color:var(--info)}.advanced-filters-applied li[data-v-4c2ecb01]:nth-child(4n+4){border-color:var(--error)}.advanced-filters-applied li:nth-child(4n+4) .bg[data-v-4c2ecb01]{background-color:var(--error)}.advanced-filters-applied li .bg[data-v-4c2ecb01]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.2;z-index:-1}.advanced-filters-applied li .label[data-v-4c2ecb01]{margin-right:10px;font-size:11px}.advanced-filters-applied li .cross[data-v-4c2ecb01]{font-size:12px;font-weight:700;cursor:pointer}td .actions.role-multi-action[data-v-4c2ecb01]{background-color:transparent;border:none}td .actions.role-multi-action[data-v-4c2ecb01]:focus,td .actions.role-multi-action[data-v-4c2ecb01]:hover{background-color:var(--accent-btn);box-shadow:none}@media only screen and (max-width:480px){td.desktop[data-v-4c2ecb01],td.laptop[data-v-4c2ecb01],td.tablet[data-v-4c2ecb01]{display:none}}@media only screen and (max-width:992px){td.desktop[data-v-4c2ecb01],td.laptop[data-v-4c2ecb01]{display:none}}@media only screen and (max-width:1281px){td.desktop[data-v-4c2ecb01]{display:none}}tr td div.data-loading[data-v-4c2ecb01]{align-items:center;display:flex;justify-content:center;padding:20px 0}tr td div.data-loading>i[data-v-4c2ecb01]{font-size:20px;height:20px;margin-right:5px;width:20px}.search-box[data-v-4c2ecb01]{height:40px;margin-left:10px;min-width:180px}",""]),e.exports=t},cf9f:function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".resource-loading-indicator[data-v-6457c305]{border:1px solid var(--link);border-radius:10px;position:relative;width:-moz-min-content;width:min-content;overflow:hidden}.resource-loading-indicator .resource-loader[data-v-6457c305]:last-child{position:absolute;top:0;background-color:var(--link);color:var(--link-text);overflow:hidden;white-space:nowrap}.resource-loading-indicator .resource-loader[data-v-6457c305]{padding:1px 10px;width:-moz-max-content;width:max-content}.resource-loading-indicator .resource-loader .rl-bg[data-v-6457c305],.resource-loading-indicator .resource-loader .rl-fg[data-v-6457c305]{align-content:center;display:flex}.resource-loading-indicator .resource-loader .rl-bg>i[data-v-6457c305],.resource-loading-indicator .resource-loader .rl-fg>i[data-v-6457c305]{font-size:18px;line-height:18px}.resource-loading-indicator .resource-loader .rl-bg>span[data-v-6457c305],.resource-loading-indicator .resource-loader .rl-fg>span[data-v-6457c305]{margin-left:5px}",""]),e.exports=t},cfd2:function(e,t){function n(e){return e!==e}e.exports=n},cfe4:function(e,t,n){var r=n("c68c"),o=n("6efc"),i=n("c316"),a=n("a67c"),s=n("b742"),l=n("629b");function c(e,t,n){t=r(t,e);var c=-1,u=t.length,d=!1;while(++c{}}function o(e){return()=>{}}function i(e){return()=>{}}function a(e){return()=>{}}function s(e){return()=>{}}function l(e){return()=>{}}function c(e){return()=>{}}function u(e){return()=>{}}function d(){return[]}function p(e,t){return()=>{}}function f(e){return()=>{}}function h(e){}function v(e){}function b(e){}function m(e){}function g(e){return()=>{}}function y(e){}function _(e){}function w(e){}n.d(t,"b",(function(){return r})),n.d(t,"i",(function(){return o})),n.d(t,"h",(function(){return i})),n.d(t,"a",(function(){return a})),n.d(t,"g",(function(){return s})),n.d(t,"d",(function(){return l})),n.d(t,"f",(function(){return c})),n.d(t,"e",(function(){return u})),n.d(t,"k",(function(){return d})),n.d(t,"l",(function(){return p})),n.d(t,"c",(function(){return f})),n.d(t,"q",(function(){return h})),n.d(t,"m",(function(){return v})),n.d(t,"p",(function(){return b})),n.d(t,"o",(function(){return m})),n.d(t,"j",(function(){return g})),n.d(t,"s",(function(){return y})),n.d(t,"r",(function(){return _})),n.d(t,"n",(function(){return w}))},d66a:function(e,t,n){var r=n("489a"),o=n("cfe4");function i(e,t){return null!=e&&o(e,t,r)}e.exports=i},d709:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=function(){var e=this,t=e._self._c;e._self._setupProxy;return t("button",{ref:"btn",class:e.classes,attrs:{name:e.name,type:e.type,disabled:e.isDisabled,"tab-index":e.tabIndex,"data-testid":e.componentTestid+"-async-button"},on:{click:e.clicked}},[e.displayIcon?t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:e.tooltip,expression:"tooltip"}],class:{icon:!0,"icon-lg":!0,[e.displayIcon]:!0}}):e._e(),"text"===e.labelAs&&e.displayLabel?t("span",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:e.tooltip,expression:"tooltip"},{name:"clean-html",rawName:"v-clean-html",value:e.displayLabel,expression:"displayLabel"}]}):e._e()])},o=[],i=n("8bbf"),a=n.n(i),s={memberOfObject:(e,t)=>Object.entries(e||{}).find(([e])=>e===t),memberOfComponent:(e,t)=>e[t]};const l={ACTION:"action",WAITING:"waiting",SUCCESS:"success",ERROR:"error"},c="text",u="tooltip";var d=a.a.extend({props:{mode:{type:String,default:"edit"},delay:{type:Number,default:5e3},name:{type:String,default:null},disabled:{type:Boolean,default:!1},type:{type:String,default:"button"},tabIndex:{type:Number,default:null},actionColor:{type:String,default:"role-primary"},waitingColor:{type:String,default:"bg-primary"},successColor:{type:String,default:"bg-success"},errorColor:{type:String,default:"bg-error"},actionLabel:{type:String,default:null},waitingLabel:{type:String,default:null},successLabel:{type:String,default:null},errorLabel:{type:String,default:null},icon:{type:String,default:null},labelAs:{type:String,default:c},size:{type:String,default:""},currentPhase:{type:String,default:l.ACTION},componentTestid:{type:String,default:"action-button"},manual:{type:Boolean,default:!1}},data(){return{phase:this.currentPhase}},watch:{currentPhase(e){this.phase=e}},computed:{classes(){const e=this.phase+"Color",t=s.memberOfComponent(this,e),n={btn:!0,[t]:!0};return this.size&&(n["btn-"+this.size]=!0),n},displayIcon(){const e=this.$store.getters["i18n/exists"],t=this.$store.getters["i18n/t"],n=`asyncButton.${this.mode}.${this.phase}Icon`,r=`asyncButton.default.${this.phase}Icon`;let o="";return this.icon?o=this.icon:e(n)?o="icon-"+t(n):e(r)&&(o="icon-"+t(r)),this.isSpinning&&(o||(o="icon-spinner"),o+=" icon-spin"),o},displayLabel(){const e=s.memberOfComponent(this,this.phase+"Label"),t=this.$store.getters["i18n/exists"],n=this.$store.getters["i18n/t"],r=`asyncButton.${this.mode}.${this.phase}`,o="asyncButton.default."+this.phase;return e||(t(r)?n(r):t(o)?n(o):"")},isSpinning(){return this.phase===l.WAITING},isDisabled(){return this.disabled||this.phase===l.WAITING},tooltip(){return this.labelAs===u?{content:this.displayLabel,hideOnTargetClick:!1}:null}},beforeDestroy(){this.timer&&clearTimeout(this.timer)},methods:{clicked(e){if(e&&(e.stopPropagation(),e.preventDefault()),this.isDisabled)return;this.timer&&clearTimeout(this.timer),this.manual||(this.phase=l.WAITING);const t=e=>{this.done(e)};this.$emit("click",t)},done(e){"cancelled"===e?this.phase=l.ACTION:(this.phase=e?l.SUCCESS:l.ERROR,this.timer=setTimeout(()=>{this.timerDone()},this.delay))},timerDone(){this.phase!==l.SUCCESS&&this.phase!==l.ERROR||(this.phase=l.ACTION)},focus(){this.$refs.btn.focus()}}}),p=d,f=n("d802"),h=Object(f["a"])(p,r,o,!1,null,null,null);t["b"]=h.exports},d802:function(e,t,n){"use strict";function r(e,t,n,r,o,i,a,s){var l,c="function"===typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),i&&(c._scopeId="data-v-"+i),a?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=l):o&&(l=s?function(){o.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:o),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:c}}n.d(t,"a",(function(){return r}))},d856:function(e,t,n){var r=n("e697");function o(){this.__data__=r?r(null):{},this.size=0}e.exports=o},d99b:function(e,t){function n(e,t){var n=-1,r=Array(e);while(++nI[data-v-01996ade]{font-size:64px;margin-bottom:20px}.message-icon>I.info[data-v-01996ade]{color:var(--primary)}.message-icon>I.error[data-v-01996ade]{color:var(--error)}.message-icon>I.warning[data-v-01996ade]{color:var(--warning)}.message-icon>I.success[data-v-01996ade]{color:var(--success)}.message-icon>.message[data-v-01996ade]{font-size:20px;margin-bottom:40px;max-width:60%;text-align:center;line-height:30px}",""]),e.exports=t},dbc0:function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".table-options-group .table-options-btn.role-multi-action[data-v-96d8a090]{background-color:transparent;border:none;font-size:18px}.table-options-group .table-options-btn.role-multi-action[data-v-96d8a090]:focus,.table-options-group .table-options-btn.role-multi-action[data-v-96d8a090]:hover{background-color:var(--accent-btn);box-shadow:none}.table-options-group .table-options-container[data-v-96d8a090]{width:350px;border:1px solid var(--primary);background-color:var(--body-bg);padding:20px;z-index:1}.table-options-group .table-options-container .table-options-grouping[data-v-96d8a090]{display:flex;align-items:center;margin-bottom:20px}.table-options-group .table-options-container .table-options-grouping span[data-v-96d8a090]{white-space:nowrap;margin-right:10px}.table-options-group .table-options-container ul[data-v-96d8a090]{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto}.table-options-group .table-options-container ul li[data-v-96d8a090]{margin:0;padding:0}.table-options-group .table-options-container ul li.visible[data-v-96d8a090]{margin:0 0 10px 0}.sortable>SPAN[data-v-96d8a090]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.sortable>SPAN[data-v-96d8a090]:active,.sortable>SPAN[data-v-96d8a090]:hover{text-decoration:underline;color:var(--body-text)}thead tr[data-v-96d8a090]{background-color:var(--sortable-table-header-bg);color:var(--body-text);text-align:left}thead tr[data-v-96d8a090]:not(.loading){border-bottom:1px solid var(--sortable-table-top-divider)}th[data-v-96d8a090]{padding:8px 5px;font-weight:400;border:0;color:var(--body-text)}th .table-header-container[data-v-96d8a090]{display:inherit}th .table-header-container>span[data-v-96d8a090]{display:flex;align-items:center}th .table-header-container.not-filterable[data-v-96d8a090],th .table-header-container.not-filterable .icon-stack[data-v-96d8a090]{margin-top:-2px}th .table-header-container .not-filter-icon[data-v-96d8a090]{font-size:16px;color:var(--primary);vertical-align:super}th[data-v-96d8a090]:first-child{padding-left:10px}th[data-v-96d8a090]:last-child{padding-right:10px}th:not(.sortable)>SPAN[data-v-96d8a090]{display:block;margin-bottom:2px}th A[data-v-96d8a090]{color:var(--body-text)}@media only screen and (max-width:480px){th.desktop[data-v-96d8a090],th.laptop[data-v-96d8a090],th.tablet[data-v-96d8a090]{display:none}}@media only screen and (max-width:992px){th.desktop[data-v-96d8a090],th.laptop[data-v-96d8a090]{display:none}}@media only screen and (max-width:1281px){th.desktop[data-v-96d8a090]{display:none}}.icon-stack[data-v-96d8a090]{width:12px}.icon-sort.faded[data-v-96d8a090]{opacity:.3}",""]),e.exports=t},dca0:function(e,t,n){var r=n("201b"),o=r["__core-js_shared__"];e.exports=o},dd09:function(e,t){var n=Object.prototype,r=n.hasOwnProperty;function o(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&r.call(e,"index")&&(n.index=e.index,n.input=e.input),n}e.exports=o},dda8:function(e,t,n){(function(e){var r=n("201b"),o=n("0e30"),i=t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i,l=s?r.Buffer:void 0,c=l?l.isBuffer:void 0,u=c||o;e.exports=u}).call(this,n("6984")(e))},ddd1:function(e,t){function n(e){var t=-1,n=null==e?0:e.length,r=0,o=[];while(++te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}var O=Object.prototype.hasOwnProperty;function A(e,t){return e=e.slice(),e.push(t),e}function E(e,t){return t=t.slice(),t.unshift(e),t}var S=function(e){s(n,e);var t=b(n);function n(e){var r;return a(this,n),r=t.call(this,'JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),r.avoidNew=!0,r.value=e,r.name="NewError",r}return n}(f(Error));function T(e,t,n,r,o){if(!(this instanceof T))try{return new T(e,t,n,r,o)}catch(c){if(!c.avoidNew)throw c;return c.value}"string"===typeof e&&(o=r,r=n,n=t,t=e,e=null);var a=e&&"object"===i(e);if(e=e||{},this.json=e.json||n,this.path=e.path||t,this.resultType=e.resultType||"value",this.flatten=e.flatten||!1,this.wrap=!O.call(e,"wrap")||e.wrap,this.sandbox=e.sandbox||{},this.preventEval=e.preventEval||!1,this.parent=e.parent||null,this.parentProperty=e.parentProperty||null,this.callback=e.callback||r||null,this.otherTypeCallback=e.otherTypeCallback||o||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},!1!==e.autostart){var s={path:a?e.path:t};a?"json"in e&&(s.json=e.json):s.json=n;var l=this.evaluate(s);if(!l||"object"!==i(l))throw new S(l);return l}}T.prototype.evaluate=function(e,t,n,r){var o=this,a=this.parent,s=this.parentProperty,l=this.flatten,c=this.wrap;if(this.currResultType=this.resultType,this.currPreventEval=this.preventEval,this.currSandbox=this.sandbox,n=n||this.callback,this.currOtherTypeCallback=r||this.otherTypeCallback,t=t||this.json,e=e||this.path,e&&"object"===i(e)&&!Array.isArray(e)){if(!e.path&&""!==e.path)throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!O.call(e,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');var u=e;t=u.json,l=O.call(e,"flatten")?e.flatten:l,this.currResultType=O.call(e,"resultType")?e.resultType:this.currResultType,this.currSandbox=O.call(e,"sandbox")?e.sandbox:this.currSandbox,c=O.call(e,"wrap")?e.wrap:c,this.currPreventEval=O.call(e,"preventEval")?e.preventEval:this.currPreventEval,n=O.call(e,"callback")?e.callback:n,this.currOtherTypeCallback=O.call(e,"otherTypeCallback")?e.otherTypeCallback:this.currOtherTypeCallback,a=O.call(e,"parent")?e.parent:a,s=O.call(e,"parentProperty")?e.parentProperty:s,e=e.path}if(a=a||null,s=s||null,Array.isArray(e)&&(e=T.toPathString(e)),(e||""===e)&&t){var d=T.toPathArray(e);"$"===d[0]&&d.length>1&&d.shift(),this._hasParentSelector=null;var p=this._trace(d,t,["$"],a,s,n).filter((function(e){return e&&!e.isParentSelector}));return p.length?c||1!==p.length||p[0].hasArrExpr?p.reduce((function(e,t){var n=o._getPreferredOutput(t);return l&&Array.isArray(n)?e=e.concat(n):e.push(n),e}),[]):this._getPreferredOutput(p[0]):c?[]:void 0}},T.prototype._getPreferredOutput=function(e){var t=this.currResultType;switch(t){case"all":var n=Array.isArray(e.path)?e.path:T.toPathArray(e.path);return e.pointer=T.toPointer(n),e.path="string"===typeof e.path?e.path:T.toPathString(e.path),e;case"value":case"parent":case"parentProperty":return e[t];case"path":return T.toPathString(e[t]);case"pointer":return T.toPointer(e.path);default:throw new TypeError("Unknown result type")}},T.prototype._handleCallback=function(e,t,n){if(t){var r=this._getPreferredOutput(e);e.path="string"===typeof e.path?e.path:T.toPathString(e.path),t(r,n,e)}},T.prototype._trace=function(e,t,n,r,o,a,s,l){var c,u=this;if(!e.length)return c={path:n,value:t,parent:r,parentProperty:o,hasArrExpr:s},this._handleCallback(c,a,"value"),c;var d=e[0],p=e.slice(1),f=[];function h(e){Array.isArray(e)?e.forEach((function(e){f.push(e)})):f.push(e)}if(("string"!==typeof d||l)&&t&&O.call(t,d))h(this._trace(p,t[d],A(n,d),t,d,a,s));else if("*"===d)this._walk(d,p,t,n,r,o,a,(function(e,t,n,r,o,i,a,s){h(u._trace(E(e,n),r,o,i,a,s,!0,!0))}));else if(".."===d)h(this._trace(p,t,n,r,o,a,s)),this._walk(d,p,t,n,r,o,a,(function(e,t,n,r,o,a,s,l){"object"===i(r[e])&&h(u._trace(E(t,n),r[e],A(o,e),r,e,l,!0))}));else{if("^"===d)return this._hasParentSelector=!0,{path:n.slice(0,-1),expr:p,isParentSelector:!0};if("~"===d)return c={path:A(n,d),value:o,parent:r,parentProperty:null},this._handleCallback(c,a,"property"),c;if("$"===d)h(this._trace(p,t,n,null,null,a,s));else if(/^(\x2D?[0-9]*):(\x2D?[0-9]*):?([0-9]*)$/.test(d))h(this._slice(d,p,t,n,r,o,a));else if(0===d.indexOf("?(")){if(this.currPreventEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");this._walk(d,p,t,n,r,o,a,(function(e,t,n,r,o,i,a,s){u._eval(t.replace(/^\?\(((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?)\)$/,"$1"),r[e],e,o,i,a)&&h(u._trace(E(e,n),r,o,i,a,s,!0))}))}else if("("===d[0]){if(this.currPreventEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");h(this._trace(E(this._eval(d,t,n[n.length-1],n.slice(0,-1),r,o),p),t,n,r,o,a,s))}else if("@"===d[0]){var v=!1,b=d.slice(1,-2);switch(b){case"scalar":t&&["object","function"].includes(i(t))||(v=!0);break;case"boolean":case"string":case"undefined":case"function":i(t)===b&&(v=!0);break;case"integer":!Number.isFinite(t)||t%1||(v=!0);break;case"number":Number.isFinite(t)&&(v=!0);break;case"nonFinite":"number"!==typeof t||Number.isFinite(t)||(v=!0);break;case"object":t&&i(t)===b&&(v=!0);break;case"array":Array.isArray(t)&&(v=!0);break;case"other":v=this.currOtherTypeCallback(t,n,r,o);break;case"null":null===t&&(v=!0);break;default:throw new TypeError("Unknown value type "+b)}if(v)return c={path:n,value:t,parent:r,parentProperty:o},this._handleCallback(c,a,"value"),c}else if("`"===d[0]&&t&&O.call(t,d.slice(1))){var m=d.slice(1);h(this._trace(p,t[m],A(n,m),t,m,a,s,!0))}else if(d.includes(",")){var g,y=d.split(","),_=k(y);try{for(_.s();!(g=_.n()).done;){var w=g.value;h(this._trace(E(w,p),t,n,r,o,a,!0))}}catch(I){_.e(I)}finally{_.f()}}else!l&&t&&O.call(t,d)&&h(this._trace(p,t[d],A(n,d),t,d,a,s,!0))}if(this._hasParentSelector)for(var x=0;x-1?e.slice(0,a+1)+" return "+e.slice(a+1):" return "+e;return d(Function,m(n).concat([s])).apply(void 0,m(o))}};var C=n("8bbf"),I=n.n(C),L=(n("7195"),n("b506")),D=n.n(L),N=n("c316"),j=n.n(N),P=n("9e74"),F=n.n(P),$=(n("94a3"),n("2cb5")),M=n("bddd");function U(e,t,n){let r=e;if(!r)return;const o=Object($["o"])(t);for(let i=0;i{const n=e[t];Array.isArray(n)?(e[t]=n.map(e=>{if(null!==e&&void 0!==e)return V(e)}),0===e[t].length&&delete e[t]):"undefined"===typeof n||null===n?delete e[t]:D()(n)&&(H(n)&&delete e[t],e[t]=V(n))}),e}function q(e,t){const n=Object.keys(e||{}),r=Object.keys(t||{});if(n.length!==r.length)return!1;for(let o=0;othis.optionKey?this.get(e,this.optionKey):this.getOptionLabel(e),r=n(e),o=this.value||[],i=o.findIndex(e=>n(e)===r);i<0||(this.value.splice(i,1),this.$emit("input",this.value),t.preventDefault(),t.stopPropagation(),this.closeOnSelect&&this.$refs["select-input"].closeSearchOptions())}function o(e,t,n,r){const o=t.$parent.$el,i=o.getBoundingClientRect(),a=r||"bottom-start",s=document.body.offsetHeight,l=s-window.scrollY-i.y-1;let c;if(!a.includes("top")){c=i.y+i.height-1;const t=c+e.offsetHeight;t>window.innerHeight?c=void 0:c+=window.scrollY}c?(e.style.top=c+"px",e.classList.remove("vs__dropdown-up"),o.classList.remove("vs__dropdown-up")):(e.style.bottom=l+"px",e.classList.add("vs__dropdown-up"),o.classList.add("vs__dropdown-up")),e.style.left=i.x+"px",e.style.width="min-content",e.style.minWidth=i.width+"px"}n.d(t,"b",(function(){return r})),n.d(t,"a",(function(){return o}))},e902:function(e,t,n){var r=n("a4fc");function o(e,t){var n=e.length;while(n--)if(r(e[n][0],t))return n;return-1}e.exports=o},e91b:function(e,t,n){var r=n("1001");function o(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}e.exports=o},e942:function(e,t){function n(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}e.exports=n},e963:function(e,t,n){"use strict";n("4f1b")},e972:function(e,t){var n=/\s/;function r(e){var t=e.length;while(t--&&n.test(e.charAt(t)));return t}e.exports=r},ea69:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));n("4048"),n("da25"),n("907c"),n("a8b9");const r=(e,t)=>{const n=e.getters["currentStore"](t),r=e.getters[n+"/schemaFor"];if(!n||!r)return!1;const o=r(t)||e.getters["type-map/isVirtual"](t);return!!o}},eb2e:function(e,t,n){"use strict";n("3434")},eb32:function(e,t,n){"use strict";var r=function(){var e=this,t=e._self._c;e._self._setupProxy;return t("div",{staticClass:"banner",class:{[e.color]:!0}},[e.icon?t("div",{staticClass:"banner__icon",attrs:{"data-testid":"banner-icon"}},[t("i",{staticClass:"icon icon-2x",class:e.icon})]):e._e(),t("div",{staticClass:"banner__content",class:{closable:e.closable,stacked:e.stacked,icon:e.icon},attrs:{"data-testid":"banner-content"}},[e._t("default",(function(){return[e.labelKey?t("t",{attrs:{k:e.labelKey,raw:!0}}):e.messageLabel?t("span",[e._v(e._s(e.messageLabel))]):t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.nlToBr(e.label),expression:"nlToBr(label)"}]})]})),e.closable?t("div",{staticClass:"banner__content__closer",on:{click:function(t){return e.$emit("close")}}},[t("i",{staticClass:"icon icon-close closer-icon",attrs:{"data-testid":"banner-close"}})]):e._e()],2)])},o=[],i=n("8bbf"),a=n.n(i),s=n("2cb5"),l=n("3e9d"),c=a.a.extend({props:{color:{type:String,default:"secondary"},label:{type:[String,Error,Object],default:null},labelKey:{type:String,default:null},icon:{type:String,default:null},closable:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1}},computed:{messageLabel(){return"string"!==typeof this.label?Object(l["c"])(this.label):void 0}},methods:{nlToBr:s["k"]}}),u=c,d=(n("c4a4"),n("d802")),p=Object(d["a"])(u,r,o,!1,null,"02d86e5d",null);t["a"]=p.exports},ecda:function(e,t,n){var r=n("1001"),o=n("94dd"),i=n("06cb"),a=n("6d56"),s=n("e91b"),l="[object Boolean]",c="[object Date]",u="[object Map]",d="[object Number]",p="[object RegExp]",f="[object Set]",h="[object String]",v="[object Symbol]",b="[object ArrayBuffer]",m="[object DataView]",g="[object Float32Array]",y="[object Float64Array]",_="[object Int8Array]",w="[object Int16Array]",x="[object Int32Array]",k="[object Uint8Array]",O="[object Uint8ClampedArray]",A="[object Uint16Array]",E="[object Uint32Array]";function S(e,t,n){var S=e.constructor;switch(t){case b:return r(e);case l:case c:return new S(+e);case m:return o(e,n);case g:case y:case _:case w:case x:case k:case O:case A:case E:return s(e,n);case u:return new S;case d:case h:return new S(e);case p:return i(e);case f:return new S;case v:return a(e)}}e.exports=S},ecf6:function(e,t,n){var r=n("fbba"),o=n("906d"),i=o(r);e.exports=i},ef42:function(e,t,n){var r=n("5b4b"),o=n("5f84"),i=Object.prototype,a=i.propertyIsEnumerable,s=Object.getOwnPropertySymbols,l=s?function(e){return null==e?[]:(e=Object(e),r(s(e),(function(t){return a.call(e,t)})))}:o;e.exports=l},eff8:function(e,t,n){var r=n("0e19"),o=n("b742"),i=n("b4b4"),a="[object Arguments]",s="[object Array]",l="[object Boolean]",c="[object Date]",u="[object Error]",d="[object Function]",p="[object Map]",f="[object Number]",h="[object Object]",v="[object RegExp]",b="[object Set]",m="[object String]",g="[object WeakMap]",y="[object ArrayBuffer]",_="[object DataView]",w="[object Float32Array]",x="[object Float64Array]",k="[object Int8Array]",O="[object Int16Array]",A="[object Int32Array]",E="[object Uint8Array]",S="[object Uint8ClampedArray]",T="[object Uint16Array]",R="[object Uint32Array]",C={};function I(e){return i(e)&&o(e.length)&&!!C[r(e)]}C[w]=C[x]=C[k]=C[O]=C[A]=C[E]=C[S]=C[T]=C[R]=!0,C[a]=C[s]=C[y]=C[l]=C[_]=C[c]=C[u]=C[d]=C[p]=C[f]=C[h]=C[v]=C[b]=C[m]=C[g]=!1,e.exports=I},effc:function(e,t,n){var r=n("6634"),o=n("84cb"),i=n("d12b");function a(e){var t=o(e);return 1==t.length&&t[0][2]?i(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}e.exports=a},f009:function(e,t,n){"use strict";n("f410")},f010:function(e,t,n){"use strict";var r;n.d(t,"a",(function(){return r})),function(e){e["CONTEXT_AWARE"]="kubearmor/contextAwareResources",e["RULES"]="kubearmor/rules",e["MUTATION"]="kubearmor/mutation",e["RESOURCES"]="kubearmor/resources",e["QUESTIONS"]="kubearmor/questions-ui"}(r||(r={}))},f044:function(e,t,n){"use strict";n("b6c8")},f19a:function(e,t){function n(){this.__data__=[],this.size=0}e.exports=n},f390:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n("907c"),o=n("0788"),i=n("bddd");n("e24b");function a(e){const t=e["getStoreNameByProductId"],n=e[t+"/all"](r["w"]),a=Object(i["e"])(n,"id",Object(o["b"])(r["l"].PODMONITOR));return!!a}},f410:function(e,t,n){var r=n("c268");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var o=n("0ed3").default;o("0a8f5d4d",r,!0,{sourceMap:!1,shadowMode:!1})},f522:function(e,t,n){var r=n("24da");function o(e){return r(this,e).has(e)}e.exports=o},f533:function(e,t,n){var r=n("3819"),o=n("9e79"),i=n("5e52"),a=1/0,s=r&&1/i(new r([,-0]))[1]==a?function(e){return new r(e)}:o;e.exports=s},f595:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAgVBMVEUAAAAkU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU/8kU//ULCqVAAAAKnRSTlMAjopHOdr8snNsY1Ae+aq3gEAqCfTyo1kvBOvm4sqglyYgGhbUmXVvNBL6rShDAAAAw0lEQVQ4y83Q2Q6CMBCF4aNYQG3LJpu74jrv/4ACTSEUEi4kxu/6n2RyMKUr+jhaGcthCvcRGr5dwLSmADPFgkOnWcsPUUrJBSnxm1FHfC4Dl4462HBBXX4eBTs66IBlZJjftzZRrAN5FmaQ1Ic6SJA6nufJbRs8pZTHrPnhsa74dhtAIcO3gdiNBIkzErg/COakrQaDU3FQU9leBGWhWbdq0CDilwvn/JqjZ1lf7hljKQatSFv+b/ASpIgAw0JLCTGpD5arSeJmn1I0AAAAAElFTkSuQmCC"},f6f6:function(e,t,n){var r=n("dca0"),o=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function i(e){return!!o&&o in e}e.exports=i},f72d:function(e,t,n){var r=n("daaf"),o=n("b742");function i(e){return null!=e&&o(e.length)&&!r(e)}e.exports=i},f967:function(e,t,n){"use strict";n("9d57")},f9f5:function(e,t,n){var r=n("e697"),o="__lodash_hash_undefined__",i=Object.prototype,a=i.hasOwnProperty;function s(e){var t=this.__data__;if(r){var n=t[e];return n===o?void 0:n}return a.call(t,e)?t[e]:void 0}e.exports=s},fa8a:function(e,t,n){var r=n("f19a"),o=n("930a"),i=n("e556"),a=n("0a87"),s=n("2f33");function l(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t=e?t:\"\"+Array(e+1-r.length).join(n)+t},d={s:c,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+c(r,2,\"0\")+\":\"+c(i,2,\"0\")},m:function(t,e){var n=12*(e.year()-t.year())+(e.month()-t.month()),r=t.clone().add(n,u),i=e-r<0,s=t.clone().add(n+(i?-1:1),u);return Number(-(n+(e-r)/(i?r-s:s-r))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return{M:u,y:a,w:s,d:i,D:\"date\",h:r,m:n,s:e,ms:t,Q:o}[h]||String(h||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},$={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},l=\"en\",m={};m[l]=$;var y=function(t){return t instanceof v},M=function(t,e,n){var r;if(!t)return l;if(\"string\"==typeof t)m[t]&&(r=t),e&&(m[t]=e,r=t);else{var i=t.name;m[i]=t,r=i}return!n&&r&&(l=r),r||!n&&l},g=function(t,e){if(y(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new v(n)},D=d;D.l=M,D.i=y,D.w=function(t,e){return g(t,{locale:e.$L,utc:e.$u,$offset:e.$offset})};var v=function(){function c(t){this.$L=this.$L||M(t.locale,null,!0),this.parse(t)}var d=c.prototype;return d.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(D.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(h);if(r)return n?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(e)}(t),this.init()},d.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},d.$utils=function(){return D},d.isValid=function(){return!(\"Invalid Date\"===this.$d.toString())},d.isSame=function(t,e){var n=g(t);return this.startOf(e)<=n&&n<=this.endOf(e)},d.isAfter=function(t,e){return g(t) tag\n\n// load the styles\nvar content = require(\"!!../../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceLoadingIndicator.vue?vue&type=style&index=0&id=6457c305&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4509af85\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","import { ANNOTATIONS_TO_IGNORE_REGEX, LABELS_TO_IGNORE_REGEX } from '@shell/config/labels-annotations';\nimport omitBy from 'lodash/omitBy';\nimport pickBy from 'lodash/pickBy';\nimport Vue from 'vue';\nimport { matchesSomeRegex } from '@shell/utils/string';\nimport Resource from '@shell/plugins/dashboard-store/resource-class';\n\n// these are defined elsewhere in Steve models and will cause the error \"Cannot set property of [object Object] which has only a getter\" if defined at top-level\nexport function cleanHybridResources(data) {\n const potentialNormanHoldovers = ['state', 'name', 'description', 'labels', 'annotations'];\n\n potentialNormanHoldovers.forEach((key) => delete data[key]);\n\n return data;\n}\n\nexport default class HybridModel extends Resource {\n constructor(data, ctx, rehydrateNamespace = null, setClone = false) {\n const cleanedData = cleanHybridResources(data);\n\n super(cleanedData, ctx, rehydrateNamespace, setClone);\n }\n\n get labels() {\n const all = this.metadata?.labels || {};\n\n return omitBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n }\n\n setLabels(val) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n const all = this.metadata.labels || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n\n Vue.set(this.metadata, 'labels', { ...wasIgnored, ...val });\n }\n\n setLabel(key, val) {\n if ( val ) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n if ( !this.metadata.labels ) {\n this.metadata.labels = {};\n }\n\n Vue.set(this.metadata.labels, key, val);\n } else if ( this.metadata?.labels ) {\n Vue.set(this.metadata.labels, key, undefined);\n delete this.metadata.labels[key];\n }\n }\n\n get annotations() {\n const all = this.metadata?.annotations || {};\n\n return omitBy(all, (value, key) => {\n return matchesSomeRegex(key, ANNOTATIONS_TO_IGNORE_REGEX);\n });\n }\n\n setAnnotations(val) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n const all = this.metadata.annotations || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, ANNOTATIONS_TO_IGNORE_REGEX);\n });\n\n Vue.set(this.metadata, 'annotations', { ...wasIgnored, ...val });\n }\n\n setAnnotation(key, val) {\n if ( val ) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n if ( !this.metadata.annotations ) {\n this.metadata.annotations = {};\n }\n\n Vue.set(this.metadata.annotations, key, val);\n } else if ( this.metadata?.annotations ) {\n Vue.set(this.metadata.annotations, key, undefined);\n delete this.metadata.annotations[key];\n }\n }\n\n get state() {\n return this.stateObj?.name || 'unknown';\n }\n}\n","import Vue from 'vue';\nimport { get } from '@shell/utils/object';\nimport { DESCRIPTION } from '@shell/config/labels-annotations';\nimport { NORMAN } from '@shell/config/types';\nimport SteveDescriptionModel from '@shell/plugins/steve/steve-description-class';\nimport { AS, MODE, _CLONE, _UNFLAG } from '@shell/config/query-params';\n\nexport const CATTLE_API_GROUP = '.cattle.io';\n\nexport const SUBTYPE_MAPPING = {\n GLOBAL: {\n key: 'GLOBAL',\n type: 'management.cattle.io.globalrole',\n defaultKey: 'newUserDefault',\n id: 'GLOBAL',\n labelKey: 'rbac.roletemplate.subtypes.GLOBAL.label',\n },\n CLUSTER: {\n key: 'CLUSTER',\n type: 'management.cattle.io.roletemplate',\n context: 'cluster',\n defaultKey: 'clusterCreatorDefault',\n id: 'CLUSTER',\n labelKey: 'rbac.roletemplate.subtypes.CLUSTER.label',\n },\n NAMESPACE: {\n key: 'NAMESPACE',\n type: 'management.cattle.io.roletemplate',\n context: 'project',\n defaultKey: 'projectCreatorDefault',\n id: 'NAMESPACE',\n labelKey: 'rbac.roletemplate.subtypes.NAMESPACE.label',\n },\n RBAC_ROLE: {\n key: 'RBAC_ROLE',\n type: 'rbac.authorization.k8s.io.role',\n id: 'RBAC_ROLE',\n labelKey: 'rbac.roletemplate.subtypes.RBAC_ROLE.label',\n },\n RBAC_CLUSTER_ROLE: {\n key: 'RBAC_CLUSTER_ROLE',\n type: 'rbac.authorization.k8s.io.clusterrole',\n id: 'RBAC_CLUSTER_ROLE',\n labelKey: 'rbac.roletemplate.subtypes.RBAC_CLUSTER_ROLE.label',\n }\n};\n\nexport const VERBS = [\n 'create',\n 'delete',\n 'get',\n 'list',\n 'patch',\n 'update',\n 'watch',\n];\n\nexport const CREATE_VERBS = new Set(['PUT', 'blocked-PUT']);\n\nexport default class RoleTemplate extends SteveDescriptionModel {\n get customValidationRules() {\n return [\n {\n path: 'rules',\n validators: [`roleTemplateRules:${ this.type }`],\n nullable: false,\n type: 'array',\n },\n ];\n }\n\n get details() {\n const out = this._details;\n\n out.unshift({\n label: this.t('resourceDetail.detailTop.name'),\n content: get(this, 'name')\n },\n // API returns a blank description property, this overrides our own link to the description\n {\n label: this.t('resourceDetail.detailTop.description'),\n content: this.metadata?.annotations?.[DESCRIPTION]\n });\n\n return out;\n }\n\n get state() {\n return this.locked ? 'locked' : this.metadata?.state?.name || 'unknown';\n }\n\n get subtype() {\n if (this._subtype) {\n return this._subtype;\n }\n\n if (this.type === SUBTYPE_MAPPING.CLUSTER.type && this.context === SUBTYPE_MAPPING.CLUSTER.context) {\n return SUBTYPE_MAPPING.CLUSTER.key;\n }\n\n if (this.type === SUBTYPE_MAPPING.NAMESPACE.type && this.context === SUBTYPE_MAPPING.NAMESPACE.context) {\n return SUBTYPE_MAPPING.NAMESPACE.key;\n }\n\n return null;\n }\n\n updateSubtype(subtype) {\n Vue.set(this, '_subtype', subtype);\n this.context = SUBTYPE_MAPPING[subtype].context;\n }\n\n get default() {\n const defaultKey = SUBTYPE_MAPPING[this.subtype]?.defaultKey;\n\n return !!this[defaultKey];\n }\n\n updateDefault(value) {\n const defaultKey = SUBTYPE_MAPPING[this.subtype].defaultKey;\n\n Vue.set(this, defaultKey, value);\n }\n\n get listLocation() {\n return {\n name: `c-cluster-auth-roles`,\n hash: `#${ this.subtype }`\n };\n }\n\n get detailLocation() {\n return {\n ...this._detailLocation,\n name: `c-cluster-auth-roles-resource-id`,\n };\n }\n\n get doneOverride() {\n return this.listLocation;\n }\n\n get parentLocationOverride() {\n return this.listLocation;\n }\n\n get basicNorman() {\n if (this.id) {\n return this.$dispatch(`rancher/find`, { id: this.id, type: NORMAN.ROLE_TEMPLATE }, { root: true });\n }\n\n return this.$dispatch(`rancher/create`, { type: NORMAN.ROLE_TEMPLATE, name: this.displayName }, { root: true });\n }\n\n get norman() {\n return (async() => {\n const norman = await this.basicNorman;\n\n norman.rules = this.rules;\n norman.locked = this.locked;\n norman.clusterCreatorDefault = this.clusterCreatorDefault || false;\n norman.projectCreatorDefault = this.projectCreatorDefault || false;\n norman.context = this.context;\n norman.description = this.description;\n norman.roleTemplateIds = this.roleTemplateNames;\n\n return norman;\n })();\n }\n\n get canCreate() {\n const schema = this.$getters['schemaFor'](this.type);\n\n return schema?.resourceMethods.find((verb) => CREATE_VERBS.has(verb));\n }\n\n goToClone(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _CLONE,\n [AS]: _UNFLAG,\n roleContext: this.subtype,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n async save() {\n const norman = await this.norman;\n\n for (const rule of norman.rules) {\n if (rule.nonResourceURLs && rule.nonResourceURLs.length) {\n delete rule.resources;\n delete rule.apiGroups;\n } else {\n delete rule.nonResourceURLs;\n }\n }\n\n return norman.save();\n }\n\n async remove() {\n const norman = await this.norman;\n\n await norman.remove();\n }\n}\n","import { mapState, mapGetters } from 'vuex';\nimport { resourceNames } from '@shell/utils/string';\nimport { MANAGEMENT } from '@shell/config/types';\nimport { SUBTYPE_MAPPING } from '@shell/models/management.cattle.io.roletemplate';\nconst CLUSTER = SUBTYPE_MAPPING.CLUSTER.key;\n\nexport default {\n data() {\n return {\n warning: '',\n info: '',\n };\n },\n\n computed: {\n ...mapState('action-menu', ['toRemove']),\n ...mapGetters({ t: 'i18n/t' }),\n\n names() {\n return this.toRemove.map((obj) => obj.nameDisplay).slice(0, 5);\n },\n\n plusMore() {\n const remaining = this.toRemove.length - this.names.length;\n\n return this.t('promptRemove.andOthers', { count: remaining });\n },\n },\n watch: {\n value: {\n handler(neu) {\n this.handleRoleDeletionCheck(neu, neu[0].type, this.$route.hash);\n },\n immediate: true\n }\n },\n methods: {\n resourceNames,\n async handleRoleDeletionCheck(rolesToRemove, resourceType, queryHash) {\n this.warning = '';\n let resourceToCheck;\n let propToMatch;\n let numberOfRolesWithBinds = 0;\n const uniqueUsersWithBinds = new Set();\n\n this.info = this.t('rbac.globalRoles.waiting', { count: rolesToRemove.length });\n\n switch (resourceType) {\n case MANAGEMENT.GLOBAL_ROLE:\n resourceToCheck = MANAGEMENT.GLOBAL_ROLE_BINDING;\n propToMatch = 'globalRoleName';\n break;\n default:\n if (queryHash.includes(CLUSTER)) {\n resourceToCheck = MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING;\n } else {\n resourceToCheck = MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING;\n }\n propToMatch = 'roleTemplateName';\n break;\n }\n\n try {\n const request = await this.$store.dispatch('management/request', {\n url: `/v1/${ resourceToCheck }`,\n method: 'get',\n }, { root: true });\n\n // We need to fetch the users here in order to get an accurate count when selecting global roles.\n const users = await this.$store.dispatch('management/request', {\n url: `/v1/${ MANAGEMENT.USER }`,\n method: 'get',\n }, { root: true });\n\n const userMap = users.data?.reduce((map, user) => {\n if ( user.username ) {\n map[user.id] = user;\n }\n\n return map;\n }, {});\n\n if (request.data && request.data.length) {\n rolesToRemove.forEach((toRemove) => {\n const usedRoles = request.data.filter((item) => item[propToMatch] === toRemove.id);\n\n if (usedRoles.length) {\n const uniqueUsers = [...new Set(usedRoles.map((item) => item.userName).filter((user) => userMap[user]))];\n\n if (uniqueUsers.length) {\n numberOfRolesWithBinds++;\n uniqueUsers.forEach((user) => uniqueUsersWithBinds.add(user));\n }\n }\n });\n\n if (numberOfRolesWithBinds && uniqueUsersWithBinds.size) {\n this.info = '';\n this.warning = this.t('rbac.globalRoles.usersBound', { count: uniqueUsersWithBinds.size });\n } else {\n this.info = this.t('rbac.globalRoles.notBound', null, true);\n }\n } else {\n this.info = this.t('rbac.globalRoles.notBound', null, true);\n }\n } catch (e) {\n this.info = this.t('rbac.globalRoles.unableToCheck');\n }\n },\n },\n};\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","import { SCHEMA } from '@shell/config/types';\n\nimport { applyChangeset, changeset, changesetConflicts } from '@shell/utils/object';\n\nexport const KEY_FIELD_FOR = {\n [SCHEMA]: '_id',\n default: 'id',\n};\n\nexport function keyFieldFor(type) {\n return KEY_FIELD_FOR[type] || KEY_FIELD_FOR['default'];\n}\n\nexport function normalizeType(type) {\n type = (type?.type || type || '').toLowerCase();\n\n return type;\n}\n\n// Detect and resolve conflicts from a 409 response.\n// If they are resolved, return a false-y value\n// Else they can't be resolved, return an array of errors to show to the user.\nexport async function handleConflict(initialValueJSON, value, liveValue, rootGetters, store, storeNamespace) {\n const orig = await store.dispatch(`${ storeNamespace }/cleanForDiff`, initialValueJSON, { root: true });\n const user = await store.dispatch(`${ storeNamespace }/cleanForDiff`, value.toJSON(), { root: true });\n const cur = await store.dispatch(`${ storeNamespace }/cleanForDiff`, liveValue.toJSON(), { root: true });\n\n const bgChange = changeset(orig, cur);\n const userChange = changeset(orig, user);\n const actualConflicts = changesetConflicts(bgChange, userChange);\n\n console.log('Background Change', bgChange); // eslint-disable-line no-console\n console.log('User Change', userChange); // eslint-disable-line no-console\n console.log('Conflicts', actualConflicts); // eslint-disable-line no-console\n\n value.metadata.resourceVersion = liveValue.metadata.resourceVersion;\n applyChangeset(value, bgChange);\n\n if ( actualConflicts.length ) {\n // Stop the save and let the user inspect and continue editing\n const out = [rootGetters['i18n/t']('validation.conflict', { fields: actualConflicts.join(', '), fieldCount: actualConflicts.length })];\n\n return out;\n } else {\n // The save can continue\n return false;\n }\n}\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionDropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionDropdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ActionDropdown.vue?vue&type=template&id=70f0de36\"\nimport script from \"./ActionDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./ActionDropdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./ActionDropdown.vue?vue&type=style&index=0&id=70f0de36&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('thead',[_c('tr',{class:{'loading': _vm.loading}},[(_vm.tableActions)?_c('th',{attrs:{\"width\":_vm.checkWidth,\"align\":\"middle\"}},[_c('Checkbox',{staticClass:\"check\",attrs:{\"data-testid\":\"sortable-table_check_select_all\",\"indeterminate\":_vm.isIndeterminate,\"disabled\":_vm.noRows || _vm.noResults},model:{value:(_vm.isAll),callback:function ($$v) {_vm.isAll=$$v},expression:\"isAll\"}})],1):_vm._e(),(_vm.subExpandColumn)?_c('th',{attrs:{\"width\":_vm.expandWidth}}):_vm._e(),_vm._l((_vm.columns),function(col){return _c('th',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.hasAdvancedFiltering || (_vm.hasAdvancedFiltering && col.isColVisible)),expression:\"!hasAdvancedFiltering || (hasAdvancedFiltering && col.isColVisible)\"}],key:col.name,class:{ sortable: col.sort, [col.breakpoint]: !!col.breakpoint},attrs:{\"align\":col.align || 'left',\"width\":col.width},on:{\"click\":function($event){$event.preventDefault();return _vm.changeSort($event, col)}}},[_c('div',{staticClass:\"table-header-container\",class:{ 'not-filterable': _vm.hasAdvancedFiltering && !col.isFilter }},[(col.sort)?_c('span',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.tooltip(col)),expression:\"tooltip(col)\"}]},[_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.labelFor(col)),expression:\"labelFor(col)\"}]}),_c('i',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasAdvancedFiltering && !col.isFilter),expression:\"hasAdvancedFiltering && !col.isFilter\"},{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.t('sortableTable.tableHeader.noFilter')),expression:\"t('sortableTable.tableHeader.noFilter')\"}],staticClass:\"icon icon-info not-filter-icon\"}),_c('span',{staticClass:\"icon-stack\"},[_c('i',{staticClass:\"icon icon-sort icon-stack-1x faded\"}),(_vm.isCurrent(col) && !_vm.descending)?_c('i',{staticClass:\"icon icon-sort-down icon-stack-1x\"}):_vm._e(),(_vm.isCurrent(col) && _vm.descending)?_c('i',{staticClass:\"icon icon-sort-up icon-stack-1x\"}):_vm._e()])]):_c('span',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.tooltip(col)),expression:\"tooltip(col)\"}]},[_vm._v(_vm._s(_vm.labelFor(col)))])])])}),(_vm.rowActions && _vm.hasAdvancedFiltering && _vm.tableColsOptions.length)?_c('th',{attrs:{\"width\":_vm.rowActionsWidth}},[_c('div',{ref:\"table-options\",staticClass:\"table-options-group\"},[_c('button',{staticClass:\"btn btn-sm role-multi-action table-options-btn\",attrs:{\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\",\"type\":\"button\"},on:{\"click\":_vm.tableColsOptionsClick}},[_c('i',{staticClass:\"icon icon-actions\"})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tableColsOptionsVisibility),expression:\"tableColsOptionsVisibility\"}],staticClass:\"table-options-container\",style:(_vm.tableColsMenuPosition)},[(_vm.hasAdvGrouping)?_c('div',{staticClass:\"table-options-grouping\"},[_c('span',{staticClass:\"table-options-col-subtitle\"},[_vm._v(_vm._s(_vm.t('sortableTable.tableHeader.groupBy'))+\":\")]),_c('LabeledSelect',{staticClass:\"table-options-grouping-select\",attrs:{\"clearable\":true,\"options\":_vm.groupOptions,\"disabled\":false,\"searchable\":false,\"mode\":\"edit\",\"multiple\":false,\"taggable\":false},model:{value:(_vm.advGroup),callback:function ($$v) {_vm.advGroup=$$v},expression:\"advGroup\"}})],1):_vm._e(),_c('p',{staticClass:\"table-options-col-subtitle mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t('sortableTable.tableHeader.show'))+\": \")]),_c('ul',_vm._l((_vm.tableColsOptions),function(col,index){return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(col.isTableOption),expression:\"col.isTableOption\"}],key:index,class:{ 'visible': !col.preventColToggle }},[_c('Checkbox',{directives:[{name:\"show\",rawName:\"v-show\",value:(!col.preventColToggle),expression:\"!col.preventColToggle\"}],staticClass:\"table-options-checkbox\",attrs:{\"label\":col.label},on:{\"input\":function($event){return _vm.tableOptionsCheckbox($event, col.label)}},model:{value:(col.isColVisible),callback:function ($$v) {_vm.$set(col, \"isColVisible\", $$v)},expression:\"col.isColVisible\"}})],1)}),0)])])]):(_vm.rowActions)?_c('th',{attrs:{\"width\":_vm.rowActionsWidth}}):_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function getParent(el, parentSelector) {\n el = el?.parentElement;\n\n if (!el) {\n return null;\n }\n\n const matchFn = el.matches || el.matchesSelector;\n\n if (!matchFn.call(el, parentSelector)) {\n return getParent(el, parentSelector);\n }\n\n return el;\n}\n","import { isMore, isRange, suppressContextMenu, isAlternate } from '@shell/utils/platform';\nimport { get } from '@shell/utils/object';\nimport { filterBy } from '@shell/utils/array';\nimport { getParent } from '@shell/utils/dom';\n\nexport const ALL = 'all';\nexport const SOME = 'some';\nexport const NONE = 'none';\n\nexport default {\n mounted() {\n const table = this.$el.querySelector('TABLE');\n\n this._onRowClickBound = this.onRowClick.bind(this);\n this._onRowMousedownBound = this.onRowMousedown.bind(this);\n this._onRowContextBound = this.onRowContext.bind(this);\n\n table.addEventListener('click', this._onRowClickBound);\n table.addEventListener('mousedown', this._onRowMousedownBound);\n table.addEventListener('contextmenu', this._onRowContextBound);\n },\n\n beforeDestroy() {\n const table = this.$el.querySelector('TABLE');\n\n table.removeEventListener('click', this._onRowClickBound);\n table.removeEventListener('mousedown', this._onRowMousedownBound);\n table.removeEventListener('contextmenu', this._onRowContextBound);\n },\n\n computed: {\n // Used for the table-level selection check-box to show checked (all selected)/intermediate (some selected)/unchecked (none selected)\n howMuchSelected() {\n const total = this.pagedRows.length;\n const selected = this.selectedRows.length;\n\n if ( selected >= total && total > 0 ) {\n return ALL;\n } else if ( selected > 0 ) {\n return SOME;\n }\n\n return NONE;\n },\n\n // NOTE: The logic here could be simplified and made more performant\n bulkActionsForSelection() {\n let disableAll = false;\n // pagedRows is all rows in the current page\n const all = this.pagedRows;\n const allRows = this.arrangedRows;\n let selected = this.selectedRows;\n\n // Nothing is selected\n if ( !this.selectedRows.length ) {\n // and there are no rows\n if ( !allRows ) {\n return [];\n }\n\n const firstNode = allRows[0];\n\n selected = firstNode ? [firstNode] : [];\n disableAll = true;\n }\n\n const map = {};\n\n // Find and add all the actions for all the nodes so that we know\n // what all the possible actions are\n for ( const node of all ) {\n if (node.availableActions) {\n for ( const act of node.availableActions ) {\n if ( act.bulkable ) {\n _add(map, act, false);\n }\n }\n }\n }\n\n // Go through all the selected items and add the actions (which were already identified above)\n // as available for some (or all) of the selected nodes\n for ( const node of selected ) {\n if (node.availableActions) {\n for ( const act of node.availableActions ) {\n if ( act.bulkable && act.enabled ) {\n _add(map, act, false);\n }\n }\n }\n }\n\n // If there's no items actually selected, we want to see all the actions\n // so you know what exists, but have them all be disabled since there's nothing to do them on.\n const out = _filter(map, disableAll);\n\n // Enable a bulkaction if some of the selected items can perform the action\n out.forEach((bulkAction) => {\n const actionEnabledForSomeSelected = this.selectedRows.some((node) => {\n const availableActions = node.availableActions || [];\n\n return availableActions.some((action) => action.action === bulkAction.action && action.enabled);\n });\n\n bulkAction.enabled = this.selectedRows.length > 0 && actionEnabledForSomeSelected;\n });\n\n return out.sort((a, b) => (b.weight || 0) - (a.weight || 0));\n }\n },\n\n data() {\n return {\n // List of selected items in the table\n selectedRows: [],\n prevNode: null,\n };\n },\n\n watch: {\n // On page change\n pagedRows() {\n // When the table contents changes:\n // - Remove items that are in the selection but no longer in the table.\n\n const content = this.pagedRows;\n const toRemove = [];\n\n for (const node of this.selectedRows) {\n if (!content.includes(node) ) {\n toRemove.push(node);\n }\n }\n\n this.update([], toRemove);\n }\n },\n\n methods: {\n onToggleAll(value) {\n if ( value ) {\n this.update(this.pagedRows, []);\n\n return true;\n } else {\n this.update([], this.pagedRows);\n\n return false;\n }\n },\n\n onRowMousedown(e) {\n if ( isRange(e) || this.isSelectionCheckbox(e.target) ) {\n e.preventDefault();\n }\n },\n\n onRowMouseEnter(e) {\n const tr = e.target.closest('TR');\n\n if (tr.classList.contains('sub-row')) {\n const trMainRow = tr.previousElementSibling;\n\n trMainRow.classList.add('sub-row-hovered');\n }\n },\n\n onRowMouseLeave(e) {\n const tr = e.target.closest('TR');\n\n if (tr.classList.contains('sub-row')) {\n const trMainRow = tr.previousElementSibling;\n\n trMainRow.classList.remove('sub-row-hovered');\n }\n },\n\n nodeForEvent(e) {\n const tagName = e.target.tagName;\n const tgt = e.target;\n const actionElement = tgt.closest('.actions');\n\n if ( tgt.classList.contains('select-all-check') ) {\n return;\n }\n\n if ( !actionElement ) {\n if (\n tagName === 'A' ||\n tagName === 'BUTTON' ||\n getParent(tgt, '.btn')\n ) {\n return;\n }\n }\n\n const tgtRow = e.target.closest('TR');\n\n return this.nodeForRow(tgtRow);\n },\n\n nodeForRow(tgtRow) {\n if ( tgtRow?.classList.contains('separator-row') ) {\n return;\n }\n\n while ( tgtRow && !tgtRow.classList.contains('main-row') ) {\n tgtRow = tgtRow.previousElementSibling;\n }\n\n if ( !tgtRow ) {\n return;\n }\n\n const nodeId = tgtRow.dataset.nodeId;\n\n if ( !nodeId ) {\n return;\n }\n\n const node = this.pagedRows.find( (x) => get(x, this.keyField) === nodeId );\n\n return node;\n },\n\n async onRowClick(e) {\n const node = this.nodeForEvent(e);\n const td = e.target.closest('TD');\n const skipSelect = td?.classList.contains('skip-select');\n\n if (skipSelect) {\n return;\n }\n const selection = this.selectedRows;\n const isCheckbox = this.isSelectionCheckbox(e.target) || td?.classList.contains('row-check');\n const isExpand = td?.classList.contains('row-expand');\n const content = this.pagedRows;\n\n this.$emit('rowClick', e);\n\n if ( !node ) {\n return;\n }\n\n if ( isExpand ) {\n this.toggleExpand(node);\n\n return;\n }\n\n const actionElement = e.target.closest('.actions');\n\n if ( actionElement ) {\n let resources = [node];\n\n if ( this.mangleActionResources ) {\n const i = actionElement.querySelector('i');\n\n i.classList.remove('icon-actions');\n i.classList.add('icon-spinner');\n i.classList.add('icon-spin');\n\n try {\n resources = await this.mangleActionResources(resources);\n } finally {\n i.classList.remove('icon-spinner');\n i.classList.remove('icon-spin');\n i.classList.add('icon-actions');\n }\n }\n\n this.$store.commit(`action-menu/show`, {\n resources,\n event: e,\n elem: actionElement\n });\n\n return;\n }\n\n const isSelected = selection.includes(node);\n let prevNode = this.prevNode;\n\n // PrevNode is only valid if it's in the current content\n if ( !prevNode || !content.includes(prevNode) ) {\n prevNode = node;\n }\n\n if ( isMore(e) ) {\n this.toggle(node);\n } else if ( isRange(e) ) {\n const toToggle = this.nodesBetween(prevNode, node);\n\n if ( isSelected ) {\n this.update([], toToggle);\n } else {\n this.update(toToggle, []);\n }\n } else if ( isCheckbox ) {\n this.toggle(node);\n } else {\n this.update([node], content);\n }\n\n this.prevNode = node;\n },\n\n async onRowContext(e) {\n const node = this.nodeForEvent(e);\n\n if ( suppressContextMenu(e) ) {\n return;\n }\n\n if ( !node ) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n this.prevNode = node;\n const isSelected = this.selectedRows.includes(node);\n\n if ( !isSelected ) {\n this.update([node], this.selectedRows.slice());\n }\n\n let resources = this.selectedRows;\n\n if ( this.mangleActionResources ) {\n resources = await this.mangleActionResources(resources);\n }\n\n this.$store.commit(`action-menu/show`, {\n resources,\n event: e,\n });\n },\n\n keySelectRow(row, more = false) {\n const node = this.nodeForRow(row);\n const content = this.pagedRows;\n\n if ( !node ) {\n return;\n }\n\n if ( more ) {\n this.update([node], []);\n } else {\n this.update([node], content);\n }\n\n this.prevNode = node;\n },\n\n isSelectionCheckbox(element) {\n return element.tagName === 'INPUT' &&\n element.type === 'checkbox' &&\n element.closest('.selection-checkbox') !== null;\n },\n\n nodesBetween(a, b) {\n let toToggle = [];\n const key = this.groupBy;\n\n if ( key ) {\n // Grouped has 2 levels to look through\n const grouped = this.groupedRows;\n\n let from = this.groupIdx(a);\n let to = this.groupIdx(b);\n\n if ( !from || !to ) {\n return [];\n }\n\n // From has to come before To\n if ( (from.group > to.group) || ((from.group === to.group) && (from.item > to.item)) ) {\n [from, to] = [to, from];\n }\n\n for ( let i = from.group ; i <= to.group ; i++ ) {\n const items = grouped[i].rows;\n let j = (from.group === i ? from.item : 0);\n\n while ( items[j] && ( i < to.group || j <= to.item )) {\n toToggle.push(items[j]);\n j++;\n }\n }\n } else {\n // Ungrouped is much simpler\n const content = this.pagedRows;\n let from = content.indexOf(a);\n let to = content.indexOf(b);\n\n [from, to] = [Math.min(from, to), Math.max(from, to)];\n toToggle = content.slice(from, to + 1);\n }\n\n // check if there is already duplicate content selected (selectedRows) on the list to toggle...\n toToggle = toToggle.filter((item) => !this.selectedRows.includes(item));\n\n return toToggle;\n },\n\n groupIdx(node) {\n const grouped = this.groupedRows;\n\n for ( let i = 0 ; i < grouped.length ; i++ ) {\n const rows = grouped[i].rows;\n\n for ( let j = 0 ; j < rows.length ; j++ ) {\n if ( rows[j] === node ) {\n return {\n group: i,\n item: j\n };\n }\n }\n }\n\n return null;\n },\n\n toggle(node) {\n const add = [];\n const remove = [];\n\n if (this.selectedRows.includes(node)) {\n remove.push(node);\n } else {\n add.push(node);\n }\n\n this.update(add, remove);\n },\n\n update(toAdd, toRemove) {\n toRemove.forEach((row) => {\n const index = this.selectedRows.findIndex((r) => r === row);\n\n if (index !== -1) {\n this.selectedRows.splice(index, 1);\n }\n });\n\n if ( toAdd ) {\n this.selectedRows.push(...toAdd);\n }\n\n // Uncheck and check the checkboxes of nodes that have been added/removed\n if (toRemove.length) {\n this.$nextTick(() => {\n for ( let i = 0 ; i < toRemove.length ; i++ ) {\n this.updateInput(toRemove[i], false, this.keyField);\n }\n });\n }\n\n if (toAdd.length) {\n this.$nextTick(() => {\n for ( let i = 0 ; i < toAdd.length ; i++ ) {\n this.updateInput(toAdd[i], true, this.keyField);\n }\n });\n }\n\n this.$nextTick(() => {\n this.$emit('selection', this.selectedRows);\n });\n },\n\n updateInput(node, on, keyField) {\n const id = get(node, keyField);\n\n if ( id ) {\n // Note: This is looking for the checkbox control for the row\n const input = this.$el.querySelector(`div[data-checkbox-ctrl][data-node-id=\"${ id }\"]`);\n\n if ( input && !input.disabled ) {\n const label = input.querySelector('label');\n\n if (label) {\n label.value = on;\n }\n let tr = input.closest('tr');\n let first = true;\n\n while ( tr && (first || tr.classList.contains('sub-row') ) ) {\n if (on) {\n tr.classList.add('row-selected');\n } else {\n tr.classList.remove('row-selected');\n }\n tr = tr.nextElementSibling;\n first = false;\n }\n }\n }\n },\n\n select(nodes) {\n nodes.forEach((node) => {\n const id = get(node, this.keyField);\n const input = this.$el.querySelector(`label[data-node-id=\"${ id }\"]`);\n\n input.dispatchEvent(new Event('click'));\n });\n },\n\n applyTableAction(action, args, event) {\n const opts = { alt: event && isAlternate(event), event };\n\n // Go through the table selection and filter out those actions that can't run the chosen action\n const executableSelection = this.selectedRows.filter((row) => {\n const matchingResourceAction = row.availableActions.find((a) => a.action === action.action);\n\n return matchingResourceAction?.enabled;\n });\n\n _execute(executableSelection, action, args, opts, this);\n\n this.actionOfInterest = null;\n },\n\n clearSelection() {\n this.update([], this.selectedRows);\n },\n\n }\n};\n\n// ---------------------------------------------------------------------\n// --- Helpers that were in selectionStore.js --------------------------\n// ---------------------------------------------------------------------\n\nlet anon = 0;\n\nfunction _add(map, act, incrementCounts = true) {\n let id = act.action;\n\n if ( !id ) {\n id = `anon${ anon }`;\n anon++;\n }\n\n let obj = map[id];\n\n if ( !obj ) {\n obj = Object.assign({}, act);\n map[id] = obj;\n obj.allEnabled = false;\n }\n\n if ( !act.enabled ) {\n obj.allEnabled = false;\n } else {\n obj.anyEnabled = true;\n }\n\n if ( incrementCounts ) {\n obj.available = (obj.available || 0) + (!act.enabled ? 0 : 1 );\n obj.total = (obj.total || 0) + 1;\n }\n\n return obj;\n}\n\nfunction _filter(map, disableAll = false) {\n const out = filterBy(Object.values(map), 'anyEnabled', true);\n\n for ( const act of out ) {\n if ( disableAll ) {\n act.enabled = false;\n } else {\n act.enabled = ( act.available >= act.total );\n }\n }\n\n return out;\n}\n\nfunction _execute(resources, action, args, opts = {}, ctx) {\n args = args || [];\n\n // New pattern for extensions - always call invoke\n if (action.invoke) {\n const actionOpts = {\n action,\n event: opts.event,\n isAlt: !!opts.alt,\n };\n\n return action.invoke.apply(ctx, [actionOpts, resources || [], args]);\n }\n\n if ( resources.length > 1 && action.bulkAction && !opts.alt ) {\n const fn = resources[0][action.bulkAction];\n\n if ( fn ) {\n return fn.call(resources[0], resources, ...args);\n }\n }\n\n const promises = [];\n\n for ( const resource of resources ) {\n let fn;\n\n if (opts.alt && action.altAction) {\n fn = resource[action.altAction];\n } else {\n fn = resource[action.action];\n }\n\n if ( fn ) {\n promises.push(fn.apply(resource, args));\n }\n }\n\n return Promise.all(promises);\n}\n","// @TODO replace this with popper.js...\n\nexport const LEFT = 'left';\nexport const RIGHT = 'right';\nexport const TOP = 'top';\nexport const CENTER = 'center'; // These are both the same externally so you can use either,\nexport const MIDDLE = 'center'; // but have different meaning inside this file (center->left/right, middle->top/bottom)\nexport const BOTTOM = 'bottom';\nexport const AUTO = 'auto';\n\nexport function boundingRect(elem) {\n const pos = elem.getBoundingClientRect();\n const width = elem.offsetWidth;\n const height = elem.offsetHeight;\n\n return {\n top: pos.top,\n right: pos.left + width,\n bottom: pos.top + height,\n left: pos.left,\n width,\n height,\n };\n}\n\nexport function fakeRectFor(event) {\n return {\n top: event.clientY,\n left: event.clientX,\n bottom: event.clientY,\n right: event.clientX,\n width: 0,\n height: 0,\n };\n}\n\nexport function screenRect() {\n const width = window.innerWidth;\n const height = window.innerHeight;\n const top = window.pageYOffset;\n const left = window.pageXOffset;\n\n return {\n top,\n right: left + width,\n bottom: top + height,\n left,\n width,\n height,\n };\n}\n\nexport function fitOnScreen(contentElem, triggerElemOrEvent, opt, useDefaults) {\n let {\n positionX = AUTO, // Preferred horizontal position\n positionY = AUTO, // Preferred vertical position\n } = opt || {};\n\n const {\n fudgeX = 0,\n fudgeY = 0,\n overlapX = true, // Position on \"top\" of the trigger horizontally\n overlapY = false, // Position on \"top\" of the trigger vertically\n } = opt || {};\n\n const screen = screenRect();\n let trigger;\n\n if ( triggerElemOrEvent instanceof Event ) {\n trigger = fakeRectFor(triggerElemOrEvent);\n } else {\n trigger = boundingRect(triggerElemOrEvent);\n }\n\n let content = {};\n\n if (contentElem) {\n content = boundingRect(contentElem);\n }\n\n if (useDefaults) {\n content = {\n top: 0,\n right: 147,\n bottom: 163,\n left: 0,\n width: 147,\n height: 80\n };\n }\n\n // console.log('screen', screen);\n // console.log('trigger', trigger);\n // console.log('content', content);\n\n const style = { position: 'absolute' };\n\n const originFor = {\n left: (overlapX ? trigger.left : trigger.right ),\n center: (trigger.left + trigger.right ) / 2,\n right: (overlapX ? trigger.right : trigger.left ),\n top: (overlapY ? trigger.bottom : trigger.top ),\n middle: (trigger.top + trigger.bottom ) / 2,\n bottom: (overlapY ? trigger.top : trigger.bottom ),\n };\n\n // console.log('origin', originFor);\n\n const gapIf = {\n left: screen.right - content.width - originFor.left,\n center: Math.min(screen.right - (content.width / 2) - originFor.center, originFor.center - (content.width / 2) - screen.left),\n right: originFor.right - content.width - screen.left,\n top: originFor.bottom - content.height - screen.top,\n middle: Math.min(originFor.middle - (content.height / 2) - screen.top, screen.bottom - (content.height / 2) - originFor.middle),\n bottom: screen.bottom - content.height - originFor.top,\n };\n\n // console.log('gapIf', gapIf);\n\n if ( positionX === CENTER && gapIf.center < 0) {\n positionX = AUTO;\n }\n\n if ( positionX === AUTO ) {\n positionX = gapIf.left < 0 || gapIf.right * 1.5 > gapIf.left ? RIGHT : LEFT;\n } else if ( positionY === LEFT && gapIf.left < 0 ) {\n positionX = RIGHT;\n } else if ( positionY === RIGHT && gapIf.right < 0 ) {\n positionX = LEFT;\n }\n\n switch ( positionX ) {\n case LEFT:\n style.left = `${ originFor.left - fudgeX }px`;\n break;\n case CENTER:\n style.left = `${ ((originFor.left + originFor.right) / 2) - (content.width / 2) - fudgeX }px`;\n break;\n case RIGHT:\n style.left = `${ originFor.right + fudgeX - content.width }px`;\n // style.right = `${ screen.width - originFor.right - fudgeX }px`;\n break;\n }\n\n if ( positionY === MIDDLE && gapIf.middle < 0) {\n positionY = AUTO;\n }\n\n if ( positionY === AUTO ) {\n positionY = gapIf.top < 0 || gapIf.bottom * 1.5 > gapIf.top ? BOTTOM : TOP;\n } else if ( positionY === TOP && gapIf.top < 0 ) {\n positionY = BOTTOM;\n } else if ( positionY === BOTTOM && gapIf.bottom < 0 ) {\n positionY = TOP;\n }\n\n switch ( positionY ) {\n case TOP:\n style.top = `${ originFor.top + fudgeY - content.height }px`;\n break;\n case CENTER:\n style.top = `${ ((originFor.top + originFor.bottom) / 2) + fudgeY - content.height }px`;\n break;\n case BOTTOM:\n style.top = `${ originFor.bottom - fudgeY }px`;\n break;\n }\n\n // console.log(positionX, positionY, style);\n\n return style;\n}\n","\n\n\n\n \n \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./THead.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./THead.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./THead.vue?vue&type=template&id=96d8a090&scoped=true\"\nimport script from \"./THead.vue?vue&type=script&lang=js\"\nexport * from \"./THead.vue?vue&type=script&lang=js\"\nimport style0 from \"./THead.vue?vue&type=style&index=0&id=96d8a090&prod&lang=scss&scoped=true\"\nimport style1 from \"./THead.vue?vue&type=style&index=1&id=96d8a090&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"96d8a090\",\n null\n \n)\n\nexport default component.exports","import { get } from '@shell/utils/object';\nimport { addObject, addObjects, isArray, removeAt } from '@shell/utils/array';\n\nexport const ADV_FILTER_ALL_COLS_VALUE = 'allcols';\nexport const ADV_FILTER_ALL_COLS_LABEL = 'All Columns';\nconst LABEL_IDENTIFIER = ':::islabel';\n\nexport default {\n data() {\n return {\n searchQuery: null,\n previousFilter: null,\n previousResult: null,\n };\n },\n\n computed: {\n searchFields() {\n const out = columnsToSearchField(this.columns);\n\n if ( this.extraSearchFields ) {\n addObjects(out, this.extraSearchFields);\n }\n\n return out;\n },\n\n /*\n subFields: computed('subHeaders.@each.{searchField,name}', 'extraSearchSubFields.[]', function() {\n let out = headersToSearchField(get(this, 'subHeaders'));\n\n return out.addObjects(get(this, 'extraSearchSubFields') || []);\n }),\n */\n filteredRows() {\n // PROP hasAdvancedFiltering comes from Advanced Filtering mixin (careful changing data var there...)\n if (!this.hasAdvancedFiltering) {\n return this.handleFiltering();\n } else {\n return this.handleAdvancedFiltering();\n }\n },\n },\n\n methods: {\n handleAdvancedFiltering() {\n this.subMatches = null;\n\n if (this.searchQuery.length) {\n const out = (this.arrangedRows || []).slice();\n\n const res = out.filter((row) => {\n return this.searchQuery.every((f) => {\n if (f.prop === ADV_FILTER_ALL_COLS_VALUE) {\n // advFilterSelectOptions comes from Advanced Filtering mixin\n // remove the All Columns option from the list so that we don't iterate over it\n const allCols = this.advFilterSelectOptions.slice(1);\n let searchFields = [];\n\n allCols.forEach((col) => {\n if (col.value.includes('[') && col.value.includes(']')) {\n searchFields = searchFields.concat(JSON.parse(col.value));\n } else {\n // this means we are on the presence of a label, which should be dealt\n // carefully because of object path such row.metadata.labels.\"app.kubernetes.io/managed-by\n const value = col.isLabel ? `${ col.label }${ LABEL_IDENTIFIER }` : col.value;\n\n searchFields.push(value);\n }\n });\n\n return handleStringSearch(searchFields, [f.value], row);\n } else {\n if (f.prop.includes('[') && f.prop.includes(']')) {\n return handleStringSearch(JSON.parse(f.prop), [f.value], row);\n }\n\n let prop = f.prop;\n\n // this means we are on the presence of a label, which should be dealt\n // carefully because of object path such row.metadata.labels.\"app.kubernetes.io/managed-by\"\n if (f.prop.includes('metadata.labels')) {\n prop = `${ f.label }${ LABEL_IDENTIFIER }`;\n }\n\n return handleStringSearch([prop], [f.value], row);\n }\n });\n });\n\n return res;\n }\n\n // return arrangedRows array if we don't have anything to search for...\n return this.arrangedRows;\n },\n\n handleFiltering() {\n const searchText = (this.searchQuery || '').trim().toLowerCase();\n let out;\n\n if ( searchText && this.previousResult && searchText.startsWith(this.previousFilter) ) {\n // If the new search is an addition to the last one, we can start with the same set of results as last time\n // and filter those down, since adding more searchText can only reduce the number of results.\n out = this.previousResult.slice();\n } else {\n this.previousResult = null;\n out = (this.arrangedRows || []).slice();\n }\n\n this.previousFilter = searchText;\n\n if ( !searchText.length ) {\n this.subMatches = null;\n this.previousResult = null;\n\n return out;\n }\n\n const searchFields = this.searchFields;\n const searchTokens = searchText.split(/\\s*[, ]\\s*/);\n const subSearch = this.subSearch;\n const subFields = this.subFields;\n const subMatches = {};\n\n for ( let i = out.length - 1 ; i >= 0 ; i-- ) {\n const row = out[i];\n let hits = 0;\n let mainFound = true;\n\n mainFound = handleStringSearch(searchFields, searchTokens, row);\n\n if ( subFields && subSearch) {\n const subRows = row[subSearch] || [];\n\n for ( let k = subRows.length - 1 ; k >= 0 ; k-- ) {\n let subFound = true;\n\n subFound = handleStringSearch(subFields, searchTokens, row);\n\n if ( subFound ) {\n hits++;\n }\n }\n\n subMatches[get(row, this.keyField)] = hits;\n }\n\n if ( !mainFound && hits === 0 ) {\n removeAt(out, i);\n }\n }\n\n this.subMatches = subMatches;\n this.previousResult = out;\n\n return out;\n }\n },\n\n watch: {\n arrangedRows(q) {\n // The rows changed so the old filter result is no longer useful\n this.previousResult = null;\n }\n },\n};\n\nfunction columnsToSearchField(columns) {\n const out = [];\n\n (columns || []).forEach((column) => {\n const field = column.search;\n\n if ( field ) {\n if ( typeof field === 'string' ) {\n addObject(out, field);\n } else if ( isArray(field) ) {\n addObjects(out, field);\n }\n } else if ( field === false ) {\n // Don't add the name\n } else {\n // Use value/name as the default\n addObject(out, column.value || column.name);\n }\n });\n\n return out.filter((x) => !!x);\n}\n\nconst ipLike = /^[0-9a-f\\.:]+$/i;\n\nfunction handleStringSearch(searchFields, searchTokens, row) {\n for ( let j = 0 ; j < searchTokens.length ; j++ ) {\n let expect = true;\n let token = searchTokens[j];\n\n if ( token.substr(0, 1) === '!' ) {\n expect = false;\n token = token.substr(1);\n }\n\n if ( token && matches(searchFields, token, row) !== expect ) {\n return false;\n }\n\n return true;\n }\n}\n\nfunction matches(fields, token, item) {\n for ( let field of fields ) {\n if ( !field ) {\n continue;\n }\n\n // some items might not even have metadata.labels or metadata.labels.something... ignore those items. Nothing to filter by\n if (typeof field !== 'function' &&\n field.includes(LABEL_IDENTIFIER) &&\n (!item.metadata.labels || !item.metadata.labels[field.replace(LABEL_IDENTIFIER, '')])) {\n continue;\n }\n\n let modifier;\n let val;\n\n if (typeof field === 'function') {\n val = field(item);\n } else if (field.includes(LABEL_IDENTIFIER)) {\n val = item.metadata.labels[field.replace(LABEL_IDENTIFIER, '')];\n } else {\n const idx = field.indexOf(':');\n\n if ( idx > 0 ) {\n modifier = field.substr(idx + 1);\n field = field.substr(0, idx);\n }\n\n if ( field.includes('.') ) {\n val = get(item, field);\n } else {\n val = item[field];\n }\n }\n\n if ( val === undefined ) {\n continue;\n }\n\n val = (`${ val }`).toLowerCase();\n if ( !val ) {\n continue;\n }\n\n if ( !modifier ) {\n if ( val.includes((`${ token }`).toLowerCase()) ) {\n return true;\n }\n } else if ( modifier === 'exact' ) {\n if ( val === token ) {\n return true;\n }\n } else if ( modifier === 'ip' ) {\n const tokenMayBeIp = ipLike.test(token);\n\n if ( tokenMayBeIp ) {\n const re = new RegExp(`(?:^|\\\\.)${ token }(?:\\\\.|$)`);\n\n if ( re.test(val) ) {\n return true;\n }\n }\n } else if ( modifier === 'prefix' ) {\n if ( val.indexOf(token) === 0) {\n return true;\n }\n }\n }\n\n return false;\n}\n","import { sortBy } from '@shell/utils/sort';\nimport { addObject } from '@shell/utils/array';\n\nexport default {\n computed: {\n sortFields() {\n let fromGroup = ( this.groupBy ? this.groupSort || this.groupBy : null) || [];\n let fromColumn = [];\n\n const column = (this.columns || this.headers).find((x) => x && x.name && x.name.toLowerCase() === this.sortBy.toLowerCase());\n\n if ( this.sortBy && column && column.sort ) {\n fromColumn = column.sort;\n }\n\n if ( !Array.isArray(fromGroup) ) {\n fromGroup = [fromGroup];\n }\n\n if ( !Array.isArray(fromColumn) ) {\n fromColumn = [fromColumn];\n }\n\n const out = [...fromGroup, ...fromColumn];\n\n addObject(out, 'nameSort');\n addObject(out, 'id');\n\n return out;\n },\n\n arrangedRows() {\n let key;\n\n if ( this.sortGenerationFn ) {\n key = `${ this.sortGenerationFn.apply(this) }/${ this.rows.length }/${ this.descending }/${ this.sortFields.join(',') }`;\n\n if ( this.cacheKey === key ) {\n return this.cachedRows;\n }\n }\n\n const out = sortBy(this.rows, this.sortFields, this.descending);\n\n if ( key ) {\n this.cacheKey = key;\n this.cachedRows = out;\n }\n\n return out;\n },\n },\n\n data() {\n let sortBy = null;\n\n this._defaultSortBy = this.defaultSortBy;\n\n // Try to find a reasonable default sort\n if ( !this._defaultSortBy ) {\n const markedColumn = this.headers.find((x) => !!x.defaultSort);\n const nameColumn = this.headers.find( (x) => x.name === 'name');\n\n if ( markedColumn ) {\n this._defaultSortBy = markedColumn.name;\n } else if ( nameColumn ) {\n // Use the name column if there is one\n this._defaultSortBy = nameColumn.name;\n } else {\n // The first column that isn't state\n const first = this.headers.filter( (x) => x.name !== 'state' )[0];\n\n if ( first ) {\n this._defaultSortBy = first.name;\n } else {\n // I give up\n this._defaultSortBy = 'id';\n }\n }\n }\n\n // If the sort column doesn't exist or isn't specified, use default\n if ( !sortBy || !this.headers.find((x) => x.name === sortBy ) ) {\n sortBy = this._defaultSortBy;\n }\n\n return {\n sortBy,\n descending: false,\n cachedRows: null,\n cacheKey: null,\n };\n },\n\n methods: {\n changeSort(sort, desc) {\n this.sortBy = sort;\n this.descending = desc;\n\n // Always go back to the first page when the sort is changed\n this.setPage(1);\n },\n },\n};\n","import { ROWS_PER_PAGE } from '@shell/store/prefs';\n\nexport default {\n computed: {\n indexFrom() {\n return Math.max(0, 1 + this.perPage * (this.page - 1));\n },\n\n indexTo() {\n return Math.min(this.filteredRows.length, this.indexFrom + this.perPage - 1);\n },\n\n totalPages() {\n return Math.ceil(this.filteredRows.length / this.perPage );\n },\n\n showPaging() {\n return !this.loading && this.paging && this.totalPages > 1;\n },\n\n pagingDisplay() {\n const opt = {\n ...(this.pagingParams || {}),\n\n count: this.filteredRows.length,\n pages: this.totalPages,\n from: this.indexFrom,\n to: this.indexTo,\n };\n\n return this.$store.getters['i18n/t'](this.pagingLabel, opt);\n },\n\n pagedRows() {\n if ( this.paging ) {\n return this.filteredRows.slice(this.indexFrom - 1, this.indexTo);\n } else {\n return this.filteredRows;\n }\n }\n },\n\n data() {\n const perPage = this.getPerPage();\n\n return { page: 1, perPage };\n },\n\n watch: {\n pagedRows() {\n // Go to the last page if we end up \"past\" the last page because the table changed\n\n const from = this.indexFrom;\n const last = this.filteredRows.length;\n\n if ( this.totalPages > 0 && this.page > 1 && from > last ) {\n this.setPage(this.totalPages);\n }\n }\n },\n\n methods: {\n getPerPage() {\n // perPage can not change while the list is displayed\n let out = this.rowsPerPage || 0;\n\n if ( out <= 0 ) {\n out = parseInt(this.$store.getters['prefs/get'](ROWS_PER_PAGE), 10) || 0;\n }\n\n // This should ideally never happen, but the preference value could be invalid, so return something...\n if ( out <= 0 ) {\n out = 10;\n }\n\n return out;\n },\n\n setPage(num) {\n if (this.page === num) {\n return;\n }\n\n this.page = num;\n },\n\n goToPage(which) {\n let page;\n\n switch (which) {\n case 'first':\n page = 1;\n break;\n case 'prev':\n page = Math.max(1, this.page - 1 );\n break;\n case 'next':\n page = Math.min(this.totalPages, this.page + 1 );\n break;\n case 'last':\n page = this.totalPages;\n break;\n }\n\n this.setPage(page);\n },\n\n getPageByRow(rowId, getRowId = (x) => x) {\n const pos = this.filteredRows.map(getRowId).indexOf(rowId);\n\n if (pos === -1) {\n return null;\n }\n\n return Math.ceil(pos / this.perPage);\n }\n }\n};\n","import { get } from '@shell/utils/object';\n\nexport default {\n computed: {\n groupedRows() {\n const groupKey = this.groupBy;\n const refKey = this.groupRef || groupKey;\n\n if ( !groupKey) {\n return [{\n key: 'default',\n ref: 'default',\n rows: this.pagedRows,\n }];\n }\n\n const out = [];\n const map = {};\n\n for ( const obj of this.pagedRows ) {\n const key = get(obj, groupKey) || '';\n const ref = get(obj, refKey);\n let entry = map[key];\n\n if ( entry ) {\n entry.rows.push(obj);\n } else {\n entry = {\n key,\n ref,\n rows: [obj]\n };\n map[key] = entry;\n out.push(entry);\n }\n }\n\n return out;\n }\n }\n};\n","import debounce from 'lodash/debounce';\n\n// Use a visible display type to reduce flickering\nconst displayType = 'inline-block';\n\nexport default {\n\n data() {\n return {\n bulkActionsClass: 'bulk',\n bulkActionClass: 'bulk-action',\n bulkActionsDropdownClass: 'bulk-actions-dropdown',\n bulkActionAvailabilityClass: 'action-availability',\n\n hiddenActions: [],\n\n updateHiddenBulkActions: debounce(this.protectedUpdateHiddenBulkActions, 10)\n };\n },\n\n beforeDestroy() {\n window.removeEventListener('resize', this.onWindowResize);\n },\n\n mounted() {\n window.addEventListener('resize', this.onWindowResize);\n this.updateHiddenBulkActions();\n },\n\n watch: {\n selectedRows() {\n this.updateHiddenBulkActions();\n },\n keyedAvailableActions() {\n this.updateHiddenBulkActions();\n },\n },\n\n computed: {\n availableActions() {\n return this.bulkActionsForSelection.filter((act) => !act.external);\n },\n\n keyedAvailableActions() {\n return this.availableActions.map((aa) => aa.action);\n },\n\n selectedRowsText() {\n if (!this.selectedRows.length) {\n return null;\n }\n\n return this.t('sortableTable.actionAvailability.selected', { actionable: this.selectedRows.length });\n },\n\n // Shows a tooltip if the bulk action that the user is hovering over can not be applied to all selected rows\n actionTooltip() {\n if (!this.selectedRows.length || !this.actionOfInterest) {\n return null;\n }\n\n const runnableTotal = this.selectedRows.filter(this.canRunBulkActionOfInterest).length;\n\n if (runnableTotal === this.selectedRows.length) {\n return null;\n }\n\n return this.t('sortableTable.actionAvailability.some', {\n actionable: runnableTotal,\n total: this.selectedRows.length,\n });\n },\n },\n\n methods: {\n onWindowResize() {\n this.updateHiddenBulkActions();\n this.onScroll();\n },\n\n /**\n * Determine if any actions wrap over to a new line, if so group them into a dropdown instead\n */\n protectedUpdateHiddenBulkActions() {\n if (!this.$refs.container) {\n return;\n }\n\n const actionsContainer = this.$refs.container.querySelector(`.${ this.bulkActionsClass }`);\n const actionsDropdown = this.$refs.container.querySelector(`.${ this.bulkActionsDropdownClass }`);\n\n if (!actionsContainer || !actionsDropdown) {\n return;\n }\n\n const actionsContainerWidth = actionsContainer.offsetWidth;\n const actionsHTMLCollection = this.$refs.container.querySelectorAll(`.${ this.bulkActionClass }`);\n const actions = Array.from(actionsHTMLCollection || []);\n\n // Determine if the 'x selected' label should show and it's size\n const selectedRowsText = this.$refs.container.querySelector(`.${ this.bulkActionAvailabilityClass }`);\n let selectedRowsTextWidth = 0;\n\n if (this.selectedRowsText) {\n if (selectedRowsText) {\n selectedRowsText.style.display = displayType;\n selectedRowsTextWidth = selectedRowsText.offsetWidth;\n } else {\n selectedRowsText.style.display = 'none;';\n }\n }\n\n this.hiddenActions = [];\n\n let cumulativeWidth = 0;\n let showActionsDropdown = false;\n let totalAvailableWidth = actionsContainerWidth - selectedRowsTextWidth;\n\n // Loop through all actions to determine if some exceed the available space in the row, if so hide them and instead show in a dropdown\n for (let i = 0; i < actions.length; i++) {\n const ba = actions[i];\n\n ba.style.display = displayType;\n const actionWidth = ba.offsetWidth;\n\n cumulativeWidth += actionWidth + 15;\n if (cumulativeWidth >= totalAvailableWidth) {\n // There are too many actions so the drop down will be visible.\n if (!showActionsDropdown) {\n // If we haven't previously enabled the drop down...\n actionsDropdown.style.display = displayType;\n // By showing the drop down some previously visible actions may now be hidden, so start the process again\n // ... except taking into account the width of drop down width in the available space\n i = -1;\n cumulativeWidth = 0;\n showActionsDropdown = true;\n totalAvailableWidth = actionsContainerWidth - actionsDropdown.offsetWidth - selectedRowsTextWidth;\n } else {\n // Collate the actions in an array and hide in the normal row\n const id = ba.attributes.getNamedItem('id').value;\n\n this.hiddenActions.push(this.availableActions.find((aa) => aa.action === id));\n ba.style.display = 'none';\n }\n }\n }\n\n if (!showActionsDropdown) {\n actionsDropdown.style.display = 'none';\n }\n }\n }\n};\n","import { ADV_FILTER_ALL_COLS_VALUE, ADV_FILTER_ALL_COLS_LABEL } from './filtering';\n\nconst DEFAULT_ADV_FILTER_COLS_VALUE = ADV_FILTER_ALL_COLS_VALUE;\n\nexport default {\n props: {\n /**\n * Group value\n * To be used on the THead component when adv filtering is present\n */\n group: {\n type: String,\n default: () => ''\n },\n /**\n * Group options\n * All of the grouping options available to be used on the THead component when adv filtering is present\n */\n groupOptions: {\n type: Array,\n default: () => []\n },\n /**\n * Flag that controls visibility of advanced filtering feature\n */\n hasAdvancedFiltering: {\n type: Boolean,\n default: false\n },\n /**\n * Flag that controls visibility of labels as possibe toggable cols to be displayed on the Sortable Table\n */\n advFilterHideLabelsAsCols: {\n type: Boolean,\n default: false\n },\n /**\n * Flag that prevents filtering by labels\n */\n advFilterPreventFilteringLabels: {\n type: Boolean,\n default: false\n },\n },\n data() {\n return {\n columnOptions: [],\n colOptionsWatcher: null,\n advancedFilteringVisibility: false,\n advancedFilteringValues: [],\n advFilterSearchTerm: null,\n advFilterSelectedProp: DEFAULT_ADV_FILTER_COLS_VALUE,\n advFilterSelectedLabel: ADV_FILTER_ALL_COLS_LABEL,\n column: null,\n };\n },\n\n mounted() {\n if (this.hasAdvancedFiltering) {\n // trigger to first populate the cols options for filters\n this.updateColsOptions();\n }\n },\n\n watch: {\n advancedFilteringValues() {\n // passing different dummy args to make sure update is triggered\n this.watcherUpdateLiveAndDelayed(true, false);\n },\n advancedFilteringVisibility(neu) {\n if (neu) {\n // check if user clicked outside the advanced filter box\n window.addEventListener('click', this.onClickOutside);\n\n // update filtering options and toggable cols every time dropdown is open\n this.updateColsOptions();\n } else {\n // unregister click event\n window.removeEventListener('click', this.onClickOutside);\n }\n }\n },\n\n computed: {\n advFilterSelectOptions() {\n return this.columnOptions.filter((c) => c.isFilter && !c.preventFiltering);\n },\n\n advGroupOptions() {\n return this.groupOptions.map((item) => {\n return {\n label: this.t(item.tooltipKey),\n value: item.value\n };\n });\n },\n },\n\n methods: {\n handleColsVisibilyAndFiltering(cols) {\n const allCols = cols;\n\n this.columnOptions.forEach((advCol) => {\n if (advCol.isTableOption) {\n const index = allCols.findIndex((col) => col.name === advCol.name);\n\n if (index !== -1) {\n allCols[index].isColVisible = advCol.isColVisible;\n allCols[index].isFilter = advCol.isFilter;\n } else {\n allCols.push(advCol);\n }\n }\n });\n\n return allCols;\n },\n // advanced filtering methods\n setColsOptions() {\n let opts = [];\n const rowLabels = [];\n const headerProps = [];\n\n // Filter out any columns that are too heavy to show for large page sizes\n const filteredHeaders = this.headers.slice().filter((c) => (!c.maxPageSize || (c.maxPageSize && c.maxPageSize >= this.perPage)));\n\n // add table cols from config (headers)\n filteredHeaders.forEach((prop) => {\n const name = prop.name;\n const label = prop.labelKey ? this.t(`${ prop.labelKey }`) : prop.label;\n const isFilter = !!((!Object.keys(prop).includes('search') || prop.search));\n let sortVal = prop.sort;\n const valueProp = prop.valueProp || prop.value;\n let value = null;\n let isColVisible = true;\n\n if (prop.sort && valueProp) {\n if (typeof prop.sort === 'string') {\n sortVal = prop.sort.includes(':') ? [prop.sort.split(':')[0]] : [prop.sort];\n }\n\n if (!sortVal.includes(valueProp)) {\n value = JSON.stringify(sortVal.concat([valueProp]));\n } else {\n value = JSON.stringify([valueProp]);\n }\n } else if (valueProp) {\n value = JSON.stringify([valueProp]);\n } else {\n value = null;\n }\n\n // maintain current visibility of cols if they exist already\n if (this.columnOptions?.length) {\n const opt = this.columnOptions.find((colOpt) => colOpt.name === name && colOpt.label === label);\n\n if (opt) {\n isColVisible = opt.isColVisible;\n }\n }\n\n headerProps.push({\n name,\n label,\n value,\n isFilter,\n isTableOption: true,\n isColVisible\n });\n });\n\n // add labels as table cols\n if (this.rows.length) {\n this.rows.forEach((row) => {\n if (row.metadata?.labels && Object.keys(row.metadata?.labels).length) {\n Object.keys(row.metadata?.labels).forEach((label) => {\n const res = {\n name: label,\n label,\n value: `metadata.labels.${ label }`,\n isFilter: true,\n isTableOption: true,\n isColVisible: false,\n isLabel: true,\n preventFiltering: this.advFilterPreventFilteringLabels,\n preventColToggle: this.advFilterHideLabelsAsCols\n };\n\n // maintain current visibility of cols if they exist already\n if (this.columnOptions?.length) {\n const opt = this.columnOptions.find((colOpt) => colOpt.name === label && colOpt.label === label);\n\n if (opt) {\n res.isColVisible = opt.isColVisible;\n }\n }\n\n if (!rowLabels.filter((row) => row.label === label).length) {\n rowLabels.push(res);\n }\n });\n }\n });\n }\n\n opts = headerProps.concat(rowLabels);\n\n // add find on all cols option...\n if (opts.length) {\n opts.unshift({\n name: ADV_FILTER_ALL_COLS_LABEL,\n label: ADV_FILTER_ALL_COLS_LABEL,\n value: ADV_FILTER_ALL_COLS_VALUE,\n isFilter: true,\n isTableOption: false\n });\n }\n\n return opts;\n },\n addAdvancedFilter() {\n // set new advanced filter\n if (this.advFilterSelectedProp && this.advFilterSearchTerm) {\n this.advancedFilteringValues.push({\n prop: this.advFilterSelectedProp,\n value: this.advFilterSearchTerm,\n label: this.advFilterSelectedLabel\n });\n\n this.eventualSearchQuery = this.advancedFilteringValues;\n\n this.advancedFilteringVisibility = false;\n this.advFilterSelectedProp = DEFAULT_ADV_FILTER_COLS_VALUE;\n this.advFilterSelectedLabel = ADV_FILTER_ALL_COLS_LABEL;\n this.advFilterSearchTerm = null;\n }\n },\n clearAllAdvancedFilters() {\n this.advancedFilteringValues = [];\n this.eventualSearchQuery = this.advancedFilteringValues;\n\n this.advancedFilteringVisibility = false;\n this.advFilterSelectedProp = DEFAULT_ADV_FILTER_COLS_VALUE;\n this.advFilterSelectedLabel = ADV_FILTER_ALL_COLS_LABEL;\n this.advFilterSearchTerm = null;\n },\n clearAdvancedFilter(index) {\n this.advancedFilteringValues.splice(index, 1);\n this.eventualSearchQuery = this.advancedFilteringValues;\n },\n onClickOutside(event) {\n const advFilterBox = this.$refs['advanced-filter-group'];\n\n if (!advFilterBox || advFilterBox.contains(event.target)) {\n return;\n }\n this.advancedFilteringVisibility = false;\n },\n updateColsOptions() {\n this.columnOptions = this.setColsOptions();\n },\n\n // cols visibility\n changeColVisibility(colData) {\n const index = this.columnOptions.findIndex((col) => col.label === colData.label);\n\n if (index !== -1) {\n this.columnOptions[index].isColVisible = colData.value;\n }\n },\n },\n};\n","\n\n\n\n \n\n \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4c2ecb01&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4c2ecb01&prod&lang=scss&scoped=true\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=4c2ecb01&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c2ecb01\",\n null\n \n)\n\nexport default component.exports","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"checkbox-outer-container\",attrs:{\"data-checkbox-ctrl\":\"\"}},[_c('label',{staticClass:\"checkbox-container\",class:{ 'disabled': _vm.isDisabled},attrs:{\"for\":_vm.id},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.clicked($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;$event.preventDefault();return _vm.clicked($event)}],\"click\":function($event){return _vm.clicked($event)}}},[_c('input',{attrs:{\"type\":\"checkbox\",\"tabindex\":-1,\"name\":_vm.id},domProps:{\"checked\":_vm.isChecked,\"value\":_vm.valueWhenTrue},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();}}}),_c('span',{staticClass:\"checkbox-custom\",class:{indeterminate: _vm.indeterminate},attrs:{\"tabindex\":_vm.isDisabled ? -1 : 0,\"aria-label\":_vm.label,\"aria-checked\":!!_vm.value,\"role\":\"checkbox\"}}),(_vm.$slots.label || _vm.label || _vm.labelKey || _vm.tooltipKey || _vm.tooltip)?_c('span',{staticClass:\"checkbox-label\",class:{ 'checkbox-primary': _vm.primary }},[_vm._t(\"label\",function(){return [(_vm.labelKey)?_c('t',{attrs:{\"k\":_vm.labelKey,\"raw\":true}}):(_vm.label)?[_vm._v(_vm._s(_vm.label))]:_vm._e(),(_vm.tooltipKey)?_c('i',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.t(_vm.tooltipKey)),expression:\"t(tooltipKey)\"}],staticClass:\"checkbox-info icon icon-info icon-lg\"}):(_vm.tooltip)?_c('i',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.tooltip),expression:\"tooltip\"}],staticClass:\"checkbox-info icon icon-info icon-lg\"}):_vm._e()]})],2):_vm._e()]),(_vm.descriptionKey || _vm.description)?_c('div',{staticClass:\"checkbox-outer-container-description\"},[(_vm.descriptionKey)?_c('t',{attrs:{\"k\":_vm.descriptionKey}}):(_vm.description)?[_vm._v(\" \"+_vm._s(_vm.description)+\" \")]:_vm._e()],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue, { PropType } from 'vue';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { addObject, removeObject } from '@shell/utils/array';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport default Vue.extend({\n name: 'Checkbox',\n\n props: {\n /**\n * The checkbox value.\n */\n value: {\n type: [Boolean, Array, String] as PropType,\n default: false\n },\n\n /**\n * The checkbox label.\n */\n label: {\n type: String,\n default: null\n },\n\n /**\n * The i18n key to use for the checkbox label.\n */\n labelKey: {\n type: String,\n default: null\n },\n\n /**\n * Random ID generated for binding label to input.\n */\n id: {\n type: String,\n default: String(Math.random() * 1000)\n },\n\n /**\n * Disable the checkbox.\n */\n disabled: {\n type: Boolean,\n default: false\n },\n\n /**\n * Display an indeterminate state. Useful for cases where a checkbox might\n * be the parent to child checkboxes, and we need to show that a subset of\n * children are checked.\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n\n /**\n * The checkbox editing mode.\n * @values _EDIT, _VIEW\n */\n mode: {\n type: String,\n default: _EDIT\n },\n\n /**\n * The contents of the checkbox tooltip.\n */\n tooltip: {\n type: [String, Object],\n default: null\n },\n\n /**\n * The i18n key to use for the checkbox tooltip.\n */\n tooltipKey: {\n type: String,\n default: null\n },\n\n /**\n * A custom value to use when the checkbox is checked.\n */\n valueWhenTrue: {\n type: [Boolean, String, Number],\n default: true\n },\n\n /**\n * The i18n key to use for the checkbox description.\n */\n descriptionKey: {\n type: String,\n default: null\n },\n\n /**\n * The checkbox description.\n */\n description: {\n type: String,\n default: null\n },\n\n /**\n * Primary checkbox displays label so that it stands out more\n */\n primary: {\n type: Boolean,\n default: false\n },\n },\n\n computed: {\n /**\n * Determines if the checkbox is disabled.\n * @returns boolean: True when the disabled prop is true or when mode is\n * View.\n */\n isDisabled(): boolean {\n return (this.disabled || this.mode === _VIEW);\n },\n /**\n * Determines if the checkbox is checked when using custom values or\n * multiple values.\n * @returns boolean: True when at least one value is true in a collection or\n * when value matches `this.valueWhenTrue`.\n */\n isChecked(): boolean {\n return this.isMulti(this.value) ? this.findTrueValues(this.value) : this.value === this.valueWhenTrue;\n }\n },\n\n methods: {\n /**\n * Toggles the checked state for the checkbox and emits an 'input' event.\n */\n clicked(event: MouseEvent): boolean | void {\n if ((event.target as HTMLLinkElement).tagName === 'A' && (event.target as HTMLLinkElement).href) {\n // Ignore links inside the checkbox label so you can click them\n return true;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n if (this.isDisabled) {\n return;\n }\n\n const customEvent = {\n bubbles: true,\n cancelable: false,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey\n };\n\n const click = new CustomEvent('click', customEvent);\n\n // Flip the value\n const value = cloneDeep(this.value);\n\n if (this.isMulti(value)) {\n if (this.isChecked) {\n removeObject(value, this.valueWhenTrue);\n } else {\n addObject(value, this.valueWhenTrue);\n }\n this.$emit('input', value);\n } else if (this.isString(this.valueWhenTrue)) {\n if (this.isChecked) {\n this.$emit('input', null);\n } else {\n this.$emit('input', this.valueWhenTrue);\n }\n } else {\n this.$emit('input', !value);\n this.$el.dispatchEvent(click);\n }\n },\n\n /**\n * Determines if there are multiple values for the checkbox.\n */\n isMulti(value: boolean | boolean[] | string): value is boolean[] {\n return Array.isArray(value);\n },\n\n isString(value: boolean | number | string): value is boolean {\n return typeof value === 'string';\n },\n\n /**\n * Finds the first true value for multiple checkboxes.\n * @param value A collection of values for the checkbox.\n */\n findTrueValues(value: boolean[]): boolean {\n return value.find((v) => v === this.valueWhenTrue) || false;\n }\n }\n});\n","import mod from \"-!../../../../../cache-loader/dist/cjs.js??ref--15-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../ts-loader/index.js??ref--15-3!../../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Checkbox.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../cache-loader/dist/cjs.js??ref--15-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../ts-loader/index.js??ref--15-3!../../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Checkbox.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Checkbox.vue?vue&type=template&id=1fdb6d7b\"\nimport script from \"./Checkbox.vue?vue&type=script&lang=ts\"\nexport * from \"./Checkbox.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Checkbox.vue?vue&type=style&index=0&id=1fdb6d7b&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".header[data-v-02ac34ae],H2[data-v-02ac34ae]{position:relative}H2[data-v-02ac34ae]{margin:0 0 20px 0}.filter[data-v-02ac34ae]{line-height:45px}.right-action[data-v-02ac34ae]{position:absolute;top:10px;right:10px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceLoadingIndicator.vue?vue&type=style&index=0&id=6457c305&prod&lang=scss&scoped=true\"","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=23723280&scoped=true\"\nimport script from \"./Loading.vue?vue&type=script&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&lang=js\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&id=23723280&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"23723280\",\n null\n \n)\n\nexport default component.exports","import { ActionLocation, CardLocation, ExtensionPoint } from '@shell/core/types';\nimport { isMac } from '@shell/utils/platform';\nimport { ucFirst, randomStr } from '@shell/utils/string';\nimport {\n _EDIT, _CONFIG, _DETAIL, _LIST, _CREATE\n} from '@shell/config/query-params';\nimport { getProductFromRoute } from '@shell/middleware/authenticated';\nimport { isEqual } from '@shell/utils/object';\n\nfunction checkRouteProduct({ name, params, query }, locationConfigParam) {\n const product = getProductFromRoute({\n name, params, query\n });\n\n // alias for the homepage\n if (locationConfigParam === 'home' && name === 'home') {\n return true;\n } else if (locationConfigParam === product) {\n return true;\n }\n\n return false;\n}\n\nfunction checkRouteMode({ name, query }, locationConfigParam) {\n if (locationConfigParam === _EDIT && query.mode && query.mode === _EDIT && !query.as) {\n return true;\n } else if (locationConfigParam === _CONFIG && query.as && query.as === _CONFIG) {\n return true;\n } else if (locationConfigParam === _DETAIL && !query.as && name.includes('-id') && (!query.mode || query?.mode !== _EDIT)) {\n return true;\n // alias to target all list views\n } else if (locationConfigParam === _LIST && !name.includes('-id') && name.includes('-resource')) {\n return true;\n // alias to target create views\n } else if (locationConfigParam === _CREATE && name.endsWith('-create')) {\n return true;\n }\n\n return false;\n}\n\nfunction checkExtensionRouteBinding($route, locationConfig, context) {\n // if no configuration is passed, consider it as global\n if (!Object.keys(locationConfig).length) {\n return true;\n }\n\n const { params } = $route;\n\n // \"params\" to be checked based on the locationConfig\n // This has become overloaded with mode and context\n const paramsToCheck = [\n 'product',\n 'resource',\n 'namespace',\n 'cluster',\n 'id',\n 'mode',\n 'path',\n 'hash',\n // url query params\n 'queryParam',\n // Custom context specific params provided by the extension, not to be confused with location params\n 'context',\n ];\n\n let res = true;\n\n for (let i = 0; i < paramsToCheck.length; i++) {\n const param = paramsToCheck[i];\n\n if (locationConfig[param]) {\n const asArray = Array.isArray(locationConfig[param]) ? locationConfig[param] : [locationConfig[param]];\n\n for (let x = 0; x < asArray.length; x++) {\n const locationConfigParam = asArray[x];\n\n if (locationConfigParam) {\n if (param === 'hash') {\n res = $route.hash ? $route.hash.includes(locationConfigParam) : false;\n // handle \"product\" in a separate way...\n } else if (param === 'product') {\n res = checkRouteProduct($route, locationConfigParam);\n // also handle \"mode\" in a separate way because it mainly depends on query params\n } else if (param === 'mode') {\n res = checkRouteMode($route, locationConfigParam);\n } else if (param === 'resource') {\n // Match exact resource but also allow resource of '*' to match any resource\n res = (params[param] && locationConfigParam === '*') || locationConfigParam === params[param];\n } else if (param === 'context') {\n // Need all keys and values to match\n res = isEqual(locationConfigParam, context);\n // evaluate queryParam in route\n } else if (param === 'queryParam') {\n res = isEqual(locationConfigParam, $route.query);\n // evaluate path in route\n } else if (param === 'path' && locationConfigParam.urlPath) {\n if (locationConfigParam.endsWith) {\n res = $route.path.endsWith(locationConfigParam.urlPath);\n } else if (!Object.keys(locationConfigParam).includes('exact') || locationConfigParam.exact) {\n res = locationConfigParam.urlPath === $route.path;\n } else {\n res = $route.path.includes(locationConfigParam.urlPath);\n }\n } else if (locationConfigParam === params[param]) {\n res = true;\n } else {\n res = false;\n }\n }\n\n // If a single location config param is good then this is an param (aka ['pods', 'configmap'] = pods or configmaps)\n if (res) {\n break;\n }\n }\n\n // If a single param (set of location config params) is bad then this is not an acceptable location\n if (!res) {\n break;\n }\n }\n }\n\n return res;\n}\n\nexport function getApplicableExtensionEnhancements(pluginCtx, actionType, uiArea, currRoute, translationCtx = pluginCtx, context) {\n const extensionEnhancements = [];\n\n // gate it so that we prevent errors on older versions of dashboard\n if (pluginCtx.$plugin?.getUIConfig) {\n const actions = pluginCtx.$plugin.getUIConfig(actionType, uiArea);\n\n actions.forEach((action, i) => {\n if (checkExtensionRouteBinding(currRoute, action.locationConfig, context || {})) {\n // ADD CARD PLUGIN UI ENHANCEMENT\n if (actionType === ExtensionPoint.CARD) {\n // intercept to apply translation\n if (uiArea === CardLocation.CLUSTER_DASHBOARD_CARD && action.labelKey) {\n actions[i].label = translationCtx.t(action.labelKey);\n }\n\n // ADD ACTION PLUGIN UI ENHANCEMENT\n } else if (actionType === ExtensionPoint.ACTION) {\n // TABLE ACTION\n if (uiArea === ActionLocation.TABLE) {\n // intercept to apply translation\n if (action.labelKey) {\n actions[i].label = translationCtx.t(action.labelKey);\n }\n\n // bulkable flag\n actions[i].bulkable = actions[i].multiple || actions[i].bulkable;\n\n // populate action identifier to prevent errors\n if (!actions[i].action) {\n actions[i].action = `custom-table-action-${ randomStr(10).toLowerCase() }`;\n }\n }\n\n // extract simplified shortcut definition on plugin - HEADER ACTION\n if (uiArea === ActionLocation.HEADER && action.shortcut) {\n // if it's a string, then assume CTRL for windows and META for mac\n if (typeof action.shortcut === 'string') {\n actions[i].shortcutLabel = () => {\n return isMac ? `(\\u2318-${ action.shortcut.toUpperCase() })` : `(Ctrl-${ action.shortcut.toUpperCase() })`;\n };\n actions[i].shortcutKey = { windows: ['ctrl', action.shortcut], mac: ['meta', action.shortcut] };\n // correct check for an Object type in JS... handle the object passed\n } else if (typeof action.shortcut === 'object' && !Array.isArray(action.shortcut) && action.shortcut !== null) {\n actions[i].shortcutKey = action.shortcut;\n const keyboardCombo = isMac ? actions[i].shortcut.mac : actions[i].shortcut.windows ? actions[i].shortcut.windows : [];\n let scLabel = '';\n\n keyboardCombo.forEach((key, i) => {\n if (i < keyboardCombo.length - 1) {\n if (key === 'meta') {\n key = '\\u2318';\n } else {\n key = ucFirst(key);\n }\n scLabel += `${ key }`;\n scLabel += '-';\n } else {\n scLabel += `${ key.toUpperCase() }`;\n }\n });\n\n actions[i].shortcutLabel = () => {\n return `(${ scLabel })`;\n };\n }\n }\n }\n\n extensionEnhancements.push(actions[i]);\n }\n });\n }\n\n return extensionEnhancements;\n}\n","export * from \"-!../../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./LabeledSelect.vue?vue&type=style&index=0&id=2ec7d750&prod&lang=scss&scoped=true\"","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","export function importTypes($plugin) { \n $plugin.register('edit', 'security.kubearmor.com.kubearmorpolicy', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/security.kubearmor.com.kubearmorpolicy/index.vue'));\n $plugin.register('formatters', 'PolicyTableBadges', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicyTableBadges.vue'));\n $plugin.register('formatters', 'PolicyTableDescription', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicyTableDescription.vue'));\n $plugin.register('formatters', 'PolicyTablePublisher', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicyTablePublisher.vue'));\n $plugin.register('formatters', 'PolicyTableResources', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicyTableResources.vue'));\n $plugin.register('formatters', 'matchExpressions', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/matchExpressions.vue'));\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.hasKubearmor)?_c('Console',{attrs:{\"url\":_vm.consoleUrl}}):_c('Install')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"main\"},[_c('h2',[_vm._v(\"Kubearmor operator is not installed\")]),_vm._m(0),_c('div',{staticClass:\"install-command\"},[_c('pre',[_vm._v(_vm._s(_vm.installCommand))]),_c('button',{on:{\"click\":_vm.copyText}},[_vm._v(\"Copy to Clipboard\")])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" Please complete the installation process \"),_c('a',{attrs:{\"href\":\"https://github.com/kubearmor/KubeArmor/blob/main/getting-started/deployment_guide.md#install-kubearmor\",\"target\":\"_blank\"}},[_vm._v(\" following this guide \")]),_vm._v(\". \")])\n}]\n\nexport { render, staticRenderFns }","export const NAMESPACE_FILTER_ALL_PREFIX = 'all';\nexport const NAMESPACE_FILTER_NS_PREFIX = 'ns';\nexport const NAMESPACE_FILTER_P_PREFIX = 'project';\n\nexport const NAMESPACE_FILTER_NS_FULL_PREFIX = `${ NAMESPACE_FILTER_NS_PREFIX }://`;\nexport const NAMESPACE_FILTER_P_FULL_PREFIX = `${ NAMESPACE_FILTER_P_PREFIX }://`;\n\nexport const NAMESPACE_FILTER_ALL = NAMESPACE_FILTER_ALL_PREFIX;\nexport const NAMESPACE_FILTER_ALL_SYSTEM = `${ NAMESPACE_FILTER_ALL_PREFIX }://system`;\nexport const NAMESPACE_FILTER_ALL_USER = `${ NAMESPACE_FILTER_ALL_PREFIX }://user`;\nexport const NAMESPACE_FILTER_ALL_ORPHANS = `${ NAMESPACE_FILTER_ALL_PREFIX }://orphans`;\nexport const NAMESPACE_FILTER_NAMESPACED_PREFIX = 'namespaced://';\nexport const NAMESPACE_FILTER_NAMESPACED_YES = 'namespaced://true';\nexport const NAMESPACE_FILTER_NAMESPACED_NO = 'namespaced://false';\n\nexport const NAMESPACE_FILTER_KINDS = {\n DIVIDER: 'divider',\n PROJECT: 'project',\n NAMESPACE: 'namespace',\n SPECIAL: 'special'\n};\n\nconst SEPARATOR = '__%%__';\n\nexport const createNamespaceFilterKey = (clusterId, product) => {\n if (!product?.customNamespaceFilter) {\n return clusterId;\n }\n\n return createNamespaceFilterKeyWithId(clusterId, product.name);\n};\nexport const createNamespaceFilterKeyWithId = (clusterId, productId) => {\n return `${ clusterId }${ SEPARATOR }${ productId }`;\n};\n\nexport const splitNamespaceFilterKey = (key) => {\n const [clusterId, productId] = key.split(SEPARATOR);\n\n return {\n clusterId,\n productId\n };\n};\n","/**\n * Component name of the `ResourceList`\n *\n * This needs to be a in separate file to avoid circular dependency of\n * index.vue --> resource-fetch mixin --> resource-fetch-namespaced mixin --> index.vue\n */\nexport const ResourceListComponentName = 'ResourceList';\n","import { MANAGEMENT } from '@shell/config/types';\nimport { Store } from 'vuex';\nimport { DEFAULT_PERF_SETTING, PerfSettings, SETTING } from '@shell/config/settings';\n\nexport const fetchOrCreateSetting = async(store: Store, id: string, val: string, save = true): Promise => {\n let setting;\n\n try {\n setting = await store.dispatch('management/find', { type: MANAGEMENT.SETTING, id });\n } catch {\n const schema = store.getters['management/schemaFor'](MANAGEMENT.SETTING);\n const url = schema.linkFor('collection');\n\n setting = await store.dispatch('management/create', {\n type: MANAGEMENT.SETTING, metadata: { name: id }, value: val, default: val || ''\n });\n if ( save ) {\n await setting.save({ url });\n }\n }\n\n return setting;\n};\n\n/**\n * Fetch a specific setting that might not exist\n * We fetch all settings - reality is Rancher will have done this already, so there's no overhead in doing\n * this - but if we fetch a specific setting that does not exist, we will get a 404, which we don't want\n */\nexport const fetchSetting = async(store: Store, id: string): Promise => {\n const all = await store.dispatch('management/findAll', { type: MANAGEMENT.SETTING });\n const setting = (all || []).find((setting: any) => setting.id === id);\n\n return setting;\n};\n\nexport const setSetting = async(store: Store, id: string, val: string): Promise => {\n const setting = await fetchOrCreateSetting(store, id, val, false);\n\n setting.value = val;\n await setting.save();\n\n return setting;\n};\n\nexport const getPerformanceSetting = (rootGetters: Record any>): PerfSettings => {\n const perfSettingResource = rootGetters['management/byId'](MANAGEMENT.SETTING, SETTING.UI_PERFORMANCE);\n let perfSetting = {};\n\n if (perfSettingResource?.value) {\n try {\n perfSetting = JSON.parse(perfSettingResource.value);\n } catch (e) {\n console.warn('ui-performance setting contains invalid data'); // eslint-disable-line no-console\n }\n }\n\n // Start with the default and overwrite the values from the setting - ensures we have defaults for newly added options\n return Object.assign(DEFAULT_PERF_SETTING, perfSetting || {});\n};\n","import { NAMESPACE_FILTER_NS_FULL_PREFIX, NAMESPACE_FILTER_P_FULL_PREFIX } from '@shell/utils/namespace-filter';\nimport { getPerformanceSetting } from '@shell/utils/settings';\n\ntype Opt = { [key: string]: any, namespaced?: string[]}\n\nclass ProjectAndNamespaceFiltering {\n static param = 'projectsornamespaces'\n\n /**\n * Does the request `opt` definition require resources are fetched from a specific set namespaces/projects?\n */\n isApplicable(opt: Opt): boolean {\n return Array.isArray(opt.namespaced);\n }\n\n isEnabled(rootGetters: any): boolean {\n const currentProduct = rootGetters['currentProduct'];\n\n // Only enable for the cluster store at the moment. In theory this should work in management as well, as they're both 'steve' stores\n if (currentProduct?.inStore !== 'cluster') {\n return false;\n }\n\n if (currentProduct?.showWorkspaceSwitcher) {\n return false;\n }\n\n const perfConfig = getPerformanceSetting(rootGetters);\n\n if (!perfConfig.forceNsFilterV2?.enabled) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Check if `opt` requires resources from specific ns/projects, if so return the required query param (x=y)\n */\n checkAndCreateParam(opt: Opt): string {\n if (!this.isApplicable(opt)) {\n return '';\n }\n\n return this.createParam(opt.namespaced);\n }\n\n private createParam(namespaceFilter: string[] | undefined): string {\n if (!namespaceFilter || !namespaceFilter.length) {\n return '';\n }\n\n const projectsOrNamespaces = namespaceFilter\n .map((f) => f.replace(NAMESPACE_FILTER_NS_FULL_PREFIX, '')\n .replace(NAMESPACE_FILTER_P_FULL_PREFIX, ''))\n .join(',');\n\n return `${ ProjectAndNamespaceFiltering.param }=${ projectsOrNamespaces }`;\n }\n}\n\nexport default new ProjectAndNamespaceFiltering();\n","import { NAMESPACE_FILTER_NS_PREFIX, NAMESPACE_FILTER_P_PREFIX } from '@shell/utils/namespace-filter';\nimport { mapGetters } from 'vuex';\nimport { ResourceListComponentName } from '../components/ResourceList/resource-list.config';\nimport pAndNFiltering from '@shell/utils/projectAndNamespaceFiltering.utils';\n\n/**\n * Companion mixin used with `resource-fetch` for `ResourceList` to determine if the user needs to filter the list by a single namespace\n */\nexport default {\n\n data() {\n return { forceUpdateLiveAndDelayed: 0 };\n },\n\n computed: {\n ...mapGetters(['currentProduct', 'currentCluster', 'namespaceFilters']),\n\n /**\n * Does the user need to update the filter to supply a single namespace?\n */\n namespaceFilterRequired() {\n return this.__namespaceRequired && !this.__validFilter;\n },\n\n /**\n * Returns the namespace that requests should be filtered by\n */\n namespaceFilter() {\n return this.__namespaceRequired ? this.__validFilter : '';\n },\n\n /**\n * If the Project/Namespace filter from the header contains a valid ns / project filter ... return it\n */\n __validFilter() {\n const valid = this.namespaceFilters.length && this.namespaceFilters.every((f) => f.startsWith(NAMESPACE_FILTER_NS_PREFIX) || f.startsWith(NAMESPACE_FILTER_P_PREFIX));\n\n return valid ? this.namespaceFilters : null;\n },\n\n /**\n * Do we need to filter the list by a namespace? This will control whether the user is shown an error\n *\n * We shouldn't show an error on pages with resources that aren't namespaced\n */\n __namespaceRequired() {\n if (!pAndNFiltering.isEnabled(this.$store.getters)) {\n return false;\n }\n\n return this.__areResourcesNamespaced;\n },\n\n /**\n * Are all core list resources namespaced?\n */\n __areResourcesNamespaced() {\n // Only enable for the cluster store at the moment. In theory this should work in management as well, as they're both 'steve' stores\n if (this.currentProduct.inStore !== 'cluster') {\n return false;\n }\n\n return (this.loadResources || []).every((type) => {\n const schema = this.$store.getters['cluster/schemaFor'](type);\n\n return schema?.attributes?.namespaced;\n });\n },\n\n },\n\n watch: {\n async namespaceFilter(neu) {\n if (neu) {\n // When a NS filter is required and the user selects a different one, kick off a new set of API requests\n //\n // ResourceList has two modes\n // 1) ResourceList component handles API request to fetch resources\n // 2) Custom list component handles API request to fetch resources\n //\n // This covers case 2\n if (this.$options.name !== ResourceListComponentName && !!this.$fetch) {\n await this.$fetch();\n }\n // Ensure any live/delayed columns get updated\n this.forceUpdateLiveAndDelayed = new Date().getTime();\n }\n }\n }\n};\n","import { mapGetters } from 'vuex';\nimport { COUNT, MANAGEMENT } from '@shell/config/types';\nimport { SETTING, DEFAULT_PERF_SETTING } from '@shell/config/settings';\nimport ResourceFetchNamespaced from '@shell/mixins/resource-fetch-namespaced';\n\n// Number of pages to fetch when loading incrementally\nconst PAGES = 4;\n\nexport default {\n\n mixins: [ResourceFetchNamespaced],\n\n data() {\n // fetching the settings related to manual refresh from global settings\n const perfSetting = this.$store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.UI_PERFORMANCE);\n let perfConfig = {};\n\n if (perfSetting && perfSetting.value) {\n try {\n perfConfig = JSON.parse(perfSetting.value);\n } catch (e) {\n console.warn('ui-performance setting contains invalid data'); // eslint-disable-line no-console\n }\n } else {\n perfConfig = DEFAULT_PERF_SETTING;\n }\n\n return {\n perfConfig,\n init: false,\n multipleResources: [],\n loadResources: [this.resource],\n // manual refresh vars\n hasManualRefresh: false,\n watch: true,\n isTooManyItemsToAutoUpdate: false,\n force: false,\n // incremental loading vars\n incremental: false,\n fetchedResourceType: [],\n };\n },\n beforeDestroy() {\n // make sure this only runs once, for the initialized instance\n if (this.init) {\n // clear up the store to make sure we aren't storing anything that might interfere with the next rendered list view\n this.$store.dispatch('resource-fetch/clearData');\n\n this.fetchedResourceType.forEach((item) => {\n this.$store.dispatch(`${ item.currStore }/incrementLoadCounter`, item.type);\n });\n }\n },\n\n computed: {\n ...mapGetters({ refreshFlag: 'resource-fetch/refreshFlag' }),\n rows() {\n const currResource = this.fetchedResourceType.find((item) => item.type === this.resource);\n\n if (currResource) {\n return this.$store.getters[`${ currResource.currStore }/all`](this.resource);\n } else {\n return [];\n }\n },\n loading() {\n return this.rows.length ? false : this.$fetchState.pending;\n },\n },\n watch: {\n refreshFlag(neu) {\n // this is where the data assignment will trigger the update of the list view...\n if (this.init && neu) {\n this.$fetch();\n }\n }\n },\n methods: {\n // this defines all the flags needed for the mechanism\n // to work. They should be defined based on the main list view\n // resource that is to be displayed. The secondary resources\n // fetched should follow what was defined (if it is manual and/or incremental)\n $initializeFetchData(type, multipleResources = [], storeType) {\n if (!this.init) {\n const currStore = storeType || this.$store.getters['currentStore']();\n\n this.__gatherResourceFetchData(type, multipleResources, currStore);\n\n // make sure after init that, if we have a manual refresh, we always set the force = true\n if (!this.watch) {\n this.force = true;\n }\n\n if (this.isTooManyItemsToAutoUpdate) {\n this.hasManualRefresh = true;\n }\n }\n },\n // data fetching for the mechanism\n $fetchType(type, multipleResources = [], storeType) {\n const currStore = storeType || this.$store.getters['currentStore']();\n\n this.$initializeFetchData(type, multipleResources, currStore);\n\n if (!this.fetchedResourceType.find((item) => item.type === type)) {\n this.fetchedResourceType.push({\n type,\n currStore\n });\n }\n\n let incremental = 0;\n\n if (this.incremental) {\n const resourceCount = this.__getCountForResources([type], this.namespaceFilter, currStore);\n\n incremental = Math.ceil(resourceCount / PAGES);\n }\n\n const opt = {\n incremental,\n watch: this.watch,\n force: this.force,\n hasManualRefresh: this.hasManualRefresh\n };\n\n const schema = this.$store.getters[`${ currStore }/schemaFor`](type);\n\n if (schema?.attributes?.namespaced) { // Is this specific resource namespaced (could be primary or secondary resource)?\n opt.namespaced = this.namespaceFilter; // namespaceFilter will only be populated if applicable for primary resource\n }\n\n return this.$store.dispatch(`${ currStore }/findAll`, {\n type,\n opt\n });\n },\n\n __getCountForResources(resourceNames, namespace, storeType) {\n const currStore = storeType || this.$store.getters['currentStore']();\n\n return resourceNames.reduce((res, type) => res + this.__getCountForResource(type, namespace, currStore), 0);\n },\n\n __getCountForResource(resourceName, namespace, storeType) {\n const resourceCounts = this.$store.getters[`${ storeType }/all`](COUNT)[0]?.counts[`${ resourceName }`]; // NB `rancher` store behaves differently, lacks counts but has resource\n const resourceCount = namespace && resourceCounts?.namespaces ? resourceCounts?.namespaces[namespace]?.count : resourceCounts?.summary?.count;\n\n return resourceCount || 0;\n },\n\n __gatherResourceFetchData(resourceName, multipleResources, currStore) {\n // flag to prevent a first data update being triggered from the requestData watcher\n this.init = true;\n\n // manual refresh settings config\n const manualDataRefreshEnabled = this.perfConfig?.manualRefresh?.enabled;\n const manualDataRefreshThreshold = parseInt(this.perfConfig?.manualRefresh?.threshold || '0', 10);\n\n // incremental loading settings config\n const incrementalLoadingEnabled = this.perfConfig?.incrementalLoading?.enabled;\n const incrementalLoadingThreshold = parseInt(this.perfConfig?.incrementalLoading?.threshold || '0', 10);\n\n // other vars\n this.multipleResources = multipleResources;\n let resourceCount = 0;\n\n // manual refresh vars\n let watch = true;\n let isTooManyItemsToAutoUpdate = false;\n\n // incremental loading vars\n let incremental = false;\n\n // get resource counts\n const resourcesForCount = this.multipleResources.length ? this.multipleResources : [resourceName];\n\n resourceCount = this.__getCountForResources(resourcesForCount, this.namespaceFilter, currStore);\n\n // manual refresh check\n if (manualDataRefreshEnabled && resourceCount >= manualDataRefreshThreshold) {\n watch = false;\n isTooManyItemsToAutoUpdate = true;\n }\n\n // incremental loading check\n incremental = incrementalLoadingEnabled && incrementalLoadingThreshold > 0 && resourceCount >= incrementalLoadingThreshold;\n\n // pass on the flag that controls the appearance of the manual refresh button on the sortable table\n this.$store.dispatch('resource-fetch/updateIsTooManyItems', isTooManyItemsToAutoUpdate);\n\n // set vars on mixin to be used on $fetchType\n this.watch = watch;\n this.isTooManyItemsToAutoUpdate = isTooManyItemsToAutoUpdate;\n this.incremental = incremental;\n },\n },\n};\n","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Install.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Install.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Install.vue?vue&type=template&id=9aec4e7c\"\nimport script from \"./Install.vue?vue&type=script&lang=js\"\nexport * from \"./Install.vue?vue&type=script&lang=js\"\nimport style0 from \"./Install.vue?vue&type=style&index=0&id=9aec4e7c&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('h2',[_vm._v(\"Overview\")]),_vm._m(0),_c('a',{staticClass:\"card\",attrs:{\"href\":_vm.computedUrl,\"target\":\"_blank\"}},[_c('svg',{staticClass:\"open-link\",attrs:{\"width\":\"1.5rem\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"1.5\",\"stroke\":\"currentColor\"}},[_c('path',{attrs:{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"d\":\"M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25\"}})]),_c('svg',{attrs:{\"id\":\"E\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"60px\",\"viewBox\":\"0 0 800 800\"}},[_c('path',{attrs:{\"color\":\"currentColor\",\"d\":\"m400,56.72c-192.15,0-348.5,154.01-348.5,343.26s156.35,343.3,348.5,343.3,348.5-154.01,348.5-343.3S592.15,56.72,400,56.72ZM117.24,267.04c50.56-103.58,158.3-175.27,282.76-175.27s232.2,71.69,282.76,175.27c1.3,2.7-2.31,5.01-4.16,2.7-58.85-74.81-161.62-124.36-278.6-124.36s-219.75,49.55-278.6,124.36c-1.85,2.31-5.46,0-4.16-2.7Zm523.66,20.6c-5.2,5.71-16.79,3.63-25.89-4.65-9.1-8.28-12.26-19.63-7.05-25.34,5.2-5.71,16.79-3.63,25.89,4.65s12.26,19.63,7.05,25.34Zm-46.33-45.12c-5.78,11.64-23.35,14.67-39.24,6.77-15.89-7.9-24.08-23.73-18.3-35.37s23.35-14.67,39.24-6.77c15.89,7.9,24.08,23.73,18.3,35.37Zm-92.35,47.6c0,23.77-19.31,43.11-43.11,43.11s-43.11-19.34-43.11-43.11,19.34-43.11,43.11-43.11,43.11,19.34,43.11,43.11Zm-118.21,0c0,23.77-19.34,43.11-43.11,43.11s-43.14-19.34-43.14-43.11,19.34-43.11,43.14-43.11,43.11,19.34,43.11,43.11Zm217.8,345.57c-54.59,45.22-125.01,72.53-201.8,72.53s-147.21-27.31-201.8-72.53c-2.34-1.98.26-5.66,2.89-4.03,55.37,34.04,124.26,54.23,198.91,54.23s143.54-20.19,198.91-54.23c2.63-1.63,5.23,2.05,2.89,4.03Zm26.95-173.84c.1.03,10.27,3.87,21.62,13.26-4.45-.52-9.53-.94-14.01-.81l-10.01.29,8.03,6.01c.23.16,21.46,16.13,34.92,27.93-15.77-3.12-46.91-8.71-71.75-10.05l-9.2-.46,6.57,6.47c.19.2,19.96,19.9,30.11,42.07-6.4-3.48-15.18-8-21.82-10.34l-7.9-2.76,3.54,7.58c.06.13,5.59,11.9,9.92,21.62-8.75-4.23-22.82-11.02-30.5-14.24l-13.43-5.66,9.36,11.15s15.61,18.5,26.46,31.44c-20.55-7.15-65.77-24.29-82.03-41.68l-17.52-18.73,11.83,22.76c.13.23,11.77,22.53,22.21,39.57-11.18-8.36-26.33-20.29-34.5-29.29l-12.61-13.92,6.76,17.56c.03.13,4.45,11.57,9.56,22.99-21-20.22-62.65-62.23-101.6-112.69l-2.76-3.58-2.76,3.58c-38.95,50.46-80.6,92.46-101.6,112.69,5.1-11.41,9.53-22.86,9.56-22.99l6.76-17.56-12.62,13.92c-8.16,9.01-23.31,20.94-34.5,29.29,10.44-17.04,22.08-39.34,22.21-39.6l11.83-22.73-17.52,18.73c-16.26,17.39-61.48,34.53-82.03,41.68,10.89-12.94,26.47-31.44,26.47-31.44l9.36-11.15-13.43,5.66c-7.51,3.19-20.97,9.62-30.5,14.24,4.32-9.72,9.85-21.49,9.92-21.62l3.54-7.58-7.9,2.76c-6.63,2.34-15.41,6.86-21.82,10.34,10.14-22.17,29.88-41.88,30.11-42.07l6.57-6.47-9.23.46c-24.81,1.33-55.95,6.93-71.72,10.05,13.46-11.8,34.69-27.77,34.92-27.93l8.03-6.01-10.01-.29c-4.45-.13-9.56.29-14.01.81,11.35-9.4,21.52-13.23,21.62-13.26l12.16-4.49-12.75-2.24c-13.79-2.44-40.54-1.5-55.34-.91,17.82-13.56,47.92-28.68,48.22-28.81l6.27-3.15-6.27-3.12c-9.49-4.78-27.86-9.88-41.68-13.36,11.96-.98,23.57-1.11,23.7-1.11l12.39-.13-10.63-6.4c-14.99-8.97-30.79-15.22-41.71-18.95,31.67-4.06,67.24-1.85,67.63-1.82l17.62,1.14-15.87-7.8c-6.01-2.96-12.39-5.62-18.99-8,23.25-3.28,47.6-3.35,47.86-3.35h15.51l-13.98-6.66c-12.48-5.95-35.63-13.53-51.14-18.37,23.93-1.53,45.71-1.95,45.97-1.95l8.81-.16-6.5-5.95c-1.95-1.76-4.39-3.61-7.32-5.56,124.85,12.35,202.26,55.76,203.07,56.21l1.72.98,1.72-.98c.81-.45,78.22-43.86,203.07-56.21-2.93,1.95-5.36,3.8-7.32,5.56l-6.5,5.95,8.81.16c.23,0,22.04.42,45.97,1.95-15.51,4.84-38.66,12.42-51.14,18.37l-13.98,6.66h15.51c.26,0,24.61.07,47.89,3.35-5.2,1.85-11.96,4.52-19.02,8l-15.87,7.8,17.62-1.14c.39-.03,35.93-2.24,67.63,1.82-10.92,3.74-26.72,9.98-41.71,18.95l-10.63,6.4,12.39.13c.13,0,11.74.13,23.7,1.11-13.82,3.48-32.19,8.62-41.68,13.36l-6.27,3.12,6.27,3.15c.29.13,30.4,15.25,48.15,29-14.73-.78-41.49-1.72-55.27.72l-12.74,2.24,12.16,4.49Z\"}})]),_vm._m(1)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\"Powered by: \"),_c('a',{attrs:{\"href\":\"https://clastix.io/\",\"target\":\"_blank\"}},[_vm._v(\"Clastix\")])])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('h3',[_vm._v(\"Kamaji Console\")]),_c('p',[_vm._v(\" Deploys and operates Kubernetes Control Plane at scale with a fraction of the operational burden \")])])\n}]\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Console.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Console.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Console.vue?vue&type=template&id=865222be&scoped=true\"\nimport script from \"./Console.vue?vue&type=script&lang=js\"\nexport * from \"./Console.vue?vue&type=script&lang=js\"\nimport style0 from \"./Console.vue?vue&type=style&index=0&id=865222be&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"865222be\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=3f85a05d\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.hasKubearmor)?_c('div',{attrs:{\"url\":_vm.consoleUrl}},[_c('h1',[_vm._v(\"KubeArmor Probe\")]),_c('br'),_c('br'),_c('h2',[_vm._v(\"DaemonSets\")]),_c('SortableTable',{attrs:{\"headers\":_vm.DAEMONSET_HEADERS,\"rows\":_vm.kADaemonSets,\"rowActions\":true,\"titleSlot\":\"
DaemonSets
\"}}),_c('br'),_vm._v(\" \"),_c('br'),_c('h2',[_vm._v(\"Deployments\")]),_c('SortableTable',{attrs:{\"headers\":_vm.DEPLOYMENT_HEADERS,\"rows\":_vm.kADeployments,\"rowActions\":true,\"titleSlot\":\"
DaemonSets
\"}}),_c('br'),_vm._v(\" \"),_c('br'),_c('h2',[_vm._v(\"Nodelist\")]),_c('SortableTable',{attrs:{\"headers\":_vm.NODELIST_HEADERS,\"rows\":_vm.allNodes,\"rowActions\":true,\"titleSlot\":\"
DaemonSets
\"}}),_c('br'),_vm._v(\" \"),_c('br')],1):_c('Install')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.namespaceFilterRequired)?_c('IconMessage',{attrs:{\"vertical\":true,\"subtle\":false,\"icon\":\"icon-filter_alt\"},scopedSlots:_vm._u([{key:\"message\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.t('resourceList.nsFiltering'))+\" \")]},proxy:true}],null,false,4238627989)}):_c('div',[(_vm.showMasthead)?_c('Masthead',{attrs:{\"type-display\":_vm.customTypeDisplay,\"schema\":_vm.schema,\"resource\":_vm.resource,\"show-incremental-loading-indicator\":_vm.showIncrementalLoadingIndicator,\"load-resources\":_vm.loadResources,\"load-indeterminate\":_vm.loadIndeterminate}},[_c('template',{slot:\"extraActions\"},[_vm._t(\"extraActions\")],2)],2):_vm._e(),_c('ExtensionPanel',{attrs:{\"resource\":{},\"type\":_vm.extensionType,\"location\":_vm.extensionLocation}}),(_vm.hasListComponent)?_c('div',[_c(_vm.listComponent,_vm._b({tag:\"component\",attrs:{\"incremental-loading-indicator\":_vm.showIncrementalLoadingIndicator,\"rows\":_vm.rows}},'component',_vm.$data,false))],1):_c('ResourceTable',{attrs:{\"schema\":_vm.schema,\"rows\":_vm.rows,\"loading\":_vm.loading,\"headers\":_vm.headers,\"group-by\":_vm.groupBy,\"has-advanced-filtering\":_vm.hasAdvancedFiltering,\"adv-filter-hide-labels-as-cols\":_vm.advFilterHideLabelsAsCols,\"adv-filter-prevent-filtering-labels\":_vm.advFilterPreventFilteringLabels,\"use-query-params-for-simple-filtering\":_vm.useQueryParamsForSimpleFiltering,\"force-update-live-and-delayed\":_vm.forceUpdateLiveAndDelayed}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SortableTable',_vm._g(_vm._b({ref:\"table\",attrs:{\"headers\":_vm._headers,\"rows\":_vm.filteredRows,\"loading\":_vm.loading,\"group-by\":_vm.computedGroupBy,\"group\":_vm.group,\"group-options\":_vm.groupOptions,\"search\":_vm.search,\"paging\":true,\"paging-params\":_vm.pagingParams,\"paging-label\":_vm.pagingLabel,\"row-actions\":_vm.rowActions,\"table-actions\":_vm._showBulkActions,\"overflow-x\":_vm.overflowX,\"overflow-y\":_vm.overflowY,\"get-custom-detail-link\":_vm.getCustomDetailLink,\"has-advanced-filtering\":_vm.hasAdvancedFiltering,\"adv-filter-hide-labels-as-cols\":_vm.advFilterHideLabelsAsCols,\"adv-filter-prevent-filtering-labels\":_vm.advFilterPreventFilteringLabels,\"key-field\":_vm.keyField,\"sort-generation-fn\":_vm.safeSortGenerationFn,\"use-query-params-for-simple-filtering\":_vm.useQueryParamsForSimpleFiltering,\"force-update-live-and-delayed\":_vm.forceUpdateLiveAndDelayed},on:{\"clickedActionButton\":_vm.handleActionButtonClick,\"group-value-change\":function($event){_vm.group = $event}},scopedSlots:_vm._u([(_vm.showGrouping)?{key:\"header-middle\",fn:function(){return [_vm._t(\"more-header-middle\"),_c('ButtonGroup',{attrs:{\"options\":_vm.groupOptions},model:{value:(_vm.group),callback:function ($$v) {_vm.group=$$v},expression:\"group\"}})]},proxy:true}:null,(_vm.showGrouping)?{key:\"header-right\",fn:function(){return [_vm._t(\"header-right\")]},proxy:true}:null,{key:\"group-by\",fn:function({group: thisGroup}){return [_c('div',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(thisGroup.ref),expression:\"thisGroup.ref\"}],staticClass:\"group-tab\"})]}},_vm._l((_vm.$scopedSlots),function(_,slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}}),{key:\"shortkeys\",fn:function(){return [_c('button',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['e']),expression:\"['e']\",modifiers:{\"once\":true}}],staticClass:\"hide\",on:{\"shortkey\":function($event){return _vm.keyAction('edit')}}}),_c('button',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['y']),expression:\"['y']\",modifiers:{\"once\":true}}],staticClass:\"hide\",on:{\"shortkey\":function($event){return _vm.keyAction('yaml')}}}),(_vm._showBulkActions)?_c('button',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['del']),expression:\"['del']\",modifiers:{\"once\":true}}],staticClass:\"hide\",on:{\"shortkey\":function($event){return _vm.keyAction('remove')}}}):_vm._e(),(_vm._showBulkActions)?_c('button',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['backspace']),expression:\"['backspace']\",modifiers:{\"once\":true}}],staticClass:\"hide\",on:{\"shortkey\":function($event){return _vm.keyAction('remove')}}}):_vm._e()]},proxy:true}],null,true)},'SortableTable',_vm.$attrs,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n \n \n \n\n \n\n \n \n \n \n\n \n \n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ResourceTable.vue?vue&type=template&id=f7b982ea\"\nimport script from \"./ResourceTable.vue?vue&type=script&lang=js\"\nexport * from \"./ResourceTable.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('header',{staticClass:\"with-subheader\"},[_vm._t(\"typeDescription\",function(){return [_c('TypeDescription',{attrs:{\"resource\":_vm.resource}})]}),_c('div',{staticClass:\"title\"},[_c('h1',{staticClass:\"m-0\"},[_vm._v(\" \"+_vm._s(_vm._typeDisplay)+\" \"),(_vm.isExplorer)?_c('Favorite',{attrs:{\"resource\":_vm.favoriteResource || _vm.resource}}):_vm._e()],1),(_vm.showIncrementalLoadingIndicator)?_c('ResourceLoadingIndicator',{attrs:{\"resources\":_vm.loadResources,\"indeterminate\":_vm.loadIndeterminate}}):_vm._e()],1),_c('div',{staticClass:\"sub-header\"},[_vm._t(\"subHeader\")],2),_c('div',{staticClass:\"actions-container\"},[_vm._t(\"actions\",function(){return [_c('div',{staticClass:\"actions\"},[_vm._t(\"extraActions\"),_vm._t(\"createButton\",function(){return [(_vm.hasEditComponent && _vm._isCreatable)?_c('n-link',{staticClass:\"btn role-primary\",attrs:{\"to\":_vm._createLocation,\"data-testid\":_vm.componentTestid+'-create'}},[_vm._v(\" \"+_vm._s(_vm._createButtonlabel)+\" \")]):(_vm._isYamlCreatable)?_c('n-link',{staticClass:\"btn role-primary\",attrs:{\"to\":_vm._yamlCreateLocation,\"data-testid\":_vm.componentTestid+'-create-yaml'}},[_vm._v(\" \"+_vm._s(_vm.t(\"resourceList.head.createFromYaml\"))+\" \")]):_vm._e()]})],2)]})],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('i',{staticClass:\"favorite icon\",class:{'icon-star-open': !_vm.isFavorite, 'icon-star': _vm.isFavorite},attrs:{\"tabindex\":0,\"aria-checked\":!!_vm.isFavorite,\"aria-role\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggle.apply(null, arguments)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.toggle.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;$event.preventDefault();return _vm.toggle.apply(null, arguments)}]}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Favorite.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Favorite.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Favorite.vue?vue&type=template&id=f74a378a&scoped=true\"\nimport script from \"./Favorite.vue?vue&type=script&lang=js\"\nexport * from \"./Favorite.vue?vue&type=script&lang=js\"\nimport style0 from \"./Favorite.vue?vue&type=style&index=0&id=f74a378a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f74a378a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.typeDescriptionKey)?_c('Banner',{staticClass:\"type-banner mb-20 mt-0\",attrs:{\"color\":\"info\",\"closable\":true,\"label-key\":_vm.typeDescriptionKey},on:{\"close\":_vm.hideTypeDescription}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TypeDescription.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TypeDescription.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TypeDescription.vue?vue&type=template&id=23a42aff\"\nimport script from \"./TypeDescription.vue?vue&type=script&lang=js\"\nexport * from \"./TypeDescription.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.count && !_vm.haveAll)?_c('div',{staticClass:\"ml-10 resource-loading-indicator\"},[_c('div',{staticClass:\"inner\"},[_c('div',{staticClass:\"resource-loader\"},[_c('div',{staticClass:\"rl-bg\"},[_c('i',{staticClass:\"icon icon-spinner icon-spin\"}),_c('span',[_vm._v(_vm._s(_vm.t( 'resourceLoadingIndicator.loading' ))+\" \"),(!_vm.indeterminate)?_c('span',[_vm._v(_vm._s(_vm.count)+\" / \"+_vm._s(_vm.total))]):_vm._e()])])]),_c('div',{staticClass:\"resource-loader\",style:({width: _vm.width})},[_c('div',{staticClass:\"rl-fg\"},[_c('i',{staticClass:\"icon icon-spinner icon-spin\"}),_c('span',[_vm._v(_vm._s(_vm.t( 'resourceLoadingIndicator.loading' ))+\" \"),(!_vm.indeterminate)?_c('span',[_vm._v(_vm._s(_vm.count)+\" / \"+_vm._s(_vm.total))]):_vm._e()])])])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceLoadingIndicator.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceLoadingIndicator.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ResourceLoadingIndicator.vue?vue&type=template&id=6457c305&scoped=true\"\nimport script from \"./ResourceLoadingIndicator.vue?vue&type=script&lang=js\"\nexport * from \"./ResourceLoadingIndicator.vue?vue&type=script&lang=js\"\nimport style0 from \"./ResourceLoadingIndicator.vue?vue&type=style&index=0&id=6457c305&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6457c305\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Masthead.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Masthead.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Masthead.vue?vue&type=template&id=c7fe785e&scoped=true\"\nimport script from \"./Masthead.vue?vue&type=script&lang=js\"\nexport * from \"./Masthead.vue?vue&type=script&lang=js\"\nimport style0 from \"./Masthead.vue?vue&type=style&index=0&id=c7fe785e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c7fe785e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"message-icon\",class:{'vertical': _vm.vertical, 'subtle': _vm.subtle}},[_c('i',{staticClass:\"icon\",class:{ [_vm.icon]: true, [_vm.iconState]: !!_vm.iconState}}),_c('div',{staticClass:\"message\"},[_vm._t(\"message\",function(){return [(_vm.messageKey)?[_vm._v(\" \"+_vm._s(_vm.t(_vm.messageKey))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.message)+\" \")]]})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./IconMessage.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./IconMessage.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IconMessage.vue?vue&type=template&id=01996ade&scoped=true\"\nimport script from \"./IconMessage.vue?vue&type=script&lang=js\"\nexport * from \"./IconMessage.vue?vue&type=script&lang=js\"\nimport style0 from \"./IconMessage.vue?vue&type=style&index=0&id=01996ade&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"01996ade\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.extensionData.length)?_c('div',_vm._l((_vm.extensionData),function(item,i){return _c('div',{key:`extensionData${_vm.location}${i}`},[_c(item.component,{tag:\"component\",attrs:{\"resource\":_vm.resource}})],1)}),0):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ExtensionPanel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ExtensionPanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ExtensionPanel.vue?vue&type=template&id=1a394d3c\"\nimport script from \"./ExtensionPanel.vue?vue&type=script&lang=js\"\nexport * from \"./ExtensionPanel.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=02ac34ae&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=02ac34ae&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"02ac34ae\",\n null\n \n)\n\nexport default component.exports","import { mapGetters } from 'vuex';\nimport { allHashSettled } from '@shell/utils/promise';\n\nexport default {\n computed: { ...mapGetters(['currentCluster']) },\n data() {\n return { isLoadingSecondaryResources: false };\n },\n methods: {\n /**\n *\n * Function resourceManagerFetchSecondaryResources\n * This method is used to fetch what is called \"secondary resources\", which can be defined as resources that are needed to populate\n * the page/component itself (ex: used as options on a Select) but don't need to be put into Vuex store or watched to get constant updates.\n * This method allows to fetch resources for a given namespace to reduce the amount of results instead of needing to fetch all and filtering afterwards.\n *\n *\n * @param {String} resourceData.namespace - Namespace identifier\n * @param {Object} resourceData.data - Object containing info about the data needed to be fetched and how it should be parsed. Note: The KEY NEEDS to be the resource TYPE!\n * @param {Array} resourceData.data[TYPE].applyTo - The array of operations needed to be performed for the specific data TYPE\n * @param {String} resourceData.data[TYPE].applyTo[x].var - The 'this' property name that should be populated with the data fetched\n * @param {Boolean} resourceData.data[TYPE].applyTo[x].classify - Whether the data fetched should have a model applied to it\n * @param {Function} resourceData.data[TYPE].applyTo[x].parsingFunc - Optional parsing function if the fetched data needs to be parsed\n * @param {Boolean} onlyNamespaced - Only fetch namespaced resources\n */\n async resourceManagerFetchSecondaryResources(resourceData, onlyNamespaced = false) {\n const requests = {};\n const namespace = resourceData.namespace;\n\n // Only fetch types if the user is allowed to...\n Object.keys(resourceData.data).forEach((type) => {\n const schema = this.$store.getters['cluster/schemaFor'](type);\n\n if (schema) {\n let url = schema.links.collection;\n\n if (schema?.attributes?.namespaced && namespace) {\n url = `${ url }/${ namespace }`;\n } else if (onlyNamespaced) {\n // Type isn't namespaced and we've been requested to only fetch namespaced types\n return;\n }\n\n requests[type] = this.$store.dispatch('cluster/request', { url });\n }\n });\n\n if (Object.keys(requests).length) {\n // this is the flag/variable that we need to apply to all places that rely on this data. Ex: LabeledSelect\n this.isLoadingSecondaryResources = true;\n const hash = await allHashSettled(requests);\n const types = Object.keys(hash);\n\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n const status = hash[type].status;\n // if it's namespaced, we get the data on 'items' prop, for non-namespaced it's 'data' prop...\n const requestData = hash[type].value.items || hash[type].value.data || hash[type].value;\n\n if (status === 'fulfilled' && resourceData.data[type] && resourceData.data[type].applyTo?.length) {\n for (let y = 0; y < resourceData.data[type].applyTo.length; y++) {\n const apply = resourceData.data[type].applyTo[y];\n let resources = requestData;\n\n if (apply.classify) {\n resources = await this.$store.dispatch('cluster/createMany', requestData);\n }\n\n if (apply.parsingFunc) {\n this[apply.var] = apply.parsingFunc(resources);\n } else {\n this[apply.var] = resources;\n }\n }\n } else if (status === 'rejected') {\n console.error(`Resource Manager - secondary data request for type ${ type } has failed`, status.error); // eslint-disable-line no-console\n }\n }\n\n this.isLoadingSecondaryResources = false;\n }\n },\n\n /**\n * Clear the cached secondary resources\n *\n * @param {*} resourceData See resourceManagerFetchSecondaryResources\n * @param {*} onlyNamespaced Clear only namespaced resources\n */\n resourceManagerClearSecondaryResources(resourceData, onlyNamespaced = false) {\n Object.keys(resourceData.data).forEach((type) => {\n const schema = this.$store.getters['cluster/schemaFor'](type);\n\n if (schema) {\n if (!schema?.attributes?.namespaced && onlyNamespaced) {\n // resource isn't namespaced and we're only interested in namespaced resources\n return;\n }\n\n for (let y = 0; y < resourceData.data[type].applyTo.length; y++) {\n const apply = resourceData.data[type].applyTo[y];\n\n this[apply.var] = [];\n }\n }\n });\n }\n },\n};\n","\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./KubeArmor_Probe.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./KubeArmor_Probe.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./KubeArmor_Probe.vue?vue&type=template&id=3b5aaae2&scoped=true\"\nimport script from \"./KubeArmor_Probe.vue?vue&type=script&lang=js\"\nexport * from \"./KubeArmor_Probe.vue?vue&type=script&lang=js\"\nimport style0 from \"./KubeArmor_Probe.vue?vue&type=style&index=0&id=3b5aaae2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b5aaae2\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from \"vue-router\";\nimport Dashboard from \"./Dashboard.vue\";\nimport Helloworld from \"./pages/c/_cluster/kubearmor/KubeArmor_Probe.vue\"\nimport { KA_NAME } from \"./types\";\n\nexport const routes: RouteConfig[] = [\n {\n name: `c-cluster-${KA_NAME}-dashboard`,\n path: `/c/:cluster/:product/dashboard`,\n component: Dashboard,\n meta: {\n product: 'dashboard'\n }\n },\n {\n name: `c-cluster-${KA_NAME}-KubeArmor_Probe`,\n path: `/c/:cluster/:product/KubeArmor_Probe`,\n component: Helloworld,\n meta: {\n product: 'kubearmor'\n },\n }\n];\n","import { importTypes } from \"@rancher/auto-import\";\nimport { IPlugin,PanelLocation,TableColumnLocation } from \"@shell/core/types\";\nimport { routes } from \"./routes\";\nimport {\n NAMESPACE, POD, WORKLOAD_TYPES, INGRESS, SERVICE\n} from '@shell/config/types';\n// Init the package\nexport default function($plugin: IPlugin) {\n // Auto-import model, detail, edit from the folders\n importTypes($plugin);\n\n // Provide plugin metadata from package.json\n $plugin.metadata = require(\"./package.json\");\n\n // Load a product\n $plugin.addProduct(require(\"./product\"));\n\n $plugin.addRoutes(routes);\n\n\n}\n ","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","import { get } from './object';\nimport { strPad } from './string';\n\n// Based on https://github.com/emberjs/ember.js/blob/master/packages/@ember/-internals/runtime/lib/type-of.js\n// and https://github.com/emberjs/ember.js/blob/master/packages/@ember/-internals/runtime/lib/mixins/array.js\n/*\nCopyright (c) 2019 Yehuda Katz, Tom Dale and Ember.js contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\n// ........................................\n// TYPING & ARRAY MESSAGING\n//\nconst TYPE_MAP = {\n '[object Boolean]': 'boolean',\n '[object Number]': 'number',\n '[object String]': 'string',\n '[object Function]': 'function',\n '[object Array]': 'array',\n '[object Date]': 'date',\n '[object RegExp]': 'regexp',\n '[object Object]': 'object',\n '[object FileList]': 'filelist',\n};\n\nconst { toString } = Object.prototype;\n\n/**\n Returns a consistent type for the passed object.\n\n Use this instead of the built-in `typeof` to get the type of an item.\n It will return the same result across all browsers and includes a bit\n more detail. Here is what will be returned:\n\n | Return Value | Meaning |\n |---------------|------------------------------------------------------|\n | 'string' | String primitive or String object. |\n | 'number' | Number primitive or Number object. |\n | 'boolean' | Boolean primitive or Boolean object. |\n | 'null' | Null value |\n | 'undefined' | Undefined value |\n | 'function' | A function |\n | 'array' | An instance of Array |\n | 'regexp' | An instance of RegExp |\n | 'date' | An instance of Date |\n | 'filelist' | An instance of FileList |\n | 'error' | An instance of the Error object |\n | 'object' | A JavaScript object |\n\n Examples:\n\n import { typeOf } from '@shell/utils/type-of';\n\n typeOf(); // 'undefined'\n typeOf(null); // 'null'\n typeOf(undefined); // 'undefined'\n typeOf('michael'); // 'string'\n typeOf(new String('michael')); // 'string'\n typeOf(101); // 'number'\n typeOf(new Number(101)); // 'number'\n typeOf(true); // 'boolean'\n typeOf(new Boolean(true)); // 'boolean'\n typeOf(A); // 'function'\n typeOf([1, 2, 90]); // 'array'\n typeOf(/abc/); // 'regexp'\n typeOf(new Date()); // 'date'\n typeOf(event.target.files); // 'filelist'\n typeOf(new Error('teamocil')); // 'error'\n\n // 'normal' JavaScript object\n typeOf({ a: 'b' }); // 'object'\n*/\nexport function typeOf(item) {\n if (item === null) {\n return 'null';\n }\n if (item === undefined) {\n return 'undefined';\n }\n let ret = TYPE_MAP[toString.call(item)] || 'object';\n\n if (ret === 'object') {\n if (item instanceof Error) {\n ret = 'error';\n } else if (item instanceof Date) {\n ret = 'date';\n }\n }\n\n return ret;\n}\n\nexport function spaceship(a, b) {\n const diff = a - b;\n\n return (diff > 0) - (diff < 0);\n}\n\nconst TYPE_ORDER = {\n undefined: 0,\n null: 1,\n boolean: 2,\n number: 3,\n string: 4,\n array: 5,\n object: 6,\n instance: 7,\n function: 8,\n class: 9,\n date: 10,\n};\n\nexport function compare(a, b) {\n const typeA = typeOf(a);\n const typeB = typeOf(b);\n\n const res = spaceship(TYPE_ORDER[typeA], TYPE_ORDER[typeB]);\n\n if ( res ) {\n return res;\n }\n\n switch (typeA) {\n case 'boolean':\n case 'number':\n return spaceship(a, b);\n\n case 'string':\n return spaceship(a.localeCompare(b), 0);\n\n case 'array': {\n const aLen = a.length;\n const bLen = b.length;\n const len = Math.min(aLen, bLen);\n\n for (let i = 0; i < len; i++) {\n const r = compare(a[i], b[i]);\n\n if (r !== 0) {\n return r;\n }\n }\n\n // all elements are equal now\n // shorter array should be ordered first\n return spaceship(aLen, bLen);\n }\n case 'date':\n return spaceship(a.getTime(), b.getTime());\n }\n\n return 0;\n}\n\nexport function parseField(str) {\n const parts = str.split(/:/);\n\n if ( parts.length === 2 && parts[1] === 'desc' ) {\n return { field: parts[0], reverse: true };\n } else {\n return { field: str, reverse: false };\n }\n}\n\nexport function sortBy(ary, keys, desc) {\n if ( !Array.isArray(keys) ) {\n keys = [keys];\n }\n\n return (ary || []).slice().sort((objA, objB) => {\n for ( let i = 0 ; i < keys.length ; i++ ) {\n const parsed = parseField(keys[i]);\n const a = get(objA, parsed.field);\n const b = get(objB, parsed.field);\n let res = compare(a, b);\n\n if ( res ) {\n if ( desc ) {\n res *= -1;\n }\n\n if ( parsed.reverse ) {\n res *= -1;\n }\n\n return res;\n }\n }\n\n return 0;\n });\n}\n\n// Turn foo1-bar2 into foo0000000001-bar0000000002 so that the numbers sort numerically\nconst splitRegex = /([^\\d]+)/;\nconst notNumericRegex = /^[0-9]+$/;\n\nexport function sortableNumericSuffix(str) {\n if ( typeof str !== 'string' ) {\n return str;\n }\n\n return str.split(splitRegex).map((x) => x.match(notNumericRegex) ? strPad(x, 10, '0') : x).join('').trim();\n}\n\nexport function isNumeric(num) {\n return !!`${ num }`.match(notNumericRegex);\n}\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".text.info[data-v-5050d908]{display:flex;align-items:center}.text.info>span[data-v-5050d908]{margin-right:5px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".overlay[data-v-23723280]{align-items:center;background-color:var(--overlay-bg);display:flex;justify-content:center;position:absolute;bottom:0;top:0;left:0;right:0;text-align:center;z-index:51}.overlay-content-mode[data-v-23723280],.overlay-main-mode[data-v-23723280]{top:var(--header-height)}.overlay-content-mode[data-v-23723280]{left:calc(var(--nav-width))}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"cronstrue\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cronstrue\"] = factory();\n\telse\n\t\troot[\"cronstrue\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 4);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar stringUtilities_1 = __webpack_require__(1);\nvar cronParser_1 = __webpack_require__(2);\nvar ExpressionDescriptor = (function () {\n function ExpressionDescriptor(expression, options) {\n this.expression = expression;\n this.options = options;\n this.expressionParts = new Array(5);\n if (ExpressionDescriptor.locales[options.locale]) {\n this.i18n = ExpressionDescriptor.locales[options.locale];\n }\n else {\n console.warn(\"Locale '\" + options.locale + \"' could not be found; falling back to 'en'.\");\n this.i18n = ExpressionDescriptor.locales[\"en\"];\n }\n if (options.use24HourTimeFormat === undefined) {\n options.use24HourTimeFormat = this.i18n.use24HourTimeFormatByDefault();\n }\n }\n ExpressionDescriptor.toString = function (expression, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.throwExceptionOnParseError, throwExceptionOnParseError = _c === void 0 ? true : _c, _d = _b.verbose, verbose = _d === void 0 ? false : _d, _e = _b.dayOfWeekStartIndexZero, dayOfWeekStartIndexZero = _e === void 0 ? true : _e, use24HourTimeFormat = _b.use24HourTimeFormat, _f = _b.locale, locale = _f === void 0 ? \"en\" : _f;\n var options = {\n throwExceptionOnParseError: throwExceptionOnParseError,\n verbose: verbose,\n dayOfWeekStartIndexZero: dayOfWeekStartIndexZero,\n use24HourTimeFormat: use24HourTimeFormat,\n locale: locale\n };\n var descripter = new ExpressionDescriptor(expression, options);\n return descripter.getFullDescription();\n };\n ExpressionDescriptor.initialize = function (localesLoader) {\n ExpressionDescriptor.specialCharacters = [\"/\", \"-\", \",\", \"*\"];\n localesLoader.load(ExpressionDescriptor.locales);\n };\n ExpressionDescriptor.prototype.getFullDescription = function () {\n var description = \"\";\n try {\n var parser = new cronParser_1.CronParser(this.expression, this.options.dayOfWeekStartIndexZero);\n this.expressionParts = parser.parse();\n var timeSegment = this.getTimeOfDayDescription();\n var dayOfMonthDesc = this.getDayOfMonthDescription();\n var monthDesc = this.getMonthDescription();\n var dayOfWeekDesc = this.getDayOfWeekDescription();\n var yearDesc = this.getYearDescription();\n description += timeSegment + dayOfMonthDesc + dayOfWeekDesc + monthDesc + yearDesc;\n description = this.transformVerbosity(description, this.options.verbose);\n description = description.charAt(0).toLocaleUpperCase() + description.substr(1);\n }\n catch (ex) {\n if (!this.options.throwExceptionOnParseError) {\n description = this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();\n }\n else {\n throw \"\" + ex;\n }\n }\n return description;\n };\n ExpressionDescriptor.prototype.getTimeOfDayDescription = function () {\n var secondsExpression = this.expressionParts[0];\n var minuteExpression = this.expressionParts[1];\n var hourExpression = this.expressionParts[2];\n var description = \"\";\n if (!stringUtilities_1.StringUtilities.containsAny(minuteExpression, ExpressionDescriptor.specialCharacters) &&\n !stringUtilities_1.StringUtilities.containsAny(hourExpression, ExpressionDescriptor.specialCharacters) &&\n !stringUtilities_1.StringUtilities.containsAny(secondsExpression, ExpressionDescriptor.specialCharacters)) {\n description += this.i18n.atSpace() + this.formatTime(hourExpression, minuteExpression, secondsExpression);\n }\n else if (!secondsExpression &&\n minuteExpression.indexOf(\"-\") > -1 &&\n !(minuteExpression.indexOf(\",\") > -1) &&\n !(minuteExpression.indexOf(\"/\") > -1) &&\n !stringUtilities_1.StringUtilities.containsAny(hourExpression, ExpressionDescriptor.specialCharacters)) {\n var minuteParts = minuteExpression.split(\"-\");\n description += stringUtilities_1.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(), this.formatTime(hourExpression, minuteParts[0], \"\"), this.formatTime(hourExpression, minuteParts[1], \"\"));\n }\n else if (!secondsExpression &&\n hourExpression.indexOf(\",\") > -1 &&\n hourExpression.indexOf(\"-\") == -1 &&\n hourExpression.indexOf(\"/\") == -1 &&\n !stringUtilities_1.StringUtilities.containsAny(minuteExpression, ExpressionDescriptor.specialCharacters)) {\n var hourParts = hourExpression.split(\",\");\n description += this.i18n.at();\n for (var i = 0; i < hourParts.length; i++) {\n description += \" \";\n description += this.formatTime(hourParts[i], minuteExpression, \"\");\n if (i < hourParts.length - 2) {\n description += \",\";\n }\n if (i == hourParts.length - 2) {\n description += this.i18n.spaceAnd();\n }\n }\n }\n else {\n var secondsDescription = this.getSecondsDescription();\n var minutesDescription = this.getMinutesDescription();\n var hoursDescription = this.getHoursDescription();\n description += secondsDescription;\n if (description.length > 0 && minutesDescription.length > 0) {\n description += \", \";\n }\n description += minutesDescription;\n if (description.length > 0 && hoursDescription.length > 0) {\n description += \", \";\n }\n description += hoursDescription;\n }\n return description;\n };\n ExpressionDescriptor.prototype.getSecondsDescription = function () {\n var _this = this;\n var description = this.getSegmentDescription(this.expressionParts[0], this.i18n.everySecond(), function (s) {\n return s;\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Seconds(), s);\n }, function (s) {\n return _this.i18n.secondsX0ThroughX1PastTheMinute();\n }, function (s) {\n return s == \"0\"\n ? \"\"\n : parseInt(s) < 20\n ? _this.i18n.atX0SecondsPastTheMinute()\n : _this.i18n.atX0SecondsPastTheMinuteGt20() || _this.i18n.atX0SecondsPastTheMinute();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getMinutesDescription = function () {\n var _this = this;\n var secondsExpression = this.expressionParts[0];\n var hourExpression = this.expressionParts[2];\n var description = this.getSegmentDescription(this.expressionParts[1], this.i18n.everyMinute(), function (s) {\n return s;\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Minutes(), s);\n }, function (s) {\n return _this.i18n.minutesX0ThroughX1PastTheHour();\n }, function (s) {\n try {\n return s == \"0\" && hourExpression.indexOf(\"/\") == -1 && secondsExpression == \"\"\n ? _this.i18n.everyHour()\n : parseInt(s) < 20\n ? _this.i18n.atX0MinutesPastTheHour()\n : _this.i18n.atX0MinutesPastTheHourGt20() || _this.i18n.atX0MinutesPastTheHour();\n }\n catch (e) {\n return _this.i18n.atX0MinutesPastTheHour();\n }\n });\n return description;\n };\n ExpressionDescriptor.prototype.getHoursDescription = function () {\n var _this = this;\n var expression = this.expressionParts[2];\n var description = this.getSegmentDescription(expression, this.i18n.everyHour(), function (s) {\n return _this.formatTime(s, \"0\", \"\");\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Hours(), s);\n }, function (s) {\n return _this.i18n.betweenX0AndX1();\n }, function (s) {\n return _this.i18n.atX0();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getDayOfWeekDescription = function () {\n var _this = this;\n var daysOfWeekNames = this.i18n.daysOfTheWeek();\n var description = null;\n if (this.expressionParts[5] == \"*\") {\n description = \"\";\n }\n else {\n description = this.getSegmentDescription(this.expressionParts[5], this.i18n.commaEveryDay(), function (s) {\n var exp = s;\n if (s.indexOf(\"#\") > -1) {\n exp = s.substr(0, s.indexOf(\"#\"));\n }\n else if (s.indexOf(\"L\") > -1) {\n exp = exp.replace(\"L\", \"\");\n }\n return daysOfWeekNames[parseInt(exp)];\n }, function (s) {\n if (parseInt(s) == 1) {\n return \"\";\n }\n else {\n return stringUtilities_1.StringUtilities.format(_this.i18n.commaEveryX0DaysOfTheWeek(), s);\n }\n }, function (s) {\n return _this.i18n.commaX0ThroughX1();\n }, function (s) {\n var format = null;\n if (s.indexOf(\"#\") > -1) {\n var dayOfWeekOfMonthNumber = s.substring(s.indexOf(\"#\") + 1);\n var dayOfWeekOfMonthDescription = null;\n switch (dayOfWeekOfMonthNumber) {\n case \"1\":\n dayOfWeekOfMonthDescription = _this.i18n.first();\n break;\n case \"2\":\n dayOfWeekOfMonthDescription = _this.i18n.second();\n break;\n case \"3\":\n dayOfWeekOfMonthDescription = _this.i18n.third();\n break;\n case \"4\":\n dayOfWeekOfMonthDescription = _this.i18n.fourth();\n break;\n case \"5\":\n dayOfWeekOfMonthDescription = _this.i18n.fifth();\n break;\n }\n format = _this.i18n.commaOnThe() + dayOfWeekOfMonthDescription + _this.i18n.spaceX0OfTheMonth();\n }\n else if (s.indexOf(\"L\") > -1) {\n format = _this.i18n.commaOnTheLastX0OfTheMonth();\n }\n else {\n var domSpecified = _this.expressionParts[3] != \"*\";\n format = domSpecified ? _this.i18n.commaAndOnX0() : _this.i18n.commaOnlyOnX0();\n }\n return format;\n });\n }\n return description;\n };\n ExpressionDescriptor.prototype.getMonthDescription = function () {\n var _this = this;\n var monthNames = this.i18n.monthsOfTheYear();\n var description = this.getSegmentDescription(this.expressionParts[4], \"\", function (s) {\n return monthNames[parseInt(s) - 1];\n }, function (s) {\n if (parseInt(s) == 1) {\n return \"\";\n }\n else {\n return stringUtilities_1.StringUtilities.format(_this.i18n.commaEveryX0Months(), s);\n }\n }, function (s) {\n return _this.i18n.commaMonthX0ThroughMonthX1() || _this.i18n.commaX0ThroughX1();\n }, function (s) {\n return _this.i18n.commaOnlyInMonthX0 ? _this.i18n.commaOnlyInMonthX0() : _this.i18n.commaOnlyInX0();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getDayOfMonthDescription = function () {\n var _this = this;\n var description = null;\n var expression = this.expressionParts[3];\n switch (expression) {\n case \"L\":\n description = this.i18n.commaOnTheLastDayOfTheMonth();\n break;\n case \"WL\":\n case \"LW\":\n description = this.i18n.commaOnTheLastWeekdayOfTheMonth();\n break;\n default:\n var weekDayNumberMatches = expression.match(/(\\d{1,2}W)|(W\\d{1,2})/);\n if (weekDayNumberMatches) {\n var dayNumber = parseInt(weekDayNumberMatches[0].replace(\"W\", \"\"));\n var dayString = dayNumber == 1\n ? this.i18n.firstWeekday()\n : stringUtilities_1.StringUtilities.format(this.i18n.weekdayNearestDayX0(), dayNumber.toString());\n description = stringUtilities_1.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(), dayString);\n break;\n }\n else {\n var lastDayOffSetMatches = expression.match(/L-(\\d{1,2})/);\n if (lastDayOffSetMatches) {\n var offSetDays = lastDayOffSetMatches[1];\n description = stringUtilities_1.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(), offSetDays);\n break;\n }\n else if (expression == \"*\" && this.expressionParts[5] != \"*\") {\n return \"\";\n }\n else {\n description = this.getSegmentDescription(expression, this.i18n.commaEveryDay(), function (s) {\n return s == \"L\" ? _this.i18n.lastDay() : ((_this.i18n.dayX0) ? stringUtilities_1.StringUtilities.format(_this.i18n.dayX0(), s) : s);\n }, function (s) {\n return s == \"1\" ? _this.i18n.commaEveryDay() : _this.i18n.commaEveryX0Days();\n }, function (s) {\n return _this.i18n.commaBetweenDayX0AndX1OfTheMonth();\n }, function (s) {\n return _this.i18n.commaOnDayX0OfTheMonth();\n });\n }\n break;\n }\n }\n return description;\n };\n ExpressionDescriptor.prototype.getYearDescription = function () {\n var _this = this;\n var description = this.getSegmentDescription(this.expressionParts[6], \"\", function (s) {\n return /^\\d+$/.test(s) ? new Date(parseInt(s), 1).getFullYear().toString() : s;\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.commaEveryX0Years(), s);\n }, function (s) {\n return _this.i18n.commaYearX0ThroughYearX1() || _this.i18n.commaX0ThroughX1();\n }, function (s) {\n return _this.i18n.commaOnlyInYearX0 ? _this.i18n.commaOnlyInYearX0() : _this.i18n.commaOnlyInX0();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getSegmentDescription = function (expression, allDescription, getSingleItemDescription, getIntervalDescriptionFormat, getBetweenDescriptionFormat, getDescriptionFormat) {\n var _this = this;\n var description = null;\n if (!expression) {\n description = \"\";\n }\n else if (expression === \"*\") {\n description = allDescription;\n }\n else if (!stringUtilities_1.StringUtilities.containsAny(expression, [\"/\", \"-\", \",\"])) {\n description = stringUtilities_1.StringUtilities.format(getDescriptionFormat(expression), getSingleItemDescription(expression));\n }\n else if (expression.indexOf(\"/\") > -1) {\n var segments = expression.split(\"/\");\n description = stringUtilities_1.StringUtilities.format(getIntervalDescriptionFormat(segments[1]), segments[1]);\n if (segments[0].indexOf(\"-\") > -1) {\n var betweenSegmentDescription = this.generateBetweenSegmentDescription(segments[0], getBetweenDescriptionFormat, getSingleItemDescription);\n if (betweenSegmentDescription.indexOf(\", \") != 0) {\n description += \", \";\n }\n description += betweenSegmentDescription;\n }\n else if (!stringUtilities_1.StringUtilities.containsAny(segments[0], [\"*\", \",\"])) {\n var rangeItemDescription = stringUtilities_1.StringUtilities.format(getDescriptionFormat(segments[0]), getSingleItemDescription(segments[0]));\n rangeItemDescription = rangeItemDescription.replace(\", \", \"\");\n description += stringUtilities_1.StringUtilities.format(this.i18n.commaStartingX0(), rangeItemDescription);\n }\n }\n else if (expression.indexOf(\",\") > -1) {\n var segments = expression.split(\",\");\n var descriptionContent = \"\";\n for (var i = 0; i < segments.length; i++) {\n if (i > 0 && segments.length > 2) {\n descriptionContent += \",\";\n if (i < segments.length - 1) {\n descriptionContent += \" \";\n }\n }\n if (i > 0 && segments.length > 1 && (i == segments.length - 1 || segments.length == 2)) {\n descriptionContent += this.i18n.spaceAnd() + \" \";\n }\n if (segments[i].indexOf(\"-\") > -1) {\n var betweenSegmentDescription = this.generateBetweenSegmentDescription(segments[i], function (s) {\n return _this.i18n.commaX0ThroughX1();\n }, getSingleItemDescription);\n betweenSegmentDescription = betweenSegmentDescription.replace(\", \", \"\");\n descriptionContent += betweenSegmentDescription;\n }\n else {\n descriptionContent += getSingleItemDescription(segments[i]);\n }\n }\n description = stringUtilities_1.StringUtilities.format(getDescriptionFormat(expression), descriptionContent);\n }\n else if (expression.indexOf(\"-\") > -1) {\n description = this.generateBetweenSegmentDescription(expression, getBetweenDescriptionFormat, getSingleItemDescription);\n }\n return description;\n };\n ExpressionDescriptor.prototype.generateBetweenSegmentDescription = function (betweenExpression, getBetweenDescriptionFormat, getSingleItemDescription) {\n var description = \"\";\n var betweenSegments = betweenExpression.split(\"-\");\n var betweenSegment1Description = getSingleItemDescription(betweenSegments[0]);\n var betweenSegment2Description = getSingleItemDescription(betweenSegments[1]);\n betweenSegment2Description = betweenSegment2Description.replace(\":00\", \":59\");\n var betweenDescriptionFormat = getBetweenDescriptionFormat(betweenExpression);\n description += stringUtilities_1.StringUtilities.format(betweenDescriptionFormat, betweenSegment1Description, betweenSegment2Description);\n return description;\n };\n ExpressionDescriptor.prototype.formatTime = function (hourExpression, minuteExpression, secondExpression) {\n var hour = parseInt(hourExpression);\n var period = \"\";\n var setPeriodBeforeTime = false;\n if (!this.options.use24HourTimeFormat) {\n setPeriodBeforeTime = this.i18n.setPeriodBeforeTime && this.i18n.setPeriodBeforeTime();\n period = setPeriodBeforeTime ? this.getPeriod(hour) + \" \" : \" \" + this.getPeriod(hour);\n if (hour > 12) {\n hour -= 12;\n }\n if (hour === 0) {\n hour = 12;\n }\n }\n var minute = minuteExpression;\n var second = \"\";\n if (secondExpression) {\n second = \":\" + (\"00\" + secondExpression).substring(secondExpression.length);\n }\n return \"\" + (setPeriodBeforeTime ? period : \"\") + (\"00\" + hour.toString()).substring(hour.toString().length) + \":\" + (\"00\" + minute.toString()).substring(minute.toString().length) + second + (!setPeriodBeforeTime ? period : \"\");\n };\n ExpressionDescriptor.prototype.transformVerbosity = function (description, useVerboseFormat) {\n if (!useVerboseFormat) {\n description = description.replace(new RegExp(\", \" + this.i18n.everyMinute(), \"g\"), \"\");\n description = description.replace(new RegExp(\", \" + this.i18n.everyHour(), \"g\"), \"\");\n description = description.replace(new RegExp(this.i18n.commaEveryDay(), \"g\"), \"\");\n description = description.replace(/\\, ?$/, \"\");\n }\n return description;\n };\n ExpressionDescriptor.prototype.getPeriod = function (hour) {\n return hour >= 12 ? this.i18n.pm && this.i18n.pm() || \"PM\" : this.i18n.am && this.i18n.am() || \"AM\";\n };\n ExpressionDescriptor.locales = {};\n return ExpressionDescriptor;\n}());\nexports.ExpressionDescriptor = ExpressionDescriptor;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StringUtilities = (function () {\n function StringUtilities() {\n }\n StringUtilities.format = function (template) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n return template.replace(/%s/g, function () {\n return values.shift();\n });\n };\n StringUtilities.containsAny = function (text, searchStrings) {\n return searchStrings.some(function (c) {\n return text.indexOf(c) > -1;\n });\n };\n return StringUtilities;\n}());\nexports.StringUtilities = StringUtilities;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CronParser = (function () {\n function CronParser(expression, dayOfWeekStartIndexZero) {\n if (dayOfWeekStartIndexZero === void 0) { dayOfWeekStartIndexZero = true; }\n this.expression = expression;\n this.dayOfWeekStartIndexZero = dayOfWeekStartIndexZero;\n }\n CronParser.prototype.parse = function () {\n var parsed = this.extractParts(this.expression);\n this.normalize(parsed);\n this.validate(parsed);\n return parsed;\n };\n CronParser.prototype.extractParts = function (expression) {\n if (!this.expression) {\n throw new Error(\"Expression is empty\");\n }\n var parsed = expression.trim().split(/[ ]+/);\n if (parsed.length < 5) {\n throw new Error(\"Expression has only \" + parsed.length + \" part\" + (parsed.length == 1 ? \"\" : \"s\") + \". At least 5 parts are required.\");\n }\n else if (parsed.length == 5) {\n parsed.unshift(\"\");\n parsed.push(\"\");\n }\n else if (parsed.length == 6) {\n if (/\\d{4}$/.test(parsed[5])) {\n parsed.unshift(\"\");\n }\n else {\n parsed.push(\"\");\n }\n }\n else if (parsed.length > 7) {\n throw new Error(\"Expression has \" + parsed.length + \" parts; too many!\");\n }\n return parsed;\n };\n CronParser.prototype.normalize = function (expressionParts) {\n var _this = this;\n expressionParts[3] = expressionParts[3].replace(\"?\", \"*\");\n expressionParts[5] = expressionParts[5].replace(\"?\", \"*\");\n expressionParts[2] = expressionParts[2].replace(\"?\", \"*\");\n if (expressionParts[0].indexOf(\"0/\") == 0) {\n expressionParts[0] = expressionParts[0].replace(\"0/\", \"*/\");\n }\n if (expressionParts[1].indexOf(\"0/\") == 0) {\n expressionParts[1] = expressionParts[1].replace(\"0/\", \"*/\");\n }\n if (expressionParts[2].indexOf(\"0/\") == 0) {\n expressionParts[2] = expressionParts[2].replace(\"0/\", \"*/\");\n }\n if (expressionParts[3].indexOf(\"1/\") == 0) {\n expressionParts[3] = expressionParts[3].replace(\"1/\", \"*/\");\n }\n if (expressionParts[4].indexOf(\"1/\") == 0) {\n expressionParts[4] = expressionParts[4].replace(\"1/\", \"*/\");\n }\n if (expressionParts[5].indexOf(\"1/\") == 0) {\n expressionParts[5] = expressionParts[5].replace(\"1/\", \"*/\");\n }\n if (expressionParts[6].indexOf(\"1/\") == 0) {\n expressionParts[6] = expressionParts[6].replace(\"1/\", \"*/\");\n }\n expressionParts[5] = expressionParts[5].replace(/(^\\d)|([^#/\\s]\\d)/g, function (t) {\n var dowDigits = t.replace(/\\D/, \"\");\n var dowDigitsAdjusted = dowDigits;\n if (_this.dayOfWeekStartIndexZero) {\n if (dowDigits == \"7\") {\n dowDigitsAdjusted = \"0\";\n }\n }\n else {\n dowDigitsAdjusted = (parseInt(dowDigits) - 1).toString();\n }\n return t.replace(dowDigits, dowDigitsAdjusted);\n });\n if (expressionParts[5] == \"L\") {\n expressionParts[5] = \"6\";\n }\n if (expressionParts[3] == \"?\") {\n expressionParts[3] = \"*\";\n }\n if (expressionParts[3].indexOf(\"W\") > -1 &&\n (expressionParts[3].indexOf(\",\") > -1 || expressionParts[3].indexOf(\"-\") > -1)) {\n throw new Error(\"The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.\");\n }\n var days = {\n SUN: 0,\n MON: 1,\n TUE: 2,\n WED: 3,\n THU: 4,\n FRI: 5,\n SAT: 6\n };\n for (var day in days) {\n expressionParts[5] = expressionParts[5].replace(new RegExp(day, \"gi\"), days[day].toString());\n }\n var months = {\n JAN: 1,\n FEB: 2,\n MAR: 3,\n APR: 4,\n MAY: 5,\n JUN: 6,\n JUL: 7,\n AUG: 8,\n SEP: 9,\n OCT: 10,\n NOV: 11,\n DEC: 12\n };\n for (var month in months) {\n expressionParts[4] = expressionParts[4].replace(new RegExp(month, \"gi\"), months[month].toString());\n }\n if (expressionParts[0] == \"0\") {\n expressionParts[0] = \"\";\n }\n if (!/\\*|\\-|\\,|\\//.test(expressionParts[2]) &&\n (/\\*|\\//.test(expressionParts[1]) || /\\*|\\//.test(expressionParts[0]))) {\n expressionParts[2] += \"-\" + expressionParts[2];\n }\n for (var i = 0; i < expressionParts.length; i++) {\n if (expressionParts[i] == \"*/1\") {\n expressionParts[i] = \"*\";\n }\n if (expressionParts[i].indexOf(\"/\") > -1 && !/^\\*|\\-|\\,/.test(expressionParts[i])) {\n var stepRangeThrough = null;\n switch (i) {\n case 4:\n stepRangeThrough = \"12\";\n break;\n case 5:\n stepRangeThrough = \"6\";\n break;\n case 6:\n stepRangeThrough = \"9999\";\n break;\n default:\n stepRangeThrough = null;\n break;\n }\n if (stepRangeThrough != null) {\n var parts = expressionParts[i].split(\"/\");\n expressionParts[i] = parts[0] + \"-\" + stepRangeThrough + \"/\" + parts[1];\n }\n }\n }\n };\n CronParser.prototype.validate = function (parsed) {\n this.assertNoInvalidCharacters(\"DOW\", parsed[5]);\n this.assertNoInvalidCharacters(\"DOM\", parsed[3]);\n };\n CronParser.prototype.assertNoInvalidCharacters = function (partDescription, expression) {\n var invalidChars = expression.match(/[A-KM-VX-Z]+/gi);\n if (invalidChars && invalidChars.length) {\n throw new Error(partDescription + \" part contains invalid values: '\" + invalidChars.toString() + \"'\");\n }\n };\n return CronParser;\n}());\nexports.CronParser = CronParser;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar en = (function () {\n function en() {\n }\n en.prototype.atX0SecondsPastTheMinuteGt20 = function () {\n return null;\n };\n en.prototype.atX0MinutesPastTheHourGt20 = function () {\n return null;\n };\n en.prototype.commaMonthX0ThroughMonthX1 = function () {\n return null;\n };\n en.prototype.commaYearX0ThroughYearX1 = function () {\n return null;\n };\n en.prototype.use24HourTimeFormatByDefault = function () {\n return false;\n };\n en.prototype.anErrorOccuredWhenGeneratingTheExpressionD = function () {\n return \"An error occured when generating the expression description. Check the cron expression syntax.\";\n };\n en.prototype.everyMinute = function () {\n return \"every minute\";\n };\n en.prototype.everyHour = function () {\n return \"every hour\";\n };\n en.prototype.atSpace = function () {\n return \"At \";\n };\n en.prototype.everyMinuteBetweenX0AndX1 = function () {\n return \"Every minute between %s and %s\";\n };\n en.prototype.at = function () {\n return \"At\";\n };\n en.prototype.spaceAnd = function () {\n return \" and\";\n };\n en.prototype.everySecond = function () {\n return \"every second\";\n };\n en.prototype.everyX0Seconds = function () {\n return \"every %s seconds\";\n };\n en.prototype.secondsX0ThroughX1PastTheMinute = function () {\n return \"seconds %s through %s past the minute\";\n };\n en.prototype.atX0SecondsPastTheMinute = function () {\n return \"at %s seconds past the minute\";\n };\n en.prototype.everyX0Minutes = function () {\n return \"every %s minutes\";\n };\n en.prototype.minutesX0ThroughX1PastTheHour = function () {\n return \"minutes %s through %s past the hour\";\n };\n en.prototype.atX0MinutesPastTheHour = function () {\n return \"at %s minutes past the hour\";\n };\n en.prototype.everyX0Hours = function () {\n return \"every %s hours\";\n };\n en.prototype.betweenX0AndX1 = function () {\n return \"between %s and %s\";\n };\n en.prototype.atX0 = function () {\n return \"at %s\";\n };\n en.prototype.commaEveryDay = function () {\n return \", every day\";\n };\n en.prototype.commaEveryX0DaysOfTheWeek = function () {\n return \", every %s days of the week\";\n };\n en.prototype.commaX0ThroughX1 = function () {\n return \", %s through %s\";\n };\n en.prototype.first = function () {\n return \"first\";\n };\n en.prototype.second = function () {\n return \"second\";\n };\n en.prototype.third = function () {\n return \"third\";\n };\n en.prototype.fourth = function () {\n return \"fourth\";\n };\n en.prototype.fifth = function () {\n return \"fifth\";\n };\n en.prototype.commaOnThe = function () {\n return \", on the \";\n };\n en.prototype.spaceX0OfTheMonth = function () {\n return \" %s of the month\";\n };\n en.prototype.lastDay = function () {\n return \"the last day\";\n };\n en.prototype.commaOnTheLastX0OfTheMonth = function () {\n return \", on the last %s of the month\";\n };\n en.prototype.commaOnlyOnX0 = function () {\n return \", only on %s\";\n };\n en.prototype.commaAndOnX0 = function () {\n return \", and on %s\";\n };\n en.prototype.commaEveryX0Months = function () {\n return \", every %s months\";\n };\n en.prototype.commaOnlyInX0 = function () {\n return \", only in %s\";\n };\n en.prototype.commaOnTheLastDayOfTheMonth = function () {\n return \", on the last day of the month\";\n };\n en.prototype.commaOnTheLastWeekdayOfTheMonth = function () {\n return \", on the last weekday of the month\";\n };\n en.prototype.commaDaysBeforeTheLastDayOfTheMonth = function () {\n return \", %s days before the last day of the month\";\n };\n en.prototype.firstWeekday = function () {\n return \"first weekday\";\n };\n en.prototype.weekdayNearestDayX0 = function () {\n return \"weekday nearest day %s\";\n };\n en.prototype.commaOnTheX0OfTheMonth = function () {\n return \", on the %s of the month\";\n };\n en.prototype.commaEveryX0Days = function () {\n return \", every %s days\";\n };\n en.prototype.commaBetweenDayX0AndX1OfTheMonth = function () {\n return \", between day %s and %s of the month\";\n };\n en.prototype.commaOnDayX0OfTheMonth = function () {\n return \", on day %s of the month\";\n };\n en.prototype.commaEveryHour = function () {\n return \", every hour\";\n };\n en.prototype.commaEveryX0Years = function () {\n return \", every %s years\";\n };\n en.prototype.commaStartingX0 = function () {\n return \", starting %s\";\n };\n en.prototype.daysOfTheWeek = function () {\n return [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n };\n en.prototype.monthsOfTheYear = function () {\n return [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ];\n };\n return en;\n}());\nexports.en = en;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar expressionDescriptor_ts_1 = __webpack_require__(0);\nvar enLocaleLoader_1 = __webpack_require__(5);\nexpressionDescriptor_ts_1.ExpressionDescriptor.initialize(new enLocaleLoader_1.enLocaleLoader());\nexports.default = expressionDescriptor_ts_1.ExpressionDescriptor;\nvar toString = expressionDescriptor_ts_1.ExpressionDescriptor.toString;\nexports.toString = toString;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar en_1 = __webpack_require__(3);\nvar enLocaleLoader = (function () {\n function enLocaleLoader() {\n }\n enLocaleLoader.prototype.load = function (availableLocales) {\n availableLocales[\"en\"] = new en_1.en();\n };\n return enLocaleLoader;\n}());\nexports.enLocaleLoader = enLocaleLoader;\n\n\n/***/ })\n/******/ ]);\n});","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","export * from \"-!../../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=02ac34ae&prod&lang=scss&scoped=true\"","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".actions[data-v-db441fb2]{text-align:right}.machine-name[data-v-db441fb2]{font-weight:600}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","import { SETTING } from '@shell/config/settings';\nimport { MANAGEMENT } from '@shell/config/types';\n\nlet favIconSet = false;\n\nexport function haveSetFavIcon() {\n return favIconSet;\n}\n\nexport function setFavIcon(store) {\n const res = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.FAVICON);\n const brandSetting = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.BRAND);\n const link = findIconLink(document.head.getElementsByTagName('link'));\n\n if (link) {\n let brandImage;\n\n if (brandSetting?.value === 'suse') {\n brandImage = require('~shell/assets/brand/suse/favicon.png');\n } else if (brandSetting?.value === 'csp') {\n brandImage = require('~shell/assets/brand/csp/favicon.png');\n }\n\n link.href = res?.value || brandImage || defaultFavIcon;\n favIconSet = true;\n }\n}\n\nfunction getCurrentFavIcon() {\n const link = findIconLink(document.head.getElementsByTagName('link'));\n\n return link ? link.href : '';\n}\n\nfunction findIconLink(links) {\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n\n if (link.rel?.includes('icon')) {\n return link;\n }\n }\n\n return undefined;\n}\n\nconst defaultFavIcon = getCurrentFavIcon();\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","export const waitFor = (testFn: Function, msg = '', timeoutMs = 3000000, intervalMs = 500, log = false): Promise => {\n gatedLog('Starting wait for', msg);\n\n return new Promise((resolve, reject) => {\n if (testFn()) {\n gatedLog('Wait for', msg || 'unknown', 'done immediately');\n resolve(this);\n }\n const timeout = setTimeout(() => {\n gatedLog('Wait for', msg, 'timed out');\n clearInterval(interval);\n clearTimeout(timeout);\n if (msg) {\n reject(new Error(`Failed waiting for: ${ msg }`));\n } else {\n throw new Error(`waitFor timed out after ${ timeoutMs / 1000 } seconds`);\n }\n }, timeoutMs);\n const interval = setInterval(() => {\n if ( testFn() ) {\n gatedLog('Wait for', msg, 'done');\n clearInterval(interval);\n clearTimeout(timeout);\n resolve(this);\n } else if (msg) {\n gatedLog('Wait for', msg, 'not done yet');\n }\n }, intervalMs);\n });\n\n function gatedLog(...args: any[]) {\n if (log) {\n console.log(...args); // eslint-disable-line no-console\n }\n }\n};\n","export function camelToTitle(str) {\n return dasherize((str || '')).split('-').map((str) => {\n return ucFirst(str);\n }).join(' ');\n}\n\nexport function ucFirst(str) {\n str = str || '';\n\n return str.substr(0, 1).toUpperCase() + str.substr(1);\n}\n\nexport function lcFirst(str) {\n str = str || '';\n\n return str.substr(0, 1).toLowerCase() + str.substr(1);\n}\n\nexport function strPad(str, toLength, padChars = ' ', right = false) {\n str = `${ str }`;\n\n if (str.length >= toLength) {\n return str;\n }\n\n const neededLen = toLength - str.length + 1;\n const padStr = (new Array(neededLen)).join(padChars).substr(0, neededLen);\n\n if (right) {\n return str + padStr;\n } else {\n return padStr + str;\n }\n}\n\n// Turn thing1 into thing00000001 so that the numbers sort numerically\nexport function sortableNumericSuffix(str) {\n str = str || '';\n const match = str.match(/^(.*[^0-9])([0-9]+)$/);\n\n if (match) {\n return match[1] + strPad(match[2], 8, '0');\n }\n\n return str;\n}\n\nconst entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\n\nexport function escapeHtml(html) {\n return String(html).replace(/[&<>\"']/g, (s) => {\n return entityMap[s];\n });\n}\n\n/**\n * Return HTML markup from escaped HTML string, allowing specific tags\n * @param text string\n * @returns string\n */\nexport function decodeHtml(text) {\n const div = document.createElement('div');\n\n div.innerHTML = text;\n\n return div.textContent || div.innerText || '';\n}\n\nexport function escapeRegex(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\nexport function random32(count) {\n count = Math.max(0, count || 1);\n\n const out = [];\n let i;\n\n if (window.crypto && window.crypto.getRandomValues) {\n const tmp = new Uint32Array(count);\n\n window.crypto.getRandomValues(tmp);\n for (i = 0; i < tmp.length; i++) {\n out[i] = tmp[i];\n }\n } else {\n for (i = 0; i < count; i++) {\n out[i] = Math.random() * 4294967296; // Math.pow(2,32);\n }\n }\n\n if (count === 1) {\n return out[0];\n } else {\n return out;\n }\n}\n\nconst alpha = 'abcdefghijklmnopqrstuvwxyz';\nconst num = '0123456789';\nconst sym = '!@#$%^&*()_+-=[]{};:,./<>?|';\n\nexport const CHARSET = {\n NUMERIC: num,\n NO_VOWELS: 'bcdfghjklmnpqrstvwxz2456789',\n ALPHA: alpha + alpha.toUpperCase(),\n ALPHA_NUM: alpha + alpha.toUpperCase() + num,\n ALPHA_LOWER: alpha,\n ALPHA_UPPER: alpha.toUpperCase(),\n HEX: `${ num }ABCDEF`,\n PASSWORD: alpha + alpha.toUpperCase() + num + alpha + alpha.toUpperCase() + num + sym,\n // ^-- includes alpha / ALPHA / num twice to reduce the occurrence of symbols\n};\n\nexport function randomStr(length = 16, chars = CHARSET.ALPHA_NUM) {\n if (!chars || !chars.length) {\n return null;\n }\n\n return random32(length).map((val) => {\n return chars[val % chars.length];\n }).join('');\n}\n\nexport function formatPercent(value, maxPrecision = 2) {\n if (value < 1 && maxPrecision >= 2) {\n return `${ Math.round(value * 100) / 100 }%`;\n } else if (value < 10 && maxPrecision >= 1) {\n return `${ Math.round(value * 10) / 10 }%`;\n } else {\n return `${ Math.round(value) }%`;\n }\n}\n\nexport function pluralize(str) {\n if ( str.match(/.*[^aeiou]y$/i) ) {\n return `${ str.substr(0, str.length - 1) }ies`;\n } else if ( str.endsWith('ics') ) {\n return str;\n } else if ( str.endsWith('s') ) {\n return `${ str }es`;\n } else {\n return `${ str }s`;\n }\n}\n\nexport function resourceNames(names, plusMore, t) {\n return names.reduce((res, name, i) => {\n if (i >= 5) {\n return res;\n }\n res += `${ escapeHtml( name ) }`;\n if (i === names.length - 1) {\n res += plusMore;\n } else {\n res += i === names.length - 2 ? t('generic.and') : t('generic.comma');\n }\n\n return res;\n }, '');\n}\n\nexport function indent(lines, count = 2, token = ' ', afterRegex = null) {\n if (typeof lines === 'string') {\n lines = lines.split(/\\n/);\n } else {\n lines = lines || [];\n }\n\n const padStr = (new Array(count + 1)).join(token);\n\n const out = lines.map((line) => {\n let prefix = '';\n let suffix = line;\n\n if (afterRegex) {\n const match = line.match(afterRegex);\n\n if (match) {\n prefix = match[match.length - 1];\n suffix = line.substr(match[0].length);\n }\n }\n\n return `${ prefix }${ padStr }${ suffix }`;\n });\n\n const str = out.join('\\n');\n\n return str;\n}\n\nconst decamelizeRegex = /([a-z\\d])([A-Z])/g;\n\nexport function decamelize(str) {\n return str.replace(decamelizeRegex, '$1_$2').toLowerCase();\n}\n\nconst dasherizeRegex = /[ _]/g;\n\nexport function dasherize(str) {\n return decamelize(str).replace(dasherizeRegex, '-');\n}\n\nexport function asciiLike(str) {\n str = str || '';\n\n if ( str.match(/[^\\r\\n\\t\\x20-\\x7F]/) ) {\n return false;\n }\n\n return true;\n}\n\nexport function coerceStringTypeToScalarType(val, type) {\n if ( type === 'float' ) {\n // Coerce strings to floats\n val = parseFloat(val) || null; // NaN becomes null\n } else if ( type === 'int' ) {\n // Coerce strings to ints\n val = parseInt(val, 10);\n\n if ( isNaN(val) ) {\n val = null;\n }\n } else if ( type === 'boolean') {\n // Coerce strings to boolean\n if (val.toLowerCase() === 'true') {\n val = true;\n } else if (val.toLowerCase() === 'false') {\n val = false;\n }\n }\n\n return val;\n}\n\nexport function matchesSomeRegex(stringRaw, regexes = []) {\n return regexes.some((regexRaw) => {\n const string = stringRaw || '';\n const regex = ensureRegex(regexRaw);\n\n return string.match(regex);\n });\n}\n\nexport function ensureRegex(strOrRegex, exact = true) {\n if ( typeof strOrRegex === 'string' ) {\n if ( exact ) {\n return new RegExp(`^${ escapeRegex(strOrRegex) }$`, 'i');\n } else {\n return new RegExp(`${ escapeRegex(strOrRegex) }`, 'i');\n }\n }\n\n return strOrRegex;\n}\n\nexport function nlToBr(value) {\n return escapeHtml(value || '').replace(/(\\r\\n|\\r|\\n)/g, '
\\n');\n}\n\nconst quotedMatch = /[^.\"']+|\"([^\"]*)\"|'([^']*)'/g;\n\nexport function splitObjectPath(path) {\n if ( path.includes('\"') || path.includes(\"'\") ) {\n // Path with quoted section\n return path.match(quotedMatch).map((x) => x.replace(/['\"]/g, ''));\n }\n\n // Regular path\n return path.split('.');\n}\n\nexport function joinObjectPath(ary) {\n let out = '';\n\n for ( const p of ary ) {\n if ( p.includes('.') ) {\n out += `.\"${ p }\"`;\n } else {\n out += `.${ p }`;\n }\n }\n\n if ( out.startsWith('.') ) {\n out = out.substr(1);\n }\n\n return out;\n}\n\nexport function shortenedImage(image) {\n return (image || '')\n .replace(/^(index\\.)?docker.io\\/(library\\/)?/, '')\n .replace(/:latest$/, '')\n .replace(/^(.*@sha256:)([0-9a-f]{8})[0-9a-f]+$/i, '$1$2…');\n}\n\nexport function isIpv4(ip) {\n const reg = /^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\n\n return reg.test(ip);\n}\n\nexport function sanitizeKey(k) {\n return (k || '').replace(/[^a-z0-9./_-]/ig, '');\n}\n\nexport function sanitizeValue(v) {\n return (v || '').replace(/[^a-z0-9._-]/ig, '');\n}\n\nexport function sanitizeIP(v) {\n return (v || '').replace(/[^a-z0-9.:_-]/ig, '');\n}\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".text.info[data-v-effd72b0]{display:flex;align-items:center}.text.info>span[data-v-effd72b0]{margin-right:5px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./LabeledSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./LabeledSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LabeledSelect.vue?vue&type=template&id=2ec7d750&scoped=true\"\nimport script from \"./LabeledSelect.vue?vue&type=script&lang=js\"\nexport * from \"./LabeledSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./LabeledSelect.vue?vue&type=style&index=0&id=2ec7d750&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2ec7d750\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=style&index=0&id=23723280&prod&lang=scss&scoped=true\"","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Sets the width of a DOM element. Adapted from [youmightnotneedjquery.com](https://youmightnotneedjquery.com/#set_width)\n * @param {Element} el - The target DOM element\n * @param {function | string | number} val - The desired width represented as a Number\n */\nexport function setWidth(el, val) {\n if (!el) {\n return;\n }\n\n if (typeof val === 'function') {\n val = val();\n }\n\n if (typeof val === 'string') {\n el.style.width = val;\n\n return;\n }\n\n el.style.width = `${ val }px`;\n}\n\n/**\n * Gets the width of a DOM element. Adapted from [youmightnotneedjquery.com](https://youmightnotneedjquery.com/#get_width)\n * @param {Element} el - The target DOM element\n * @returns Number representing the width for the provided element\n */\nexport function getWidth(el) {\n if (!el || !el.length) {\n return;\n }\n\n if (el.length) {\n return parseFloat(getComputedStyle(el[0]).width.replace('px', ''));\n } else {\n return parseFloat(getComputedStyle(el).width.replace('px', ''));\n }\n}\n","import Vue from 'vue';\nimport { _EDIT, _VIEW } from '@shell/config/query-params';\nimport { getWidth, setWidth } from '@shell/utils/width';\n\ninterface LabeledFormElement {\n raised: boolean;\n focused: boolean;\n blurred: number | null;\n}\n\nexport default Vue.extend({\n inheritAttrs: false,\n\n props: {\n mode: {\n type: String,\n default: _EDIT,\n },\n\n label: {\n type: String,\n default: null\n },\n\n labelKey: {\n type: String,\n default: null\n },\n\n placeholderKey: {\n type: String,\n default: null\n },\n\n tooltip: {\n type: [String, Object],\n default: null\n },\n\n hoverTooltip: {\n type: Boolean,\n default: true,\n },\n\n tooltipKey: {\n type: String,\n default: null\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n placeholder: {\n type: [String, Number],\n default: ''\n },\n\n value: {\n type: [String, Number, Object],\n default: ''\n },\n\n options: {\n default: null,\n type: Array\n },\n\n searchable: {\n default: false,\n type: Boolean\n },\n\n rules: {\n default: () => [],\n type: Array,\n // we only want functions in the rules array\n validator: (rules: any) => rules.every((rule: any) => ['function'].includes(typeof rule))\n }\n },\n\n data(): LabeledFormElement {\n return {\n raised: this.mode === _VIEW || !!`${ this.value }`,\n focused: false,\n blurred: null,\n };\n },\n\n computed: {\n requiredField(): boolean {\n // using \"any\" for a type on \"rule\" here is dirty but the use of the optional chaining operator makes it safe for what we're doing here.\n return (this.required || this.rules.some((rule: any): boolean => rule?.name === 'required'));\n },\n empty(): boolean {\n return !!`${ this.value }`;\n },\n\n isView(): boolean {\n return this.mode === _VIEW;\n },\n\n isDisabled(): boolean {\n return this.disabled || this.isView;\n },\n\n isSearchable(): boolean {\n const { searchable } = this;\n const options = ( this.options || [] );\n\n if (searchable || options.length >= 10) {\n return true;\n }\n\n return false;\n },\n validationMessage(): string | undefined {\n // we want to grab the required rule passed in if we can but if it's not there then we can just grab it from the formRulesGenerator\n const requiredRule = this.rules.find((rule: any) => rule?.name === 'required') as Function;\n const ruleMessages = [];\n const value = this?.value;\n\n if (requiredRule && this.blurred && !this.focused) {\n const message = requiredRule(value);\n\n if (!!message) {\n return message;\n }\n }\n\n for (const rule of this.rules as Function[]) {\n const message = rule(value);\n\n if (!!message && rule.name !== 'required') { // we're catching 'required' above so we can ignore it here\n ruleMessages.push(message);\n }\n }\n if (ruleMessages.length > 0 && (this.blurred || this.focused)) {\n return ruleMessages.join(', ');\n } else {\n return undefined;\n }\n }\n },\n\n methods: {\n resizeHandler() {\n // since the DD is positioned there is no way to 'inherit' the size of the input, this calcs the size of the parent and set the dd width if it is smaller. If not let it grow with the regular styles\n this.$nextTick(() => {\n const DD = (this.$refs.select as HTMLElement).querySelector('ul.vs__dropdown-menu');\n\n const selectWidth = getWidth(this.$refs.select as Element) || 0;\n const dropWidth = getWidth(DD as Element) || 0;\n\n if (dropWidth < selectWidth) {\n setWidth(DD as Element, selectWidth);\n }\n });\n },\n onFocus() {\n this.$emit('on-focus');\n\n return this.onFocusLabeled();\n },\n\n onFocusLabeled() {\n this.raised = true;\n this.focused = true;\n },\n\n onBlur() {\n this.$emit('on-blur');\n\n return this.onBlurLabeled();\n },\n\n onBlurLabeled() {\n this.focused = false;\n\n if ( !this.value ) {\n this.raised = false;\n }\n\n this.blurred = Date.now();\n }\n }\n});\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".labeled-select[data-v-2ec7d750]{position:relative;padding-bottom:1px}.labeled-select.no-label.compact-input[data-v-2ec7d750] .vs__actions:after{top:-2px}.labeled-select.no-label.compact-input .labeled-container[data-v-2ec7d750]{padding:5px 0 1px 10px}.labeled-select.no-label[data-v-2ec7d750]:not(.compact-input){height:61px;padding-top:4px}.labeled-select.no-label[data-v-2ec7d750]:not(.compact-input) .vs__actions:after{top:0}.labeled-select .icon-spinner[data-v-2ec7d750]{position:absolute;left:calc(50% - .5em);top:calc(50% - .5em)}.labeled-select .labeled-container[data-v-2ec7d750]{padding:7px 0 0 10px;padding:10px 0 0 10px}.labeled-select .labeled-container label[data-v-2ec7d750]{margin:0}.labeled-select .labeled-container .selected[data-v-2ec7d750]{background-color:transparent}.labeled-select.view.labeled-input .labeled-container[data-v-2ec7d750]{padding:0}.labeled-select.taggable.compact-input[data-v-2ec7d750]{min-height:40px}.labeled-select.taggable.compact-input[data-v-2ec7d750] .vs__selected-options{padding-top:8px!important}.labeled-select.taggable[data-v-2ec7d750]:not(.compact-input){min-height:61px}.labeled-select.taggable[data-v-2ec7d750]:not(.compact-input) .vs__selected-options{margin-top:0}.labeled-select[data-v-2ec7d750]:not(.taggable) .vs__selected-options .vs__selected{width:100%}.labeled-select.taggable[data-v-2ec7d750] .vs__selected-options{padding:3px 0}.labeled-select.taggable[data-v-2ec7d750] .vs__selected-options .vs__selected{border-color:var(--accent-btn);height:20px;min-height:unset!important;padding:0 0 0 7px!important}.labeled-select.taggable[data-v-2ec7d750] .vs__selected-options .vs__selected>button{height:20px;line-height:14px}.labeled-select.taggable[data-v-2ec7d750] .vs__selected-options .vs__selected>button:hover{background-color:var(--primary);border-radius:0}.labeled-select.taggable[data-v-2ec7d750] .vs__selected-options .vs__selected>button:hover:after{color:#fff}.labeled-select[data-v-2ec7d750] .vs__selected-options{margin-top:-5px}.labeled-select[data-v-2ec7d750] .v-select:not(.vs--single) .vs__selected-options{padding:5px 0}.labeled-select[data-v-2ec7d750] .vs__actions:after{position:relative;top:-10px}.labeled-select[data-v-2ec7d750] .v-select.vs--open .vs__dropdown-toggle{color:var(--outline)!important}[data-v-2ec7d750] .labeled-select.disabled .labeled-container,[data-v-2ec7d750] .labeled-select.disabled .vs__dropdown-toggle,[data-v-2ec7d750] .labeled-select.disabled input,[data-v-2ec7d750] .labeled-select.disabled label{cursor:not-allowed}.labeled-select .no-label[data-v-2ec7d750].v-select:not(.vs--single){min-height:33px}.labeled-select .no-label[data-v-2ec7d750].selected{padding-top:8px;padding-bottom:9px;position:relative;max-height:2.3em;overflow:hidden}.labeled-select .no-label[data-v-2ec7d750] .vs__selected-options{padding:8px 0 7px 0}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group[data-v-2ec7d750]{display:flex}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>b[data-v-2ec7d750]{flex:1}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>div[data-v-2ec7d750]{background-color:var(--primary);border-radius:4px;color:var(--primary-text);font-size:12px;height:18px;line-height:18px;margin-top:1px;padding:0 10px}.vs__dropdown-option>.option-kind-highlighted[data-v-2ec7d750]{color:var(--dropdown-highlight-text)}.vs__dropdown-option.vs__dropdown-option--highlight>.option-kind-highlighted[data-v-2ec7d750],.vs__dropdown-option.vs__dropdown-option--selected>.option-kind-highlighted[data-v-2ec7d750],.vs__dropdown-option>.option-kind-highlighted[data-v-2ec7d750]:hover{color:var(--dropdown-hover-text)}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.project.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.project.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./management.cattle.io.project.vue?vue&type=template&id=3a26ac99&scoped=true\"\nimport script from \"./management.cattle.io.project.vue?vue&type=script&lang=js\"\nexport * from \"./management.cattle.io.project.vue?vue&type=script&lang=js\"\nimport style0 from \"./management.cattle.io.project.vue?vue&type=style&index=0&id=3a26ac99&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a26ac99\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mt-10\"},[_c('div',{staticClass:\"mb-30\"},[_vm._v(\" \"+_vm._s(_vm.t('promptRemove.attemptingToRemove', { type: _vm.type }))+\" \"),_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.podNames),expression:\"podNames\"}],staticClass:\"machine-name\"})]),_c('div',{staticClass:\"mb-30\"},[_c('Checkbox',{attrs:{\"label\":_vm.t('promptForceRemove.forceDelete')},model:{value:(_vm.forceDelete),callback:function ($$v) {_vm.forceDelete=$$v},expression:\"forceDelete\"}})],1),_c('Banner',{attrs:{\"color\":\"warning\",\"label-key\":\"promptForceRemove.podRemoveWarning\"}}),_vm._l((_vm.errors),function(error,i){return _c('Banner',{key:i,attrs:{\"color\":\"error\",\"label\":error}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./pod.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./pod.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./pod.vue?vue&type=template&id=db441fb2&scoped=true\"\nimport script from \"./pod.vue?vue&type=script&lang=js\"\nexport * from \"./pod.vue?vue&type=script&lang=js\"\nimport style0 from \"./pod.vue?vue&type=style&index=0&id=db441fb2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"db441fb2\",\n null\n \n)\n\nexport default component.exports","module.exports = __WEBPACK_EXTERNAL_MODULE__5877__;","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","export { default as Banner } from './Banner.vue';\n","export const CSRF = 'CSRF';\nexport const USERNAME = 'R_USERNAME';\nexport const LOCALE = 'R_LOCALE';\nexport const REDIRECTED = 'R_REDIRECTED';\n","var baseFor = require('./_baseFor'),\n castFunction = require('./_castFunction'),\n keysIn = require('./keysIn');\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nmodule.exports = forIn;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","export type GC_PREFERENCES = {\n enabled: boolean,\n enabledInterval: boolean,\n interval: number,\n enabledOnNavigate: boolean,\n ageThreshold: number,\n countThreshold: number\n}\n\nexport const GC_DEFAULTS: GC_PREFERENCES = {\n enabled: false,\n\n // When GC Runs\n enabledInterval: true,\n interval: 1 * 60 * 5,\n enabledOnNavigate: true,\n\n // How GC handles resources when GC'ing\n ageThreshold: 1 * 60 * 2,\n countThreshold: 500,\n};\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".reporter-panel[data-v-3b5aaae2]{display:none}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".delete-warning[data-v-3a26ac99]{color:var(--error)}.remove-project-dialog[data-v-3a26ac99]{border:1px solid var(--border);padding:10px;border-radius:5px}.remove-project-dialog .display-name[data-v-3a26ac99]{font-weight:700}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.globalrole.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.globalrole.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./management.cattle.io.globalrole.vue?vue&type=template&id=effd72b0&scoped=true\"\nimport script from \"./management.cattle.io.globalrole.vue?vue&type=script&lang=js\"\nexport * from \"./management.cattle.io.globalrole.vue?vue&type=script&lang=js\"\nimport style0 from \"./management.cattle.io.globalrole.vue?vue&type=style&index=0&id=effd72b0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"effd72b0\",\n null\n \n)\n\nexport default component.exports","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","// This file has 2 sections that control getting and using specializations of particular types\n// over the generic info that is specified or generated from schemas.\n//\n// 1) Getting info about types\n//\n// labelFor(schema, count) Get the display label for a schema. Count is (in English) 1 or not-1 for pluralizing\n// groupLabelFor(schema) Get the label for the API group of this schema's type\n// isIgnored(schema) Returns true if this type should be hidden from the tree\n// groupForBasicType(schema) Returns the group a type should be shown in basic view, or false-y if it shouldn't be shown.\n// typeWeightFor(type, forBasic) Get the weight value for a particular type label\n// groupWeightFor(group, forBasic) Get the weight value for a particular group\n// headersFor(schema) Returns the column definitions for a type to give to SortableTable\n// activeProducts() Returns the list of products that are installed and should be shown\n//\n// 2) Detecting and using custom list/detail/edit/header components\n//\n// hasCustomList(type) Does type have a custom list implementation?\n// hasCustomDetail(type[,subType]) Does type have a custom detail implementation?\n// hasCustomEdit(type[,subType]) Does type have a custom edit implementation?\n// importList(type) Returns a promise that resolves to the list component for type\n// importDetail(type[,subType]) Returns a promise that resolves to the detail component for type\n// importEdit(type[,subType]) Returns a promise that resolves to the edit component for type\n// optionsFor(schemaOrType) Return the configured options for a type (from configureType)\n//\n// 3) Changing specialization info about a type\n// For all:\n// let { thingYouWant } = DSL(instanceOfTheStore, 'product');\n//\n// product( Add a product into the nav\n// removable, -- Is the product removable (true) or built-in (false).\n// weight, -- Sort order and divider sections in the product menu. 3=global (fleet, ecm), 2=always on (apps, explorer) 1=other\n// showClusterSwitcher, -- Show the cluster switcher in the header (default true)\n// showNamespaceFilter, -- Show the namespace filter in the header (default false)\n// showWorkspaceSwitcher, -- Show the workspace switcher in the header (conflicts with namespace) (default false)\n// ifHave, -- Show this product only if the given capability is available\n// ifHaveGroup, -- Show this product only if the given group exists in the store [inStore]\n// ifHaveType, -- Show this product only if the given type exists in the store [inStore], This can also be specified as an object { type: TYPE, store: 'management' } if the type isn't in the current [inStore]\n// ifHaveVerb, -- In combination with ifHaveTYpe, show it only if the type also has this collectionMethod\n// inStore, -- Which store to look at for if* above and the left-nav, defaults to \"cluster\"\n// inExplorer, -- Determines if the product is to be scoped to the explorer\n// public, -- If true, show to all users. If false, only show when the Developer Tools pref is on (default true)\n// category, -- Group to show the product in for the nav hamburger menu\n// typeStoreMap, -- An object mapping types to the store that should be used to retrieve information about the type\n// hideSystemResources -- Hide resources in namespaces where namespace.isSystem === true, or a namespace managed by fleet (per its annotation) and hide those namespaces from ns/project list and nsfilter (default false)\n// hideNamespaceLocation -- Hide the namespace link in the ResourceDetail masthead of namespaced resources and hide the ExplorerProjectsNamespaces namespace link (default false)\n// })\n//\n// externalLink(stringOrFn) The product has an external page (function gets context object\n//\n// virtualType(obj) Add an item to the tree that goes to a route instead of an actual type.\n// -- obj can contain anything in the objects getTree returns.\n// -- obj must have a `name` that is unique among all virtual types.\n// -- `cluster` is automatically added to route.params if it exists.\n//\n// spoofedType(obj) Create a fake type that can be treated like a normal type\n//\n// basicType( Mark type(s) as always shown in the top of the nav\n// type(s), -- Type name or array of type names\n// group -- Group to show the type(s) under; false-y for top-level.\n// )\n// basicType( Mark all types in group as always shown in the top of the nav\n// group, -- Group to show\n// asLabel -- Label to display the group as; false-y for top-level.\n// )\n// ignoreType(type) Never show type\n// weightType( Set the weight (sorting) order of one or more types\n// typeOrArrayOfTypes,\n// weight, -- Higher numbers are shown first/higher up on the nav tree\n// forBasic -- Apply to basic type instead of regular type tree\n// )\n// mapType( Remap a type id to a display name\n// matchRegexOrString, -- Type to match, or regex that matches types\n// replacementStringOrFn, -- String to replace the type with, or\n// -- sync function: (type, capturedString, schemaObj => { return 'new-type'; }\n// mapWeight, -- Priority for apply this mapping (higher numbers applied first)\n// continueOnMatch -- If true, continue applying to hit other rules that might match the new type.\n// )\n// moveType( Change the group a type is in\n// matchRegexOrString, -- Type to match, or regex that matches types\n// newGroup, -- Group to move the type into\n// mapWeight, -- Priority for apply this mapping (higher numbers applied first)\n// )\n// componentForType( Map matching types to a single component name\n// ( (this is helpful if multiple types should be rendered by a single component)\n// matchRegexOrString, -- Type to match, or regex that matches types\n// replacementString -- String to replace the type with\n// )\n// configureType( Display options for a particular type\n// type, -- Type to apply to\n// options -- Object of options. Defaults/Supported: {\n// isCreatable: true, -- If false, disable create even if schema says it's allowed\n// isEditable: true, -- Ditto, for edit\n// isRemovable: true, -- Ditto, for remove/delete\n// showState: true, -- If false, hide state in columns and masthead\n// showAge: true, -- If false, hide age in columns and masthead\n// showConfigView: true -- If false, hide masthead config button in view mode\n// showListMasthead: true, -- If false, hide masthead in list view\n// canYaml: true,\n// resource: undefined -- Use this resource in ResourceDetails instead\n// resourceDetail: undefined -- Use this resource specifically for ResourceDetail's detail component\n// resourceEdit: undefined -- Use this resource specifically for ResourceDetail's edit component\n// depaginate: undefined -- Use this to depaginate requests for this type\n// resourceEditMasthead: true -- Show the Masthead in the edit resource component\n// customRoute: undefined,\n// hasGraph: undefined -- If true, render ForceDirectedTreeChart graph (ATTENTION: option graphConfig is needed also!!!)\n// graphConfig: undefined -- Use this to pass along the graph configuration\n// notFilterNamespace: undefined -- Define namespaces that do not need to be filtered\n// localOnly: False -- Hide this type from the nav/search bar on downstream clusters\n// }\n// )\n// ignoreGroup(group): Never show group or any types in it\n// weightGroup( Set the weight (sorting) of one or more groups\n// groupOrArrayOfGroups, -- see weightType...\n// weight\n// )\n// setGroupDefaultType( Set the default child type to show when the group is expanded\n// groupOrArrayOfGroups, -- see setGroupDefaultType...\n// defaultType\n// )\n// mapGroup( Remap a group name to a display name\n// matchRegexOrString, -- see mapType...\n// replacementString,\n// mapWeight,\n// continueOnMatch\n// )\nimport { AGE, NAME, NAMESPACE as NAMESPACE_COL, STATE } from '@shell/config/table-headers';\nimport {\n CATALOG,\n COUNT,\n SCHEMA,\n MANAGEMENT,\n NAMESPACE\n} from '@shell/config/types';\nimport { VIEW_IN_API, EXPANDED_GROUPS, FAVORITE_TYPES } from '@shell/store/prefs';\nimport {\n addObject, findBy, insertAt, isArray, removeObject, filterBy\n} from '@shell/utils/array';\nimport { clone, get } from '@shell/utils/object';\nimport {\n ensureRegex, escapeHtml, escapeRegex, ucFirst, pluralize\n} from '@shell/utils/string';\nimport {\n importChart, importList, importDetail, importEdit, listProducts, loadProduct, importCustomPromptRemove, resolveList, resolveEdit, resolveWindowComponent, importWindowComponent, importLogin, resolveChart, resolveDetail, importDialog, importMachineConfig, resolveMachineConfigComponent, resolveCloudCredentialComponent, importCloudCredential\n} from '@shell/utils/dynamic-importer';\n\nimport { NAME as EXPLORER } from '@shell/config/product/explorer';\nimport isObject from 'lodash/isObject';\nimport { normalizeType } from '@shell/plugins/dashboard-store/normalize';\nimport { sortBy } from '@shell/utils/sort';\n\nimport { haveV2Monitoring } from '@shell/utils/monitoring';\nimport { NEU_VECTOR_NAMESPACE } from '@shell/config/product/neuvector';\n\nexport const NAMESPACED = 'namespaced';\nexport const CLUSTER_LEVEL = 'cluster';\nexport const BOTH = 'both';\n\nexport const ALL = 'all';\nexport const BASIC = 'basic';\nexport const FAVORITE = 'favorite';\nexport const USED = 'used';\n\nexport const ROOT = 'root';\n\nexport const SPOOFED_PREFIX = '__[[spoofed]]__';\nexport const SPOOFED_API_PREFIX = '__[[spoofedapi]]__';\n\nconst instanceMethods = {};\nconst graphConfigMap = {};\n\nconst FIELD_REGEX = /^\\$\\.metadata\\.fields\\[([0-9]*)\\]/;\n\nexport const IF_HAVE = {\n V2_MONITORING: 'v2-monitoring',\n PROJECT: 'project',\n NO_PROJECT: 'no-project',\n NOT_V1_ISTIO: 'not-v1-istio',\n MULTI_CLUSTER: 'multi-cluster',\n NEUVECTOR_NAMESPACE: 'neuvector-namespace',\n ADMIN: 'admin-user',\n MCM_DISABLED: 'mcm-disabled',\n NOT_STANDALONE_HARVESTER: 'not-standalone-harvester',\n};\n\nexport function DSL(store, product, module = 'type-map') {\n // store.commit(`${ module }/product`, { name: product });\n\n return {\n product(inOpt) {\n const opt = {\n name: product,\n weight: 1,\n inStore: 'cluster',\n inExplorer: false,\n removable: true,\n showClusterSwitcher: true,\n showNamespaceFilter: false,\n public: true,\n filterMode: 'namespaces',\n ...inOpt\n };\n\n for ( const k of ['ifHaveGroup', 'ifHaveType'] ) {\n if ( opt[k] ) {\n opt[k] = regexToString(ensureRegex(opt[k]));\n }\n }\n\n store.commit(`${ module }/product`, opt);\n },\n\n basicType(types, group) {\n // Support passing in a map of types and using just the values\n if ( !isArray(types) && types && isObject(types) ) {\n types = Object.values(types);\n }\n\n store.commit(`${ module }/basicType`, {\n product, types, group\n });\n },\n\n // Type- and Group-dependent\n groupBy(type, field) {\n store.commit(`${ module }/groupBy`, { type, field });\n },\n\n headers(type, headers) {\n headers.forEach((header) => {\n // If on the client, then use the value getter if there is one\n if (header.getValue) {\n // we need to store the .value prop for the advanced filtering\n header.valueProp = header.value;\n header.value = header.getValue;\n }\n\n delete header.getValue;\n });\n\n store.commit(`${ module }/headers`, { type, headers });\n },\n\n hideBulkActions(type, field) {\n store.commit(`${ module }/hideBulkActions`, { type, field });\n },\n\n configureType(match, options) {\n if (options.graphConfig) {\n graphConfigMap[match] = options.graphConfig;\n delete options.graphConfig;\n }\n store.commit(`${ module }/configureType`, { ...options, match });\n },\n\n componentForType(match, replace) {\n store.commit(`${ module }/componentForType`, { match, replace });\n },\n\n ignoreType(regexOrString) {\n store.commit(`${ module }/ignoreType`, regexOrString);\n },\n\n ignoreGroup(regexOrString, cb) {\n store.commit(`${ module }/ignoreGroup`, { regexOrString, cb });\n },\n\n weightGroup(input, weight, forBasic) {\n if ( isArray(input) ) {\n store.commit(`${ module }/weightGroup`, {\n groups: input, weight, forBasic\n });\n } else {\n store.commit(`${ module }/weightGroup`, {\n group: input, weight, forBasic\n });\n }\n },\n\n setGroupDefaultType(input, defaultType) {\n if ( isArray(input) ) {\n store.commit(`${ module }/setGroupDefaultType`, { groups: input, defaultType });\n } else {\n store.commit(`${ module }/setGroupDefaultType`, { group: input, defaultType });\n }\n },\n\n weightType(input, weight, forBasic) {\n if ( isArray(input) ) {\n store.commit(`${ module }/weightType`, {\n types: input, weight, forBasic\n });\n } else {\n store.commit(`${ module }/weightType`, {\n type: input, weight, forBasic\n });\n }\n },\n\n mapGroup(match, replace, weight = 5, continueOnMatch = false) {\n store.commit(`${ module }/mapGroup`, {\n match, replace, weight, continueOnMatch\n });\n },\n\n mapType(match, replace, weight = 5, continueOnMatch = false) {\n store.commit(`${ module }/mapType`, {\n match, replace, weight, continueOnMatch\n });\n },\n\n moveType(match, group, weight = 5, continueOnMatch = false) {\n store.commit(`${ module }/moveType`, {\n match, group, weight,\n });\n },\n\n virtualType(obj) {\n store.commit(`${ module }/virtualType`, { product, obj });\n },\n\n spoofedType(obj) {\n store.commit(`${ module }/spoofedType`, { product, obj });\n }\n };\n}\n\nlet called = false;\n\nexport async function applyProducts(store, $plugin) {\n if (called) {\n return;\n }\n\n called = true;\n for ( const product of listProducts() ) {\n const impl = await loadProduct(product);\n\n if ( impl?.init ) {\n impl.init(store);\n }\n }\n // Load the products from all plugins\n $plugin.loadProducts();\n}\n\nexport function productsLoaded() {\n return called;\n}\n\nexport const state = function() {\n return {\n products: [],\n virtualTypes: {},\n spoofedTypes: {},\n basicTypes: {},\n groupIgnore: [],\n groupWeights: {},\n groupDefaultTypes: {},\n basicGroupWeights: { [ROOT]: 1000 },\n groupMappings: [],\n typeIgnore: [],\n basicTypeWeights: {},\n typeWeights: {},\n typeMappings: [],\n typeMoveMappings: [],\n typeToComponentMappings: [],\n typeOptions: [],\n groupBy: {},\n headers: {},\n hideBulkActions: {},\n schemaGeneration: 1,\n cache: {\n typeMove: {},\n groupLabel: {},\n ignore: {},\n list: {},\n chart: {},\n detail: {},\n edit: {},\n componentFor: {},\n promptRemove: {},\n windowComponents: {},\n 'machine-config': {},\n 'cloud-credential': {}\n\n },\n };\n};\n\nexport const getters = {\n // ----------------------------------------------------------------------------\n // 1 ) Getting info\n // ----------------------------------------------------------------------------\n // Turns a type name into a display label (e.g. management.cattle.io.cluster -> Cluster)\n labelFor(state, getters, rootState, rootGetters) {\n return (schema, count = 1, language = null) => {\n return _applyMapping(schema, state.typeMappings, 'id', false, () => {\n const key = `typeLabel.\"${ schema.id.toLowerCase() }\"`;\n\n if ( rootGetters['i18n/exists'](key, language) ) {\n return rootGetters['i18n/t'](key, { count }, language).trim();\n }\n\n const out = schema?.attributes?.kind || schema.id || '?';\n\n // Add spaces, but breaks typing names into jump menu naturally\n // out = ucFirst(out.replace(/([a-z])([A-Z])/g,'$1 $2'));\n\n if ( count === 1 ) {\n return out;\n }\n\n // This works for most things... if you don't like it, put in a typeLabel translation for above.\n return pluralize(out);\n });\n };\n },\n\n // Turns a group name into a display label (e.g. management.cattle.io.v3.cluster -> Cluster)\n groupLabelFor(state) {\n return (schemaOrName) => {\n let group = schemaOrName;\n\n if ( typeof schemaOrName === 'object' ) {\n let moved = false;\n\n for ( const rule of state.typeMoveMappings ) {\n const re = stringToRegex(rule.match);\n\n if ( schemaOrName.id.match(re) ) {\n moved = true;\n group = rule.replace;\n }\n }\n\n if ( !moved ) {\n group = group.attributes.group;\n }\n }\n\n if ( typeof group !== 'string' ) {\n return null;\n }\n\n const out = _applyMapping(group, state.groupMappings, null, state.cache.groupLabel, (group) => {\n const match = group.match(/^(.*)\\.k8s\\.io$/);\n\n if ( match ) {\n return match[1].split(/\\./).map((x) => ucFirst(x)).join('.');\n }\n\n return group;\n });\n\n return out;\n };\n },\n\n groupForBasicType(state) {\n return (product, schemaId) => {\n return state.basicTypes?.[product]?.[schemaId];\n };\n },\n\n optionsFor(state) {\n const def = {\n isCreatable: true,\n isEditable: true,\n isRemovable: true,\n showState: true,\n showAge: true,\n canYaml: true,\n namespaced: null,\n listGroups: [],\n depaginate: false,\n customRoute: undefined,\n resourceEditMasthead: true,\n };\n\n return (schemaOrType) => {\n if (!schemaOrType) {\n return {};\n }\n\n const type = (typeof schemaOrType === 'object' ? schemaOrType.id : schemaOrType);\n const found = state.typeOptions.find((entry) => {\n const re = stringToRegex(entry.match);\n\n return re.test(type);\n });\n\n const opts = Object.assign({}, def, found || {});\n\n return opts;\n };\n },\n\n isFavorite(state, getters, rootState, rootGetters) {\n return (schemaId) => {\n return rootGetters['prefs/get'](FAVORITE_TYPES).includes(schemaId) || false;\n };\n },\n\n typeWeightFor(state) {\n return (type, forBasic) => {\n type = type?.toLowerCase();\n\n if ( forBasic ) {\n return state.basicTypeWeights[type] || 0;\n } else {\n return state.typeWeights[type] || 0;\n }\n };\n },\n\n groupWeightFor(state) {\n return (group, forBasic) => {\n group = group.toLowerCase();\n\n if ( forBasic ) {\n return state.basicGroupWeights[group] || 0;\n } else {\n return state.groupWeights[group] || 0;\n }\n };\n },\n\n groupDefaultTypeFor(state) {\n return (group) => {\n group = group.toLowerCase();\n\n return state.groupDefaultTypes[group];\n };\n },\n\n getTree(state, getters, rootState, rootGetters) {\n return (productId, mode, allTypes, clusterId, namespaceMode, namespaces, currentType, search) => {\n // getTree has four modes:\n // - `basic` matches data types that should always be shown even if there\n // are 0 of them.\n // - `used` matches the data types where there are more than 0 of them\n // in the current set of namespaces.\n // - `all` matches all types.\n // - `favorite` matches starred types.\n // namespaceMode: 'namespaced', 'cluster', or 'both'\n // namespaces: null means all, otherwise it will be an array of specific namespaces to include\n const isBasic = mode === BASIC;\n\n let searchRegex;\n\n if ( search ) {\n searchRegex = new RegExp(`^(.*)(${ escapeRegex(search) })(.*)$`, 'i');\n }\n\n const root = { children: [] };\n\n // Add types from shortest to longest so that parents\n // get added before children\n const keys = Object.keys(allTypes).sort((a, b) => a.length - b.length);\n\n // Set these for later\n const currentLocal = rootGetters['i18n/current']();\n const defaultLocal = rootGetters['i18n/default']();\n\n for ( const type of keys ) {\n const typeObj = allTypes[type];\n\n if ( typeObj.schema && getters.isIgnored(typeObj.schema) ) {\n // Skip ignored groups & types\n continue;\n }\n\n const namespaced = typeObj.namespaced;\n\n if ( (namespaceMode === NAMESPACED && !namespaced ) || (namespaceMode === CLUSTER_LEVEL && namespaced) ) {\n // Skip types that are not the right namespace mode\n continue;\n }\n\n const count = _matchingCounts(typeObj, namespaces);\n const groupForBasicType = getters.groupForBasicType(productId, typeObj.name);\n\n if ( typeObj.id === currentType ) {\n // If this is the type currently being shown, always show it\n } else if ( isBasic && !groupForBasicType ) {\n // If we want the basic tree only return basic types;\n continue;\n } else if ( mode === USED && count <= 0 ) {\n // If there's none of this type, ignore this entry when viewing only in-use types\n // Note: count is sometimes null, which is <= 0.\n continue;\n }\n\n const label = typeObj.labelKey ? rootGetters['i18n/t'](typeObj.labelKey) || typeObj.label : typeObj.label;\n\n const labelDisplay = highlightLabel(label, typeObj.count, typeObj.schema);\n\n if ( !labelDisplay ) {\n // Search happens in highlight and returns null if not found\n continue;\n }\n\n let group;\n\n if ( isBasic ) {\n group = _ensureGroup(root, groupForBasicType, true);\n } else if ( mode === FAVORITE ) {\n group = _ensureGroup(root, 'starred');\n group.weight = 1000;\n } else if ( mode === USED ) {\n group = _ensureGroup(root, `inUse::${ getters.groupLabelFor(typeObj.schema) }`);\n } else {\n group = _ensureGroup(root, typeObj.schema || typeObj.group || ROOT);\n }\n\n let route = typeObj.route;\n\n // Make the default route if one isn't set\n if (!route ) {\n route = {\n name: 'c-cluster-product-resource',\n params: {\n product: productId,\n cluster: clusterId,\n resource: typeObj.name,\n }\n };\n\n typeObj.route = route;\n }\n\n // Cluster ID and Product should always be set\n if ( route && typeof route === 'object' ) {\n route.params = route.params || {};\n route.params.cluster = clusterId;\n route.params.product = productId;\n }\n\n group.children.push({\n label,\n labelDisplay,\n mode: typeObj.mode,\n count,\n exact: typeObj.exact || false,\n namespaced,\n route,\n name: typeObj.name,\n weight: typeObj.weight || getters.typeWeightFor(typeObj.schema?.id || label, isBasic),\n overview: !!typeObj.overview,\n });\n }\n\n // Recursively sort the groups\n _sortGroup(root, mode);\n\n return root.children;\n\n // ----------------------\n\n function _ensureGroup(tree, schemaOrName, forBasic = false) {\n let name = getters.groupLabelFor(schemaOrName);\n const isRoot = ( name === ROOT || name.startsWith(`${ ROOT }::`) );\n\n if ( name && name.includes('::') ) {\n let parent;\n\n [parent, name] = name.split('::', 2);\n tree = _ensureGroup(tree, parent);\n }\n\n // Translate if an entry exists\n let label = name;\n const key = `nav.group.\"${ name }\"`;\n\n if ( rootGetters['i18n/exists'](key) ) {\n label = rootGetters['i18n/t'](key);\n }\n\n let group = findBy(tree.children, 'name', name);\n\n if ( !group ) {\n group = {\n name,\n label,\n weight: getters.groupWeightFor(name, forBasic),\n defaultType: getters.groupDefaultTypeFor(name),\n };\n\n tree.children.push(group);\n }\n\n if ( isRoot ) {\n group.isRoot = true;\n }\n\n if ( !group.children ) {\n group.children = [];\n }\n\n return group;\n }\n\n function highlightLabel(original, count, schema) {\n let label = escapeHtml(original);\n\n if ( searchRegex ) {\n let match = label.match(searchRegex);\n\n if (!match) {\n if ( currentLocal !== defaultLocal && schema ) {\n const defaultLabel = getters.labelFor(schema, count, defaultLocal);\n\n if (defaultLabel && defaultLabel !== label ) {\n label += ` (${ defaultLabel })`;\n match = label.match(searchRegex);\n }\n }\n }\n\n if ( match ) {\n label = `${ escapeHtml(match[1]) }${ escapeHtml(match[2]) }${ escapeHtml(match[3]) }`;\n } else {\n return null;\n }\n }\n\n return label;\n }\n };\n },\n\n isSpoofed(state, getters, rootState, rootGetters) {\n return (type, product) => {\n product = product || rootGetters['productId'];\n const productSpoofedTypes = state.spoofedTypes[product] || [];\n\n return productSpoofedTypes.some((st) => st.type === type);\n };\n },\n\n isVirtual(state, getters, rootState, rootGetters) {\n return (name, product) => {\n product = product || rootGetters['productId'];\n const productVirtualTypes = state.virtualTypes[product] || [];\n\n return productVirtualTypes.some((st) => st.name === name);\n };\n },\n\n getSpoofedInstances(state, getters, rootState, rootGetters) {\n return async(type, product) => {\n product = product || rootGetters['productId'];\n const getInstances = instanceMethods[product]?.[type] || (() => []);\n const instances = await getInstances();\n\n instances.forEach((instance) => {\n const type = instance.type;\n const id = instance.id;\n const link = `/${ SPOOFED_PREFIX }/${ type }/${ id }`;\n const apiLink = `/${ SPOOFED_API_PREFIX }/${ type }/${ id }`;\n\n instance.links = {\n remove: instance.links?.remove || link,\n self: instance.links?.self || link,\n update: instance.links?.update || link,\n view: instance.links?.view || apiLink,\n };\n instance.isSpoofed = true;\n });\n\n return instances;\n };\n },\n\n getSpoofedInstance(state, getters, rootState, rootGetters) {\n return async(type, product, id) => {\n const productInstances = await getters.getSpoofedInstances(type, product);\n\n return productInstances.find( (instance) => instance.id === id);\n };\n },\n\n allSpoofedTypes(state, getters, rootState, rootGetters) {\n return Object.values(state.spoofedTypes).flat();\n },\n\n spoofedSchemas(state, getters, rootState, rootGetters) {\n return (product) => {\n const types = state.spoofedTypes[product] || [];\n\n return types.flatMap((type) => {\n const schemas = type.schemas || [];\n\n return schemas.map((schema) => ({\n ...schema,\n isSpoofed: true\n }));\n });\n };\n },\n\n allSpoofedSchemas(state, getters, rootState, rootGetters) {\n return getters.allSpoofedTypes.flatMap((type) => {\n const schemas = type.schemas || [];\n\n return schemas.map((schema) => ({\n ...schema,\n isSpoofed: true\n }));\n });\n },\n\n allTypes(state, getters, rootState, rootGetters) {\n return (product, mode = ALL) => {\n const module = findBy(state.products, 'name', product)?.inStore;\n const schemas = rootGetters[`${ module }/all`](SCHEMA);\n const counts = rootGetters[`${ module }/all`](COUNT)?.[0]?.counts || {};\n const isDev = rootGetters['prefs/get'](VIEW_IN_API);\n const isBasic = mode === BASIC;\n\n const out = {};\n\n for ( const schema of schemas ) {\n const attrs = schema.attributes || {};\n const count = counts[schema.id];\n const label = getters.labelFor(schema, count);\n const weight = getters.typeWeightFor(schema?.id || label, isBasic);\n const typeOptions = getters['optionsFor'](schema);\n\n if ( isBasic ) {\n // These are separate ifs so that things with no kind can still be basic\n if ( !getters.groupForBasicType(product, schema.id) ) {\n continue;\n }\n } else if ( mode === FAVORITE && !getters.isFavorite(schema.id) ) {\n continue;\n } else if ( !attrs.kind ) {\n // Skip the schemas that aren't top-level types\n continue;\n } else if ( typeof typeOptions.ifRancherCluster !== 'undefined' && typeOptions.ifRancherCluster !== rootGetters.isRancher ) {\n continue;\n } else if (typeOptions.localOnly && !rootGetters.currentCluster?.isLocal) {\n continue;\n }\n\n out[schema.id] = {\n label,\n mode,\n weight,\n schema,\n name: schema.id,\n namespaced: typeOptions.namespaced === null ? attrs.namespaced : typeOptions.namespaced,\n count: count ? count.summary.count || 0 : null,\n byNamespace: count ? count.namespaces : {},\n revision: count ? count.revision : null,\n route: typeOptions.customRoute\n };\n }\n\n // Add virtual and spoofed types\n if ( mode !== USED ) {\n const virtualTypes = state.virtualTypes[product] || [];\n const spoofedTypes = state.spoofedTypes[product] || [];\n const allTypes = [...virtualTypes, ...spoofedTypes];\n\n for ( const type of allTypes ) {\n const item = clone(type);\n const id = item.name;\n const weight = type.weight || getters.typeWeightFor(item.label, isBasic);\n\n // Is there a virtual/spoofed type override for schema type?\n // Currently used by harvester, this should be investigated and removed if possible\n if (out[id]) {\n delete out[id];\n }\n\n if ( item['public'] === false && !isDev ) {\n continue;\n }\n\n if (item.ifHave && !ifHave(rootGetters, item.ifHave)) {\n continue;\n }\n\n if ( item.ifHaveType ) {\n const targetedSchemas = typeof item.ifHaveType === 'string' ? schemas : rootGetters[`${ item.ifHaveType.store }/all`](SCHEMA);\n const type = typeof item.ifHaveType === 'string' ? item.ifHaveType : item.ifHaveType?.type;\n\n const haveIds = filterBy(targetedSchemas, 'id', normalizeType(type)).map((s) => s.id);\n\n if (!haveIds.length) {\n continue;\n }\n\n if (item.ifHaveVerb && !ifHaveVerb(rootGetters, module, item.ifHaveVerb, haveIds)) {\n continue;\n }\n }\n\n if ( item.ifHaveSubTypes ) {\n const hasSome = (item.ifHaveSubTypes || []).some((type) => {\n return !!findBy(schemas, 'id', normalizeType(type));\n });\n\n if (!hasSome) {\n continue;\n }\n }\n\n if ( typeof item.ifRancherCluster !== 'undefined' && item.ifRancherCluster !== rootGetters.isRancher ) {\n continue;\n }\n\n if ( isBasic && !getters.groupForBasicType(product, id) ) {\n continue;\n } else if ( mode === FAVORITE && !getters.isFavorite(id) ) {\n continue;\n }\n\n item.mode = mode;\n item.weight = weight;\n\n // Ensure labelKey is taken into account... with a mock count\n // This is harmless if the translation doesn't require count\n if (item.labelKey && rootGetters['i18n/exists'](item.labelKey)) {\n item.label = rootGetters['i18n/t'](item.labelKey, { count: 2 }).trim();\n delete item.labelKey; // Label should really take precedence over labelKey, but it doesn't, so remove it\n } else {\n item.label = item.label || item.name;\n }\n\n out[id] = item;\n }\n }\n\n return out;\n };\n },\n\n groupByFor(state) {\n return (schema) => {\n return state.groupBy[schema?.id];\n };\n },\n\n hideBulkActionsFor(state) {\n return (schema) => {\n return state.hideBulkActions[schema.id];\n };\n },\n\n headersFor(state, getters, rootState, rootGetters) {\n return (schema) => {\n const attributes = schema.attributes || {};\n const columns = attributes.columns || [];\n const typeOptions = getters['optionsFor'](schema);\n\n // A specific list has been provided\n if ( state.headers[schema.id] ) {\n return state.headers[schema.id].map((entry) => {\n if ( typeof entry === 'string' ) {\n const col = findBy(columns, 'name', entry);\n\n if ( col ) {\n return fromSchema(col, rootGetters);\n } else {\n return null;\n }\n } else {\n return entry;\n }\n }).filter((col) => !!col);\n }\n\n // Otherwise make one up from schema\n const out = typeOptions.showState ? [STATE] : [];\n const namespaced = attributes.namespaced || false;\n let hasName = false;\n\n for ( const col of columns ) {\n if ( col.format === 'name' ) {\n hasName = true;\n out.push(NAME);\n if ( namespaced ) {\n out.push(NAMESPACE_COL);\n }\n } else {\n out.push(fromSchema(col, rootGetters));\n }\n }\n\n if ( !hasName ) {\n insertAt(out, 1, NAME);\n if ( namespaced ) {\n insertAt(out, 2, NAMESPACE_COL);\n }\n }\n\n // Age always goes last\n if ( out.includes(AGE) ) {\n removeObject(out, AGE);\n if ( typeOptions.showAge ) {\n out.push(AGE);\n }\n }\n\n return out;\n\n function fromSchema(col, rootGetters) {\n let formatter, width, formatterOpts;\n\n if ( (col.format === '' || col.format === 'date') && col.name === 'Age' ) {\n return AGE;\n }\n\n if ( col.format === 'date' || col.type === 'date' ) {\n formatter = 'Date';\n width = 120;\n formatterOpts = { multiline: true };\n }\n\n if ( col.type === 'number' || col.type === 'int' ) {\n formatter = 'Number';\n }\n\n const colName = col.name.includes(' ') ? col.name.split(' ').map((word) => word.charAt(0).toUpperCase() + word.substring(1) ).join('') : col.name;\n\n const exists = rootGetters['i18n/exists'];\n const t = rootGetters['i18n/t'];\n const labelKey = `tableHeaders.${ colName.charAt(0).toLowerCase() + colName.slice(1) }`;\n const description = col.description || '';\n const tooltip = description && description[description.length - 1] === '.' ? description.slice(0, -1) : description;\n\n return {\n name: col.name.toLowerCase(),\n label: exists(labelKey) ? t(labelKey) : col.name,\n value: _rowValueGetter(col),\n sort: [col.field],\n formatter,\n formatterOpts,\n width,\n tooltip\n };\n }\n };\n },\n\n // ------------------------------------\n // Custom list/detail/edit/header component detection\n //\n // Note: you can't refactor these into one function that does `@/${kind}/${type}`,\n // because babel needs some hardcoded idea where to look for the dependency.\n //\n // Note 2: Yes these are editing state in a getter for caching... it's ok, probably.\n // ------------------------------------\n hasCustomList(state, getters, rootState) {\n return (rawType) => {\n const key = getters.componentFor(rawType);\n\n return hasCustom(state, rootState, 'list', key, (key) => resolveList(key));\n };\n },\n\n hasCustomChart(state, getters, rootState) {\n return (rawType) => {\n const key = getters.componentFor(rawType);\n\n return hasCustom(state, rootState, 'chart', key, (key) => resolveChart(key));\n };\n },\n\n hasCustomDetail(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'detail', key, (key) => resolveDetail(key));\n };\n },\n\n hasGraph(state, getters) {\n return (resource) => {\n const typeOptions = getters['optionsFor'](resource);\n\n if (typeOptions && typeOptions.hasGraph) {\n return graphConfigMap[resource];\n }\n\n return null;\n };\n },\n\n hasCustomEdit(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'edit', key, (key) => resolveEdit(key));\n };\n },\n\n hasComponent(state, getters, rootState) {\n return (path) => {\n return hasCustom(state, rootState, 'edit', path, (path) => resolveEdit(path));\n };\n },\n\n hasCustomPromptRemove(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'promptRemove', key, () => require.resolve(`@shell/promptRemove/${ key }`));\n };\n },\n\n hasCustomWindowComponent(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'windowComponents', key, (key) => resolveWindowComponent(key));\n };\n },\n\n hasCustomMachineConfigComponent(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'machine-config', key, (key) => resolveMachineConfigComponent(key));\n };\n },\n\n hasCustomCloudCredentialComponent(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'cloud-credential', key, (key) => resolveCloudCredentialComponent(key));\n };\n },\n\n importComponent(state, getters) {\n return (path) => {\n return importEdit(path);\n };\n },\n\n importDialog(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'dialog', getters.componentFor(rawType, subType), importDialog);\n };\n },\n\n importList(state, getters, rootState) {\n return (rawType) => {\n return loadExtension(rootState, 'list', getters.componentFor(rawType), importList);\n };\n },\n\n importChart(state, getters, rootState) {\n return (rawType) => {\n return loadExtension(rootState, 'chart', getters.componentFor(rawType), importChart);\n };\n },\n\n importDetail(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'detail', getters.componentFor(rawType, subType), importDetail);\n };\n },\n\n importEdit(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'edit', getters.componentFor(rawType, subType), importEdit);\n };\n },\n\n importCustomPromptRemove(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'promptRemove', getters.componentFor(rawType, subType), importCustomPromptRemove);\n };\n },\n\n importWindowComponent(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'windowComponents', getters.componentFor(rawType, subType), importWindowComponent);\n };\n },\n\n importLogin(state, getters, rootState) {\n return (authType) => {\n return loadExtension(rootState, 'login', authType, importLogin);\n };\n },\n\n importMachineConfig(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'machine-config', getters.componentFor(rawType, subType), importMachineConfig);\n };\n },\n\n importCloudCredential(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'cloud-credential', getters.componentFor(rawType, subType), importCloudCredential);\n };\n },\n\n componentFor(state, getters) {\n return (type, subType) => {\n let key = type;\n\n if ( subType ) {\n key = `${ type }/${ subType }`;\n }\n\n if ( state.cache.componentFor[key] !== undefined ) {\n return state.cache.componentFor[key];\n }\n\n let out = type;\n\n const mapping = state.typeToComponentMappings.find((mapping) => {\n const re = stringToRegex(mapping.match);\n\n return re.test(key);\n });\n\n if ( mapping ) {\n out = mapping.replace;\n } else if ( subType ) {\n // Try again without the subType\n out = getters.componentFor(type);\n }\n\n state.cache.componentFor[key] = out;\n\n return out;\n };\n },\n\n isIgnored(state, getters, rootState, rootGetters) {\n return (schema) => {\n let out = false;\n\n for ( const rule of state.groupIgnore ) {\n const group = schema?.attributes?.group;\n\n if (group && group.match(stringToRegex(rule.type) && isObject(rule) && rule.type)) {\n out = rule.cb(rootGetters);\n break;\n }\n\n if ( group && typeof rule === 'string' && group.match(stringToRegex(rule)) ) {\n out = true;\n break;\n }\n }\n\n if ( !out ) {\n for ( const rule of state.typeIgnore ) {\n if ( schema.id.match(stringToRegex(rule)) ) {\n out = true;\n break;\n }\n }\n }\n\n state.cache.ignore[schema.id] = out;\n\n return out;\n };\n },\n\n activeProducts(state, getters, rootState, rootGetters) {\n const knownTypes = {};\n const knownGroups = {};\n const isDev = rootGetters['prefs/get'](VIEW_IN_API);\n\n if ( state.schemaGeneration < 0 ) {\n // This does nothing, but makes activeProducts depend on schemaGeneration\n // so that it can be used to update the product list on schema change.\n return;\n }\n\n return state.products.filter((p) => {\n const module = p.inStore;\n\n if ( p['public'] === false && !isDev ) {\n return false;\n }\n\n if ( p.ifGetter && !rootGetters[p.ifGetter] ) {\n return false;\n }\n\n if ( !knownTypes[module] ) {\n const schemas = rootGetters[`${ module }/all`](SCHEMA);\n\n knownTypes[module] = [];\n knownGroups[module] = [];\n\n for ( const s of schemas ) {\n knownTypes[module].push(s._id);\n\n if ( s._group ) {\n addObject(knownGroups[module], s._group);\n }\n }\n }\n\n if ( p.ifFeature) {\n const features = Array.isArray(p.ifFeature) ? p.ifFeature : [p.ifFeature];\n\n for (const f of features) {\n if (!rootGetters['features/get'](f)) {\n return false;\n }\n }\n }\n\n if ( p.ifHave && !ifHave(rootGetters, p.ifHave)) {\n return false;\n }\n\n if ( p.ifHaveType ) {\n const haveIds = knownTypes[module].filter((t) => t.match(stringToRegex(p.ifHaveType)) );\n\n if ( !haveIds.length ) {\n return false;\n }\n\n if ( p.ifHaveVerb && !ifHaveVerb(rootGetters, module, p.ifHaveVerb, haveIds)) {\n return false;\n }\n }\n\n if ( p.ifHaveGroup && !knownGroups[module].find((t) => t.match(stringToRegex(p.ifHaveGroup)) ) ) {\n return false;\n }\n\n return true;\n });\n },\n\n isProductActive(state, getters) {\n return (name) => {\n if ( findBy(getters['activeProducts'], 'name', name) ) {\n return true;\n }\n\n return false;\n };\n },\n\n rowValueGetter(state) {\n return (schema, colName) => {\n const col = _findColumnByName(schema, colName);\n\n return _rowValueGetter(col);\n };\n },\n\n isProductRegistered(state) {\n return (productName) => {\n const prod = state.products.find((p) => p.name === productName);\n\n return !!prod;\n };\n },\n};\n\nexport const mutations = {\n schemaChanged(state) {\n state.schemaGeneration = state.schemaGeneration + 1;\n },\n\n // Remove the specified product\n remove(state, { product, plugin }) {\n const existing = state.products.findIndex((p) => p.name === product);\n\n // Remove the product\n if (existing !== -1) {\n state.products.splice(existing, 1);\n }\n\n // Go through the basic types and remove the headers\n if (state.virtualTypes[product]) {\n delete state.virtualTypes[product];\n }\n\n if (state.basicTypes[product]) {\n // Remove table header configuration\n Object.keys(state.basicTypes[product]).forEach((type) => {\n delete state.headers[type];\n delete state.basicTypeWeights[type];\n delete state.cache.ignore[type];\n // These track whether the type has a custom component\n delete state.cache.detail[type];\n delete state.cache.edit[type];\n delete state.cache.list[type];\n\n // Delete all of the entries from the componentFor cache where the valye is the type\n // Can do this more efficiently\n Object.keys(state.cache.componentFor).forEach((k) => {\n const v = state.cache.componentFor[k];\n\n if (v === type) {\n delete state.cache.componentFor[k];\n }\n });\n });\n\n delete state.basicTypes[product];\n }\n\n if (plugin) {\n // kind is list, edit, detail etc\n Object.keys(plugin.types).forEach((kind) => {\n if (state.cache[kind]) {\n Object.keys(plugin.types[kind]).forEach((type) => {\n delete state.cache[kind][type];\n });\n }\n });\n }\n },\n\n product(state, obj) {\n const existing = findBy(state.products, 'name', obj.name);\n\n if ( existing ) {\n Object.assign(existing, obj);\n } else {\n addObject(state.products, obj);\n }\n },\n\n virtualType(state, { product, obj }) {\n if ( !state.virtualTypes[product] ) {\n state.virtualTypes[product] = [];\n }\n\n const copy = clone(obj);\n\n copy.virtual = true;\n\n const existing = findBy(state.virtualTypes[product], 'name', copy.name);\n\n if ( existing ) {\n Object.assign(existing, copy);\n } else {\n addObject(state.virtualTypes[product], copy);\n }\n },\n\n spoofedType(state, { product, obj }) {\n if ( !state.spoofedTypes[product] ) {\n state.spoofedTypes[product] = [];\n }\n\n const copy = clone(obj);\n\n instanceMethods[product] = instanceMethods[product] || {};\n instanceMethods[product][copy.type] = copy.getInstances;\n delete copy.getInstances;\n\n copy.name = copy.type;\n copy.isSpoofed = true;\n copy.virtual = true;\n copy.schemas.forEach((schema) => {\n schema.links = {\n collection: `/${ SPOOFED_PREFIX }/${ schema.id }`,\n ...(schema.links || {})\n };\n });\n\n const existing = findBy(state.spoofedTypes[product], 'type', copy.type);\n\n if ( existing ) {\n Object.assign(existing, copy);\n } else {\n addObject(state.spoofedTypes[product], copy);\n }\n },\n\n basicType(state, { product, group, types }) {\n if ( !product ) {\n product = EXPLORER;\n }\n\n if ( !group ) {\n group = ROOT;\n }\n\n if ( !isArray(types) ) {\n types = [types];\n }\n\n if ( !state.basicTypes[product] ) {\n state.basicTypes[product] = {};\n }\n\n for ( const t of types ) {\n state.basicTypes[product][t] = group;\n }\n },\n\n ignoreGroup(state, { regexOrString: match, cb }) {\n match = ensureRegex(match);\n // State shouldn't contain actual RegExp objects, because they don't serialize\n cb ? state.groupIgnore.push({\n type: regexToString(match),\n cb\n }) : state.groupIgnore.push(regexToString(match));\n },\n\n ignoreType(state, match) {\n match = ensureRegex(match);\n state.typeIgnore.push(regexToString(match));\n },\n\n groupBy(state, { type, field }) {\n state.groupBy[type] = field;\n },\n\n headers(state, { type, headers }) {\n state.headers[type] = headers;\n },\n\n hideBulkActions(state, { type, field }) {\n state.hideBulkActions[type] = field;\n },\n\n // weightGroup({group: 'core', weight: 99}); -- higher groups are shown first\n // These operate on group names *after* mapping but *before* translation\n weightGroup(state, {\n group, groups, weight, forBasic\n }) {\n if ( !groups ) {\n groups = [];\n }\n\n if ( group ) {\n groups.push(group);\n }\n\n const map = forBasic ? state.basicGroupWeights : state.groupWeights;\n\n for ( const g of groups ) {\n map[g.toLowerCase()] = weight;\n }\n },\n\n // setGroupDefaultType({group: 'core', defaultType: 'name'});\n // By default when a group is clicked, the first item is selected - this allows\n // this behaviour to be changed and a named child type can be chosen\n // These operate on group names *after* mapping but *before* translation\n setGroupDefaultType(state, { group, groups, defaultType }) {\n if ( !groups ) {\n groups = [];\n }\n\n if ( group ) {\n groups.push(group);\n }\n\n for ( const g of groups ) {\n state.groupDefaultTypes[g.toLowerCase()] = defaultType;\n }\n },\n\n // weightType('Cluster' 99); -- higher groups are shown first\n // These operate on *schema* type names, before mapping\n weightType(state, {\n type, types, weight, forBasic\n }) {\n if ( !types ) {\n types = [];\n }\n\n if ( type ) {\n types.push(type);\n }\n\n const map = forBasic ? state.basicTypeWeights : state.typeWeights;\n\n for ( const t of types ) {\n map[t.toLowerCase()] = weight;\n }\n },\n\n // mapGroup('ugly.thing', 'Nice Thing', 1);\n // mapGroup(/ugly.thing.(stuff)', '$1', 2);\n // mapGroup(/ugly.thing.(stuff)', function(groupStr, ruleObj, regexMatch, typeObj) { return ucFirst(group.id) } , 2);\n mapGroup(state, {\n match, replace, weight = 5, continueOnMatch = false\n }) {\n _addMapping(state.groupMappings, match, replace, weight, continueOnMatch);\n },\n\n mapType(state, {\n match, replace, weight = 5, continueOnMatch = false\n }) {\n _addMapping(state.typeMappings, match, replace, weight, continueOnMatch);\n },\n\n // moveType('apps.deployment', 'Core');\n moveType(state, { match, group, weight = 5 }) {\n _addMapping(state.typeMoveMappings, match, group, weight);\n },\n\n componentForType(state, { match, replace }) {\n match = ensureRegex(match);\n match = regexToString(match);\n state.typeToComponentMappings.push({ match, replace });\n },\n\n configureType(state, options) {\n const match = regexToString(ensureRegex(options.match));\n\n const idx = state.typeOptions.findIndex((obj) => obj.match === match);\n let obj = { ...options, match };\n\n if ( idx >= 0 ) {\n obj = Object.assign(state.typeOptions[idx], obj);\n state.typeOptions.splice(idx, 1, obj);\n } else {\n const obj = Object.assign({}, options, { match });\n\n state.typeOptions.push(obj);\n }\n },\n\n};\n\nexport const actions = {\n removeProduct({ commit }, metadata) {\n commit('remove', metadata);\n },\n\n addFavorite({ dispatch, rootGetters }, type) {\n const types = rootGetters['prefs/get'](FAVORITE_TYPES) || [];\n\n addObject(types, type);\n\n dispatch('prefs/set', { key: FAVORITE_TYPES, value: types }, { root: true });\n },\n\n removeFavorite({ dispatch, rootGetters }, type) {\n const types = rootGetters['prefs/get'](FAVORITE_TYPES) || [];\n\n removeObject(types, type);\n\n dispatch('prefs/set', { key: FAVORITE_TYPES, value: types }, { root: true });\n },\n\n toggleGroup({ dispatch, rootGetters }, { group, expanded }) {\n const groups = rootGetters['prefs/get'](EXPANDED_GROUPS);\n\n if ( expanded ) {\n addObject(groups, group);\n } else {\n removeObject(groups, group);\n }\n\n dispatch('prefs/set', { key: EXPANDED_GROUPS, value: groups }, { root: true });\n },\n\n configureType({ commit }, options) {\n commit('configureType', options);\n }\n};\n\nfunction _sortGroup(tree, mode) {\n const by = ['weight:desc', 'namespaced', 'label'];\n\n tree.children = sortBy(tree.children, by);\n\n for (const entry of tree.children ) {\n if ( entry.children ) {\n _sortGroup(entry, mode);\n }\n }\n}\n\nfunction _matchingCounts(typeObj, namespaces) {\n // That was easy\n if ( !typeObj.namespaced || !typeObj.byNamespace || namespaces === null || typeObj.count === null) {\n return typeObj.count;\n }\n\n let out = 0;\n\n // Otherwise start with 0 and count up\n for ( const namespace of namespaces ) {\n out += typeObj.byNamespace[namespace]?.count || 0;\n }\n\n return out;\n}\n\nfunction _applyMapping(objOrValue, mappings, keyField, cache, defaultFn) {\n let key = objOrValue;\n let found = false;\n\n if ( keyField ) {\n if ( typeof objOrValue !== 'object' ) {\n return objOrValue;\n }\n\n key = get(objOrValue, keyField);\n\n if ( typeof key !== 'string' ) {\n return null;\n }\n }\n\n if ( key && cache && cache[key] ) {\n return cache[key];\n }\n\n let out = `${ key }`;\n\n for ( const rule of mappings ) {\n const re = stringToRegex(rule.match);\n const captured = out.match(re);\n\n if ( captured && rule.replace ) {\n out = out.replace(re, rule.replace);\n\n found = true;\n if ( !rule.continueOnMatch ) {\n break;\n }\n }\n }\n\n if ( !found && defaultFn ) {\n out = defaultFn(out, objOrValue);\n }\n\n if ( cache ) {\n cache[key] = out;\n }\n\n return out;\n}\n\nfunction _addMapping(mappings, match, replace, weight, continueOnMatch) {\n match = regexToString(ensureRegex(match));\n\n mappings.push({\n match,\n replace,\n weight,\n continueOnMatch,\n insertIndex: mappings.length,\n });\n\n // Re-sort the list by weight (highest first) and insert time (oldest first)\n mappings.sort((a, b) => {\n const pri = b.weight - a.weight;\n\n if ( pri ) {\n return pri;\n }\n\n return a.insertIndex - b.insertIndex;\n });\n}\n\n// Regexes can't be represented in state because they don't serialize to JSON..\nconst regexCache = {};\n\nfunction regexToString(regex) {\n return regex.source;\n}\n\nfunction stringToRegex(str) {\n let out = regexCache[str];\n\n if ( !out ) {\n out = new RegExp(str);\n regexCache[str] = out;\n }\n\n return out;\n}\n\nfunction ifHave(getters, option) {\n switch (option) {\n case IF_HAVE.V2_MONITORING: {\n return haveV2Monitoring(getters);\n }\n case IF_HAVE.PROJECT: {\n return !!project(getters);\n }\n case IF_HAVE.NO_PROJECT: {\n return !project(getters);\n }\n case IF_HAVE.NOT_V1_ISTIO: {\n return !isV1Istio(getters);\n }\n case IF_HAVE.MULTI_CLUSTER: {\n return getters.isMultiCluster;\n }\n case IF_HAVE.NEUVECTOR_NAMESPACE: {\n return getters[`cluster/all`](NAMESPACE).find((n) => n.metadata.name === NEU_VECTOR_NAMESPACE);\n }\n case IF_HAVE.ADMIN: {\n return isAdminUser(getters);\n }\n case IF_HAVE.MCM_DISABLED: {\n return !getters['isRancherInHarvester'];\n }\n case IF_HAVE.NOT_STANDALONE_HARVESTER: {\n return !getters['isStandaloneHarvester'];\n }\n default:\n return false;\n }\n}\n\n// Could list a larger set of resources that typically only an admin user would have\nexport function isAdminUser(getters) {\n const canEditSettings = (getters['management/schemaFor'](MANAGEMENT.SETTING)?.resourceMethods || []).includes('PUT');\n const canEditFeatureFlags = (getters['management/schemaFor'](MANAGEMENT.FEATURE)?.resourceMethods || []).includes('PUT');\n const canInstallApps = (getters['management/schemaFor'](CATALOG.APP)?.resourceMethods || []).includes('PUT');\n const canAddRepos = (getters['management/schemaFor'](CATALOG.CLUSTER_REPO)?.resourceMethods || []).includes('PUT');\n const canPutHelmOperations = (getters['management/schemaFor'](CATALOG.OPERATION)?.resourceMethods || []).includes('PUT');\n\n return canEditSettings && canEditFeatureFlags && canInstallApps && canAddRepos && canPutHelmOperations;\n}\n\nfunction _findColumnByName(schema, colName) {\n const attributes = schema.attributes || {};\n const columns = attributes.columns || [];\n\n return findBy(columns, 'name', colName);\n}\n\nfunction _rowValueGetter(col) {\n // 'field' comes from the schema - typically it is of the form $.metadata.field[N]\n // We will use JsonPath to look up this value, which is costly - so if we can detect this format\n // Use a more efficient function to get the value\n const value = col.field.startsWith('.') ? `$${ col.field }` : col.field;\n\n if (process.client) {\n const found = value.match(FIELD_REGEX);\n\n if (found && found.length === 2) {\n const fieldIndex = parseInt(found[1], 10);\n\n return (row) => row.metadata?.fields?.[fieldIndex];\n }\n }\n\n return value;\n}\n\n// Is V1 Istio installed?\nfunction isV1Istio(getters) {\n const cluster = getters['currentCluster'];\n\n return !!cluster?.status?.istioEnabled;\n}\n\nfunction ifHaveVerb(rootGetters, module, verb, haveIds) {\n for ( const haveId of haveIds ) {\n const schema = rootGetters[`${ module }/schemaFor`](haveId);\n const want = verb.toLowerCase();\n const collectionMethods = schema.collectionMethods || [];\n const resourceMethods = schema.resourceMethods || [];\n const have = [...collectionMethods, ...resourceMethods].map((x) => x.toLowerCase());\n\n if ( !have.includes(want) && !have.includes(`blocked-${ want }`) ) {\n return false;\n }\n }\n\n return true;\n}\n\n// Look at the namespace filters to determine if a project is selected\nexport function project(getters) {\n const clusterId = getters['currentCluster']?.id;\n\n if ( !clusterId ) {\n return null;\n }\n\n const filters = getters['namespaceFilters'];\n const namespaces = [];\n let projectName = null;\n\n for (const filter of filters) {\n const [type, id] = filter.split('://', 2);\n\n if (type === 'project') {\n if (projectName !== null) {\n // More than one project selected\n return null;\n }\n projectName = id;\n } else if (type === 'ns') {\n namespaces.push(id);\n } else {\n // Something other than project or namespace\n return null;\n }\n }\n\n // No project found?\n if (!projectName) {\n return null;\n }\n\n // We have one project and a set of namespaces\n // Check that all of the namespaces belong to the project\n const project = getters['management/byId'](MANAGEMENT.PROJECT, `${ clusterId }/${ projectName }`);\n\n // No additional namespaces means just the project is selected\n if (namespaces.length === 0) {\n return project;\n }\n\n // Convert the project namespaces into a map so we can check existence easily\n const prjNamespaceMap = project.namespaces.reduce((m, ns) => {\n m[ns.metadata.name] = true;\n\n return m;\n }, {});\n\n // All of the namespace filters must belong to the project\n const found = namespaces.reduce((total, ns) => {\n return prjNamespaceMap[ns] ? total + 1 : 0;\n }, 0);\n\n if (found !== namespaces.length) {\n return null;\n }\n\n return project;\n}\n\nfunction hasCustom(state, rootState, kind, key, fallback) {\n const cache = state.cache[kind];\n\n if ( cache[key] !== undefined ) {\n return cache[key];\n }\n\n // Check to see if the custom kind is provided by a plugin\n if (!!rootState.$plugin.getDynamic(kind, key)) {\n cache[key] = true;\n\n return cache[key];\n }\n\n // Fallback\n try {\n fallback(key);\n cache[key] = true;\n } catch (e) {\n cache[key] = false;\n }\n\n return cache[key];\n}\n\nfunction loadExtension(rootState, kind, key, fallback) {\n const ext = rootState.$plugin.getDynamic(kind, key);\n\n if (ext) {\n if (typeof ext === 'function') {\n return ext;\n }\n\n return () => ext;\n }\n\n return fallback(key);\n}\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","export * from \"-!../../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./THead.vue?vue&type=style&index=1&id=96d8a090&prod&lang=scss\"","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseUniq = require('./_baseUniq');\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nmodule.exports = baseXor;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".favorite[data-v-f74a378a]{position:relative;cursor:pointer;font-size:20px;transform:ease-in-out-all 1s}.favorite.icon-star-open[data-v-f74a378a]{color:var(--muted)}.favorite.icon-star-closed[data-v-f74a378a]{color:var(--body-text)}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","// Settings\nimport { GC_DEFAULTS, GC_PREFERENCES } from '@shell/utils/gc/gc-types';\n\ninterface GlobalSettingRuleset {\n name: string,\n key?: string | number,\n factoryArg?: string | number | (string | number)[]\n}\n\ninterface GlobalSetting {\n [key: string]: {\n alias?: string,\n canReset?: boolean,\n customFormatter?: string,\n from?: string,\n kind?: string,\n options?: string[]\n readOnly?: boolean,\n /**\n * Function used from the form validation\n */\n ruleSet?: GlobalSettingRuleset[],\n };\n}\n\n// Adapted from: https://github.com/rancher/ui/blob/08c379a9529f740666a704b52522a468986c3520/lib/shared/addon/utils/constants.js#L564\n// Setting IDs\nexport const SETTING = {\n VERSION_RANCHER: 'server-version',\n VERSION_CLI: 'cli-version',\n VERSION_MACHINE: 'machine-version',\n VERSION_HELM: 'helm-version',\n CLI_URL: {\n DARWIN: 'cli-url-darwin',\n WINDOWS: 'cli-url-windows',\n LINUX: 'cli-url-linux',\n },\n API_HOST: 'api-host',\n CA_CERTS: 'cacerts',\n\n // Allow the local cluster to be hidden\n HIDE_LOCAL_CLUSTER: 'hide-local-cluster',\n AUTH_TOKEN_MAX_TTL_MINUTES: 'auth-token-max-ttl-minutes',\n KUBECONFIG_GENERATE_TOKEN: 'kubeconfig-generate-token',\n KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES: 'kubeconfig-default-token-ttl-minutes',\n ENGINE_URL: 'engine-install-url',\n ENGINE_ISO_URL: 'engine-iso-url',\n FIRST_LOGIN: 'first-login',\n INGRESS_IP_DOMAIN: 'ingress-ip-domain',\n SERVER_URL: 'server-url',\n RKE_METADATA_CONFIG: 'rke-metadata-config',\n TELEMETRY: 'telemetry-opt',\n EULA_AGREED: 'eula-agreed',\n AUTH_USER_INFO_MAX_AGE_SECONDS: 'auth-user-info-max-age-seconds',\n AUTH_USER_SESSION_TTL_MINUTES: 'auth-user-session-ttl-minutes',\n AUTH_USER_INFO_RESYNC_CRON: 'auth-user-info-resync-cron',\n AUTH_LOCAL_VALIDATE_DESC: 'auth-password-requirements-description',\n PASSWORD_MIN_LENGTH: 'password-min-length', // CATTLE_PASSWORD_MIN_LENGTH\n CLUSTER_TEMPLATE_ENFORCEMENT: 'cluster-template-enforcement',\n UI_INDEX: 'ui-index',\n UI_DASHBOARD_INDEX: 'ui-dashboard-index',\n UI_DASHBOARD_HARVESTER_LEGACY_PLUGIN: 'ui-dashboard-harvester-legacy-plugin',\n UI_OFFLINE_PREFERRED: 'ui-offline-preferred',\n SYSTEM_DEFAULT_REGISTRY: 'system-default-registry',\n UI_ISSUES: 'ui-issues',\n PL: 'ui-pl',\n PL_RANCHER_VALUE: 'rancher',\n SUPPORTED: 'has-support',\n BANNERS: 'ui-banners',\n ISSUES: 'ui-issues',\n BRAND: 'ui-brand',\n LOGO_LIGHT: 'ui-logo-light',\n LOGO_DARK: 'ui-logo-dark',\n PRIMARY_COLOR: 'ui-primary-color',\n LINK_COLOR: 'ui-link-color',\n COMMUNITY_LINKS: 'ui-community-links',\n FAVICON: 'ui-favicon',\n UI_PERFORMANCE: 'ui-performance',\n UI_CUSTOM_LINKS: 'ui-custom-links',\n /**\n * Allow the backend to force a light/dark theme. Used in non-rancher world and results in the theme used\n * both pre and post log in. If not present defaults to the usual process\n */\n THEME: 'ui-theme',\n SYSTEM_NAMESPACES: 'system-namespaces',\n /**\n * Cluster Agent configuration\n */\n CLUSTER_AGENT_DEFAULT_AFFINITY: 'cluster-agent-default-affinity',\n FLEET_AGENT_DEFAULT_AFFINITY: 'fleet-agent-default-affinity',\n /**\n * manage rancher repositories in extensions (official, partners repos)\n */\n ADD_EXTENSION_REPOS_BANNER_DISPLAY: 'display-add-extension-repos-banner',\n /**\n * User retention settings\n */\n USER_RETENTION_CRON: 'user-retention-cron',\n USER_RETENTION_DRY_RUN: 'user-retention-dry-run',\n USER_LAST_LOGIN_DEFAULT: 'user-last-login-default',\n DISABLE_INACTIVE_USER_AFTER: 'disable-inactive-user-after',\n DELETE_INACTIVE_USER_AFTER: 'delete-inactive-user-after',\n};\n\n// These are the settings that are allowed to be edited via the UI\nexport const ALLOWED_SETTINGS: GlobalSetting = {\n [SETTING.CA_CERTS]: { kind: 'multiline', readOnly: true },\n [SETTING.ENGINE_URL]: {},\n [SETTING.ENGINE_ISO_URL]: {},\n [SETTING.PASSWORD_MIN_LENGTH]: {\n kind: 'integer',\n ruleSet: [\n {\n name: 'betweenValues',\n key: 'Password',\n factoryArg: [2, 256]\n },\n {\n name: 'isInteger',\n key: 'Password',\n },\n {\n name: 'isPositive',\n key: 'Password',\n },\n {\n name: 'isOctal',\n key: 'Password',\n }\n ],\n },\n [SETTING.INGRESS_IP_DOMAIN]: {},\n [SETTING.AUTH_USER_INFO_MAX_AGE_SECONDS]: {},\n [SETTING.AUTH_USER_SESSION_TTL_MINUTES]: {},\n [SETTING.AUTH_TOKEN_MAX_TTL_MINUTES]: {},\n [SETTING.KUBECONFIG_GENERATE_TOKEN]: { kind: 'boolean' },\n [SETTING.KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES]: { kind: 'integer' },\n [SETTING.AUTH_USER_INFO_RESYNC_CRON]: {},\n [SETTING.SERVER_URL]: { kind: 'url', canReset: true },\n [SETTING.RKE_METADATA_CONFIG]: { kind: 'json' },\n [SETTING.SYSTEM_DEFAULT_REGISTRY]: {},\n [SETTING.UI_INDEX]: {},\n [SETTING.UI_DASHBOARD_INDEX]: {},\n [SETTING.UI_OFFLINE_PREFERRED]: {\n kind: 'enum',\n options: ['dynamic', 'true', 'false']\n },\n [SETTING.BRAND]: { canReset: true },\n [SETTING.CLUSTER_TEMPLATE_ENFORCEMENT]: { kind: 'boolean' },\n [SETTING.TELEMETRY]: {\n kind: 'enum',\n options: ['prompt', 'in', 'out']\n },\n [SETTING.HIDE_LOCAL_CLUSTER]: { kind: 'boolean' },\n};\n\n/**\n * Settings on how to handle warnings returning in api responses, specifically which to show as growls\n */\nexport interface PerfSettingsWarningHeaders {\n /**\n * Warning is a string containing multiple entries. This determines how they are split up\n *\n * See https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1693-warnings#design-details\n */\n separator: string,\n /**\n * Show warnings in a notification if they're not in this block list\n */\n notificationBlockList: string[]\n}\n\nexport interface PerfSettingsKubeApi {\n /**\n * Settings related to the response header `warnings` value\n */\n warningHeader: PerfSettingsWarningHeaders\n}\n\nexport interface PerfSettings {\n inactivity: {\n enabled: boolean;\n threshold: number;\n };\n incrementalLoading: {\n enabled: boolean;\n threshold: number;\n };\n manualRefresh: {};\n disableWebsocketNotification: boolean;\n garbageCollection: GC_PREFERENCES;\n forceNsFilterV2: any;\n advancedWorker: {};\n kubeAPI: PerfSettingsKubeApi;\n}\n\nexport const DEFAULT_PERF_SETTING: PerfSettings = {\n inactivity: {\n enabled: false,\n threshold: 900,\n },\n incrementalLoading: {\n enabled: true,\n threshold: 1500,\n },\n manualRefresh: {\n enabled: false,\n threshold: 1500,\n },\n disableWebsocketNotification: true,\n garbageCollection: GC_DEFAULTS,\n forceNsFilterV2: { enabled: false },\n advancedWorker: { enabled: false },\n kubeAPI: {\n /**\n * Settings related to the response header `warnings` value\n */\n warningHeader: {\n /**\n * Warning is a string containing multiple entries. This determines how they are split up\n *\n * See https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1693-warnings#design-details\n */\n separator: '299 - ',\n /**\n * Show warnings in a notification if they're not in this block list\n */\n notificationBlockList: ['299 - unknown field']\n }\n }\n};\n","import { KA_NAME, KA_PRODUCT_NAME } from \"./types\";\nimport { IPlugin } from '@shell/core/types';\n// import { KUBEARMOR_CLUSTER_POLICY } from './your-constants-file'; // Assuming you have KUBEARMOR_CLUSTER_POLICY defined\n// import { KUBEARMOR_CLUSTER_POLICY } from \"config/table-headers\";\nimport { KUBEARMOR_CLUSTER_POLICY_HEADERS } from './config/table-headers';\nconst KA_Icon = require(\"./icon.svg\");\n\nexport function init($plugin: any, store: any) {\n const { product, configureType, virtualType, basicType } = $plugin.DSL(\n store,\n KA_PRODUCT_NAME\n );\n\n product({\n inStore: \"cluster\",\n inExplorer: true,\n icon: KA_Icon,\n removeable: false,\n showNamespaceFilter: true,\n });\n\n virtualType({\n label: KA_NAME,\n name: KA_NAME,\n namespaced: false,\n weight: 99,\n overview: true,\n route: {\n name: `c-cluster-${KA_NAME}-dashboard`,\n },\n });\n\n virtualType({\n labelKey: 'KubeArmor Probe',\n name: 'KubeArmor Probe',\n icon: KA_Icon,\n route: {\n name: `c-cluster-${ KA_NAME }-KubeArmor_Probe`,\n params: {\n product: 'kubearmor'\n }\n }\n });\n\n // Configure the custom table headers for KubeArmorClusterPolicy\n\n // Register the resource types with basicType\n basicType([\n 'KubeArmor Probe',\n 'security.kubearmor.com.kubearmorpolicy',\n 'security.kubearmor.com.kubearmorhostpolicy',\n 'operator.kubearmor.com.kubearmorconfig',\n 'security.kubearmor.com.kubearmorclusterpolicy'\n ]);\n\n // Add a console log to check the headers\n console.log('KubeArmor Cluster Policy Headers:', KUBEARMOR_CLUSTER_POLICY_HEADERS);\n\n // Configure the custom table headers for KubeArmorClusterPolicy\n configureType('security.kubearmor.com.kubearmorclusterpolicy', {\n name: 'kubearmor-cluster-policy',\n label: 'KubeArmor Cluster Policy',\n headers: KUBEARMOR_CLUSTER_POLICY_HEADERS\n });\n \n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[[_vm._v(\" \"+_vm._s(_vm.t('promptRemove.attemptingToRemove', { type: _vm.type }))+\" \"),_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.resourceNames(_vm.names, _vm.plusMore, _vm.t)),expression:\"resourceNames(names, plusMore, t)\"}]})],(_vm.info)?_c('div',{staticClass:\"text info mb-10 mt-20\"},[_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.info),expression:\"info\"}]})]):_vm._e(),(_vm.warning)?_c('div',{staticClass:\"text-warning mb-10 mt-20\"},[_vm._v(\" \"+_vm._s(_vm.warning)+\" \")]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.roletemplate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.roletemplate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./management.cattle.io.roletemplate.vue?vue&type=template&id=5050d908&scoped=true\"\nimport script from \"./management.cattle.io.roletemplate.vue?vue&type=script&lang=js\"\nexport * from \"./management.cattle.io.roletemplate.vue?vue&type=script&lang=js\"\nimport style0 from \"./management.cattle.io.roletemplate.vue?vue&type=style&index=0&id=5050d908&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5050d908\",\n null\n \n)\n\nexport default component.exports","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.project.vue?vue&type=style&index=0&id=3a26ac99&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".table-options-checkbox .checkbox-custom{min-width:14px}.table-options-checkbox .checkbox-label{color:var(--body-text)}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var baseIteratee = require('./_baseIteratee'),\n negate = require('./negate'),\n pickBy = require('./pickBy');\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nmodule.exports = omitBy;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","// --------------------------------------\n// 1. Provided by Steve and always potentially available\n// --------------------------------------\n\n// Steve-specific virtual types\n// Base: /v1\nexport const STEVE = { PREFERENCE: 'userpreference' };\n\n// Old APIs via Norman\n// Base: /v3\nexport const NORMAN = {\n APP: 'app',\n AUTH_CONFIG: 'authconfig',\n ETCD_BACKUP: 'etcdbackup',\n CLUSTER: 'cluster',\n CLUSTER_TOKEN: 'clusterregistrationtoken',\n CLUSTER_ROLE_TEMPLATE_BINDING: 'clusterRoleTemplateBinding',\n CLOUD_CREDENTIAL: 'cloudcredential',\n FLEET_WORKSPACES: 'fleetworkspace',\n GLOBAL_ROLE: 'globalRole',\n GLOBAL_ROLE_BINDING: 'globalRoleBinding',\n\n NODE_POOL: 'nodePool',\n // Note - This allows access to node resources, not schema's or custom components (both are accessed via 'type' which clashes with kube node)\n NODE: 'node',\n PRINCIPAL: 'principal',\n PROJECT: 'project',\n PROJECT_ROLE_TEMPLATE_BINDING: 'projectroletemplatebinding',\n SPOOFED: { GROUP_PRINCIPAL: 'group.principal' },\n ROLE_TEMPLATE: 'roleTemplate',\n TOKEN: 'token',\n USER: 'user',\n};\n\n// Public (via Norman)\n// Base: /v3-public\nexport const PUBLIC = { AUTH_PROVIDER: 'authprovider' };\n\n// Common native k8s types (via Steve)\n// Base: /k8s/clusters//v1/\nexport const API_GROUP = 'apiGroups';\nexport const API_SERVICE = 'apiregistration.k8s.io.apiservice';\nexport const CONFIG_MAP = 'configmap';\nexport const COUNT = 'count';\nexport const EVENT = 'event';\nexport const ENDPOINTS = 'endpoints';\nexport const HPA = 'autoscaling.horizontalpodautoscaler';\nexport const INGRESS = 'networking.k8s.io.ingress';\nexport const INGRESS_CLASS = 'networking.k8s.io.ingressclass';\nexport const LIMIT_RANGE = 'limitrange';\nexport const NAMESPACE = 'namespace';\nexport const NODE = 'node';\nexport const NETWORK_POLICY = 'networking.k8s.io.networkpolicy';\nexport const POD = 'pod';\nexport const POD_DISRUPTION_BUDGET = 'policy.poddisruptionbudget';\nexport const PSP = 'policy.podsecuritypolicy';\nexport const PSPS = 'policy.podsecuritypolicies';\nexport const PV = 'persistentvolume';\nexport const PVC = 'persistentvolumeclaim';\nexport const RESOURCE_QUOTA = 'resourcequota';\nexport const SCHEMA = 'schema';\nexport const SERVICE = 'service';\nexport const SECRET = 'secret';\nexport const SERVICE_ACCOUNT = 'serviceaccount';\nexport const STORAGE_CLASS = 'storage.k8s.io.storageclass';\nexport const CSI_DRIVER = 'storage.k8s.io.csidriver';\nexport const OBJECT_META = 'io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta';\nexport const NETWORK_ATTACHMENT = 'k8s.cni.cncf.io.networkattachmentdefinition';\nexport const USER = 'user';\nexport const GROUP = 'group';\n\nexport const RBAC = {\n ROLE: 'rbac.authorization.k8s.io.role',\n CLUSTER_ROLE: 'rbac.authorization.k8s.io.clusterrole',\n ROLE_BINDING: 'rbac.authorization.k8s.io.rolebinding',\n CLUSTER_ROLE_BINDING: 'rbac.authorization.k8s.io.clusterrolebinding',\n};\n\nexport const WORKLOAD = 'workload';\n\n// The types that are aggregated into a \"workload\"\nexport const WORKLOAD_TYPES = {\n DEPLOYMENT: 'apps.deployment',\n CRON_JOB: 'batch.cronjob',\n DAEMON_SET: 'apps.daemonset',\n JOB: 'batch.job',\n STATEFUL_SET: 'apps.statefulset',\n REPLICA_SET: 'apps.replicaset',\n REPLICATION_CONTROLLER: 'replicationcontroller',\n};\n\nconst {\n DAEMON_SET, CRON_JOB, JOB, ...scalableWorkloads\n} = WORKLOAD_TYPES;\n\nexport const SCALABLE_WORKLOAD_TYPES = scalableWorkloads;\n\nexport const LIST_WORKLOAD_TYPES = {\n ...WORKLOAD_TYPES,\n POD\n};\n\nexport const METRIC = {\n NODE: 'metrics.k8s.io.nodemetrics',\n POD: 'metrics.k8s.io.podmetrics',\n};\n\nexport const CATALOG = {\n CLUSTER_REPO: 'catalog.cattle.io.clusterrepo',\n OPERATION: 'catalog.cattle.io.operation',\n APP: 'catalog.cattle.io.app',\n REPO: 'catalog.cattle.io.repo',\n};\n\n// UI Plugin type\nexport const UI_PLUGIN = 'catalog.cattle.io.uiplugin';\n\nexport const HELM = { PROJECTHELMCHART: 'helm.cattle.io.projecthelmchart' };\n\nexport const MONITORING = {\n ALERTMANAGER: 'monitoring.coreos.com.alertmanager',\n ALERTMANAGERCONFIG: 'monitoring.coreos.com.alertmanagerconfig',\n PODMONITOR: 'monitoring.coreos.com.podmonitor',\n PROMETHEUS: 'monitoring.coreos.com.prometheus',\n PROMETHEUSRULE: 'monitoring.coreos.com.prometheusrule',\n SERVICEMONITOR: 'monitoring.coreos.com.servicemonitor',\n THANOSRULER: 'monitoring.coreos.com.thanosruler',\n SPOOFED: {\n RECEIVER: 'monitoring.coreos.com.receiver',\n RECEIVER_SPEC: 'monitoring.coreos.com.receiver.spec',\n RECEIVER_EMAIL: 'monitoring.coreos.com.receiver.email',\n RECEIVER_SLACK: 'monitoring.coreos.com.receiver.slack',\n RECEIVER_WEBHOOK: 'monitoring.coreos.com.receiver.webhook',\n RECEIVER_PAGERDUTY: 'monitoring.coreos.com.receiver.pagerduty',\n RECEIVER_OPSGENIE: 'monitoring.coreos.com.receiver.opsgenie',\n RECEIVER_HTTP_CONFIG: 'monitoring.coreos.com.receiver.httpconfig',\n RESPONDER: 'monitoring.coreos.com.receiver.responder',\n ROUTE: 'monitoring.coreos.com.route',\n ROUTE_SPEC: 'monitoring.coreos.com.route.spec',\n ALERTMANAGERCONFIG_RECEIVER_SPEC: 'monitoring.coreos.com.v1alpha1.alertmanagerconfig.spec.receivers',\n ALERTMANAGERCONFIG_ROUTE_SPEC: 'monitoring.coreos.com.v1alpha1.alertmanagerconfig.spec.route'\n }\n};\n\nexport const LONGHORN = {\n ENGINES: 'longhorn.io.engine',\n ENGINE_IMAGES: 'longhorn.io.engineimage',\n NODES: 'longhorn.io.node',\n REPLICAS: 'longhorn.io.replica',\n SETTINGS: 'longhorn.io.setting',\n VOLUMES: 'longhorn.io.volume',\n};\n\nexport const LONGHORN_DRIVER = 'driver.longhorn.io';\n\nexport const SNAPSHOT = 'rke.cattle.io.etcdsnapshot';\n\n// --------------------------------------\n// 2. Only if Rancher is installed\n// --------------------------------------\n\n// Rancher Management API (via Steve)\n// Base: /v1\nexport const MANAGEMENT = {\n AUTH_CONFIG: 'management.cattle.io.authconfig',\n CATALOG_TEMPLATE: 'management.cattle.io.catalogtemplate',\n // CATALOG: 'management.cattle.io.catalog',\n CLUSTER: 'management.cattle.io.cluster',\n CLUSTER_ROLE_TEMPLATE_BINDING: 'management.cattle.io.clusterroletemplatebinding',\n FEATURE: 'management.cattle.io.feature',\n // GROUP: 'management.cattle.io.group',\n KONTAINER_DRIVER: 'management.cattle.io.kontainerdriver',\n MULTI_CLUSTER_APP: 'management.cattle.io.multiclusterapp',\n NODE: 'management.cattle.io.node',\n NODE_DRIVER: 'management.cattle.io.nodedriver',\n NODE_POOL: 'management.cattle.io.nodepool',\n NODE_TEMPLATE: 'management.cattle.io.nodetemplate',\n PROJECT: 'management.cattle.io.project',\n PROJECT_ROLE_TEMPLATE_BINDING: 'management.cattle.io.projectroletemplatebinding',\n ROLE_TEMPLATE: 'management.cattle.io.roletemplate',\n SETTING: 'management.cattle.io.setting',\n USER: 'management.cattle.io.user',\n TOKEN: 'management.cattle.io.token',\n GLOBAL_ROLE: 'management.cattle.io.globalrole',\n GLOBAL_ROLE_BINDING: 'management.cattle.io.globalrolebinding',\n POD_SECURITY_POLICY_TEMPLATE: 'management.cattle.io.podsecuritypolicytemplate',\n PSP_TEMPLATE_BINDING: 'management.cattle.io.podsecuritypolicytemplateprojectbinding',\n PSA: 'management.cattle.io.podsecurityadmissionconfigurationtemplate',\n MANAGED_CHART: 'management.cattle.io.managedchart',\n USER_NOTIFICATION: 'management.cattle.io.rancherusernotification',\n GLOBAL_DNS_PROVIDER: 'management.cattle.io.globaldnsprovider',\n RKE_TEMPLATE: 'management.cattle.io.clustertemplate',\n RKE_TEMPLATE_REVISION: 'management.cattle.io.clustertemplaterevision',\n};\n\nexport const CAPI = {\n CAPI_CLUSTER: 'cluster.x-k8s.io.cluster',\n MACHINE_DEPLOYMENT: 'cluster.x-k8s.io.machinedeployment',\n MACHINE_SET: 'cluster.x-k8s.io.machineset',\n MACHINE: 'cluster.x-k8s.io.machine',\n RANCHER_CLUSTER: 'provisioning.cattle.io.cluster',\n MACHINE_CONFIG_GROUP: 'rke-machine-config.cattle.io',\n};\n\n// --------------------------------------\n// 3. Optional add-on packages in a cluster\n// --------------------------------------\n// Base: /k8s/clusters//v1/\n\nexport const FLEET = {\n BUNDLE: 'fleet.cattle.io.bundle',\n BUNDLE_DEPLOYMENT: 'fleet.cattle.io.bundledeployment',\n CLUSTER: 'fleet.cattle.io.cluster',\n CLUSTER_GROUP: 'fleet.cattle.io.clustergroup',\n DASHBOARD: 'fleet.cattle.io.dashboard',\n GIT_REPO: 'fleet.cattle.io.gitrepo',\n WORKSPACE: 'management.cattle.io.fleetworkspace',\n TOKEN: 'fleet.cattle.io.clusterregistrationtoken',\n BUNDLE_NAMESPACE_MAPPING: 'fleet.cattle.io.bundlenamespacemapping',\n GIT_REPO_RESTRICTION: 'fleet.cattle.io.gitreporestriction'\n};\n\nexport const GATEKEEPER = {\n CONSTRAINT_TEMPLATE: 'templates.gatekeeper.sh.constrainttemplate',\n SPOOFED: { CONSTRAINT: 'constraints.gatekeeper.sh.constraint' }\n};\n\nexport const ISTIO = {\n VIRTUAL_SERVICE: 'networking.istio.io.virtualservice',\n DESTINATION_RULE: 'networking.istio.io.destinationrule',\n GATEWAY: 'networking.istio.io.gateway'\n};\n\nexport const LOGGING = {\n // LOGGING: 'logging.banzaicloud.io.logging',\n CLUSTER_FLOW: 'logging.banzaicloud.io.clusterflow',\n CLUSTER_OUTPUT: 'logging.banzaicloud.io.clusteroutput',\n FLOW: 'logging.banzaicloud.io.flow',\n OUTPUT: 'logging.banzaicloud.io.output',\n SPOOFED: {\n FILTERS: 'logging.banzaicloud.io.output.filters',\n FILTER: 'logging.banzaicloud.io.output.filter',\n CONCAT: 'logging.banzaicloud.io.output.filters.concat',\n DEDOT: 'logging.banzaicloud.io.output.filters.dedot',\n DETECTEXCEPTIONS: 'logging.banzaicloud.io.output.filters.detectExceptions',\n GEOIP: 'logging.banzaicloud.io.output.filters.geoip',\n GREP: 'logging.banzaicloud.io.output.filters.grep',\n PARSER: 'logging.banzaicloud.io.output.filters.parser',\n PROMETHEUS: 'logging.banzaicloud.io.output.filters.prometheus',\n RECORD_MODIFIER: 'logging.banzaicloud.io.output.filters.record_modifier',\n RECORD_TRANSFORMER: 'logging.banzaicloud.io.output.filters.record_transformer',\n STDOUT: 'logging.banzaicloud.io.output.filters.stdout',\n SUMOLOGIC: 'logging.banzaicloud.io.output.filters.sumologic',\n TAG_NORMALISER: 'logging.banzaicloud.io.output.filters.tag_normaliser',\n THROTTLE: 'logging.banzaicloud.io.output.filters.throttle',\n RECORD: 'logging.banzaicloud.io.output.filters.record',\n REGEXPSECTION: 'logging.banzaicloud.io.output.filters.regexpsection',\n EXCLUDESECTION: 'logging.banzaicloud.io.output.filters.excludesection',\n ORSECTION: 'logging.banzaicloud.io.output.filters.orsection',\n ANDSECTION: 'logging.banzaicloud.io.output.filters.andsection',\n PARSESECTION: 'logging.banzaicloud.io.output.filters.parsesection',\n METRICSECTION: 'logging.banzaicloud.io.output.filters.metricsection',\n REPLACE: 'logging.banzaicloud.io.output.filters.replace',\n SINGLEPARSESECTION: 'logging.banzaicloud.io.output.filters.replace.singleparsesection'\n }\n};\n\nexport const BACKUP_RESTORE = {\n RESOURCE_SET: 'resources.cattle.io.resourceset',\n BACKUP: 'resources.cattle.io.backup',\n RESTORE: 'resources.cattle.io.restore',\n};\n\nexport const CIS = {\n CLUSTER_SCAN: 'cis.cattle.io.clusterscan',\n CLUSTER_SCAN_PROFILE: 'cis.cattle.io.clusterscanprofile',\n BENCHMARK: 'cis.cattle.io.clusterscanbenchmark',\n REPORT: 'cis.cattle.io.clusterscanreport'\n};\n\nexport const UI = { NAV_LINK: 'ui.cattle.io.navlink' };\n\nexport const VIRTUAL_TYPES = {\n CLUSTER_MEMBERS: 'cluster-members',\n PROJECT_NAMESPACES: 'projects-namespaces',\n NAMESPACES: 'namespaces'\n};\n\n// harvester\nexport const HCI = {\n CLUSTER: 'harvesterhci.io.management.cluster',\n DASHBOARD: 'harvesterhci.io.dashboard',\n IMAGE: 'harvesterhci.io.virtualmachineimage',\n VGPU_DEVICE: 'devices.harvesterhci.io.vgpudevice',\n SETTING: 'harvesterhci.io.setting',\n HARVESTER_CONFIG: 'rke-machine-config.cattle.io.harvesterconfig',\n};\n\nexport const VIRTUAL_HARVESTER_PROVIDER = 'harvester';\n\nexport const ADDRESSES = {\n HOSTNAME: 'Hostname',\n INTERNAL_IP: 'InternalIP',\n EXTERNAL_IP: 'ExternalIP'\n};\n\nexport const DEFAULT_WORKSPACE = 'fleet-default';\n\nexport const AUTH_TYPE = {\n _NONE: '_none',\n _BASIC: '_basic',\n _SSH: '_ssh',\n _S3: '_S3'\n};\n\nexport const LOCAL_CLUSTER = 'local';\n","\nexport const KUBEARMOR_PRODUCT_NAME = 'kubearmor';\n\n\nexport const KUBEARMOR_DASHBOARD = 'dashboard';\n\nexport const KUBEARMOR_CHARTS = {\n CONTROLLER: 'kubearmor-controller',\n DEFAULTS: 'kubearmor-defaults',\n};\n\nexport const KUBEARMOR_APPS = {\n RANCHER_CONTROLLER: 'rancher-kubearmor-controller',\n RANCHER_DEFAULTS: 'rancher-kubearmor-defaults'\n};\n\n\nexport const KUBEARMOR = {\n ADMISSION_POLICY:'security.kubearmor.com.kubearmorpolicy',\n};\n\n/* eslint-disable no-unused-vars */\nexport enum KUBEARMOR_CRD {\n ADMISSION_POLICY = 'security.kubearmor.com.kubearmorpolicy',\n}\n/* eslint-enable no-unused-vars */\n\n// Basic alternative for V1ObjectMeta (metadata usually includes name, namespace, labels, etc.)\nexport interface ObjectMeta {\n name?: string;\n namespace?: string;\n labels?: { [key: string]: string };\n annotations?: { [key: string]: string };\n}\n\n// Basic alternative for V1MatchCondition\nexport interface MatchCondition {\n key: string;\n operator: string; // e.g., 'In', 'NotIn', 'Exists', 'DoesNotExist'\n values?: string[];\n}\n\n// Basic alternative for V1LabelSelector\nexport interface LabelSelector {\n matchLabels?: { [key: string]: string };\n matchExpressions?: Array<{\n key: string;\n operator: string; // e.g., 'In', 'NotIn', 'Exists', 'DoesNotExist'\n values?: string[];\n }>;\n}\nexport interface Policy {\n id?: string;\n type?: string;\n links?: {\n remove?: string;\n self?: string;\n update?: string;\n view?: string;\n };\n apiVersion: string;\n kind: string;\n metadata: ObjectMeta;\n\n spec: {\n // KubeArmor-specific fields\n tags?: string[]; // Tags for categorizing policies\n severity?: number; // Severity level (e.g., 1 to 10 for KubeArmor policies)\n action?: 'Allow' | 'Audit' | 'Block'; // Action to take (KubeArmor-specific)\n message?: string; // Message to display for policy violations (KubeArmor)\n\n backgroundAudit?: boolean;\n matchConditions?: MatchCondition[];\n matchPolicy?: string;\n mode?: string;\n module?: string;\n mutating?: boolean;\n namespaceSelector?: LabelSelector;\n objectSelector?: LabelSelector;\n selector?: LabelSelector; // Selector for KubeArmor policies\n policyServer?: string; // Optional, may not be required for KubeArmor\n file?: {\n matchPaths?: Array<{\n path: string;\n readOnly?: boolean;\n ownerOnly?: boolean;\n fromSource?: Array<{ path: string }>;\n }>;\n action?: 'Allow' | 'Audit' | 'Block'; // Action to take (KubeArmor-specific)\n matchDirectories?: Array<{\n dir: string;\n recursive?: boolean;\n readOnly?: boolean;\n ownerOnly?: boolean;\n fromSource?: Array<{ path: string }>;\n }>;\n matchPatterns?: Array<{\n pattern: string;\n readOnly?: boolean;\n ownerOnly?: boolean;\n }>;\n };\n process?: {\n matchPaths?: Array<{\n path: string;\n ownerOnly?: boolean;\n fromSource?: Array<{ path: string }>;\n }>;\n matchDirectories?: Array<{\n dir: string;\n recursive?: boolean;\n ownerOnly?: boolean;\n fromSource?: Array<{ path: string }>;\n }>;\n matchPatterns?: Array<{\n pattern: string;\n ownerOnly?: boolean;\n }>;\n };\n network?: {\n matchProtocols?: Array<{\n protocol: 'TCP' | 'UDP' | 'ICMP';\n fromSource?: Array<{ path: string }>;\n }>;\n };\n\n failurePolicy?: string;\n settings?: any;\n sideEffects?: string;\n timeoutSeconds?: number;\n };\n\n status?: {\n conditions?: Array<{ type: string; status: string; reason?: string; message?: string }>;\n mode?: string;\n policyStatus?: string;\n };\n}\n","import { Policy } from './kubearmor';\n\nexport const DEFAULT_POLICY: Policy = {\n apiVersion: '', \n kind: '', \n metadata: {\n name: '',\n namespace: ''\n },\n spec: {\n tags: [], \n message: '', \n action: 'Block', \n severity: 1, \n\n selector: {\n matchLabels: {} \n },\n process: {\n matchPaths: [], \n matchDirectories: [], \n matchPatterns: [] \n },\n\n file: {\n action: 'Block', \n matchPaths: [], \n matchDirectories: [], \n matchPatterns: [] \n },\n\n network: {\n matchProtocols: [] \n },\n}\n}\n\n\nexport const ARTIFACTHUB_ENDPOINT = 'artifacthub.io/api/v1';\n\nexport const ARTIFACTHUB_PKG_ANNOTATION = 'artifacthub/pkg';\n\nexport const VALIDATION_KEYS = [\n 'allowed',\n 'host',\n 'kind',\n 'mutated',\n 'name',\n 'namespace',\n 'operation',\n 'policy_id',\n 'response_message',\n 'response_code',\n];\n\n// export const RANCHER_NAMESPACES = [\n// 'calico-system',\n// 'cattle-alerting',\n// 'cattle-fleet-local-system',\n// 'cattle-fleet-system',\n// 'cattle-global-data',\n// 'cattle-global-nt',\n// 'cattle-impersonation-system',\n// 'cattle-istio',\n// 'cattle-logging',\n// 'cattle-pipeline',\n// 'cattle-prometheus',\n// 'cattle-system',\n// 'cert-manager',\n// 'ingress-nginx',\n// 'kube-node-lease',\n// 'kube-public',\n// 'kube-system',\n// 'rancher-operator-system',\n// 'security-scan',\n// 'tigera-operator',\n// ];\n\n// export const RANCHER_NS_MATCH_EXPRESSION: V1LabelSelectorRequirement = {\n// key: 'kubernetes.io/metadata.name',\n// operator: 'NotIn',\n// values: RANCHER_NAMESPACES,\n// };\n\nexport const MODE_MAP = {\n monitor: 'bg-info',\n protect: 'bg-warning',\n};\n\nexport const OPERATION_MAP = {\n '*': 'bg-darker',\n CREATE: 'bg-info',\n UPDATE: 'bg-warning',\n DELETE: 'bg-error',\n CONNECT: 'bg-success',\n};\n\n/* eslint-disable no-unused-vars */\nexport enum VALUES_STATE {\n FORM = 'FORM',\n YAML = 'YAML',\n}\n/* eslint-enable no-unused-vars */\n\nexport const YAML_OPTIONS = [\n {\n labelKey: 'catalog.install.section.chartOptions',\n value: VALUES_STATE.FORM,\n },\n {\n labelKey: 'catalog.install.section.valuesYaml',\n value: VALUES_STATE.YAML,\n }\n];\n","\nimport { Links } from './core';\n\nexport const POLICY_REPORTER_PRODUCT = 'policy-reporter';\nexport const POLICY_REPORTER_RESOURCE = 'PolicyReporter';\nexport const POLICY_REPORTER_CHART = 'policy-reporter';\n\nexport const POLICY_REPORTER_REPO = 'https://kyverno.github.io/policy-reporter';\n\nexport interface Resource {\n apiVersion: string;\n fieldPath?: string;\n kind: string;\n name: string;\n namespace?: string;\n resourceVersion: string;\n uid: string;\n}\n\n/* eslint-disable no-unused-vars */\nexport enum Severity {\n INFO = 'info',\n LOW = 'low',\n MEDIUM = 'medium',\n HIGH = 'high',\n CRITICAL = 'critical',\n}\n\nexport enum Result {\n SKIP = 'skip',\n PASS = 'pass',\n WARN = 'warn',\n FAIL = 'fail',\n ERROR = 'error'\n}\n/* eslint-enable no-unused-vars */\n\nexport interface PolicyReportSummary {\n pass?: number;\n fail?: number;\n warn?: number;\n error?: number;\n skip?: number;\n}\n\nexport interface PolicyReportResult {\n category?: string;\n message?: string;\n policy: string;\n policyName?: string;\n properties?: {[key: string]: string};\n resourceSelector?: {\n matchExpressions?: {\n key: string;\n operator: string;\n values?: string[];\n };\n matchLabels?: {[key: string]: string};\n };\n resources?: Resource[];\n result?: Result;\n rule?: string;\n scope?: {\n apiVersion: string;\n kind: string;\n name: string;\n namespace?: string;\n uid?: string;\n },\n scored?: boolean;\n severity?: Severity;\n source?: string;\n timestamp?: {\n nanos: number;\n seconds: number;\n }\n}\n","export type ResourceField = {\n type: string,\n nullable: boolean,\n create: boolean,\n required?: boolean,\n update: boolean,\n description: string\n}\n\nexport type AttributeColumn = {\n name: string,\n type: string,\n format: string,\n description: string,\n priority: number,\n field: string\n}\n\nexport type Schema = {\n id: string,\n type: string,\n links: {\n collection?: string,\n self: string,\n },\n description: string,\n pluralName?: string,\n resourceMethods?: string[],\n resourceFields?: {\n apiVersion: ResourceField,\n kind: ResourceField,\n metadata: ResourceField,\n spec: ResourceField,\n status: ResourceField\n },\n collectionMethods?: string[],\n attributes?: {\n columns: AttributeColumn[],\n group: string,\n kind: string,\n namespaced?: boolean,\n resource?: string,\n verbs: string[],\n version: string,\n },\n _id: string,\n _group: string,\n}\n\nexport const PROJECT = { APP: 'project.cattle.io.app' };","export const KA_PRODUCT_NAME = \"kubearmor\";\nexport const KA_NAME = \"kubearmor\";\nexport * from './types/artifacthub';\nexport * from './types/core';\nexport * from './types/catalog.cattle.io.app';\nexport * from './types/chart';\nexport * from './types/kubearmor';\nexport * from './types/jaeger';\nexport * from './types/metrics';\nexport * from './types/policy';\nexport * from './types/policy-reporter';\nexport * from './types/rancher';\nexport * from './types/service';\nexport * from './types/wgpolicyk8s.io';","import { validateChars } from './index';\n\nexport function validateKubernetesName(label, displayKey, getters, opts, errors = []) {\n opts = opts || {};\n\n const {\n invalidChars,\n forHostname = false,\n errorKey = (forHostname ? 'hostname' : 'label'),\n maxLength = 63,\n minLength = 1,\n validChars = 'A-Za-z0-9-',\n } = opts;\n\n // Label must consist of a-z, 0-9 and hyphen\n validateChars(label, { validChars, invalidChars }, displayKey, getters, errors);\n\n // Label cannot begin with a hyphen\n if ( label.slice(0, 1) === '-' ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.startHyphen`, { key: displayKey }));\n }\n\n // Label cannot end with a hyphen\n if ( label.slice(-1) === '-' ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.endHyphen`, { key: displayKey }));\n }\n\n // Label must be 1-63 characters\n const min = minLength;\n const max = maxLength;\n\n if ( label.length < min ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.emptyLabel`, { key: displayKey, min }));\n } else if ( label.length > max ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.tooLongLabel`, { key: displayKey, max }));\n }\n\n return errors;\n}\n","import isEmpty from 'lodash/isEmpty';\nimport uniq from 'lodash/uniq';\nimport { get } from '@shell/utils/object';\nimport { camelToTitle } from '@shell/utils/string';\nimport { validateKubernetesName } from './kubernetes-name';\n\nexport function displayKeyFor(type, key, getters) {\n const intlPrefix = `model.${ type }.${ key }`;\n const intlPrefixLabel = `${ intlPrefix }.label`;\n\n if ( getters['i18n/exists'](`${ intlPrefix }.label`) ) {\n return getters['i18n/t'](intlPrefixLabel);\n }\n\n if ( getters['i18n/exists'](intlPrefix) ) {\n return getters['i18n/t'](intlPrefix);\n }\n\n if ( key.match(/.Id$/) ) {\n return camelToTitle(key.replace(/Id$/, ''));\n }\n\n return camelToTitle(key);\n}\n\nexport function validateLength(val, field, displayKey, getters, errors = []) {\n const {\n nullable,\n required,\n type = '',\n minLength,\n maxLength,\n min: fieldMin,\n max: fieldMax,\n } = field;\n const len = val ? get(val, 'length') : 0;\n\n if ( !nullable && required) {\n if ((typeof val === 'object' && isEmpty(val)) || (!val && val !== 0)) {\n errors.push(getters['i18n/t']('validation.required', { key: displayKey }));\n\n return errors;\n }\n }\n\n if ( val === null ) {\n return errors;\n }\n\n const lengthKey = (type.indexOf('array[') === 0 ? 'arrayLength' : 'stringLength');\n\n // String and array length:\n let min = minLength;\n let max = maxLength;\n\n if ( min && max ) {\n if ( (len < min) || (len > max) ) {\n if ( min === max ) {\n errors.push(getters['i18n/t'](`validation.${ lengthKey }.exactly`, { key: displayKey, count: min }));\n } else {\n errors.push(getters['i18n/t'](`validation.${ lengthKey }.between`, {\n key: displayKey, min, max\n }));\n }\n }\n } else if ( min && (len < min) ) {\n errors.push(getters['i18n/t'](`validation.${ lengthKey }.min`, { key: displayKey, count: min }));\n } else if ( max && (len > max) ) {\n errors.push(getters['i18n/t'](`validation.${ lengthKey }.max`, { key: displayKey, count: max }));\n }\n\n // Number min/max\n min = fieldMin;\n max = fieldMax;\n\n if ( val !== null && min && max ) {\n if ( (val < min) || (val > max) ) {\n if ( min === max ) {\n errors.push(getters['i18n/t']('validation.number.exactly', { key: displayKey, val: max }));\n } else {\n errors.push(getters['i18n/t']('validation.number.between', {\n key: displayKey, min, max\n }));\n }\n }\n } else if ( min && (val < min) ) {\n errors.push(getters['i18n/t']('validation.number.min', { key: displayKey, val: min }));\n } else if ( max && (val > max) ) {\n errors.push(getters['i18n/t']('validation.number.max', { key: displayKey, val: max }));\n }\n\n return errors;\n}\n\nexport function validateChars(val, field, displayKey, getters, errors = []) {\n const {\n validChars,\n invalidChars\n } = field;\n const test = [];\n\n if ( validChars ) {\n test.push(`[^${ field.validChars }]`);\n }\n\n if ( invalidChars ) {\n test.push(`[${ field.invalidChars }]`);\n }\n\n if ( test.length ) {\n const regex = new RegExp(`(${ test.join('|') })`, 'g');\n let match = val.match(regex);\n\n if ( match ) {\n match = uniq(match).map((chr) => {\n if ( chr === ' ' ) {\n return '[space]';\n } else {\n return chr;\n }\n });\n\n errors.push(getters['i18n/t']('validation.chars', {\n key: displayKey, count: match.length, chars: match.join(' ')\n }));\n }\n }\n\n return errors;\n}\n\nexport function validateHostname(val, displayKey, getters, opts, errors = []) {\n opts = opts || {};\n\n const {\n max = 253,\n restricted = false,\n } = opts;\n\n // Hostname can not start with a dot\n if (val.slice(0, 1) === '.') {\n errors.push(getters['i18n/t']('validation.dns.hostname.startDot', { key: displayKey }));\n }\n\n // Hostname can not end with a dot in restricted mode\n if ( restricted && val.length > 1 && val.slice(-1) === '.' ) {\n errors.push(getters['i18n/t']('validation.dns.hostname.endDot', { key: displayKey }));\n }\n\n // Hostname can not be empty string\n if (val.length === 0) {\n errors.push(getters['i18n/t']('validation.dns.hostname.empty', { key: displayKey }));\n }\n\n // Total length of the hostname can be at most 253 characters\n // (255 minus one for null-termination, and one for the trailing dot of a real FQDN)\n if (val.length > max) {\n errors.push(getters['i18n/t']('validation.dns.hostname.tooLong', { key: displayKey, max }));\n }\n\n // Split the hostname with the dot and validate the element as label\n const labels = val.split(/\\./);\n let label;\n\n for ( let i = 0 ; i < labels.length ; i++ ) {\n label = labels[i];\n\n // Already checked if Hostname starts with a dot\n if ( i === 0 && label === '' ) {\n continue;\n }\n\n // Hostname can end with a dot (this makes it an explicitly fully qualified domain name)\n // so the last element of the labels can be empty string.\n if (i === labels.length - 1 && label === '') {\n continue;\n }\n\n validateDnsLabel(label, displayKey, getters, { forHostname: true }, errors);\n }\n\n return errors;\n}\n\nexport function validateDnsLabel(label, displayKey, getters, opts, errors = []) {\n opts = opts || {};\n\n const {\n forHostname = false,\n errorKey = (forHostname ? 'hostname' : 'label'),\n ianaServiceName = false,\n restricted = false,\n } = opts;\n\n validateKubernetesName(label, displayKey, getters, opts, errors);\n\n // Restricted labels cannot begin with a number\n if ( restricted && label.slice(0, 1).match(/[0-9]/) ) {\n errors.push(getters['i18n/t'](`validation.dns.${ errorKey }.startNumber`, { key: displayKey }));\n }\n\n // Label cannot contain two consecutive hyphens at the 3rd & 4th characters, unless an IDN string\n // If is of type ianaServiceName can not contain two consecutive hyphens in any position\n if (\n ( label.substr(2, 2) === '--' && label.substr(0, 2) !== 'xn' ) ||\n ( ianaServiceName && label.includes('--') )\n ) {\n errors.push(getters['i18n/t'](`validation.dns.doubleHyphen`, { key: displayKey }));\n }\n\n return errors;\n}\n\nexport function validateDnsLikeTypes(val, type, displayKey, getters, opts, errors = []) {\n switch (type) {\n case 'dnsLabel':\n validateDnsLabel(val, displayKey, getters, { restricted: false }, errors);\n break;\n case 'dnsLabelRestricted':\n validateDnsLabel(val, displayKey, getters, { restricted: true }, errors);\n break;\n case 'hostname':\n validateHostname(val, displayKey, getters, { restricted: false }, errors);\n break;\n default:\n break;\n }\n\n return errors;\n}\n\nexport function validateBoolean(val, field, displayKey, getters, errors = []) {\n const { required } = field;\n\n if (required && !val && val !== false) {\n errors.push(getters['i18n/t']('validation.required', { key: displayKey }));\n\n return;\n }\n if (typeof val !== 'boolean' && !!val) {\n errors.push(getters['i18n/t']('validation.boolean', { key: displayKey }));\n }\n}\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f1718c5e&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f1718c5e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f1718c5e\",\n null\n \n)\n\nexport default component.exports","/*\nLanguage: Handlebars\nRequires: xml.js\nAuthor: Robin Ward \nDescription: Matcher for Handlebars as well as EmberJS additions.\nWebsite: https://handlebarsjs.com\nCategory: template\n*/\n\nfunction handlebars(hljs) {\n const regex = hljs.regex;\n const BUILT_INS = {\n $pattern: /[\\w.\\/]+/,\n built_in: [\n 'action',\n 'bindattr',\n 'collection',\n 'component',\n 'concat',\n 'debugger',\n 'each',\n 'each-in',\n 'get',\n 'hash',\n 'if',\n 'in',\n 'input',\n 'link-to',\n 'loc',\n 'log',\n 'lookup',\n 'mut',\n 'outlet',\n 'partial',\n 'query-params',\n 'render',\n 'template',\n 'textarea',\n 'unbound',\n 'unless',\n 'view',\n 'with',\n 'yield'\n ]\n };\n\n const LITERALS = {\n $pattern: /[\\w.\\/]+/,\n literal: [\n 'true',\n 'false',\n 'undefined',\n 'null'\n ]\n };\n\n // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments\n // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths\n // like a/b, ./abc/cde, and abc.bcd\n\n const DOUBLE_QUOTED_ID_REGEX = /\"\"|\"[^\"]+\"/;\n const SINGLE_QUOTED_ID_REGEX = /''|'[^']+'/;\n const BRACKET_QUOTED_ID_REGEX = /\\[\\]|\\[[^\\]]+\\]/;\n const PLAIN_ID_REGEX = /[^\\s!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]+/;\n const PATH_DELIMITER_REGEX = /(\\.|\\/)/;\n const ANY_ID = regex.either(\n DOUBLE_QUOTED_ID_REGEX,\n SINGLE_QUOTED_ID_REGEX,\n BRACKET_QUOTED_ID_REGEX,\n PLAIN_ID_REGEX\n );\n\n const IDENTIFIER_REGEX = regex.concat(\n regex.optional(/\\.|\\.\\/|\\//), // relative or absolute path\n ANY_ID,\n regex.anyNumberOfTimes(regex.concat(\n PATH_DELIMITER_REGEX,\n ANY_ID\n ))\n );\n\n // identifier followed by a equal-sign (without the equal sign)\n const HASH_PARAM_REGEX = regex.concat(\n '(',\n BRACKET_QUOTED_ID_REGEX, '|',\n PLAIN_ID_REGEX,\n ')(?==)'\n );\n\n const HELPER_NAME_OR_PATH_EXPRESSION = { begin: IDENTIFIER_REGEX };\n\n const HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, { keywords: LITERALS });\n\n const SUB_EXPRESSION = {\n begin: /\\(/,\n end: /\\)/\n // the \"contains\" is added below when all necessary sub-modes are defined\n };\n\n const HASH = {\n // fka \"attribute-assignment\", parameters of the form 'key=value'\n className: 'attr',\n begin: HASH_PARAM_REGEX,\n relevance: 0,\n starts: {\n begin: /=/,\n end: /=/,\n starts: { contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ] }\n }\n };\n\n const BLOCK_PARAMS = {\n // parameters of the form '{{#with x as | y |}}...{{/with}}'\n begin: /as\\s+\\|/,\n keywords: { keyword: 'as' },\n end: /\\|/,\n contains: [\n {\n // define sub-mode in order to prevent highlighting of block-parameter named \"as\"\n begin: /\\w+/ }\n ]\n };\n\n const HELPER_PARAMETERS = {\n contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n BLOCK_PARAMS,\n HASH,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ],\n returnEnd: true\n // the property \"end\" is defined through inheritance when the mode is used. If depends\n // on the surrounding mode, but \"endsWithParent\" does not work here (i.e. it includes the\n // end-token of the surrounding mode)\n };\n\n const SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, { end: /\\)/ })\n });\n\n SUB_EXPRESSION.contains = [ SUB_EXPRESSION_CONTENTS ];\n\n const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name',\n starts: hljs.inherit(HELPER_PARAMETERS, { end: /\\}\\}/ })\n });\n\n const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name'\n });\n\n const BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, { end: /\\}\\}/ })\n });\n\n const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {\n begin: /\\\\\\{\\{/,\n skip: true\n };\n const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {\n begin: /\\\\\\\\(?=\\{\\{)/,\n skip: true\n };\n\n return {\n name: 'Handlebars',\n aliases: [\n 'hbs',\n 'html.hbs',\n 'html.handlebars',\n 'htmlbars'\n ],\n case_insensitive: true,\n subLanguage: 'xml',\n contains: [\n ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,\n PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,\n hljs.COMMENT(/\\{\\{!--/, /--\\}\\}/),\n hljs.COMMENT(/\\{\\{!/, /\\}\\}/),\n {\n // open raw block \"{{{{raw}}}} content not evaluated {{{{/raw}}}}\"\n className: 'template-tag',\n begin: /\\{\\{\\{\\{(?!\\/)/,\n end: /\\}\\}\\}\\}/,\n contains: [ OPENING_BLOCK_MUSTACHE_CONTENTS ],\n starts: {\n end: /\\{\\{\\{\\{\\//,\n returnEnd: true,\n subLanguage: 'xml'\n }\n },\n {\n // close raw block\n className: 'template-tag',\n begin: /\\{\\{\\{\\{\\//,\n end: /\\}\\}\\}\\}/,\n contains: [ CLOSING_BLOCK_MUSTACHE_CONTENTS ]\n },\n {\n // open block statement\n className: 'template-tag',\n begin: /\\{\\{#/,\n end: /\\}\\}/,\n contains: [ OPENING_BLOCK_MUSTACHE_CONTENTS ]\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else\\}\\})/,\n end: /\\}\\}/,\n keywords: 'else'\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else if)/,\n end: /\\}\\}/,\n keywords: 'else if'\n },\n {\n // closing block statement\n className: 'template-tag',\n begin: /\\{\\{\\//,\n end: /\\}\\}/,\n contains: [ CLOSING_BLOCK_MUSTACHE_CONTENTS ]\n },\n {\n // template variable or helper-call that is NOT html-escaped\n className: 'template-variable',\n begin: /\\{\\{\\{/,\n end: /\\}\\}\\}/,\n contains: [ BASIC_MUSTACHE_CONTENTS ]\n },\n {\n // template variable or helper-call that is html-escaped\n className: 'template-variable',\n begin: /\\{\\{/,\n end: /\\}\\}/,\n contains: [ BASIC_MUSTACHE_CONTENTS ]\n }\n ]\n };\n}\n\nmodule.exports = handlebars;\n","/*\nLanguage: Scala\nCategory: functional\nAuthor: Jan Berkel \nContributors: Erik Osheim \nWebsite: https://www.scala-lang.org\n*/\n\nfunction scala(hljs) {\n const regex = hljs.regex;\n const ANNOTATION = {\n className: 'meta',\n begin: '@[A-Za-z]+'\n };\n\n // used in strings for escaping/interpolation/substitution\n const SUBST = {\n className: 'subst',\n variants: [\n { begin: '\\\\$[A-Za-z0-9_]+' },\n {\n begin: /\\$\\{/,\n end: /\\}/\n }\n ]\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n {\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '[a-z]+\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n },\n {\n className: 'string',\n begin: '[a-z]+\"\"\"',\n end: '\"\"\"',\n contains: [ SUBST ],\n relevance: 10\n }\n ]\n\n };\n\n const TYPE = {\n className: 'type',\n begin: '\\\\b[A-Z][A-Za-z0-9_]*',\n relevance: 0\n };\n\n const NAME = {\n className: 'title',\n begin: /[^0-9\\n\\t \"'(),.`{}\\[\\]:;][^\\n\\t \"'(),.`{}\\[\\]:;]+|[^0-9\\n\\t \"'(),.`{}\\[\\]:;=]/,\n relevance: 0\n };\n\n const CLASS = {\n className: 'class',\n beginKeywords: 'class object trait type',\n end: /[:={\\[\\n;]/,\n excludeEnd: true,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n beginKeywords: 'extends with',\n relevance: 10\n },\n {\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n contains: [ TYPE ]\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n contains: [ TYPE ]\n },\n NAME\n ]\n };\n\n const METHOD = {\n className: 'function',\n beginKeywords: 'def',\n end: regex.lookahead(/[:={\\[(\\n;]/),\n contains: [ NAME ]\n };\n\n const EXTENSION = {\n begin: [\n /^\\s*/, // Is first token on the line\n 'extension',\n /\\s+(?=[[(])/, // followed by at least one space and `[` or `(`\n ],\n beginScope: { 2: \"keyword\", }\n };\n\n const END = {\n begin: [\n /^\\s*/, // Is first token on the line\n /end/,\n /\\s+/,\n /(extension\\b)?/, // `extension` is the only marker that follows an `end` that cannot be captured by another rule.\n ],\n beginScope: {\n 2: \"keyword\",\n 4: \"keyword\",\n }\n };\n\n // TODO: use negative look-behind in future\n // /(?\nCategory: lisp\n*/\n\nfunction lisp(hljs) {\n const LISP_IDENT_RE = '[a-zA-Z_\\\\-+\\\\*\\\\/<=>&#][a-zA-Z0-9_\\\\-+*\\\\/<=>&#!]*';\n const MEC_RE = '\\\\|[^]*?\\\\|';\n const LISP_SIMPLE_NUMBER_RE = '(-|\\\\+)?\\\\d+(\\\\.\\\\d+|\\\\/\\\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\\\+|-)?\\\\d+)?';\n const LITERAL = {\n className: 'literal',\n begin: '\\\\b(t{1}|nil)\\\\b'\n };\n const NUMBER = {\n className: 'number',\n variants: [\n {\n begin: LISP_SIMPLE_NUMBER_RE,\n relevance: 0\n },\n { begin: '#(b|B)[0-1]+(/[0-1]+)?' },\n { begin: '#(o|O)[0-7]+(/[0-7]+)?' },\n { begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?' },\n {\n begin: '#(c|C)\\\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE,\n end: '\\\\)'\n }\n ]\n };\n const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, { illegal: null });\n const COMMENT = hljs.COMMENT(\n ';', '$',\n { relevance: 0 }\n );\n const VARIABLE = {\n begin: '\\\\*',\n end: '\\\\*'\n };\n const KEYWORD = {\n className: 'symbol',\n begin: '[:&]' + LISP_IDENT_RE\n };\n const IDENT = {\n begin: LISP_IDENT_RE,\n relevance: 0\n };\n const MEC = { begin: MEC_RE };\n const QUOTED_LIST = {\n begin: '\\\\(',\n end: '\\\\)',\n contains: [\n 'self',\n LITERAL,\n STRING,\n NUMBER,\n IDENT\n ]\n };\n const QUOTED = {\n contains: [\n NUMBER,\n STRING,\n VARIABLE,\n KEYWORD,\n QUOTED_LIST,\n IDENT\n ],\n variants: [\n {\n begin: '[\\'`]\\\\(',\n end: '\\\\)'\n },\n {\n begin: '\\\\(quote ',\n end: '\\\\)',\n keywords: { name: 'quote' }\n },\n { begin: '\\'' + MEC_RE }\n ]\n };\n const QUOTED_ATOM = { variants: [\n { begin: '\\'' + LISP_IDENT_RE },\n { begin: '#\\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*' }\n ] };\n const LIST = {\n begin: '\\\\(\\\\s*',\n end: '\\\\)'\n };\n const BODY = {\n endsWithParent: true,\n relevance: 0\n };\n LIST.contains = [\n {\n className: 'name',\n variants: [\n {\n begin: LISP_IDENT_RE,\n relevance: 0,\n },\n { begin: MEC_RE }\n ]\n },\n BODY\n ];\n BODY.contains = [\n QUOTED,\n QUOTED_ATOM,\n LIST,\n LITERAL,\n NUMBER,\n STRING,\n COMMENT,\n VARIABLE,\n KEYWORD,\n MEC,\n IDENT\n ];\n\n return {\n name: 'Lisp',\n illegal: /\\S/,\n contains: [\n NUMBER,\n hljs.SHEBANG(),\n LITERAL,\n STRING,\n COMMENT,\n QUOTED,\n QUOTED_ATOM,\n LIST,\n IDENT\n ]\n };\n}\n\nmodule.exports = lisp;\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"info-box\",class:{'stepped': !!_vm.step}},[(_vm.step)?_c('div',{staticClass:\"step-number mb-10\"},[_c('h2',[_vm._v(\"Step \"+_vm._s(_vm.step))])]):_vm._e(),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InfoBox.vue?vue&type=template&id=1c5683df&scoped=true\"\nimport script from \"./InfoBox.vue?vue&type=script&lang=js\"\nexport * from \"./InfoBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./InfoBox.vue?vue&type=style&index=0&id=1c5683df&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c5683df\",\n null\n \n)\n\nexport default component.exports","/*\n Language: SQL\n Website: https://en.wikipedia.org/wiki/SQL\n Category: common, database\n */\n\n/*\n\nGoals:\n\nSQL is intended to highlight basic/common SQL keywords and expressions\n\n- If pretty much every single SQL server includes supports, then it's a canidate.\n- It is NOT intended to include tons of vendor specific keywords (Oracle, MySQL,\n PostgreSQL) although the list of data types is purposely a bit more expansive.\n- For more specific SQL grammars please see:\n - PostgreSQL and PL/pgSQL - core\n - T-SQL - https://github.com/highlightjs/highlightjs-tsql\n - sql_more (core)\n\n */\n\nfunction sql(hljs) {\n const regex = hljs.regex;\n const COMMENT_MODE = hljs.COMMENT('--', '$');\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/,\n contains: [ { begin: /''/ } ]\n }\n ]\n };\n const QUOTED_IDENTIFIER = {\n begin: /\"/,\n end: /\"/,\n contains: [ { begin: /\"\"/ } ]\n };\n\n const LITERALS = [\n \"true\",\n \"false\",\n // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.\n // \"null\",\n \"unknown\"\n ];\n\n const MULTI_WORD_TYPES = [\n \"double precision\",\n \"large object\",\n \"with timezone\",\n \"without timezone\"\n ];\n\n const TYPES = [\n 'bigint',\n 'binary',\n 'blob',\n 'boolean',\n 'char',\n 'character',\n 'clob',\n 'date',\n 'dec',\n 'decfloat',\n 'decimal',\n 'float',\n 'int',\n 'integer',\n 'interval',\n 'nchar',\n 'nclob',\n 'national',\n 'numeric',\n 'real',\n 'row',\n 'smallint',\n 'time',\n 'timestamp',\n 'varchar',\n 'varying', // modifier (character varying)\n 'varbinary'\n ];\n\n const NON_RESERVED_WORDS = [\n \"add\",\n \"asc\",\n \"collation\",\n \"desc\",\n \"final\",\n \"first\",\n \"last\",\n \"view\"\n ];\n\n // https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#reserved-word\n const RESERVED_WORDS = [\n \"abs\",\n \"acos\",\n \"all\",\n \"allocate\",\n \"alter\",\n \"and\",\n \"any\",\n \"are\",\n \"array\",\n \"array_agg\",\n \"array_max_cardinality\",\n \"as\",\n \"asensitive\",\n \"asin\",\n \"asymmetric\",\n \"at\",\n \"atan\",\n \"atomic\",\n \"authorization\",\n \"avg\",\n \"begin\",\n \"begin_frame\",\n \"begin_partition\",\n \"between\",\n \"bigint\",\n \"binary\",\n \"blob\",\n \"boolean\",\n \"both\",\n \"by\",\n \"call\",\n \"called\",\n \"cardinality\",\n \"cascaded\",\n \"case\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"char\",\n \"char_length\",\n \"character\",\n \"character_length\",\n \"check\",\n \"classifier\",\n \"clob\",\n \"close\",\n \"coalesce\",\n \"collate\",\n \"collect\",\n \"column\",\n \"commit\",\n \"condition\",\n \"connect\",\n \"constraint\",\n \"contains\",\n \"convert\",\n \"copy\",\n \"corr\",\n \"corresponding\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"create\",\n \"cross\",\n \"cube\",\n \"cume_dist\",\n \"current\",\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_row\",\n \"current_schema\",\n \"current_time\",\n \"current_timestamp\",\n \"current_path\",\n \"current_role\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"cursor\",\n \"cycle\",\n \"date\",\n \"day\",\n \"deallocate\",\n \"dec\",\n \"decimal\",\n \"decfloat\",\n \"declare\",\n \"default\",\n \"define\",\n \"delete\",\n \"dense_rank\",\n \"deref\",\n \"describe\",\n \"deterministic\",\n \"disconnect\",\n \"distinct\",\n \"double\",\n \"drop\",\n \"dynamic\",\n \"each\",\n \"element\",\n \"else\",\n \"empty\",\n \"end\",\n \"end_frame\",\n \"end_partition\",\n \"end-exec\",\n \"equals\",\n \"escape\",\n \"every\",\n \"except\",\n \"exec\",\n \"execute\",\n \"exists\",\n \"exp\",\n \"external\",\n \"extract\",\n \"false\",\n \"fetch\",\n \"filter\",\n \"first_value\",\n \"float\",\n \"floor\",\n \"for\",\n \"foreign\",\n \"frame_row\",\n \"free\",\n \"from\",\n \"full\",\n \"function\",\n \"fusion\",\n \"get\",\n \"global\",\n \"grant\",\n \"group\",\n \"grouping\",\n \"groups\",\n \"having\",\n \"hold\",\n \"hour\",\n \"identity\",\n \"in\",\n \"indicator\",\n \"initial\",\n \"inner\",\n \"inout\",\n \"insensitive\",\n \"insert\",\n \"int\",\n \"integer\",\n \"intersect\",\n \"intersection\",\n \"interval\",\n \"into\",\n \"is\",\n \"join\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"language\",\n \"large\",\n \"last_value\",\n \"lateral\",\n \"lead\",\n \"leading\",\n \"left\",\n \"like\",\n \"like_regex\",\n \"listagg\",\n \"ln\",\n \"local\",\n \"localtime\",\n \"localtimestamp\",\n \"log\",\n \"log10\",\n \"lower\",\n \"match\",\n \"match_number\",\n \"match_recognize\",\n \"matches\",\n \"max\",\n \"member\",\n \"merge\",\n \"method\",\n \"min\",\n \"minute\",\n \"mod\",\n \"modifies\",\n \"module\",\n \"month\",\n \"multiset\",\n \"national\",\n \"natural\",\n \"nchar\",\n \"nclob\",\n \"new\",\n \"no\",\n \"none\",\n \"normalize\",\n \"not\",\n \"nth_value\",\n \"ntile\",\n \"null\",\n \"nullif\",\n \"numeric\",\n \"octet_length\",\n \"occurrences_regex\",\n \"of\",\n \"offset\",\n \"old\",\n \"omit\",\n \"on\",\n \"one\",\n \"only\",\n \"open\",\n \"or\",\n \"order\",\n \"out\",\n \"outer\",\n \"over\",\n \"overlaps\",\n \"overlay\",\n \"parameter\",\n \"partition\",\n \"pattern\",\n \"per\",\n \"percent\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"period\",\n \"portion\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"precedes\",\n \"precision\",\n \"prepare\",\n \"primary\",\n \"procedure\",\n \"ptf\",\n \"range\",\n \"rank\",\n \"reads\",\n \"real\",\n \"recursive\",\n \"ref\",\n \"references\",\n \"referencing\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"release\",\n \"result\",\n \"return\",\n \"returns\",\n \"revoke\",\n \"right\",\n \"rollback\",\n \"rollup\",\n \"row\",\n \"row_number\",\n \"rows\",\n \"running\",\n \"savepoint\",\n \"scope\",\n \"scroll\",\n \"search\",\n \"second\",\n \"seek\",\n \"select\",\n \"sensitive\",\n \"session_user\",\n \"set\",\n \"show\",\n \"similar\",\n \"sin\",\n \"sinh\",\n \"skip\",\n \"smallint\",\n \"some\",\n \"specific\",\n \"specifictype\",\n \"sql\",\n \"sqlexception\",\n \"sqlstate\",\n \"sqlwarning\",\n \"sqrt\",\n \"start\",\n \"static\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"submultiset\",\n \"subset\",\n \"substring\",\n \"substring_regex\",\n \"succeeds\",\n \"sum\",\n \"symmetric\",\n \"system\",\n \"system_time\",\n \"system_user\",\n \"table\",\n \"tablesample\",\n \"tan\",\n \"tanh\",\n \"then\",\n \"time\",\n \"timestamp\",\n \"timezone_hour\",\n \"timezone_minute\",\n \"to\",\n \"trailing\",\n \"translate\",\n \"translate_regex\",\n \"translation\",\n \"treat\",\n \"trigger\",\n \"trim\",\n \"trim_array\",\n \"true\",\n \"truncate\",\n \"uescape\",\n \"union\",\n \"unique\",\n \"unknown\",\n \"unnest\",\n \"update\",\n \"upper\",\n \"user\",\n \"using\",\n \"value\",\n \"values\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"varbinary\",\n \"varchar\",\n \"varying\",\n \"versioning\",\n \"when\",\n \"whenever\",\n \"where\",\n \"width_bucket\",\n \"window\",\n \"with\",\n \"within\",\n \"without\",\n \"year\",\n ];\n\n // these are reserved words we have identified to be functions\n // and should only be highlighted in a dispatch-like context\n // ie, array_agg(...), etc.\n const RESERVED_FUNCTIONS = [\n \"abs\",\n \"acos\",\n \"array_agg\",\n \"asin\",\n \"atan\",\n \"avg\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"coalesce\",\n \"corr\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"cume_dist\",\n \"dense_rank\",\n \"deref\",\n \"element\",\n \"exp\",\n \"extract\",\n \"first_value\",\n \"floor\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"last_value\",\n \"lead\",\n \"listagg\",\n \"ln\",\n \"log\",\n \"log10\",\n \"lower\",\n \"max\",\n \"min\",\n \"mod\",\n \"nth_value\",\n \"ntile\",\n \"nullif\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"rank\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"row_number\",\n \"sin\",\n \"sinh\",\n \"sqrt\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"substring\",\n \"substring_regex\",\n \"sum\",\n \"tan\",\n \"tanh\",\n \"translate\",\n \"translate_regex\",\n \"treat\",\n \"trim\",\n \"trim_array\",\n \"unnest\",\n \"upper\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"width_bucket\",\n ];\n\n // these functions can\n const POSSIBLE_WITHOUT_PARENS = [\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_schema\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"session_user\",\n \"system_time\",\n \"system_user\",\n \"current_time\",\n \"localtime\",\n \"current_timestamp\",\n \"localtimestamp\"\n ];\n\n // those exist to boost relevance making these very\n // \"SQL like\" keyword combos worth +1 extra relevance\n const COMBOS = [\n \"create table\",\n \"insert into\",\n \"primary key\",\n \"foreign key\",\n \"not null\",\n \"alter table\",\n \"add constraint\",\n \"grouping sets\",\n \"on overflow\",\n \"character set\",\n \"respect nulls\",\n \"ignore nulls\",\n \"nulls first\",\n \"nulls last\",\n \"depth first\",\n \"breadth first\"\n ];\n\n const FUNCTIONS = RESERVED_FUNCTIONS;\n\n const KEYWORDS = [\n ...RESERVED_WORDS,\n ...NON_RESERVED_WORDS\n ].filter((keyword) => {\n return !RESERVED_FUNCTIONS.includes(keyword);\n });\n\n const VARIABLE = {\n className: \"variable\",\n begin: /@[a-z0-9]+/,\n };\n\n const OPERATOR = {\n className: \"operator\",\n begin: /[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,\n relevance: 0,\n };\n\n const FUNCTION_CALL = {\n begin: regex.concat(/\\b/, regex.either(...FUNCTIONS), /\\s*\\(/),\n relevance: 0,\n keywords: { built_in: FUNCTIONS }\n };\n\n // keywords with less than 3 letters are reduced in relevancy\n function reduceRelevancy(list, {\n exceptions, when\n } = {}) {\n const qualifyFn = when;\n exceptions = exceptions || [];\n return list.map((item) => {\n if (item.match(/\\|\\d+$/) || exceptions.includes(item)) {\n return item;\n } else if (qualifyFn(item)) {\n return `${item}|0`;\n } else {\n return item;\n }\n });\n }\n\n return {\n name: 'SQL',\n case_insensitive: true,\n // does not include {} or HTML tags ` x.length < 3 }),\n literal: LITERALS,\n type: TYPES,\n built_in: POSSIBLE_WITHOUT_PARENS\n },\n contains: [\n {\n begin: regex.either(...COMBOS),\n relevance: 0,\n keywords: {\n $pattern: /[\\w\\.]+/,\n keyword: KEYWORDS.concat(COMBOS),\n literal: LITERALS,\n type: TYPES\n },\n },\n {\n className: \"type\",\n begin: regex.either(...MULTI_WORD_TYPES)\n },\n FUNCTION_CALL,\n VARIABLE,\n STRING,\n QUOTED_IDENTIFIER,\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n OPERATOR\n ]\n };\n}\n\nmodule.exports = sql;\n","/*\nLanguage: Plain text\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nDescription: Plain text without any highlighting.\nCategory: common\n*/\n\nfunction plaintext(hljs) {\n return {\n name: 'Plain text',\n aliases: [\n 'text',\n 'txt'\n ],\n disableAutodetect: true\n };\n}\n\nmodule.exports = plaintext;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","/*\nLanguage: Nginx config\nAuthor: Peter Leonov \nContributors: Ivan Sagalaev \nCategory: config, web\nWebsite: https://www.nginx.com\n*/\n\n/** @type LanguageFn */\nfunction nginx(hljs) {\n const regex = hljs.regex;\n const VAR = {\n className: 'variable',\n variants: [\n { begin: /\\$\\d+/ },\n { begin: /\\$\\{\\w+\\}/ },\n { begin: regex.concat(/[$@]/, hljs.UNDERSCORE_IDENT_RE) }\n ]\n };\n const LITERALS = [\n \"on\",\n \"off\",\n \"yes\",\n \"no\",\n \"true\",\n \"false\",\n \"none\",\n \"blocked\",\n \"debug\",\n \"info\",\n \"notice\",\n \"warn\",\n \"error\",\n \"crit\",\n \"select\",\n \"break\",\n \"last\",\n \"permanent\",\n \"redirect\",\n \"kqueue\",\n \"rtsig\",\n \"epoll\",\n \"poll\",\n \"/dev/poll\"\n ];\n const DEFAULT = {\n endsWithParent: true,\n keywords: {\n $pattern: /[a-z_]{2,}|\\/dev\\/poll/,\n literal: LITERALS\n },\n relevance: 0,\n illegal: '=>',\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR\n ],\n variants: [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /'/,\n end: /'/\n }\n ]\n },\n // this swallows entire URLs to avoid detecting numbers within\n {\n begin: '([a-z]+):/',\n end: '\\\\s',\n endsWithParent: true,\n excludeEnd: true,\n contains: [ VAR ]\n },\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR\n ],\n variants: [\n {\n begin: \"\\\\s\\\\^\",\n end: \"\\\\s|\\\\{|;\",\n returnEnd: true\n },\n // regexp locations (~, ~*)\n {\n begin: \"~\\\\*?\\\\s+\",\n end: \"\\\\s|\\\\{|;\",\n returnEnd: true\n },\n // *.example.com\n { begin: \"\\\\*(\\\\.[a-z\\\\-]+)+\" },\n // sub.example.*\n { begin: \"([a-z\\\\-]+\\\\.)+\\\\*\" }\n ]\n },\n // IP\n {\n className: 'number',\n begin: '\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b'\n },\n // units\n {\n className: 'number',\n begin: '\\\\b\\\\d+[kKmMgGdshdwy]?\\\\b',\n relevance: 0\n },\n VAR\n ]\n };\n\n return {\n name: 'Nginx config',\n aliases: [ 'nginxconf' ],\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n beginKeywords: \"upstream location\",\n end: /;|\\{/,\n contains: DEFAULT.contains,\n keywords: { section: \"upstream location\" }\n },\n {\n className: 'section',\n begin: regex.concat(hljs.UNDERSCORE_IDENT_RE + regex.lookahead(/\\s+\\{/)),\n relevance: 0\n },\n {\n begin: regex.lookahead(hljs.UNDERSCORE_IDENT_RE + '\\\\s'),\n end: ';|\\\\{',\n contains: [\n {\n className: 'attribute',\n begin: hljs.UNDERSCORE_IDENT_RE,\n starts: DEFAULT\n }\n ],\n relevance: 0\n }\n ],\n illegal: '[^\\\\s\\\\}\\\\{]'\n };\n}\n\nmodule.exports = nginx;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".tabs[data-v-f1718c5e]{list-style-type:none;margin:0;padding:0}.tabs.horizontal[data-v-f1718c5e]{border:solid thin var(--border);border-bottom:0;display:flex;flex-direction:row}.tabs.horizontal+.tab-container[data-v-f1718c5e]{border:solid thin var(--border)}.tabs.horizontal .tab.active[data-v-f1718c5e]{border-bottom:solid 2px var(--primary)}.tabs[data-v-f1718c5e]:focus{outline:none}.tabs:focus .tab.active a span[data-v-f1718c5e]{text-decoration:underline}.tabs .tab[data-v-f1718c5e]{position:relative;float:left;padding:0 8px 0 0;cursor:pointer}.tabs .tab A[data-v-f1718c5e]{display:flex;align-items:center;padding:10px 15px}.tabs .tab A[data-v-f1718c5e]:hover{text-decoration:none}.tabs .tab A:hover span[data-v-f1718c5e]{text-decoration:underline}.tabs .tab .conditions-alert-icon[data-v-f1718c5e]{color:var(--error);padding-left:4px}.tabs .tab[data-v-f1718c5e]:last-child{padding-right:0}.tabs .tab.active>A[data-v-f1718c5e]{color:var(--primary);text-decoration:none}.tabs .tab.error A>i[data-v-f1718c5e]{color:var(--error)}.tabs .tab .tab-badge[data-v-f1718c5e]{margin-left:5px;background-color:var(--link);color:#fff;border-radius:6px;padding:1px 7px;font-size:11px}.tab-container[data-v-f1718c5e]{padding:20px}.tab-container.no-content[data-v-f1718c5e]{padding:0 0 3px 0}.tab-container--flat[data-v-f1718c5e]{padding:0}.tab-container--flat .side-tabs[data-v-f1718c5e]{box-shadow:unset}.tabs-only[data-v-f1718c5e]{margin-bottom:20px}.tabs-only .tab-container[data-v-f1718c5e]{display:none}.tabs-only .tabs[data-v-f1718c5e]{border:0;border-bottom:2px solid var(--border)}.side-tabs[data-v-f1718c5e]{display:flex;box-shadow:0 0 20px var(--shadow);border-radius:calc(var(--border-radius)*2);background-color:var(--tabbed-sidebar-bg)}.side-tabs .tab-container[data-v-f1718c5e]{padding:20px}.side-tabs .tabs[data-v-f1718c5e]{width:200px;min-width:200px;display:flex;flex:1 0;flex-direction:column}.side-tabs .tabs .tab[data-v-f1718c5e]{width:100%;border-left:5px solid transparent}.side-tabs .tabs .tab.toggle A[data-v-f1718c5e],.side-tabs .tabs .tab A[data-v-f1718c5e]{color:var(--primary)}.side-tabs .tabs .tab.active[data-v-f1718c5e]{background-color:var(--body-bg);border-left:solid 5px var(--primary)}.side-tabs .tabs .tab.active A[data-v-f1718c5e]{color:var(--input-label)}.side-tabs .tabs .tab.disabled[data-v-f1718c5e]{background-color:var(--disabled-bg)}.side-tabs .tabs .tab.disabled A[data-v-f1718c5e]{color:var(--disabled-text);text-decoration:none}.side-tabs .tabs .tab-list-footer[data-v-f1718c5e]{list-style:none;padding:0;margin-top:auto}.side-tabs .tabs .tab-list-footer li[data-v-f1718c5e]{display:flex;flex:1}.side-tabs .tabs .tab-list-footer li .btn[data-v-f1718c5e]{flex:1 1;display:flex;justify-content:center}.side-tabs .tabs .tab-list-footer li button[data-v-f1718c5e]:first-of-type{border-top:solid 1px var(--border);border-right:solid 1px var(--border);border-top-right-radius:0}.side-tabs .tabs .tab-list-footer li button[data-v-f1718c5e]:last-of-type{border-top:solid 1px var(--border);border-top-left-radius:0}.side-tabs .tab-container[data-v-f1718c5e]{width:calc(100% - 200px);flex-grow:1;background-color:var(--body-bg)}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidCron = void 0;\n// This comes from the fact that parseInt trims characters coming\n// after digits and consider it a valid int, so `1*` becomes `1`.\nvar safeParseInt = function (value) {\n if (/^\\d+$/.test(value)) {\n return Number(value);\n }\n else {\n return NaN;\n }\n};\nvar isWildcard = function (value) {\n return value === '*';\n};\nvar isQuestionMark = function (value) {\n return value === '?';\n};\nvar isInRange = function (value, start, stop) {\n return value >= start && value <= stop;\n};\nvar isValidRange = function (value, start, stop) {\n var sides = value.split('-');\n switch (sides.length) {\n case 1:\n return isWildcard(value) || isInRange(safeParseInt(value), start, stop);\n case 2:\n var _a = sides.map(function (side) { return safeParseInt(side); }), small = _a[0], big = _a[1];\n return small <= big && isInRange(small, start, stop) && isInRange(big, start, stop);\n default:\n return false;\n }\n};\nvar isValidStep = function (value) {\n return value === undefined || value.search(/[^\\d]/) === -1;\n};\nvar validateForRange = function (value, start, stop) {\n if (value.search(/[^\\d-,\\/*]/) !== -1) {\n return false;\n }\n var list = value.split(',');\n return list.every(function (condition) {\n var splits = condition.split('/');\n // Prevents `*/ * * * *` from being accepted.\n if (condition.trim().endsWith('/')) {\n return false;\n }\n // Prevents `*/*/* * * * *` from being accepted\n if (splits.length > 2) {\n return false;\n }\n // If we don't have a `/`, right will be undefined which is considered a valid step if we don't a `/`.\n var left = splits[0], right = splits[1];\n return isValidRange(left, start, stop) && isValidStep(right);\n });\n};\nvar hasValidSeconds = function (seconds) {\n return validateForRange(seconds, 0, 59);\n};\nvar hasValidMinutes = function (minutes) {\n return validateForRange(minutes, 0, 59);\n};\nvar hasValidHours = function (hours) {\n return validateForRange(hours, 0, 23);\n};\nvar hasValidDays = function (days, allowBlankDay) {\n return (allowBlankDay && isQuestionMark(days)) || validateForRange(days, 1, 31);\n};\nvar monthAlias = {\n jan: '1',\n feb: '2',\n mar: '3',\n apr: '4',\n may: '5',\n jun: '6',\n jul: '7',\n aug: '8',\n sep: '9',\n oct: '10',\n nov: '11',\n dec: '12'\n};\nvar hasValidMonths = function (months, alias) {\n // Prevents alias to be used as steps\n if (months.search(/\\/[a-zA-Z]/) !== -1) {\n return false;\n }\n if (alias) {\n var remappedMonths = months.toLowerCase().replace(/[a-z]{3}/g, function (match) {\n return monthAlias[match] === undefined ? match : monthAlias[match];\n });\n // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the months\n return validateForRange(remappedMonths, 1, 12);\n }\n return validateForRange(months, 1, 12);\n};\nvar weekdaysAlias = {\n sun: '0',\n mon: '1',\n tue: '2',\n wed: '3',\n thu: '4',\n fri: '5',\n sat: '6'\n};\nvar hasValidWeekdays = function (weekdays, alias, allowBlankDay, allowSevenAsSunday) {\n // If there is a question mark, checks if the allowBlankDay flag is set\n if (allowBlankDay && isQuestionMark(weekdays)) {\n return true;\n }\n else if (!allowBlankDay && isQuestionMark(weekdays)) {\n return false;\n }\n // Prevents alias to be used as steps\n if (weekdays.search(/\\/[a-zA-Z]/) !== -1) {\n return false;\n }\n if (alias) {\n var remappedWeekdays = weekdays.toLowerCase().replace(/[a-z]{3}/g, function (match) {\n return weekdaysAlias[match] === undefined ? match : weekdaysAlias[match];\n });\n // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the weekdays\n return validateForRange(remappedWeekdays, 0, allowSevenAsSunday ? 7 : 6);\n }\n return validateForRange(weekdays, 0, allowSevenAsSunday ? 7 : 6);\n};\nvar hasCompatibleDayFormat = function (days, weekdays, allowBlankDay) {\n return !(allowBlankDay && isQuestionMark(days) && isQuestionMark(weekdays));\n};\nvar split = function (cron) {\n return cron.trim().split(/\\s+/);\n};\nvar defaultOptions = {\n alias: false,\n seconds: false,\n allowBlankDay: false,\n allowSevenAsSunday: false\n};\nexports.isValidCron = function (cron, options) {\n options = __assign(__assign({}, defaultOptions), options);\n var splits = split(cron);\n if (splits.length > (options.seconds ? 6 : 5) || splits.length < 5) {\n return false;\n }\n var checks = [];\n if (splits.length === 6) {\n var seconds = splits.shift();\n if (seconds) {\n checks.push(hasValidSeconds(seconds));\n }\n }\n // We could only check the steps gradually and return false on the first invalid block,\n // However, this won't have any performance impact so why bother for now.\n var minutes = splits[0], hours = splits[1], days = splits[2], months = splits[3], weekdays = splits[4];\n checks.push(hasValidMinutes(minutes));\n checks.push(hasValidHours(hours));\n checks.push(hasValidDays(days, options.allowBlankDay));\n checks.push(hasValidMonths(months, options.alias));\n checks.push(hasValidWeekdays(weekdays, options.alias, options.allowBlankDay, options.allowSevenAsSunday));\n checks.push(hasCompatibleDayFormat(days, weekdays, options.allowBlankDay));\n return checks.every(Boolean);\n};\n//# sourceMappingURL=index.js.map","/*\nLanguage: Lua\nDescription: Lua is a powerful, efficient, lightweight, embeddable scripting language.\nAuthor: Andrew Fedorov \nCategory: common, scripting\nWebsite: https://www.lua.org\n*/\n\nfunction lua(hljs) {\n const OPENING_LONG_BRACKET = '\\\\[=*\\\\[';\n const CLOSING_LONG_BRACKET = '\\\\]=*\\\\]';\n const LONG_BRACKETS = {\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [ 'self' ]\n };\n const COMMENTS = [\n hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),\n hljs.COMMENT(\n '--' + OPENING_LONG_BRACKET,\n CLOSING_LONG_BRACKET,\n {\n contains: [ LONG_BRACKETS ],\n relevance: 10\n }\n )\n ];\n return {\n name: 'Lua',\n keywords: {\n $pattern: hljs.UNDERSCORE_IDENT_RE,\n literal: \"true false nil\",\n keyword: \"and break do else elseif end for goto if in local not or repeat return then until while\",\n built_in:\n // Metatags and globals:\n '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len '\n + '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert '\n // Standard methods and properties:\n + 'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring '\n + 'module next pairs pcall print rawequal rawget rawset require select setfenv '\n + 'setmetatable tonumber tostring type unpack xpcall arg self '\n // Library methods and properties (one line per library):\n + 'coroutine resume yield status wrap create running debug getupvalue '\n + 'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv '\n + 'io lines write close flush open output type read stderr stdin input stdout popen tmpfile '\n + 'math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan '\n + 'os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall '\n + 'string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower '\n + 'table setn insert getn foreachi maxn foreach concat sort remove'\n },\n contains: COMMENTS.concat([\n {\n className: 'function',\n beginKeywords: 'function',\n end: '\\\\)',\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: '([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*' }),\n {\n className: 'params',\n begin: '\\\\(',\n endsWithParent: true,\n contains: COMMENTS\n }\n ].concat(COMMENTS)\n },\n hljs.C_NUMBER_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [ LONG_BRACKETS ],\n relevance: 5\n }\n ])\n };\n}\n\nmodule.exports = lua;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Tab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Tab.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Tab.vue?vue&type=template&id=667bdd63&scoped=true\"\nimport script from \"./Tab.vue?vue&type=script&lang=js\"\nexport * from \"./Tab.vue?vue&type=script&lang=js\"\nimport style0 from \"./Tab.vue?vue&type=style&index=0&id=667bdd63&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"667bdd63\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./LabeledInput.vue?vue&type=style&index=0&id=7d57839c&prod&scoped=true&lang=scss\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"::v-deep P{font-size:medium;line-height:normal;font-weight:400;letter-spacing:normal;font-style:normal}.markdown TH{text-align:left}.markdown table tr th{font-weight:700}.markdown table tr td,.markdown table tr th{text-align:left;margin:0;padding:6px 13px}.markdown table tr td :first-child,.markdown table tr th :first-child{margin-top:0}.markdown table tr td :last-child,.markdown table tr th :last-child{margin-bottom:0}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./NameNsDescription.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./NameNsDescription.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NameNsDescription.vue?vue&type=template&id=08979412&scoped=true\"\nimport script from \"./NameNsDescription.vue?vue&type=script&lang=js\"\nexport * from \"./NameNsDescription.vue?vue&type=script&lang=js\"\nimport style0 from \"./NameNsDescription.vue?vue&type=style&index=0&id=08979412&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08979412\",\n null\n \n)\n\nexport default component.exports","/*\nLanguage: Go\nAuthor: Stephan Kountso aka StepLg \nContributors: Evgeny Stepanischev \nDescription: Google go language (golang). For info about language\nWebsite: http://golang.org/\nCategory: common, system\n*/\n\nfunction go(hljs) {\n const LITERALS = [\n \"true\",\n \"false\",\n \"iota\",\n \"nil\"\n ];\n const BUILT_INS = [\n \"append\",\n \"cap\",\n \"close\",\n \"complex\",\n \"copy\",\n \"imag\",\n \"len\",\n \"make\",\n \"new\",\n \"panic\",\n \"print\",\n \"println\",\n \"real\",\n \"recover\",\n \"delete\"\n ];\n const TYPES = [\n \"bool\",\n \"byte\",\n \"complex64\",\n \"complex128\",\n \"error\",\n \"float32\",\n \"float64\",\n \"int8\",\n \"int16\",\n \"int32\",\n \"int64\",\n \"string\",\n \"uint8\",\n \"uint16\",\n \"uint32\",\n \"uint64\",\n \"int\",\n \"uint\",\n \"uintptr\",\n \"rune\"\n ];\n const KWS = [\n \"break\",\n \"case\",\n \"chan\",\n \"const\",\n \"continue\",\n \"default\",\n \"defer\",\n \"else\",\n \"fallthrough\",\n \"for\",\n \"func\",\n \"go\",\n \"goto\",\n \"if\",\n \"import\",\n \"interface\",\n \"map\",\n \"package\",\n \"range\",\n \"return\",\n \"select\",\n \"struct\",\n \"switch\",\n \"type\",\n \"var\",\n ];\n const KEYWORDS = {\n keyword: KWS,\n type: TYPES,\n literal: LITERALS,\n built_in: BUILT_INS\n };\n return {\n name: 'Go',\n aliases: [ 'golang' ],\n keywords: KEYWORDS,\n illegal: ' outside(version, range, '<', options)\nmodule.exports = ltr\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\nconst keywordWrapper = keyword => concat(\n /\\b/,\n keyword,\n /\\w$/.test(keyword) ? /\\b/ : /\\B/\n);\n\n// Keywords that require a leading dot.\nconst dotKeywords = [\n 'Protocol', // contextual\n 'Type' // contextual\n].map(keywordWrapper);\n\n// Keywords that may have a leading dot.\nconst optionalDotKeywords = [\n 'init',\n 'self'\n].map(keywordWrapper);\n\n// should register as keyword, not type\nconst keywordTypes = [\n 'Any',\n 'Self'\n];\n\n// Regular keywords and literals.\nconst keywords = [\n // strings below will be fed into the regular `keywords` engine while regex\n // will result in additional modes being created to scan for those keywords to\n // avoid conflicts with other rules\n 'actor',\n 'any', // contextual\n 'associatedtype',\n 'async',\n 'await',\n /as\\?/, // operator\n /as!/, // operator\n 'as', // operator\n 'break',\n 'case',\n 'catch',\n 'class',\n 'continue',\n 'convenience', // contextual\n 'default',\n 'defer',\n 'deinit',\n 'didSet', // contextual\n 'distributed',\n 'do',\n 'dynamic', // contextual\n 'else',\n 'enum',\n 'extension',\n 'fallthrough',\n /fileprivate\\(set\\)/,\n 'fileprivate',\n 'final', // contextual\n 'for',\n 'func',\n 'get', // contextual\n 'guard',\n 'if',\n 'import',\n 'indirect', // contextual\n 'infix', // contextual\n /init\\?/,\n /init!/,\n 'inout',\n /internal\\(set\\)/,\n 'internal',\n 'in',\n 'is', // operator\n 'isolated', // contextual\n 'nonisolated', // contextual\n 'lazy', // contextual\n 'let',\n 'mutating', // contextual\n 'nonmutating', // contextual\n /open\\(set\\)/, // contextual\n 'open', // contextual\n 'operator',\n 'optional', // contextual\n 'override', // contextual\n 'postfix', // contextual\n 'precedencegroup',\n 'prefix', // contextual\n /private\\(set\\)/,\n 'private',\n 'protocol',\n /public\\(set\\)/,\n 'public',\n 'repeat',\n 'required', // contextual\n 'rethrows',\n 'return',\n 'set', // contextual\n 'some', // contextual\n 'static',\n 'struct',\n 'subscript',\n 'super',\n 'switch',\n 'throws',\n 'throw',\n /try\\?/, // operator\n /try!/, // operator\n 'try', // operator\n 'typealias',\n /unowned\\(safe\\)/, // contextual\n /unowned\\(unsafe\\)/, // contextual\n 'unowned', // contextual\n 'var',\n 'weak', // contextual\n 'where',\n 'while',\n 'willSet' // contextual\n];\n\n// NOTE: Contextual keywords are reserved only in specific contexts.\n// Ideally, these should be matched using modes to avoid false positives.\n\n// Literals.\nconst literals = [\n 'false',\n 'nil',\n 'true'\n];\n\n// Keywords used in precedence groups.\nconst precedencegroupKeywords = [\n 'assignment',\n 'associativity',\n 'higherThan',\n 'left',\n 'lowerThan',\n 'none',\n 'right'\n];\n\n// Keywords that start with a number sign (#).\n// #(un)available is handled separately.\nconst numberSignKeywords = [\n '#colorLiteral',\n '#column',\n '#dsohandle',\n '#else',\n '#elseif',\n '#endif',\n '#error',\n '#file',\n '#fileID',\n '#fileLiteral',\n '#filePath',\n '#function',\n '#if',\n '#imageLiteral',\n '#keyPath',\n '#line',\n '#selector',\n '#sourceLocation',\n '#warn_unqualified_access',\n '#warning'\n];\n\n// Global functions in the Standard Library.\nconst builtIns = [\n 'abs',\n 'all',\n 'any',\n 'assert',\n 'assertionFailure',\n 'debugPrint',\n 'dump',\n 'fatalError',\n 'getVaList',\n 'isKnownUniquelyReferenced',\n 'max',\n 'min',\n 'numericCast',\n 'pointwiseMax',\n 'pointwiseMin',\n 'precondition',\n 'preconditionFailure',\n 'print',\n 'readLine',\n 'repeatElement',\n 'sequence',\n 'stride',\n 'swap',\n 'swift_unboxFromSwiftValueWithType',\n 'transcode',\n 'type',\n 'unsafeBitCast',\n 'unsafeDowncast',\n 'withExtendedLifetime',\n 'withUnsafeMutablePointer',\n 'withUnsafePointer',\n 'withVaList',\n 'withoutActuallyEscaping',\n 'zip'\n];\n\n// Valid first characters for operators.\nconst operatorHead = either(\n /[/=\\-+!*%<>&|^~?]/,\n /[\\u00A1-\\u00A7]/,\n /[\\u00A9\\u00AB]/,\n /[\\u00AC\\u00AE]/,\n /[\\u00B0\\u00B1]/,\n /[\\u00B6\\u00BB\\u00BF\\u00D7\\u00F7]/,\n /[\\u2016-\\u2017]/,\n /[\\u2020-\\u2027]/,\n /[\\u2030-\\u203E]/,\n /[\\u2041-\\u2053]/,\n /[\\u2055-\\u205E]/,\n /[\\u2190-\\u23FF]/,\n /[\\u2500-\\u2775]/,\n /[\\u2794-\\u2BFF]/,\n /[\\u2E00-\\u2E7F]/,\n /[\\u3001-\\u3003]/,\n /[\\u3008-\\u3020]/,\n /[\\u3030]/\n);\n\n// Valid characters for operators.\nconst operatorCharacter = either(\n operatorHead,\n /[\\u0300-\\u036F]/,\n /[\\u1DC0-\\u1DFF]/,\n /[\\u20D0-\\u20FF]/,\n /[\\uFE00-\\uFE0F]/,\n /[\\uFE20-\\uFE2F]/\n // TODO: The following characters are also allowed, but the regex isn't supported yet.\n // /[\\u{E0100}-\\u{E01EF}]/u\n);\n\n// Valid operator.\nconst operator = concat(operatorHead, operatorCharacter, '*');\n\n// Valid first characters for identifiers.\nconst identifierHead = either(\n /[a-zA-Z_]/,\n /[\\u00A8\\u00AA\\u00AD\\u00AF\\u00B2-\\u00B5\\u00B7-\\u00BA]/,\n /[\\u00BC-\\u00BE\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]/,\n /[\\u0100-\\u02FF\\u0370-\\u167F\\u1681-\\u180D\\u180F-\\u1DBF]/,\n /[\\u1E00-\\u1FFF]/,\n /[\\u200B-\\u200D\\u202A-\\u202E\\u203F-\\u2040\\u2054\\u2060-\\u206F]/,\n /[\\u2070-\\u20CF\\u2100-\\u218F\\u2460-\\u24FF\\u2776-\\u2793]/,\n /[\\u2C00-\\u2DFF\\u2E80-\\u2FFF]/,\n /[\\u3004-\\u3007\\u3021-\\u302F\\u3031-\\u303F\\u3040-\\uD7FF]/,\n /[\\uF900-\\uFD3D\\uFD40-\\uFDCF\\uFDF0-\\uFE1F\\uFE30-\\uFE44]/,\n /[\\uFE47-\\uFEFE\\uFF00-\\uFFFD]/ // Should be /[\\uFE47-\\uFFFD]/, but we have to exclude FEFF.\n // The following characters are also allowed, but the regexes aren't supported yet.\n // /[\\u{10000}-\\u{1FFFD}\\u{20000-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}]/u,\n // /[\\u{50000}-\\u{5FFFD}\\u{60000-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}]/u,\n // /[\\u{90000}-\\u{9FFFD}\\u{A0000-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}]/u,\n // /[\\u{D0000}-\\u{DFFFD}\\u{E0000-\\u{EFFFD}]/u\n);\n\n// Valid characters for identifiers.\nconst identifierCharacter = either(\n identifierHead,\n /\\d/,\n /[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]/\n);\n\n// Valid identifier.\nconst identifier = concat(identifierHead, identifierCharacter, '*');\n\n// Valid type identifier.\nconst typeIdentifier = concat(/[A-Z]/, identifierCharacter, '*');\n\n// Built-in attributes, which are highlighted as keywords.\n// @available is handled separately.\nconst keywordAttributes = [\n 'autoclosure',\n concat(/convention\\(/, either('swift', 'block', 'c'), /\\)/),\n 'discardableResult',\n 'dynamicCallable',\n 'dynamicMemberLookup',\n 'escaping',\n 'frozen',\n 'GKInspectable',\n 'IBAction',\n 'IBDesignable',\n 'IBInspectable',\n 'IBOutlet',\n 'IBSegueAction',\n 'inlinable',\n 'main',\n 'nonobjc',\n 'NSApplicationMain',\n 'NSCopying',\n 'NSManaged',\n concat(/objc\\(/, identifier, /\\)/),\n 'objc',\n 'objcMembers',\n 'propertyWrapper',\n 'requires_stored_property_inits',\n 'resultBuilder',\n 'testable',\n 'UIApplicationMain',\n 'unknown',\n 'usableFromInline'\n];\n\n// Contextual keywords used in @available and #(un)available.\nconst availabilityKeywords = [\n 'iOS',\n 'iOSApplicationExtension',\n 'macOS',\n 'macOSApplicationExtension',\n 'macCatalyst',\n 'macCatalystApplicationExtension',\n 'watchOS',\n 'watchOSApplicationExtension',\n 'tvOS',\n 'tvOSApplicationExtension',\n 'swift'\n];\n\n/*\nLanguage: Swift\nDescription: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.\nAuthor: Steven Van Impe \nContributors: Chris Eidhof , Nate Cook , Alexander Lichter , Richard Gibson \nWebsite: https://swift.org\nCategory: common, system\n*/\n\n/** @type LanguageFn */\nfunction swift(hljs) {\n const WHITESPACE = {\n match: /\\s+/,\n relevance: 0\n };\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID411\n const BLOCK_COMMENT = hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [ 'self' ] }\n );\n const COMMENTS = [\n hljs.C_LINE_COMMENT_MODE,\n BLOCK_COMMENT\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html\n const DOT_KEYWORD = {\n match: [\n /\\./,\n either(...dotKeywords, ...optionalDotKeywords)\n ],\n className: { 2: \"keyword\" }\n };\n const KEYWORD_GUARD = {\n // Consume .keyword to prevent highlighting properties and methods as keywords.\n match: concat(/\\./, either(...keywords)),\n relevance: 0\n };\n const PLAIN_KEYWORDS = keywords\n .filter(kw => typeof kw === 'string')\n .concat([ \"_|0\" ]); // seems common, so 0 relevance\n const REGEX_KEYWORDS = keywords\n .filter(kw => typeof kw !== 'string') // find regex\n .concat(keywordTypes)\n .map(keywordWrapper);\n const KEYWORD = { variants: [\n {\n className: 'keyword',\n match: either(...REGEX_KEYWORDS, ...optionalDotKeywords)\n }\n ] };\n // find all the regular keywords\n const KEYWORDS = {\n $pattern: either(\n /\\b\\w+/, // regular keywords\n /#\\w+/ // number keywords\n ),\n keyword: PLAIN_KEYWORDS\n .concat(numberSignKeywords),\n literal: literals\n };\n const KEYWORD_MODES = [\n DOT_KEYWORD,\n KEYWORD_GUARD,\n KEYWORD\n ];\n\n // https://github.com/apple/swift/tree/main/stdlib/public/core\n const BUILT_IN_GUARD = {\n // Consume .built_in to prevent highlighting properties and methods.\n match: concat(/\\./, either(...builtIns)),\n relevance: 0\n };\n const BUILT_IN = {\n className: 'built_in',\n match: concat(/\\b/, either(...builtIns), /(?=\\()/)\n };\n const BUILT_INS = [\n BUILT_IN_GUARD,\n BUILT_IN\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418\n const OPERATOR_GUARD = {\n // Prevent -> from being highlighting as an operator.\n match: /->/,\n relevance: 0\n };\n const OPERATOR = {\n className: 'operator',\n relevance: 0,\n variants: [\n { match: operator },\n {\n // dot-operator: only operators that start with a dot are allowed to use dots as\n // characters (..., ...<, .*, etc). So there rule here is: a dot followed by one or more\n // characters that may also include dots.\n match: `\\\\.(\\\\.|${operatorCharacter})+` }\n ]\n };\n const OPERATORS = [\n OPERATOR_GUARD,\n OPERATOR\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal\n // TODO: Update for leading `-` after lookbehind is supported everywhere\n const decimalDigits = '([0-9]_*)+';\n const hexDigits = '([0-9a-fA-F]_*)+';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal floating-point-literal (subsumes decimal-literal)\n { match: `\\\\b(${decimalDigits})(\\\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\\\b` },\n // hexadecimal floating-point-literal (subsumes hexadecimal-literal)\n { match: `\\\\b0x(${hexDigits})(\\\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\\\b` },\n // octal-literal\n { match: /\\b0o([0-7]_*)+\\b/ },\n // binary-literal\n { match: /\\b0b([01]_*)+\\b/ }\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_string-literal\n const ESCAPED_CHARACTER = (rawDelimiter = \"\") => ({\n className: 'subst',\n variants: [\n { match: concat(/\\\\/, rawDelimiter, /[0\\\\tnr\"']/) },\n { match: concat(/\\\\/, rawDelimiter, /u\\{[0-9a-fA-F]{1,8}\\}/) }\n ]\n });\n const ESCAPED_NEWLINE = (rawDelimiter = \"\") => ({\n className: 'subst',\n match: concat(/\\\\/, rawDelimiter, /[\\t ]*(?:[\\r\\n]|\\r\\n)/)\n });\n const INTERPOLATION = (rawDelimiter = \"\") => ({\n className: 'subst',\n label: \"interpol\",\n begin: concat(/\\\\/, rawDelimiter, /\\(/),\n end: /\\)/\n });\n const MULTILINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"\"\"/),\n end: concat(/\"\"\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n ESCAPED_NEWLINE(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const SINGLE_LINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"/),\n end: concat(/\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const STRING = {\n className: 'string',\n variants: [\n MULTILINE_STRING(),\n MULTILINE_STRING(\"#\"),\n MULTILINE_STRING(\"##\"),\n MULTILINE_STRING(\"###\"),\n SINGLE_LINE_STRING(),\n SINGLE_LINE_STRING(\"#\"),\n SINGLE_LINE_STRING(\"##\"),\n SINGLE_LINE_STRING(\"###\")\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID412\n const QUOTED_IDENTIFIER = { match: concat(/`/, identifier, /`/) };\n const IMPLICIT_PARAMETER = {\n className: 'variable',\n match: /\\$\\d+/\n };\n const PROPERTY_WRAPPER_PROJECTION = {\n className: 'variable',\n match: `\\\\$${identifierCharacter}+`\n };\n const IDENTIFIERS = [\n QUOTED_IDENTIFIER,\n IMPLICIT_PARAMETER,\n PROPERTY_WRAPPER_PROJECTION\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Attributes.html\n const AVAILABLE_ATTRIBUTE = {\n match: /(@|#(un)?)available/,\n className: \"keyword\",\n starts: { contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: availabilityKeywords,\n contains: [\n ...OPERATORS,\n NUMBER,\n STRING\n ]\n }\n ] }\n };\n const KEYWORD_ATTRIBUTE = {\n className: 'keyword',\n match: concat(/@/, either(...keywordAttributes))\n };\n const USER_DEFINED_ATTRIBUTE = {\n className: 'meta',\n match: concat(/@/, identifier)\n };\n const ATTRIBUTES = [\n AVAILABLE_ATTRIBUTE,\n KEYWORD_ATTRIBUTE,\n USER_DEFINED_ATTRIBUTE\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Types.html\n const TYPE = {\n match: lookahead(/\\b[A-Z]/),\n relevance: 0,\n contains: [\n { // Common Apple frameworks, for relevance boost\n className: 'type',\n match: concat(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, '+')\n },\n { // Type identifier\n className: 'type',\n match: typeIdentifier,\n relevance: 0\n },\n { // Optional type\n match: /[?!]+/,\n relevance: 0\n },\n { // Variadic parameter\n match: /\\.\\.\\./,\n relevance: 0\n },\n { // Protocol composition\n match: concat(/\\s+&\\s+/, lookahead(typeIdentifier)),\n relevance: 0\n }\n ]\n };\n const GENERIC_ARGUMENTS = {\n begin: //,\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...ATTRIBUTES,\n OPERATOR_GUARD,\n TYPE\n ]\n };\n TYPE.contains.push(GENERIC_ARGUMENTS);\n\n // https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID552\n // Prevents element names from being highlighted as keywords.\n const TUPLE_ELEMENT_NAME = {\n match: concat(identifier, /\\s*:/),\n keywords: \"_|0\",\n relevance: 0\n };\n // Matches tuples as well as the parameter list of a function type.\n const TUPLE = {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: KEYWORDS,\n contains: [\n 'self',\n TUPLE_ELEMENT_NAME,\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE\n ]\n };\n\n const GENERIC_PARAMETERS = {\n begin: //,\n contains: [\n ...COMMENTS,\n TYPE\n ]\n };\n const FUNCTION_PARAMETER_NAME = {\n begin: either(\n lookahead(concat(identifier, /\\s*:/)),\n lookahead(concat(identifier, /\\s+/, identifier, /\\s*:/))\n ),\n end: /:/,\n relevance: 0,\n contains: [\n {\n className: 'keyword',\n match: /\\b_\\b/\n },\n {\n className: 'params',\n match: identifier\n }\n ]\n };\n const FUNCTION_PARAMETERS = {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n FUNCTION_PARAMETER_NAME,\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ],\n endsParent: true,\n illegal: /[\"']/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID362\n const FUNCTION = {\n match: [\n /func/,\n /\\s+/,\n either(QUOTED_IDENTIFIER.match, identifier, operator)\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: [\n /\\[/,\n /%/\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID375\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID379\n const INIT_SUBSCRIPT = {\n match: [\n /\\b(?:subscript|init[?!]?)/,\n /\\s*(?=[<(])/,\n ],\n className: { 1: \"keyword\" },\n contains: [\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: /\\[|%/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID380\n const OPERATOR_DECLARATION = {\n match: [\n /operator/,\n /\\s+/,\n operator\n ],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n }\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID550\n const PRECEDENCEGROUP = {\n begin: [\n /precedencegroup/,\n /\\s+/,\n typeIdentifier\n ],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n },\n contains: [ TYPE ],\n keywords: [\n ...precedencegroupKeywords,\n ...literals\n ],\n end: /}/\n };\n\n // Add supported submodes to string interpolation.\n for (const variant of STRING.variants) {\n const interpolation = variant.contains.find(mode => mode.label === \"interpol\");\n // TODO: Interpolation can contain any expression, so there's room for improvement here.\n interpolation.keywords = KEYWORDS;\n const submodes = [\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS\n ];\n interpolation.contains = [\n ...submodes,\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n ...submodes\n ]\n }\n ];\n }\n\n return {\n name: 'Swift',\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n FUNCTION,\n INIT_SUBSCRIPT,\n {\n beginKeywords: 'struct protocol class extension enum actor',\n end: '\\\\{',\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n className: \"title.class\",\n begin: /[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/\n }),\n ...KEYWORD_MODES\n ]\n },\n OPERATOR_DECLARATION,\n PRECEDENCEGROUP,\n {\n beginKeywords: 'import',\n end: /$/,\n contains: [ ...COMMENTS ],\n relevance: 0\n },\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ]\n };\n}\n\nmodule.exports = swift;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceCancelModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceCancelModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ResourceCancelModal.vue?vue&type=template&id=7090e1b4&scoped=true\"\nimport script from \"./ResourceCancelModal.vue?vue&type=script&lang=js\"\nexport * from \"./ResourceCancelModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./ResourceCancelModal.vue?vue&type=style&index=0&id=7090e1b4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7090e1b4\",\n null\n \n)\n\nexport default component.exports","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'all',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-variant',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'inline-size',\n 'isolation',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-break',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'row-gap',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: SCSS\nDescription: Scss is an extension of the syntax of CSS.\nAuthor: Kurt Emch \nWebsite: https://sass-lang.com\nCategory: common, css, web\n*/\n\n/** @type LanguageFn */\nfunction scss(hljs) {\n const modes = MODES(hljs);\n const PSEUDO_ELEMENTS$1 = PSEUDO_ELEMENTS;\n const PSEUDO_CLASSES$1 = PSEUDO_CLASSES;\n\n const AT_IDENTIFIER = '@[a-z-]+'; // @font-face\n const AT_MODIFIERS = \"and or not only\";\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const VARIABLE = {\n className: 'variable',\n begin: '(\\\\$' + IDENT_RE + ')\\\\b',\n relevance: 0\n };\n\n return {\n name: 'SCSS',\n case_insensitive: true,\n illegal: '[=/|\\']',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: '#[A-Za-z0-9_-]+',\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.[A-Za-z0-9_-]+',\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n // was there, before, but why?\n relevance: 0\n },\n {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES$1.join('|') + ')'\n },\n {\n className: 'selector-pseudo',\n begin: ':(:)?(' + PSEUDO_ELEMENTS$1.join('|') + ')'\n },\n VARIABLE,\n { // pseudo-selector params\n begin: /\\(/,\n end: /\\)/,\n contains: [ modes.CSS_NUMBER_MODE ]\n },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n { begin: '\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b' },\n {\n begin: /:/,\n end: /[;}{]/,\n relevance: 0,\n contains: [\n modes.BLOCK_COMMENT,\n VARIABLE,\n modes.HEXCOLOR,\n modes.CSS_NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.IMPORTANT,\n modes.FUNCTION_DISPATCH\n ]\n },\n // matching these here allows us to treat them more like regular CSS\n // rules so everything between the {} gets regular rule highlighting,\n // which is what we want for page and font-face\n {\n begin: '@(page|font-face)',\n keywords: {\n $pattern: AT_IDENTIFIER,\n keyword: '@page @font-face'\n }\n },\n {\n begin: '@',\n end: '[{;]',\n returnBegin: true,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: AT_IDENTIFIER,\n className: \"keyword\"\n },\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n VARIABLE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.HEXCOLOR,\n modes.CSS_NUMBER_MODE\n ]\n },\n modes.FUNCTION_DISPATCH\n ]\n };\n}\n\nmodule.exports = scss;\n","/*\nLanguage: Markdown\nRequires: xml.js\nAuthor: John Crepezzi \nWebsite: https://daringfireball.net/projects/markdown/\nCategory: common, markup\n*/\n\nfunction markdown(hljs) {\n const regex = hljs.regex;\n const INLINE_HTML = {\n begin: /<\\/?[A-Za-z_]/,\n end: '>',\n subLanguage: 'xml',\n relevance: 0\n };\n const HORIZONTAL_RULE = {\n begin: '^[-\\\\*]{3,}',\n end: '$'\n };\n const CODE = {\n className: 'code',\n variants: [\n // TODO: fix to allow these to work with sublanguage also\n { begin: '(`{3,})[^`](.|\\\\n)*?\\\\1`*[ ]*' },\n { begin: '(~{3,})[^~](.|\\\\n)*?\\\\1~*[ ]*' },\n // needed to allow markdown as a sublanguage to work\n {\n begin: '```',\n end: '```+[ ]*$'\n },\n {\n begin: '~~~',\n end: '~~~+[ ]*$'\n },\n { begin: '`.+?`' },\n {\n begin: '(?=^( {4}|\\\\t))',\n // use contains to gobble up multiple lines to allow the block to be whatever size\n // but only have a single open/close tag vs one per line\n contains: [\n {\n begin: '^( {4}|\\\\t)',\n end: '(\\\\n)$'\n }\n ],\n relevance: 0\n }\n ]\n };\n const LIST = {\n className: 'bullet',\n begin: '^[ \\t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)',\n end: '\\\\s+',\n excludeEnd: true\n };\n const LINK_REFERENCE = {\n begin: /^\\[[^\\n]+\\]:/,\n returnBegin: true,\n contains: [\n {\n className: 'symbol',\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'link',\n begin: /:\\s*/,\n end: /$/,\n excludeBegin: true\n }\n ]\n };\n const URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/;\n const LINK = {\n variants: [\n // too much like nested array access in so many languages\n // to have any real relevance\n {\n begin: /\\[.+?\\]\\[.*?\\]/,\n relevance: 0\n },\n // popular internet URLs\n {\n begin: /\\[.+?\\]\\(((data|javascript|mailto):|(?:http|ftp)s?:\\/\\/).*?\\)/,\n relevance: 2\n },\n {\n begin: regex.concat(/\\[.+?\\]\\(/, URL_SCHEME, /:\\/\\/.*?\\)/),\n relevance: 2\n },\n // relative urls\n {\n begin: /\\[.+?\\]\\([./?&#].*?\\)/,\n relevance: 1\n },\n // whatever else, lower relevance (might not be a link at all)\n {\n begin: /\\[.*?\\]\\(.*?\\)/,\n relevance: 0\n }\n ],\n returnBegin: true,\n contains: [\n {\n // empty strings for alt or link text\n match: /\\[(?=\\])/ },\n {\n className: 'string',\n relevance: 0,\n begin: '\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n returnEnd: true\n },\n {\n className: 'link',\n relevance: 0,\n begin: '\\\\]\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'symbol',\n relevance: 0,\n begin: '\\\\]\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n excludeEnd: true\n }\n ]\n };\n const BOLD = {\n className: 'strong',\n contains: [], // defined later\n variants: [\n {\n begin: /_{2}/,\n end: /_{2}/\n },\n {\n begin: /\\*{2}/,\n end: /\\*{2}/\n }\n ]\n };\n const ITALIC = {\n className: 'emphasis',\n contains: [], // defined later\n variants: [\n {\n begin: /\\*(?!\\*)/,\n end: /\\*/\n },\n {\n begin: /_(?!_)/,\n end: /_/,\n relevance: 0\n }\n ]\n };\n\n // 3 level deep nesting is not allowed because it would create confusion\n // in cases like `***testing***` because where we don't know if the last\n // `***` is starting a new bold/italic or finishing the last one\n const BOLD_WITHOUT_ITALIC = hljs.inherit(BOLD, { contains: [] });\n const ITALIC_WITHOUT_BOLD = hljs.inherit(ITALIC, { contains: [] });\n BOLD.contains.push(ITALIC_WITHOUT_BOLD);\n ITALIC.contains.push(BOLD_WITHOUT_ITALIC);\n\n let CONTAINABLE = [\n INLINE_HTML,\n LINK\n ];\n\n [\n BOLD,\n ITALIC,\n BOLD_WITHOUT_ITALIC,\n ITALIC_WITHOUT_BOLD\n ].forEach(m => {\n m.contains = m.contains.concat(CONTAINABLE);\n });\n\n CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);\n\n const HEADER = {\n className: 'section',\n variants: [\n {\n begin: '^#{1,6}',\n end: '$',\n contains: CONTAINABLE\n },\n {\n begin: '(?=^.+?\\\\n[=-]{2,}$)',\n contains: [\n { begin: '^[=-]*$' },\n {\n begin: '^',\n end: \"\\\\n\",\n contains: CONTAINABLE\n }\n ]\n }\n ]\n };\n\n const BLOCKQUOTE = {\n className: 'quote',\n begin: '^>\\\\s+',\n contains: CONTAINABLE,\n end: '$'\n };\n\n return {\n name: 'Markdown',\n aliases: [\n 'md',\n 'mkdown',\n 'mkd'\n ],\n contains: [\n HEADER,\n INLINE_HTML,\n LIST,\n BOLD,\n ITALIC,\n BLOCKQUOTE,\n CODE,\n HORIZONTAL_RULE,\n LINK,\n LINK_REFERENCE\n ]\n };\n}\n\nmodule.exports = markdown;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".radio-view{display:flex;flex-direction:column}.radio-view LABEL{color:var(--input-label)}.radio-group .text-label{display:block;padding-bottom:5px}.radio-container{position:relative;display:inline-flex;align-items:flex-start;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:var(--border-radius);padding-bottom:5px}.radio-container,.radio-container .radio-button-outer-container-description,.radio-container .radio-label{cursor:pointer}.radio-container.disabled,.radio-container.disabled .radio-button-outer-container-description,.radio-container.disabled .radio-label{cursor:not-allowed}.radio-container .radio-custom{height:14px;width:14px;min-height:14px;min-width:14px;background-color:var(--input-bg);border-radius:50%;transition:all .3s ease-out;border:1.5px solid var(--border);margin-top:5px}.radio-container .radio-custom:focus{outline:none;border-radius:50%}.radio-container input{display:none}.radio-container .radio-custom[aria-checked=true]{background-color:var(--primary);transform:rotate(0deg) scale(1);opacity:1;border:1.5px solid var(--primary)}.radio-container .radio-custom[aria-checked=true].text-muted{opacity:.25}.radio-container input:disabled~.radio-custom:not([aria-checked=true]){background-color:var(--disabled-bg);opacity:.25}.radio-container .radio-button-outer-container-description{color:var(--input-label);font-size:11px;margin-top:5px}.radio-container .labeling{display:inline-flex;flex-direction:column;margin:3px 10px 0 5px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","/*\nLanguage: Elm\nAuthor: Janis Voigtlaender \nWebsite: https://elm-lang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction elm(hljs) {\n const COMMENT = { variants: [\n hljs.COMMENT('--', '$'),\n hljs.COMMENT(\n /\\{-/,\n /-\\}/,\n { contains: [ 'self' ] }\n )\n ] };\n\n const CONSTRUCTOR = {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w\\']*', // TODO: other constructors (built-in, infix).\n relevance: 0\n };\n\n const LIST = {\n begin: '\\\\(',\n end: '\\\\)',\n illegal: '\"',\n contains: [\n {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n },\n COMMENT\n ]\n };\n\n const RECORD = {\n begin: /\\{/,\n end: /\\}/,\n contains: LIST.contains\n };\n\n const CHARACTER = {\n className: 'string',\n begin: '\\'\\\\\\\\?.',\n end: '\\'',\n illegal: '.'\n };\n\n const KEYWORDS = [\n \"let\",\n \"in\",\n \"if\",\n \"then\",\n \"else\",\n \"case\",\n \"of\",\n \"where\",\n \"module\",\n \"import\",\n \"exposing\",\n \"type\",\n \"alias\",\n \"as\",\n \"infix\",\n \"infixl\",\n \"infixr\",\n \"port\",\n \"effect\",\n \"command\",\n \"subscription\"\n ];\n\n return {\n name: 'Elm',\n keywords: KEYWORDS,\n contains: [\n\n // Top-level constructions.\n\n {\n beginKeywords: 'port effect module',\n end: 'exposing',\n keywords: 'port effect module where command subscription exposing',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n begin: 'import',\n end: '$',\n keywords: 'import as exposing',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n begin: 'type',\n end: '$',\n keywords: 'type alias',\n contains: [\n CONSTRUCTOR,\n LIST,\n RECORD,\n COMMENT\n ]\n },\n {\n beginKeywords: 'infix infixl infixr',\n end: '$',\n contains: [\n hljs.C_NUMBER_MODE,\n COMMENT\n ]\n },\n {\n begin: 'port',\n end: '$',\n keywords: 'port',\n contains: [ COMMENT ]\n },\n\n // Literals and names.\n CHARACTER,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n CONSTRUCTOR,\n hljs.inherit(hljs.TITLE_MODE, { begin: '^[_a-z][\\\\w\\']*' }),\n COMMENT,\n\n { // No markup, relevance booster\n begin: '->|<-' }\n ],\n illegal: /;/\n };\n}\n\nmodule.exports = elm;\n","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartReadme.vue?vue&type=style&index=0&id=39794b21&prod&lang=scss&scoped=true\"","/*\nLanguage: Shell Session\nRequires: bash.js\nAuthor: TSUYUSATO Kitsune \nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction shell(hljs) {\n return {\n name: 'Shell Session',\n aliases: [\n 'console',\n 'shellsession'\n ],\n contains: [\n {\n className: 'meta.prompt',\n // We cannot add \\s (spaces) in the regular expression otherwise it will be too broad and produce unexpected result.\n // For instance, in the following example, it would match \"echo /path/to/home >\" as a prompt:\n // echo /path/to/home > t.exe\n begin: /^\\s{0,3}[/~\\w\\d[\\]()@-]*[>%$#][ ]?/,\n starts: {\n end: /[^\\\\](?=\\s*$)/,\n subLanguage: 'bash'\n }\n }\n ]\n };\n}\n\nmodule.exports = shell;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".chart-readmes>h1[data-v-39794b21]{border-top:var(--header-border-size) solid var(--header-border)}.md[data-v-39794b21]{overflow:auto;max-width:100%;line-height:1.6}.md[data-v-39794b21] *+H1,.md[data-v-39794b21] *+H2,.md[data-v-39794b21] *+H3,.md[data-v-39794b21] *+H4,.md[data-v-39794b21] *+H5,.md[data-v-39794b21] *+H6{margin-top:20px}.md[data-v-39794b21] code{font-size:13.5px;white-space:break-spaces;word-wrap:break-word;padding-left:5px;padding-right:5px;border:0}.md[data-v-39794b21] pre{white-space:break-spaces;word-break:break-word}.md[data-v-39794b21]>h1:first-of-type{display:none}.md[data-v-39794b21] p{margin-bottom:.5em}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"chart-readmes\"},[(_vm.appReadme)?_c('Markdown',{staticClass:\"md md-desc mb-20\",on:{\"loaded\":function($event){_vm.appReadmeLoaded = true}},model:{value:(_vm.appReadme),callback:function ($$v) {_vm.appReadme=$$v},expression:\"appReadme\"}}):_vm._e(),(_vm.appReadme && _vm.readme && _vm.appReadmeLoaded && _vm.readmeLoaded)?_c('h1',{staticClass:\"pt-10\"},[_vm._v(\" \"+_vm._s(_vm.t('catalog.install.appReadmeTitle'))+\" \")]):_vm._e(),(_vm.readme)?_c('Markdown',{staticClass:\"md md-desc\",on:{\"loaded\":function($event){_vm.readmeLoaded = true}},model:{value:(_vm.readme),callback:function ($$v) {_vm.readme=$$v},expression:\"readme\"}}):_vm._e()],1),_c('div')])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.loaded)?_c('div',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.sanitized),expression:\"sanitized\"}],staticClass:\"markdown\"}):_c('Loading')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Markdown.vue?vue&type=template&id=cb4a8626\"\nimport script from \"./Markdown.vue?vue&type=script&lang=js\"\nexport * from \"./Markdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./Markdown.vue?vue&type=style&index=0&id=cb4a8626&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartReadme.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartReadme.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChartReadme.vue?vue&type=template&id=39794b21&scoped=true\"\nimport script from \"./ChartReadme.vue?vue&type=script&lang=js\"\nexport * from \"./ChartReadme.vue?vue&type=script&lang=js\"\nimport style0 from \"./ChartReadme.vue?vue&type=style&index=0&id=39794b21&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39794b21\",\n null\n \n)\n\nexport default component.exports","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".box[data-v-3ee5f0b3],.title[data-v-3ee5f0b3]{margin-bottom:10px}.box[data-v-3ee5f0b3]{display:grid;grid-template-columns:auto 75px;align-items:center}.box .value[data-v-3ee5f0b3]{flex:1}.box .value INPUT[data-v-3ee5f0b3]{height:61px}.remove[data-v-3ee5f0b3]{text-align:right}.footer .protip[data-v-3ee5f0b3]{float:right;padding:5px 0}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultSideBySideRendererConfig = void 0;\nvar Rematch = __importStar(require(\"./rematch\"));\nvar renderUtils = __importStar(require(\"./render-utils\"));\nvar types_1 = require(\"./types\");\nexports.defaultSideBySideRendererConfig = __assign(__assign({}, renderUtils.defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 });\nvar genericTemplatesPath = 'generic';\nvar baseTemplatesPath = 'side-by-side';\nvar iconsBaseTemplatesPath = 'icon';\nvar tagsBaseTemplatesPath = 'tag';\nvar SideBySideRenderer = (function () {\n function SideBySideRenderer(hoganUtils, config) {\n if (config === void 0) { config = {}; }\n this.hoganUtils = hoganUtils;\n this.config = __assign(__assign({}, exports.defaultSideBySideRendererConfig), config);\n }\n SideBySideRenderer.prototype.render = function (diffFiles) {\n var _this = this;\n var diffsHtml = diffFiles\n .map(function (file) {\n var diffs;\n if (file.blocks.length) {\n diffs = _this.generateFileHtml(file);\n }\n else {\n diffs = _this.generateEmptyDiff();\n }\n return _this.makeFileDiffHtml(file, diffs);\n })\n .join('\\n');\n return this.hoganUtils.render(genericTemplatesPath, 'wrapper', { content: diffsHtml });\n };\n SideBySideRenderer.prototype.makeFileDiffHtml = function (file, diffs) {\n if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0)\n return '';\n var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath, 'file-diff');\n var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, 'file-path');\n var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath, 'file');\n var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, renderUtils.getFileIcon(file));\n return fileDiffTemplate.render({\n file: file,\n fileHtmlId: renderUtils.getHtmlId(file),\n diffs: diffs,\n filePath: filePathTemplate.render({\n fileDiffName: renderUtils.filenameDiff(file),\n }, {\n fileIcon: fileIconTemplate,\n fileTag: fileTagTemplate,\n }),\n });\n };\n SideBySideRenderer.prototype.generateEmptyDiff = function () {\n return {\n right: '',\n left: this.hoganUtils.render(genericTemplatesPath, 'empty-diff', {\n contentClass: 'd2h-code-side-line',\n CSSLineClass: renderUtils.CSSLineClass,\n }),\n };\n };\n SideBySideRenderer.prototype.generateFileHtml = function (file) {\n var _this = this;\n var matcher = Rematch.newMatcherFn(Rematch.newDistanceFn(function (e) { return renderUtils.deconstructLine(e.content, file.isCombined).content; }));\n return file.blocks\n .map(function (block) {\n var fileHtml = {\n left: _this.makeHeaderHtml(block.header, file),\n right: _this.makeHeaderHtml(''),\n };\n _this.applyLineGroupping(block).forEach(function (_a) {\n var contextLines = _a[0], oldLines = _a[1], newLines = _a[2];\n if (oldLines.length && newLines.length && !contextLines.length) {\n _this.applyRematchMatching(oldLines, newLines, matcher).map(function (_a) {\n var oldLines = _a[0], newLines = _a[1];\n var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right;\n fileHtml.left += left;\n fileHtml.right += right;\n });\n }\n else if (contextLines.length) {\n contextLines.forEach(function (line) {\n var _a = renderUtils.deconstructLine(line.content, file.isCombined), prefix = _a.prefix, content = _a.content;\n var _b = _this.generateLineHtml({\n type: renderUtils.CSSLineClass.CONTEXT,\n prefix: prefix,\n content: content,\n number: line.oldNumber,\n }, {\n type: renderUtils.CSSLineClass.CONTEXT,\n prefix: prefix,\n content: content,\n number: line.newNumber,\n }), left = _b.left, right = _b.right;\n fileHtml.left += left;\n fileHtml.right += right;\n });\n }\n else if (oldLines.length || newLines.length) {\n var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right;\n fileHtml.left += left;\n fileHtml.right += right;\n }\n else {\n console.error('Unknown state reached while processing groups of lines', contextLines, oldLines, newLines);\n }\n });\n return fileHtml;\n })\n .reduce(function (accomulated, html) {\n return { left: accomulated.left + html.left, right: accomulated.right + html.right };\n }, { left: '', right: '' });\n };\n SideBySideRenderer.prototype.applyLineGroupping = function (block) {\n var blockLinesGroups = [];\n var oldLines = [];\n var newLines = [];\n for (var i = 0; i < block.lines.length; i++) {\n var diffLine = block.lines[i];\n if ((diffLine.type !== types_1.LineType.INSERT && newLines.length) ||\n (diffLine.type === types_1.LineType.CONTEXT && oldLines.length > 0)) {\n blockLinesGroups.push([[], oldLines, newLines]);\n oldLines = [];\n newLines = [];\n }\n if (diffLine.type === types_1.LineType.CONTEXT) {\n blockLinesGroups.push([[diffLine], [], []]);\n }\n else if (diffLine.type === types_1.LineType.INSERT && oldLines.length === 0) {\n blockLinesGroups.push([[], [], [diffLine]]);\n }\n else if (diffLine.type === types_1.LineType.INSERT && oldLines.length > 0) {\n newLines.push(diffLine);\n }\n else if (diffLine.type === types_1.LineType.DELETE) {\n oldLines.push(diffLine);\n }\n }\n if (oldLines.length || newLines.length) {\n blockLinesGroups.push([[], oldLines, newLines]);\n oldLines = [];\n newLines = [];\n }\n return blockLinesGroups;\n };\n SideBySideRenderer.prototype.applyRematchMatching = function (oldLines, newLines, matcher) {\n var comparisons = oldLines.length * newLines.length;\n var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function (elem) { return elem.content.length; })));\n var doMatching = comparisons < this.config.matchingMaxComparisons &&\n maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison &&\n (this.config.matching === 'lines' || this.config.matching === 'words');\n return doMatching ? matcher(oldLines, newLines) : [[oldLines, newLines]];\n };\n SideBySideRenderer.prototype.makeHeaderHtml = function (blockHeader, file) {\n return this.hoganUtils.render(genericTemplatesPath, 'block-header', {\n CSSLineClass: renderUtils.CSSLineClass,\n blockHeader: (file === null || file === void 0 ? void 0 : file.isTooBig) ? blockHeader : renderUtils.escapeForHtml(blockHeader),\n lineClass: 'd2h-code-side-linenumber',\n contentClass: 'd2h-code-side-line',\n });\n };\n SideBySideRenderer.prototype.processChangedLines = function (isCombined, oldLines, newLines) {\n var fileHtml = {\n right: '',\n left: '',\n };\n var maxLinesNumber = Math.max(oldLines.length, newLines.length);\n for (var i = 0; i < maxLinesNumber; i++) {\n var oldLine = oldLines[i];\n var newLine = newLines[i];\n var diff = oldLine !== undefined && newLine !== undefined\n ? renderUtils.diffHighlight(oldLine.content, newLine.content, isCombined, this.config)\n : undefined;\n var preparedOldLine = oldLine !== undefined && oldLine.oldNumber !== undefined\n ? __assign(__assign({}, (diff !== undefined\n ? {\n prefix: diff.oldLine.prefix,\n content: diff.oldLine.content,\n type: renderUtils.CSSLineClass.DELETE_CHANGES,\n }\n : __assign(__assign({}, renderUtils.deconstructLine(oldLine.content, isCombined)), { type: renderUtils.toCSSClass(oldLine.type) }))), { number: oldLine.oldNumber }) : undefined;\n var preparedNewLine = newLine !== undefined && newLine.newNumber !== undefined\n ? __assign(__assign({}, (diff !== undefined\n ? {\n prefix: diff.newLine.prefix,\n content: diff.newLine.content,\n type: renderUtils.CSSLineClass.INSERT_CHANGES,\n }\n : __assign(__assign({}, renderUtils.deconstructLine(newLine.content, isCombined)), { type: renderUtils.toCSSClass(newLine.type) }))), { number: newLine.newNumber }) : undefined;\n var _a = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a.left, right = _a.right;\n fileHtml.left += left;\n fileHtml.right += right;\n }\n return fileHtml;\n };\n SideBySideRenderer.prototype.generateLineHtml = function (oldLine, newLine) {\n return {\n left: this.generateSingleHtml(oldLine),\n right: this.generateSingleHtml(newLine),\n };\n };\n SideBySideRenderer.prototype.generateSingleHtml = function (line) {\n var lineClass = 'd2h-code-side-linenumber';\n var contentClass = 'd2h-code-side-line';\n return this.hoganUtils.render(genericTemplatesPath, 'line', {\n type: (line === null || line === void 0 ? void 0 : line.type) || \"\".concat(renderUtils.CSSLineClass.CONTEXT, \" d2h-emptyplaceholder\"),\n lineClass: line !== undefined ? lineClass : \"\".concat(lineClass, \" d2h-code-side-emptyplaceholder\"),\n contentClass: line !== undefined ? contentClass : \"\".concat(contentClass, \" d2h-code-side-emptyplaceholder\"),\n prefix: (line === null || line === void 0 ? void 0 : line.prefix) === ' ' ? ' ' : line === null || line === void 0 ? void 0 : line.prefix,\n content: line === null || line === void 0 ? void 0 : line.content,\n lineNumber: line === null || line === void 0 ? void 0 : line.number,\n });\n };\n return SideBySideRenderer;\n}());\nexports.default = SideBySideRenderer;\n//# sourceMappingURL=side-by-side-renderer.js.map","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".key-value{width:100%}.key-value .file-selector.role-link{text-transform:none;padding:0}.key-value .kv-container{display:grid;align-items:center;-moz-column-gap:20px;column-gap:20px}.key-value .kv-container label{margin-bottom:0}.key-value .kv-container .kv-item{width:100%;margin:10px 0 10px 0}.key-value .kv-container .kv-item.extra,.key-value .kv-container .kv-item.key{align-self:flex-start}.key-value .kv-container .kv-item.value .value-container.upload-button{position:relative;display:flex;justify-content:right;align-items:center}.key-value .kv-container .kv-item.value .value-container .file-selector{position:absolute;margin-right:5px}.key-value .kv-container .kv-item.value textarea{padding:10px 10px 10px 10px}.key-value .kv-container .kv-item .text-monospace:not(.conceal){font-family:monospace,monospace}.key-value .remove{text-align:center}.key-value .remove BUTTON{padding:0}.key-value .title{margin-bottom:10px}.key-value .title .read-from-file{float:right}.key-value input{height:40px;line-height:1}.key-value .footer .protip{float:right;padding:5px 0}.key-value .download{text-align:right}.key-value .copy-value{padding:0 0 0 10px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.newMatcherFn = exports.newDistanceFn = exports.levenshtein = void 0;\nfunction levenshtein(a, b) {\n if (a.length === 0) {\n return b.length;\n }\n if (b.length === 0) {\n return a.length;\n }\n var matrix = [];\n var i;\n for (i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n var j;\n for (j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n for (i = 1; i <= b.length; i++) {\n for (j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n }\n else {\n matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1));\n }\n }\n }\n return matrix[b.length][a.length];\n}\nexports.levenshtein = levenshtein;\nfunction newDistanceFn(str) {\n return function (x, y) {\n var xValue = str(x).trim();\n var yValue = str(y).trim();\n var lev = levenshtein(xValue, yValue);\n return lev / (xValue.length + yValue.length);\n };\n}\nexports.newDistanceFn = newDistanceFn;\nfunction newMatcherFn(distance) {\n function findBestMatch(a, b, cache) {\n if (cache === void 0) { cache = new Map(); }\n var bestMatchDist = Infinity;\n var bestMatch;\n for (var i = 0; i < a.length; ++i) {\n for (var j = 0; j < b.length; ++j) {\n var cacheKey = JSON.stringify([a[i], b[j]]);\n var md = void 0;\n if (!(cache.has(cacheKey) && (md = cache.get(cacheKey)))) {\n md = distance(a[i], b[j]);\n cache.set(cacheKey, md);\n }\n if (md < bestMatchDist) {\n bestMatchDist = md;\n bestMatch = { indexA: i, indexB: j, score: bestMatchDist };\n }\n }\n }\n return bestMatch;\n }\n function group(a, b, level, cache) {\n if (level === void 0) { level = 0; }\n if (cache === void 0) { cache = new Map(); }\n var bm = findBestMatch(a, b, cache);\n if (!bm || a.length + b.length < 3) {\n return [[a, b]];\n }\n var a1 = a.slice(0, bm.indexA);\n var b1 = b.slice(0, bm.indexB);\n var aMatch = [a[bm.indexA]];\n var bMatch = [b[bm.indexB]];\n var tailA = bm.indexA + 1;\n var tailB = bm.indexB + 1;\n var a2 = a.slice(tailA);\n var b2 = b.slice(tailB);\n var group1 = group(a1, b1, level + 1, cache);\n var groupMatch = group(aMatch, bMatch, level + 1, cache);\n var group2 = group(a2, b2, level + 1, cache);\n var result = groupMatch;\n if (bm.indexA > 0 || bm.indexB > 0) {\n result = group1.concat(result);\n }\n if (a.length > tailA || b.length > tailB) {\n result = result.concat(group2);\n }\n return result;\n }\n return group;\n}\nexports.newMatcherFn = newMatcherFn;\n//# sourceMappingURL=rematch.js.map","/**\n * @param {string} value\n * @returns {RegExp}\n * */\nfunction escape(value) {\n return new RegExp(value.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), 'm');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: F#\nAuthor: Jonas Follesø \nContributors: Troy Kershaw , Henrik Feldt , Melvyn Laïly \nWebsite: https://docs.microsoft.com/en-us/dotnet/fsharp/\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction fsharp(hljs) {\n const KEYWORDS = [\n \"abstract\",\n \"and\",\n \"as\",\n \"assert\",\n \"base\",\n \"begin\",\n \"class\",\n \"default\",\n \"delegate\",\n \"do\",\n \"done\",\n \"downcast\",\n \"downto\",\n \"elif\",\n \"else\",\n \"end\",\n \"exception\",\n \"extern\",\n // \"false\", // literal\n \"finally\",\n \"fixed\",\n \"for\",\n \"fun\",\n \"function\",\n \"global\",\n \"if\",\n \"in\",\n \"inherit\",\n \"inline\",\n \"interface\",\n \"internal\",\n \"lazy\",\n \"let\",\n \"match\",\n \"member\",\n \"module\",\n \"mutable\",\n \"namespace\",\n \"new\",\n // \"not\", // built_in\n // \"null\", // literal\n \"of\",\n \"open\",\n \"or\",\n \"override\",\n \"private\",\n \"public\",\n \"rec\",\n \"return\",\n \"static\",\n \"struct\",\n \"then\",\n \"to\",\n // \"true\", // literal\n \"try\",\n \"type\",\n \"upcast\",\n \"use\",\n \"val\",\n \"void\",\n \"when\",\n \"while\",\n \"with\",\n \"yield\"\n ];\n\n const BANG_KEYWORD_MODE = {\n // monad builder keywords (matches before non-bang keywords)\n scope: 'keyword',\n match: /\\b(yield|return|let|do|match|use)!/\n };\n\n const PREPROCESSOR_KEYWORDS = [\n \"if\",\n \"else\",\n \"endif\",\n \"line\",\n \"nowarn\",\n \"light\",\n \"r\",\n \"i\",\n \"I\",\n \"load\",\n \"time\",\n \"help\",\n \"quit\"\n ];\n\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"Some\",\n \"None\",\n \"Ok\",\n \"Error\",\n \"infinity\",\n \"infinityf\",\n \"nan\",\n \"nanf\"\n ];\n\n const SPECIAL_IDENTIFIERS = [\n \"__LINE__\",\n \"__SOURCE_DIRECTORY__\",\n \"__SOURCE_FILE__\"\n ];\n\n // Since it's possible to re-bind/shadow names (e.g. let char = 'c'),\n // these builtin types should only be matched when a type name is expected.\n const KNOWN_TYPES = [\n // basic types\n \"bool\",\n \"byte\",\n \"sbyte\",\n \"int8\",\n \"int16\",\n \"int32\",\n \"uint8\",\n \"uint16\",\n \"uint32\",\n \"int\",\n \"uint\",\n \"int64\",\n \"uint64\",\n \"nativeint\",\n \"unativeint\",\n \"decimal\",\n \"float\",\n \"double\",\n \"float32\",\n \"single\",\n \"char\",\n \"string\",\n \"unit\",\n \"bigint\",\n // other native types or lowercase aliases\n \"option\",\n \"voption\",\n \"list\",\n \"array\",\n \"seq\",\n \"byref\",\n \"exn\",\n \"inref\",\n \"nativeptr\",\n \"obj\",\n \"outref\",\n \"voidptr\",\n // other important FSharp types\n \"Result\"\n ];\n\n const BUILTINS = [\n // Somewhat arbitrary list of builtin functions and values.\n // Most of them are declared in Microsoft.FSharp.Core\n // I tried to stay relevant by adding only the most idiomatic\n // and most used symbols that are not already declared as types.\n \"not\",\n \"ref\",\n \"raise\",\n \"reraise\",\n \"dict\",\n \"readOnlyDict\",\n \"set\",\n \"get\",\n \"enum\",\n \"sizeof\",\n \"typeof\",\n \"typedefof\",\n \"nameof\",\n \"nullArg\",\n \"invalidArg\",\n \"invalidOp\",\n \"id\",\n \"fst\",\n \"snd\",\n \"ignore\",\n \"lock\",\n \"using\",\n \"box\",\n \"unbox\",\n \"tryUnbox\",\n \"printf\",\n \"printfn\",\n \"sprintf\",\n \"eprintf\",\n \"eprintfn\",\n \"fprintf\",\n \"fprintfn\",\n \"failwith\",\n \"failwithf\"\n ];\n\n const ALL_KEYWORDS = {\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILTINS,\n 'variable.constant': SPECIAL_IDENTIFIERS\n };\n\n // (* potentially multi-line Meta Language style comment *)\n const ML_COMMENT =\n hljs.COMMENT(/\\(\\*(?!\\))/, /\\*\\)/, {\n contains: [\"self\"]\n });\n // Either a multi-line (* Meta Language style comment *) or a single line // C style comment.\n const COMMENT = {\n variants: [\n ML_COMMENT,\n hljs.C_LINE_COMMENT_MODE,\n ]\n };\n\n // Most identifiers can contain apostrophes\n const IDENTIFIER_RE = /[a-zA-Z_](\\w|')*/;\n\n const QUOTED_IDENTIFIER = {\n scope: 'variable',\n begin: /``/,\n end: /``/\n };\n\n // 'a or ^a where a can be a ``quoted identifier``\n const BEGIN_GENERIC_TYPE_SYMBOL_RE = /\\B('|\\^)/;\n const GENERIC_TYPE_SYMBOL = {\n scope: 'symbol',\n variants: [\n // the type name is a quoted identifier:\n { match: concat(BEGIN_GENERIC_TYPE_SYMBOL_RE, /``.*?``/) },\n // the type name is a normal identifier (we don't use IDENTIFIER_RE because there cannot be another apostrophe here):\n { match: concat(BEGIN_GENERIC_TYPE_SYMBOL_RE, hljs.UNDERSCORE_IDENT_RE) }\n ],\n relevance: 0\n };\n\n const makeOperatorMode = function({ includeEqual }) {\n // List or symbolic operator characters from the FSharp Spec 4.1, minus the dot, and with `?` added, used for nullable operators.\n let allOperatorChars;\n if (includeEqual)\n allOperatorChars = \"!%&*+-/<=>@^|~?\";\n else\n allOperatorChars = \"!%&*+-/<>@^|~?\";\n const OPERATOR_CHARS = Array.from(allOperatorChars);\n const OPERATOR_CHAR_RE = concat('[', ...OPERATOR_CHARS.map(escape), ']');\n // The lone dot operator is special. It cannot be redefined, and we don't want to highlight it. It can be used as part of a multi-chars operator though.\n const OPERATOR_CHAR_OR_DOT_RE = either(OPERATOR_CHAR_RE, /\\./);\n // When a dot is present, it must be followed by another operator char:\n const OPERATOR_FIRST_CHAR_OF_MULTIPLE_RE = concat(OPERATOR_CHAR_OR_DOT_RE, lookahead(OPERATOR_CHAR_OR_DOT_RE));\n const SYMBOLIC_OPERATOR_RE = either(\n concat(OPERATOR_FIRST_CHAR_OF_MULTIPLE_RE, OPERATOR_CHAR_OR_DOT_RE, '*'), // Matches at least 2 chars operators\n concat(OPERATOR_CHAR_RE, '+'), // Matches at least one char operators\n );\n return {\n scope: 'operator',\n match: either(\n // symbolic operators:\n SYMBOLIC_OPERATOR_RE,\n // other symbolic keywords:\n // Type casting and conversion operators:\n /:\\?>/,\n /:\\?/,\n /:>/,\n /:=/, // Reference cell assignment\n /::?/, // : or ::\n /\\$/), // A single $ can be used as an operator\n relevance: 0\n };\n };\n\n const OPERATOR = makeOperatorMode({ includeEqual: true });\n // This variant is used when matching '=' should end a parent mode:\n const OPERATOR_WITHOUT_EQUAL = makeOperatorMode({ includeEqual: false });\n\n const makeTypeAnnotationMode = function(prefix, prefixScope) {\n return {\n begin: concat( // a type annotation is a\n prefix, // should be a colon or the 'of' keyword\n lookahead( // that has to be followed by\n concat(\n /\\s*/, // optional space\n either( // then either of:\n /\\w/, // word\n /'/, // generic type name\n /\\^/, // generic type name\n /#/, // flexible type name\n /``/, // quoted type name\n /\\(/, // parens type expression\n /{\\|/, // anonymous type annotation\n )))),\n beginScope: prefixScope,\n // BUG: because ending with \\n is necessary for some cases, multi-line type annotations are not properly supported.\n // Examples where \\n is required at the end:\n // - abstract member definitions in classes: abstract Property : int * string\n // - return type annotations: let f f' = f' () : returnTypeAnnotation\n // - record fields definitions: { A : int \\n B : string }\n end: lookahead(\n either(\n /\\n/,\n /=/)),\n relevance: 0,\n // we need the known types, and we need the type constraint keywords and literals. e.g.: when 'a : null\n keywords: hljs.inherit(ALL_KEYWORDS, { type: KNOWN_TYPES }),\n contains: [\n COMMENT,\n GENERIC_TYPE_SYMBOL,\n hljs.inherit(QUOTED_IDENTIFIER, { scope: null }), // match to avoid strange patterns inside that may break the parsing\n OPERATOR_WITHOUT_EQUAL\n ]\n };\n };\n\n const TYPE_ANNOTATION = makeTypeAnnotationMode(/:/, 'operator');\n const DISCRIMINATED_UNION_TYPE_ANNOTATION = makeTypeAnnotationMode(/\\bof\\b/, 'keyword');\n\n // type MyType<'a> = ...\n const TYPE_DECLARATION = {\n begin: [\n /(^|\\s+)/, // prevents matching the following: `match s.stype with`\n /type/,\n /\\s+/,\n IDENTIFIER_RE\n ],\n beginScope: {\n 2: 'keyword',\n 4: 'title.class'\n },\n end: lookahead(/\\(|=|$/),\n keywords: ALL_KEYWORDS, // match keywords in type constraints. e.g.: when 'a : null\n contains: [\n COMMENT,\n hljs.inherit(QUOTED_IDENTIFIER, { scope: null }), // match to avoid strange patterns inside that may break the parsing\n GENERIC_TYPE_SYMBOL,\n {\n // For visual consistency, highlight type brackets as operators.\n scope: 'operator',\n match: /<|>/\n },\n TYPE_ANNOTATION // generic types can have constraints, which are type annotations. e.g. type MyType<'T when 'T : delegate> =\n ]\n };\n\n const COMPUTATION_EXPRESSION = {\n // computation expressions:\n scope: 'computation-expression',\n // BUG: might conflict with record deconstruction. e.g. let f { Name = name } = name // will highlight f\n match: /\\b[_a-z]\\w*(?=\\s*\\{)/\n };\n\n const PREPROCESSOR = {\n // preprocessor directives and fsi commands:\n begin: [\n /^\\s*/,\n concat(/#/, either(...PREPROCESSOR_KEYWORDS)),\n /\\b/\n ],\n beginScope: { 2: 'meta' },\n end: lookahead(/\\s|$/)\n };\n\n // TODO: this definition is missing support for type suffixes and octal notation.\n // BUG: range operator without any space is wrongly interpreted as a single number (e.g. 1..10 )\n const NUMBER = {\n variants: [\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n\n // All the following string definitions are potentially multi-line.\n // BUG: these definitions are missing support for byte strings (suffixed with B)\n\n // \"...\"\n const QUOTED_STRING = {\n scope: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE\n ]\n };\n // @\"...\"\n const VERBATIM_STRING = {\n scope: 'string',\n begin: /@\"/,\n end: /\"/,\n contains: [\n {\n match: /\"\"/ // escaped \"\n },\n hljs.BACKSLASH_ESCAPE\n ]\n };\n // \"\"\"...\"\"\"\n const TRIPLE_QUOTED_STRING = {\n scope: 'string',\n begin: /\"\"\"/,\n end: /\"\"\"/,\n relevance: 2\n };\n const SUBST = {\n scope: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: ALL_KEYWORDS\n };\n // $\"...{1+1}...\"\n const INTERPOLATED_STRING = {\n scope: 'string',\n begin: /\\$\"/,\n end: /\"/,\n contains: [\n {\n match: /\\{\\{/ // escaped {\n },\n {\n match: /\\}\\}/ // escaped }\n },\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n // $@\"...{1+1}...\"\n const INTERPOLATED_VERBATIM_STRING = {\n scope: 'string',\n begin: /(\\$@|@\\$)\"/,\n end: /\"/,\n contains: [\n {\n match: /\\{\\{/ // escaped {\n },\n {\n match: /\\}\\}/ // escaped }\n },\n {\n match: /\"\"/\n },\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n // $\"\"\"...{1+1}...\"\"\"\n const INTERPOLATED_TRIPLE_QUOTED_STRING = {\n scope: 'string',\n begin: /\\$\"\"\"/,\n end: /\"\"\"/,\n contains: [\n {\n match: /\\{\\{/ // escaped {\n },\n {\n match: /\\}\\}/ // escaped }\n },\n SUBST\n ],\n relevance: 2\n };\n // '.'\n const CHAR_LITERAL = {\n scope: 'string',\n match: concat(\n /'/,\n either(\n /[^\\\\']/, // either a single non escaped char...\n /\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8})/ // ...or an escape sequence\n ),\n /'/\n )\n };\n // F# allows a lot of things inside string placeholders.\n // Things that don't currently seem allowed by the compiler: types definition, attributes usage.\n // (Strictly speaking, some of the followings are only allowed inside triple quoted interpolated strings...)\n SUBST.contains = [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n QUOTED_STRING,\n CHAR_LITERAL,\n BANG_KEYWORD_MODE,\n COMMENT,\n QUOTED_IDENTIFIER,\n TYPE_ANNOTATION,\n COMPUTATION_EXPRESSION,\n PREPROCESSOR,\n NUMBER,\n GENERIC_TYPE_SYMBOL,\n OPERATOR\n ];\n const STRING = {\n variants: [\n INTERPOLATED_TRIPLE_QUOTED_STRING,\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n TRIPLE_QUOTED_STRING,\n VERBATIM_STRING,\n QUOTED_STRING,\n CHAR_LITERAL\n ]\n };\n\n return {\n name: 'F#',\n aliases: [\n 'fs',\n 'f#'\n ],\n keywords: ALL_KEYWORDS,\n illegal: /\\/\\*/,\n classNameAliases: {\n 'computation-expression': 'keyword'\n },\n contains: [\n BANG_KEYWORD_MODE,\n STRING,\n COMMENT,\n QUOTED_IDENTIFIER,\n TYPE_DECLARATION,\n {\n // e.g. [] or [<``module``: MyCustomAttributeThatWorksOnModules>]\n // or []\n scope: 'meta',\n begin: /\\[\\]/,\n relevance: 2,\n contains: [\n QUOTED_IDENTIFIER,\n // can contain any constant value\n TRIPLE_QUOTED_STRING,\n VERBATIM_STRING,\n QUOTED_STRING,\n CHAR_LITERAL,\n NUMBER\n ]\n },\n DISCRIMINATED_UNION_TYPE_ANNOTATION,\n TYPE_ANNOTATION,\n COMPUTATION_EXPRESSION,\n PREPROCESSOR,\n NUMBER,\n GENERIC_TYPE_SYMBOL,\n OPERATOR\n ]\n };\n}\n\nmodule.exports = fsharp;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".array-list-grouped>.box{position:relative;display:block}.array-list-grouped>.box>.remove{position:absolute;top:0;right:0}.array-list-grouped>.box>.info-box{margin-bottom:0;padding-right:25px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".radio-group:focus{border:none;outline:none}.radio-group h3{position:relative}.radio-group.row{display:flex}.radio-group.row .radio-container{margin-right:10px}.radio-group .label{font-size:14px!important}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".flex-content[data-v-9370b8fe]{display:flex;flex-direction:column;flex-grow:1}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","// style-loader: Adds some css to the DOM by adding a \n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./FileDiff.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./FileDiff.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileDiff.vue?vue&type=template&id=0137ea75&scoped=true\"\nimport script from \"./FileDiff.vue?vue&type=script&lang=js\"\nexport * from \"./FileDiff.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileDiff.vue?vue&type=style&index=0&id=0137ea75&prod&lang=scss&scoped=true\"\nimport style1 from \"./FileDiff.vue?vue&type=style&index=1&id=0137ea75&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0137ea75\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./YamlEditor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./YamlEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./YamlEditor.vue?vue&type=template&id=cf2bae46&scoped=true\"\nimport script from \"./YamlEditor.vue?vue&type=script&lang=js\"\nexport * from \"./YamlEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./YamlEditor.vue?vue&type=style&index=0&id=cf2bae46&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cf2bae46\",\n null\n \n)\n\nexport default component.exports","/*!\n\n diff v5.1.0\n\nSoftware License Agreement (BSD License)\n\nCopyright (c) 2009-2015, Kevin Decker \n\nAll rights reserved.\n\nRedistribution and use of this software in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above\n copyright notice, this list of conditions and the\n following disclaimer.\n\n* Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the\n following disclaimer in the documentation and/or other\n materials provided with the distribution.\n\n* Neither the name of Kevin Decker nor the names of its\n contributors may be used to endorse or promote products\n derived from this software without specific prior\n written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\nIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\nOF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n@license\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.Diff = {}));\n}(this, (function (exports) { 'use strict';\n\n function Diff() {}\n Diff.prototype = {\n diff: function diff(oldString, newString) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = options.callback;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = options;\n var self = this;\n\n function done(value) {\n if (callback) {\n setTimeout(function () {\n callback(undefined, value);\n }, 0);\n return true;\n } else {\n return value;\n }\n } // Allow subclasses to massage the input prior to running\n\n\n oldString = this.castInput(oldString);\n newString = this.castInput(newString);\n oldString = this.removeEmpty(this.tokenize(oldString));\n newString = this.removeEmpty(this.tokenize(newString));\n var newLen = newString.length,\n oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n\n if (options.maxEditLength) {\n maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n }\n\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n // Identity per the equality and tokenizer\n return done([{\n value: this.join(newString),\n count: newString.length\n }]);\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath = void 0;\n\n var addPath = bestPath[diagonalPath - 1],\n removePath = bestPath[diagonalPath + 1],\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen,\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n } // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced, or until the edit length exceeds options.maxEditLength (if given),\n // in which case it will return undefined.\n\n\n if (callback) {\n (function exec() {\n setTimeout(function () {\n if (editLength > maxEditLength) {\n return callback();\n }\n\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n }\n },\n pushComponent: function pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath,\n commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n equals: function equals(left, right) {\n if (this.options.comparator) {\n return this.options.comparator(left, right);\n } else {\n return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n },\n removeEmpty: function removeEmpty(array) {\n var ret = [];\n\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n\n return ret;\n },\n castInput: function castInput(value) {\n return value;\n },\n tokenize: function tokenize(value) {\n return value.split('');\n },\n join: function join(chars) {\n return chars.join('');\n }\n };\n\n function buildValues(diff, components, newString, oldString, useLongestToken) {\n var componentPos = 0,\n componentLen = components.length,\n newPos = 0,\n oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = diff.join(value);\n } else {\n component.value = diff.join(newString.slice(newPos, newPos + component.count));\n }\n\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n oldPos += component.count; // Reverse add and remove so removes are output first to match common convention\n // The diffing algorithm is tied to add then remove output and this is the simplest\n // route to get the desired output with minimal overhead.\n\n if (componentPos && components[componentPos - 1].added) {\n var tmp = components[componentPos - 1];\n components[componentPos - 1] = components[componentPos];\n components[componentPos] = tmp;\n }\n }\n } // Special case handle for when one terminal is ignored (i.e. whitespace).\n // For this case we merge the terminal into the prior string and drop the change.\n // This is only available for string mode.\n\n\n var lastComponent = components[componentLen - 1];\n\n if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n components[componentLen - 2].value += lastComponent.value;\n components.pop();\n }\n\n return components;\n }\n\n function clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n }\n\n var characterDiff = new Diff();\n function diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n }\n\n function generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n } else if (options) {\n for (var name in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(name)) {\n defaults[name] = options[name];\n }\n }\n }\n\n return defaults;\n }\n\n //\n // Ranges and exceptions:\n // Latin-1 Supplement, 0080–00FF\n // - U+00D7 × Multiplication sign\n // - U+00F7 ÷ Division sign\n // Latin Extended-A, 0100–017F\n // Latin Extended-B, 0180–024F\n // IPA Extensions, 0250–02AF\n // Spacing Modifier Letters, 02B0–02FF\n // - U+02C7 ˇ ˇ Caron\n // - U+02D8 ˘ ˘ Breve\n // - U+02D9 ˙ ˙ Dot Above\n // - U+02DA ˚ ˚ Ring Above\n // - U+02DB ˛ ˛ Ogonek\n // - U+02DC ˜ ˜ Small Tilde\n // - U+02DD ˝ ˝ Double Acute Accent\n // Latin Extended Additional, 1E00–1EFF\n\n var extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\n var reWhitespace = /\\S/;\n var wordDiff = new Diff();\n\n wordDiff.equals = function (left, right) {\n if (this.options.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n\n return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\n };\n\n wordDiff.tokenize = function (value) {\n // All whitespace symbols except newline group into one token, each newline - in separate token\n var tokens = value.split(/([^\\S\\r\\n]+|[()[\\]{}'\"\\r\\n]|\\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\n\n for (var i = 0; i < tokens.length - 1; i++) {\n // If we have an empty string in the next field and we have only word chars before and after, merge\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\n tokens[i] += tokens[i + 2];\n tokens.splice(i + 1, 2);\n i--;\n }\n }\n\n return tokens;\n };\n\n function diffWords(oldStr, newStr, options) {\n options = generateOptions(options, {\n ignoreWhitespace: true\n });\n return wordDiff.diff(oldStr, newStr, options);\n }\n function diffWordsWithSpace(oldStr, newStr, options) {\n return wordDiff.diff(oldStr, newStr, options);\n }\n\n var lineDiff = new Diff();\n\n lineDiff.tokenize = function (value) {\n var retLines = [],\n linesAndNewlines = value.split(/(\\n|\\r\\n)/); // Ignore the final empty token that occurs if the string ends with a new line\n\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n } // Merge the content and line separators into single tokens\n\n\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line = linesAndNewlines[i];\n\n if (i % 2 && !this.options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n } else {\n if (this.options.ignoreWhitespace) {\n line = line.trim();\n }\n\n retLines.push(line);\n }\n }\n\n return retLines;\n };\n\n function diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n }\n function diffTrimmedLines(oldStr, newStr, callback) {\n var options = generateOptions(callback, {\n ignoreWhitespace: true\n });\n return lineDiff.diff(oldStr, newStr, options);\n }\n\n var sentenceDiff = new Diff();\n\n sentenceDiff.tokenize = function (value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n };\n\n function diffSentences(oldStr, newStr, callback) {\n return sentenceDiff.diff(oldStr, newStr, callback);\n }\n\n var cssDiff = new Diff();\n\n cssDiff.tokenize = function (value) {\n return value.split(/([{}:;,]|\\s+)/);\n };\n\n function diffCss(oldStr, newStr, callback) {\n return cssDiff.diff(oldStr, newStr, callback);\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var objectPrototypeToString = Object.prototype.toString;\n var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n\n jsonDiff.useLongestToken = true;\n jsonDiff.tokenize = lineDiff.tokenize;\n\n jsonDiff.castInput = function (value) {\n var _this$options = this.options,\n undefinedReplacement = _this$options.undefinedReplacement,\n _this$options$stringi = _this$options.stringifyReplacer,\n stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {\n return typeof v === 'undefined' ? undefinedReplacement : v;\n } : _this$options$stringi;\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');\n };\n\n jsonDiff.equals = function (left, right) {\n return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'));\n };\n\n function diffJson(oldObj, newObj, options) {\n return jsonDiff.diff(oldObj, newObj, options);\n } // This function handles the presence of circular references by bailing out when encountering an\n // object that is already on the \"stack\" of items being processed. Accepts an optional replacer\n\n function canonicalize(obj, stack, replacementStack, replacer, key) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n\n if (replacer) {\n obj = replacer(key, obj);\n }\n\n var i;\n\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n\n var canonicalizedObj;\n\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);\n }\n\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n\n if (_typeof(obj) === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n\n var sortedKeys = [],\n _key;\n\n for (_key in obj) {\n /* istanbul ignore else */\n if (obj.hasOwnProperty(_key)) {\n sortedKeys.push(_key);\n }\n }\n\n sortedKeys.sort();\n\n for (i = 0; i < sortedKeys.length; i += 1) {\n _key = sortedKeys[i];\n canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);\n }\n\n stack.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n\n return canonicalizedObj;\n }\n\n var arrayDiff = new Diff();\n\n arrayDiff.tokenize = function (value) {\n return value.slice();\n };\n\n arrayDiff.join = arrayDiff.removeEmpty = function (value) {\n return value;\n };\n\n function diffArrays(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n }\n\n function parsePatch(uniDiff) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var diffstr = uniDiff.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = uniDiff.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n list = [],\n i = 0;\n\n function parseIndex() {\n var index = {};\n list.push(index); // Parse diff metadata\n\n while (i < diffstr.length) {\n var line = diffstr[i]; // File header found, end parsing diff metadata\n\n if (/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/.test(line)) {\n break;\n } // Diff index\n\n\n var header = /^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/.exec(line);\n\n if (header) {\n index.index = header[1];\n }\n\n i++;\n } // Parse file headers if they are defined. Unified diff requires them, but\n // there's no technical issues to have an isolated hunk without file header\n\n\n parseFileHeader(index);\n parseFileHeader(index); // Parse hunks\n\n index.hunks = [];\n\n while (i < diffstr.length) {\n var _line = diffstr[i];\n\n if (/^(Index:|diff|\\-\\-\\-|\\+\\+\\+)\\s/.test(_line)) {\n break;\n } else if (/^@@/.test(_line)) {\n index.hunks.push(parseHunk());\n } else if (_line && options.strict) {\n // Ignore unexpected content unless in strict mode\n throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));\n } else {\n i++;\n }\n }\n } // Parses the --- and +++ headers, if none are found, no lines\n // are consumed.\n\n\n function parseFileHeader(index) {\n var fileHeader = /^(---|\\+\\+\\+)\\s+(.*)$/.exec(diffstr[i]);\n\n if (fileHeader) {\n var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n var data = fileHeader[2].split('\\t', 2);\n var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n\n if (/^\".*\"$/.test(fileName)) {\n fileName = fileName.substr(1, fileName.length - 2);\n }\n\n index[keyPrefix + 'FileName'] = fileName;\n index[keyPrefix + 'Header'] = (data[1] || '').trim();\n i++;\n }\n } // Parses a hunk\n // This assumes that we are at the start of a hunk.\n\n\n function parseHunk() {\n var chunkHeaderIndex = i,\n chunkHeaderLine = diffstr[i++],\n chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n var hunk = {\n oldStart: +chunkHeader[1],\n oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],\n newStart: +chunkHeader[3],\n newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],\n lines: [],\n linedelimiters: []\n }; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart += 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart += 1;\n }\n\n var addCount = 0,\n removeCount = 0;\n\n for (; i < diffstr.length; i++) {\n // Lines starting with '---' could be mistaken for the \"remove line\" operation\n // But they could be the header for the next file. Therefore prune such cases out.\n if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {\n break;\n }\n\n var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];\n\n if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n hunk.lines.push(diffstr[i]);\n hunk.linedelimiters.push(delimiters[i] || '\\n');\n\n if (operation === '+') {\n addCount++;\n } else if (operation === '-') {\n removeCount++;\n } else if (operation === ' ') {\n addCount++;\n removeCount++;\n }\n } else {\n break;\n }\n } // Handle the empty block count case\n\n\n if (!addCount && hunk.newLines === 1) {\n hunk.newLines = 0;\n }\n\n if (!removeCount && hunk.oldLines === 1) {\n hunk.oldLines = 0;\n } // Perform optional sanity checking\n\n\n if (options.strict) {\n if (addCount !== hunk.newLines) {\n throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n\n if (removeCount !== hunk.oldLines) {\n throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n }\n\n return hunk;\n }\n\n while (i < diffstr.length) {\n parseIndex();\n }\n\n return list;\n }\n\n // Iterator that traverses in the range of [min, max], stepping\n // by distance from a given start position. I.e. for [0, 4], with\n // start of 2, this will iterate 2, 3, 1, 4, 0.\n function distanceIterator (start, minLine, maxLine) {\n var wantForward = true,\n backwardExhausted = false,\n forwardExhausted = false,\n localOffset = 1;\n return function iterator() {\n if (wantForward && !forwardExhausted) {\n if (backwardExhausted) {\n localOffset++;\n } else {\n wantForward = false;\n } // Check if trying to fit beyond text length, and if not, check it fits\n // after offset location (or desired location on first iteration)\n\n\n if (start + localOffset <= maxLine) {\n return localOffset;\n }\n\n forwardExhausted = true;\n }\n\n if (!backwardExhausted) {\n if (!forwardExhausted) {\n wantForward = true;\n } // Check if trying to fit before text beginning, and if not, check it fits\n // before offset location\n\n\n if (minLine <= start - localOffset) {\n return -localOffset++;\n }\n\n backwardExhausted = true;\n return iterator();\n } // We tried to fit hunk before text beginning and beyond text length, then\n // hunk can't fit on the text. Return undefined\n\n };\n }\n\n function applyPatch(source, uniDiff) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n if (Array.isArray(uniDiff)) {\n if (uniDiff.length > 1) {\n throw new Error('applyPatch only works with a single input.');\n }\n\n uniDiff = uniDiff[0];\n } // Apply the diff to the input\n\n\n var lines = source.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = source.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n hunks = uniDiff.hunks,\n compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {\n return line === patchContent;\n },\n errorCount = 0,\n fuzzFactor = options.fuzzFactor || 0,\n minLine = 0,\n offset = 0,\n removeEOFNL,\n addEOFNL;\n /**\n * Checks if the hunk exactly fits on the provided location\n */\n\n\n function hunkFits(hunk, toPos) {\n for (var j = 0; j < hunk.lines.length; j++) {\n var line = hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line;\n\n if (operation === ' ' || operation === '-') {\n // Context sanity check\n if (!compareLine(toPos + 1, lines[toPos], operation, content)) {\n errorCount++;\n\n if (errorCount > fuzzFactor) {\n return false;\n }\n }\n\n toPos++;\n }\n }\n\n return true;\n } // Search best fit offsets for each hunk based on the previous ones\n\n\n for (var i = 0; i < hunks.length; i++) {\n var hunk = hunks[i],\n maxLine = lines.length - hunk.oldLines,\n localOffset = 0,\n toPos = offset + hunk.oldStart - 1;\n var iterator = distanceIterator(toPos, minLine, maxLine);\n\n for (; localOffset !== undefined; localOffset = iterator()) {\n if (hunkFits(hunk, toPos + localOffset)) {\n hunk.offset = offset += localOffset;\n break;\n }\n }\n\n if (localOffset === undefined) {\n return false;\n } // Set lower text limit to end of the current hunk, so next ones don't try\n // to fit over already patched text\n\n\n minLine = hunk.offset + hunk.oldStart + hunk.oldLines;\n } // Apply patch hunks\n\n\n var diffOffset = 0;\n\n for (var _i = 0; _i < hunks.length; _i++) {\n var _hunk = hunks[_i],\n _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;\n\n diffOffset += _hunk.newLines - _hunk.oldLines;\n\n for (var j = 0; j < _hunk.lines.length; j++) {\n var line = _hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line,\n delimiter = _hunk.linedelimiters[j];\n\n if (operation === ' ') {\n _toPos++;\n } else if (operation === '-') {\n lines.splice(_toPos, 1);\n delimiters.splice(_toPos, 1);\n /* istanbul ignore else */\n } else if (operation === '+') {\n lines.splice(_toPos, 0, content);\n delimiters.splice(_toPos, 0, delimiter);\n _toPos++;\n } else if (operation === '\\\\') {\n var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;\n\n if (previousOperation === '+') {\n removeEOFNL = true;\n } else if (previousOperation === '-') {\n addEOFNL = true;\n }\n }\n }\n } // Handle EOFNL insertion/removal\n\n\n if (removeEOFNL) {\n while (!lines[lines.length - 1]) {\n lines.pop();\n delimiters.pop();\n }\n } else if (addEOFNL) {\n lines.push('');\n delimiters.push('\\n');\n }\n\n for (var _k = 0; _k < lines.length - 1; _k++) {\n lines[_k] = lines[_k] + delimiters[_k];\n }\n\n return lines.join('');\n } // Wrapper that supports multiple file patches via callbacks.\n\n function applyPatches(uniDiff, options) {\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n var currentIndex = 0;\n\n function processIndex() {\n var index = uniDiff[currentIndex++];\n\n if (!index) {\n return options.complete();\n }\n\n options.loadFile(index, function (err, data) {\n if (err) {\n return options.complete(err);\n }\n\n var updatedContent = applyPatch(data, index, options);\n options.patched(index, updatedContent, function (err) {\n if (err) {\n return options.complete(err);\n }\n\n processIndex();\n });\n });\n }\n\n processIndex();\n }\n\n function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof options.context === 'undefined') {\n options.context = 4;\n }\n\n var diff = diffLines(oldStr, newStr, options);\n\n if (!diff) {\n return;\n }\n\n diff.push({\n value: '',\n lines: []\n }); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function (entry) {\n return ' ' + entry;\n });\n }\n\n var hunks = [];\n var oldRangeStart = 0,\n newRangeStart = 0,\n curRange = [],\n oldLine = 1,\n newLine = 1;\n\n var _loop = function _loop(i) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n var _curRange;\n\n // If we have previous context, start with that\n if (!oldRangeStart) {\n var prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n } // Output our changes\n\n\n (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {\n return (current.added ? '+' : '-') + entry;\n }))); // Track the updated file position\n\n\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\n var _curRange2;\n\n // Overlapping\n (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));\n } else {\n var _curRange3;\n\n // end the range and output\n var contextSize = Math.min(lines.length, options.context);\n\n (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));\n\n var hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n\n if (i >= diff.length - 2 && lines.length <= options.context) {\n // EOF is inside this hunk\n var oldEOFNewline = /\\n$/.test(oldStr);\n var newEOFNewline = /\\n$/.test(newStr);\n var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;\n\n if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {\n // special case: old has no eol and no trailing context; no-nl can end up before adds\n // however, if the old file is empty, do not output the no-nl line\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\n }\n\n if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {\n curRange.push('\\\\ No newline at end of file');\n }\n }\n\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n\n for (var i = 0; i < diff.length; i++) {\n _loop(i);\n }\n\n return {\n oldFileName: oldFileName,\n newFileName: newFileName,\n oldHeader: oldHeader,\n newHeader: newHeader,\n hunks: hunks\n };\n }\n function formatPatch(diff) {\n var ret = [];\n\n if (diff.oldFileName == diff.newFileName) {\n ret.push('Index: ' + diff.oldFileName);\n }\n\n ret.push('===================================================================');\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n for (var i = 0; i < diff.hunks.length; i++) {\n var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\n ret.push.apply(ret, hunk.lines);\n }\n\n return ret.join('\\n') + '\\n';\n }\n function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));\n }\n function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n }\n\n function arrayEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n return arrayStartsWith(a, b);\n }\n function arrayStartsWith(array, start) {\n if (start.length > array.length) {\n return false;\n }\n\n for (var i = 0; i < start.length; i++) {\n if (start[i] !== array[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function calcLineCount(hunk) {\n var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),\n oldLines = _calcOldNewLineCount.oldLines,\n newLines = _calcOldNewLineCount.newLines;\n\n if (oldLines !== undefined) {\n hunk.oldLines = oldLines;\n } else {\n delete hunk.oldLines;\n }\n\n if (newLines !== undefined) {\n hunk.newLines = newLines;\n } else {\n delete hunk.newLines;\n }\n }\n function merge(mine, theirs, base) {\n mine = loadPatch(mine, base);\n theirs = loadPatch(theirs, base);\n var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.\n // Leaving sanity checks on this to the API consumer that may know more about the\n // meaning in their own context.\n\n if (mine.index || theirs.index) {\n ret.index = mine.index || theirs.index;\n }\n\n if (mine.newFileName || theirs.newFileName) {\n if (!fileNameChanged(mine)) {\n // No header or no change in ours, use theirs (and ours if theirs does not exist)\n ret.oldFileName = theirs.oldFileName || mine.oldFileName;\n ret.newFileName = theirs.newFileName || mine.newFileName;\n ret.oldHeader = theirs.oldHeader || mine.oldHeader;\n ret.newHeader = theirs.newHeader || mine.newHeader;\n } else if (!fileNameChanged(theirs)) {\n // No header or no change in theirs, use ours\n ret.oldFileName = mine.oldFileName;\n ret.newFileName = mine.newFileName;\n ret.oldHeader = mine.oldHeader;\n ret.newHeader = mine.newHeader;\n } else {\n // Both changed... figure it out\n ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);\n ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);\n ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);\n ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);\n }\n }\n\n ret.hunks = [];\n var mineIndex = 0,\n theirsIndex = 0,\n mineOffset = 0,\n theirsOffset = 0;\n\n while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {\n var mineCurrent = mine.hunks[mineIndex] || {\n oldStart: Infinity\n },\n theirsCurrent = theirs.hunks[theirsIndex] || {\n oldStart: Infinity\n };\n\n if (hunkBefore(mineCurrent, theirsCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(mineCurrent, mineOffset));\n mineIndex++;\n theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;\n } else if (hunkBefore(theirsCurrent, mineCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));\n theirsIndex++;\n mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;\n } else {\n // Overlap, merge as best we can\n var mergedHunk = {\n oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),\n oldLines: 0,\n newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),\n newLines: 0,\n lines: []\n };\n mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);\n theirsIndex++;\n mineIndex++;\n ret.hunks.push(mergedHunk);\n }\n }\n\n return ret;\n }\n\n function loadPatch(param, base) {\n if (typeof param === 'string') {\n if (/^@@/m.test(param) || /^Index:/m.test(param)) {\n return parsePatch(param)[0];\n }\n\n if (!base) {\n throw new Error('Must provide a base reference or pass in a patch');\n }\n\n return structuredPatch(undefined, undefined, base, param);\n }\n\n return param;\n }\n\n function fileNameChanged(patch) {\n return patch.newFileName && patch.newFileName !== patch.oldFileName;\n }\n\n function selectField(index, mine, theirs) {\n if (mine === theirs) {\n return mine;\n } else {\n index.conflict = true;\n return {\n mine: mine,\n theirs: theirs\n };\n }\n }\n\n function hunkBefore(test, check) {\n return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;\n }\n\n function cloneHunk(hunk, offset) {\n return {\n oldStart: hunk.oldStart,\n oldLines: hunk.oldLines,\n newStart: hunk.newStart + offset,\n newLines: hunk.newLines,\n lines: hunk.lines\n };\n }\n\n function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {\n // This will generally result in a conflicted hunk, but there are cases where the context\n // is the only overlap where we can successfully merge the content here.\n var mine = {\n offset: mineOffset,\n lines: mineLines,\n index: 0\n },\n their = {\n offset: theirOffset,\n lines: theirLines,\n index: 0\n }; // Handle any leading content\n\n insertLeading(hunk, mine, their);\n insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.\n\n while (mine.index < mine.lines.length && their.index < their.lines.length) {\n var mineCurrent = mine.lines[mine.index],\n theirCurrent = their.lines[their.index];\n\n if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {\n // Both modified ...\n mutualChange(hunk, mine, their);\n } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {\n var _hunk$lines;\n\n // Mine inserted\n (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));\n } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {\n var _hunk$lines2;\n\n // Theirs inserted\n (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));\n } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {\n // Mine removed or edited\n removal(hunk, mine, their);\n } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {\n // Their removed or edited\n removal(hunk, their, mine, true);\n } else if (mineCurrent === theirCurrent) {\n // Context identity\n hunk.lines.push(mineCurrent);\n mine.index++;\n their.index++;\n } else {\n // Context mismatch\n conflict(hunk, collectChange(mine), collectChange(their));\n }\n } // Now push anything that may be remaining\n\n\n insertTrailing(hunk, mine);\n insertTrailing(hunk, their);\n calcLineCount(hunk);\n }\n\n function mutualChange(hunk, mine, their) {\n var myChanges = collectChange(mine),\n theirChanges = collectChange(their);\n\n if (allRemoves(myChanges) && allRemoves(theirChanges)) {\n // Special case for remove changes that are supersets of one another\n if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {\n var _hunk$lines3;\n\n (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));\n\n return;\n } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {\n var _hunk$lines4;\n\n (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));\n\n return;\n }\n } else if (arrayEqual(myChanges, theirChanges)) {\n var _hunk$lines5;\n\n (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));\n\n return;\n }\n\n conflict(hunk, myChanges, theirChanges);\n }\n\n function removal(hunk, mine, their, swap) {\n var myChanges = collectChange(mine),\n theirChanges = collectContext(their, myChanges);\n\n if (theirChanges.merged) {\n var _hunk$lines6;\n\n (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));\n } else {\n conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);\n }\n }\n\n function conflict(hunk, mine, their) {\n hunk.conflict = true;\n hunk.lines.push({\n conflict: true,\n mine: mine,\n theirs: their\n });\n }\n\n function insertLeading(hunk, insert, their) {\n while (insert.offset < their.offset && insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n insert.offset++;\n }\n }\n\n function insertTrailing(hunk, insert) {\n while (insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n }\n }\n\n function collectChange(state) {\n var ret = [],\n operation = state.lines[state.index][0];\n\n while (state.index < state.lines.length) {\n var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one \"atomic\" modify change.\n\n if (operation === '-' && line[0] === '+') {\n operation = '+';\n }\n\n if (operation === line[0]) {\n ret.push(line);\n state.index++;\n } else {\n break;\n }\n }\n\n return ret;\n }\n\n function collectContext(state, matchChanges) {\n var changes = [],\n merged = [],\n matchIndex = 0,\n contextChanges = false,\n conflicted = false;\n\n while (matchIndex < matchChanges.length && state.index < state.lines.length) {\n var change = state.lines[state.index],\n match = matchChanges[matchIndex]; // Once we've hit our add, then we are done\n\n if (match[0] === '+') {\n break;\n }\n\n contextChanges = contextChanges || change[0] !== ' ';\n merged.push(match);\n matchIndex++; // Consume any additions in the other block as a conflict to attempt\n // to pull in the remaining context after this\n\n if (change[0] === '+') {\n conflicted = true;\n\n while (change[0] === '+') {\n changes.push(change);\n change = state.lines[++state.index];\n }\n }\n\n if (match.substr(1) === change.substr(1)) {\n changes.push(change);\n state.index++;\n } else {\n conflicted = true;\n }\n }\n\n if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {\n conflicted = true;\n }\n\n if (conflicted) {\n return changes;\n }\n\n while (matchIndex < matchChanges.length) {\n merged.push(matchChanges[matchIndex++]);\n }\n\n return {\n merged: merged,\n changes: changes\n };\n }\n\n function allRemoves(changes) {\n return changes.reduce(function (prev, change) {\n return prev && change[0] === '-';\n }, true);\n }\n\n function skipRemoveSuperset(state, removeChanges, delta) {\n for (var i = 0; i < delta; i++) {\n var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);\n\n if (state.lines[state.index + i] !== ' ' + changeContent) {\n return false;\n }\n }\n\n state.index += delta;\n return true;\n }\n\n function calcOldNewLineCount(lines) {\n var oldLines = 0;\n var newLines = 0;\n lines.forEach(function (line) {\n if (typeof line !== 'string') {\n var myCount = calcOldNewLineCount(line.mine);\n var theirCount = calcOldNewLineCount(line.theirs);\n\n if (oldLines !== undefined) {\n if (myCount.oldLines === theirCount.oldLines) {\n oldLines += myCount.oldLines;\n } else {\n oldLines = undefined;\n }\n }\n\n if (newLines !== undefined) {\n if (myCount.newLines === theirCount.newLines) {\n newLines += myCount.newLines;\n } else {\n newLines = undefined;\n }\n }\n } else {\n if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {\n newLines++;\n }\n\n if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {\n oldLines++;\n }\n }\n });\n return {\n oldLines: oldLines,\n newLines: newLines\n };\n }\n\n // See: http://code.google.com/p/google-diff-match-patch/wiki/API\n function convertChangesToDMP(changes) {\n var ret = [],\n change,\n operation;\n\n for (var i = 0; i < changes.length; i++) {\n change = changes[i];\n\n if (change.added) {\n operation = 1;\n } else if (change.removed) {\n operation = -1;\n } else {\n operation = 0;\n }\n\n ret.push([operation, change.value]);\n }\n\n return ret;\n }\n\n function convertChangesToXML(changes) {\n var ret = [];\n\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n\n if (change.added) {\n ret.push('');\n } else if (change.removed) {\n ret.push('');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('');\n } else if (change.removed) {\n ret.push('');\n }\n }\n\n return ret.join('');\n }\n\n function escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&');\n n = n.replace(//g, '>');\n n = n.replace(/\"/g, '"');\n return n;\n }\n\n exports.Diff = Diff;\n exports.applyPatch = applyPatch;\n exports.applyPatches = applyPatches;\n exports.canonicalize = canonicalize;\n exports.convertChangesToDMP = convertChangesToDMP;\n exports.convertChangesToXML = convertChangesToXML;\n exports.createPatch = createPatch;\n exports.createTwoFilesPatch = createTwoFilesPatch;\n exports.diffArrays = diffArrays;\n exports.diffChars = diffChars;\n exports.diffCss = diffCss;\n exports.diffJson = diffJson;\n exports.diffLines = diffLines;\n exports.diffSentences = diffSentences;\n exports.diffTrimmedLines = diffTrimmedLines;\n exports.diffWords = diffWords;\n exports.diffWordsWithSpace = diffWordsWithSpace;\n exports.merge = merge;\n exports.parsePatch = parsePatch;\n exports.structuredPatch = structuredPatch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.isView)?_c('button',{staticClass:\"file-selector btn\",attrs:{\"disabled\":_vm.disabled,\"type\":\"button\"},on:{\"click\":_vm.selectFile}},[_c('span',[_vm._v(_vm._s(_vm.label))]),_c('input',{ref:\"uploader\",staticClass:\"hide\",attrs:{\"type\":\"file\",\"multiple\":_vm.multiple,\"webkitdirectory\":_vm.directory,\"accept\":_vm.accept},on:{\"change\":_vm.fileChange}})]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./FileSelector.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./FileSelector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileSelector.vue?vue&type=template&id=59634b26\"\nimport script from \"./FileSelector.vue?vue&type=script&lang=js\"\nexport * from \"./FileSelector.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('client-only',{attrs:{\"placeholder\":\" Loading...\"}},[_c('div',{staticClass:\"code-mirror\",class:{['as-text-area']: _vm.asTextArea}},[(_vm.loaded)?_c('codemirror',{ref:\"codeMirrorRef\",attrs:{\"value\":_vm.value,\"options\":_vm.combinedOptions,\"disabled\":_vm.isDisabled},on:{\"ready\":_vm.onReady,\"input\":_vm.onInput,\"changes\":_vm.onChanges,\"focus\":_vm.onFocus,\"blur\":_vm.onBlur}}):_c('div',[_vm._v(\" Loading... \")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeMirror.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeMirror.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CodeMirror.vue?vue&type=template&id=766d41e5\"\nimport script from \"./CodeMirror.vue?vue&type=script&lang=js\"\nexport * from \"./CodeMirror.vue?vue&type=script&lang=js\"\nimport style0 from \"./CodeMirror.vue?vue&type=style&index=0&id=766d41e5&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrayList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrayList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ArrayList.vue?vue&type=template&id=3ee5f0b3&scoped=true\"\nimport script from \"./ArrayList.vue?vue&type=script&lang=js\"\nexport * from \"./ArrayList.vue?vue&type=script&lang=js\"\nimport style0 from \"./ArrayList.vue?vue&type=style&index=0&id=3ee5f0b3&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ee5f0b3\",\n null\n \n)\n\nexport default component.exports","\n\n\n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrayListGrouped.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrayListGrouped.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ArrayListGrouped.vue?vue&type=template&id=ddcf7ebe\"\nimport script from \"./ArrayListGrouped.vue?vue&type=script&lang=js\"\nexport * from \"./ArrayListGrouped.vue?vue&type=script&lang=js\"\nimport style0 from \"./ArrayListGrouped.vue?vue&type=style&index=0&id=ddcf7ebe&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"key-value\"},[(_vm.title || _vm.$slots.title)?_c('div',{staticClass:\"clearfix\"},[_vm._t(\"title\",function(){return [_c('h3',[_vm._v(\" \"+_vm._s(_vm.title)+\" \"),(_vm.titleProtip)?_c('i',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.titleProtip),expression:\"titleProtip\"}],staticClass:\"icon icon-info\"}):_vm._e()])]})],2):_vm._e(),_c('div',{staticClass:\"kv-container\",style:(_vm.containerStyle)},[(_vm.rows.length || _vm.isView)?[_c('label',{staticClass:\"text-label\"},[_vm._v(\" \"+_vm._s(_vm.keyLabel)+\" \"),(_vm.protip && !_vm.isView && _vm.addAllowed)?_c('i',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.protip),expression:\"protip\"}],staticClass:\"icon icon-info\"}):_vm._e()]),_c('label',{staticClass:\"text-label\"},[_vm._v(\" \"+_vm._s(_vm.valueLabel)+\" \")]),_vm._l((_vm.extraColumns),function(c){return _c('label',{key:c},[_vm._t('label:'+c,function(){return [_vm._v(_vm._s(c))]})],2)}),(_vm.canRemove)?_vm._t(\"remove\",function(){return [_c('span')]}):_vm._e()]:_vm._e(),(!_vm.rows.length && _vm.isView)?[_c('div',{staticClass:\"kv-item key text-muted\"},[_vm._v(\" — \")]),_c('div',{staticClass:\"kv-item key text-muted\"},[_vm._v(\" — \")])]:_vm._l((_vm.filteredRows),function(row,i){return [_c('div',{key:i+'key',staticClass:\"kv-item key\"},[_vm._t(\"key\",function(){return [(_vm.keyOptions)?_c('Select',{ref:\"key\",refInFor:true,attrs:{\"searchable\":true,\"disabled\":_vm.disabled || _vm.isProtected(row.key),\"clearable\":false,\"taggable\":_vm.keyTaggable,\"options\":_vm.calculateOptions(row[_vm.keyName]),\"data-testid\":`select-kv-item-key-${i}`},on:{\"input\":_vm.queueUpdate},model:{value:(row[_vm.keyName]),callback:function ($$v) {_vm.$set(row, _vm.keyName, $$v)},expression:\"row[keyName]\"}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row[_vm.keyName]),expression:\"row[keyName]\"}],ref:\"key\",refInFor:true,attrs:{\"disabled\":_vm.isView || _vm.disabled || !_vm.keyEditable || _vm.isProtected(row.key),\"placeholder\":_vm.keyPlaceholder,\"data-testid\":`input-kv-item-key-${i}`},domProps:{\"value\":(row[_vm.keyName])},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(row, _vm.keyName, $event.target.value)},_vm.queueUpdate],\"paste\":function($event){return _vm.onPaste(i, $event)}}})]},{\"row\":row,\"mode\":_vm.mode,\"keyName\":_vm.keyName,\"valueName\":_vm.valueName,\"queueUpdate\":_vm.queueUpdate,\"disabled\":_vm.disabled})],2),_c('div',{key:i+'value',staticClass:\"kv-item value\",attrs:{\"data-testid\":`kv-item-value-${i}`}},[_vm._t(\"value\",function(){return [(!row.supported)?_c('div',[_vm._v(\" \"+_vm._s(_vm.t('detailText.unsupported', null, true))+\" \")]):(row.binary)?_c('div',[_vm._v(\" \"+_vm._s(_vm.binaryTextSize(row.value))+\" \")]):_c('div',{staticClass:\"value-container\",class:{ 'upload-button': _vm.parseValueFromFile }},[(_vm.valueMarkdownMultiline)?_c('CodeMirror',{ref:\"cm\",refInFor:true,class:{['focus']: _vm.codeMirrorFocus[i]},attrs:{\"data-testid\":\"code-mirror-multiline-field\",\"value\":row[_vm.valueName],\"as-text-area\":true,\"mode\":_vm.mode},on:{\"onInput\":function($event){return _vm.onInputMarkdownMultiline(i, $event)},\"onFocus\":function($event){return _vm.onFocusMarkdownMultiline(i, $event)}}}):(_vm.valueMultiline)?_c('TextAreaAutoGrow',{class:{'conceal': _vm.valueConcealed},attrs:{\"data-testid\":\"value-multiline\",\"disabled\":_vm.disabled || _vm.isProtected(row.key),\"mode\":_vm.mode,\"placeholder\":_vm.valuePlaceholder,\"min-height\":40,\"spellcheck\":false},on:{\"input\":_vm.queueUpdate},model:{value:(row[_vm.valueName]),callback:function ($$v) {_vm.$set(row, _vm.valueName, $$v)},expression:\"row[valueName]\"}}):((_vm.valueConcealed ? 'password' : 'text')==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row[_vm.valueName]),expression:\"row[valueName]\"}],attrs:{\"disabled\":_vm.isView || _vm.disabled || _vm.isProtected(row.key),\"placeholder\":_vm.valuePlaceholder,\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(row[_vm.valueName])?_vm._i(row[_vm.valueName],null)>-1:(row[_vm.valueName])},on:{\"input\":_vm.queueUpdate,\"change\":function($event){var $$a=row[_vm.valueName],$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row, _vm.valueName, $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row, _vm.valueName, $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row, _vm.valueName, $$c)}}}}):((_vm.valueConcealed ? 'password' : 'text')==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row[_vm.valueName]),expression:\"row[valueName]\"}],attrs:{\"disabled\":_vm.isView || _vm.disabled || _vm.isProtected(row.key),\"placeholder\":_vm.valuePlaceholder,\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\",\"type\":\"radio\"},domProps:{\"checked\":_vm._q(row[_vm.valueName],null)},on:{\"input\":_vm.queueUpdate,\"change\":function($event){return _vm.$set(row, _vm.valueName, null)}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row[_vm.valueName]),expression:\"row[valueName]\"}],attrs:{\"disabled\":_vm.isView || _vm.disabled || _vm.isProtected(row.key),\"placeholder\":_vm.valuePlaceholder,\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\",\"type\":_vm.valueConcealed ? 'password' : 'text'},domProps:{\"value\":(row[_vm.valueName])},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(row, _vm.valueName, $event.target.value)},_vm.queueUpdate]}}),(_vm.parseValueFromFile && _vm.readAllowed && !_vm.isView && _vm.isValueFieldEmpty(row[_vm.valueName]))?_c('FileSelector',{staticClass:\"btn btn-sm role-secondary file-selector\",attrs:{\"label\":_vm.t('generic.upload'),\"include-file-name\":true},on:{\"selected\":function($event){return _vm.onValueFileSelected(i, $event)}}}):_vm._e()],1)]},{\"row\":row,\"mode\":_vm.mode,\"keyName\":_vm.keyName,\"valueName\":_vm.valueName,\"queueUpdate\":_vm.queueUpdate})],2),_vm._l((_vm.extraColumns),function(c){return _c('div',{key:i + c,staticClass:\"kv-item extra\"},[_vm._t('col:' + c,null,{\"row\":row,\"queueUpdate\":_vm.queueUpdate})],2)}),(_vm.canRemove)?_c('div',{key:i,staticClass:\"kv-item remove\",attrs:{\"data-testid\":`remove-column-${i}`}},[_vm._t(\"removeButton\",function(){return [_c('button',{staticClass:\"btn role-link\",attrs:{\"type\":\"button\",\"disabled\":_vm.isView || _vm.isProtected(row.key) || _vm.disabled},on:{\"click\":function($event){return _vm.remove(i)}}},[_vm._v(\" \"+_vm._s(_vm.removeLabel || _vm.t('generic.remove'))+\" \")])]},{\"remove\":_vm.remove,\"row\":row,\"i\":i})],2):_vm._e()]})],2),((_vm.addAllowed || _vm.readAllowed) && !_vm.isView)?_c('div',{staticClass:\"footer mt-20\"},[_vm._t(\"add\",function(){return [(_vm.addAllowed)?_c('button',{staticClass:\"btn role-tertiary add\",attrs:{\"type\":\"button\",\"disabled\":_vm.loading || _vm.disabled || (_vm.keyOptions && _vm.filteredKeyOptions.length === 0)},on:{\"click\":function($event){return _vm.add()}}},[(_vm.loading)?_c('i',{staticClass:\"mr-5 icon icon-spinner icon-spin icon-lg\"}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.addLabel)+\" \")]):_vm._e(),(_vm.readAllowed)?_c('FileSelector',{staticClass:\"role-tertiary\",attrs:{\"disabled\":_vm.isView,\"label\":_vm.t('generic.readFromFile'),\"include-file-name\":true},on:{\"selected\":_vm.onFileSelected}}):_vm._e()]},{\"add\":_vm.add})],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Buffer } from 'buffer';\n\nfunction hashString(str) {\n let hash = 0;\n\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n\n hash = (hash << 5) - hash + char;\n hash &= hash;\n }\n\n return new Uint32Array([hash])[0].toString(36);\n}\n\n// Quick, simple hash function to generate hash for an object\nexport function hashObj(obj) {\n return hashString(JSON.stringify(obj, null, 2));\n}\n\n/**\n * @api private\n */\nexport function isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n\n/**\n * @api private\n */\nexport function convertToBuffer(data) {\n if (typeof data === 'string') {\n // eslint-disable-next-line node/no-deprecated-api\n data = new Buffer(data, 'utf8');\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}\n\nexport default {\n isEmptyData,\n convertToBuffer,\n};\n","import { Buffer } from 'buffer';\nimport { isEmptyData, convertToBuffer } from './browserHashUtils';\n\nconst BLOCK_SIZE = 64;\n\nconst DIGEST_LENGTH = 16;\n\n/**\n * @api private\n */\nfunction Md5() {\n this.state = [\n 0x67452301,\n 0xEFCDAB89,\n 0x98BADCFE,\n 0x10325476,\n ];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n\n/**\n * @api private\n */\nexport default Md5;\n\nMd5.BLOCK_SIZE = BLOCK_SIZE;\n\nMd5.prototype.update = function(sourceData) {\n if (isEmptyData(sourceData)) {\n return this;\n } else if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n const data = convertToBuffer(sourceData);\n let position = 0;\n let byteLength = data.byteLength;\n\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nMd5.prototype.digest = function(encoding) {\n if (!this.finished) {\n const _a = this; const buffer = _a.buffer; const undecoratedLength = _a.bufferLength; const bytesHashed = _a.bytesHashed;\n const bitsHashed = bytesHashed * 8;\n\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n const out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n\n for (let i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n\n // eslint-disable-next-line node/no-deprecated-api\n const buff = new Buffer(out.buffer, out.byteOffset, out.byteLength);\n\n return encoding ? buff.toString(encoding) : buff;\n};\n\nMd5.prototype.hashBuffer = function() {\n const _a = this; const buffer = _a.buffer; const state = _a.state;\n let a = state[0]; let b = state[1]; let c = state[2]; let d = state[3];\n\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xD76AA478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xE8C7B756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070DB);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xC1BDCEEE);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xF57C0FAF);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787C62A);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xA8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xFD469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098D8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8B44F7AF);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xFFFF5BB1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895CD7BE);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6B901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xFD987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xA679438E);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49B40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xF61E2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xC040B340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265E5A51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xE9B6C7AA);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xD62F105D);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xD8A1E681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xE7D3FBC8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21E1CDE6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xC33707D6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xF4D50D87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455A14ED);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xA9E3E905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xFCEFA3F8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676F02D9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8D2A4C8A);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xFFFA3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771F681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6D9D6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xFDE5380C);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xA4BEEA44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4BDECFA9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xF6BB4B60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xBEBFBC70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289B7EC6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xEAA127FA);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xD4EF3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881D05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xD9D4D039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xE6DB99E5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1FA27CF8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xC4AC5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xF4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432AFF97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xAB9423A7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xFC93A039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655B59C3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8F0CCC92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xFFEFF47D);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845DD1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6FA87E4F);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xFE2CE6E0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xA3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4E0811A1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xF7537E82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xBD3AF235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2AD7D2BB);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xEB86D391);\n state[0] = (a + state[0]) & 0xFFFFFFFF;\n state[1] = (b + state[1]) & 0xFFFFFFFF;\n state[2] = (c + state[2]) & 0xFFFFFFFF;\n state[3] = (d + state[3]) & 0xFFFFFFFF;\n};\n\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF;\n\n return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF;\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n","/* eslint-disable camelcase */\nimport { Buffer } from 'buffer';\nimport { isEmptyData, convertToBuffer } from './browserHashUtils';\n\nconst BLOCK_SIZE = 64;\n\nconst DIGEST_LENGTH = 32;\n\nconst KEY = new Uint32Array([\n 0x428A2F98,\n 0x71374491,\n 0xB5C0FBCF,\n 0xE9B5DBA5,\n 0x3956C25B,\n 0x59F111F1,\n 0x923F82A4,\n 0xAB1C5ED5,\n 0xD807AA98,\n 0x12835B01,\n 0x243185BE,\n 0x550C7DC3,\n 0x72BE5D74,\n 0x80DEB1FE,\n 0x9BDC06A7,\n 0xC19BF174,\n 0xE49B69C1,\n 0xEFBE4786,\n 0x0FC19DC6,\n 0x240CA1CC,\n 0x2DE92C6F,\n 0x4A7484AA,\n 0x5CB0A9DC,\n 0x76F988DA,\n 0x983E5152,\n 0xA831C66D,\n 0xB00327C8,\n 0xBF597FC7,\n 0xC6E00BF3,\n 0xD5A79147,\n 0x06CA6351,\n 0x14292967,\n 0x27B70A85,\n 0x2E1B2138,\n 0x4D2C6DFC,\n 0x53380D13,\n 0x650A7354,\n 0x766A0ABB,\n 0x81C2C92E,\n 0x92722C85,\n 0xA2BFE8A1,\n 0xA81A664B,\n 0xC24B8B70,\n 0xC76C51A3,\n 0xD192E819,\n 0xD6990624,\n 0xF40E3585,\n 0x106AA070,\n 0x19A4C116,\n 0x1E376C08,\n 0x2748774C,\n 0x34B0BCB5,\n 0x391C0CB3,\n 0x4ED8AA4A,\n 0x5B9CCA4F,\n 0x682E6FF3,\n 0x748F82EE,\n 0x78A5636F,\n 0x84C87814,\n 0x8CC70208,\n 0x90BEFFFA,\n 0xA4506CEB,\n 0xBEF9A3F7,\n 0xC67178F2\n]);\n\nconst MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n\n/**\n * @private\n */\nfunction Sha256() {\n this.state = [\n 0x6A09E667,\n 0xBB67AE85,\n 0x3C6EF372,\n 0xA54FF53A,\n 0x510E527F,\n 0x9B05688C,\n 0x1F83D9AB,\n 0x5BE0CD19,\n ];\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @private\n */\n this.finished = false;\n}\n\n/**\n * @api private\n */\nexport default Sha256;\n\nSha256.BLOCK_SIZE = BLOCK_SIZE;\n\nSha256.prototype.update = function(data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (isEmptyData(data)) {\n return this;\n }\n\n data = convertToBuffer(data);\n\n let position = 0;\n let byteLength = data.byteLength;\n\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error('Cannot hash more than 2^53 - 1 bits');\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nSha256.prototype.digest = function(encoding) {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n const undecoratedLength = this.bufferLength;\n\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n // eslint-disable-next-line node/no-deprecated-api\n const out = new Buffer(DIGEST_LENGTH);\n\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xFF;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xFF;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xFF;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xFF;\n }\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha256.prototype.hashBuffer = function() {\n const _a = this;\n const buffer = _a.buffer;\n const state = _a.state;\n let state0 = state[0];\n let state1 = state[1];\n let state2 = state[2];\n let state3 = state[3];\n let state4 = state[4];\n let state5 = state[5];\n let state6 = state[6];\n let state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (((buffer[i * 4] & 0xFF) << 24) |\n ((buffer[(i * 4) + 1] & 0xFF) << 16) |\n ((buffer[(i * 4) + 2] & 0xFF) << 8) |\n (buffer[(i * 4) + 3] & 0xFF));\n } else {\n let u = this.temp[i - 2];\n const t1_1 = (u >>> 17 | u << 15) ^\n (u >>> 19 | u << 13) ^\n (u >>> 10);\n\n u = this.temp[i - 15];\n const t2_1 = (u >>> 7 | u << 25) ^\n (u >>> 18 | u << 14) ^\n (u >>> 3);\n\n this.temp[i] = (t1_1 + this.temp[i - 7] | 0) +\n (t2_1 + this.temp[i - 16] | 0);\n }\n const t1 = (((((state4 >>> 6 | state4 << 26) ^\n (state4 >>> 11 | state4 << 21) ^\n (state4 >>> 25 | state4 << 7)) +\n ((state4 & state5) ^ (~state4 & state6))) | 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0;\n const t2 = (((state0 >>> 2 | state0 << 30) ^\n (state0 >>> 13 | state0 << 19) ^\n (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n};\n","import { Buffer } from 'buffer';\nimport { isEmptyData, convertToBuffer } from './browserHashUtils';\n\nconst BLOCK_SIZE = 64;\nconst DIGEST_LENGTH = 20;\n\n/**\n * @api private\n */\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n // The first 64 bytes (16 words) is the data chunk\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n\n/**\n * @api private\n */\nexport default Sha1;\n\nSha1.BLOCK_SIZE = BLOCK_SIZE;\n\nSha1.prototype.update = function(data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (isEmptyData(data)) {\n return this;\n }\n\n data = convertToBuffer(data);\n\n const length = data.length;\n\n this.totalLength += length * 8;\n for (let i = 0; i < length; i++) {\n this.write(data[i]);\n }\n\n return this;\n};\n\nSha1.prototype.write = function write(byte) {\n this.block[this.offset] |= (byte & 0xFF) << this.shift;\n if (this.shift) {\n this.shift -= 8;\n } else {\n this.offset++;\n this.shift = 24;\n }\n\n if (this.offset === 16) {\n this.processBlock();\n }\n};\n\nSha1.prototype.digest = function(encoding) {\n // Pad\n this.write(0x80);\n if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) {\n this.processBlock();\n }\n this.offset = 14;\n this.shift = 24;\n\n // 64-bit length big-endian\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n this.write(0x00); // ..So just hard-code to zero.\n this.write(this.totalLength > 0xFFFFFFFFFF ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xFFFFFFFF ? this.totalLength / 0x100000000 : 0x00);\n for (let s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n // eslint-disable-next-line node/no-deprecated-api\n const out = new Buffer(DIGEST_LENGTH);\n const outView = new DataView(out.buffer);\n\n outView.setUint32(0, this.h0, false);\n outView.setUint32(4, this.h1, false);\n outView.setUint32(8, this.h2, false);\n outView.setUint32(12, this.h3, false);\n outView.setUint32(16, this.h4, false);\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha1.prototype.processBlock = function processBlock() {\n // Extend the sixteen 32-bit words into eighty 32-bit words:\n for (let i = 16; i < 80; i++) {\n const w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16];\n\n this.block[i] = (w << 1) | (w >>> 31);\n }\n\n // Initialize hash value for this chunk:\n let a = this.h0;\n let b = this.h1;\n let c = this.h2;\n let d = this.h3;\n let e = this.h4;\n let f, k;\n\n // Main loop:\n for (let i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5A827999;\n } else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n } else if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8F1BBCDC;\n } else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n const temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i] | 0);\n\n e = d;\n d = c;\n c = (b << 30 | b >>> 2);\n b = a;\n a = temp;\n }\n\n // Add this chunk's hash to result so far:\n this.h0 = (this.h0 + a) | 0;\n this.h1 = (this.h1 + b) | 0;\n this.h2 = (this.h2 + c) | 0;\n this.h3 = (this.h3 + d) | 0;\n this.h4 = (this.h4 + e) | 0;\n\n // The block is now reusable.\n this.offset = 0;\n for (let i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};\n","/* eslint-disable node/no-deprecated-api */\nimport { Buffer } from 'buffer';\nimport Md5 from './browserMd5';\nimport Sha256 from './browserSha256';\nimport Sha1 from './browserSha1';\n\n// lib/util.js\nconst NORMAL = 'normal';\nconst URL = 'url';\n\nexport function base64Encode(string, alphabet = NORMAL) {\n let buf;\n\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n\n if ( typeof Buffer.from === 'function' && Buffer.from !== Uint8Array.from ) {\n buf = Buffer.from(string);\n } else {\n buf = new Buffer(string);\n }\n if (alphabet === URL) {\n const m = {\n '+': '-',\n '/': '_',\n };\n\n return buf.toString('base64').replace(/[+/]|=+$/g, (char) => m[char] || '');\n }\n\n return buf.toString('base64');\n}\n\nexport function base64DecodeToBuffer(string) {\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n\n if ( typeof Buffer.from === 'function' && Buffer.from !== Uint8Array.from ) {\n return Buffer.from(string, 'base64');\n } else {\n return new Buffer(string, 'base64');\n }\n}\n\nexport function base64Decode(string) {\n return !string ? string : base64DecodeToBuffer(string.replace(/[-_]/g, (char) => char === '-' ? '+' : '/')).toString();\n}\n\nexport function md5(data, digest, callback) {\n return hash('md5', data, digest, callback);\n}\n\nexport function sha256(data, digest, callback) {\n return hash('sha256', data, digest, callback);\n}\n\nexport function binarySize(val) {\n const size = `${ val }`.length;\n\n // It is base64 encoded, so adjust size\n let realSize = (3 * size / 4) ;\n\n // Might be one or two padding characters\n if (val.length > 0 && val[val.length - 1] === '=') {\n realSize--;\n if (val.length > 1 && val[val.length - 2] === '=') {\n realSize--;\n }\n }\n\n return realSize;\n}\n\n// *****************************\n// Below here be dragons\n// *****************************\n\nfunction hash(algorithm, data, digest, callback) {\n const hash = createHash(algorithm);\n\n if ( !digest ) {\n digest = 'binary';\n }\n\n if ( digest === 'buffer' ) {\n digest = undefined;\n }\n\n if ( typeof data === 'string' ) {\n data = new Buffer(data);\n }\n\n const sliceFn = arraySliceFn(data);\n let isBuffer = Buffer.isBuffer(data);\n\n // Identifying objects with an ArrayBuffer as buffers\n if ( typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) {\n isBuffer = true;\n }\n\n if ( callback && typeof data === 'object' && typeof data.on === 'function' && !isBuffer ) {\n data.on('data', (chunk) => {\n hash.update(chunk);\n });\n\n data.on('error', (err) => {\n callback(err);\n });\n\n data.on('end', () => {\n callback(null, hash.digest(digest));\n });\n } else if (callback && sliceFn && !isBuffer && typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n let index = 0; const size = 1024 * 512;\n const reader = new FileReader();\n\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n\n reader.onload = function() {\n const buf = new Buffer(new Uint8Array(reader.result));\n\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n\n return;\n }\n\n let back = index + size;\n\n if (back > data.size) {\n back = data.size;\n }\n\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if ( typeof data === 'object' && !isBuffer ) {\n data = new Buffer(new Uint8Array(data));\n }\n\n const out = hash.update(data).digest(digest);\n\n if (callback) {\n callback(null, out);\n }\n\n return out;\n }\n}\n\nfunction createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Md5();\n } else if (alg === 'sha256') {\n return new Sha256();\n } else if (alg === 'sha1') {\n return new Sha1();\n }\n\n throw new Error(`Hash algorithm ${ alg } is not supported`);\n}\n\nfunction arraySliceFn(obj) {\n const fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n\n return typeof fn === 'function' ? fn : null;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"select\",staticClass:\"unlabeled-select\",class:{\n disabled: _vm.disabled && !_vm.isView,\n focused: _vm.focused,\n [_vm.mode]: true,\n [_vm.status]: _vm.status,\n taggable: _vm.$attrs.taggable,\n taggable: _vm.$attrs.multiple,\n },on:{\"focus\":_vm.focusSearch}},[_c('v-select',_vm._g(_vm._b({ref:\"select-input\",staticClass:\"inline\",class:{'select-input-view': _vm.mode === 'view'},attrs:{\"autoscroll\":true,\"append-to-body\":_vm.appendToBody,\"calculate-position\":_vm.positionDropdown,\"disabled\":_vm.isView || _vm.disabled,\"get-option-key\":(opt) => _vm.getOptionKey(opt),\"get-option-label\":(opt) => _vm.getOptionLabel(opt),\"label\":_vm.optionLabel,\"options\":_vm.options,\"close-on-select\":_vm.closeOnSelect,\"map-keydown\":_vm.mappedKeys,\"placeholder\":_vm.placeholder,\"reduce\":(x) => _vm.reduce(x),\"searchable\":_vm.isSearchable,\"selectable\":_vm.selectable,\"value\":_vm.value != null ? _vm.value : ''},on:{\"search:blur\":_vm.onBlur,\"search:focus\":_vm.onFocus,\"open\":_vm.resizeHandler,\"option:created\":(e) => _vm.$emit('createdListItem', e)},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [_c('div',{on:{\"mousedown\":(e) => _vm.onClickOption(option, e)}},[_vm._v(\" \"+_vm._s(_vm.getOptionLabel(option.label))+\" \")])]}},_vm._l((_vm.$scopedSlots),function(_,slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'v-select',_vm.$attrs,false),_vm.$listeners)),(_vm.tooltip && !_vm.focused)?_c('LabeledTooltip',{attrs:{\"hover\":_vm.hoverTooltip,\"value\":_vm.tooltip,\"status\":_vm.status}}):_vm._e(),(!!_vm.validationMessage)?_c('LabeledTooltip',{attrs:{\"hover\":_vm.hoverTooltip,\"value\":_vm.validationMessage}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Select.vue?vue&type=template&id=6c2022f0&scoped=true\"\nimport script from \"./Select.vue?vue&type=script&lang=js\"\nexport * from \"./Select.vue?vue&type=script&lang=js\"\nimport style0 from \"./Select.vue?vue&type=style&index=0&id=6c2022f0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c2022f0\",\n null\n \n)\n\nexport default component.exports","\n\n \n \n \n \n {{ addLabel }}\n \n \n
\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValue.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValue.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./KeyValue.vue?vue&type=template&id=aa0153ae\"\nimport script from \"./KeyValue.vue?vue&type=script&lang=js\"\nexport * from \"./KeyValue.vue?vue&type=script&lang=js\"\nimport style0 from \"./KeyValue.vue?vue&type=style&index=0&id=aa0153ae&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=f1718c5e&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".resource-yaml .yaml-editor{min-height:200px}.resource-yaml footer .actions{text-align:right}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.html = exports.parse = exports.defaultDiff2HtmlConfig = void 0;\nvar DiffParser = __importStar(require(\"./diff-parser\"));\nvar fileListPrinter = __importStar(require(\"./file-list-renderer\"));\nvar line_by_line_renderer_1 = __importStar(require(\"./line-by-line-renderer\"));\nvar side_by_side_renderer_1 = __importStar(require(\"./side-by-side-renderer\"));\nvar types_1 = require(\"./types\");\nvar hoganjs_utils_1 = __importDefault(require(\"./hoganjs-utils\"));\nexports.defaultDiff2HtmlConfig = __assign(__assign(__assign({}, line_by_line_renderer_1.defaultLineByLineRendererConfig), side_by_side_renderer_1.defaultSideBySideRendererConfig), { outputFormat: types_1.OutputFormatType.LINE_BY_LINE, drawFileList: true });\nfunction parse(diffInput, configuration) {\n if (configuration === void 0) { configuration = {}; }\n return DiffParser.parse(diffInput, __assign(__assign({}, exports.defaultDiff2HtmlConfig), configuration));\n}\nexports.parse = parse;\nfunction html(diffInput, configuration) {\n if (configuration === void 0) { configuration = {}; }\n var config = __assign(__assign({}, exports.defaultDiff2HtmlConfig), configuration);\n var diffJson = typeof diffInput === 'string' ? DiffParser.parse(diffInput, config) : diffInput;\n var hoganUtils = new hoganjs_utils_1.default(config);\n var fileList = config.drawFileList ? fileListPrinter.render(diffJson, hoganUtils) : '';\n var diffOutput = config.outputFormat === 'side-by-side'\n ? new side_by_side_renderer_1.default(hoganUtils, config).render(diffJson)\n : new line_by_line_renderer_1.default(hoganUtils, config).render(diffJson);\n return fileList + diffOutput;\n}\nexports.html = html;\n//# sourceMappingURL=diff2html.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Diff2HtmlUI = exports.defaultDiff2HtmlUIConfig = void 0;\nvar highlight_js_helpers_1 = require(\"./highlight.js-helpers\");\nvar diff2html_1 = require(\"../../diff2html\");\nexports.defaultDiff2HtmlUIConfig = __assign(__assign({}, diff2html_1.defaultDiff2HtmlConfig), { synchronisedScroll: true, highlight: true, fileListToggle: true, fileListStartVisible: false, highlightLanguages: new Map(), smartSelection: true, fileContentToggle: true, stickyFileHeaders: true });\nvar Diff2HtmlUI = (function () {\n function Diff2HtmlUI(target, diffInput, config, hljs) {\n if (config === void 0) { config = {}; }\n this.hljs = null;\n this.currentSelectionColumnId = -1;\n this.config = __assign(__assign({}, exports.defaultDiff2HtmlUIConfig), config);\n this.diffHtml = diffInput !== undefined ? (0, diff2html_1.html)(diffInput, this.config) : target.innerHTML;\n this.targetElement = target;\n if (hljs !== undefined)\n this.hljs = hljs;\n }\n Diff2HtmlUI.prototype.draw = function () {\n this.targetElement.innerHTML = this.diffHtml;\n if (this.config.synchronisedScroll)\n this.synchronisedScroll();\n if (this.config.highlight)\n this.highlightCode();\n if (this.config.fileListToggle)\n this.fileListToggle(this.config.fileListStartVisible);\n if (this.config.fileContentToggle)\n this.fileContentToggle();\n if (this.config.stickyFileHeaders)\n this.stickyFileHeaders();\n };\n Diff2HtmlUI.prototype.synchronisedScroll = function () {\n this.targetElement.querySelectorAll('.d2h-file-wrapper').forEach(function (wrapper) {\n var _a = Array().slice.call(wrapper.querySelectorAll('.d2h-file-side-diff')), left = _a[0], right = _a[1];\n if (left === undefined || right === undefined)\n return;\n var onScroll = function (event) {\n if (event === null || event.target === null)\n return;\n if (event.target === left) {\n right.scrollTop = left.scrollTop;\n right.scrollLeft = left.scrollLeft;\n }\n else {\n left.scrollTop = right.scrollTop;\n left.scrollLeft = right.scrollLeft;\n }\n };\n left.addEventListener('scroll', onScroll);\n right.addEventListener('scroll', onScroll);\n });\n };\n Diff2HtmlUI.prototype.fileListToggle = function (startVisible) {\n var showBtn = this.targetElement.querySelector('.d2h-show');\n var hideBtn = this.targetElement.querySelector('.d2h-hide');\n var fileList = this.targetElement.querySelector('.d2h-file-list');\n if (showBtn === null || hideBtn === null || fileList === null)\n return;\n var show = function () {\n showBtn.style.display = 'none';\n hideBtn.style.display = 'inline';\n fileList.style.display = 'block';\n };\n var hide = function () {\n showBtn.style.display = 'inline';\n hideBtn.style.display = 'none';\n fileList.style.display = 'none';\n };\n showBtn.addEventListener('click', function () { return show(); });\n hideBtn.addEventListener('click', function () { return hide(); });\n var hashTag = this.getHashTag();\n if (hashTag === 'files-summary-show')\n show();\n else if (hashTag === 'files-summary-hide')\n hide();\n else if (startVisible)\n show();\n else\n hide();\n };\n Diff2HtmlUI.prototype.fileContentToggle = function () {\n this.targetElement.querySelectorAll('.d2h-file-collapse').forEach(function (fileContentToggleBtn) {\n fileContentToggleBtn.style.display = 'flex';\n var toggleFileContents = function (selector) {\n var _a;\n var fileContents = (_a = fileContentToggleBtn\n .closest('.d2h-file-wrapper')) === null || _a === void 0 ? void 0 : _a.querySelector(selector);\n if (fileContents !== null && fileContents !== undefined) {\n fileContentToggleBtn.classList.toggle('d2h-selected');\n fileContents.classList.toggle('d2h-d-none');\n }\n };\n var toggleHandler = function (e) {\n if (fileContentToggleBtn === e.target)\n return;\n toggleFileContents('.d2h-file-diff');\n toggleFileContents('.d2h-files-diff');\n };\n fileContentToggleBtn.addEventListener('click', function (e) { return toggleHandler(e); });\n });\n };\n Diff2HtmlUI.prototype.highlightCode = function () {\n var _this = this;\n var hljs = this.hljs;\n if (hljs === null) {\n throw new Error('Missing a `highlight.js` implementation. Please provide one when instantiating Diff2HtmlUI.');\n }\n var files = this.targetElement.querySelectorAll('.d2h-file-wrapper');\n files.forEach(function (file) {\n var language = file.getAttribute('data-lang');\n if (!(_this.config.highlightLanguages instanceof Map)) {\n _this.config.highlightLanguages = new Map(Object.entries(_this.config.highlightLanguages));\n }\n var hljsLanguage = language && _this.config.highlightLanguages.has(language)\n ?\n _this.config.highlightLanguages.get(language)\n : language\n ? (0, highlight_js_helpers_1.getLanguage)(language)\n : 'plaintext';\n var codeLines = file.querySelectorAll('.d2h-code-line-ctn');\n codeLines.forEach(function (line) {\n var text = line.textContent;\n var lineParent = line.parentNode;\n if (text === null || lineParent === null || !_this.isElement(lineParent))\n return;\n var result = (0, highlight_js_helpers_1.closeTags)(hljs.highlight(text, {\n language: hljsLanguage,\n ignoreIllegals: true,\n }));\n var originalStream = (0, highlight_js_helpers_1.nodeStream)(line);\n if (originalStream.length) {\n var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');\n resultNode.innerHTML = result.value;\n result.value = (0, highlight_js_helpers_1.mergeStreams)(originalStream, (0, highlight_js_helpers_1.nodeStream)(resultNode), text);\n }\n line.classList.add('hljs');\n if (result.language) {\n line.classList.add(result.language);\n }\n line.innerHTML = result.value;\n });\n });\n };\n Diff2HtmlUI.prototype.stickyFileHeaders = function () {\n this.targetElement.querySelectorAll('.d2h-file-header').forEach(function (header) {\n header.classList.add('d2h-sticky-header');\n });\n };\n Diff2HtmlUI.prototype.smartSelection = function () {\n console.warn('Smart selection is now enabled by default with CSS. No need to call this method anymore.');\n };\n Diff2HtmlUI.prototype.getHashTag = function () {\n var docUrl = document.URL;\n var hashTagIndex = docUrl.indexOf('#');\n var hashTag = null;\n if (hashTagIndex !== -1) {\n hashTag = docUrl.substr(hashTagIndex + 1);\n }\n return hashTag;\n };\n Diff2HtmlUI.prototype.isElement = function (arg) {\n return arg !== null && (arg === null || arg === void 0 ? void 0 : arg.classList) !== undefined;\n };\n return Diff2HtmlUI;\n}());\nexports.Diff2HtmlUI = Diff2HtmlUI;\n//# sourceMappingURL=diff2html-ui-base.js.map","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Wizard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Wizard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Wizard.vue?vue&type=template&id=41c6a168&scoped=true\"\nimport script from \"./Wizard.vue?vue&type=script&lang=js\"\nexport * from \"./Wizard.vue?vue&type=script&lang=js\"\nimport style0 from \"./Wizard.vue?vue&type=style&index=0&id=41c6a168&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41c6a168\",\n null\n \n)\n\nexport default component.exports","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".labeled-input.view input[data-v-7d57839c]{text-overflow:ellipsis}.hideArrows input[data-v-7d57839c]::-webkit-inner-spin-button,.hideArrows input[data-v-7d57839c]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.hideArrows input[type=number][data-v-7d57839c]{-moz-appearance:textfield}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashCode = exports.unifyPath = exports.escapeForRegExp = void 0;\nvar specials = [\n '-',\n '[',\n ']',\n '/',\n '{',\n '}',\n '(',\n ')',\n '*',\n '+',\n '?',\n '.',\n '\\\\',\n '^',\n '$',\n '|',\n];\nvar regex = RegExp('[' + specials.join('\\\\') + ']', 'g');\nfunction escapeForRegExp(str) {\n return str.replace(regex, '\\\\$&');\n}\nexports.escapeForRegExp = escapeForRegExp;\nfunction unifyPath(path) {\n return path ? path.replace(/\\\\/g, '/') : path;\n}\nexports.unifyPath = unifyPath;\nfunction hashCode(text) {\n var i, chr, len;\n var hash = 0;\n for (i = 0, len = text.length; i < len; i++) {\n chr = text.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0;\n }\n return hash;\n}\nexports.hashCode = hashCode;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hljs = void 0;\nvar core_1 = __importDefault(require(\"highlight.js/lib/core\"));\nvar cpp_1 = __importDefault(require(\"highlight.js/lib/languages/cpp\"));\nvar xml_1 = __importDefault(require(\"highlight.js/lib/languages/xml\"));\nvar awk_1 = __importDefault(require(\"highlight.js/lib/languages/awk\"));\nvar bash_1 = __importDefault(require(\"highlight.js/lib/languages/bash\"));\nvar c_1 = __importDefault(require(\"highlight.js/lib/languages/c\"));\nvar clojure_1 = __importDefault(require(\"highlight.js/lib/languages/clojure\"));\nvar crystal_1 = __importDefault(require(\"highlight.js/lib/languages/crystal\"));\nvar csharp_1 = __importDefault(require(\"highlight.js/lib/languages/csharp\"));\nvar csp_1 = __importDefault(require(\"highlight.js/lib/languages/csp\"));\nvar css_1 = __importDefault(require(\"highlight.js/lib/languages/css\"));\nvar markdown_1 = __importDefault(require(\"highlight.js/lib/languages/markdown\"));\nvar dart_1 = __importDefault(require(\"highlight.js/lib/languages/dart\"));\nvar diff_1 = __importDefault(require(\"highlight.js/lib/languages/diff\"));\nvar dockerfile_1 = __importDefault(require(\"highlight.js/lib/languages/dockerfile\"));\nvar elixir_1 = __importDefault(require(\"highlight.js/lib/languages/elixir\"));\nvar elm_1 = __importDefault(require(\"highlight.js/lib/languages/elm\"));\nvar ruby_1 = __importDefault(require(\"highlight.js/lib/languages/ruby\"));\nvar erlang_1 = __importDefault(require(\"highlight.js/lib/languages/erlang\"));\nvar fsharp_1 = __importDefault(require(\"highlight.js/lib/languages/fsharp\"));\nvar go_1 = __importDefault(require(\"highlight.js/lib/languages/go\"));\nvar gradle_1 = __importDefault(require(\"highlight.js/lib/languages/gradle\"));\nvar groovy_1 = __importDefault(require(\"highlight.js/lib/languages/groovy\"));\nvar handlebars_1 = __importDefault(require(\"highlight.js/lib/languages/handlebars\"));\nvar haskell_1 = __importDefault(require(\"highlight.js/lib/languages/haskell\"));\nvar ini_1 = __importDefault(require(\"highlight.js/lib/languages/ini\"));\nvar java_1 = __importDefault(require(\"highlight.js/lib/languages/java\"));\nvar javascript_1 = __importDefault(require(\"highlight.js/lib/languages/javascript\"));\nvar json_1 = __importDefault(require(\"highlight.js/lib/languages/json\"));\nvar kotlin_1 = __importDefault(require(\"highlight.js/lib/languages/kotlin\"));\nvar less_1 = __importDefault(require(\"highlight.js/lib/languages/less\"));\nvar lisp_1 = __importDefault(require(\"highlight.js/lib/languages/lisp\"));\nvar lua_1 = __importDefault(require(\"highlight.js/lib/languages/lua\"));\nvar makefile_1 = __importDefault(require(\"highlight.js/lib/languages/makefile\"));\nvar perl_1 = __importDefault(require(\"highlight.js/lib/languages/perl\"));\nvar nginx_1 = __importDefault(require(\"highlight.js/lib/languages/nginx\"));\nvar objectivec_1 = __importDefault(require(\"highlight.js/lib/languages/objectivec\"));\nvar pgsql_1 = __importDefault(require(\"highlight.js/lib/languages/pgsql\"));\nvar php_1 = __importDefault(require(\"highlight.js/lib/languages/php\"));\nvar plaintext_1 = __importDefault(require(\"highlight.js/lib/languages/plaintext\"));\nvar powershell_1 = __importDefault(require(\"highlight.js/lib/languages/powershell\"));\nvar properties_1 = __importDefault(require(\"highlight.js/lib/languages/properties\"));\nvar protobuf_1 = __importDefault(require(\"highlight.js/lib/languages/protobuf\"));\nvar python_1 = __importDefault(require(\"highlight.js/lib/languages/python\"));\nvar rust_1 = __importDefault(require(\"highlight.js/lib/languages/rust\"));\nvar scala_1 = __importDefault(require(\"highlight.js/lib/languages/scala\"));\nvar scss_1 = __importDefault(require(\"highlight.js/lib/languages/scss\"));\nvar shell_1 = __importDefault(require(\"highlight.js/lib/languages/shell\"));\nvar sql_1 = __importDefault(require(\"highlight.js/lib/languages/sql\"));\nvar swift_1 = __importDefault(require(\"highlight.js/lib/languages/swift\"));\nvar yaml_1 = __importDefault(require(\"highlight.js/lib/languages/yaml\"));\nvar typescript_1 = __importDefault(require(\"highlight.js/lib/languages/typescript\"));\ncore_1.default.registerLanguage('cpp', cpp_1.default);\ncore_1.default.registerLanguage('xml', xml_1.default);\ncore_1.default.registerLanguage('awk', awk_1.default);\ncore_1.default.registerLanguage('bash', bash_1.default);\ncore_1.default.registerLanguage('c', c_1.default);\ncore_1.default.registerLanguage('clojure', clojure_1.default);\ncore_1.default.registerLanguage('crystal', crystal_1.default);\ncore_1.default.registerLanguage('csharp', csharp_1.default);\ncore_1.default.registerLanguage('csp', csp_1.default);\ncore_1.default.registerLanguage('css', css_1.default);\ncore_1.default.registerLanguage('markdown', markdown_1.default);\ncore_1.default.registerLanguage('dart', dart_1.default);\ncore_1.default.registerLanguage('diff', diff_1.default);\ncore_1.default.registerLanguage('dockerfile', dockerfile_1.default);\ncore_1.default.registerLanguage('elixir', elixir_1.default);\ncore_1.default.registerLanguage('elm', elm_1.default);\ncore_1.default.registerLanguage('ruby', ruby_1.default);\ncore_1.default.registerLanguage('erlang', erlang_1.default);\ncore_1.default.registerLanguage('fsharp', fsharp_1.default);\ncore_1.default.registerLanguage('go', go_1.default);\ncore_1.default.registerLanguage('gradle', gradle_1.default);\ncore_1.default.registerLanguage('groovy', groovy_1.default);\ncore_1.default.registerLanguage('handlebars', handlebars_1.default);\ncore_1.default.registerLanguage('haskell', haskell_1.default);\ncore_1.default.registerLanguage('ini', ini_1.default);\ncore_1.default.registerLanguage('java', java_1.default);\ncore_1.default.registerLanguage('javascript', javascript_1.default);\ncore_1.default.registerLanguage('json', json_1.default);\ncore_1.default.registerLanguage('kotlin', kotlin_1.default);\ncore_1.default.registerLanguage('less', less_1.default);\ncore_1.default.registerLanguage('lisp', lisp_1.default);\ncore_1.default.registerLanguage('lua', lua_1.default);\ncore_1.default.registerLanguage('makefile', makefile_1.default);\ncore_1.default.registerLanguage('perl', perl_1.default);\ncore_1.default.registerLanguage('nginx', nginx_1.default);\ncore_1.default.registerLanguage('objectivec', objectivec_1.default);\ncore_1.default.registerLanguage('pgsql', pgsql_1.default);\ncore_1.default.registerLanguage('php', php_1.default);\ncore_1.default.registerLanguage('plaintext', plaintext_1.default);\ncore_1.default.registerLanguage('powershell', powershell_1.default);\ncore_1.default.registerLanguage('properties', properties_1.default);\ncore_1.default.registerLanguage('protobuf', protobuf_1.default);\ncore_1.default.registerLanguage('python', python_1.default);\ncore_1.default.registerLanguage('rust', rust_1.default);\ncore_1.default.registerLanguage('scala', scala_1.default);\ncore_1.default.registerLanguage('scss', scss_1.default);\ncore_1.default.registerLanguage('shell', shell_1.default);\ncore_1.default.registerLanguage('sql', sql_1.default);\ncore_1.default.registerLanguage('swift', swift_1.default);\ncore_1.default.registerLanguage('yaml', yaml_1.default);\ncore_1.default.registerLanguage('typescript', typescript_1.default);\nexports.hljs = core_1.default;\n//# sourceMappingURL=highlight.js-slim.js.map","/*\nLanguage: Ruby\nDescription: Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.\nWebsite: https://www.ruby-lang.org/\nAuthor: Anton Kovalyov \nContributors: Peter Leonov , Vasily Polovnyov , Loren Segal , Pascal Hurni , Cedric Sohrauer \nCategory: common\n*/\n\nfunction ruby(hljs) {\n const regex = hljs.regex;\n const RUBY_METHOD_RE = '([a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?)';\n // TODO: move concepts like CAMEL_CASE into `modes.js`\n const CLASS_NAME_RE = regex.either(\n /\\b([A-Z]+[a-z0-9]+)+/,\n // ends in caps\n /\\b([A-Z]+[a-z0-9]+)+[A-Z]+/,\n )\n ;\n const CLASS_NAME_WITH_NAMESPACE_RE = regex.concat(CLASS_NAME_RE, /(::\\w+)*/);\n const RUBY_KEYWORDS = {\n \"variable.constant\": [\n \"__FILE__\",\n \"__LINE__\"\n ],\n \"variable.language\": [\n \"self\",\n \"super\",\n ],\n keyword: [\n \"alias\",\n \"and\",\n \"attr_accessor\",\n \"attr_reader\",\n \"attr_writer\",\n \"begin\",\n \"BEGIN\",\n \"break\",\n \"case\",\n \"class\",\n \"defined\",\n \"do\",\n \"else\",\n \"elsif\",\n \"end\",\n \"END\",\n \"ensure\",\n \"for\",\n \"if\",\n \"in\",\n \"include\",\n \"module\",\n \"next\",\n \"not\",\n \"or\",\n \"redo\",\n \"require\",\n \"rescue\",\n \"retry\",\n \"return\",\n \"then\",\n \"undef\",\n \"unless\",\n \"until\",\n \"when\",\n \"while\",\n \"yield\",\n ],\n built_in: [\n \"proc\",\n \"lambda\"\n ],\n literal: [\n \"true\",\n \"false\",\n \"nil\"\n ]\n };\n const YARDOCTAG = {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n };\n const IRB_OBJECT = {\n begin: '#<',\n end: '>'\n };\n const COMMENT_MODES = [\n hljs.COMMENT(\n '#',\n '$',\n { contains: [ YARDOCTAG ] }\n ),\n hljs.COMMENT(\n '^=begin',\n '^=end',\n {\n contains: [ YARDOCTAG ],\n relevance: 10\n }\n ),\n hljs.COMMENT('^__END__', hljs.MATCH_NOTHING_RE)\n ];\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: RUBY_KEYWORDS\n };\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /`/,\n end: /`/\n },\n {\n begin: /%[qQwWx]?\\(/,\n end: /\\)/\n },\n {\n begin: /%[qQwWx]?\\[/,\n end: /\\]/\n },\n {\n begin: /%[qQwWx]?\\{/,\n end: /\\}/\n },\n {\n begin: /%[qQwWx]?/\n },\n {\n begin: /%[qQwWx]?\\//,\n end: /\\//\n },\n {\n begin: /%[qQwWx]?%/,\n end: /%/\n },\n {\n begin: /%[qQwWx]?-/,\n end: /-/\n },\n {\n begin: /%[qQwWx]?\\|/,\n end: /\\|/\n },\n // in the following expressions, \\B in the beginning suppresses recognition of ?-sequences\n // where ? is the last character of a preceding identifier, as in: `func?4`\n { begin: /\\B\\?(\\\\\\d{1,3})/ },\n { begin: /\\B\\?(\\\\x[A-Fa-f0-9]{1,2})/ },\n { begin: /\\B\\?(\\\\u\\{?[A-Fa-f0-9]{1,6}\\}?)/ },\n { begin: /\\B\\?(\\\\M-\\\\C-|\\\\M-\\\\c|\\\\c\\\\M-|\\\\M-|\\\\C-\\\\M-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\(c|C-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\?\\S/ },\n // heredocs\n {\n // this guard makes sure that we have an entire heredoc and not a false\n // positive (auto-detect, etc.)\n begin: regex.concat(\n /<<[-~]?'?/,\n regex.lookahead(/(\\w+)(?=\\W)[^\\n]*\\n(?:[^\\n]*\\n)*?\\s*\\1\\b/)\n ),\n contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n })\n ]\n }\n ]\n };\n\n // Ruby syntax is underdocumented, but this grammar seems to be accurate\n // as of version 2.7.2 (confirmed with (irb and `Ripper.sexp(...)`)\n // https://docs.ruby-lang.org/en/2.7.0/doc/syntax/literals_rdoc.html#label-Numbers\n const decimal = '[1-9](_?[0-9])*|0';\n const digits = '[0-9](_?[0-9])*';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal integer/float, optionally exponential or rational, optionally imaginary\n { begin: `\\\\b(${decimal})(\\\\.(${digits}))?([eE][+-]?(${digits})|r)?i?\\\\b` },\n\n // explicit decimal/binary/octal/hexadecimal integer,\n // optionally rational and/or imaginary\n { begin: \"\\\\b0[dD][0-9](_?[0-9])*r?i?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*r?i?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*r?i?\\\\b\" },\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\\\b\" },\n\n // 0-prefixed implicit octal integer, optionally rational and/or imaginary\n { begin: \"\\\\b0(_?[0-7])+r?i?\\\\b\" }\n ]\n };\n\n const PARAMS = {\n variants: [\n {\n match: /\\(\\)/,\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /(?=\\))/,\n excludeBegin: true,\n endsParent: true,\n keywords: RUBY_KEYWORDS,\n }\n ]\n };\n\n const CLASS_DEFINITION = {\n variants: [\n {\n match: [\n /class\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\s+<\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n },\n {\n match: [\n /class\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n }\n ],\n scope: {\n 2: \"title.class\",\n 4: \"title.class.inherited\"\n },\n keywords: RUBY_KEYWORDS\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n const METHOD_DEFINITION = {\n match: [\n /def/, /\\s+/,\n RUBY_METHOD_RE\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n const OBJECT_CREATION = {\n relevance: 0,\n match: [\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\.new[ (]/\n ],\n scope: {\n 1: \"title.class\"\n }\n };\n\n const RUBY_DEFAULT_CONTAINS = [\n STRING,\n CLASS_DEFINITION,\n OBJECT_CREATION,\n UPPER_CASE_CONSTANT,\n METHOD_DEFINITION,\n {\n // swallow namespace qualifiers before symbols\n begin: hljs.IDENT_RE + '::' },\n {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ':(?!\\\\s)',\n contains: [\n STRING,\n { begin: RUBY_METHOD_RE }\n ],\n relevance: 0\n },\n NUMBER,\n {\n // negative-look forward attempts to prevent false matches like:\n // @ident@ or $ident$ that might indicate this is not ruby at all\n className: \"variable\",\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))(?=[^@$?])' + `(?![A-Za-z])(?![@$?'])`\n },\n {\n className: 'params',\n begin: /\\|/,\n end: /\\|/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0, // this could be a lot of things (in other languages) other than params\n keywords: RUBY_KEYWORDS\n },\n { // regexp container\n begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\\\s*',\n keywords: 'unless',\n contains: [\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n illegal: /\\n/,\n variants: [\n {\n begin: '/',\n end: '/[a-z]*'\n },\n {\n begin: /%r\\{/,\n end: /\\}[a-z]*/\n },\n {\n begin: '%r\\\\(',\n end: '\\\\)[a-z]*'\n },\n {\n begin: '%r!',\n end: '![a-z]*'\n },\n {\n begin: '%r\\\\[',\n end: '\\\\][a-z]*'\n }\n ]\n }\n ].concat(IRB_OBJECT, COMMENT_MODES),\n relevance: 0\n }\n ].concat(IRB_OBJECT, COMMENT_MODES);\n\n SUBST.contains = RUBY_DEFAULT_CONTAINS;\n PARAMS.contains = RUBY_DEFAULT_CONTAINS;\n\n // >>\n // ?>\n const SIMPLE_PROMPT = \"[>?]>\";\n // irb(main):001:0>\n const DEFAULT_PROMPT = \"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+[>*]\";\n const RVM_PROMPT = \"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d+(p\\\\d+)?[^\\\\d][^>]+>\";\n\n const IRB_DEFAULT = [\n {\n begin: /^\\s*=>/,\n starts: {\n end: '$',\n contains: RUBY_DEFAULT_CONTAINS\n }\n },\n {\n className: 'meta.prompt',\n begin: '^(' + SIMPLE_PROMPT + \"|\" + DEFAULT_PROMPT + '|' + RVM_PROMPT + ')(?=[ ])',\n starts: {\n end: '$',\n keywords: RUBY_KEYWORDS,\n contains: RUBY_DEFAULT_CONTAINS\n }\n }\n ];\n\n COMMENT_MODES.unshift(IRB_OBJECT);\n\n return {\n name: 'Ruby',\n aliases: [\n 'rb',\n 'gemspec',\n 'podspec',\n 'thor',\n 'irb'\n ],\n keywords: RUBY_KEYWORDS,\n illegal: /\\/\\*/,\n contains: [ hljs.SHEBANG({ binary: \"ruby\" }) ]\n .concat(IRB_DEFAULT)\n .concat(COMMENT_MODES)\n .concat(RUBY_DEFAULT_CONTAINS)\n };\n}\n\nmodule.exports = ruby;\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./FileDiff.vue?vue&type=style&index=1&id=0137ea75&prod&scoped=true&lang=scss\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".yaml-editor[data-v-cf2bae46]{display:flex;flex-direction:column}.yaml-editor .fill[data-v-cf2bae46]{flex:1}.yaml-editor[data-v-cf2bae46] .code-mirror{position:relative}.yaml-editor[data-v-cf2bae46] .code-mirror .CodeMirror,.yaml-editor[data-v-cf2bae46] .code-mirror .CodeMirror .CodeMirror-gutters{background-color:var(--yaml-editor-bg)}.yaml-editor .diff-mode[data-v-cf2bae46]{background-color:var(--diff-header-bg);padding:5px 5px;border-bottom-right-radius:0;border-bottom-left-radius:0}.yaml-editor .d2h-file-wrapper[data-v-cf2bae46]{border-top-right-radius:0}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceYaml.vue?vue&type=style&index=1&id=9370b8fe&prod&lang=scss\"","/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: //,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: //,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n //,\n { relevance: 10 }\n ),\n {\n begin: //,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n ')/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the \n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceYaml.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceYaml.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ResourceYaml.vue?vue&type=template&id=9370b8fe&scoped=true\"\nimport script from \"./ResourceYaml.vue?vue&type=script&lang=js\"\nexport * from \"./ResourceYaml.vue?vue&type=script&lang=js\"\nimport style0 from \"./ResourceYaml.vue?vue&type=style&index=0&id=9370b8fe&prod&lang=scss&scoped=true\"\nimport style1 from \"./ResourceYaml.vue?vue&type=style&index=1&id=9370b8fe&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9370b8fe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"cru-resource-footer\"},[_vm._t(\"footer-prefix\"),_vm._t(\"cancel\",function(){return [(!_vm.isView && _vm.showCancel)?_c('button',{staticClass:\"btn role-secondary\",attrs:{\"id\":\"cru-cancel\",\"data-testid\":_vm.componentTestid + '-cancel',\"type\":\"button\"},on:{\"click\":function($event){_vm.confirmCancelRequired ? _vm.checkCancel(true) : _vm.$emit('cancel-confirmed', true)}}},[_c('t',{attrs:{\"k\":\"generic.cancel\"}})],1):_vm._e()]}),_vm._t(\"default\",function(){return [(!_vm.isView)?_c('AsyncButton',{attrs:{\"data-testid\":_vm.componentTestid + '-create',\"mode\":_vm.finishButtonMode || _vm.mode},on:{\"click\":function($event){return _vm.$emit('finish', $event)}}}):_vm._e()]},{\"checkCancel\":_vm.checkCancel}),_c('ResourceCancelModal',{ref:\"cancelModal\",attrs:{\"is-cancel-modal\":_vm.isCancelModal,\"is-form\":_vm.isForm},on:{\"confirm-cancel\":function($event){return _vm.confirmCancel($event)}}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CruResourceFooter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CruResourceFooter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CruResourceFooter.vue?vue&type=template&id=3e3d0b47\"\nimport script from \"./CruResourceFooter.vue?vue&type=script&lang=js\"\nexport * from \"./CruResourceFooter.vue?vue&type=script&lang=js\"\nimport style0 from \"./CruResourceFooter.vue?vue&type=style&index=0&id=3e3d0b47&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n $emit('error', e)\"\n >\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CruResource.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CruResource.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CruResource.vue?vue&type=template&id=15bf56e8&scoped=true\"\nimport script from \"./CruResource.vue?vue&type=script&lang=js\"\nexport * from \"./CruResource.vue?vue&type=script&lang=js\"\nimport style0 from \"./CruResource.vue?vue&type=style&index=0&id=15bf56e8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15bf56e8\",\n null\n \n)\n\nexport default component.exports","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.vendors~markdown.js b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.vendors~markdown.js new file mode 100644 index 0000000..60c8bda --- /dev/null +++ b/dist-pkg/kubearmor-0.1.0/kubearmor-0.1.0.umd.min.vendors~markdown.js @@ -0,0 +1,4 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubearmor_0_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubearmor_0_1_0"]||[]).push([[4],{3104:function(e,t,n){(function(e,n){n(t)})(0,(function(e){"use strict";function t(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,u=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}function o(t){e.defaults=t}e.defaults=a();var s=/[&<>"']/,l=/[&<>"']/g,c=/[<>"']|&(?!#?\w+;)/,D=/[<>"']|&(?!#?\w+;)/g,p={"&":"&","<":"<",">":">",'"':""","'":"'"},h=function(e){return p[e]};function f(e,t){if(t){if(s.test(e))return e.replace(l,h)}else if(c.test(e))return e.replace(D,h);return e}var d=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function g(e){return e.replace(d,(function(e,t){return t=t.toLowerCase(),"colon"===t?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var m=/(^|[^\[])\^/g;function A(e,t){e="string"===typeof e?e:e.source,t=t||"";var n={replace:function(t,u){return u=u.source||u,u=u.replace(m,"$1"),e=e.replace(t,u),n},getRegex:function(){return new RegExp(e,t)}};return n}var F=/[^\w:]/g,E=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function k(e,t,n){if(e){var u;try{u=decodeURIComponent(g(n)).replace(F,"").toLowerCase()}catch(r){return null}if(0===u.indexOf("javascript:")||0===u.indexOf("vbscript:")||0===u.indexOf("data:"))return null}t&&!E.test(n)&&(n=w(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(r){return null}return n}var C={},x=/^[^:]+:\/*[^/]*$/,b=/^([^:]+:)[\s\S]*$/,y=/^([^:]+:\/*[^/]*)[\s\S]*$/;function w(e,t){C[" "+e]||(x.test(e)?C[" "+e]=e+"/":C[" "+e]=T(e,"/",!0)),e=C[" "+e];var n=-1===e.indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(b,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(y,"$1")+t:e+t}var v={exec:function(){}};function B(e){for(var t,n,u=1;u=0&&"\\"===n[r])u=!u;return u?"|":" |"})),u=n.split(/ \|/),r=0;if(u[0].trim()||u.shift(),u.length>0&&!u[u.length-1].trim()&&u.pop(),u.length>t)u.splice(t);else while(u.length1)1&t&&(n+=e),t>>=1,e+=e;return n+e}function N(e,t,n,u){var r=t.href,i=t.title?f(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){u.state.inLink=!0;var o={type:"link",raw:n,href:r,title:i,text:a,tokens:u.inlineTokens(a,[])};return u.state.inLink=!1,o}return{type:"image",raw:n,href:r,title:i,text:f(a)}}function O(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var u=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);if(null===t)return e;var n=t[0];return n.length>=u.length?e.slice(u.length):e})).join("\n")}var I=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.space=function(e){var t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}},n.code=function(e){var t=this.rules.block.code.exec(e);if(t){var n=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:T(n,"\n")}}},n.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],u=O(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:u}}},n.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var n=t[2].trim();if(/#$/.test(n)){var u=T(n,"#");this.options.pedantic?n=u.trim():u&&!/ $/.test(u)||(n=u.trim())}var r={type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:[]};return this.lexer.inline(r.text,r.tokens),r}},n.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}},n.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var n=t[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(n,[]),text:n}}},n.list=function(e){var t=this.rules.block.list.exec(e);if(t){var n,u,r,a,o,s,l,c,D,p,h,f,d=t[1].trim(),g=d.length>1,m={type:"list",raw:"",ordered:g,start:g?+d.slice(0,-1):"",loose:!1,items:[]};d=g?"\\d{1,9}\\"+d.slice(-1):"\\"+d,this.options.pedantic&&(d=g?d:"[*+-]");var A=new RegExp("^( {0,3}"+d+")((?:[\t ][^\\n]*)?(?:\\n|$))");while(e){if(f=!1,!(t=A.exec(e)))break;if(this.rules.block.hr.test(e))break;if(n=t[0],e=e.substring(n.length),c=t[2].split("\n",1)[0],D=e.split("\n",1)[0],this.options.pedantic?(a=2,h=c.trimLeft()):(a=t[2].search(/[^ ]/),a=a>4?1:a,h=c.slice(a),a+=t[1].length),s=!1,!c&&/^ *$/.test(D)&&(n+=D+"\n",e=e.substring(D.length+1),f=!0),!f){var F=new RegExp("^ {0,"+Math.min(3,a-1)+"}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))"),E=new RegExp("^ {0,"+Math.min(3,a-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),k=new RegExp("^( {0,"+Math.min(3,a-1)+"})(```|~~~)");while(e){if(p=e.split("\n",1)[0],c=p,this.options.pedantic&&(c=c.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),k.test(c))break;if(this.rules.block.heading.test(c))break;if(F.test(c))break;if(E.test(e))break;if(c.search(/[^ ]/)>=a||!c.trim())h+="\n"+c.slice(a);else{if(s)break;h+="\n"+c}s||c.trim()||(s=!0),n+=p+"\n",e=e.substring(p.length+1)}}m.loose||(l?m.loose=!0:/\n *\n *$/.test(n)&&(l=!0)),this.options.gfm&&(u=/^\[[ xX]\] /.exec(h),u&&(r="[ ] "!==u[0],h=h.replace(/^\[[ xX]\] +/,""))),m.items.push({type:"list_item",raw:n,task:!!u,checked:r,loose:!1,text:h}),m.raw+=n}m.items[m.items.length-1].raw=n.trimRight(),m.items[m.items.length-1].text=h.trimRight(),m.raw=m.raw.trimRight();var C=m.items.length;for(o=0;o1)return!0}return!1}));!m.loose&&x.length&&b&&(m.loose=!0,m.items[o].loose=!0)}return m}},n.html=function(e){var t=this.rules.block.html.exec(e);if(t){var n={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(n.type="paragraph",n.text=this.options.sanitizer?this.options.sanitizer(t[0]):f(t[0]),n.tokens=[],this.lexer.inline(n.text,n.tokens)),n}},n.def=function(e){var t=this.rules.block.def.exec(e);if(t){t[3]&&(t[3]=t[3].substring(1,t[3].length-1));var n=t[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:n,raw:t[0],href:t[2],title:t[3]}}},n.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:_(t[1]).map((function(e){return{text:e}})),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var u,r,i,a,o=n.align.length;for(u=0;u/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):f(t[0]):t[0]}},n.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=t[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;var u=T(n.slice(0,-1),"\\");if((n.length-u.length)%2===0)return}else{var r=S(t[2],"()");if(r>-1){var i=0===t[0].indexOf("!")?5:4,a=i+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,a).trim(),t[3]=""}}var o=t[2],s="";if(this.options.pedantic){var l=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);l&&(o=l[1],s=l[3])}else s=t[3]?t[3].slice(1,-1):"";return o=o.trim(),/^$/.test(n)?o.slice(1):o.slice(1,-1)),N(t,{href:o?o.replace(this.rules.inline._escapes,"$1"):o,title:s?s.replace(this.rules.inline._escapes,"$1"):s},t[0],this.lexer)}},n.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var u=(n[2]||n[1]).replace(/\s+/g," ");if(u=t[u.toLowerCase()],!u||!u.href){var r=n[0].charAt(0);return{type:"text",raw:r,text:r}}return N(n,u,n[0],this.lexer)}},n.emStrong=function(e,t,n){void 0===n&&(n="");var u=this.rules.inline.emStrong.lDelim.exec(e);if(u&&(!u[3]||!n.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var r=u[1]||u[2]||"";if(!r||r&&(""===n||this.rules.inline.punctuation.exec(n))){var i,a,o=u[0].length-1,s=o,l=0,c="*"===u[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;c.lastIndex=0,t=t.slice(-1*e.length+o);while(null!=(u=c.exec(t)))if(i=u[1]||u[2]||u[3]||u[4]||u[5]||u[6],i)if(a=i.length,u[3]||u[4])s+=a;else if(!((u[5]||u[6])&&o%3)||(o+a)%3){if(s-=a,!(s>0)){if(a=Math.min(a,a+s+l),Math.min(o,a)%2){var D=e.slice(1,o+u.index+a);return{type:"em",raw:e.slice(0,o+u.index+a+1),text:D,tokens:this.lexer.inlineTokens(D,[])}}var p=e.slice(2,o+u.index+a-1);return{type:"strong",raw:e.slice(0,o+u.index+a+1),text:p,tokens:this.lexer.inlineTokens(p,[])}}}else l+=a}}},n.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),u=/[^ ]/.test(n),r=/^ /.test(n)&&/ $/.test(n);return u&&r&&(n=n.substring(1,n.length-1)),n=f(n,!0),{type:"codespan",raw:t[0],text:n}}},n.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},n.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}},n.autolink=function(e,t){var n,u,r=this.rules.inline.autolink.exec(e);if(r)return"@"===r[2]?(n=f(this.options.mangle?t(r[1]):r[1]),u="mailto:"+n):(n=f(r[1]),u=n),{type:"link",raw:r[0],text:n,href:u,tokens:[{type:"text",raw:n,text:n}]}},n.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var u,r;if("@"===n[2])u=f(this.options.mangle?t(n[0]):n[0]),r="mailto:"+u;else{var i;do{i=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(i!==n[0]);u=f(n[0]),r="www."===n[1]?"http://"+u:u}return{type:"link",raw:n[0],text:u,href:r,tokens:[{type:"text",raw:u,text:u}]}}},n.inlineText=function(e,t){var n,u=this.rules.inline.text.exec(e);if(u)return n=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(u[0]):f(u[0]):u[0]:f(this.options.smartypants?t(u[0]):u[0]),{type:"text",raw:u[0],text:n}},t}(),L={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:v,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};L.def=A(L.def).replace("label",L._label).replace("title",L._title).getRegex(),L.bullet=/(?:[*+-]|\d{1,9}[.)])/,L.listItemStart=A(/^( *)(bull) */).replace("bull",L.bullet).getRegex(),L.list=A(L.list).replace(/bull/g,L.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+L.def.source+")").getRegex(),L._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",L._comment=/|$)/,L.html=A(L.html,"i").replace("comment",L._comment).replace("tag",L._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),L.paragraph=A(L._paragraph).replace("hr",L.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",L._tag).getRegex(),L.blockquote=A(L.blockquote).replace("paragraph",L.paragraph).getRegex(),L.normal=B({},L),L.gfm=B({},L.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),L.gfm.table=A(L.gfm.table).replace("hr",L.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",L._tag).getRegex(),L.gfm.paragraph=A(L._paragraph).replace("hr",L.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",L.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",L._tag).getRegex(),L.pedantic=B({},L.normal,{html:A("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",L._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:v,paragraph:A(L.normal._paragraph).replace("hr",L.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",L.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var M={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:v,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:v,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(n="x"+n.toString(16)),u+="&#"+n+";";return u}M._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",M.punctuation=A(M.punctuation).replace(/punctuation/g,M._punctuation).getRegex(),M.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,M.escapedEmSt=/\\\*|\\_/g,M._comment=A(L._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),M.emStrong.lDelim=A(M.emStrong.lDelim).replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimAst=A(M.emStrong.rDelimAst,"g").replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimUnd=A(M.emStrong.rDelimUnd,"g").replace(/punct/g,M._punctuation).getRegex(),M._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,M._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,M._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,M.autolink=A(M.autolink).replace("scheme",M._scheme).replace("email",M._email).getRegex(),M._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,M.tag=A(M.tag).replace("comment",M._comment).replace("attribute",M._attribute).getRegex(),M._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,M._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,M._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,M.link=A(M.link).replace("label",M._label).replace("href",M._href).replace("title",M._title).getRegex(),M.reflink=A(M.reflink).replace("label",M._label).replace("ref",L._label).getRegex(),M.nolink=A(M.nolink).replace("ref",L._label).getRegex(),M.reflinkSearch=A(M.reflinkSearch,"g").replace("reflink",M.reflink).replace("nolink",M.nolink).getRegex(),M.normal=B({},M),M.pedantic=B({},M.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:A(/^!?\[(label)\]\((.*?)\)/).replace("label",M._label).getRegex(),reflink:A(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",M._label).getRegex()}),M.gfm=B({},M.normal,{escape:A(M.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\0?t[t.length-1].raw+="\n":t.push(n);else if(n=this.tokenizer.code(e))e=e.substring(n.raw.length),u=t[t.length-1],!u||"paragraph"!==u.type&&"text"!==u.type?t.push(n):(u.raw+="\n"+n.raw,u.text+="\n"+n.text,this.inlineQueue[this.inlineQueue.length-1].src=u.text);else if(n=this.tokenizer.fences(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.heading(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.hr(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.blockquote(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.list(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.html(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.def(e))e=e.substring(n.raw.length),u=t[t.length-1],!u||"paragraph"!==u.type&&"text"!==u.type?this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title}):(u.raw+="\n"+n.raw,u.text+="\n"+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=u.text);else if(n=this.tokenizer.table(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.lheading(e))e=e.substring(n.raw.length),t.push(n);else if(r=e,this.options.extensions&&this.options.extensions.startBlock&&function(){var t=1/0,n=e.slice(1),u=void 0;a.options.extensions.startBlock.forEach((function(e){u=e.call({lexer:this},n),"number"===typeof u&&u>=0&&(t=Math.min(t,u))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}(),this.state.top&&(n=this.tokenizer.paragraph(r)))u=t[t.length-1],i&&"paragraph"===u.type?(u.raw+="\n"+n.raw,u.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=u.text):t.push(n),i=r.length!==e.length,e=e.substring(n.raw.length);else if(n=this.tokenizer.text(e))e=e.substring(n.raw.length),u=t[t.length-1],u&&"text"===u.type?(u.raw+="\n"+n.raw,u.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=u.text):t.push(n);else if(e){var o="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(o);break}throw new Error(o)}return this.state.top=!0,t},u.inline=function(e,t){this.inlineQueue.push({src:e,tokens:t})},u.inlineTokens=function(e,t){var n,u,r,i=this;void 0===t&&(t=[]);var a,o,s,l=e;if(this.tokens.links){var c=Object.keys(this.tokens.links);if(c.length>0)while(null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(l)))c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,a.index)+"["+R("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}while(null!=(a=this.tokenizer.rules.inline.blockSkip.exec(l)))l=l.slice(0,a.index)+"["+R("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);while(null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(l)))l=l.slice(0,a.index)+"++"+l.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);while(e)if(o||(s=""),o=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(u){return!!(n=u.call({lexer:i},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)}))))if(n=this.tokenizer.escape(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.tag(e))e=e.substring(n.raw.length),u=t[t.length-1],u&&"text"===n.type&&"text"===u.type?(u.raw+=n.raw,u.text+=n.text):t.push(n);else if(n=this.tokenizer.link(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(n.raw.length),u=t[t.length-1],u&&"text"===n.type&&"text"===u.type?(u.raw+=n.raw,u.text+=n.text):t.push(n);else if(n=this.tokenizer.emStrong(e,l,s))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.codespan(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.br(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.del(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.autolink(e,U))e=e.substring(n.raw.length),t.push(n);else if(this.state.inLink||!(n=this.tokenizer.url(e,U))){if(r=e,this.options.extensions&&this.options.extensions.startInline&&function(){var t=1/0,n=e.slice(1),u=void 0;i.options.extensions.startInline.forEach((function(e){u=e.call({lexer:this},n),"number"===typeof u&&u>=0&&(t=Math.min(t,u))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}(),n=this.tokenizer.inlineText(r,$))e=e.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(s=n.raw.slice(-1)),o=!0,u=t[t.length-1],u&&"text"===u.type?(u.raw+=n.raw,u.text+=n.text):t.push(n);else if(e){var D="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(D);break}throw new Error(D)}}else e=e.substring(n.raw.length),t.push(n);return t},n(t,null,[{key:"rules",get:function(){return{block:L,inline:M}}}]),t}(),P=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.code=function(e,t,n){var u=(t||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(e,u);null!=r&&r!==e&&(n=!0,e=r)}return e=e.replace(/\n$/,"")+"\n",u?'
'+(n?e:f(e,!0))+"
\n":"
"+(n?e:f(e,!0))+"
\n"},n.blockquote=function(e){return"
\n"+e+"
\n"},n.html=function(e){return e},n.heading=function(e,t,n,u){if(this.options.headerIds){var r=this.options.headerPrefix+u.slug(n);return"'+e+"\n"}return""+e+"\n"},n.hr=function(){return this.options.xhtml?"
\n":"
\n"},n.list=function(e,t,n){var u=t?"ol":"ul",r=t&&1!==n?' start="'+n+'"':"";return"<"+u+r+">\n"+e+"\n"},n.listitem=function(e){return"
  • "+e+"
  • \n"},n.checkbox=function(e){return" "},n.paragraph=function(e){return"

    "+e+"

    \n"},n.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},n.tablerow=function(e){return"\n"+e+"\n"},n.tablecell=function(e,t){var n=t.header?"th":"td",u=t.align?"<"+n+' align="'+t.align+'">':"<"+n+">";return u+e+"\n"},n.strong=function(e){return""+e+""},n.em=function(e){return""+e+""},n.codespan=function(e){return""+e+""},n.br=function(){return this.options.xhtml?"
    ":"
    "},n.del=function(e){return""+e+""},n.link=function(e,t,n){if(e=k(this.options.sanitize,this.options.baseUrl,e),null===e)return n;var u='",u},n.image=function(e,t,n){if(e=k(this.options.sanitize,this.options.baseUrl,e),null===e)return n;var u=''+n+'":">",u},n.text=function(e){return e},t}(),H=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),q=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,u=0;if(this.seen.hasOwnProperty(n)){u=this.seen[e];do{u++,n=e+"-"+u}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=u,this.seen[n]=0),n},t.slug=function(e,t){void 0===t&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),Z=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new H,this.slugger=new q}t.parse=function(e,n){var u=new t(n);return u.parse(e)},t.parseInline=function(e,n){var u=new t(n);return u.parseInline(e)};var n=t.prototype;return n.parse=function(e,t){void 0===t&&(t=!0);var n,u,r,i,a,o,s,l,c,D,p,h,f,d,m,A,F,E,k,C="",x=e.length;for(n=0;n0&&"paragraph"===m.tokens[0].type?(m.tokens[0].text=E+" "+m.tokens[0].text,m.tokens[0].tokens&&m.tokens[0].tokens.length>0&&"text"===m.tokens[0].tokens[0].type&&(m.tokens[0].tokens[0].text=E+" "+m.tokens[0].tokens[0].text)):m.tokens.unshift({type:"text",text:E}):d+=E),d+=this.parse(m.tokens,f),c+=this.renderer.listitem(d,F,A);C+=this.renderer.list(c,p,h);continue;case"html":C+=this.renderer.html(D.text);continue;case"paragraph":C+=this.renderer.paragraph(this.parseInline(D.tokens));continue;case"text":c=D.tokens?this.parseInline(D.tokens):D.text;while(n+1An error occurred:

    "+f(s.message+"",!0)+"
    ";throw s}}G.options=G.setOptions=function(e){return B(G.defaults,e),o(G.defaults),G},G.getDefaults=a,G.defaults=e.defaults,G.use=function(){for(var e=arguments.length,t=new Array(e),n=0;nAn error occurred:

    "+f(u.message+"",!0)+"
    ";throw u}},G.Parser=Z,G.parser=Z.parse,G.Renderer=P,G.TextRenderer=H,G.Lexer=j,G.lexer=j.lex,G.Tokenizer=I,G.Slugger=q,G.parse=G;var W=G.options,Q=G.setOptions,Y=G.use,V=G.walkTokens,K=G.parseInline,X=G,J=Z.parse,ee=j.lex;e.Lexer=j,e.Parser=Z,e.Renderer=P,e.Slugger=q,e.TextRenderer=H,e.Tokenizer=I,e.getDefaults=a,e.lexer=ee,e.marked=G,e.options=W,e.parse=X,e.parseInline=K,e.parser=J,e.setOptions=Q,e.use=Y,e.walkTokens=V,Object.defineProperty(e,"__esModule",{value:!0})}))},"3e09":function(e,t,n){ +/*! @license DOMPurify 2.4.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.5/LICENSE */ +(function(t,n){e.exports=n()})(0,(function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,n){return t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(e,n)}function n(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function u(e,r,i){return u=n()?Reflect.construct:function(e,n,u){var r=[null];r.push.apply(r,n);var i=Function.bind.apply(e,r),a=new i;return u&&t(a,u.prototype),a},u.apply(null,arguments)}function r(e){return i(e)||a(e)||o(e)||l()}function i(e){if(Array.isArray(e))return s(e)}function a(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function o(e,t){if(e){if("string"===typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,u=new Array(t);n1?n-1:0),r=1;r/gm),V=g(/\${[\w\W]*}/gm),K=g(/^data-[\-\w.\u00B7-\uFFFF]/),X=g(/^aria-[\-\w]+$/),J=g(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ee=g(/^(?:\w+script|data):/i),te=g(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ne=g(/^html$/i),ue=function(){return"undefined"===typeof window?null:window},re=function(t,n){if("object"!==e(t)||"function"!==typeof t.createPolicy)return null;var u=null,r="data-tt-policy-suffix";n.currentScript&&n.currentScript.hasAttribute(r)&&(u=n.currentScript.getAttribute(r));var i="dompurify"+(u?"#"+u:"");try{return t.createPolicy(i,{createHTML:function(e){return e},createScriptURL:function(e){return e}})}catch(a){return console.warn("TrustedTypes policy "+i+" could not be created."),null}};function ie(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ue(),n=function(e){return ie(e)};if(n.version="2.4.5",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var u=t.document,i=t.document,a=t.DocumentFragment,o=t.HTMLTemplateElement,s=t.Node,l=t.Element,c=t.NodeFilter,D=t.NamedNodeMap,p=void 0===D?t.NamedNodeMap||t.MozNamedAttrMap:D,h=t.HTMLFormElement,f=t.DOMParser,g=t.trustedTypes,m=l.prototype,A=I(m,"cloneNode"),F=I(m,"nextSibling"),E=I(m,"childNodes"),z=I(m,"parentNode");if("function"===typeof o){var R=i.createElement("template");R.content&&R.content.ownerDocument&&(i=R.content.ownerDocument)}var ae=re(g,u),oe=ae?ae.createHTML(""):"",se=i,le=se.implementation,ce=se.createNodeIterator,De=se.createDocumentFragment,pe=se.getElementsByTagName,he=u.importNode,fe={};try{fe=O(i).documentMode?i.documentMode:{}}catch(Rt){}var de={};n.isSupported="function"===typeof z&&le&&"undefined"!==typeof le.createHTMLDocument&&9!==fe;var ge,me,Ae=Q,Fe=Y,Ee=V,ke=K,Ce=X,xe=ee,be=te,ye=J,we=null,ve=N({},[].concat(r(L),r(M),r($),r(j),r(H))),Be=null,_e=N({},[].concat(r(q),r(Z),r(G),r(W))),Te=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Se=null,ze=null,Re=!0,Ne=!0,Oe=!1,Ie=!0,Le=!1,Me=!1,$e=!1,Ue=!1,je=!1,Pe=!1,He=!1,qe=!0,Ze=!1,Ge="user-content-",We=!0,Qe=!1,Ye={},Ve=null,Ke=N({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Xe=null,Je=N({},["audio","video","img","source","image","track"]),et=null,tt=N({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),nt="http://www.w3.org/1998/Math/MathML",ut="http://www.w3.org/2000/svg",rt="http://www.w3.org/1999/xhtml",it=rt,at=!1,ot=null,st=N({},[nt,ut,rt],y),lt=["application/xhtml+xml","text/html"],ct="text/html",Dt=null,pt=i.createElement("form"),ht=function(e){return e instanceof RegExp||e instanceof Function},ft=function(t){Dt&&Dt===t||(t&&"object"===e(t)||(t={}),t=O(t),ge=ge=-1===lt.indexOf(t.PARSER_MEDIA_TYPE)?ct:t.PARSER_MEDIA_TYPE,me="application/xhtml+xml"===ge?y:b,we="ALLOWED_TAGS"in t?N({},t.ALLOWED_TAGS,me):ve,Be="ALLOWED_ATTR"in t?N({},t.ALLOWED_ATTR,me):_e,ot="ALLOWED_NAMESPACES"in t?N({},t.ALLOWED_NAMESPACES,y):st,et="ADD_URI_SAFE_ATTR"in t?N(O(tt),t.ADD_URI_SAFE_ATTR,me):tt,Xe="ADD_DATA_URI_TAGS"in t?N(O(Je),t.ADD_DATA_URI_TAGS,me):Je,Ve="FORBID_CONTENTS"in t?N({},t.FORBID_CONTENTS,me):Ke,Se="FORBID_TAGS"in t?N({},t.FORBID_TAGS,me):{},ze="FORBID_ATTR"in t?N({},t.FORBID_ATTR,me):{},Ye="USE_PROFILES"in t&&t.USE_PROFILES,Re=!1!==t.ALLOW_ARIA_ATTR,Ne=!1!==t.ALLOW_DATA_ATTR,Oe=t.ALLOW_UNKNOWN_PROTOCOLS||!1,Ie=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,Le=t.SAFE_FOR_TEMPLATES||!1,Me=t.WHOLE_DOCUMENT||!1,je=t.RETURN_DOM||!1,Pe=t.RETURN_DOM_FRAGMENT||!1,He=t.RETURN_TRUSTED_TYPE||!1,Ue=t.FORCE_BODY||!1,qe=!1!==t.SANITIZE_DOM,Ze=t.SANITIZE_NAMED_PROPS||!1,We=!1!==t.KEEP_CONTENT,Qe=t.IN_PLACE||!1,ye=t.ALLOWED_URI_REGEXP||ye,it=t.NAMESPACE||rt,Te=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&ht(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Te.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&ht(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Te.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"===typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Te.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Le&&(Ne=!1),Pe&&(je=!0),Ye&&(we=N({},r(H)),Be=[],!0===Ye.html&&(N(we,L),N(Be,q)),!0===Ye.svg&&(N(we,M),N(Be,Z),N(Be,W)),!0===Ye.svgFilters&&(N(we,$),N(Be,Z),N(Be,W)),!0===Ye.mathMl&&(N(we,j),N(Be,G),N(Be,W))),t.ADD_TAGS&&(we===ve&&(we=O(we)),N(we,t.ADD_TAGS,me)),t.ADD_ATTR&&(Be===_e&&(Be=O(Be)),N(Be,t.ADD_ATTR,me)),t.ADD_URI_SAFE_ATTR&&N(et,t.ADD_URI_SAFE_ATTR,me),t.FORBID_CONTENTS&&(Ve===Ke&&(Ve=O(Ve)),N(Ve,t.FORBID_CONTENTS,me)),We&&(we["#text"]=!0),Me&&N(we,["html","head","body"]),we.table&&(N(we,["tbody"]),delete Se.tbody),d&&d(t),Dt=t)},dt=N({},["mi","mo","mn","ms","mtext"]),gt=N({},["foreignobject","desc","title","annotation-xml"]),mt=N({},["title","style","font","a","script"]),At=N({},M);N(At,$),N(At,U);var Ft=N({},j);N(Ft,P);var Et=function(e){var t=z(e);t&&t.tagName||(t={namespaceURI:it,tagName:"template"});var n=b(e.tagName),u=b(t.tagName);return!!ot[e.namespaceURI]&&(e.namespaceURI===ut?t.namespaceURI===rt?"svg"===n:t.namespaceURI===nt?"svg"===n&&("annotation-xml"===u||dt[u]):Boolean(At[n]):e.namespaceURI===nt?t.namespaceURI===rt?"math"===n:t.namespaceURI===ut?"math"===n&>[u]:Boolean(Ft[n]):e.namespaceURI===rt?!(t.namespaceURI===ut&&!gt[u])&&(!(t.namespaceURI===nt&&!dt[u])&&(!Ft[n]&&(mt[n]||!At[n]))):!("application/xhtml+xml"!==ge||!ot[e.namespaceURI]))},kt=function(e){x(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(Rt){try{e.outerHTML=oe}catch(Rt){e.remove()}}},Ct=function(e,t){try{x(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(Rt){x(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Be[e])if(je||Pe)try{kt(t)}catch(Rt){}else try{t.setAttribute(e,"")}catch(Rt){}},xt=function(e){var t,n;if(Ue)e=""+e;else{var u=w(e,/^[\r\n\t ]+/);n=u&&u[0]}"application/xhtml+xml"===ge&&it===rt&&(e=''+e+"");var r=ae?ae.createHTML(e):e;if(it===rt)try{t=(new f).parseFromString(r,ge)}catch(Rt){}if(!t||!t.documentElement){t=le.createDocument(it,"template",null);try{t.documentElement.innerHTML=at?oe:r}catch(Rt){}}var a=t.body||t.documentElement;return e&&n&&a.insertBefore(i.createTextNode(n),a.childNodes[0]||null),it===rt?pe.call(t,Me?"html":"body")[0]:Me?t.documentElement:a},bt=function(e){return ce.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},yt=function(e){return e instanceof h&&("string"!==typeof e.nodeName||"string"!==typeof e.textContent||"function"!==typeof e.removeChild||!(e.attributes instanceof p)||"function"!==typeof e.removeAttribute||"function"!==typeof e.setAttribute||"string"!==typeof e.namespaceURI||"function"!==typeof e.insertBefore||"function"!==typeof e.hasChildNodes)},wt=function(t){return"object"===e(s)?t instanceof s:t&&"object"===e(t)&&"number"===typeof t.nodeType&&"string"===typeof t.nodeName},vt=function(e,t,u){de[e]&&k(de[e],(function(e){e.call(n,t,u,Dt)}))},Bt=function(e){var t;if(vt("beforeSanitizeElements",e,null),yt(e))return kt(e),!0;if(T(/[\u0080-\uFFFF]/,e.nodeName))return kt(e),!0;var u=me(e.nodeName);if(vt("uponSanitizeElement",e,{tagName:u,allowedTags:we}),e.hasChildNodes()&&!wt(e.firstElementChild)&&(!wt(e.content)||!wt(e.content.firstElementChild))&&T(/<[/\w]/g,e.innerHTML)&&T(/<[/\w]/g,e.textContent))return kt(e),!0;if("select"===u&&T(/