kubectl
command to install the latest version of cert-manager:\n',applyCommand:"kubectl apply -f https://github.com/jetstack/cert-manager/releases/latest/download/cert-manager.yaml",openShell:"Open Kubectl Shell",stepProgress:"The active step will progress once Cert-Manager is installed."},repository:{title:"Repository",description:"You will need the Kubewarden helm repository (https://charts.kubewarden.io) to install the `kubewarden` chart."}},tabs:{general:{label:"General",nameOverride:{label:"nameOverride",description:"Replaces the release name of the chart in Chart.yaml file when this is used to construct Kubernetes object names."},fullnameOverride:{label:"fullnameOverride",description:"Completely replaces the generated release name."},imagePullSecrets:{label:"Image Pull Secrets",description:"Secrets to pull container images from private registries."},image:{label:"Image",description:"Controller image to be used.",repository:"Repository",tag:"Tag"},preDeleteJob:"Kubectl image to be used in the pre-delete helm hook.",podAnnotations:"Pod Annotations",nodeSelector:"Node Selector",tolerations:"Tolerations",affinity:"Affinity",tls:{source:"Source",certManagerIssuerName:"Cert-Manager Issuer Name"}},telemetry:{label:"Telemetry",checkbox:"Enabled",port:"Port",tracing:{label:"Tracing",endpoint:"Endpoint",jaeger:"Jaeger endpoint to send traces.",placeholder:"all-in-one-collector.jaeger.svc.cluster.local:14250"}}}},policyServer:{title:"Policy Servers",noDefaultsInstalled:{description:'The default PolicyServer and policies are not installed, click the button below to begin installing this chart. See the documentation for more information on installing charts.\n',button:"Install Chart"},policyGauge:{byStatus:"Policies by Status",traces:"Policy Validations"}},admissionPolicy:{title:"Admission Policies",description:"AdmissionPolicy is a namespace-wide resource. These policies will process only the requests that are targeting the Namespace where the AdmissionPolicy is defined."},clusterAdmissionPolicy:{title:"Cluster Admission Policies",description:"ClusterAdmissionPolicy is a cluster-wide resource. These policies will process all requests within the cluster where the ClusterAdmissionPolicy is defined."},customPolicy:{badge:"Custom",title:"Custom Policy",description:"A generic template for using your own policy."},policies:{noArtifactHub:"Official Kubewarden policies are hosted on ArtifactHub, in order to show these you will need to add `artifacthub.io` to the whitelist-domain setting.",noRules:"There are no rules configured for this policy.",namespaceWarning:"This policy is targeting Rancher specific namespaces which will cause catastrophic failures with your Rancher deployment."},utils:{resetFilter:"Reset Filter"},tracing:{noJaeger:'No Jaeger service is installed, please follow the steps listed here to setup tracing for your policies.\n',noRelatedTraces:"No tracing data exists for the related policies.",noTraces:"No tracing data exists for this policy."},monitoring:{notInstalled:'The Monitoring app is not installed, this will will need to be installed and configured to enable metrics. Follow these steps to add the Kubewarden ServiceMonitor for Prometheus.\n',install:"Install Monitoring"},metrics:{notInstalled:"The Grafana dashboard for this Kubewarden resource can not be found. You need to create the ConfigMap for the dashboard.",reload:"Grafana dashboard created - reload required"},policyConfig:{serverSelect:{label:"Policy Server",tooltip:"The PolicyServer that will receive the requests to be validated."},module:{label:"Module",tooltip:"This is the WebAssembly module that holds the validation or mutation logic."},mutating:{label:"Mutating",tooltip:"A mutating policy will rebuild the requests with definied values that are conformant with the policy definition."},mode:{label:"Mode",tooltip:"The monitor mode is a way to deploy policies to the cluster in a way that all requests that go through the policy will be accepted, as if the policy didn't exist. Defaults to 'Protect'.",warning:"Once the policy mode has been switched to Protect, you will not be able to revert this change.",update:{checkbox:"Update to Protect Mode",title:"Update Policy Mode",body:"The monitor mode is a way to view the behavior of a policy without letting it make the final decision on requests that are validated by the policy."}},ignoreRancherNamespaces:{label:"Ignore Rancher Namespaces",tooltip:"Certain policies will break core services of Rancher, this will add a default list of namespaces to ignore."},rules:{add:"Add Rule Set",remove:"Remove Rule Set"},apiGroups:{label:"API Groups",tooltip:"The API groups the resources belong to."},apiVersions:{label:"API Versions",tooltip:"The API versions the resources belong to."},operations:{label:"Operation type",tooltip:"The operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT."},resources:{label:"Resource type",tooltip:"The targeted resources for the policy. Needs to be a resource that is supported by the policy, this is determined in the `metadata.yml` of the selected policy."},scope:{label:"Scope",tooltip:'Specifies the scope of this rule. Valid values are "Cluster", "Namespaced", and "". "Cluster" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. "Namespaced" means that only namespaced resources will match this rule. "" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is "*".'}},policyServerConfig:{defaultImage:{label:"Default Image",tooltip:"Use the default `policy-server` container image."},image:{label:"Image URL",tooltip:"This is the container image the policy server."},replicas:"Replicas",registry:{description:'The PolicyServer allows you to pull policies from OCI registries and HTTP servers, by default HTTPS is enforced with host TLS verification. You can interact with registries using untrusted certificates or even without TLS by using the `insecureSources` setting. This approach is highly discouraged in environments closer to production. More information on configuring custom certificate authorities can be found here.'},insecureSources:{title:"Insecure Sources",addLabel:"Add Insecure Source",placeholder:"registry-dev.example.com:5500"},sourceAuthorities:{title:"Source Authorities",add:"Add Source Authority",endpoint:"Registry URI Endpoint",placeholder:"registry-pre.example.com:5500",certificate:{label:"Certificate",add:"Add PEM Certificate",remove:"Remove Certificate",file:"Read Certificate from File"}},verification:{label:"Verification Config",description:'This is the name of a VerificationConfig configmap within the same namespace, containing a Sigstore verification configuration. The configuration must be under a key named verification-config in the Configmap. More information can be found in the Kubewarden docs.'}},policyCharts:{signedPolicy:"This policy has been signed with cosign (Sigstore).",mutationPolicy:"Mutation Policy",contextAware:"Context Aware","allow-privilege-escalation-psp":{name:"Allow Privilege Escalation PSP",description:"A Pod Security Policy that controls usage of `allowPrivilegeEscalation`",resourceType:"Pod",keywords:"PSP\nContainer\nPrivilege Escalation\n"},"allowed-fsgroups-psp":{name:"Allowed fsGroups PSP",description:"Replacement for the Kubernetes Pod Security Policy that controls the usage of fsGroup in the pod security context",resourceType:"Pod",keywords:"PSP\nContainer\nRuntime\n"},"allowed-proc-mount-types-psp":{name:"Allowed Proc Mount Types PSP",description:"Replacement for the Kubernetes Pod Security Policy that controls the usage of /proc mount types",resourceType:"Pod",keywords:"PSP\nContainer\nRuntime\n"},"apparmor-psp":{name:"AppArmor PSP",description:"A Pod Security Policy that controls usage of AppArmor profiles",resourceType:"Pod",keywords:"PSP\nAppArmor\n"},"capabilities-psp":{name:"Capabilities PSP",description:"A Pod Security Policy that controls Container Capabilities",resourceType:"Pod",keywords:"PSP\nContainer\nCapability\nCapabilities\n"},"disallow-service-loadbalancer":{name:"Disallow Service LoadBalancer",description:"A policy that prevents the creation of Service resources of type `LoadBalancer`",resourceType:"Service",keywords:"Service\n"},"disallow-service-nodeport":{name:"Disallow Service NodePort",description:"A policy that prevents the creation of Service resources of type `NodePort`",resourceType:"Service",keywords:"Service\n"},"flexvolume-drivers-psp":{name:"FlexVolume Drivers PSP",description:"Replacement for the Kubernetes Pod Security Policy that controls the allowed `flexVolume` drivers",resourceType:"Pod",keywords:"PSP\nContainer\nRuntime\nFlex Volume\nFlex\n"},"host-namespaces-psp":{name:"Host Namespaces PSP",description:"A Pod Security Policy that controls the usage of host namespaces",resourceType:"Pod",keywords:"PSP\nContainer\nNetwork\n"},"hostpaths-psp":{name:"Hostpaths PSP",description:"A Pod Security Policy that controls usage of hostPath volumes",resourceType:"Pod",keywords:"PSP\nHostpaths\nPod\n"},ingress:{name:"Ingress",description:"Enforce requirements on Ingress resources",resourceType:"Ingress",keywords:"Ingress\n"},"pod-privileged-policy":{name:"Pod Privileged Policy",description:"Limit the ability to create privileged containers",resourceType:"Pod",keywords:"PSP\nPod\nContainer\nPrivileged\n"},"pod-runtime":{name:"Pod Runtime",description:"Control Pod runtimeClass usage",resourceType:"Pod",keywords:"Pod\nRuntime\nContainer Runtime\n"},"readonly-root-filesystem-psp":{name:"Readonly Root Filesystem PSP",description:"A Kubewarden policy that enforces root filesystem to be readonly",resourceType:"Pod",keywords:"PSP\nContainer\nfilesystem\nVolume\n"},"safe-annotations":{name:"Safe Annotations",description:"A policy that validates Kubernetes' resource annotations",resourceType:"Global",keywords:"Annotations\n"},"safe-labels":{name:"Safe Labels",description:"A policy that validates Kubernetes' resource labels",resourceType:"Global",keywords:"Labels\n"},"seccomp-psp":{name:"Seccomp PSP",description:"Pod Security Policy that controls usage of Seccomp profile",resourceType:"Pod",keywords:"PSP\nseccomp\n"},"selinux-psp":{name:"SELinux PSP",description:"Replacement for the Kubernetes Pod Security Policy that controls the usage of SELinux",resourceType:"Pod",keywords:"PSP\nContainer\nRuntime\nSELinux\n"},"sysctl-psp":{name:"Sysctl PSP",description:"A Pod Security Policy that controls usage of sysctls in pods",resourceType:"Pod",keywords:"PSP\nSysctl\nPod\n"},"trusted-repos":{name:"Trusted Repos",description:"Restrict what registries, tags and images can be used",resourceType:"Pod",keywords:"Image\nRegistry\nTag\n"},"user-group-psp":{name:"User Group PSP",description:"A Pod Security Policy that controls the container user and groups",resourceType:"Pod",keywords:"PSP\nContainer\nUser\nGroup\n"},"verify-image-signatures":{name:"Verify Image Signatures",description:"Validates Sigstore signatures for containers, init container and ephemeral container that match the name provided in the image settings field.",resourceType:"Pod",keywords:"Pod\nSignature\nSigstore\nTrusted\n"},"volumes-psp":{name:"Volumes PSP",description:"Pod Security Policy that controls usage of volumes",resourceType:"Pod",keywords:"PSP\nVolumes\nPod\n"}}},asyncButton:{artifactHub:{action:"Add ArtifactHub To Whitelist",success:"Added",waiting:"Adding…"},certManager:{action:"Apply Cert-Manager Package",success:"Applied",waiting:"Installing…"},kubewardenRepository:{action:"Add Kubewarden Repository",success:"Added",waiting:"Adding…"},grafanaDashboard:{action:"Add Grafana Dashboard",success:"Added",wating:"Adding…"}}}];e.exports=o.length<=1?o[0]:o}}]);
+//# sourceMappingURL=kubewarden-0.1.16.umd.min.33.js.map
\ No newline at end of file
diff --git a/extensions/kubewarden/0.1.16/plugin/kubewarden-0.1.16.umd.min.33.js.map b/extensions/kubewarden/0.1.16/plugin/kubewarden-0.1.16.umd.min.33.js.map
new file mode 100644
index 00000000..4e3468ef
--- /dev/null
+++ b/extensions/kubewarden/0.1.16/plugin/kubewarden-0.1.16.umd.min.33.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack://kubewarden-0.1.16/./l10n/en-us.yaml"],"names":["doc","module","exports","length"],"mappings":"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","file":"kubewarden-0.1.16.umd.min.33.js","sourcesContent":["const doc = [({\"kubewarden\":({\"title\":\"Kubewarden\", \"dashboard\":({\"title\":\"Dashboard\", \"install\":\"Install\", \"notInstalled\":\"Kubewarden is not installed\", \"button\":\"Install Kubewarden Prerequisites\", \"intro\":\"Welcome to Kubewarden\", \"blurb\":\"A Dynamic Admission Controller for Kubernetes\", \"description\":\"Kubewarden is a policy engine for Kubernetes. It helps with keeping your Kubernetes clusters secure and compliant. Kubewarden policies can be written using regular programming languages or Domain Specific Languages (DSL). Policies are compiled into WebAssembly modules that are then distributed using traditional container registries.\\n\", \"getStarted\":\"Get Started\", \"issues\":\"Issues\", \"headers\":({\"policyServer\":({\"title\":\"Policy Servers\", \"description\":\"Kubewarden uses Policy Servers to receive requests to be validated. It does that by executing Kubewarden's policies.\", \"linkText\":\"Create Policy Server\", \"slotTitle\":\"Deployments\"}), \"admissionPolicy\":({\"title\":\"Admission Policies\", \"description\":\"An Admission Policy is a namespace-wide resource. The policy will process only the requests that are targeting the Namespace where the Admission Policy is defined.\", \"linkText\":\"Create Admission Policy\", \"slotTitle\":\"Policies\"}), \"clusterAdmissionPolicy\":({\"title\":\"Cluster Admission Policies\", \"description\":\"The Cluster Admission Policy resource is the core of the Kubewarden stack. This resource defines how policies evaluate requests.\", \"linkText\":\"Create Cluster Admission Policy\", \"slotTitle\":\"Policies\"}), \"modes\":({\"title\":\"Policy Modes\", \"monitor\":\"Monitor\", \"protect\":\"Protect\"})}), \"appInstall\":({\"title\":\"Kubewarden App Install\", \"description\":\"This will take you to the app installation page for Kubewarden.\", \"button\":\"Install Kubewarden\", \"stepTitle\":\"Kubewarden Install\"}), \"prerequisites\":({\"title\":\"Prerequisites\", \"certManager\":({\"title\":\"Install Cert-Manager Package\", \"description\":\"The kubewarden-controller depends on cert-manager. You need cert-manager to be installed before installing the kubewarden-controller chart.\", \"manualStep\":\"Click the button below and follow the Documentation, or run the kubectl
command to install the latest version of cert-manager:\\n\", \"applyCommand\":\"kubectl apply -f https://github.com/jetstack/cert-manager/releases/latest/download/cert-manager.yaml\", \"openShell\":\"Open Kubectl Shell\", \"stepProgress\":\"The active step will progress once Cert-Manager is installed.\"}), \"repository\":({\"title\":\"Repository\", \"description\":\"You will need the Kubewarden helm repository (https://charts.kubewarden.io) to install the `kubewarden` chart.\"})}), \"tabs\":({\"general\":({\"label\":\"General\", \"nameOverride\":({\"label\":\"nameOverride\", \"description\":\"Replaces the release name of the chart in Chart.yaml file when this is used to construct Kubernetes object names.\"}), \"fullnameOverride\":({\"label\":\"fullnameOverride\", \"description\":\"Completely replaces the generated release name.\"}), \"imagePullSecrets\":({\"label\":\"Image Pull Secrets\", \"description\":\"Secrets to pull container images from private registries.\"}), \"image\":({\"label\":\"Image\", \"description\":\"Controller image to be used.\", \"repository\":\"Repository\", \"tag\":\"Tag\"}), \"preDeleteJob\":\"Kubectl image to be used in the pre-delete helm hook.\", \"podAnnotations\":\"Pod Annotations\", \"nodeSelector\":\"Node Selector\", \"tolerations\":\"Tolerations\", \"affinity\":\"Affinity\", \"tls\":({\"source\":\"Source\", \"certManagerIssuerName\":\"Cert-Manager Issuer Name\"})}), \"telemetry\":({\"label\":\"Telemetry\", \"checkbox\":\"Enabled\", \"port\":\"Port\", \"tracing\":({\"label\":\"Tracing\", \"endpoint\":\"Endpoint\", \"jaeger\":\"Jaeger endpoint to send traces.\", \"placeholder\":\"all-in-one-collector.jaeger.svc.cluster.local:14250\"})})})}), \"policyServer\":({\"title\":\"Policy Servers\", \"noDefaultsInstalled\":({\"description\":\"The default PolicyServer and policies are not installed, click the button below to begin installing this chart. See the documentation for more information on installing charts.\\n\", \"button\":\"Install Chart\"}), \"policyGauge\":({\"byStatus\":\"Policies by Status\", \"traces\":\"Policy Validations\"})}), \"admissionPolicy\":({\"title\":\"Admission Policies\", \"description\":\"AdmissionPolicy is a namespace-wide resource. These policies will process only the requests that are targeting the Namespace where the AdmissionPolicy is defined.\"}), \"clusterAdmissionPolicy\":({\"title\":\"Cluster Admission Policies\", \"description\":\"ClusterAdmissionPolicy is a cluster-wide resource. These policies will process all requests within the cluster where the ClusterAdmissionPolicy is defined.\"}), \"customPolicy\":({\"badge\":\"Custom\", \"title\":\"Custom Policy\", \"description\":\"A generic template for using your own policy.\"}), \"policies\":({\"noArtifactHub\":\"Official Kubewarden policies are hosted on ArtifactHub, in order to show these you will need to add `artifacthub.io` to the whitelist-domain setting.\", \"noRules\":\"There are no rules configured for this policy.\", \"namespaceWarning\":\"This policy is targeting Rancher specific namespaces which will cause catastrophic failures with your Rancher deployment.\"}), \"utils\":({\"resetFilter\":\"Reset Filter\"}), \"tracing\":({\"noJaeger\":\"No Jaeger service is installed, please follow the steps listed here to setup tracing for your policies.\\n\", \"noRelatedTraces\":\"No tracing data exists for the related policies.\", \"noTraces\":\"No tracing data exists for this policy.\"}), \"monitoring\":({\"notInstalled\":\"The Monitoring app is not installed, this will will need to be installed and configured to enable metrics. Follow these steps to add the Kubewarden ServiceMonitor for Prometheus.\\n\", \"install\":\"Install Monitoring\"}), \"metrics\":({\"notInstalled\":\"The Grafana dashboard for this Kubewarden resource can not be found. You need to create the ConfigMap for the dashboard.\", \"reload\":\"Grafana dashboard created - reload required\"}), \"policyConfig\":({\"serverSelect\":({\"label\":\"Policy Server\", \"tooltip\":\"The PolicyServer that will receive the requests to be validated.\"}), \"module\":({\"label\":\"Module\", \"tooltip\":\"This is the WebAssembly module that holds the validation or mutation logic.\"}), \"mutating\":({\"label\":\"Mutating\", \"tooltip\":\"A mutating policy will rebuild the requests with definied values that are conformant with the policy definition.\"}), \"mode\":({\"label\":\"Mode\", \"tooltip\":\"The monitor mode is a way to deploy policies to the cluster in a way that all requests that go through the policy will be accepted, as if the policy didn't exist. Defaults to 'Protect'.\", \"warning\":\"Once the policy mode has been switched to Protect, you will not be able to revert this change.\", \"update\":({\"checkbox\":\"Update to Protect Mode\", \"title\":\"Update Policy Mode\", \"body\":\"The monitor mode is a way to view the behavior of a policy without letting it make the final decision on requests that are validated by the policy.\"})}), \"ignoreRancherNamespaces\":({\"label\":\"Ignore Rancher Namespaces\", \"tooltip\":\"Certain policies will break core services of Rancher, this will add a default list of namespaces to ignore.\"}), \"rules\":({\"add\":\"Add Rule Set\", \"remove\":\"Remove Rule Set\"}), \"apiGroups\":({\"label\":\"API Groups\", \"tooltip\":\"The API groups the resources belong to.\"}), \"apiVersions\":({\"label\":\"API Versions\", \"tooltip\":\"The API versions the resources belong to.\"}), \"operations\":({\"label\":\"Operation type\", \"tooltip\":\"The operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT.\"}), \"resources\":({\"label\":\"Resource type\", \"tooltip\":\"The targeted resources for the policy. Needs to be a resource that is supported by the policy, this is determined in the `metadata.yml` of the selected policy.\"}), \"scope\":({\"label\":\"Scope\", \"tooltip\":\"Specifies the scope of this rule. Valid values are \\\"Cluster\\\", \\\"Namespaced\\\", and \\\"\\\". \\\"Cluster\\\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \\\"Namespaced\\\" means that only namespaced resources will match this rule. \\\"\\\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \\\"*\\\".\"})}), \"policyServerConfig\":({\"defaultImage\":({\"label\":\"Default Image\", \"tooltip\":\"Use the default `policy-server` container image.\"}), \"image\":({\"label\":\"Image URL\", \"tooltip\":\"This is the container image the policy server.\"}), \"replicas\":\"Replicas\", \"registry\":({\"description\":\"The PolicyServer allows you to pull policies from OCI registries and HTTP servers, by default HTTPS is enforced with host TLS verification. You can interact with registries using untrusted certificates or even without TLS by using the `insecureSources` setting. This approach is highly discouraged in environments closer to production. More information on configuring custom certificate authorities can be found here.\"}), \"insecureSources\":({\"title\":\"Insecure Sources\", \"addLabel\":\"Add Insecure Source\", \"placeholder\":\"registry-dev.example.com:5500\"}), \"sourceAuthorities\":({\"title\":\"Source Authorities\", \"add\":\"Add Source Authority\", \"endpoint\":\"Registry URI Endpoint\", \"placeholder\":\"registry-pre.example.com:5500\", \"certificate\":({\"label\":\"Certificate\", \"add\":\"Add PEM Certificate\", \"remove\":\"Remove Certificate\", \"file\":\"Read Certificate from File\"})}), \"verification\":({\"label\":\"Verification Config\", \"description\":\"This is the name of a VerificationConfig configmap within the same namespace, containing a Sigstore verification configuration. The configuration must be under a key named verification-config in the Configmap. More information can be found in the Kubewarden docs.\"})}), \"policyCharts\":({\"signedPolicy\":\"This policy has been signed with cosign (Sigstore).\", \"mutationPolicy\":\"Mutation Policy\", \"contextAware\":\"Context Aware\", \"allow-privilege-escalation-psp\":({\"name\":\"Allow Privilege Escalation PSP\", \"description\":\"A Pod Security Policy that controls usage of `allowPrivilegeEscalation`\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nContainer\\nPrivilege Escalation\\n\"}), \"allowed-fsgroups-psp\":({\"name\":\"Allowed fsGroups PSP\", \"description\":\"Replacement for the Kubernetes Pod Security Policy that controls the usage of fsGroup in the pod security context\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nContainer\\nRuntime\\n\"}), \"allowed-proc-mount-types-psp\":({\"name\":\"Allowed Proc Mount Types PSP\", \"description\":\"Replacement for the Kubernetes Pod Security Policy that controls the usage of /proc mount types\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nContainer\\nRuntime\\n\"}), \"apparmor-psp\":({\"name\":\"AppArmor PSP\", \"description\":\"A Pod Security Policy that controls usage of AppArmor profiles\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nAppArmor\\n\"}), \"capabilities-psp\":({\"name\":\"Capabilities PSP\", \"description\":\"A Pod Security Policy that controls Container Capabilities\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nContainer\\nCapability\\nCapabilities\\n\"}), \"disallow-service-loadbalancer\":({\"name\":\"Disallow Service LoadBalancer\", \"description\":\"A policy that prevents the creation of Service resources of type `LoadBalancer`\", \"resourceType\":\"Service\", \"keywords\":\"Service\\n\"}), \"disallow-service-nodeport\":({\"name\":\"Disallow Service NodePort\", \"description\":\"A policy that prevents the creation of Service resources of type `NodePort`\", \"resourceType\":\"Service\", \"keywords\":\"Service\\n\"}), \"flexvolume-drivers-psp\":({\"name\":\"FlexVolume Drivers PSP\", \"description\":\"Replacement for the Kubernetes Pod Security Policy that controls the allowed `flexVolume` drivers\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nContainer\\nRuntime\\nFlex Volume\\nFlex\\n\"}), \"host-namespaces-psp\":({\"name\":\"Host Namespaces PSP\", \"description\":\"A Pod Security Policy that controls the usage of host namespaces\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nContainer\\nNetwork\\n\"}), \"hostpaths-psp\":({\"name\":\"Hostpaths PSP\", \"description\":\"A Pod Security Policy that controls usage of hostPath volumes\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nHostpaths\\nPod\\n\"}), \"ingress\":({\"name\":\"Ingress\", \"description\":\"Enforce requirements on Ingress resources\", \"resourceType\":\"Ingress\", \"keywords\":\"Ingress\\n\"}), \"pod-privileged-policy\":({\"name\":\"Pod Privileged Policy\", \"description\":\"Limit the ability to create privileged containers\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nPod\\nContainer\\nPrivileged\\n\"}), \"pod-runtime\":({\"name\":\"Pod Runtime\", \"description\":\"Control Pod runtimeClass usage\", \"resourceType\":\"Pod\", \"keywords\":\"Pod\\nRuntime\\nContainer Runtime\\n\"}), \"readonly-root-filesystem-psp\":({\"name\":\"Readonly Root Filesystem PSP\", \"description\":\"A Kubewarden policy that enforces root filesystem to be readonly\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nContainer\\nfilesystem\\nVolume\\n\"}), \"safe-annotations\":({\"name\":\"Safe Annotations\", \"description\":\"A policy that validates Kubernetes' resource annotations\", \"resourceType\":\"Global\", \"keywords\":\"Annotations\\n\"}), \"safe-labels\":({\"name\":\"Safe Labels\", \"description\":\"A policy that validates Kubernetes' resource labels\", \"resourceType\":\"Global\", \"keywords\":\"Labels\\n\"}), \"seccomp-psp\":({\"name\":\"Seccomp PSP\", \"description\":\"Pod Security Policy that controls usage of Seccomp profile\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nseccomp\\n\"}), \"selinux-psp\":({\"name\":\"SELinux PSP\", \"description\":\"Replacement for the Kubernetes Pod Security Policy that controls the usage of SELinux\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nContainer\\nRuntime\\nSELinux\\n\"}), \"sysctl-psp\":({\"name\":\"Sysctl PSP\", \"description\":\"A Pod Security Policy that controls usage of sysctls in pods\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nSysctl\\nPod\\n\"}), \"trusted-repos\":({\"name\":\"Trusted Repos\", \"description\":\"Restrict what registries, tags and images can be used\", \"resourceType\":\"Pod\", \"keywords\":\"Image\\nRegistry\\nTag\\n\"}), \"user-group-psp\":({\"name\":\"User Group PSP\", \"description\":\"A Pod Security Policy that controls the container user and groups\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nContainer\\nUser\\nGroup\\n\"}), \"verify-image-signatures\":({\"name\":\"Verify Image Signatures\", \"description\":\"Validates Sigstore signatures for containers, init container and ephemeral container that match the name provided in the image settings field.\", \"resourceType\":\"Pod\", \"keywords\":\"Pod\\nSignature\\nSigstore\\nTrusted\\n\"}), \"volumes-psp\":({\"name\":\"Volumes PSP\", \"description\":\"Pod Security Policy that controls usage of volumes\", \"resourceType\":\"Pod\", \"keywords\":\"PSP\\nVolumes\\nPod\\n\"})})}), \"asyncButton\":({\"artifactHub\":({\"action\":\"Add ArtifactHub To Whitelist\", \"success\":\"Added\", \"waiting\":\"Adding…\"}), \"certManager\":({\"action\":\"Apply Cert-Manager Package\", \"success\":\"Applied\", \"waiting\":\"Installing…\"}), \"kubewardenRepository\":({\"action\":\"Add Kubewarden Repository\", \"success\":\"Added\", \"waiting\":\"Adding…\"}), \"grafanaDashboard\":({\"action\":\"Add Grafana Dashboard\", \"success\":\"Added\", \"wating\":\"Adding…\"})})})];\nmodule.exports = doc.length <= 1 ? doc[0] : doc;"],"sourceRoot":""}
\ No newline at end of file
diff --git a/extensions/kubewarden/0.1.16/plugin/kubewarden-0.1.16.umd.min.detail.js b/extensions/kubewarden/0.1.16/plugin/kubewarden-0.1.16.umd.min.detail.js
new file mode 100644
index 00000000..29107fe4
--- /dev/null
+++ b/extensions/kubewarden/0.1.16/plugin/kubewarden-0.1.16.umd.min.detail.js
@@ -0,0 +1,2 @@
+(("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_0_1_16"]=("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_0_1_16"]||[]).push([[0],{"00ce":function(e,t,a){"use strict";var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e._t("traceBanner"),e.rows?a("SortableTable",{attrs:{rows:e.rows,headers:e.TRACE_HEADERS,"table-actions":!1,"row-actions":!1,"key-field":"traceID","default-sort-by":"startTime","sub-expandable":!0,"sub-expand-column":!0,"sub-rows":!0,paging:!0,"rows-per-page":e.rowsPerPage},scopedSlots:e._u([{key:"col:operation",fn:function(t){var r=t.row;return[a("td",[a("BadgeState",{attrs:{label:r.operation,color:e.opColor(r.operation)}})],1)]}},{key:"col:mode",fn:function(t){var r=t.row;return[a("td",[a("BadgeState",{attrs:{label:e.capitalizeMessage(r.mode),color:e.modeColor(r.mode)}})],1)]}},{key:"sub-row",fn:function(t){var r=t.row,s=t.fullColspan;return[a("td",{staticClass:"sub-row",attrs:{colspan:s}},[a("div",{staticClass:"details"},[e.showLogs(r.logs)?[a("section",{staticClass:"col"},[a("div",{staticClass:"title"},[e._v(" Response ")]),r.logs.response?a("span",{staticClass:"text-info"},[e._v(" "+e._s(e.capitalizeMessage(r.logs.response))+" ")]):a("span",[e._v(" N/A ")])])]:[a("section",{staticClass:"col"},[a("div",{staticClass:"title"},[e._v(" Response Message ")]),r.response_message?a("span",{staticClass:"text-warning"},[e._v(" "+e._s(e.capitalizeMessage(r.response_message))+" ")]):a("span",[e._v(" N/A ")])]),a("section",{staticClass:"col"},[a("div",{staticClass:"title"},[e._v(" Response Code ")]),a("span",{staticClass:"text-info"},[e._v(" "+e._s(r.response_code?r.response_code:"N/A")+" ")])]),a("section",{staticClass:"col"},[a("div",{staticClass:"title"},[e._v(" Mutated ")]),a("span",{staticClass:"text-info"},[e._v(" "+e._s(r.mutated)+" ")])])]],2)])]}}],null,!1,877644766)}):e._e()],2)},s=[],i=a("e24b"),o=a("f17a"),n=a("0fb1"),l=a("d892"),c=a("5191"),d=a("90cd"),u={props:{rows:{type:Array,default:()=>[]}},components:{BadgeState:o["a"],SortableTable:n["b"]},data(){return{MODE_MAP:l["a"],TRACE_HEADERS:c["f"],OPERATION_MAP:l["c"]}},computed:{groupField(){return this.isPolicyServer?"policy_id":null},isPolicyServer(){return this.$route.params.resource===d["a"].POLICY_SERVER},rowsPerPage(){return this.isPolicyServer?40:20}},methods:{capitalizeMessage(e){return(null===e||void 0===e?void 0:e.charAt(0).toUpperCase())+(null===e||void 0===e?void 0:e.slice(1))},modeColor(e){return this.MODE_MAP[e]},opColor(e){return this.OPERATION_MAP[e]},showLogs(e){return!Object(i["h"])(e)}}},p=u,v=(a("a490"),a("d802")),m=Object(v["a"])(p,r,s,!1,null,"10dc4b51",null);t["a"]=m.exports},"1aa5":function(e,t,a){var r=a("d148");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("75473e81",r,!0,{sourceMap:!1,shadowMode:!1})},"25c6":function(e,t,a){var r=a("6b59");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("bf3691b2",r,!0,{sourceMap:!1,shadowMode:!1})},"284d":function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.$fetchState.pending?a("Loading"):a("div",[e.policyGauges?[a("div",{staticClass:"row"},[[a("div",{staticClass:"col span-6"},[a("h3",[e._v(" "+e._s(e.t("kubewarden.policyServer.policyGauge.byStatus"))+" ")]),a("div",{staticClass:"gauges mb-20"},e._l(e.policyGauges,(function(t,r){return a("CountGauge",{key:r,attrs:{total:e.relatedPolicies.length,useful:t.count||0,graphical:!1,"primary-color-var":"--sizzle-"+t.color,name:r}})})),1)])],e.emptyTraces?e._e():[a("div",{staticClass:"col span-6"},[a("h3",[e._v(" "+e._s(e.t("kubewarden.policyServer.policyGauge.traces"))+" ")]),a("div",{staticClass:"gauges mb-20"},e._l(e.tracesGauges,(function(t,r){return a("CountGauge",{key:r,attrs:{total:e.filteredValidations.length,useful:t.count||0,graphical:!1,"primary-color-var":"--sizzle-"+t.color,name:r}})})),1)])]],2)]:e._e(),a("ResourceTabs",{attrs:{mode:e.mode},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[a("Tab",{attrs:{name:"related-policies",label:"Policies",weight:99},scopedSlots:e._u([{key:"default",fn:function(){return[a("ResourceTable",{attrs:{rows:e.relatedPolicies,headers:e.RELATED_HEADERS,groupable:!0,"group-by":"kind","table-actions":!0},scopedSlots:e._u([{key:"col:operation",fn:function(t){var r=t.row;return[a("td",[a("BadgeState",{attrs:{label:r.operation,color:e.color(r.operation)}})],1)]}}])})]},proxy:!0}])}),a("Tab",{attrs:{name:"policy-metrics",label:"Metrics",weight:98},scopedSlots:e._u([e.metricsService?{key:"default",fn:function(t){return[t.active?a("DashboardMetrics",{attrs:{"detail-url":e.metricsProxy,"summary-url":e.metricsProxy,"graph-height":"825px"}}):e._e()]}}:null],null,!0)},[e.monitoringStatus.installed&&e.metricsService?e._e():a("MetricsBanner",{attrs:{"metrics-service":e.metricsService,"metrics-type":e.metricsType,"monitoring-route":e.monitoringRoute,"reload-required":e.reloadRequired},on:{add:e.addDashboard}})],1),a("Tab",{attrs:{name:"policy-tracing",label:"Tracing",weight:97}},[[a("TraceTable",{attrs:{rows:e.filteredValidations},scopedSlots:e._u([{key:"traceBanner",fn:function(){return[e.emptyTraces?a("Banner",{attrs:{color:"warning"}},[e.jaegerService?a("span",[e._v(e._s(e.t("kubewarden.tracing.noRelatedTraces")))]):a("span",{domProps:{innerHTML:e._s(e.t("kubewarden.tracing.noJaeger",{},!0))}})]):e._e()]},proxy:!0}])})]],2)],1)],2)},s=[],i=a("9ce4"),o=a("da25"),n=a("b45b"),l=a("f390"),c=a("a8b9"),d=a("305c"),u=a("6418"),p=a("74c2"),v=a("c389"),m=a("15ca"),b=a("c422"),g=a("126f"),f=a("38de"),h=a("9ec3"),y=a("90cd"),_=a("5191"),w=a("2c30"),S=a("00ce"),x={name:"PolicyServer",components:{Banner:u["a"],CountGauge:p["a"],DashboardMetrics:v["a"],Loading:m["a"],MetricsBanner:w["a"],ResourceTabs:b["a"],ResourceTable:g["a"],Tab:f["a"],TraceTable:S["a"]},mixins:[d["a"]],props:{mode:{type:String,default:o["u"]},value:{type:Object,required:!0}},async fetch(){const e=await Object(c["a"])({relatedPolicies:this.value.allRelatedPolicies(),policyGauges:this.value.policyGauges(),jaegerService:this.value.jaegerService()});if(Object(h["isEmpty"])(e.relatedPolicies)||(this.relatedPolicies=e.relatedPolicies),Object(h["isEmpty"])(e.policyGauges)||(this.policyGauges=e.policyGauges),Object(h["isEmpty"])(e.jaegerService)||(this.jaegerService=e.jaegerService),!Object(h["isEmpty"])(this.relatedPolicies)&&this.jaegerService&&(this.filteredValidations=await this.value.filteredValidations({service:this.jaegerService})),this.monitoringStatus.installed)try{var t;if(this.metricsProxy=await this.value.grafanaProxy(this.metricsType),this.metricsProxy)this.metricsService=await Object(n["b"])(this.$store,null===(t=this.currentCluster)||void 0===t?void 0:t.id,this.metricsProxy)}catch(r){console.error("Error fetching Grafana service: "+r)}else{await this.$store.dispatch("catalog/load");const e=this.$store.getters["catalog/rawCharts"],t=Object.values(e),r=t.find(e=>"rancher-monitoring"===e.chartName);var a;if(r)this.monitoringRoute={name:"c-cluster-apps-charts-install",params:{cluster:this.$route.params.cluster,product:this.$store.getters["productId"]},query:{[o["m"]]:"cluster",[o["l"]]:"rancher-charts",[o["c"]]:"rancher-monitoring",[o["r"]]:null===(a=r.versions[0])||void 0===a?void 0:a.version}}}},data(){return{RELATED_HEADERS:_["d"],jaegerService:null,filteredValidations:null,metricsProxy:null,metricsService:null,monitoringRoute:null,policyGauges:null,relatedPolicies:null,reloadRequired:!1,metricsType:y["e"].POLICY_SERVER}},computed:{...Object(i["a"])(["currentCluster"]),...Object(l["d"])(),emptyTraces(){return Object(h["isEmpty"])(this.filteredValidations)},tracesGauges(){return this.emptyTraces?null:this.value.tracesGauges(this.filteredValidations)}},methods:{async addDashboard(e){try{await this.value.addGrafanaDashboard(this.metricsType),e(!0),this.reloadRequired=!0}catch(t){this.errors=t,e(!1)}},hasNamespaceSelector(e){return e.namespaceSelector}}},R=x,T=(a("5108"),a("d802")),j=Object(T["a"])(R,r,s,!1,null,"178a0d31",null);t["default"]=j.exports},"2c30":function(e,t,a){"use strict";var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.monitoringStatus.installed?e.metricsService?e._e():a("div",[a("Banner",{attrs:{color:"warning"}},[e.reloadRequired?[a("i",{staticClass:"icon icon-checkmark mr-10"}),a("span",{staticClass:"mb-20"},[e._v(" "+e._s(e.t("kubewarden.metrics.reload"))+" ")]),a("button",{staticClass:"ml-10 btn btn-sm role-primary",on:{click:function(t){return e.reload()}}},[e._v(" "+e._s(e.t("generic.reload"))+" ")])]:[a("p",{staticClass:"mb-20"},[e._v(" "+e._s(e.t("kubewarden.metrics.notInstalled"))+" ")]),a("AsyncButton",{attrs:{mode:"grafanaDashboard"},on:{click:function(t){return e.$emit("add",t)}}})]],2)],1):a("div",[a("Banner",{attrs:{color:"warning"}},[a("span",{domProps:{innerHTML:e._s(e.t("kubewarden.monitoring.notInstalled",{},!0))}}),a("nuxt-link",{attrs:{to:e.monitoringRoute}},[e._v(" "+e._s(e.t("kubewarden.monitoring.install"))+" ")])],1)],1)},s=[],i=a("f390"),o=a("6418"),n=a("d709"),l={name:"MetricsBanner",props:{metricsService:{type:[Boolean,Object],default:null},metricsType:{type:String,required:!0},monitoringRoute:{type:Object,default:null},reloadRequired:{type:Boolean,default:!1}},components:{AsyncButton:n["b"],Banner:o["a"]},computed:{...Object(i["d"])()},methods:{reload(){this.$router.go()}}},c=l,d=a("d802"),u=Object(d["a"])(c,r,s,!1,null,null,null);t["a"]=u.exports},5108:function(e,t,a){"use strict";a("25c6")},"6b59":function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,'.clearfix[data-v-178a0d31]:after,.clearfix[data-v-178a0d31]:before{content:" ";display:table}.clearfix[data-v-178a0d31]:after{clear:both}.list-unstyled[data-v-178a0d31]{margin:0;padding:0;list-style-type:none}.no-select[data-v-178a0d31]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.no-resize[data-v-178a0d31]{resize:none}.hand[data-v-178a0d31]{cursor:pointer;cursor:hand}.fixed[data-v-178a0d31]{table-layout:fixed}.clip[data-v-178a0d31]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.clip[data-v-178a0d31],.force-wrap[data-v-178a0d31]{word-wrap:break-word}.force-wrap[data-v-178a0d31]{white-space:normal}.bordered-section[data-v-178a0d31]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:20px}.section-divider[data-v-178a0d31]{margin-bottom:20px;margin-top:20px}.policy__mode[data-v-178a0d31]{display:flex;align-items:center}.policy__mode i[data-v-178a0d31]{margin-left:5px;font-size:22px;color:var(--warning)}.gauges[data-v-178a0d31],.gaugesContainer[data-v-178a0d31]{display:flex}.gauges[data-v-178a0d31]{justify-content:space-around;flex-wrap:wrap;justify-content:left}.gauges .count-gauge[data-v-178a0d31]{width:46%;margin-bottom:10px;flex:initial}.gauges>*[data-v-178a0d31]{flex:1;margin-right:1.75%}',""]),e.exports=t},"733f":function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("PolicyDetail",{attrs:{value:e.value,mode:e.mode,resource:e.resource}})},s=[],i=a("da25"),o=a("80db"),n={name:"AdmissionPolicy",props:{mode:{type:String,default:i["u"]},resource:{type:String,default:null},value:{type:Object,required:!0}},components:{PolicyDetail:o["a"]}},l=n,c=a("d802"),d=Object(c["a"])(l,r,s,!1,null,null,null);t["default"]=d.exports},"80db":function(e,t,a){"use strict";var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.$fetchState.pending?a("Loading"):a("div",[a("div",{staticClass:"mb-20"},[a("h3",[e._v(e._s(e.t("namespace.resources")))])]),a("ResourceTabs",{attrs:{mode:e.mode,"need-related":e.hasRelationships},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[e.hasRules?a("Tab",{attrs:{name:"policy-rules",label:"Rules",weight:99}},[a("RulesTable",{attrs:{rows:e.rulesRows}})],1):e._e(),a("Tab",{attrs:{name:"policy-tracing",label:"Tracing",weight:98}},[a("TraceTable",{attrs:{rows:e.tracesRows},scopedSlots:e._u([{key:"traceBanner",fn:function(){return[e.emptyTraces?a("Banner",{attrs:{color:"warning"}},[e.jaegerService?a("span",[e._v(e._s(e.t("kubewarden.tracing.noTraces")))]):a("span",{domProps:{innerHTML:e._s(e.t("kubewarden.tracing.noJaeger",{},!0))}})]):e._e()]},proxy:!0}])})],1),a("Tab",{attrs:{name:"policy-metrics",label:"Metrics",weight:97},scopedSlots:e._u([e.metricsService?{key:"default",fn:function(t){return[t.active?a("DashboardMetrics",{attrs:{"detail-url":e.metricsProxy,"summary-url":e.metricsProxy,vars:e.dashboardVars,"graph-height":"825px"}}):e._e()]}}:null],null,!0)},[e.monitoringStatus.installed&&e.metricsService?e._e():a("MetricsBanner",{attrs:{"metrics-service":e.metricsService,"metrics-type":e.metricsType,"monitoring-route":e.monitoringRoute,"reload-required":e.reloadRequired},on:{add:e.addDashboard}})],1)],1)],1)},s=[],i=a("9ce4"),o=a("330a"),n=a.n(o),l=a("da25"),c=a("f390"),d=a("b45b"),u=a("305c"),p=a("6418"),v=a("c389"),m=a("15ca"),b=a("c422"),g=a("38de"),f=a("90cd"),h=a("2c30"),y=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e.rows.length>0?a("SortableTable",{attrs:{rows:e.rows,headers:e.RULE_HEADERS,"table-actions":!1,"row-actions":!1,"key-field":"traceID","default-sort-by":"startTime"},scopedSlots:e._u([{key:"col:apiGroup",fn:function(t){var r=t.row;return[a("td",[a("span",[e._v(e._s(r.apiGroups||"-"))])])]}},{key:"col:apiVersion",fn:function(t){var r=t.row;return[a("td",[a("span",[e._v(e._s(r.apiVersions||"-"))])])]}},{key:"col:operations",fn:function(t){var r=t.row;return[a("td",[a("span",[e._v(e._s(e.joinColumn(r.operations)))])])]}},{key:"col:resources",fn:function(t){var r=t.row;return[a("td",[a("span",[e._v(e._s(e.joinColumn(r.resources)))])])]}}],null,!1,1857136105)}):a("div",[a("Banner",{staticClass:"type-banner mb-20 mt-0",attrs:{color:"warning",label:e.t("kubewarden.policies.noRules")}})],1)],1)},_=[],w=a("0fb1"),S=a("5191"),x={props:{rows:{type:Array,default:()=>[]}},components:{Banner:p["a"],SortableTable:w["b"]},data(){return{RULE_HEADERS:S["e"]}},methods:{joinColumn(e){return(null===e||void 0===e?void 0:e.join(", "))||""}}},R=x,T=a("d802"),j=Object(T["a"])(R,y,_,!1,null,null,null),C=j.exports,P=a("00ce"),k={name:"PolicyDetail",components:{Banner:p["a"],DashboardMetrics:v["a"],Loading:m["a"],MetricsBanner:h["a"],ResourceTabs:b["a"],RulesTable:C,Tab:g["a"],TraceTable:P["a"]},mixins:[u["a"]],props:{mode:{type:String,default:l["u"]},resource:{type:String,default:null},value:{type:Object,required:!0}},async fetch(){if(this.monitoringStatus.installed)try{var e;if(this.metricsProxy=await this.value.grafanaProxy(this.metricsType),this.metricsProxy)this.metricsService=await Object(d["b"])(this.$store,null===(e=this.currentCluster)||void 0===e?void 0:e.id,this.metricsProxy)}catch(a){console.error("Error fetching Grafana service: "+a)}else{await this.$store.dispatch("catalog/load");const e=this.$store.getters["catalog/rawCharts"],a=Object.values(e),r=a.find(e=>"rancher-monitoring"===e.chartName);var t;if(r)this.monitoringRoute={name:"c-cluster-apps-charts-install",params:{cluster:this.$route.params.cluster,product:this.$store.getters["productId"]},query:{[l["m"]]:"cluster",[l["l"]]:"rancher-charts",[l["c"]]:"rancher-monitoring",[l["r"]]:null===(t=r.versions[0])||void 0===t?void 0:t.version}}}this.jaegerService=await this.value.jaegerService(),this.jaegerService&&(this.filteredValidations=await this.value.jaegerSpecificValidations({service:this.jaegerService}))},data(){return{jaegerService:null,metricsProxy:null,metricsService:null,monitoringRoute:null,reloadRequired:!1,filteredValidations:null,metricsType:f["e"].POLICY}},computed:{...Object(i["a"])(["currentCluster"]),...Object(c["d"])(),dashboardVars(){var e;return{policy_name:"clusterwide-"+(null===(e=this.value)||void 0===e?void 0:e.id)}},emptyTraces(){return!!n()(this.filteredValidations)},hasRelationships(){var e;return!(null===(e=this.value.metadata)||void 0===e||!e.relationships)},hasRules(){return!n()(this.rulesRows[0])},rulesRows(){var e;return null===(e=this.value.spec)||void 0===e?void 0:e.rules},tracesRows(){return this.filteredValidations?this.value.traceTableRows(this.filteredValidations):[]}},methods:{async addDashboard(e){try{await this.value.addGrafanaDashboard(this.metricsType),e(!0),this.reloadRequired=!0}catch(t){this.errors=t,e(!1)}}}},E=k,O=Object(T["a"])(E,r,s,!1,null,null,null);t["a"]=O.exports},a490:function(e,t,a){"use strict";a("1aa5")},b3e2:function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("PolicyDetail",{attrs:{value:e.value,mode:e.mode,resource:e.resource}})},s=[],i=a("da25"),o=a("80db"),n={name:"ClusterAdmissionPolicy",props:{mode:{type:String,default:i["u"]},resource:{type:String,default:null},value:{type:Object,required:!0}},components:{PolicyDetail:o["a"]}},l=n,c=a("d802"),d=Object(c["a"])(l,r,s,!1,null,null,null);t["default"]=d.exports},d148:function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,'.clearfix[data-v-10dc4b51]:after,.clearfix[data-v-10dc4b51]:before{content:" ";display:table}.clearfix[data-v-10dc4b51]:after{clear:both}.list-unstyled[data-v-10dc4b51]{margin:0;padding:0;list-style-type:none}.no-select[data-v-10dc4b51]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.no-resize[data-v-10dc4b51]{resize:none}.hand[data-v-10dc4b51]{cursor:pointer;cursor:hand}.fixed[data-v-10dc4b51]{table-layout:fixed}.clip[data-v-10dc4b51]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.clip[data-v-10dc4b51],.force-wrap[data-v-10dc4b51]{word-wrap:break-word}.force-wrap[data-v-10dc4b51]{white-space:normal}.bordered-section[data-v-10dc4b51]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:20px}.section-divider[data-v-10dc4b51]{margin-bottom:20px;margin-top:20px}.sub-row[data-v-10dc4b51]{background-color:var(--body-bg);border-bottom:1px solid var(--sortable-table-top-divider);padding-left:1rem;padding-right:1rem}.details[data-v-10dc4b51]{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1em}.details .col[data-v-10dc4b51]{display:flex;flex-direction:column}.details .col section[data-v-10dc4b51]{margin-bottom:1.5rem}.details .col .title[data-v-10dc4b51]{color:var(--muted);margin-bottom:.5rem}',""]),e.exports=t}}]);
+//# sourceMappingURL=kubewarden-0.1.16.umd.min.detail.js.map
\ No newline at end of file
diff --git a/extensions/kubewarden/0.1.16/plugin/kubewarden-0.1.16.umd.min.detail.js.map b/extensions/kubewarden/0.1.16/plugin/kubewarden-0.1.16.umd.min.detail.js.map
new file mode 100644
index 00000000..561f9f09
--- /dev/null
+++ b/extensions/kubewarden/0.1.16/plugin/kubewarden-0.1.16.umd.min.detail.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack://kubewarden-0.1.16/./components/TraceTable.vue?dab6","webpack://kubewarden-0.1.16/components/TraceTable.vue","webpack://kubewarden-0.1.16/./components/TraceTable.vue?701f","webpack://kubewarden-0.1.16/./components/TraceTable.vue","webpack://kubewarden-0.1.16/./components/TraceTable.vue?0459","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.policyserver.vue?5dcb","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.policyserver.vue?6ada","webpack://kubewarden-0.1.16/detail/policies.kubewarden.io.policyserver.vue","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.policyserver.vue?55a1","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.policyserver.vue","webpack://kubewarden-0.1.16/./components/MetricsBanner.vue?11ba","webpack://kubewarden-0.1.16/components/MetricsBanner.vue","webpack://kubewarden-0.1.16/./components/MetricsBanner.vue?08ab","webpack://kubewarden-0.1.16/./components/MetricsBanner.vue","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.policyserver.vue?d5c6","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.policyserver.vue?5236","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.admissionpolicy.vue?9a07","webpack://kubewarden-0.1.16/detail/policies.kubewarden.io.admissionpolicy.vue","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.admissionpolicy.vue?5000","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.admissionpolicy.vue","webpack://kubewarden-0.1.16/./components/Policies/PolicyDetail.vue?e6c4","webpack://kubewarden-0.1.16/./components/RulesTable.vue?664b","webpack://kubewarden-0.1.16/components/RulesTable.vue","webpack://kubewarden-0.1.16/./components/RulesTable.vue?6b16","webpack://kubewarden-0.1.16/./components/RulesTable.vue","webpack://kubewarden-0.1.16/components/Policies/PolicyDetail.vue","webpack://kubewarden-0.1.16/./components/Policies/PolicyDetail.vue?865a","webpack://kubewarden-0.1.16/./components/Policies/PolicyDetail.vue","webpack://kubewarden-0.1.16/./components/TraceTable.vue?191c","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.clusteradmissionpolicy.vue?69ef","webpack://kubewarden-0.1.16/detail/policies.kubewarden.io.clusteradmissionpolicy.vue","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.clusteradmissionpolicy.vue?41ec","webpack://kubewarden-0.1.16/./detail/policies.kubewarden.io.clusteradmissionpolicy.vue","webpack://kubewarden-0.1.16/./components/TraceTable.vue?67a9"],"names":["render","_vm","this","_h","$createElement","_c","_self","_t","attrs","rows","TRACE_HEADERS","rowsPerPage","scopedSlots","_u","key","fn","ref","row","operation","opColor","capitalizeMessage","mode","modeColor","fullColspan","staticClass","showLogs","logs","_v","_s","response","response_message","response_code","mutated","_e","staticRenderFns","props","type","default","components","BadgeState","SortableTable","data","MODE_MAP","OPERATION_MAP","computed","groupField","isPolicyServer","methods","component","content","__esModule","module","i","locals","exports","add","$fetchState","t","_l","group","relatedPolicies","length","count","emptyTraces","filteredValidations","model","value","callback","$$v","expression","RELATED_HEADERS","color","proxy","metricsProxy","monitoringStatus","installed","metricsService","metricsType","monitoringRoute","reloadRequired","on","addDashboard","jaegerService","domProps","name","Banner","CountGauge","DashboardMetrics","Loading","MetricsBanner","ResourceTabs","ResourceTable","Tab","TraceTable","mixins","required","policyGauges","service","console","chart","params","cluster","product","query","tracesGauges","btnCb","hasNamespaceSelector","$event","reload","$emit","AsyncButton","___CSS_LOADER_API_IMPORT___","push","resource","PolicyDetail","hasRelationships","rulesRows","tracesRows","dashboardVars","RULE_HEADERS","apiGroups","apiVersions","joinColumn","operations","resources","RulesTable","policy_name","hasRules"],"mappings":"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","file":"kubewarden-0.1.16.umd.min.detail.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"traceBanner\"),(_vm.rows)?_c('SortableTable',{attrs:{\"rows\":_vm.rows,\"headers\":_vm.TRACE_HEADERS,\"table-actions\":false,\"row-actions\":false,\"key-field\":\"traceID\",\"default-sort-by\":\"startTime\",\"sub-expandable\":true,\"sub-expand-column\":true,\"sub-rows\":true,\"paging\":true,\"rows-per-page\":_vm.rowsPerPage},scopedSlots:_vm._u([{key:\"col:operation\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('td',[_c('BadgeState',{attrs:{\"label\":row.operation,\"color\":_vm.opColor(row.operation)}})],1)]}},{key:\"col:mode\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('td',[_c('BadgeState',{attrs:{\"label\":_vm.capitalizeMessage(row.mode),\"color\":_vm.modeColor(row.mode)}})],1)]}},{key:\"sub-row\",fn:function(ref){\nvar row = ref.row;\nvar fullColspan = ref.fullColspan;\nreturn [_c('td',{staticClass:\"sub-row\",attrs:{\"colspan\":fullColspan}},[_c('div',{staticClass:\"details\"},[(_vm.showLogs(row.logs))?[_c('section',{staticClass:\"col\"},[_c('div',{staticClass:\"title\"},[_vm._v(\" Response \")]),(row.logs.response)?_c('span',{staticClass:\"text-info\"},[_vm._v(\" \"+_vm._s(_vm.capitalizeMessage(row.logs.response))+\" \")]):_c('span',[_vm._v(\" N/A \")])])]:[_c('section',{staticClass:\"col\"},[_c('div',{staticClass:\"title\"},[_vm._v(\" Response Message \")]),(row.response_message)?_c('span',{staticClass:\"text-warning\"},[_vm._v(\" \"+_vm._s(_vm.capitalizeMessage(row.response_message))+\" \")]):_c('span',[_vm._v(\" N/A \")])]),_c('section',{staticClass:\"col\"},[_c('div',{staticClass:\"title\"},[_vm._v(\" Response Code \")]),_c('span',{staticClass:\"text-info\"},[_vm._v(\" \"+_vm._s(row.response_code ? row.response_code : 'N/A')+\" \")])]),_c('section',{staticClass:\"col\"},[_c('div',{staticClass:\"title\"},[_vm._v(\" Mutated \")]),_c('span',{staticClass:\"text-info\"},[_vm._v(\" \"+_vm._s(row.mutated)+\" \")])])]],2)])]}}],null,false,877644766)}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n \n {{ t('kubewarden.metrics.notInstalled' ) }}\n
\n\n {{ t('kubewarden.policyConfig.mode.update.body') }}\n
\n\n {{ t('kubewarden.policies.noArtifactHub') }}\n
\n\n {{ obj.label }}\n | \n\n {{ obj.value }}\n | \n
e)}getTokens(e){const t=[];let n=!1;for(let r=0;r >16&255,l[u++]=t>>8&255,l[u++]=255&t;return 2===s&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,l[u++]=255&t),1===s&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t),l}function f(e){return r[e>>18&63]+r[e>>12&63]+r[e>>6&63]+r[63&e]}function h(e,t,n){for(var r,i=[],a=t;a -1&&e%1==0&&e<=n}e.exports=r},b7d9:function(e,t,n){"use strict";n("c549")},b91e:function(e,t,n){var r=n("48f9");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var i=n("0ed3").default;i("5a7aa7a6",r,!0,{sourceMap:!1,shadowMode:!1})},b91f:function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,'.clearfix[data-v-7bc9a653]:after,.clearfix[data-v-7bc9a653]:before{content:" ";display:table}.clearfix[data-v-7bc9a653]:after{clear:both}.list-unstyled[data-v-7bc9a653]{margin:0;padding:0;list-style-type:none}.no-select[data-v-7bc9a653]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.no-resize[data-v-7bc9a653]{resize:none}.hand[data-v-7bc9a653]{cursor:pointer;cursor:hand}.fixed[data-v-7bc9a653]{table-layout:fixed}.clip[data-v-7bc9a653]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.clip[data-v-7bc9a653],.force-wrap[data-v-7bc9a653]{word-wrap:break-word}.force-wrap[data-v-7bc9a653]{white-space:normal}.bordered-section[data-v-7bc9a653]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:20px}.section-divider[data-v-7bc9a653]{margin-bottom:20px;margin-top:20px}.flex-content[data-v-7bc9a653]{display:flex;flex-direction:column;flex-grow:1}',""]),e.exports=t},b952:function(e,t,n){"use strict";n("5f3e")},b966:function(e,t,n){var r=n("dcd1");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var i=n("0ed3").default;i("17c71e48",r,!0,{sourceMap:!1,shadowMode:!1})},ba58:function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,'.clearfix[data-v-613a6803]:after,.clearfix[data-v-613a6803]:before{content:" ";display:table}.clearfix[data-v-613a6803]:after{clear:both}.list-unstyled[data-v-613a6803]{margin:0;padding:0;list-style-type:none}.no-select[data-v-613a6803]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.no-resize[data-v-613a6803]{resize:none}.hand[data-v-613a6803]{cursor:pointer;cursor:hand}.fixed[data-v-613a6803]{table-layout:fixed}.clip[data-v-613a6803]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.clip[data-v-613a6803],.force-wrap[data-v-613a6803]{word-wrap:break-word}.force-wrap[data-v-613a6803]{white-space:normal}.bordered-section[data-v-613a6803]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:20px}.section-divider[data-v-613a6803]{margin-bottom:20px;margin-top:20px}.container .title[data-v-613a6803]{display:flex;flex-wrap:wrap;flex-direction:column;justify-content:center;align-items:center;text-align:center;margin:100px 0}.container .description[data-v-613a6803]{line-height:20px}',""]),e.exports=t},bab2:function(e,t,n){"use strict";n("c9d0")},bb03:function(e){e.exports=JSON.parse('{"__inputs":[{"name":"DS_PROMETHEUS","label":"Prometheus","description":"Prometheus storing Kubewarden metrics","type":"datasource","pluginId":"prometheus","pluginName":"Prometheus"}],"__requires":[{"type":"grafana","id":"grafana","name":"Grafana","version":"7.1.5"},{"type":"panel","id":"heatmap","name":"Heatmap","version":""},{"type":"datasource","id":"prometheus","name":"Prometheus","version":"1.0.0"},{"type":"panel","id":"stat","name":"Stat","version":""},{"type":"panel","id":"timeseries","name":"Time series","version":""}],"annotations":{"list":[{"builtIn":1,"datasource":"-- Grafana --","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations & Alerts","target":{"limit":100,"matchAny":false,"tags":[],"type":"dashboard"},"type":"dashboard"}]},"description":"Official dashboard for Kubewarden metrics","editable":true,"fiscalYearStartMonth":0,"gnetId":15314,"graphTooltip":0,"id":null,"iteration":1637931173543,"links":[],"liveNow":false,"panels":[{"collapsed":false,"datasource":null,"gridPos":{"h":0,"w":24,"x":0,"y":56},"id":1,"panels":[],"type":"row"},{"datasource":null,"fieldConfig":{"defaults":{"color":{"fixedColor":"green","mode":"fixed"},"custom":{"axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"auto","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"max":100,"min":0,"noValue":"0%","thresholds":{"mode":"percentage","steps":[{"color":"green","value":null}]},"unit":"percent"},"overrides":[]},"gridPos":{"h":7,"w":8,"x":0,"y":0},"legend":{"show":true,"values":false,"min":false,"max":false,"current":false,"total":true,"avg":false},"id":2,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","total":true},"tooltip":{"mode":"single"}},"targets":[{"expr":"sum(rate(kubewarden_policy_evaluations_total{accepted=\\"true\\", policy_name=\\"$policy_name\\"}[$__rate_interval]))*100/sum(rate(kubewarden_policy_evaluations_total{policy_name=\\"$policy_name\\"}[$__rate_interval]))","interval":"","legendFormat":"Accepted Requests","refId":"A"}],"title":"$policy_name accepted requests","type":"graph"},{"datasource":null,"fieldConfig":{"defaults":{"color":{"fixedColor":"red","mode":"fixed"},"custom":{"axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"auto","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"max":100,"min":0,"noValue":"0%","thresholds":{"mode":"percentage","steps":[{"color":"red","value":null}]},"unit":"percent"},"overrides":[]},"gridPos":{"h":7,"w":8,"x":8,"y":0},"legend":{"show":true,"values":false,"min":false,"max":false,"current":false,"total":true,"avg":false},"id":3,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","total":true},"tooltip":{"mode":"single"}},"targets":[{"expr":"sum(rate(kubewarden_policy_evaluations_total{accepted=\\"false\\", policy_name=\\"$policy_name\\"}[$__rate_interval]))*100/sum(rate(kubewarden_policy_evaluations_total{policy_name=\\"$policy_name\\"}[$__rate_interval]))","interval":"","legendFormat":"Rejected Requests","refId":"A"}],"title":"$policy_name rejected requests","type":"graph"},{"datasource":null,"fieldConfig":{"defaults":{"color":{"fixedColor":"purple","mode":"fixed"},"custom":{"axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":10,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"auto","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"max":100,"min":0,"noValue":"0%","thresholds":{"mode":"percentage","steps":[{"color":"purple","value":null}]},"unit":"percent"},"overrides":[]},"gridPos":{"h":7,"w":8,"x":16,"y":0},"legend":{"show":true,"values":false,"min":false,"max":false,"current":false,"total":true,"avg":false},"id":4,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom","total":true},"tooltip":{"mode":"single"}},"targets":[{"expr":"sum(rate(kubewarden_policy_evaluations_total{mutated=\\"true\\", policy_name=\\"$policy_name\\"}[$__rate_interval]))*100/sum(rate(kubewarden_policy_evaluations_total{policy_name=\\"$policy_name\\"}[$__rate_interval]))","interval":"","legendFormat":"Mutated Requests","refId":"A"}],"title":"$policy_name mutated requests","type":"graph"},{"datasource":null,"fieldConfig":{"defaults":{"color":{"fixedColor":"green","mode":"fixed"},"mappings":[],"noValue":"0","thresholds":{"mode":"absolute","steps":[{"color":"green","value":null}]}},"overrides":[]},"gridPos":{"h":7,"w":8,"x":0,"y":9},"id":5,"options":{"colorMode":"value","graphMode":"none","justifyMode":"auto","orientation":"auto","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false},"text":{},"textMode":"auto"},"pluginVersion":"7.1.5","targets":[{"exemplar":true,"expr":"sum(kubewarden_policy_evaluations_total{accepted=\\"true\\", policy_name=\\"$policy_name\\"})","interval":"","legendFormat":"","refId":"A"}],"title":"$policy_name total accepted requests","type":"stat"},{"datasource":null,"fieldConfig":{"defaults":{"color":{"fixedColor":"red","mode":"fixed"},"mappings":[],"noValue":"0","thresholds":{"mode":"absolute","steps":[{"color":"red","value":null}]}},"overrides":[]},"gridPos":{"h":7,"w":8,"x":8,"y":9},"id":6,"options":{"colorMode":"value","graphMode":"none","justifyMode":"auto","orientation":"auto","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false},"text":{},"textMode":"auto"},"pluginVersion":"7.1.5","targets":[{"exemplar":true,"expr":"sum(kubewarden_policy_evaluations_total{accepted=\\"false\\", policy_name=\\"$policy_name\\"})","interval":"","legendFormat":"","refId":"A"}],"title":"$policy_name total rejected requests","type":"stat"},{"datasource":null,"fieldConfig":{"defaults":{"color":{"fixedColor":"purple","mode":"fixed"},"mappings":[],"noValue":"0","thresholds":{"mode":"absolute","steps":[{"color":"purple","value":null}]}},"overrides":[]},"gridPos":{"h":7,"w":8,"x":16,"y":9},"id":7,"options":{"colorMode":"value","graphMode":"none","justifyMode":"auto","orientation":"auto","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false},"text":{},"textMode":"auto"},"pluginVersion":"7.1.5","targets":[{"exemplar":true,"expr":"sum(kubewarden_policy_evaluations_total{mutated=\\"true\\", policy_name=\\"$policy_name\\"})","interval":"","legendFormat":"","refId":"A"}],"title":"$policy_name total mutated requests","type":"stat"}],"refresh":"30s","schemaVersion":31,"style":"dark","tags":[],"templating":{"list":[{"current":{"selected":false,"text":"","value":""},"description":"Define the policy which you want to see the metrics","error":null,"hide":0,"label":null,"name":"policy_name","options":[{"selected":true,"text":"","value":""}],"query":"","skipUrlSync":false,"type":"textbox"}]},"time":{"from":"now-1h","to":"now"},"timepicker":{},"timezone":"","title":"Kubewarden Policy","uid":"kubewarden-dashboard-policy","version":3}')},bc61:function(e,t,n){var r=n("b506"),i=Object.create,a=function(){function e(){}return function(t){if(!r(t))return{};if(i)return i(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=a},bcb3:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));n("907c"),n("462f"),n("79ad");const r="explorer"},bd8a:function(e,t,n){"use strict";n("9f51")},bddd:function(e,t,n){"use strict";n.d(t,"i",(function(){return i})),n.d(t,"j",(function(){return a})),n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return s})),n.d(t,"f",(function(){return l})),n.d(t,"g",(function(){return c})),n.d(t,"h",(function(){return u})),n.d(t,"c",(function(){return d})),n.d(t,"d",(function(){return f})),n.d(t,"e",(function(){return h})),n.d(t,"k",(function(){return v}));n("9dfc");var r=n("e24b");function i(e,t){const n=e.indexOf(t);return n>=0&&e.splice(n,1),e}function a(e,t){let n,r=[];for(n=0;n \n {{ t('kubewarden.dashboard.blurb') }}\n \n {{ t('kubewarden.dashboard.description') }}\n \n {{ t(\"kubewarden.dashboard.prerequisites.certManager.description\") }}\n \n {{ t(\"kubewarden.dashboard.prerequisites.repository.description\") }}\n \n {{ t(\"kubewarden.dashboard.appInstall.description\") }}\n \n {{ t('fleet.fdc.loadingChart') }}\n \n {{ t('fleet.fdc.renderingChart') }}\n {{ item.value }} Represents a badge whose label and color is either taken from the value property or\n * from the label and color properties. The state property takes precedence. \n {{ t('monitoring.installSteps.uninstallV1.warning1') }}\n \n {{ t('monitoring.installSteps.uninstallV1.success1') }}\n "+e+"{const n=this._getAst(),i=new r(this._lang.grammar,this._lang.transforms,e,void 0,t);return i.eval(n)})}_getAst(){return this._ast||this.compile(),this._ast}}e.exports=s},"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},"7d22":function(e,t,n){"use strict";n("c5f8")},"7d6c":function(e,t,n){var r=n("9ef5"),i=1/0,a=17976931348623157e292;function o(e){if(!e)return 0===e?e:0;if(e=r(e),e===i||e===-i){var t=e<0?-1:1;return t*a}return e===e?e:0}e.exports=o},"7e30":function(e,t,n){"use strict";n("e246")},"7f57":function(e){e.exports=JSON.parse('{"hasStylesheet":"true"}')},"7fd6":function(e,t,n){var r=n("1fce"),i=n("4b7a"),a=n("3b54"),o=n("cc5e");function s(e,t){if(null==e)return{};var n=r(o(e),(function(e){return[e]}));return t=i(t),a(e,n,(function(e,n){return t(e,n[0])}))}e.exports=s},8001:function(e,t,n){var r=n("5fe6"),i=n("6290"),a=n("b3e4");function o(e,t,n){var o=e.length;if(o<2)return o?a(e[0]):[];var s=-1,l=Array(o);while(++s]*>((.|\n)*?)<\/del>)/g,"")}o.prototype.separatePrefix=function(e,t){var n,r;return e?(n=t.substring(0,2),r=t.substring(2)):(n=t.substring(0,1),r=t.substring(1)),{prefix:n,line:r}},o.prototype.getHtmlId=function(e){var t=function(e){var t,n,r,i=0;for(t=0,r=e.length;t');\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 /* See LICENSE file for terms of use */\n\n exports.Diff = Diff;\n exports.diffChars = diffChars;\n exports.diffWords = diffWords;\n exports.diffWordsWithSpace = diffWordsWithSpace;\n exports.diffLines = diffLines;\n exports.diffTrimmedLines = diffTrimmedLines;\n exports.diffSentences = diffSentences;\n exports.diffCss = diffCss;\n exports.diffJson = diffJson;\n exports.diffArrays = diffArrays;\n exports.structuredPatch = structuredPatch;\n exports.createTwoFilesPatch = createTwoFilesPatch;\n exports.createPatch = createPatch;\n exports.applyPatch = applyPatch;\n exports.applyPatches = applyPatches;\n exports.parsePatch = parsePatch;\n exports.merge = merge;\n exports.convertChangesToDMP = convertChangesToDMP;\n exports.convertChangesToXML = convertChangesToXML;\n exports.canonicalize = canonicalize;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(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 `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\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=1f613982&prod&lang=scss&\"","var freeGlobal = require('./_freeGlobal');\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/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\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=942cd8c0&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=942cd8c0&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 \"942cd8c0\",\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, \".clearfix[data-v-2ec7091f]:after,.clearfix[data-v-2ec7091f]:before{content:\\\" \\\";display:table}.clearfix[data-v-2ec7091f]:after{clear:both}.list-unstyled[data-v-2ec7091f]{margin:0;padding:0;list-style-type:none}.no-select[data-v-2ec7091f]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.no-resize[data-v-2ec7091f]{resize:none}.hand[data-v-2ec7091f]{cursor:pointer;cursor:hand}.fixed[data-v-2ec7091f]{table-layout:fixed}.clip[data-v-2ec7091f]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.clip[data-v-2ec7091f],.force-wrap[data-v-2ec7091f]{word-wrap:break-word}.force-wrap[data-v-2ec7091f]{white-space:normal}.bordered-section[data-v-2ec7091f]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:20px}.section-divider[data-v-2ec7091f]{margin-bottom:20px;margin-top:20px}.resource-loading-indicator[data-v-2ec7091f]{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-2ec7091f]: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-2ec7091f]{padding:1px 10px;width:-moz-max-content;width:max-content}.resource-loading-indicator .resource-loader .rl-bg[data-v-2ec7091f],.resource-loading-indicator .resource-loader .rl-fg[data-v-2ec7091f]{align-content:center;display:flex}.resource-loading-indicator .resource-loader .rl-bg>i[data-v-2ec7091f],.resource-loading-indicator .resource-loader .rl-fg>i[data-v-2ec7091f]{font-size:18px;line-height:18px}.resource-loading-indicator .resource-loader .rl-bg>span[data-v-2ec7091f],.resource-loading-indicator .resource-loader .rl-fg>span[data-v-2ec7091f]{margin-left:5px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-10\"},[_c('div',{staticClass:\"mb-30\"},[_vm._v(\" \"+_vm._s(_vm.t('promptRemove.attemptingToRemove', { type: _vm.type }))+\" \"),_c('span',{staticClass:\"machine-name\",domProps:{\"innerHTML\":_vm._s(_vm.podNames)}})]),_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)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n >1,u=-7,d=n?i-1:0,p=n?-1:1,f=e[t+d];for(d+=p,a=f&(1<<-u)-1,f>>=-u,u+=s;u>0;a=256*a+e[t+d],d+=p,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=p,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,r),a-=c}return(f?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,l,c=8*a-i-1,u=(1<s&&(n=s-l),a=n;a>=0;a--){for(var d=!0,p=0;pi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return C(this,e,t,n);case"ascii":return O(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return T(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var P=4096;function I(e){var t=e.length;if(t<=P)return String.fromCharCode.apply(String,e);var n="",r=0;while(r\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=7890cbd1&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=7890cbd1&prod&lang=scss&scoped=true&\"\nimport style1 from \"./THead.vue?vue&type=style&index=1&id=7890cbd1&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 \"7890cbd1\",\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) ) {\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};\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 },\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 updateHiddenBulkActions: debounce(function() {\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 }, 10)\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 \n \n \n \n \n \n
\n \n \n
\n \n $emit('group-value-change', val)\"\n @update-cols-options=\"updateColsOptions\"\n />\n\n \n \n\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ row.mainRowKey }} \n \n \n \n \n \n \n \n \n \n \n \n \n {{ row.row.stateDescription }}\n \n \n {{ resourceName }}\n
\n \n {{ resourceName }}\n
\n {{ t('node.detail.glance.consumptionGauge.used') }}\n {{ t('node.detail.glance.consumptionGauge.amount', amountTemplateValues) }} / {{ formattedPercentage }}\n \n {{ t(card.title) }}\n
\n
\n\n {{ t(card.slotTitle) }}
\n {{ t('kubewarden.dashboard.intro') }}
\n {{ version }}\n {{ t('kubewarden.dashboard.headers.modes.title') }}
\n {{ t('kubewarden.dashboard.headers.modes.protect') }}: {{ namespacedGuages.mode.protect }}\n {{ t('kubewarden.dashboard.headers.modes.monitor') }}: {{ namespacedGuages.mode.monitor }}\n {{ t('kubewarden.dashboard.headers.modes.title') }}
\n {{ t('kubewarden.dashboard.headers.modes.protect') }}: {{ globalGuages.mode.protect }}\n {{ t('kubewarden.dashboard.headers.modes.monitor') }}: {{ globalGuages.mode.monitor }}\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!./CopyCode.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!./CopyCode.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CopyCode.vue?vue&type=template&id=566f6d3c&scoped=true&\"\nimport script from \"./CopyCode.vue?vue&type=script&lang=js&\"\nexport * from \"./CopyCode.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CopyCode.vue?vue&type=style&index=0&id=566f6d3c&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 \"566f6d3c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"header mt-20 mb-20\"},[_c('div',{staticClass:\"title\"},[_vm._m(0),_c('div',{staticClass:\"subtitle mr-20\"},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.title'))+\" \")]),_c('span',{staticClass:\"subtext\"},[_vm._v(_vm._s(_vm.t('kubewarden.dashboard.install')))])]),_c('div',{staticClass:\"subtitle\"},[_c('h2',[_vm._v(_vm._s(_vm.t('wizard.step', {number: _vm.activeStepIndex + 1})))]),_vm._t(\"bannerSubtext\",function(){return [_c('span',{staticClass:\"subtext\"},[_vm._v(_vm._s(_vm.activeStep.label))])]})],2)]),_c('div',{staticClass:\"step-sequence\"},[_c('ul',{staticClass:\"steps\",attrs:{\"tabindex\":\"0\"}},[_vm._l((_vm.steps),function(step,idx){return [_c('li',{key:step.name + 'li',class:{\n step: true,\n active: step.name === _vm.activeStep.name,\n disabled: !_vm.isAvailable(step),\n },attrs:{\"id\":step.name,\"role\":\"presentation\"}},[_c('span',{staticClass:\"controls\",attrs:{\"aria-controls\":'step' + idx + 1,\"aria-selected\":step.name === _vm.activeStep.name,\"role\":\"tab\"},on:{\"click\":function($event){$event.preventDefault();return _vm.goToStep(idx + 1, true)}}},[_c('span',{staticClass:\"icon icon-lg\",class:{\n 'icon-dot': step.name === _vm.activeStep.name,\n 'icon-dot-open': step.name !== _vm.activeStep.name,\n }}),_c('span',[_vm._v(\" \"+_vm._s(step.label)+\" \")])])]),(idx !== _vm.steps.length - 1)?_c('div',{key:step.name,staticClass:\"divider\"}):_vm._e()]})],2)])]),_vm._t(\"stepContainer mt-20\",function(){return [_vm._l((_vm.steps),function(step){return [(step.name === _vm.activeStep.name || step.hidden)?_c('div',{key:step.name,staticClass:\"step-container\",class:{ hide: step.name !== _vm.activeStep.name && step.hidden }},[_vm._t(step.name,null,{\"step\":step})],2):_vm._e()]})]},{\"activeStep\":_vm.activeStep})],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"product-image\"},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"../../assets/icon-kubewarden.svg\")}})])}]\n\nexport { render, staticRenderFns }","\n\n\n \n {{ t('kubewarden.title') }}\n
\n {{ t('kubewarden.dashboard.install') }}\n {{ t('wizard.step', {number: activeStepIndex + 1}) }}
\n \n \n
\n \n {{ t(\"kubewarden.title\") }}\n
\n \n {{ t(\"kubewarden.dashboard.prerequisites.certManager.title\") }}\n
\n \n {{ t(\"kubewarden.dashboard.prerequisites.repository.title\") }}\n
\n \n {{ t(\"kubewarden.dashboard.appInstall.title\") }}\n
\n \n {{ _typeDisplay }}
\n \n
\n \n
\n \n \n \n {{ t(item.labelKey) }}:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ item.value }}\n \n \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.t(t.f(\"files\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
\");t.b(\"\\n\" + i);t.b(\"\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"generic-column-line-number\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"generic-empty-diff\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"generic-file-path\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\" + i);t.b(t.rp(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(t.t(t.f(\"lineNumber\",c,p,0)));t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"generic-wrapper\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.t(t.f(\"diffs\",c,p,0)));t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.t(t.d(\"diffs.left\",c,p,0)));t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.t(t.d(\"diffs.right\",c,p,0)));t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
\");t.b(\"\\n\" + i);t.b(\"
\n {{ t('kubewarden.policyServerConfig.sourceAuthorities.title') }}
\n \n ');\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 {{ useful }}
\n \n {{ t('monitoring.prometheus.title') }}
\n \n {{ t('monitoring.prometheus.config.resourceLimits') }}\n
\n \n {{ t('monitoring.prometheus.storage.selector') }}\n
\n \n
\n \n {{ t('catalog.install.appReadmeTitle') }}\n
\n
\n
\n":"'+(n?e:f(e,!0))+"
\n"},n.blockquote=function(e){return""+(n?e:f(e,!0))+"
\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"
\n":"
\n"},n.list=function(e,t,n){var u=t?"ol":"ul",r=t&&1!==n?' start="'+n+'"':"";return"<"+u+r+">\n"+e+""+u+">\n"},n.listitem=function(e){return"\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"},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=E(this.options.sanitize,this.options.baseUrl,e),null===e)return n;var u='"+n+"",u},n.image=function(e,t,n){if(e=E(this.options.sanitize,this.options.baseUrl,e),null===e)return n;var u='":">",u},n.text=function(e){return e},t}(),q=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}(),P=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 U,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new q,this.slugger=new P}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,s,a,o,l,D,c,p,h,f,d,m,A,F,k,E,C="",x=e.length;for(n=0;n"+f(o.message+"",!0)+"
";throw o}}G.options=G.setOptions=function(e){return B(G.defaults,e),a(G.defaults),G},G.getDefaults=s,G.defaults=e.defaults,G.use=function(){for(var e=arguments.length,t=new Array(e),n=0;n
"+f(u.message+"",!0)+"";throw u}},G.Parser=Z,G.parser=Z.parse,G.Renderer=U,G.TextRenderer=q,G.Lexer=j,G.lexer=j.lex,G.Tokenizer=O,G.Slugger=P,G.parse=G;var Q=G.options,W=G.setOptions,V=G.use,K=G.walkTokens,X=G.parseInline,Y=G,J=Z.parse,ee=j.lex;e.Lexer=j,e.Parser=Z,e.Renderer=U,e.Slugger=P,e.TextRenderer=q,e.Tokenizer=O,e.getDefaults=s,e.lexer=ee,e.marked=G,e.options=Q,e.parse=Y,e.parseInline=X,e.parser=J,e.setOptions=W,e.use=V,e.walkTokens=K,Object.defineProperty(e,"__esModule",{value:!0})}))},"3e09":function(e,t,n){ +/*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.0.8/LICENSE */ +(function(t,n){e.exports=n()})(0,(function(){"use strict";function e(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t
' + (escaped ? _code : escape(_code, true)) + '
\\n';\n }\n\n return '' + (escaped ? _code : escape(_code, true)) + '
\\n';\n }\n /**\n * @param {string} quote\n */\n ;\n\n _proto.blockquote = function blockquote(quote) {\n return \"\\n\" + quote + \"\\n\";\n };\n\n _proto.html = function html(_html) {\n return _html;\n }\n /**\n * @param {string} text\n * @param {string} level\n * @param {string} raw\n * @param {any} slugger\n */\n ;\n\n _proto.heading = function heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n var id = this.options.headerPrefix + slugger.slug(raw);\n return \"
\" + text + \"
\\n\";\n }\n /**\n * @param {string} header\n * @param {string} body\n */\n ;\n\n _proto.table = function table(header, body) {\n if (body) body = \"\" + body + \"\";\n return '\" + text + \"
\";\n };\n\n _proto.br = function br() {\n return this.options.xhtml ? 'An error occurred:
' + escape(e.message + '', true) + '';\n }\n\n throw e;\n }\n }\n /**\n * Options\n */\n\n marked.options = marked.setOptions = function (opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n };\n\n marked.getDefaults = getDefaults;\n marked.defaults = exports.defaults;\n /**\n * Use Extension\n */\n\n marked.use = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var opts = merge.apply(void 0, [{}].concat(args));\n var extensions = marked.defaults.extensions || {\n renderers: {},\n childTokens: {}\n };\n var hasExtensions;\n args.forEach(function (pack) {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach(function (ext) {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n\n if (ext.renderer) {\n // Renderer extensions\n var prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var ret = ext.renderer.apply(this, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n\n if (ext.tokenizer) {\n // Tokenizer Extensions\n if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n\n if (ext.start) {\n // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n\n if (ext.childTokens) {\n // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n } // ==-- Parse \"overwrite\" extensions --== //\n\n\n if (pack.renderer) {\n (function () {\n var renderer = marked.defaults.renderer || new Renderer();\n\n var _loop = function _loop(prop) {\n var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false\n\n renderer[prop] = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var ret = pack.renderer[prop].apply(renderer, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.renderer) {\n _loop(prop);\n }\n\n opts.renderer = renderer;\n })();\n }\n\n if (pack.tokenizer) {\n (function () {\n var tokenizer = marked.defaults.tokenizer || new Tokenizer();\n\n var _loop2 = function _loop2(prop) {\n var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false\n\n tokenizer[prop] = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var ret = pack.tokenizer[prop].apply(tokenizer, args);\n\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.tokenizer) {\n _loop2(prop);\n }\n\n opts.tokenizer = tokenizer;\n })();\n } // ==-- Parse WalkTokens extensions --== //\n\n\n if (pack.walkTokens) {\n var _walkTokens = marked.defaults.walkTokens;\n\n opts.walkTokens = function (token) {\n pack.walkTokens.call(this, token);\n\n if (_walkTokens) {\n _walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n };\n /**\n * Run callback for every token\n */\n\n\n marked.walkTokens = function (tokens, callback) {\n var _loop3 = function _loop3() {\n var token = _step.value;\n callback.call(marked, token);\n\n switch (token.type) {\n case 'table':\n {\n for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {\n var cell = _step2.value;\n marked.walkTokens(cell.tokens, callback);\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {\n var row = _step3.value;\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {\n var _cell = _step4.value;\n marked.walkTokens(_cell.tokens, callback);\n }\n }\n\n break;\n }\n\n case 'list':\n {\n marked.walkTokens(token.items, callback);\n break;\n }\n\n default:\n {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {\n // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n };\n\n for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {\n _loop3();\n }\n };\n /**\n * Parse Inline\n * @param {string} src\n */\n\n\n marked.parseInline = function (src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n var tokens = Lexer.lexInline(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return '
An error occurred:
' + escape(e.message + '', true) + '';\n }\n\n throw e;\n }\n };\n /**\n * Expose\n */\n\n\n marked.Parser = Parser;\n marked.parser = Parser.parse;\n marked.Renderer = Renderer;\n marked.TextRenderer = TextRenderer;\n marked.Lexer = Lexer;\n marked.lexer = Lexer.lex;\n marked.Tokenizer = Tokenizer;\n marked.Slugger = Slugger;\n marked.parse = marked;\n var options = marked.options;\n var setOptions = marked.setOptions;\n var use = marked.use;\n var walkTokens = marked.walkTokens;\n var parseInline = marked.parseInline;\n var parse = marked;\n var parser = Parser.parse;\n var lexer = Lexer.lex;\n\n exports.Lexer = Lexer;\n exports.Parser = Parser;\n exports.Renderer = Renderer;\n exports.Slugger = Slugger;\n exports.TextRenderer = TextRenderer;\n exports.Tokenizer = Tokenizer;\n exports.getDefaults = getDefaults;\n exports.lexer = lexer;\n exports.marked = marked;\n exports.options = options;\n exports.parse = parse;\n exports.parseInline = parseInline;\n exports.parser = parser;\n exports.setOptions = setOptions;\n exports.use = use;\n exports.walkTokens = walkTokens;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","/*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.0.8/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.DOMPurify = factory());\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n objectKeys = Object.keys;\n var freeze = Object.freeze,\n seal = Object.seal; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayIndexOf = unapply(Array.prototype.indexOf);\n var arrayJoin = unapply(Array.prototype.join);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var arraySlice = unapply(Array.prototype.slice);\n\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n\n var regExpTest = unapply(RegExp.prototype.test);\n var regExpCreate = unconstruct(RegExp);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = {};\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'audio', 'canvas', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'video', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n var text = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.0.12';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var removeTitle = false;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n getElementsByTagName = _document.getElementsByTagName,\n createDocumentFragment = _document.createDocumentFragment;\n var importNode = originalDocument.importNode;\n\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = implementation && typeof implementation.createHTMLDocument !== 'undefined' && document.documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for jQuery's $() factory? */\n var SAFE_FOR_JQUERY = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify. */\n var RETURN_DOM_IMPORT = false;\n\n /* Try to return a Trusted Type object instead of a string, retrun a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_JQUERY = cfg.SAFE_FOR_JQUERY || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n node.outerHTML = emptyHTML;\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '