From 589cff4f90b265c2252b4f60238acbe8002847ec Mon Sep 17 00:00:00 2001 From: jordojordo Date: Thu, 6 Jul 2023 19:37:05 +0000 Subject: [PATCH] CI Build Artifacts --- assets/index.yaml | 28 +++++- assets/kubewarden/kubewarden-1.1.0.tgz | Bin 0 -> 1418 bytes charts/kubewarden/1.1.0/Chart.yaml | 16 ++++ charts/kubewarden/1.1.0/README.md | 7 ++ .../kubewarden/1.1.0/templates/_helpers.tpl | 52 ++++++++++ charts/kubewarden/1.1.0/templates/cr.yaml | 12 +++ charts/kubewarden/1.1.0/values.yaml | 6 ++ extensions/kubewarden/1.1.0/files.txt | 24 +++++ .../plugin/img/icon-kubewarden.3c183b75.svg | 1 + .../plugin/kubewarden-1.1.0.umd.min.10.js | 2 + .../plugin/kubewarden-1.1.0.umd.min.10.js.map | 1 + .../plugin/kubewarden-1.1.0.umd.min.9.js | 2 + .../plugin/kubewarden-1.1.0.umd.min.9.js.map | 1 + .../plugin/kubewarden-1.1.0.umd.min.detail.js | 2 + .../kubewarden-1.1.0.umd.min.detail.js.map | 1 + .../plugin/kubewarden-1.1.0.umd.min.dialog.js | 2 + .../kubewarden-1.1.0.umd.min.dialog.js.map | 1 + .../plugin/kubewarden-1.1.0.umd.min.edit.js | 2 + .../kubewarden-1.1.0.umd.min.edit.js.map | 1 + .../kubewarden-1.1.0.umd.min.formatters.js | 2 + ...kubewarden-1.1.0.umd.min.formatters.js.map | 1 + .../1.1.0/plugin/kubewarden-1.1.0.umd.min.js | 90 ++++++++++++++++++ .../plugin/kubewarden-1.1.0.umd.min.js.map | 1 + .../plugin/kubewarden-1.1.0.umd.min.list.js | 2 + .../kubewarden-1.1.0.umd.min.list.js.map | 1 + ...kubewarden-1.1.0.umd.min.vendors~detail.js | 2 + ...warden-1.1.0.umd.min.vendors~detail.js.map | 1 + .../kubewarden-1.1.0.umd.min.vendors~edit.js | 2 + ...bewarden-1.1.0.umd.min.vendors~edit.js.map | 1 + ...bewarden-1.1.0.umd.min.vendors~markdown.js | 2 + ...rden-1.1.0.umd.min.vendors~markdown.js.map | 1 + .../kubewarden/1.1.0/plugin/package.json | 20 ++++ index.yaml | 12 +-- 33 files changed, 289 insertions(+), 10 deletions(-) create mode 100644 assets/kubewarden/kubewarden-1.1.0.tgz create mode 100644 charts/kubewarden/1.1.0/Chart.yaml create mode 100644 charts/kubewarden/1.1.0/README.md create mode 100644 charts/kubewarden/1.1.0/templates/_helpers.tpl create mode 100644 charts/kubewarden/1.1.0/templates/cr.yaml create mode 100644 charts/kubewarden/1.1.0/values.yaml create mode 100644 extensions/kubewarden/1.1.0/files.txt create mode 100644 extensions/kubewarden/1.1.0/plugin/img/icon-kubewarden.3c183b75.svg create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.10.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.10.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.9.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.9.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.detail.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.detail.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.dialog.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.dialog.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.edit.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.edit.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.formatters.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.formatters.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.list.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.list.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~detail.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~detail.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~edit.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~edit.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js create mode 100644 extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js.map create mode 100644 extensions/kubewarden/1.1.0/plugin/package.json diff --git a/assets/index.yaml b/assets/index.yaml index 7467a5c2..aec0b3bb 100644 --- a/assets/index.yaml +++ b/assets/index.yaml @@ -1,6 +1,26 @@ apiVersion: v1 entries: kubewarden: + - annotations: + catalog.cattle.io/certified: rancher + catalog.cattle.io/kube-version: '>= 1.16.0-0 < 1.28.0-0' + catalog.cattle.io/namespace: cattle-ui-plugin-system + catalog.cattle.io/os: linux + catalog.cattle.io/permits-os: linux, windows + catalog.cattle.io/rancher-version: '>= 2.7.0-0 < 2.8.0-0' + catalog.cattle.io/scope: management + catalog.cattle.io/ui-component: plugins + apiVersion: v2 + appVersion: 1.1.0 + created: "2023-07-06T19:36:21.596123043Z" + description: Kubewarden extension for Rancher Manager + digest: 5579b822ef0c9784beb7ff577fea9eb330128b3be375d1d96fbe4a978daa6f8f + icon: https://raw.githubusercontent.com/kubewarden/ui/main/pkg/kubewarden/assets/icon-kubewarden.svg + name: kubewarden + type: application + urls: + - kubewarden/kubewarden-1.1.0.tgz + version: 1.1.0 - annotations: catalog.cattle.io/certified: rancher catalog.cattle.io/kube-version: '>= 1.16.0-0 < 1.28.0-0' @@ -12,14 +32,14 @@ entries: catalog.cattle.io/ui-component: plugins apiVersion: v2 appVersion: 1.1.0-rc1 - created: "2023-07-06T14:46:51.904328409Z" + created: "2023-07-06T14:47:29.312643834Z" description: Kubewarden extension for Rancher Manager - digest: c3880d3be28c0af8a8aa8eaa06b7c497dc730a0a01254283a39dda02dc3a6193 + digest: 05523ef9a75e2953461695623a8e9b7c8a392538b6fcc6392f0098d1c08327ab icon: https://raw.githubusercontent.com/kubewarden/ui/main/pkg/kubewarden/assets/icon-kubewarden.svg name: kubewarden type: application urls: - - kubewarden/kubewarden-1.1.0-rc1.tgz + - https://github.com/kubewarden/ui/releases/download/kubewarden-1.1.0-rc1/kubewarden-1.1.0-rc1.tgz version: 1.1.0-rc1 - annotations: catalog.cattle.io/certified: rancher @@ -881,4 +901,4 @@ entries: urls: - assets/kubewarden/kubewarden-0.1.0.tgz version: 0.1.0 -generated: "2023-07-06T14:46:51.903402699Z" +generated: "2023-07-06T19:36:21.595687946Z" diff --git a/assets/kubewarden/kubewarden-1.1.0.tgz b/assets/kubewarden/kubewarden-1.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8afae2c282c49d9baf9f117eb8114f9bea232afc GIT binary patch literal 1418 zcmV;51$Fu#iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PI=eZ`-yK&u9G=2ftS&>8ohTNt_4c^#MVf0masKXtwTSK~pD- z2t}$SWyf&(zYip3S$4d{-LiDUd|xb6cgNoydB;2Ix*p?<>I`N7RYA2Sb6Sdn$E74m zlHuv8|4ou)^EXY;&JNPk)3bD#o(zX)2T6Kza&mS6$s^;~O0}_6A0&Txu1(|qCPbxF zmRhc)8ASk$S}N3pFlwzp!d0K4wmj#UjX+b$3e;QK+&+q@s0~+g1c(2B2`Nd3B#9IF zAEadPU-x*pRaDXvO+^`wAPmMek1J76xQxx*SS+`SDKi4WWqq^tZH2nz*2FE>3z%`4 zshQcz-k7#-!GN4M1`NnO_zhDPj-aHHPOwC2w{q1yW~!`|L}^D5%rg5}f%h6;0QT z`PQ3#Pj{%Z)Ke;IG=IVY@Id}g($hQn|Li>7=l`c57sT(Us5Q@U1ifCA*FxMG4C%@p z5Gd(bxWmBe8Y6%v!q>O~qK{}i-X^q)tUHx-o`*aE?YKB(M3Gv5$I&--7#M2kfX8RlFf^xE1Z zHmIkli4*EUykeuZus}jX@y=-^AH(6&%`9;1l89t5Jn@gbysGn@-#{2Hl?Dx*41?2FA!}Z4itq(U((NqD2$T&N+(A z0M!VBm)v3oR)HSoGbI`22%@8Wo2T0Q^vMvPwWzOpNftviAe@*(&t z$S!fN4SprKN^@y*=sh#>Gt=A96(-$%pKX6!-+rBSbwSe{fNo9w+BO>{a0xm_vCH~; z_SNEU8rAi8cy8JRxCM=spbVk+pC0r+^}ar;R9Pw+pqd?^2F8H3Kv5D?^ga9$EEd2e z6Lofvi6nryhtZ%wW|jV-nTT|@Q)B%_+b6kqw5rH;8_TZQYWt4GVvEQve6E$n4R74l z5<0pp9?yfK<<`1FJ>_guK6vx00l&LHH_eT=VhPRGy?zV%fo!*hOJk{IxNb=|3L7)N z^?|gfC#9|RAJdQ81wM5Dmn7#K_2236d|&@P33V@^?p|6=)99MZYy>~Q`O&w4QHhpj z)Kb?A?vRsKb&JnSL8iIv+e}1$IBnICb)_GIRJ=UF+||+IF{I z@W@~}MGZ$ARZ!<(S=K^fVzSX2A0LzVnoqc-VyPcxRw*v+*WcAminyW^H2u~L)8z>F zZQk%@EAHIAj<0#O&-(vh>g<^hmlv^UB~{~O-P|AXOqvd{ldLI3K0RJgqN zqe67?z-I?In)**B$1p26D}V~2W(MY}c6~IL7BywA6}ClZRuV-QxkU}WL>0n+Id}mR z<%B3OQ5*Nx^;%AoZ=?+(P>?tSpFl- z-|*wwtf39)vS~D`)(nk*&y>vhq}Cn)iK6e6hEiz+E_0>JfXg9X=J?rcMmpb8xa#lo Y@1FLwr>Cc10{{U3|EBZHtpFkb0B;`6nE(I) literal 0 HcmV?d00001 diff --git a/charts/kubewarden/1.1.0/Chart.yaml b/charts/kubewarden/1.1.0/Chart.yaml new file mode 100644 index 00000000..59f4a9fd --- /dev/null +++ b/charts/kubewarden/1.1.0/Chart.yaml @@ -0,0 +1,16 @@ +annotations: + catalog.cattle.io/certified: rancher # Any application we are adding as a helm chart + catalog.cattle.io/kube-version: '>= 1.16.0-0 < 1.28.0-0' + catalog.cattle.io/namespace: cattle-ui-plugin-system # Must prefix with cattle- and suffix with -system= + catalog.cattle.io/os: linux + catalog.cattle.io/permits-os: linux, windows + catalog.cattle.io/rancher-version: '>= 2.7.0-0 < 2.8.0-0' + catalog.cattle.io/scope: management + catalog.cattle.io/ui-component: plugins +apiVersion: v2 +appVersion: "1.1.0" +description: Kubewarden extension for Rancher Manager +name: kubewarden +type: application +version: 1.1.0 +icon: https://raw.githubusercontent.com/kubewarden/ui/main/pkg/kubewarden/assets/icon-kubewarden.svg diff --git a/charts/kubewarden/1.1.0/README.md b/charts/kubewarden/1.1.0/README.md new file mode 100644 index 00000000..29a5bdc6 --- /dev/null +++ b/charts/kubewarden/1.1.0/README.md @@ -0,0 +1,7 @@ +# Kubewarden Extension for Rancher Manager + +An extension for Rancher Manager (v2.7.0) which allows you to interact with Kubewarden. + +After installation, go to a cluster and you will see a new side navigation entry 'Kubewarden'. This will allow you to install Kubewarden into the cluster and manage Kubewarden resources and configuration. + +For more information see https://www.kubewarden.io/ diff --git a/charts/kubewarden/1.1.0/templates/_helpers.tpl b/charts/kubewarden/1.1.0/templates/_helpers.tpl new file mode 100644 index 00000000..bd2ec19b --- /dev/null +++ b/charts/kubewarden/1.1.0/templates/_helpers.tpl @@ -0,0 +1,52 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "extension-server.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "extension-server.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "extension-server.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "extension-server.labels" -}} +helm.sh/chart: {{ include "extension-server.chart" . }} +{{ include "extension-server.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "extension-server.selectorLabels" -}} +app.kubernetes.io/name: {{ include "extension-server.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} diff --git a/charts/kubewarden/1.1.0/templates/cr.yaml b/charts/kubewarden/1.1.0/templates/cr.yaml new file mode 100644 index 00000000..1807cc68 --- /dev/null +++ b/charts/kubewarden/1.1.0/templates/cr.yaml @@ -0,0 +1,12 @@ +apiVersion: catalog.cattle.io/v1 +kind: UIPlugin +metadata: + name: {{ include "extension-server.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: {{ include "extension-server.labels" . | nindent 4 }} +spec: + plugin: + name: {{ include "extension-server.fullname" . }} + version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }} + endpoint: https://raw.githubusercontent.com/kubewarden/ui/gh-pages/extensions/kubewarden/1.1.0 + noCache: {{ .Values.plugin.noCache }} diff --git a/charts/kubewarden/1.1.0/values.yaml b/charts/kubewarden/1.1.0/values.yaml new file mode 100644 index 00000000..9cc1bd56 --- /dev/null +++ b/charts/kubewarden/1.1.0/values.yaml @@ -0,0 +1,6 @@ +nameOverride: "" +fullnameOverride: "" +plugin: + enabled: true + versionOverride: "" + noCache: false diff --git a/extensions/kubewarden/1.1.0/files.txt b/extensions/kubewarden/1.1.0/files.txt new file mode 100644 index 00000000..5f77b69d --- /dev/null +++ b/extensions/kubewarden/1.1.0/files.txt @@ -0,0 +1,24 @@ +plugin/img/icon-kubewarden.3c183b75.svg +plugin/kubewarden-1.1.0.umd.min.10.js +plugin/kubewarden-1.1.0.umd.min.10.js.map +plugin/kubewarden-1.1.0.umd.min.9.js +plugin/kubewarden-1.1.0.umd.min.9.js.map +plugin/kubewarden-1.1.0.umd.min.detail.js +plugin/kubewarden-1.1.0.umd.min.detail.js.map +plugin/kubewarden-1.1.0.umd.min.dialog.js +plugin/kubewarden-1.1.0.umd.min.dialog.js.map +plugin/kubewarden-1.1.0.umd.min.edit.js +plugin/kubewarden-1.1.0.umd.min.edit.js.map +plugin/kubewarden-1.1.0.umd.min.formatters.js +plugin/kubewarden-1.1.0.umd.min.formatters.js.map +plugin/kubewarden-1.1.0.umd.min.js +plugin/kubewarden-1.1.0.umd.min.js.map +plugin/kubewarden-1.1.0.umd.min.list.js +plugin/kubewarden-1.1.0.umd.min.list.js.map +plugin/kubewarden-1.1.0.umd.min.vendors~detail.js +plugin/kubewarden-1.1.0.umd.min.vendors~detail.js.map +plugin/kubewarden-1.1.0.umd.min.vendors~edit.js +plugin/kubewarden-1.1.0.umd.min.vendors~edit.js.map +plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js +plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js.map +plugin/package.json diff --git a/extensions/kubewarden/1.1.0/plugin/img/icon-kubewarden.3c183b75.svg b/extensions/kubewarden/1.1.0/plugin/img/icon-kubewarden.3c183b75.svg new file mode 100644 index 00000000..99494a4f --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/img/icon-kubewarden.3c183b75.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.10.js b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.10.js new file mode 100644 index 00000000..4bd31f68 --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.10.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]||[]).push([[10],{"1bb6":function(e,t){const o=[{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:"Policy Server Pods"},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",reload:"Unable to fetch Kubewarden Helm chart - reload required.",versionError:{title:"Chart Version not found.",message:"Unable to determine the latest stable version of the kubewarden-controller chart. Please make sure the Helm repository is configured correctly."}},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."},airGapped:{warning:"An air-gapped installation has been detected, this will require intervention to enable access to Kubewarden images and policies. It is necessary to make them available from an OCI registry that is accessible to the cluster.",docs:'Follow the Documentation to setup an OCI registry for further installation.\n',certManager:{manualStep:'Follow the Documentation to install Cert-Manager from a private registry.'},repository:{description:'Follow the Documentation to populate your OCI registry with the required Helm charts.'}}}},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"}},verification:{label:"Verification"},registry:{label:"Container Registry"}},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"},groups:{kind:"Policy Type"}},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.",official:"Official Kubewarden Policy",airgap:{banner:"An air-gapped installation is detected, you will be unable to use the policies listed within the ArtifactHub catalog. You are still able to deploy a custom policy by referencing a WebAssembly module that is accessible to this cluster."}},utils:{keyword:"Filter by Keyword",provider:"Filter by Provider",resource:"Filter by Resource Type",resetFilter:"Reset Filter"},tracing:{installOpenTelemetry:"Click the button below or run the kubectl command to install the latest version of OpenTelemetry.\n",noOpenTelemetry:'An OpenTelemetry service can not be found, please follow the steps listed here to setup the OpenTelemetry Operator.\n',noJaeger:'A Jaeger service can not be found, 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",noService:"The Metrics service is not currently active or is not installed correctly. Check the status of the Monitoring app."},policyConfig:{tabs:{general:"General",rules:"Rules",settings:"Settings",contextAware:"Context Aware Resources"},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 "*".'},contextAware:{label:"Context Aware Resources",description:"A list of Kubernetes resources the policy is allowed to access at evaluation time. Access to these resources is done using the ServiceAccount of the PolicyServer the policy is assigned to.",warning:"Kubewarden administrators need to thoroughly examine the types of resources that a policy will access in order to prevent any misuse or abuse of the system. In some cases, it may be necessary to increase the permissions of the ServiceAccount associated with the PolicyServer to enable the policy to retrieve the required information. Although policies are restricted to read-only access to Kubernetes resources, there is a risk that a malicious attacker could exploit a Kubewarden policy to extract sensitive data from the cluster.",resource:{add:"Add Resource",remove:"Remove Resource",apiVersion:{label:"API Version",tooltip:"This is the apiVersion of the resource (v1 for core group, groupName/groupVersions for other)."},kind:{label:"Kind",tooltip:"Singular PascalCase name of the resource"}}}},policyServerConfig:{defaultImage:{label:"Default Image",tooltip:"Use the default `policy-server` container image.",versionWarning:"The latest stable version for Policy Server could not be determined, falling back to default."},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:{label:"Signed",tooltip:"This policy has been signed with { signatures }."},mutationPolicy:{label:"Mutation",tooltip:"A mutating policy will rebuild the requests with definied values that are conformant with the policy definition."},contextAware:{label:"Context Aware",tooltip:"Can determine whether an AdmissionRequest has to be accepted or rejected based on other resources already deployed in the cluster."}}},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-1.1.0.umd.min.10.js.map \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.10.js.map b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.10.js.map new file mode 100644 index 00000000..9f940f95 --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.10.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://kubewarden-1.1.0/./l10n/en-us.yaml"],"names":["doc","module","exports","length"],"mappings":"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","file":"kubewarden-1.1.0.umd.min.10.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\":\"Policy Server Pods\"}), \"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\", \"reload\":\"Unable to fetch Kubewarden Helm chart - reload required.\", \"versionError\":({\"title\":\"Chart Version not found.\", \"message\":\"Unable to determine the latest stable version of the kubewarden-controller chart. Please make sure the Helm repository is configured correctly.\"})}), \"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.\"}), \"airGapped\":({\"warning\":\"An air-gapped installation has been detected, this will require intervention to enable access to Kubewarden images and policies. It is necessary to make them available from an OCI registry that is accessible to the cluster.\", \"docs\":\"Follow the Documentation to setup an OCI registry for further installation.\\n\", \"certManager\":({\"manualStep\":\"Follow the Documentation to install Cert-Manager from a private registry.\"}), \"repository\":({\"description\":\"Follow the Documentation to populate your OCI registry with the required Helm charts.\"})})})}), \"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\"})}), \"verification\":({\"label\":\"Verification\"}), \"registry\":({\"label\":\"Container Registry\"})}), \"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\"}), \"groups\":({\"kind\":\"Policy Type\"})}), \"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.\", \"official\":\"Official Kubewarden Policy\", \"airgap\":({\"banner\":\"An air-gapped installation is detected, you will be unable to use the policies listed within the ArtifactHub catalog. You are still able to deploy a custom policy by referencing a WebAssembly module that is accessible to this cluster.\"})}), \"utils\":({\"keyword\":\"Filter by Keyword\", \"provider\":\"Filter by Provider\", \"resource\":\"Filter by Resource Type\", \"resetFilter\":\"Reset Filter\"}), \"tracing\":({\"installOpenTelemetry\":\"Click the button below or run the kubectl command to install the latest version of OpenTelemetry.\\n\", \"noOpenTelemetry\":\"An OpenTelemetry service can not be found, please follow the steps listed here to setup the OpenTelemetry Operator.\\n\", \"noJaeger\":\"A Jaeger service can not be found, 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\", \"noService\":\"The Metrics service is not currently active or is not installed correctly. Check the status of the Monitoring app.\"}), \"policyConfig\":({\"tabs\":({\"general\":\"General\", \"rules\":\"Rules\", \"settings\":\"Settings\", \"contextAware\":\"Context Aware Resources\"}), \"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 \\\"*\\\".\"}), \"contextAware\":({\"label\":\"Context Aware Resources\", \"description\":\"A list of Kubernetes resources the policy is allowed to access at evaluation time. Access to these resources is done using the ServiceAccount of the PolicyServer the policy is assigned to.\", \"warning\":\"Kubewarden administrators need to thoroughly examine the types of resources that a policy will access in order to prevent any misuse or abuse of the system. In some cases, it may be necessary to increase the permissions of the ServiceAccount associated with the PolicyServer to enable the policy to retrieve the required information. Although policies are restricted to read-only access to Kubernetes resources, there is a risk that a malicious attacker could exploit a Kubewarden policy to extract sensitive data from the cluster.\", \"resource\":({\"add\":\"Add Resource\", \"remove\":\"Remove Resource\", \"apiVersion\":({\"label\":\"API Version\", \"tooltip\":\"This is the apiVersion of the resource (v1 for core group, groupName/groupVersions for other).\"}), \"kind\":({\"label\":\"Kind\", \"tooltip\":\"Singular PascalCase name of the resource\"})})})}), \"policyServerConfig\":({\"defaultImage\":({\"label\":\"Default Image\", \"tooltip\":\"Use the default `policy-server` container image.\", \"versionWarning\":\"The latest stable version for Policy Server could not be determined, falling back to default.\"}), \"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\":({\"label\":\"Signed\", \"tooltip\":\"This policy has been signed with { signatures }.\"}), \"mutationPolicy\":({\"label\":\"Mutation\", \"tooltip\":\"A mutating policy will rebuild the requests with definied values that are conformant with the policy definition.\"}), \"contextAware\":({\"label\":\"Context Aware\", \"tooltip\":\"Can determine whether an AdmissionRequest has to be accepted or rejected based on other resources already deployed in the cluster.\"})})}), \"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/1.1.0/plugin/kubewarden-1.1.0.umd.min.9.js b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.9.js new file mode 100644 index 00000000..4af250cb --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.9.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]||[]).push([[9],{"7ada":function(e,t,n){(function(n){var o,a,i;(function(n,r){a=[],o=r,i="function"===typeof o?o.apply(t,a):o,void 0===i||(e.exports=i)})(0,(function(){"use strict";function t(e,t){return"undefined"==typeof t?t={autoBom:!1}:"object"!=typeof t&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}function o(e,t,n){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="blob",o.onload=function(){c(o.response,t,n)},o.onerror=function(){console.error("could not download file")},o.send()}function a(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function i(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(o){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var r="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof n&&n.global===n?n:void 0,c=r.saveAs||("object"!=typeof window||window!==r?function(){}:"download"in HTMLAnchorElement.prototype?function(e,t,n){var c=r.URL||r.webkitURL,s=document.createElement("a");t=t||e.name||"download",s.download=t,s.rel="noopener","string"==typeof e?(s.href=e,s.origin===location.origin?i(s):a(s.href)?o(e,t,n):i(s,s.target="_blank")):(s.href=c.createObjectURL(e),setTimeout((function(){c.revokeObjectURL(s.href)}),4e4),setTimeout((function(){i(s)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,n,r){if(n=n||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(t(e,r),n);else if(a(e))o(e,n,r);else{var c=document.createElement("a");c.href=e,c.target="_blank",setTimeout((function(){i(c)}))}}:function(e,t,n,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),"string"==typeof e)return o(e,t,n);var i="application/octet-stream"===e.type,c=/constructor/i.test(r.HTMLElement)||r.safari,s=/CriOS\/[\d]+/.test(navigator.userAgent);if((s||i&&c)&&"object"==typeof FileReader){var l=new FileReader;l.onloadend=function(){var e=l.result;e=s?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=e:location=e,a=null},l.readAsDataURL(e)}else{var f=r.URL||r.webkitURL,u=f.createObjectURL(e);a?a.location=u:location.href=u,a=null,setTimeout((function(){f.revokeObjectURL(u)}),4e4)}});r.saveAs=c.saveAs=c,e.exports=c}))}).call(this,n("7d15"))}}]); +//# sourceMappingURL=kubewarden-1.1.0.umd.min.9.js.map \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.9.js.map b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.9.js.map new file mode 100644 index 00000000..3000bf4e --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.9.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/file-saver/dist/FileSaver.min.js"],"names":["this","b","a","autoBom","console","warn","test","type","Blob","c","d","e","XMLHttpRequest","open","responseType","onload","response","onerror","error","send","status","dispatchEvent","MouseEvent","document","createEvent","initMouseEvent","window","f","self","global","saveAs","HTMLAnchorElement","prototype","g","h","i","URL","webkitURL","j","createElement","name","download","rel","href","origin","location","target","createObjectURL","setTimeout","revokeObjectURL","navigator","msSaveOrOpenBlob","title","body","innerText","HTMLElement","safari","userAgent","FileReader","onloadend","result","replace","readAsDataURL","k","l","module","exports"],"mappings":"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","file":"kubewarden-1.1.0.umd.min.9.js","sourcesContent":["(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(b,c,d){var e=new XMLHttpRequest;e.open(\"GET\",b),e.responseType=\"blob\",e.onload=function(){a(e.response,c,d)},e.onerror=function(){console.error(\"could not download file\")},e.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(a,b,d,e){if(e=e||open(\"\",\"_blank\"),e&&(e.document.title=e.document.body.innerText=\"downloading...\"),\"string\"==typeof a)return c(a,b,d);var g=\"application/octet-stream\"===a.type,h=/constructor/i.test(f.HTMLElement)||f.safari,i=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((i||g&&h)&&\"object\"==typeof FileReader){var j=new FileReader;j.onloadend=function(){var a=j.result;a=i?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),e?e.location.href=a:location=a,e=null},j.readAsDataURL(a)}else{var k=f.URL||f.webkitURL,l=k.createObjectURL(a);e?e.location=l:location.href=l,e=null,setTimeout(function(){k.revokeObjectURL(l)},4E4)}});f.saveAs=a.saveAs=a,\"undefined\"!=typeof module&&(module.exports=a)});\n\n//# sourceMappingURL=FileSaver.min.js.map"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.detail.js b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.detail.js new file mode 100644 index 00000000..2ec4e98b --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.detail.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]||[]).push([[0],{"00ce":function(e,t,a){"use strict";var r=function(){var e=this,t=e._self._c;return t("div",[e._t("traceBanner"),e.rows?t("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:mode",fn:function({row:a}){return[t("td",[t("BadgeState",{attrs:{label:e.capitalizeMessage(a.mode),color:e.modeColor(a.mode)}})],1)]}},{key:"col:operation",fn:function({row:a}){return[t("td",[e._v(" "+e._s(a.operation)+" ")])]}},{key:"sub-row",fn:function({row:a,fullColspan:r}){return[t("td",{staticClass:"sub-row",attrs:{colspan:r}},[t("div",{staticClass:"details"},[e.showLogs(a.logs)?[t("section",{staticClass:"col"},[t("div",{staticClass:"title"},[e._v(" Response ")]),a.logs.response?t("span",{staticClass:"text-info"},[e._v(" "+e._s(e.capitalizeMessage(a.logs.response))+" ")]):t("span",[e._v(" N/A ")])])]:[t("section",{staticClass:"col"},[t("div",{staticClass:"title"},[e._v(" Response Message ")]),a.response_message?t("span",{staticClass:"text-warning"},[e._v(" "+e._s(e.capitalizeMessage(a.response_message))+" ")]):t("span",[e._v(" N/A ")])]),t("section",{staticClass:"col"},[t("div",{staticClass:"title"},[e._v(" Response Code ")]),t("span",{staticClass:"text-info"},[e._v(" "+e._s(a.response_code?a.response_code:"N/A")+" ")])]),t("section",{staticClass:"col"},[t("div",{staticClass:"title"},[e._v(" Mutated ")]),t("span",{staticClass:"text-info"},[e._v(" "+e._s(a.mutated)+" ")])])]],2)])]}}],null,!1,866474010)}):e._e()],2)},s=[],i=a("e24b"),o=a("f17a"),n=a("0fb1"),l=a("d892"),c=a("5191"),u=a("90cd"),d={props:{rows:{type:Array,default:()=>[]}},components:{BadgeState:o["a"],SortableTable:n["b"]},data(){return{MODE_MAP:l["c"],TRACE_HEADERS:c["f"],OPERATION_MAP:l["e"]}},computed:{groupField(){return this.isPolicyServer?"policy_id":null},isPolicyServer(){return this.$route.params.resource===u["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=d,m=(a("d360"),a("d802")),v=Object(m["a"])(p,r,s,!1,null,"490704fe",null);t["a"]=v.exports},"0cdc":function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,".policy__mode[data-v-e7caa404]{display:flex;align-items:center}.policy__mode i[data-v-e7caa404]{margin-left:5px;font-size:22px;color:var(--warning)}.gauges[data-v-e7caa404],.gaugesContainer[data-v-e7caa404]{display:flex}.gauges[data-v-e7caa404]{justify-content:space-around;flex-wrap:wrap;justify-content:left}.gauges .count-gauge[data-v-e7caa404]{width:46%;margin-bottom:10px;flex:initial}.gauges>*[data-v-e7caa404]{flex:1;margin-right:1.75%}",""]),e.exports=t},"1fc1":function(e,t,a){"use strict";a("efce")},"284d":function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e._self._c;return e.$fetchState.pending?t("Loading"):t("div",[e.policyGauges?[t("div",{staticClass:"row"},[[t("div",{staticClass:"col span-6"},[t("h3",[e._v(" "+e._s(e.t("kubewarden.policyServer.policyGauge.byStatus"))+" ")]),t("div",{staticClass:"gauges mb-20"},e._l(e.policyGauges,(function(a,r){return t("CountGauge",{key:r,attrs:{total:e.relatedPoliciesTotal,useful:a.count||0,graphical:!1,"primary-color-var":"--sizzle-"+a.color,name:r}})})),1)])],e.emptyTraces?e._e():[t("div",{staticClass:"col span-6"},[t("h3",[e._v(" "+e._s(e.t("kubewarden.policyServer.policyGauge.traces"))+" ")]),t("div",{staticClass:"gauges mb-20"},e._l(e.tracesGauges,(function(a,r){return t("CountGauge",{key:r,attrs:{total:e.filteredValidations.length,useful:a.count||0,graphical:!1,"primary-color-var":"--sizzle-"+a.color,name:r}})})),1)])]],2)]:e._e(),t("ResourceTabs",{attrs:{mode:e.mode},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[t("Tab",{attrs:{name:"related-policies",label:"Policies",weight:99},scopedSlots:e._u([{key:"default",fn:function(){return[t("ResourceTable",{attrs:{rows:e.relatedPolicies||[],headers:e.RELATED_HEADERS,groupable:!0,"group-by":e.groupPreference,"table-actions":!0},scopedSlots:e._u([{key:"col:operation",fn:function({row:a}){return[t("td",[t("BadgeState",{attrs:{label:a.operation,color:e.color(a.operation)}})],1)]}}])})]},proxy:!0}])}),t("Tab",{attrs:{name:"policy-metrics",label:"Metrics",weight:98},scopedSlots:e._u([e.metricsService?{key:"default",fn:function(a){return[a.active?t("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():t("MetricsBanner",{attrs:{"metrics-service":e.metricsService,"metrics-type":e.metricsType,"monitoring-route":e.monitoringRoute,"reload-required":e.reloadRequired},on:{add:e.addDashboard}})],1),t("Tab",{attrs:{name:"policy-tracing",label:"Tracing",weight:97}},[[t("TraceTable",{attrs:{rows:e.filteredValidations},scopedSlots:e._u([{key:"traceBanner",fn:function(){return[e.emptyTraces?t("TraceBanner",{attrs:{"jaeger-service":e.jaegerService,"open-telemetry-service":e.openTelemetryService}}):e._e()]},proxy:!0}])})]],2)],1)],2)},s=[],i=a("9ce4"),o=a("da25"),n=a("f390"),l=a("b45b"),c=a("a8b9"),u=a("305c"),d=a("5000"),p=a("74c2"),m=a("c389"),v=a("15ca"),h=a("c422"),g=a("126f"),f=a("38de"),b=a("9ec3"),y=a("90cd"),_=a("5191"),w=a("e9a3"),S=a("2c30"),T=function(){var e=this,t=e._self._c;return t("div",[t("Banner",{attrs:{color:"warning"}},[e.openTelemetryService?e.jaegerService?t("span",[e._v(e._s(e.t("kubewarden.tracing.noRelatedTraces")))]):t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.t("kubewarden.tracing.noJaeger",{},!0),expression:"t('kubewarden.tracing.noJaeger', {}, true)"}]}):t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.t("kubewarden.tracing.noOpenTelemetry",{},!0),expression:"t('kubewarden.tracing.noOpenTelemetry', {}, true)"}]})])],1)},x=[],j=a("6418"),R={props:{openTelemetryService:{type:Object,default:null},jaegerService:{type:Object,default:null}},components:{Banner:j["a"]}},C=R,P=a("d802"),k=Object(P["a"])(C,T,x,!1,null,null,null),O=k.exports,E=a("00ce"),D={name:"PolicyServer",components:{CountGauge:p["a"],DashboardMetrics:m["a"],Loading:v["a"],MetricsBanner:S["a"],ResourceTabs:h["a"],ResourceTable:g["a"],Tab:f["a"],TraceBanner:O,TraceTable:E["a"]},mixins:[u["a"]],props:{mode:{type:String,default:o["r"]},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(),openTelemetryService:this.value.openTelemetryService()}),t=(e,t)=>{Object(b["isEmpty"])(t)||(this[e]=t)};if(t("relatedPolicies",e.relatedPolicies),t("policyGauges",e.policyGauges),t("jaegerService",e.jaegerService),t("openTelemetryService",e.openTelemetryService),!Object(b["isEmpty"])(this.relatedPolicies)&&this.jaegerService&&(this.filteredValidations=await this.value.filteredValidations({service:this.jaegerService})),this.monitoringStatus.installed)try{var a;if(this.metricsProxy=await this.value.grafanaProxy(this.metricsType),this.metricsProxy)this.metricsService=await Object(l["b"])("v2",this.$store,null===(a=this.currentCluster)||void 0===a?void 0:a.id,this.metricsProxy)}catch(s){console.error("Error fetching Grafana service: "+s)}else{await this.$store.dispatch("catalog/load");const e=this.$store.getters["catalog/rawCharts"],t=Object.values(e),a=t.find(e=>"rancher-monitoring"===e.chartName);var r;if(a)this.monitoringRoute={name:"c-cluster-apps-charts-install",params:{cluster:this.$route.params.cluster,product:this.$store.getters["productId"]},query:{[o["h"]]:"cluster",[o["g"]]:"rancher-charts",[o["d"]]:"rancher-monitoring",[o["o"]]:null===(r=a.versions[0])||void 0===r?void 0:r.version}}}},data(){return{RELATED_HEADERS:_["d"],jaegerService:null,openTelemetryService:null,filteredValidations:null,metricsProxy:null,metricsService:null,monitoringRoute:null,policyGauges:null,relatedPolicies:null,reloadRequired:!1,metricsType:y["g"].POLICY_SERVER}},computed:{...Object(i["a"])(["currentCluster","currentProduct"]),...Object(n["c"])(),_group:Object(d["m"])(d["e"]),emptyTraces(){return Object(b["isEmpty"])(this.filteredValidations)},groupPreference(){const e="namespace"===this._group?"kind":null;return e},relatedPoliciesTotal(){return Object(b["isEmpty"])(this.relatedPolicies)?0:this.relatedPolicies.length},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){Object(w["a"])({error:t,store:this.$store}),e(!1)}},hasNamespaceSelector(e){return e.namespaceSelector}}},A=D,M=(a("1fc1"),Object(P["a"])(A,r,s,!1,null,"e7caa404",null));t["default"]=M.exports},"2c30":function(e,t,a){"use strict";var r=function(){var e=this,t=e._self._c;return e.monitoringStatus.installed?e.metricsDashboard?e.metricsService?e._e():t("div",[t("Banner",{attrs:{color:"error"}},[t("i",{staticClass:"icon icon-checkmark mr-10"}),t("span",{staticClass:"mb-20"},[e._v(" "+e._s(e.t("kubewarden.metrics.noService"))+" ")])])],1):t("div",[t("Banner",{attrs:{color:"warning"}},[e.reloadRequired?[t("i",{staticClass:"icon icon-checkmark mr-10"}),t("span",{staticClass:"mb-20"},[e._v(" "+e._s(e.t("kubewarden.metrics.reload"))+" ")]),t("button",{staticClass:"ml-10 btn btn-sm role-primary",on:{click:function(t){return e.reload()}}},[e._v(" "+e._s(e.t("generic.reload"))+" ")])]:[t("p",{staticClass:"mb-20"},[e._v(" "+e._s(e.t("kubewarden.metrics.notInstalled"))+" ")]),t("AsyncButton",{attrs:{mode:"grafanaDashboard"},on:{click:function(t){return e.$emit("add",t)}}})]],2)],1):t("div",[t("Banner",{attrs:{color:"warning"}},[t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.t("kubewarden.monitoring.notInstalled",{},!0),expression:"t('kubewarden.monitoring.notInstalled', {}, true)"}]}),t("button",{staticClass:"btn role-primary ml-10",on:{click:function(t){return t.preventDefault(),e.chartRoute.apply(null,arguments)}}},[e._v(" "+e._s(e.t("kubewarden.policyServer.noDefaultsInstalled.button"))+" ")])])],1)},s=[],i=a("9ce4"),o=a("f390"),n=a("907c"),l=a("6418"),c=a("d709"),u={name:"MetricsBanner",props:{metricsService:{type:[Boolean,Object],default:null},metricsType:{type:String,required:!0},reloadRequired:{type:Boolean,default:!1}},components:{AsyncButton:c["b"],Banner:l["a"]},async fetch(){this.monitoringChart||await this.$store.dispatch("catalog/load"),await this.$store.dispatch("cluster/findAll",{type:n["c"]})},computed:{...Object(i["a"])(["currentProduct"]),...Object(o["c"])(),monitoringChart(){return this.$store.getters["catalog/chart"]({chartName:"rancher-monitoring"})},metricsDashboard(){const e=this.$store.getters["cluster/matching"]({type:n["c"],selector:"kubewarden/part-of=cattle-kubewarden-system"});return Array.isArray(e)&&!e.length?null:e}},methods:{reload(){this.$router.go()},chartRoute(){var e;null===(e=this.monitoringChart)||void 0===e||e.goToInstall()}}},d=u,p=a("d802"),m=Object(p["a"])(d,r,s,!1,null,null,null);t["a"]=m.exports},"733f":function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e._self._c;return t("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["r"]},resource:{type:String,default:null},value:{type:Object,required:!0}},components:{PolicyDetail:o["a"]}},l=n,c=a("d802"),u=Object(c["a"])(l,r,s,!1,null,null,null);t["default"]=u.exports},"80db":function(e,t,a){"use strict";var r=function(){var e=this,t=e._self._c;return e.$fetchState.pending?t("Loading"):t("div",[t("div",{staticClass:"mb-20"},[t("h3",[e._v(e._s(e.t("namespace.resources")))])]),t("ResourceTabs",{attrs:{mode:e.mode,"need-related":e.hasRelationships},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[e.hasRules?t("Tab",{attrs:{name:"policy-rules",label:"Rules",weight:99}},[t("RulesTable",{attrs:{rows:e.rulesRows}})],1):e._e(),t("Tab",{attrs:{name:"policy-tracing",label:"Tracing",weight:98}},[t("TraceTable",{attrs:{rows:e.tracesRows},scopedSlots:e._u([{key:"traceBanner",fn:function(){return[e.emptyTraces?t("Banner",{attrs:{color:"warning"}},[e.jaegerService?t("span",[e._v(e._s(e.t("kubewarden.tracing.noTraces")))]):t("span",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.t("kubewarden.tracing.noJaeger",{},!0),expression:"t('kubewarden.tracing.noJaeger', {}, true)"}]})]):e._e()]},proxy:!0}])})],1),t("Tab",{attrs:{name:"policy-metrics",label:"Metrics",weight:97},scopedSlots:e._u([e.metricsService?{key:"default",fn:function(a){return[a.active?t("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():t("MetricsBanner",{attrs:{"metrics-service":e.metricsService,"metrics-type":e.metricsType,"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"),u=a("b45b"),d=a("305c"),p=a("6418"),m=a("c389"),v=a("15ca"),h=a("c422"),g=a("38de"),f=a("90cd"),b=a("2c30"),y=function(){var e=this,t=e._self._c;return t("div",[e.rows.length>0?t("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({row:a}){return[t("td",[t("span",[e._v(e._s(a.apiGroups||"-"))])])]}},{key:"col:apiVersion",fn:function({row:a}){return[t("td",[t("span",[e._v(e._s(a.apiVersions||"-"))])])]}},{key:"col:operations",fn:function({row:a}){return[t("td",[t("span",[e._v(e._s(e.joinColumn(a.operations)))])])]}},{key:"col:resources",fn:function({row:a}){return[t("td",[t("span",[e._v(e._s(e.joinColumn(a.resources)))])])]}}],null,!1,1857136105)}):t("div",[t("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"),T={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(", "))||""}}},x=T,j=a("d802"),R=Object(j["a"])(x,y,_,!1,null,null,null),C=R.exports,P=a("00ce"),k={name:"PolicyDetail",components:{Banner:p["a"],DashboardMetrics:m["a"],Loading:v["a"],MetricsBanner:b["a"],ResourceTabs:h["a"],RulesTable:C,Tab:g["a"],TraceTable:P["a"]},mixins:[d["a"]],props:{mode:{type:String,default:l["r"]},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(u["b"])("v2",this.$store,null===(e=this.currentCluster)||void 0===e?void 0:e.id,this.metricsProxy)}catch(t){console.error("Error fetching Grafana service: "+t)}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,reloadRequired:!1,filteredValidations:null,metricsType:f["g"].POLICY}},computed:{...Object(i["a"])(["currentCluster"]),...Object(c["c"])(),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)}}}},O=k,E=Object(j["a"])(O,r,s,!1,null,null,null);t["a"]=E.exports},a7cb:function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,".sub-row[data-v-490704fe]{background-color:var(--body-bg);border-bottom:1px solid var(--sortable-table-top-divider);padding-left:1rem;padding-right:1rem}.details[data-v-490704fe]{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1em}.details .col[data-v-490704fe]{display:flex;flex-direction:column}.details .col section[data-v-490704fe]{margin-bottom:1.5rem}.details .col .title[data-v-490704fe]{color:var(--muted);margin-bottom:.5rem}",""]),e.exports=t},b3e2:function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e._self._c;return t("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["r"]},resource:{type:String,default:null},value:{type:Object,required:!0}},components:{PolicyDetail:o["a"]}},l=n,c=a("d802"),u=Object(c["a"])(l,r,s,!1,null,null,null);t["default"]=u.exports},d360:function(e,t,a){"use strict";a("f608")},efce:function(e,t,a){var r=a("0cdc");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("7ad780cd",r,!0,{sourceMap:!1,shadowMode:!1})},f608:function(e,t,a){var r=a("a7cb");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("4ad7c6ba",r,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=kubewarden-1.1.0.umd.min.detail.js.map \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.detail.js.map b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.detail.js.map new file mode 100644 index 00000000..8fb99192 --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.detail.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://kubewarden-1.1.0/./components/TraceTable.vue","webpack://kubewarden-1.1.0/components/TraceTable.vue","webpack://kubewarden-1.1.0/./components/TraceTable.vue?701f","webpack://kubewarden-1.1.0/./components/TraceTable.vue?d30c","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.policyserver.vue?5bc4","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.policyserver.vue?fe3d","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.policyserver.vue","webpack://kubewarden-1.1.0/./components/TraceBanner.vue","webpack://kubewarden-1.1.0/components/TraceBanner.vue","webpack://kubewarden-1.1.0/./components/TraceBanner.vue?5c42","webpack://kubewarden-1.1.0/./components/TraceBanner.vue?0ae6","webpack://kubewarden-1.1.0/detail/policies.kubewarden.io.policyserver.vue","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.policyserver.vue?55a1","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.policyserver.vue?2787","webpack://kubewarden-1.1.0/./components/MetricsBanner.vue","webpack://kubewarden-1.1.0/components/MetricsBanner.vue","webpack://kubewarden-1.1.0/./components/MetricsBanner.vue?08ab","webpack://kubewarden-1.1.0/./components/MetricsBanner.vue?1a74","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.admissionpolicy.vue","webpack://kubewarden-1.1.0/detail/policies.kubewarden.io.admissionpolicy.vue","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.admissionpolicy.vue?5000","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.admissionpolicy.vue?9fd2","webpack://kubewarden-1.1.0/./components/Policies/PolicyDetail.vue","webpack://kubewarden-1.1.0/./components/RulesTable.vue","webpack://kubewarden-1.1.0/components/RulesTable.vue","webpack://kubewarden-1.1.0/./components/RulesTable.vue?6b16","webpack://kubewarden-1.1.0/./components/RulesTable.vue?c0b8","webpack://kubewarden-1.1.0/components/Policies/PolicyDetail.vue","webpack://kubewarden-1.1.0/./components/Policies/PolicyDetail.vue?865a","webpack://kubewarden-1.1.0/./components/Policies/PolicyDetail.vue?3f49","webpack://kubewarden-1.1.0/./components/TraceTable.vue?6a4a","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.clusteradmissionpolicy.vue","webpack://kubewarden-1.1.0/detail/policies.kubewarden.io.clusteradmissionpolicy.vue","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.clusteradmissionpolicy.vue?41ec","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.clusteradmissionpolicy.vue?4c76","webpack://kubewarden-1.1.0/./components/TraceTable.vue?a0b3","webpack://kubewarden-1.1.0/./detail/policies.kubewarden.io.policyserver.vue?c3d3","webpack://kubewarden-1.1.0/./components/TraceTable.vue?2754"],"names":["render","_vm","this","_c","_self","_t","rows","attrs","TRACE_HEADERS","rowsPerPage","scopedSlots","_u","key","fn","row","capitalizeMessage","mode","modeColor","_v","_s","operation","fullColspan","staticClass","showLogs","logs","response","response_message","response_code","mutated","_e","staticRenderFns","props","type","Array","default","components","BadgeState","SortableTable","data","MODE_MAP","OPERATION_MAP","computed","groupField","isPolicyServer","$route","params","resource","KUBEWARDEN","POLICY_SERVER","methods","m","charAt","toUpperCase","slice","opColor","op","isEmpty","component","___CSS_LOADER_API_IMPORT___","exports","push","module","i","$fetchState","pending","policyGauges","t","_l","group","relatedPoliciesTotal","count","color","emptyTraces","tracesGauges","filteredValidations","length","model","value","callback","$$v","expression","relatedPolicies","RELATED_HEADERS","groupPreference","proxy","metricsService","active","metricsProxy","monitoringStatus","installed","metricsType","monitoringRoute","reloadRequired","on","addDashboard","jaegerService","openTelemetryService","directives","name","rawName","Object","Banner","CountGauge","DashboardMetrics","Loading","MetricsBanner","ResourceTabs","ResourceTable","Tab","TraceBanner","TraceTable","mixins","CreateEditView","String","_CREATE","required","hash","allHash","allRelatedPolicies","assignIfNotEmpty","prop","service","_this$currentCluster","grafanaProxy","dashboardExists","$store","currentCluster","id","e","console","error","dispatch","charts","getters","chartValues","values","monitoringChart","find","chart","chartName","_monitoringChart$vers","cluster","product","query","REPO_TYPE","REPO","CHART","VERSION","versions","version","METRICS_DASHBOARD","mapGetters","_group","mapPref","GROUP_RESOURCES","out","btnCb","addGrafanaDashboard","handleGrowlError","store","hasNamespaceSelector","namespaceSelector","metricsDashboard","$event","reload","$emit","preventDefault","chartRoute","apply","arguments","Boolean","AsyncButton","CONFIG_MAP","selector","isArray","$router","go","_this$monitoringChart","goToInstall","PolicyDetail","hasRelationships","hasRules","rulesRows","tracesRows","dashboardVars","RULE_HEADERS","apiGroups","apiVersions","joinColumn","operations","resources","join","RulesTable","jaegerSpecificValidations","POLICY","_this$value","policy_name","_this$value$metadata","metadata","relationships","_this$value$spec","spec","rules","traceTableRows","err","errors","content","__esModule","locals","add"],"mappings":"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","file":"kubewarden-1.1.0.umd.min.detail.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;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:mode\",fn:function({row}){return [_c('td',[_c('BadgeState',{attrs:{\"label\":_vm.capitalizeMessage(row.mode),\"color\":_vm.modeColor(row.mode)}})],1)]}},{key:\"col:operation\",fn:function({row}){return [_c('td',[_vm._v(\" \"+_vm._s(row.operation)+\" \")])]}},{key:\"sub-row\",fn:function({row, fullColspan}){return [_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,866474010)}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TraceTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TraceTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TraceTable.vue?vue&type=template&id=490704fe&scoped=true&\"\nimport script from \"./TraceTable.vue?vue&type=script&lang=js&\"\nexport * from \"./TraceTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TraceTable.vue?vue&type=style&index=0&id=490704fe&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"490704fe\",\n null\n \n)\n\nexport default component.exports","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".policy__mode[data-v-e7caa404]{display:flex;align-items:center}.policy__mode i[data-v-e7caa404]{margin-left:5px;font-size:22px;color:var(--warning)}.gauges[data-v-e7caa404],.gaugesContainer[data-v-e7caa404]{display:flex}.gauges[data-v-e7caa404]{justify-content:space-around;flex-wrap:wrap;justify-content:left}.gauges .count-gauge[data-v-e7caa404]{width:46%;margin-bottom:10px;flex:initial}.gauges>*[data-v-e7caa404]{flex:1;margin-right:1.75%}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.policyserver.vue?vue&type=style&index=0&id=e7caa404&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading'):_c('div',[(_vm.policyGauges)?[_c('div',{staticClass:\"row\"},[[_c('div',{staticClass:\"col span-6\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.policyServer.policyGauge.byStatus'))+\" \")]),_c('div',{staticClass:\"gauges mb-20\"},_vm._l((_vm.policyGauges),function(group,key){return _c('CountGauge',{key:key,attrs:{\"total\":_vm.relatedPoliciesTotal,\"useful\":group.count || 0,\"graphical\":false,\"primary-color-var\":`--sizzle-${group.color}`,\"name\":key}})}),1)])],(!_vm.emptyTraces)?[_c('div',{staticClass:\"col span-6\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.policyServer.policyGauge.traces'))+\" \")]),_c('div',{staticClass:\"gauges mb-20\"},_vm._l((_vm.tracesGauges),function(group,key){return _c('CountGauge',{key:key,attrs:{\"total\":_vm.filteredValidations.length,\"useful\":group.count || 0,\"graphical\":false,\"primary-color-var\":`--sizzle-${group.color}`,\"name\":key}})}),1)])]:_vm._e()],2)]:_vm._e(),_c('ResourceTabs',{attrs:{\"mode\":_vm.mode},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('Tab',{attrs:{\"name\":\"related-policies\",\"label\":\"Policies\",\"weight\":99},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('ResourceTable',{attrs:{\"rows\":_vm.relatedPolicies || [],\"headers\":_vm.RELATED_HEADERS,\"groupable\":true,\"group-by\":_vm.groupPreference,\"table-actions\":true},scopedSlots:_vm._u([{key:\"col:operation\",fn:function({ row }){return [_c('td',[_c('BadgeState',{attrs:{\"label\":row.operation,\"color\":_vm.color(row.operation)}})],1)]}}])})]},proxy:true}])}),_c('Tab',{attrs:{\"name\":\"policy-metrics\",\"label\":\"Metrics\",\"weight\":98},scopedSlots:_vm._u([(_vm.metricsService)?{key:\"default\",fn:function(props){return [(props.active)?_c('DashboardMetrics',{attrs:{\"detail-url\":_vm.metricsProxy,\"summary-url\":_vm.metricsProxy,\"graph-height\":\"825px\"}}):_vm._e()]}}:null],null,true)},[(!_vm.monitoringStatus.installed || !_vm.metricsService)?_c('MetricsBanner',{attrs:{\"metrics-service\":_vm.metricsService,\"metrics-type\":_vm.metricsType,\"monitoring-route\":_vm.monitoringRoute,\"reload-required\":_vm.reloadRequired},on:{\"add\":_vm.addDashboard}}):_vm._e()],1),_c('Tab',{attrs:{\"name\":\"policy-tracing\",\"label\":\"Tracing\",\"weight\":97}},[[_c('TraceTable',{attrs:{\"rows\":_vm.filteredValidations},scopedSlots:_vm._u([{key:\"traceBanner\",fn:function(){return [(_vm.emptyTraces)?_c('TraceBanner',{attrs:{\"jaeger-service\":_vm.jaegerService,\"open-telemetry-service\":_vm.openTelemetryService}}):_vm._e()]},proxy:true}])})]],2)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('Banner',{attrs:{\"color\":\"warning\"}},[(!_vm.openTelemetryService)?_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.t('kubewarden.tracing.noOpenTelemetry', {}, true)),expression:\"t('kubewarden.tracing.noOpenTelemetry', {}, true)\"}]}):(!_vm.jaegerService)?_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.t('kubewarden.tracing.noJaeger', {}, true)),expression:\"t('kubewarden.tracing.noJaeger', {}, true)\"}]}):_c('span',[_vm._v(_vm._s(_vm.t('kubewarden.tracing.noRelatedTraces')))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TraceBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TraceBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TraceBanner.vue?vue&type=template&id=18b236aa&\"\nimport script from \"./TraceBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./TraceBanner.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./policies.kubewarden.io.policyserver.vue?vue&type=template&id=e7caa404&scoped=true&\"\nimport script from \"./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"\nexport * from \"./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"\nimport style0 from \"./policies.kubewarden.io.policyserver.vue?vue&type=style&index=0&id=e7caa404&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e7caa404\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.monitoringStatus.installed)?_c('div',[_c('Banner',{attrs:{\"color\":\"warning\"}},[_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.t('kubewarden.monitoring.notInstalled', {}, true)),expression:\"t('kubewarden.monitoring.notInstalled', {}, true)\"}]}),_c('button',{staticClass:\"btn role-primary ml-10\",on:{\"click\":function($event){$event.preventDefault();return _vm.chartRoute.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.policyServer.noDefaultsInstalled.button\"))+\" \")])])],1):(!_vm.metricsDashboard)?_c('div',[_c('Banner',{attrs:{\"color\":\"warning\"}},[(!_vm.reloadRequired)?[_c('p',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.metrics.notInstalled' ))+\" \")]),_c('AsyncButton',{attrs:{\"mode\":\"grafanaDashboard\"},on:{\"click\":function($event){return _vm.$emit('add', $event)}}})]:[_c('i',{staticClass:\"icon icon-checkmark mr-10\"}),_c('span',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.metrics.reload' ))+\" \")]),_c('button',{staticClass:\"ml-10 btn btn-sm role-primary\",on:{\"click\":function($event){return _vm.reload()}}},[_vm._v(\" \"+_vm._s(_vm.t('generic.reload'))+\" \")])]],2)],1):(!_vm.metricsService)?_c('div',[_c('Banner',{attrs:{\"color\":\"error\"}},[_c('i',{staticClass:\"icon icon-checkmark mr-10\"}),_c('span',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.metrics.noService' ))+\" \")])])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./MetricsBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MetricsBanner.vue?vue&type=template&id=02093e00&\"\nimport script from \"./MetricsBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./MetricsBanner.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('PolicyDetail',{attrs:{\"value\":_vm.value,\"mode\":_vm.mode,\"resource\":_vm.resource}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.admissionpolicy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.admissionpolicy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./policies.kubewarden.io.admissionpolicy.vue?vue&type=template&id=7e8e6b54&\"\nimport script from \"./policies.kubewarden.io.admissionpolicy.vue?vue&type=script&lang=js&\"\nexport * from \"./policies.kubewarden.io.admissionpolicy.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading'):_c('div',[_c('div',{staticClass:\"mb-20\"},[_c('h3',[_vm._v(_vm._s(_vm.t('namespace.resources')))])]),_c('ResourceTabs',{attrs:{\"mode\":_vm.mode,\"need-related\":_vm.hasRelationships},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[(_vm.hasRules)?_c('Tab',{attrs:{\"name\":\"policy-rules\",\"label\":\"Rules\",\"weight\":99}},[_c('RulesTable',{attrs:{\"rows\":_vm.rulesRows}})],1):_vm._e(),_c('Tab',{attrs:{\"name\":\"policy-tracing\",\"label\":\"Tracing\",\"weight\":98}},[_c('TraceTable',{attrs:{\"rows\":_vm.tracesRows},scopedSlots:_vm._u([{key:\"traceBanner\",fn:function(){return [(_vm.emptyTraces)?_c('Banner',{attrs:{\"color\":\"warning\"}},[(!_vm.jaegerService)?_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.t('kubewarden.tracing.noJaeger', {}, true)),expression:\"t('kubewarden.tracing.noJaeger', {}, true)\"}]}):_c('span',[_vm._v(_vm._s(_vm.t('kubewarden.tracing.noTraces')))])]):_vm._e()]},proxy:true}])})],1),_c('Tab',{attrs:{\"name\":\"policy-metrics\",\"label\":\"Metrics\",\"weight\":97},scopedSlots:_vm._u([(_vm.metricsService)?{key:\"default\",fn:function(props){return [(props.active)?_c('DashboardMetrics',{attrs:{\"detail-url\":_vm.metricsProxy,\"summary-url\":_vm.metricsProxy,\"vars\":_vm.dashboardVars,\"graph-height\":\"825px\"}}):_vm._e()]}}:null],null,true)},[(!_vm.monitoringStatus.installed || !_vm.metricsService)?_c('MetricsBanner',{attrs:{\"metrics-service\":_vm.metricsService,\"metrics-type\":_vm.metricsType,\"reload-required\":_vm.reloadRequired},on:{\"add\":_vm.addDashboard}}):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.rows.length > 0)?_c('SortableTable',{attrs:{\"rows\":_vm.rows,\"headers\":_vm.RULE_HEADERS,\"table-actions\":false,\"row-actions\":false,\"key-field\":\"traceID\",\"default-sort-by\":\"startTime\"},scopedSlots:_vm._u([{key:\"col:apiGroup\",fn:function({row}){return [_c('td',[_c('span',[_vm._v(_vm._s(row.apiGroups || '-'))])])]}},{key:\"col:apiVersion\",fn:function({row}){return [_c('td',[_c('span',[_vm._v(_vm._s(row.apiVersions || '-'))])])]}},{key:\"col:operations\",fn:function({row}){return [_c('td',[_c('span',[_vm._v(_vm._s(_vm.joinColumn(row.operations)))])])]}},{key:\"col:resources\",fn:function({row}){return [_c('td',[_c('span',[_vm._v(_vm._s(_vm.joinColumn(row.resources)))])])]}}],null,false,1857136105)}):_c('div',[_c('Banner',{staticClass:\"type-banner mb-20 mt-0\",attrs:{\"color\":\"warning\",\"label\":_vm.t('kubewarden.policies.noRules')}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./RulesTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./RulesTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RulesTable.vue?vue&type=template&id=3cc1e80f&\"\nimport script from \"./RulesTable.vue?vue&type=script&lang=js&\"\nexport * from \"./RulesTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PolicyDetail.vue?vue&type=template&id=cc5d119c&\"\nimport script from \"./PolicyDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./PolicyDetail.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".sub-row[data-v-490704fe]{background-color:var(--body-bg);border-bottom:1px solid var(--sortable-table-top-divider);padding-left:1rem;padding-right:1rem}.details[data-v-490704fe]{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1em}.details .col[data-v-490704fe]{display:flex;flex-direction:column}.details .col section[data-v-490704fe]{margin-bottom:1.5rem}.details .col .title[data-v-490704fe]{color:var(--muted);margin-bottom:.5rem}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('PolicyDetail',{attrs:{\"value\":_vm.value,\"mode\":_vm.mode,\"resource\":_vm.resource}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=template&id=58c4f9b2&\"\nimport script from \"./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"\nexport * from \"./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TraceTable.vue?vue&type=style&index=0&id=490704fe&prod&lang=scss&scoped=true&\"","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateModeDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateModeDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateModeDialog.vue?vue&type=template&id=36b40387&scoped=true&\"\nimport script from \"./UpdateModeDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateModeDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UpdateModeDialog.vue?vue&type=style&index=0&id=36b40387&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36b40387\",\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyGrid.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyGrid.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PolicyGrid.vue?vue&type=template&id=497fcb8a&scoped=true&\"\nimport script from \"./PolicyGrid.vue?vue&type=script&lang=js&\"\nexport * from \"./PolicyGrid.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PolicyGrid.vue?vue&type=style&index=0&id=497fcb8a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"497fcb8a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Create.vue?vue&type=template&id=35ea5ede&scoped=true&\"\nimport script from \"./Create.vue?vue&type=script&lang=js&\"\nexport * from \"./Create.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Create.vue?vue&type=style&index=0&id=35ea5ede&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35ea5ede\",\n null\n \n)\n\nexport default component.exports","import isEmpty from 'lodash/isEmpty';\nimport isObject from 'lodash/isObject';\n\nexport function removeEmptyAttrs(obj: any) {\n Object.keys(obj).forEach((key: any) => {\n const value = obj[key];\n\n if ( !value || value === '' || (Array.isArray(value) && !value.length) || (isObject(value) && isEmpty(value)) ) {\n delete obj[key];\n } else if ( isObject(value) ) {\n removeEmptyAttrs(value);\n }\n });\n\n return obj;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isCreate)?_c('Create',{attrs:{\"value\":_vm.value,\"mode\":_vm.mode}}):_c('CruResource',{attrs:{\"resource\":_vm.value,\"mode\":_vm.realMode,\"errors\":_vm.errors},on:{\"finish\":_vm.finish}},[_c('Values',{attrs:{\"value\":_vm.value,\"mode\":_vm.mode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading',{attrs:{\"mode\":\"relative\"}}):_c('div',{staticClass:\"scroll__container\"},[_c('div',{staticClass:\"scroll__content\"},[_c('Tabbed',{ref:\"tabs\",staticClass:\"step__values__content\",attrs:{\"side-tabs\":true},on:{\"changed\":function($event){return _vm.tabChanged($event)}}},[_c(_vm.valuesComponent,{tag:\"component\",attrs:{\"resource\":_vm.value,\"mode\":_vm.mode},model:{value:(_vm.componentValue),callback:function ($$v) {_vm.componentValue=$$v},expression:\"componentValue\"}})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Values.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Values.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Values.vue?vue&type=template&id=d203183e&scoped=true&\"\nimport script from \"./Values.vue?vue&type=script&lang=js&\"\nexport * from \"./Values.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Values.vue?vue&type=style&index=0&id=d203183e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d203183e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('CruResource',{attrs:{\"resource\":_vm.value,\"mode\":_vm.realMode,\"done-route\":_vm.doneRoute,\"errors\":_vm.errors,\"generate-yaml\":_vm.generateYaml},on:{\"finish\":_vm.finish,\"error\":e => _vm.errors = e}},[_c('Values',{attrs:{\"value\":_vm.value,\"chart-values\":_vm.chartValues,\"mode\":_vm.mode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Create.vue?vue&type=template&id=e65b157e&\"\nimport script from \"./Create.vue?vue&type=script&lang=js&\"\nexport * from \"./Create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./policies.kubewarden.io.policyserver.vue?vue&type=template&id=fd83fbd8&\"\nimport script from \"./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"\nexport * from \"./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyGrid.vue?vue&type=style&index=0&id=497fcb8a&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"[data-v-d203183e] .step-container{height:auto}.step__basic[data-v-d203183e]{display:flex;flex-direction:column;flex:1;overflow-x:hidden}.step__basic .spacer[data-v-d203183e]{line-height:2}.step__values__controls[data-v-d203183e]{display:flex;margin-bottom:15px}.step__values__controls[data-v-d203183e]>:not(:last-of-type){margin-right:10px}.step__values__content[data-v-d203183e],.step__values__controls--spacer[data-v-d203183e]{flex:1}.step__values__content[data-v-d203183e] .tab-container{overflow:auto}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading',{attrs:{\"mode\":\"relative\"}}):_c('div',[(_vm.isCreate)?_c('div',{staticClass:\"step__values__controls\"},[_c('ButtonGroup',{attrs:{\"options\":_vm.YAML_OPTIONS,\"inactive-class\":\"bg-disabled btn-sm\",\"active-class\":\"bg-primary btn-sm\"},model:{value:(_vm.yamlOption),callback:function ($$v) {_vm.yamlOption=$$v},expression:\"yamlOption\"}})],1):_vm._e(),_c('div',{staticClass:\"scroll__container\"},[_c('div',{staticClass:\"scroll__content\"},[(_vm.showForm)?[_c('Tabbed',{ref:\"tabs\",staticClass:\"step__values__content\",attrs:{\"side-tabs\":true},on:{\"changed\":function($event){return _vm.tabChanged($event)}}},[(_vm.valuesComponent)?[_c(_vm.valuesComponent,{tag:\"component\",attrs:{\"mode\":_vm.mode,\"custom-policy\":_vm.customPolicy},model:{value:(_vm.chartValues),callback:function ($$v) {_vm.chartValues=$$v},expression:\"chartValues\"}})]:_vm._e()],2)]:(_vm.isCreate && !_vm.showForm)?[_c('YamlEditor',{ref:\"yaml\",staticClass:\"step__values__content\",attrs:{\"scrolling\":true,\"initial-yaml-values\":_vm.originalYamlValues,\"editor-mode\":_vm.editorMode,\"hide-preview-buttons\":true},on:{\"onChanges\":_vm.updateYamlValues},model:{value:(_vm.currentYamlValues),callback:function ($$v) {_vm.currentYamlValues=$$v},expression:\"currentYamlValues\"}})]:_vm._e(),_c('ResourceCancelModal',{ref:\"cancelModal\",attrs:{\"is-cancel-modal\":false,\"is-form\":true},on:{\"cancel-cancel\":function($event){_vm.preYamlOption = _vm.yamlOption},\"confirm-cancel\":function($event){_vm.yamlOption = _vm.preYamlOption}}})],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Values.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Values.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Values.vue?vue&type=template&id=7ef7a36c&scoped=true&\"\nimport script from \"./Values.vue?vue&type=script&lang=js&\"\nexport * from \"./Values.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Values.vue?vue&type=style&index=0&id=7ef7a36c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ef7a36c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isCreate)?_c('Create',{attrs:{\"value\":_vm.value,\"mode\":_vm.mode}}):_c('CruResource',{attrs:{\"resource\":_vm.value,\"mode\":_vm.realMode},on:{\"finish\":_vm.finish}},[_c('Config',{attrs:{\"value\":_vm.value,\"mode\":_vm.realMode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=template&id=9cfde542&\"\nimport script from \"./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"\nexport * from \"./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"[data-v-35ea5ede] .step-container{height:auto}[data-v-35ea5ede] .header .step-sequence{display:block}[data-v-35ea5ede] .header .step-sequence .steps .divider{top:22px}[data-v-35ea5ede] .controls-row{position:relative;width:auto}[data-v-35ea5ede] .controls-row .controls-steps{display:flex}[data-v-35ea5ede] .custom{min-height:110px}[data-v-35ea5ede] .subtype{height:110px;margin:10px;position:relative;border-radius:calc(var(--border-radius)*1.5);border:1px solid var(--border);text-decoration:none!important;color:var(--body-text)!important}[data-v-35ea5ede] .subtype:hover:not(.disabled){box-shadow:0 0 30px var(--shadow);transition:box-shadow .1s ease-in-out;cursor:pointer;text-decoration:none!important}[data-v-35ea5ede] .subtype__metadata{padding:10px}[data-v-35ea5ede] .subtype__metadata__description,[data-v-35ea5ede] .subtype__metadata__label{padding-right:20px}[data-v-35ea5ede] .subtype__badge{position:absolute;right:0;top:0;padding:4px 5px;border-bottom-left-radius:var(--border-radius)}[data-v-35ea5ede] .subtype__badge label{font-size:12px;line-height:12px;text-align:center;display:block;white-space:no-wrap;text-overflow:ellipsis;color:var(--app-rancher-accent-text);margin:0}[data-v-35ea5ede] .subtype__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;line-height:normal}[data-v-35ea5ede] .subtype__description{margin-right:10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;text-overflow:ellipsis;color:var(--input-label)}.wizard[data-v-35ea5ede]{position:relative;height:100%}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".step__values__controls[data-v-7ef7a36c]{display:flex;margin-bottom:15px}.step__values__controls[data-v-7ef7a36c]>:not(:last-of-type){margin-right:10px}.step__values__content[data-v-7ef7a36c],.step__values__controls--spacer[data-v-7ef7a36c]{flex:1}.step__values__content[data-v-7ef7a36c] .tab-container{overflow:auto}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".step__policies[data-v-497fcb8a]{display:flex;flex-direction:column;flex:1;overflow-x:hidden}.step__policies .spacer[data-v-497fcb8a]{line-height:2}.filter[data-v-497fcb8a]{display:flex;flex-direction:row;justify-content:flex-end;align-self:flex-end}.filter>*[data-v-497fcb8a]{margin:10px;max-width:33%}.filter[data-v-497fcb8a]>:first-child{margin-left:0}.filter[data-v-497fcb8a]>:last-child{margin-right:0}.filter__category[data-v-497fcb8a]{min-width:200px;height:unset}@media only screen and (min-width:480px){.filter[data-v-497fcb8a]{width:100%}}@media only screen and (min-width:1281px){.filter[data-v-497fcb8a]{width:75%}}.grid[data-v-497fcb8a]{display:flex;justify-content:flex-start;flex-wrap:wrap;margin:0 -10px}.grid .custom[data-v-497fcb8a]{height:110px}.grid .subtype[data-v-497fcb8a]{height:auto}@media only screen and (min-width:480px){.grid .subtype[data-v-497fcb8a]{width:100%}}@media only screen and (min-width:768px){.grid .subtype[data-v-497fcb8a]{width:calc(50% - 20px)}}@media only screen and (min-width:992px){.grid .subtype[data-v-497fcb8a]{width:calc(33.33333% - 20px)}}@media only screen and (min-width:1281px){.grid .subtype[data-v-497fcb8a]{width:calc(25% - 20px)}}@media only screen and (min-width:1600px){.grid .subtype__label[data-v-497fcb8a]{max-width:100%}.grid .subtype h4[data-v-497fcb8a]{white-space:nowrap}}.grid .disabled[data-v-497fcb8a]{opacity:.5;cursor:not-allowed}.subtype__label[data-v-497fcb8a]{max-width:205px}.subtype__label h4[data-v-497fcb8a]{white-space:normal}.subtype__badge[data-v-497fcb8a]{background-color:var(--darker);padding:4px 5px}.subtype__aware[data-v-497fcb8a],.subtype__left[data-v-497fcb8a],.subtype__mutation[data-v-497fcb8a]{position:absolute;bottom:5px}.subtype__aware[data-v-497fcb8a],.subtype__mutation[data-v-497fcb8a]{border:1px solid var(--border);padding:0 5px}.subtype__left[data-v-497fcb8a]{display:flex;flex-direction:row;align-items:flex-start}.subtype__mutation[data-v-497fcb8a]{right:10px}.subtype__aware[data-v-497fcb8a]{right:80px}.subtype__icon[data-v-497fcb8a]{width:20px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Values.vue?vue&type=style&index=0&id=7ef7a36c&prod&lang=scss&scoped=true&\""],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.formatters.js b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.formatters.js new file mode 100644 index 00000000..f95f6c37 --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.formatters.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]||[]).push([[3],{"00ca":function(e,t,r){var a=r("388f");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);var o=r("0ed3").default;o("660351f2",a,!0,{sourceMap:!1,shadowMode:!1})},"0448":function(e,t,r){var a=r("5eaa");t=a(!1),t.push([e.i,".progress[data-v-abc33690]{display:block;border-radius:90px;background-color:var(--progress-bg);height:10px;width:100px}.progress .piece[data-v-abc33690]{display:inline-block;height:10px;border-radius:0;border-right:1px solid var(--progress-divider);vertical-align:top}.progress .piece[data-v-abc33690]:first-child{border-top-left-radius:90px;border-bottom-left-radius:90px}.progress .piece[data-v-abc33690]:last-child{border-top-right-radius:90px;border-bottom-right-radius:90px;border-right:0}.piece.bg-success[data-v-abc33690]:only-child{opacity:.5}",""]),e.exports=t},"0cf2":function(e,t,r){"use strict";r.r(t);var a=function(){var e=this,t=e._self._c;return e.show?t("v-popover",{staticClass:"text-center hand",attrs:{placement:"top","open-group":e.row.id,trigger:e.show?"click":"manual",offset:"1"},scopedSlots:e._u([{key:"popover",fn:function(){return[e.show?t("table",{staticClass:"fixed"},[t("tbody",e._l(e.stateParts,(function(r){return t("tr",{key:r.key},[t("td",{staticClass:"text-left pr-20",class:{[r.textColor]:!0}},[e._v(" "+e._s(r.label)+" ")]),t("td",{staticClass:"text-right"},[e._v(" "+e._s(r.value)+" ")])])})),0)]):e._e()]},proxy:!0}],null,!1,3622895006)},[t("ProgressBarMulti",{staticClass:"mb-5",attrs:{values:e.colorParts}}),e.linkTo?t("n-link",{attrs:{to:e.linkTo}},[e._v(" "+e._s(e.displayLabel)+" ")]):t("span",[e._v(e._s(e.displayLabel))])],1):t("div",{staticClass:"text-center text-muted"},[e._v(" — ")])},o=[],s=r("1d19"),l=function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"trim-whitespace",rawName:"v-trim-whitespace"}],class:{progress:!0,multi:e.pieces.length>1}},e._l(e.pieces,(function(e,r){return t("div",{directives:[{name:"trim-whitespace",rawName:"v-trim-whitespace"}],key:r,class:{piece:!0,[e.color]:!0},style:e.style})})),0)},i=[],n=r("e24b"),c={props:{values:{type:Array,required:!0},colorKey:{type:String,default:"color"},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},min:{type:Number,default:0},max:{type:Number,default:null},minPercent:{type:Number,default:5},showZeros:{type:Boolean,default:!1}},computed:{pieces(){const e=[];for(const s of this.values){const t=Object(n["g"])(s,this.colorKey),r=Object(n["g"])(s,this.labelKey),a=Object(n["g"])(s,this.valueKey);(0!==a||this.showZeros)&&e.push({color:t,label:r,value:a})}const t=this.minPercent||0,r=this.min||0;let a=this.max,o=0;this.max||(a=100,e.length&&(a=e.map(e=>e.value).reduce((e,t)=>e+t)));for(const s of e){const e=Math.max(t,u(s.value,r,a));s.percent=e,o+=e}o>100&&(Object(s["a"])(e,"percent",!0)[0].percent-=o-100);for(const s of e)s.style=`width: ${s.percent}%`;return e.filter(e=>e.percent)}}};function u(e,t,r){e=Math.max(t,Math.min(r,e));let a=e/(r-t)*100;return a=Math.floor(100*a)/100,a}var d=c,p=(r("bd92"),r("d802")),h=Object(p["a"])(d,l,i,!1,null,"abc33690",null),f=h.exports,v=r("d892"),b={components:{ProgressBarMulti:f},props:{row:{type:Object,required:!0},label:{type:String,default:null},linkTo:{type:Object,default:null}},async fetch(){this.relatedPolicies=await this.row.allRelatedPolicies()},data(){return{relatedPolicies:[]}},computed:{show(){return this.stateParts.length>0},stateParts(){const e={};for(const r of this.relatedPolicies){var t;const a=null===(t=r.status)||void 0===t?void 0:t.policyStatus,o=Object(v["g"])(a),s=`${o}/${a}`;e[s]?e[s].value+=1:e[s]={key:s,label:a,color:o.replace(/text-/,"bg-"),textColor:o,value:1,sort:Object(v["k"])(o,a)}}return Object(s["a"])(Object.values(e),"sort:desc")},colorParts(){const e={};for(const t of this.stateParts)e[t.color]?e[t.color].value+=1:e[t.color]={color:t.color,value:t.value,sort:t.sort};return Object(s["a"])(Object.values(e),"sort:desc")},displayLabel(){const e=this.relatedPolicies.length||0;return this.label?`${this.label}, ${e}`:""+e}}},y=b,m=(r("f98b"),Object(p["a"])(y,a,o,!1,null,null,null));t["default"]=m.exports},2164:function(e,t,r){"use strict";r.r(t);var a=function(){var e=this,t=e._self._c;return t("div",e._l(e.resourceLabels,(function(r,a){return t("span",{key:a},[e._v(" "+e._s(r)+" ")])})),0)},o=[],s={props:{col:{type:Object,default:()=>{}},value:{type:Array,default:()=>[]}},fetch(){if(this.value){const e=this.value.flatMap(e=>e[this.col.name]);e&&(this.resourceToShow=[...new Set(e)])}},data(){return{resourceToShow:null}},computed:{resourceLabels(){if(this.resourceToShow.length>1){const e=[],t=this.resourceToShow[this.resourceToShow.length-1];return this.resourceToShow.forEach(r=>{r===t?e.push(r):e.push(r+", ")}),e}return this.resourceToShow}}},l=s,i=r("d802"),n=Object(i["a"])(l,a,o,!1,null,null,null);t["default"]=n.exports},"301c":function(e,t,r){var a=r("0448");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);var o=r("0ed3").default;o("455a1fa6",a,!0,{sourceMap:!1,shadowMode:!1})},"312b":function(e,t,r){var a=r("5eaa");t=a(!1),t.push([e.i,".deployment[data-v-2a8202a5]{display:flex;align-items:center}.conditions-alert-icon[data-v-2a8202a5]{color:var(--error);margin-left:4px}[data-v-2a8202a5] .labeled-tooltip,[data-v-2a8202a5] .status-icon{position:relative;display:inline;left:auto;right:auto;top:2px;bottom:auto}",""]),e.exports=t},"388f":function(e,t,r){var a=r("5eaa");t=a(!1),t.push([e.i,".col-scale{position:relative}.col-scale .trigger{width:100%}.scale{margin:0;padding:0;line-height:normal}",""]),e.exports=t},"3e3e":function(e,t,r){"use strict";r("e906")},4509:function(e,t,r){"use strict";r.r(t);var a=function(){var e=this,t=e._self._c;return t("div",[e.value?t("BadgeState",{attrs:{color:e.modeColor,label:e.capitalizedMode}}):e._e()],1)},o=[],s=r("f17a"),l=r("d892"),i={components:{BadgeState:s["a"]},props:{value:{type:String,default:""}},data(){return{MODE_MAP:l["c"]}},computed:{capitalizedMode(){var e,t;return(null===(e=this.value)||void 0===e?void 0:e.charAt(0).toUpperCase())+(null===(t=this.value)||void 0===t?void 0:t.slice(1))},modeColor(){return this.MODE_MAP[this.value]}}},n=i,c=r("d802"),u=Object(c["a"])(n,a,o,!1,null,null,null);t["default"]=u.exports},"58f7":function(e,t,r){"use strict";r.r(t);var a=function(){var e=this,t=e._self._c;return t("span",{staticClass:"deployment"},[e.to?t("n-link",{attrs:{to:e.to}},[e._v(" "+e._s(e.value)+" ")]):t("span",[e._v(e._s(e.value))]),e.hasErrors?t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:{content:`
${e.formattedConditions}
`,html:!0},expression:"{ content: `
${ formattedConditions }
`, html: true }"}],staticClass:"conditions-alert-icon icon-error icon-lg"}):e._e()],1)},o=[],s=r("330a"),l=r.n(s),i=r("e24b"),n={props:{reference:{type:String,default:null},row:{type:Object,required:!0},value:{type:String,default:""}},async fetch(){this.deployment=await this.row.matchingDeployment()},data(){return{deployment:null}},computed:{hasErrors(){var e;const t=null===(e=this.flattenedConditions)||void 0===e?void 0:e.filter(e=>e.error);return!l()(t)},flattenedConditions(){var e;return null===(e=this.deployment)||void 0===e?void 0:e.flatMap(e=>e.status.conditions)},formattedConditions(){if(this.hasErrors){const e=this.flattenedConditions.filter(e=>e.error),t=[];return null===e||void 0===e||e.forEach(e=>{t.push(`

${[e.type]}: ${e.message}

`)}),t.toString().replaceAll(",","")}return!1},to(){var e;return this.row&&this.reference?Object(i["g"])(this.row,this.reference):null===(e=this.row)||void 0===e?void 0:e.detailLocation}}},c=n,u=(r("3e3e"),r("d802")),d=Object(u["a"])(c,a,o,!1,null,"2a8202a5",null);t["default"]=d.exports},"85d3":function(e,t,r){"use strict";r.r(t);var a=function(){var e=this,t=e._self._c;return t("div",[e.stateDisplay?t("BadgeState",{attrs:{color:e.stateBackground,label:e.capitalizeMessage(e.stateDisplay)}}):e._e()],1)},o=[],s=r("330a"),l=r.n(s),i=r("9ce4"),n=r("907c"),c=r("f17a"),u=r("d892"),d={components:{BadgeState:c["a"]},props:{value:{type:String,required:!0}},async fetch(){await this.$store.dispatch(this.currentProduct.inStore+"/findAll",{type:n["F"].DEPLOYMENT})},computed:{...Object(i["a"])(["currentProduct"]),allDeployments(){return this.$store.getters[this.currentProduct.inStore+"/all"](n["F"].DEPLOYMENT)},deployment(){return l()(this.allDeployments)?null:this.allDeployments.find(e=>e.spec.template.metadata.labels["kubewarden/policy-server"]===this.value)},stateBackground(){return"bg-"+Object(u["f"])(this.stateDisplay)},stateDisplay(){var e,t;return l()(this.deployment)?"pending":null===(e=this.deployment.metadata)||void 0===e||null===(t=e.state)||void 0===t?void 0:t.name}},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))}}},p=d,h=r("d802"),f=Object(h["a"])(p,a,o,!1,null,null,null);t["default"]=f.exports},bd92:function(e,t,r){"use strict";r("301c")},e906:function(e,t,r){var a=r("312b");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);var o=r("0ed3").default;o("251a9499",a,!0,{sourceMap:!1,shadowMode:!1})},f98b:function(e,t,r){"use strict";r("00ca")}}]); +//# sourceMappingURL=kubewarden-1.1.0.umd.min.formatters.js.map \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.formatters.js.map b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.formatters.js.map new file mode 100644 index 00000000..80b3c40c --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.formatters.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://kubewarden-1.1.0/./formatters/PolicySummaryGraph.vue?945c","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/ProgressBarMulti.vue?1d4e","webpack://kubewarden-1.1.0/./formatters/PolicySummaryGraph.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/ProgressBarMulti.vue","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/ProgressBarMulti.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/ProgressBarMulti.vue?fdc6","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/ProgressBarMulti.vue?0ec9","webpack://kubewarden-1.1.0/formatters/PolicySummaryGraph.vue","webpack://kubewarden-1.1.0/./formatters/PolicySummaryGraph.vue?a7e5","webpack://kubewarden-1.1.0/./formatters/PolicySummaryGraph.vue?a038","webpack://kubewarden-1.1.0/./formatters/PolicyResources.vue","webpack://kubewarden-1.1.0/formatters/PolicyResources.vue","webpack://kubewarden-1.1.0/./formatters/PolicyResources.vue?ec3e","webpack://kubewarden-1.1.0/./formatters/PolicyResources.vue?7f61","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/ProgressBarMulti.vue?ab4d","webpack://kubewarden-1.1.0/./formatters/PolicyServerDeployment.vue?3bbc","webpack://kubewarden-1.1.0/./formatters/PolicySummaryGraph.vue?b1b4","webpack://kubewarden-1.1.0/./formatters/PolicyServerDeployment.vue?5bf2","webpack://kubewarden-1.1.0/./formatters/PolicyMode.vue","webpack://kubewarden-1.1.0/formatters/PolicyMode.vue","webpack://kubewarden-1.1.0/./formatters/PolicyMode.vue?18c9","webpack://kubewarden-1.1.0/./formatters/PolicyMode.vue?afef","webpack://kubewarden-1.1.0/./formatters/PolicyServerDeployment.vue","webpack://kubewarden-1.1.0/formatters/PolicyServerDeployment.vue","webpack://kubewarden-1.1.0/./formatters/PolicyServerDeployment.vue?e2e6","webpack://kubewarden-1.1.0/./formatters/PolicyServerDeployment.vue?6895","webpack://kubewarden-1.1.0/./formatters/PolicyServerStatus.vue","webpack://kubewarden-1.1.0/formatters/PolicyServerStatus.vue","webpack://kubewarden-1.1.0/./formatters/PolicyServerStatus.vue?5fd2","webpack://kubewarden-1.1.0/./formatters/PolicyServerStatus.vue?f745","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/ProgressBarMulti.vue?546a","webpack://kubewarden-1.1.0/./formatters/PolicyServerDeployment.vue?99e8","webpack://kubewarden-1.1.0/./formatters/PolicySummaryGraph.vue?9a7c"],"names":["content","__esModule","default","module","i","locals","exports","add","___CSS_LOADER_API_IMPORT___","push","render","_vm","this","_c","_self","show","staticClass","attrs","row","id","scopedSlots","_u","key","fn","_l","stateParts","obj","class","textColor","_v","_s","label","value","_e","proxy","colorParts","linkTo","displayLabel","staticRenderFns","directives","name","rawName","progress","multi","pieces","length","piece","idx","color","style","props","values","type","Array","required","colorKey","String","labelKey","valueKey","min","Number","max","minPercent","showZeros","Boolean","computed","out","get","sum","map","x","reduce","a","b","percent","Math","toPercent","sortBy","filter","per","floor","component","components","ProgressBarMulti","Object","relatedPolicies","allRelatedPolicies","data","r","_r$status","state","status","policyStatus","colorForStatus","replace","sort","stateSort","p","count","resourceLabels","resource","col","fetch","resourceToShow","flatMap","Set","last","forEach","modeColor","capitalizedMode","BadgeState","MODE_MAP","_this$value","_this$value2","charAt","toUpperCase","slice","to","hasErrors","formattedConditions","html","expression","reference","deployment","matchingDeployment","_this$flattenedCondit","flattenedConditions","condition","error","isEmpty","_this$deployment","dep","conditions","errorConditions","formattedTooltip","c","message","toString","replaceAll","_this$row","detailLocation","stateDisplay","stateBackground","capitalizeMessage","$store","dispatch","currentProduct","inStore","WORKLOAD_TYPES","DEPLOYMENT","mapGetters","allDeployments","getters","find","d","spec","template","metadata","labels","colorForPolicyServerState","_this$deployment$meta","_this$deployment$meta2","methods","m"],"mappings":"oLAGA,IAAIA,EAAU,EAAQ,QACnBA,EAAQC,aAAYD,EAAUA,EAAQE,SACnB,kBAAZF,IAAsBA,EAAU,CAAC,CAACG,EAAOC,EAAIJ,EAAS,MAC7DA,EAAQK,SAAQF,EAAOG,QAAUN,EAAQK,QAE5C,IAAIE,EAAM,EAAQ,QAAkEL,QACvEK,EAAI,WAAYP,GAAS,EAAM,CAAC,WAAY,EAAM,YAAa,K,uBCR5E,IAAIQ,EAA8B,EAAQ,QAC1CF,EAAUE,GAA4B,GAEtCF,EAAQG,KAAK,CAACN,EAAOC,EAAI,2iBAA4iB,KAErkBD,EAAOG,QAAUA,G,2CCNjB,IAAII,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAQF,EAAII,KAAMF,EAAG,YAAY,CAACG,YAAY,mBAAmBC,MAAM,CAAC,UAAY,MAAM,aAAaN,EAAIO,IAAIC,GAAG,QAAUR,EAAII,KAAO,QAAU,SAAS,OAAS,KAAKK,YAAYT,EAAIU,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,MAAO,CAAEZ,EAAII,KAAMF,EAAG,QAAQ,CAACG,YAAY,SAAS,CAACH,EAAG,QAAQF,EAAIa,GAAIb,EAAIc,YAAY,SAASC,GAAK,OAAOb,EAAG,KAAK,CAACS,IAAII,EAAIJ,KAAK,CAACT,EAAG,KAAK,CAACG,YAAY,kBAAkBW,MAAM,CAAC,CAACD,EAAIE,YAAY,IAAO,CAACjB,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGJ,EAAIK,OAAO,OAAOlB,EAAG,KAAK,CAACG,YAAY,cAAc,CAACL,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGJ,EAAIM,OAAO,YAAW,KAAKrB,EAAIsB,OAAOC,OAAM,IAAO,MAAK,EAAM,aAAa,CAACrB,EAAG,mBAAmB,CAACG,YAAY,OAAOC,MAAM,CAAC,OAASN,EAAIwB,cAAexB,EAAIyB,OAAQvB,EAAG,SAAS,CAACI,MAAM,CAAC,GAAKN,EAAIyB,SAAS,CAACzB,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGnB,EAAI0B,cAAc,OAAOxB,EAAG,OAAO,CAACF,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAI0B,kBAAkB,GAAGxB,EAAG,MAAM,CAACG,YAAY,0BAA0B,CAACL,EAAIkB,GAAG,UAEv5BS,EAAkB,G,YCFlB5B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAC0B,WAAW,CAAC,CAACC,KAAK,kBAAkBC,QAAQ,sBAAsBd,MAAM,CAACe,UAAU,EAAMC,MAAOhC,EAAIiC,OAAOC,OAAS,IAAIlC,EAAIa,GAAIb,EAAIiC,QAAQ,SAASE,EAAMC,GAAK,OAAOlC,EAAG,MAAM,CAAC0B,WAAW,CAAC,CAACC,KAAK,kBAAkBC,QAAQ,sBAAsBnB,IAAIyB,EAAIpB,MAAM,CAAC,OAAS,EAAM,CAACmB,EAAME,QAAQ,GAAMC,MAAOH,EAAMG,WAAW,IAEvYX,EAAkB,G,YCEP,GACfY,MAAA,CACAC,OAAA,CACAC,KAAAC,MACAC,UAAA,GAGAC,SAAA,CACAH,KAAAI,OACAtD,QAAA,SAEAuD,SAAA,CACAL,KAAAI,OACAtD,QAAA,SAEAwD,SAAA,CACAN,KAAAI,OACAtD,QAAA,SAGAyD,IAAA,CACAP,KAAAQ,OACA1D,QAAA,GAEA2D,IAAA,CACAT,KAAAQ,OACA1D,QAAA,MAEA4D,WAAA,CACAV,KAAAQ,OACA1D,QAAA,GAEA6D,UAAA,CACAX,KAAAY,QACA9D,SAAA,IAIA+D,SAAA,CACArB,SACA,MAAAsB,EAAA,GAEA,UAAAxC,KAAA,KAAAyB,OAAA,CACA,MAAAH,EAAAmB,eAAAzC,EAAA,KAAA6B,UACAxB,EAAAoC,eAAAzC,EAAA,KAAA+B,UACAzB,EAAAmC,eAAAzC,EAAA,KAAAgC,WAEA,IAAA1B,GAAA,KAAA+B,YAIAG,EAAAzD,KAAA,CACAuC,QACAjB,QACAC,UAIA,MAAA8B,EAAA,KAAAA,YAAA,EACAH,EAAA,KAAAA,KAAA,EACA,IAAAE,EAAA,KAAAA,IACAO,EAAA,EAEA,KAAAP,MACAA,EAAA,IACAK,EAAArB,SACAgB,EAAAK,EAAAG,IAAAC,KAAAtC,OAAAuC,OAAA,CAAAC,EAAAC,IAAAD,EAAAC,KAIA,UAAA/C,KAAAwC,EAAA,CACA,MAAAQ,EAAAC,KAAAd,IAAAC,EAAAc,EAAAlD,EAAAM,MAAA2B,EAAAE,IAEAnC,EAAAgD,UACAN,GAAAM,EAIAN,EAAA,MACAS,eAAAX,EAAA,iBAAAQ,SAAAN,EAAA,KAGA,UAAA1C,KAAAwC,EACAxC,EAAAuB,MAAA,UAAAvB,EAAAgD,WAGA,OAAAR,EAAAY,OAAApD,KAAAgD,YAKA,SAAAE,EAAA5C,EAAA2B,EAAAE,GACA7B,EAAA2C,KAAAd,IAAAF,EAAAgB,KAAAhB,IAAAE,EAAA7B,IACA,IAAA+C,EAAA/C,GAAA6B,EAAAF,GAAA,IAIA,OAFAoB,EAAAJ,KAAAK,MAAA,IAAAD,GAAA,IAEAA,ECrGsU,Q,wBCQlUE,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,oBCZA,GACfC,WAAA,CAAAC,oBAEAjC,MAAA,CACAhC,IAAA,CACAkC,KAAAgC,OACA9B,UAAA,GAGAvB,MAAA,CACAqB,KAAAI,OACAtD,QAAA,MAGAkC,OAAA,CACAgB,KAAAgC,OACAlF,QAAA,OAIA,cACA,KAAAmF,sBAAA,KAAAnE,IAAAoE,sBAGAC,OACA,OAAAF,gBAAA,KAGApB,SAAA,CACAlD,OACA,YAAAU,WAAAoB,OAAA,GAGApB,aACA,MAAAyC,EAAA,GAEA,UAAAsB,KAAA,KAAAH,gBAAA,KAAAI,EACA,MAAAC,EAAA,QAAAD,EAAAD,EAAAG,cAAA,IAAAF,OAAA,EAAAA,EAAAG,aACAhE,EAAAiE,eAAAH,GACApE,EAAA,GAAAM,KAAA8D,IAEAxB,EAAA5C,GACA4C,EAAA5C,GAAAU,OAAA,EAEAkC,EAAA5C,GAAA,CACAA,MACAS,MAAA2D,EACA1C,MAAApB,EAAAkE,QAAA,eACAlE,YACAI,MAAA,EACA+D,KAAAC,eAAApE,EAAA8D,IAKA,OAAAb,eAAAO,OAAAjC,OAAAe,GAAA,cAGA/B,aACA,MAAA+B,EAAA,GAEA,UAAA+B,KAAA,KAAAxE,WACAyC,EAAA+B,EAAAjD,OACAkB,EAAA+B,EAAAjD,OAAAhB,OAAA,EAEAkC,EAAA+B,EAAAjD,OAAA,CACAA,MAAAiD,EAAAjD,MACAhB,MAAAiE,EAAAjE,MACA+D,KAAAE,EAAAF,MAKA,OAAAlB,eAAAO,OAAAjC,OAAAe,GAAA,cAGA7B,eACA,MAAA6D,EAAA,KAAAb,gBAAAxC,QAAA,EAEA,YAAAd,MACA,QAAAA,UAAAmE,IAGA,GAAAA,KC1FyY,ICQrY,G,UAAY,eACd,EACAxF,EACA4B,GACA,EACA,KACA,KACA,OAIa,e,kDCnBf,IAAI5B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAMF,EAAIa,GAAIb,EAAIwF,gBAAgB,SAASC,EAAShG,GAAG,OAAOS,EAAG,OAAO,CAACS,IAAIlB,GAAG,CAACO,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGsE,GAAU,UAAS,IAExL9D,EAAkB,GCDP,GACfY,MAAA,CACAmD,IAAA,CACAjD,KAAAgC,OACAlF,gBAEA8B,MAAA,CACAoB,KAAAC,MACAnD,YACA,KAKAoG,QACA,QAAAtE,MAAA,CACA,MAAAuE,EAAA,KAAAvE,MAAAwE,QAAAhB,KAAA,KAAAa,IAAA7D,OAEA+D,IACA,KAAAA,eAAA,QAAAE,IAAAF,OAKAhB,OACA,OAAAgB,eAAA,OAGAtC,SAAA,CACAkC,iBACA,QAAAI,eAAA1D,OAAA,GACA,MAAAqB,EAAA,GACAwC,EAAA,KAAAH,eAAA,KAAAA,eAAA1D,OAAA,GAUA,OARA,KAAA0D,eAAAI,QAAAP,IACAA,IAAAM,EACAxC,EAAAzD,KAAA2F,GAEAlC,EAAAzD,KAAA2F,EAAA,QAIAlC,EAGA,YAAAqC,kBC9CsY,I,YCOlYtB,EAAY,eACd,EACAvE,EACA4B,GACA,EACA,KACA,KACA,MAIa,aAAA2C,E,gCCff,IAAIjF,EAAU,EAAQ,QACnBA,EAAQC,aAAYD,EAAUA,EAAQE,SACnB,kBAAZF,IAAsBA,EAAU,CAAC,CAACG,EAAOC,EAAIJ,EAAS,MAC7DA,EAAQK,SAAQF,EAAOG,QAAUN,EAAQK,QAE5C,IAAIE,EAAM,EAAQ,QAAqDL,QAC1DK,EAAI,WAAYP,GAAS,EAAM,CAAC,WAAY,EAAM,YAAa,K,uBCR5E,IAAIQ,EAA8B,EAAQ,QAC1CF,EAAUE,GAA4B,GAEtCF,EAAQG,KAAK,CAACN,EAAOC,EAAI,uRAAwR,KAEjTD,EAAOG,QAAUA,G,uBCLjB,IAAIE,EAA8B,EAAQ,QAC1CF,EAAUE,GAA4B,GAEtCF,EAAQG,KAAK,CAACN,EAAOC,EAAI,4GAA6G,KAEtID,EAAOG,QAAUA,G,oCCNjB,W,yCCAA,IAAII,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAEF,EAAIqB,MAAOnB,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQN,EAAIiG,UAAU,MAAQjG,EAAIkG,mBAAmBlG,EAAIsB,MAAM,IAE5KK,EAAkB,G,wBCGP,GACf4C,WAAA,CAAA4B,mBAEA5D,MAAA,CACAlB,MAAA,CACAoB,KAAAI,OACAtD,QAAA,KAIAqF,OACA,OAAAwB,kBAGA9C,SAAA,CACA4C,kBAAA,IAAAG,EAAAC,EACA,eAAAD,EAAA,KAAAhF,aAAA,IAAAgF,OAAA,EAAAA,EAAAE,OAAA,GAAAC,gBAAA,QAAAF,EAAA,KAAAjF,aAAA,IAAAiF,OAAA,EAAAA,EAAAG,MAAA,KAGAR,YACA,YAAAG,SAAA,KAAA/E,UCzBiY,I,YCO7XiD,EAAY,eACd,EACAvE,EACA4B,GACA,EACA,KACA,KACA,MAIa,aAAA2C,E,oDClBf,IAAIvE,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAO,CAACG,YAAY,cAAc,CAAEL,EAAI0G,GAAIxG,EAAG,SAAS,CAACI,MAAM,CAAC,GAAKN,EAAI0G,KAAK,CAAC1G,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGnB,EAAIqB,OAAO,OAAOnB,EAAG,OAAO,CAACF,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAIqB,UAAWrB,EAAI2G,UAAWzG,EAAG,IAAI,CAAC0B,WAAW,CAAC,CAACC,KAAK,gBAAgBC,QAAQ,kBAAkBT,MAAO,CAAEhC,QAAU,QAAQW,EAAI4G,4BAA8BC,MAAM,GAAQC,WAAW,mEAAmEzG,YAAY,6CAA6CL,EAAIsB,MAAM,IAE5gBK,EAAkB,G,iCCGP,GACfY,MAAA,CACAwE,UAAA,CACAtE,KAAAI,OACAtD,QAAA,MAGAgB,IAAA,CACAkC,KAAAgC,OACA9B,UAAA,GAGAtB,MAAA,CACAoB,KAAAI,OACAtD,QAAA,KAIA,cACA,KAAAyH,iBAAA,KAAAzG,IAAA0G,sBAGArC,OACA,OAAAoC,WAAA,OAGA1D,SAAA,CACAqD,YAAA,IAAAO,EACA,MAAA3D,EAAA,QAAA2D,EAAA,KAAAC,2BAAA,IAAAD,OAAA,EAAAA,EAAA/C,OAAAiD,KAAAC,OAEA,OAAAC,IAAA/D,IAGA4D,sBAAA,IAAAI,EACA,eAAAA,EAAA,KAAAP,kBAAA,IAAAO,OAAA,EAAAA,EAAA1B,QAAA2B,KAAAxC,OAAAyC,aAGAb,sBACA,QAAAD,UAAA,CACA,MAAAe,EAAA,KAAAP,oBAAAhD,OAAAiD,KAAAC,OACAM,EAAA,GAMA,OAJA,OAAAD,QAAA,IAAAA,KAAA1B,QAAA4B,IACAD,EAAA7H,KAAA,UAAA8H,EAAAnF,cAAAmF,EAAAC,iBAGAF,EAAAG,WAAAC,WAAA,QAGA,UAGArB,KAAA,IAAAsB,EACA,YAAAzH,KAAA,KAAAwG,UACAvD,eAAA,KAAAjD,IAAA,KAAAwG,WAGA,QAAAiB,EAAA,KAAAzH,WAAA,IAAAyH,OAAA,EAAAA,EAAAC,kBC9D6Y,I,wBCQzY3D,EAAY,eACd,EACAvE,EACA4B,GACA,EACA,KACA,WACA,MAIa,aAAA2C,E,oDCnBf,IAAIvE,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAEF,EAAIkI,aAAchI,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQN,EAAImI,gBAAgB,MAAQnI,EAAIoI,kBAAkBpI,EAAIkI,iBAAiBlI,EAAIsB,MAAM,IAE7MK,EAAkB,G,qECOP,GACf4C,WAAA,CAAA4B,mBAEA5D,MAAA,CACAlB,MAAA,CACAoB,KAAAI,OACAF,UAAA,IAIA,oBACA,KAAA0F,OAAAC,SAAA,KAAAC,eAAAC,QAAA,YAAA/F,KAAAgG,OAAAC,cAGApF,SAAA,IACAqF,eAAA,oBAEAC,iBACA,YAAAP,OAAAQ,QAAA,KAAAN,eAAAC,QAAA,QAAAC,OAAAC,aAGA1B,aACA,OAAAM,IAAA,KAAAsB,gBAIA,KAHA,KAAAA,eAAAE,KAAAC,KAAAC,KAAAC,SAAAC,SAAAC,OAAA,mCAAA9H,QAMA8G,kBACA,YAAAiB,eAAA,KAAAlB,eAGAA,eACA,IAAAmB,EAAAC,EAAA,OAAAhC,IAAA,KAAAN,YAIA,UAHA,QAAAqC,EAAA,KAAArC,WAAAkC,gBAAA,IAAAG,GAAA,QAAAC,EAAAD,EAAAtE,aAAA,IAAAuE,OAAA,EAAAA,EAAAzH,OAOA0H,QAAA,CACAnB,kBAAAoB,GACA,cAAAA,QAAA,IAAAA,OAAA,EAAAA,EAAAjD,OAAA,GAAAC,gBAAA,OAAAgD,QAAA,IAAAA,OAAA,EAAAA,EAAA/C,MAAA,OCrDyY,I,YCOrYnC,EAAY,eACd,EACAvE,EACA4B,GACA,EACA,KACA,KACA,MAIa,aAAA2C,E,2CClBf,W,qBCGA,IAAIjF,EAAU,EAAQ,QACnBA,EAAQC,aAAYD,EAAUA,EAAQE,SACnB,kBAAZF,IAAsBA,EAAU,CAAC,CAACG,EAAOC,EAAIJ,EAAS,MAC7DA,EAAQK,SAAQF,EAAOG,QAAUN,EAAQK,QAE5C,IAAIE,EAAM,EAAQ,QAAkEL,QACvEK,EAAI,WAAYP,GAAS,EAAM,CAAC,WAAY,EAAM,YAAa,K,kCCT5E","file":"kubewarden-1.1.0.umd.min.formatters.js","sourcesContent":["// 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!./ProgressBarMulti.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!./ProgressBarMulti.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProgressBarMulti.vue?vue&type=template&id=abc33690&scoped=true&\"\nimport script from \"./ProgressBarMulti.vue?vue&type=script&lang=js&\"\nexport * from \"./ProgressBarMulti.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProgressBarMulti.vue?vue&type=style&index=0&id=abc33690&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 \"abc33690\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicySummaryGraph.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicySummaryGraph.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PolicySummaryGraph.vue?vue&type=template&id=d6fcf5ec&\"\nimport script from \"./PolicySummaryGraph.vue?vue&type=script&lang=js&\"\nexport * from \"./PolicySummaryGraph.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PolicySummaryGraph.vue?vue&type=style&index=0&id=d6fcf5ec&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',_vm._l((_vm.resourceLabels),function(resource,i){return _c('span',{key:i},[_vm._v(\" \"+_vm._s(resource)+\" \")])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyResources.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyResources.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PolicyResources.vue?vue&type=template&id=2d2cff57&\"\nimport script from \"./PolicyResources.vue?vue&type=script&lang=js&\"\nexport * from \"./PolicyResources.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyServerDeployment.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyServerDeployment.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PolicyServerDeployment.vue?vue&type=template&id=2a8202a5&scoped=true&\"\nimport script from \"./PolicyServerDeployment.vue?vue&type=script&lang=js&\"\nexport * from \"./PolicyServerDeployment.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PolicyServerDeployment.vue?vue&type=style&index=0&id=2a8202a5&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a8202a5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.stateDisplay)?_c('BadgeState',{attrs:{\"color\":_vm.stateBackground,\"label\":_vm.capitalizeMessage(_vm.stateDisplay)}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyServerStatus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyServerStatus.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PolicyServerStatus.vue?vue&type=template&id=0a5f8a2f&\"\nimport script from \"./PolicyServerStatus.vue?vue&type=script&lang=js&\"\nexport * from \"./PolicyServerStatus.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../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!./ProgressBarMulti.vue?vue&type=style&index=0&id=abc33690&prod&lang=scss&scoped=true&\"","// style-loader: Adds some css to the DOM by adding a \n\x3c!-- RESOURCE DEPLOYMENT ICON --\x3e\n\n\x3c!-- NODE ICON --\x3e\n\n\x3c!-- RESOURCE OTHER ICON --\x3e\n\n\n`;var Tw={name:"ForceDirectedTreeChart",components:{BadgeState:Dt["a"]},props:{data:{type:[Array,Object],required:!0},fdcConfig:{type:Object,required:!0}},data(){return{dataWatcher:void 0,parsedInfo:void 0,root:void 0,allNodesData:void 0,allLinks:void 0,rootNode:void 0,node:void 0,link:void 0,svg:void 0,zoom:void 0,simulation:void 0,isChartFirstRendered:!1,isChartFirstRenderAnimationFinished:!1,moreInfo:{}}},methods:{watcherFunction(e){if(e.length)if(this.isChartFirstRendered){const e=this.fdcConfig.parseData(this.data),t=this.flatten(e);let n=!1;t.forEach(e=>{const t=this.allNodesData.findIndex(t=>e.matchingId===t.data.matchingId);t>-1&&this.allNodesData[t].data.state!==e.state&&(this.allNodesData[t].data.state=e.state,this.allNodesData[t].data.stateLabel=e.stateLabel,this.allNodesData[t].data.stateColor=e.stateColor,n=!0,this.allNodesData[t].data.active&&this.setDetailsInfo(this.allNodesData[t].data,!1))}),n&&this.updateChart(!1,!1)}else this.parsedInfo=this.fdcConfig.parseData(this.data),this.setDetailsInfo(this.parsedInfo,!1),this.parsedInfo.active=!0,this.renderChart(),this.updateChart(!0,!0),this.isChartFirstRendered=!0},renderChart(){this.zoom=Aw().scaleExtent([1/8,16]).on("zoom",this.zoomed);const e=mw.scale(1).translate(0,0);this.rootNode=this.svg.append("g").attr("class","root-node"),this.svg.call(this.zoom),this.svg.call(this.zoom.transform,e),this.simulation=gd().force("charge",bd().strength(this.fdcConfig.simulationParams.fdcStrength).distanceMax(this.fdcConfig.simulationParams.fdcDistanceMax)).force("collision",Lc(this.fdcConfig.simulationParams.fdcForceCollide)).force("center",oc(this.fdcConfig.chartWidth/2,this.fdcConfig.chartHeight/2)).alphaDecay(this.fdcConfig.simulationParams.fdcAlphaDecay).on("tick",this.ticked).on("end",()=>{this.isChartFirstRenderAnimationFinished||(this.zoomFit(),this.isChartFirstRenderAnimationFinished=!0)})},updateChart(e,t){e&&(this.root=Md(this.parsedInfo)),t&&(this.allNodesData=this.flatten(this.root),this.allLinks=this.root.links()),this.link=this.rootNode.selectAll(".link").data(this.allLinks,e=>e.target.id),this.link.exit().remove();const n=this.link.enter().append("line").attr("class","link").style("opacity","0.2").style("stroke-width",4);this.link=n.merge(this.link),this.node=this.rootNode.selectAll(".node").data(this.allNodesData,e=>e.id).attr("class",this.mainNodeClass),this.node.exit().remove();const r=this.node.enter().append("g").attr("class",this.mainNodeClass).style("opacity",1).on("click",(e,t)=>{this.setDetailsInfo(t.data,!0)}).call(ic().on("start",this.dragStarted).on("drag",this.dragging).on("end",this.dragEnded));r.append("circle").attr("r",this.setNodeRadius),r.append("circle").attr("r",e=>this.setNodeRadius(e)-5).attr("class","node-hover-layer"),r.append("svg").html(e=>{const t=this.fdcConfig.fetchNodeIcon(e);return Ow(t)}).attr("x",this.nodeImagePosition).attr("y",this.nodeImagePosition).attr("height",this.nodeImageSize).attr("width",this.nodeImageSize),this.node=r.merge(this.node),this.simulation.nodes(this.allNodesData),this.simulation.force("link",jc().id(e=>e.id).distance(100).links(this.allLinks))},mainNodeClass(e){var t,n;const r=null!==(t=e.data)&&void 0!==t&&t.state?e.data.state.toLowerCase():"unkown_status",i=["node"];Ew["a"][r]&&Ew["a"][r].color?i.push("node-"+Ew["a"][r].color):i.push("node-default-fill"),null!==(n=e.data)&&void 0!==n&&n.active&&i.push("active");const o=this.fdcConfig.extendNodeClass(e).concat(i);return o.join(" ")},setNodeRadius(e){const{radius:t}=this.fdcConfig.nodeDimensions(e);return t},nodeImageSize(e){const{size:t}=this.fdcConfig.nodeDimensions(e);return t},nodeImagePosition(e){const{position:t}=this.fdcConfig.nodeDimensions(e);return t},setDetailsInfo(e,t){this.moreInfo=Object.assign([],this.fdcConfig.infoDetails(e)),t&&(this.allNodesData.forEach((t,n)=>{t.data.matchingId===e.matchingId?this.allNodesData[n].data.active=!0:this.allNodesData[n].data.active=!1}),this.updateChart(!1,!1))},zoomFit(){const e=Vu(".root-node"),t=30,n=e.node().getBoundingClientRect(),r=e.node().getBBox(),i=e.node().parentElement,o=i.clientWidth,a=i.clientHeight,s=n.width,l=n.height,u=r.x+s/2,c=r.y+l/2;if(0===s||0===l)return;const d=1/Math.max(s/(o-t),l/(a-t)),p=[o/2-d*u,a/2-d*c],f=mw.translate(p[0],p[1]).scale(d);this.svg.call(this.zoom.transform,f)},ticked(){this.link.attr("x1",e=>e.source.x).attr("y1",e=>e.source.y).attr("x2",e=>e.target.x).attr("y2",e=>e.target.y),this.node.attr("transform",e=>`translate(${e.x}, ${e.y})`)},dragStarted(e,t){e.active||this.simulation.alphaTarget(.3).restart(),t.fx=t.x,t.fy=t.y},dragging(e,t){t.fx=e.x,t.fy=e.y},dragEnded(e,t){e.active||this.simulation.alphaTarget(0),t.fx=void 0,t.fy=void 0},zoomed(e){this.rootNode.attr("transform",e.transform)},flatten(e){const t=[];let n=0;function r(e){e.children&&e.children.forEach(r),e.id?++n:e.id=++n,t.push(e)}return r(e),t}},mounted(){this.svg=Vu("#tree").append("svg").attr("viewBox",`0 0 ${this.fdcConfig.chartWidth} ${this.fdcConfig.chartHeight}`).attr("preserveAspectRatio","none"),this.dataWatcher=this.$watch(this.fdcConfig.watcherProp,(function(e){this.watcherFunction(e)}))},unmounted(){this.dataWatcher()}},Nw=Tw,Rw=(n("b535"),Object(E["a"])(Nw,gn,bn,!1,null,null,null)),Lw=Rw.exports;n("4048");const Iw=(e,t)=>{const n={};for(const[r,i]of Object.entries(e)){const e=t.getters[i.inStoreType+"/schemaFor"](i.type),o=i.schemaValidator?i.schemaValidator(e):!!e;o&&(n[r]=t.dispatch(i.inStoreType+"/findAll",{type:i.type}))}return Object(b["a"])(n)};function Mw(e){var t,n;return(null===(t=e.query)||void 0===t?void 0:t.mode)===te["w"]?te["w"]:null!==(n=e.params)&&void 0!==n&&n.id?e.query.mode||te["A"]:te["r"]}async function jw(e,t){const n=e.getters["currentStore"](t.type);let r;const i={headers:{accept:"application/yaml"}};t.hasLink("view")&&(r=(await t.followLink("view",i)).data);const o=await e.dispatch(n+"/cleanForDownload",r);return o}var $w={components:{Loading:B["a"],DetailTop:mn,ForceDirectedTreeChart:Lw,ResourceYaml:It["a"],Masthead:Vt,IconMessage:ct},mixins:[Lt["a"]],props:{storeOverride:{type:String,default:null},resourceOverride:{type:String,default:null},parentRouteOverride:{type:String,default:null},flexContent:{type:Boolean,default:!1},componentTestid:{type:String,default:"resource-details"}},async fetch(){const e=this.$store,t=this.$route,n=t.params,r=this.storeOverride||e.getters["currentStore"](n.resource),i=this.realMode;let{namespace:o,id:a}=n,s=this.resourceOverride||n.resource;const l=[te["p"],te["w"],te["y"]].includes(i)?te["r"]:i,u=e.getters["type-map/hasGraph"](s),c=!!u,p=e.getters["type-map/hasCustomDetail"](s,a),f=e.getters["type-map/hasCustomEdit"](s,a),h=e.getters[r+"/all"](d["x"]),v=t.query[te["a"]];let m,g=!1;m=l!==te["A"]||!p||v&&v!==te["s"]?l===te["A"]&&c&&v===te["v"]?te["v"]:!f||v&&v!==te["q"]?te["B"]:te["q"]:te["s"],this.as=m;const b=e.getters["type-map/optionsFor"](s);this.showMasthead=![te["r"],te["t"]].includes(l)||b.resourceEditMasthead;const y=b.canYaml;b.resource&&(s=b.resource);const w=e.getters[r+"/schemaFor"](s);let _,x,k,S;if(i===te["r"]||i===te["w"]){var C;o||(o=e.getters["defaultNamespace"]);const t={type:s};null!==w&&void 0!==w&&null!==(C=w.attributes)&&void 0!==C&&C.namespaced&&(t.metadata={namespace:o}),k=await e.dispatch(r+"/create",t),x=await e.dispatch(r+"/clone",{resource:k}),_=await e.dispatch(r+"/clone",{resource:k}),!0===_.forceYaml&&(m=te["B"],this.as=m),m===te["B"]&&(S=Object(Mt["a"])(h,s,t))}else{var A;if(m===te["v"]){const e=await Iw({cluster:{inStoreType:"management",type:d["g"].CLUSTER},bundle:{inStoreType:"management",type:d["g"].BUNDLE},bundleDeployment:{inStoreType:"management",type:d["g"].BUNDLE_DEPLOYMENT}},this.$store);this.canViewChart=e.cluster&&e.bundle&&e.bundleDeployment}let t=a;null!==(A=w.attributes)&&void 0!==A&&A.namespaced&&o&&(t=`${o}/${t}`);try{k=await e.dispatch(r+"/find",{type:s,id:t,opt:{watch:!0}})}catch(O){k={},g=t}_=i===te["A"]?k:await e.dispatch(r+"/clone",{resource:k}),x=await e.dispatch(r+"/clone",{resource:k}),m===te["B"]&&(S=await jw(this.$store,k)),m===te["v"]&&(this.chartData=k),[te["p"],te["w"],te["y"]].includes(i)&&(_.cleanForNew(),S=_.cleanYaml(S,i))}_=await e.dispatch(r+"/cleanForDetail",_);const E={hasGraph:c,getGraphConfig:u,hasCustomDetail:p,hasCustomEdit:f,canViewYaml:y,resource:s,as:m,yaml:S,initialModel:x,liveModel:k,mode:l,value:_,notFound:g};for(const d in E)this[d]=E[d];this.mode===te["r"]&&this.value.applyDefaults(this,i)},data(){return{chartData:null,resourceSubtype:null,hasGraph:null,hasCustomDetail:null,hasCustomEdit:null,resource:null,asYaml:null,yaml:null,liveModel:null,initialModel:null,mode:null,as:null,value:null,model:null,notFound:null,canViewChart:!0}},computed:{realMode(){const e=Mw(this.$route);return e},isView(){return this.mode===te["A"]},isYaml(){return this.as===te["B"]},isDetail(){return this.as===te["s"]},isGraph(){return this.as===te["v"]},offerPreview(){return this.as===te["B"]&&[te["t"],te["p"],te["w"],te["y"]].includes(this.mode)},showComponent(){switch(this.as){case te["s"]:return this.detailComponent;case te["q"]:return this.editComponent}return null}},watch:{"$route.query"(e,t){const n=Object(Ke["e"])(e),r=Object(Ke["e"])(t);delete n[te["f"]],delete r[te["f"]],this.isView||(delete n[te["a"]],delete r[te["a"]]);const i=Object.keys(Object(Ke["f"])(n,r));(i.includes(te["e"])||i.includes(te["a"]))&&this.$fetch()},async"value.metadata.resourceVersion"(e,t){this.mode===te["A"]&&this.as===te["B"]&&e&&t&&e!==t&&(this.yaml=await jw(this.$store,this.liveModel))}},created(){const e=this.$route.params.id,t=this.resourceOverride||this.$route.params.resource,n=this.$store.getters["type-map/optionsFor"](t),r=n.resourceDetail||n.resource||t,i=n.resourceEdit||n.resource||t;this.detailComponent=this.$store.getters["type-map/importDetail"](r,e),this.editComponent=this.$store.getters["type-map/importEdit"](i,e)},methods:{setSubtype(e){this.resourceSubtype=e},keyAction(e){const t=this.liveModel;null!==t&&void 0!==t&&t[e]&&t[e]()}}},Pw=$w,Dw=(n("3116"),Object(E["a"])(Pw,Nt,Rt,!1,null,"55e3f65d",null)),Fw=Dw.exports,Bw={name:"KubewardenResourceCreate",components:{ResourceDetail:Fw}},Uw=Bw,qw=Object(E["a"])(Uw,Ot,Tt,!1,null,null,null),Vw=qw.exports,Hw=function(){var e=this,t=e._self._c;return t("ResourceDetail")},Gw=[],zw={name:"KubewardenResourcedId",components:{ResourceDetail:Fw}},Yw=zw,Kw=Object(E["a"])(Yw,Hw,Gw,!1,null,null,null),Ww=Kw.exports,Xw=function(){var e=this,t=e._self._c;return t("ResourceDetail")},Jw=[],Qw={name:"KubewardenResourcedNamespaceId",components:{ResourceDetail:Fw}},Zw=Qw,e_=Object(E["a"])(Zw,Xw,Jw,!1,null,null,null),t_=e_.exports;const n_=[{name:"c-cluster-"+a["e"],path:"/c/:cluster/"+a["e"],component:Ee,meta:{product:a["e"],pkg:a["e"]}},{name:`c-cluster-${a["e"]}-resource`,path:`/c/:cluster/${a["e"]}/:resource`,component:Et,meta:{product:a["e"],pkg:a["e"]}},{name:`c-cluster-${a["e"]}-resource-create`,path:`/c/:cluster/${a["e"]}/:resource/create`,component:Vw,meta:{product:a["e"],pkg:a["e"]}},{name:`c-cluster-${a["e"]}-resource-id`,path:`/c/:cluster/${a["e"]}/:resource/:id`,component:Ww,meta:{product:a["e"],pkg:a["e"]}},{name:`c-cluster-${a["e"]}-resource-namespace-id`,path:`/c/:cluster/${a["e"]}/:resource/:namespace/:id`,component:t_,meta:{product:a["e"],pkg:a["e"]}}];var r_=n_,i_={airGapped:e=>e.airGapped,hideBannerDefaults:e=>e.hideBannerDefaults,hideBannerArtifactHub:e=>e.hideBannerArtifactHub,hideBannerAirgapPolicy:e=>e.hideBannerAirgapPolicy},o_={updateAirGapped(e,t){e.airGapped=t},updateHideBannerDefaults(e,t){e.hideBannerDefaults=t},updateHideBannerArtifactHub(e,t){e.hideBannerArtifactHub=t},updateHideBannerAirgapPolicy(e,t){e.hideBannerAirgapPolicy=t}},a_={updateAirGapped({commit:e},t){e("updateAirGapped",t)},updateHideBannerDefaults({commit:e},t){e("updateHideBannerDefaults",t)},updateHideBannerArtifactHub({commit:e},t){e("updateHideBannerArtifactHub",t)},updateHideBannerAirgapPolicy({commit:e},t){e("updateHideBannerAirgapPolicy",t)}};const s_=e=>({state:()=>({airGapped:e.airGapped,hideBannerDefaults:e.hideBannerDefaults,hideBannerArtifactHub:e.hideBannerArtifactHub,hideBannerAirgapPolicy:e.hideBannerAirgapPolicy}),getters:{...i_},mutations:{...o_},actions:{...a_}}),l_={namespace:a["e"]};var u_={specifics:s_({airGapped:!1,hideBannerDefaults:!1,hideBannerArtifactHub:!1,hideBannerAirgapPolicy:!1}),config:l_},c_=n("8bbf"),d_=n.n(c_),p_=n("8276"),f_=n("3e09"),h_=n.n(f_);const v_=["code","li","a","p","b","br","ul","pre","span","div","i","em","strong"],m_=e=>h_.a.sanitize(e,{ALLOWED_TAGS:v_}),g_={inserted(e,t){e.innerHTML=m_(t.value)},componentUpdated(e,t){e.innerHTML=m_(t.value)},unbind(e){e.innerHTML=""}};function b_(e){const t=typeof e;return"string"===t?m_(e):e&&"object"===t&&"string"===typeof e.content?{...e,content:m_(e.content)}:e}function y_(e,{value:t,oldValue:n,modifiers:r}){const i=b_(t);p_["a"].bind(e,{value:i,oldValue:n,modifiers:r})}d_.a.directive("clean-html",g_);const w_={...p_["a"],bind:y_,update:y_};d_.a.directive("clean-tooltip",w_);var __=function(e){o(e),e.metadata=n("9224"),e.addProduct(n("6102")),e.addDashboardStore(u_.config.namespace,u_.specifics,u_.config),e.addRoutes(r_)};t["default"]=__},"1cbd":function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".percentage-bar[data-v-620caa7e]{display:flex;flex-direction:row}.percentage-bar .percentage-value[data-v-620caa7e]{word-break:keep-all}",""]),e.exports=t},"1d19":function(e,t,n){"use strict";n.d(t,"c",(function(){return s})),n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return v}));var r=n("e24b"),i=n("2cb5");const o={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object FileList]":"filelist"},{toString:a}=Object.prototype;function s(e){if(null===e)return"null";if(void 0===e)return"undefined";let t=o[a.call(e)]||"object";return"object"===t&&(e instanceof Error?t="error":e instanceof Date&&(t="date")),t}function l(e,t){const n=e-t;return(n>0)-(n<0)}const u={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10};function c(e,t){const n=s(e),r=s(t),i=l(u[n],u[r]);if(i)return i;switch(n){case"boolean":case"number":return l(e,t);case"string":return l(e.localeCompare(t),0);case"array":{const n=e.length,r=t.length,i=Math.min(n,r);for(let o=0;o{for(let o=0;oe.match(h)?Object(i["q"])(e,10,"0"):e).join("").trim()}},"1d5f":function(e){e.exports=JSON.parse('{"hasStylesheet":"true"}')},"1ec9":function(e,t,n){var r=n("fa8a"),i=n("44d9"),o=n("1386"),a=n("052a"),s=n("2fab"),l=n("e3f8");function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=i,u.prototype["delete"]=o,u.prototype.get=a,u.prototype.has=s,u.prototype.set=l,e.exports=u},"1ed9":function(e,t,n){(function(t){(function(){t.browserTemplates||(t.browserTemplates={});var r=n("2da2");t.browserTemplates["file-summary-line"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('
  • '),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(r.rp("'),r.b(r.v(r.f("fileName",e,t,0))),r.b(""),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(' '),r.b(r.v(r.f("addedLines",e,t,0))),r.b(""),r.b("\n"+n),r.b(' '),r.b(r.v(r.f("deletedLines",e,t,0))),r.b(""),r.b("\n"+n),r.b(" "),r.b("\n"+n),r.b(" "),r.b("\n"+n),r.b("
  • "),r.fl()},partials:{"'),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b(' Files changed ('),r.b(r.v(r.f("filesNumber",e,t,0))),r.b(")"),r.b("\n"+n),r.b(' hide'),r.b("\n"+n),r.b(' show'),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b('
      '),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("files",e,t,0))),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b(""),r.fl()},partials:{},subs:{}}),t.browserTemplates["generic-column-line-number"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b(""),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b('
    '),r.b(r.t(r.f("blockHeader",e,t,0))),r.b("
    "),r.b("\n"+n),r.b(" "),r.b("\n"+n),r.b(""),r.fl()},partials:{},subs:{}}),t.browserTemplates["generic-empty-diff"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b(""),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b(" File without changes"),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b(" "),r.b("\n"+n),r.b(""),r.fl()},partials:{},subs:{}}),t.browserTemplates["generic-file-path"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b(''),r.b("\n"+n),r.b(r.rp("'),r.b(r.v(r.f("fileDiffName",e,t,0))),r.b(""),r.b("\n"+n),r.b(r.rp(""),r.fl()},partials:{""),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("lineNumber",e,t,0))),r.b("\n"+n),r.b(" "),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.s(r.f("prefix",e,t,1),e,t,0,171,247,"{{ }}")&&(r.rs(e,t,(function(e,t,r){r.b(' '),r.b(r.t(r.f("prefix",e,t,0))),r.b(""),r.b("\n"+n)})),e.pop()),r.s(r.f("content",e,t,1),e,t,0,279,353,"{{ }}")&&(r.rs(e,t,(function(e,t,r){r.b(' '),r.b(r.t(r.f("content",e,t,0))),r.b(""),r.b("\n"+n)})),e.pop()),r.b("
    "),r.b("\n"+n),r.b(" "),r.b("\n"+n),r.b(""),r.fl()},partials:{},subs:{}}),t.browserTemplates["generic-wrapper"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('
    '),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("content",e,t,0))),r.b("\n"+n),r.b("
    "),r.fl()},partials:{},subs:{}}),t.browserTemplates["icon-file-added"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('"),r.fl()},partials:{},subs:{}}),t.browserTemplates["icon-file-changed"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('"),r.fl()},partials:{},subs:{}}),t.browserTemplates["icon-file-deleted"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('"),r.fl()},partials:{},subs:{}}),t.browserTemplates["icon-file-renamed"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('"),r.fl()},partials:{},subs:{}}),t.browserTemplates["icon-file"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('"),r.fl()},partials:{},subs:{}}),t.browserTemplates["line-by-line-file-diff"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('
    '),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("filePath",e,t,0))),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("diffs",e,t,0))),r.b("\n"+n),r.b(" "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b("
    "),r.fl()},partials:{},subs:{}}),t.browserTemplates["line-by-line-numbers"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('
    '),r.b(r.v(r.f("oldNumber",e,t,0))),r.b("
    "),r.b("\n"+n),r.b('
    '),r.b(r.v(r.f("newNumber",e,t,0))),r.b("
    "),r.fl()},partials:{},subs:{}}),t.browserTemplates["side-by-side-file-diff"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('
    '),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("filePath",e,t,0))),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(" "),r.b(r.t(r.d("diffs.left",e,t,0))),r.b("\n"+n),r.b(" "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b('
    '),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(' '),r.b("\n"+n),r.b(" "),r.b(r.t(r.d("diffs.right",e,t,0))),r.b("\n"+n),r.b(" "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b("
    "),r.b("\n"+n),r.b("
    "),r.fl()},partials:{},subs:{}}),t.browserTemplates["tag-file-added"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('ADDED'),r.fl()},partials:{},subs:{}}),t.browserTemplates["tag-file-changed"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('CHANGED'),r.fl()},partials:{},subs:{}}),t.browserTemplates["tag-file-deleted"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('DELETED'),r.fl()},partials:{},subs:{}}),t.browserTemplates["tag-file-renamed"]=new r.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('RENAMED'),r.fl()},partials:{},subs:{}}),e.exports=t.browserTemplates})()}).call(this,n("7d15"))},"1fcb":function(e,t,n){var r=n("3336"),i=n("c294"),o=i((function(e,t,n){r(e,t,n)}));e.exports=o},"1fce":function(e,t){function n(e,t){var n=-1,r=null==e?0:e.length,i=Array(r);while(++n-1)||n.indexOf(",")>-1||n.indexOf("/")>-1||r.StringUtilities.containsAny(i,e.specialCharacters))if(!t&&i.indexOf(",")>-1&&-1==i.indexOf("-")&&-1==i.indexOf("/")&&!r.StringUtilities.containsAny(n,e.specialCharacters)){var a=i.split(",");o+=this.i18n.at();for(var s=0;s0&&u.length>0&&(o+=", "),o+=u,o.length>0&&c.length>0&&(o+=", "),o+=c}else{var d=n.split("-");o+=r.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(i,d[0],""),this.formatTime(i,d[1],""))}else o+=this.i18n.atSpace()+this.formatTime(i,n,t);return o},e.prototype.getSecondsDescription=function(){var e=this,t=this.getSegmentDescription(this.expressionParts[0],this.i18n.everySecond(),(function(e){return e}),(function(t){return r.StringUtilities.format(e.i18n.everyX0Seconds(),t)}),(function(t){return e.i18n.secondsX0ThroughX1PastTheMinute()}),(function(t){return"0"==t?"":parseInt(t)<20?e.i18n.atX0SecondsPastTheMinute():e.i18n.atX0SecondsPastTheMinuteGt20()||e.i18n.atX0SecondsPastTheMinute()}));return t},e.prototype.getMinutesDescription=function(){var e=this,t=this.expressionParts[0],n=this.expressionParts[2],i=this.getSegmentDescription(this.expressionParts[1],this.i18n.everyMinute(),(function(e){return e}),(function(t){return r.StringUtilities.format(e.i18n.everyX0Minutes(),t)}),(function(t){return e.i18n.minutesX0ThroughX1PastTheHour()}),(function(r){try{return"0"==r&&-1==n.indexOf("/")&&""==t?e.i18n.everyHour():parseInt(r)<20?e.i18n.atX0MinutesPastTheHour():e.i18n.atX0MinutesPastTheHourGt20()||e.i18n.atX0MinutesPastTheHour()}catch(i){return e.i18n.atX0MinutesPastTheHour()}}));return i},e.prototype.getHoursDescription=function(){var e=this,t=this.expressionParts[2],n=this.getSegmentDescription(t,this.i18n.everyHour(),(function(t){return e.formatTime(t,"0","")}),(function(t){return r.StringUtilities.format(e.i18n.everyX0Hours(),t)}),(function(t){return e.i18n.betweenX0AndX1()}),(function(t){return e.i18n.atX0()}));return n},e.prototype.getDayOfWeekDescription=function(){var e=this,t=this.i18n.daysOfTheWeek(),n=null;return n="*"==this.expressionParts[5]?"":this.getSegmentDescription(this.expressionParts[5],this.i18n.commaEveryDay(),(function(e){var n=e;return e.indexOf("#")>-1?n=e.substr(0,e.indexOf("#")):e.indexOf("L")>-1&&(n=n.replace("L","")),t[parseInt(n)]}),(function(t){return 1==parseInt(t)?"":r.StringUtilities.format(e.i18n.commaEveryX0DaysOfTheWeek(),t)}),(function(t){return e.i18n.commaX0ThroughX1()}),(function(t){var n=null;if(t.indexOf("#")>-1){var r=t.substring(t.indexOf("#")+1),i=null;switch(r){case"1":i=e.i18n.first();break;case"2":i=e.i18n.second();break;case"3":i=e.i18n.third();break;case"4":i=e.i18n.fourth();break;case"5":i=e.i18n.fifth();break}n=e.i18n.commaOnThe()+i+e.i18n.spaceX0OfTheMonth()}else if(t.indexOf("L")>-1)n=e.i18n.commaOnTheLastX0OfTheMonth();else{var o="*"!=e.expressionParts[3];n=o?e.i18n.commaAndOnX0():e.i18n.commaOnlyOnX0()}return n})),n},e.prototype.getMonthDescription=function(){var e=this,t=this.i18n.monthsOfTheYear(),n=this.getSegmentDescription(this.expressionParts[4],"",(function(e){return t[parseInt(e)-1]}),(function(t){return 1==parseInt(t)?"":r.StringUtilities.format(e.i18n.commaEveryX0Months(),t)}),(function(t){return e.i18n.commaMonthX0ThroughMonthX1()||e.i18n.commaX0ThroughX1()}),(function(t){return e.i18n.commaOnlyInMonthX0?e.i18n.commaOnlyInMonthX0():e.i18n.commaOnlyInX0()}));return n},e.prototype.getDayOfMonthDescription=function(){var e=this,t=null,n=this.expressionParts[3];switch(n){case"L":t=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":t=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var i=n.match(/(\d{1,2}W)|(W\d{1,2})/);if(i){var o=parseInt(i[0].replace("W","")),a=1==o?this.i18n.firstWeekday():r.StringUtilities.format(this.i18n.weekdayNearestDayX0(),o.toString());t=r.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),a);break}var s=n.match(/L-(\d{1,2})/);if(s){var l=s[1];t=r.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(),l);break}if("*"==n&&"*"!=this.expressionParts[5])return"";t=this.getSegmentDescription(n,this.i18n.commaEveryDay(),(function(t){return"L"==t?e.i18n.lastDay():e.i18n.dayX0?r.StringUtilities.format(e.i18n.dayX0(),t):t}),(function(t){return"1"==t?e.i18n.commaEveryDay():e.i18n.commaEveryX0Days()}),(function(t){return e.i18n.commaBetweenDayX0AndX1OfTheMonth()}),(function(t){return e.i18n.commaOnDayX0OfTheMonth()}));break}return t},e.prototype.getYearDescription=function(){var e=this,t=this.getSegmentDescription(this.expressionParts[6],"",(function(e){return/^\d+$/.test(e)?new Date(parseInt(e),1).getFullYear().toString():e}),(function(t){return r.StringUtilities.format(e.i18n.commaEveryX0Years(),t)}),(function(t){return e.i18n.commaYearX0ThroughYearX1()||e.i18n.commaX0ThroughX1()}),(function(t){return e.i18n.commaOnlyInYearX0?e.i18n.commaOnlyInYearX0():e.i18n.commaOnlyInX0()}));return t},e.prototype.getSegmentDescription=function(e,t,n,i,o,a){var s=this,l=null;if(e)if("*"===e)l=t;else if(r.StringUtilities.containsAny(e,["/","-",","]))if(e.indexOf("/")>-1){var u=e.split("/");if(l=r.StringUtilities.format(i(u[1]),u[1]),u[0].indexOf("-")>-1){var c=this.generateBetweenSegmentDescription(u[0],o,n);0!=c.indexOf(", ")&&(l+=", "),l+=c}else if(!r.StringUtilities.containsAny(u[0],["*",","])){var d=r.StringUtilities.format(a(u[0]),n(u[0]));d=d.replace(", ",""),l+=r.StringUtilities.format(this.i18n.commaStartingX0(),d)}}else if(e.indexOf(",")>-1){u=e.split(",");for(var p="",f=0;f0&&u.length>2&&(p+=",",f0&&u.length>1&&(f==u.length-1||2==u.length)&&(p+=this.i18n.spaceAnd()+" "),u[f].indexOf("-")>-1){c=this.generateBetweenSegmentDescription(u[f],(function(e){return s.i18n.commaX0ThroughX1()}),n);c=c.replace(", ",""),p+=c}else p+=n(u[f]);l=r.StringUtilities.format(a(e),p)}else e.indexOf("-")>-1&&(l=this.generateBetweenSegmentDescription(e,o,n));else l=r.StringUtilities.format(a(e),n(e));else l="";return l},e.prototype.generateBetweenSegmentDescription=function(e,t,n){var i="",o=e.split("-"),a=n(o[0]),s=n(o[1]);s=s.replace(":00",":59");var l=t(e);return i+=r.StringUtilities.format(l,a,s),i},e.prototype.formatTime=function(e,t,n){var r=parseInt(e),i="",o=!1;this.options.use24HourTimeFormat||(o=this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime(),i=o?this.getPeriod(r)+" ":" "+this.getPeriod(r),r>12&&(r-=12),0===r&&(r=12));var a=t,s="";return n&&(s=":"+("00"+n).substring(n.length)),""+(o?i:"")+("00"+r.toString()).substring(r.toString().length)+":"+("00"+a.toString()).substring(a.toString().length)+s+(o?"":i)},e.prototype.transformVerbosity=function(e,t){return t||(e=e.replace(new RegExp(", "+this.i18n.everyMinute(),"g"),""),e=e.replace(new RegExp(", "+this.i18n.everyHour(),"g"),""),e=e.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),e=e.replace(/\, ?$/,"")),e},e.prototype.getPeriod=function(e){return e>=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},e.locales={},e}();t.ExpressionDescriptor=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.format=function(e){for(var t=[],n=1;n-1}))},e}();t.StringUtilities=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){void 0===t&&(t=!0),this.expression=e,this.dayOfWeekStartIndexZero=t}return e.prototype.parse=function(){var e=this.extractParts(this.expression);return this.normalize(e),this.validate(e),e},e.prototype.extractParts=function(e){if(!this.expression)throw new Error("Expression is empty");var t=e.trim().split(/[ ]+/);if(t.length<5)throw new Error("Expression has only "+t.length+" part"+(1==t.length?"":"s")+". At least 5 parts are required.");if(5==t.length)t.unshift(""),t.push("");else if(6==t.length)/\d{4}$/.test(t[5])?t.unshift(""):t.push("");else if(t.length>7)throw new Error("Expression has "+t.length+" parts; too many!");return t},e.prototype.normalize=function(e){var t=this;if(e[3]=e[3].replace("?","*"),e[5]=e[5].replace("?","*"),e[2]=e[2].replace("?","*"),0==e[0].indexOf("0/")&&(e[0]=e[0].replace("0/","*/")),0==e[1].indexOf("0/")&&(e[1]=e[1].replace("0/","*/")),0==e[2].indexOf("0/")&&(e[2]=e[2].replace("0/","*/")),0==e[3].indexOf("1/")&&(e[3]=e[3].replace("1/","*/")),0==e[4].indexOf("1/")&&(e[4]=e[4].replace("1/","*/")),0==e[5].indexOf("1/")&&(e[5]=e[5].replace("1/","*/")),0==e[6].indexOf("1/")&&(e[6]=e[6].replace("1/","*/")),e[5]=e[5].replace(/(^\d)|([^#/\s]\d)/g,(function(e){var n=e.replace(/\D/,""),r=n;return t.dayOfWeekStartIndexZero?"7"==n&&(r="0"):r=(parseInt(n)-1).toString(),e.replace(n,r)})),"L"==e[5]&&(e[5]="6"),"?"==e[3]&&(e[3]="*"),e[3].indexOf("W")>-1&&(e[3].indexOf(",")>-1||e[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var n={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var r in n)e[5]=e[5].replace(new RegExp(r,"gi"),n[r].toString());var i={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var o in i)e[4]=e[4].replace(new RegExp(o,"gi"),i[o].toString());"0"==e[0]&&(e[0]=""),/\*|\-|\,|\//.test(e[2])||!/\*|\//.test(e[1])&&!/\*|\//.test(e[0])||(e[2]+="-"+e[2]);for(var a=0;a-1&&!/^\*|\-|\,/.test(e[a])){var s=null;switch(a){case 4:s="12";break;case 5:s="6";break;case 6:s="9999";break;default:s=null;break}if(null!=s){var l=e[a].split("/");e[a]=l[0]+"-"+s+"/"+l[1]}}},e.prototype.validate=function(e){this.assertNoInvalidCharacters("DOW",e[5]),this.assertNoInvalidCharacters("DOM",e[3])},e.prototype.assertNoInvalidCharacters=function(e,t){var n=t.match(/[A-KM-VX-Z]+/gi);if(n&&n.length)throw new Error(e+" part contains invalid values: '"+n.toString()+"'")},e}();t.CronParser=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},e.prototype.atX0MinutesPastTheHourGt20=function(){return null},e.prototype.commaMonthX0ThroughMonthX1=function(){return null},e.prototype.commaYearX0ThroughYearX1=function(){return null},e.prototype.use24HourTimeFormatByDefault=function(){return!1},e.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occured when generating the expression description. Check the cron expression syntax."},e.prototype.everyMinute=function(){return"every minute"},e.prototype.everyHour=function(){return"every hour"},e.prototype.atSpace=function(){return"At "},e.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},e.prototype.at=function(){return"At"},e.prototype.spaceAnd=function(){return" and"},e.prototype.everySecond=function(){return"every second"},e.prototype.everyX0Seconds=function(){return"every %s seconds"},e.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},e.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},e.prototype.everyX0Minutes=function(){return"every %s minutes"},e.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},e.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},e.prototype.everyX0Hours=function(){return"every %s hours"},e.prototype.betweenX0AndX1=function(){return"between %s and %s"},e.prototype.atX0=function(){return"at %s"},e.prototype.commaEveryDay=function(){return", every day"},e.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},e.prototype.commaX0ThroughX1=function(){return", %s through %s"},e.prototype.first=function(){return"first"},e.prototype.second=function(){return"second"},e.prototype.third=function(){return"third"},e.prototype.fourth=function(){return"fourth"},e.prototype.fifth=function(){return"fifth"},e.prototype.commaOnThe=function(){return", on the "},e.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},e.prototype.lastDay=function(){return"the last day"},e.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},e.prototype.commaOnlyOnX0=function(){return", only on %s"},e.prototype.commaAndOnX0=function(){return", and on %s"},e.prototype.commaEveryX0Months=function(){return", every %s months"},e.prototype.commaOnlyInX0=function(){return", only in %s"},e.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},e.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},e.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},e.prototype.firstWeekday=function(){return"first weekday"},e.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},e.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},e.prototype.commaEveryX0Days=function(){return", every %s days"},e.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},e.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},e.prototype.commaEveryHour=function(){return", every hour"},e.prototype.commaEveryX0Years=function(){return", every %s years"},e.prototype.commaStartingX0=function(){return", starting %s"},e.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},e.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},e}();t.en=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=n(5);r.ExpressionDescriptor.initialize(new i.enLocaleLoader),t.default=r.ExpressionDescriptor;var o=r.ExpressionDescriptor.toString;t.toString=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),i=function(){function e(){}return e.prototype.load=function(e){e["en"]=new r.en},e}();t.enLocaleLoader=i}])}))},"212d":function(e,t,n){var r=n("bf10"),i=n("201b"),o=r(i,"Promise");e.exports=o},"21c2":function(e,t,n){var r=n("1a0c");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var i=n("0ed3").default;i("c3c33c32",r,!0,{sourceMap:!1,shadowMode:!1})},"220e":function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,'.chart-container{display:flex;background-color:var(--body-bg);position:relative;border:1px solid var(--border);border-radius:var(--border-radius);min-height:100px}.chart-container .loading-container{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--border-radius);background-color:var(--body-bg);z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column}.chart-container .loading-container i{font-size:24px}.chart-container #tree{width:70%;height:-moz-fit-content;height:fit-content}.chart-container #tree svg{margin-top:3px}.chart-container #tree .link{stroke:var(--darker)}.chart-container #tree .node{cursor:pointer}.chart-container #tree .node.active .node-hover-layer{display:block}.chart-container #tree .node.repo.active>circle{transform:scale(1.2)}.chart-container #tree .node.bundle.active>circle{transform:scale(1.35)}.chart-container #tree .node.bundle-deployment.active>circle{transform:scale(1.6)}.chart-container #tree .node.node-default-fill>circle,.chart-container #tree .node.repo>circle{fill:var(--muted)}.chart-container #tree .node:not(.repo).node-success>circle{fill:var(--success)}.chart-container #tree .node:not(.repo).node-info>circle{fill:var(--info)}.chart-container #tree .node:not(.repo).node-warning>circle{fill:var(--warning)}.chart-container #tree .node:not(.repo).node-error>circle{fill:var(--error)}.chart-container #tree .node .node-hover-layer{stroke:var(--body-bg);stroke-width:2;display:none}.chart-container .more-info-container{width:30%;position:relative;border-left:1px solid var(--border);background-color:var(--body-bg);overflow:hidden}.chart-container .more-info-container,.chart-container .more-info-container .more-info{border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}.chart-container .more-info-container .more-info{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;padding:20px;overflow-y:auto}.chart-container .more-info-container .more-info table td{vertical-align:top;padding-bottom:10px}.chart-container .more-info-container .more-info table td.align-middle{vertical-align:middle}.chart-container .more-info-container .more-info table .more-info-item-label{color:var(--darker);margin-right:8px}.chart-container .more-info-container .more-info table .single-error{color:var(--error)}.chart-container .more-info-container .more-info table p{line-height:1.5em}',""]),e.exports=t},2211:function(e,t,n){var r=n("75cd");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var i=n("0ed3").default;i("7f4502b3",r,!0,{sourceMap:!1,shadowMode:!1})},"22a0":function(e,t,n){"use strict";n.r(t);var r=function(){var e=this,t=e._self._c;return t("div",{staticClass:"mt-20 mb-20 sources__container"},[t("div",[t("LabeledInput",{ref:"authorityName",staticClass:"mb-20 mt-20",attrs:{type:"multiline",label:e.t("kubewarden.policyServerConfig.sourceAuthorities.endpoint"),mode:e.mode,disabled:e.isView,placeholder:e.t("kubewarden.policyServerConfig.sourceAuthorities.placeholder"),required:""},model:{value:e.value.registryName,callback:function(t){e.$set(e.value,"registryName",t)},expression:"value.registryName"}}),[e._l(e.value.certs,(function(n,r){return[t("div",{key:r,staticClass:"sources__container__cert"},[t("LabeledInput",{ref:"authorityCert",refInFor:!0,staticClass:"p-10 col span-6",attrs:{type:"multiline",label:e.t("kubewarden.policyServerConfig.sourceAuthorities.certificate.label"),mode:e.mode,disabled:e.isView,required:"",placeholder:e.t("secret.certificate.certificatePlaceholder")},model:{value:e.value.certs[r],callback:function(t){e.$set(e.value.certs,r,t)},expression:"value.certs[cIndex]"}}),t("div",{staticClass:"remove"},[t("button",{staticClass:"btn role-link remove",attrs:{type:"button",disabled:e.isView},on:{click:function(t){return e.removeCert(r)}}},[e._v(" "+e._s(e.t("kubewarden.policyServerConfig.sourceAuthorities.certificate.remove"))+" ")])])],1)]})),t("button",{staticClass:"btn role-tertiary add",attrs:{type:"button",disabled:e.isView},on:{click:function(t){return e.addCertificate()}}},[e._v(" "+e._s(e.t("kubewarden.policyServerConfig.sourceAuthorities.certificate.add"))+" ")]),t("FileSelector",{staticClass:"btn role-link",attrs:{label:e.t("kubewarden.policyServerConfig.sourceAuthorities.certificate.file"),disabled:e.isView},on:{selected:function(t){return e.handleSelectFile(t)}}})]],2),e._t("remove"),t("hr",{staticClass:"mt-20 mb-20"})],2)},i=[],o=n("da25"),a=n("bddd"),s=n("8b2c"),l=n("8e93"),u={props:{mode:{type:String,default:o["t"]},value:{type:Object,default:()=>{}}},components:{FileSelector:s["b"],LabeledInput:l["a"]},watch:{"value.registryName":"update","value.certs":{deep:!0,handler:"update"}},computed:{isView(){return this.mode===o["A"]}},methods:{addCertificate(){this.value.certs.push("")},handleSelectFile(e){Object(s["a"])("crt"),this.value.certs.push(e)},removeCert(e){Object(a["h"])(this.value.certs,e)},update(){this.$emit("update",this.value)}}},c=u,d=(n("8ba4"),n("d802")),p=Object(d["a"])(c,r,i,!1,null,"6f180288",null);t["default"]=p.exports},2357:function(e,t,n){var r=n("e972"),i=/^\s+/;function o(e){return e?e.slice(0,r(e)+1).replace(i,""):e}e.exports=o},2359:function(e,t,n){"use strict";var r=n("9ce4"),i=n("907c"),o=n("8535");const a="ns",s="project",l=a+"://",u=s+"://";var c=n("6d47");const d=e=>{const t=e["management/byId"](i["l"].SETTING,o["b"].UI_PERFORMANCE);let n={};if(null!==t&&void 0!==t&&t.value)try{n=JSON.parse(t.value)}catch(r){console.warn("ui-performance setting contains invalid data")}return Object.assign(o["a"],n||{})};class p{isApplicable(e){return Array.isArray(e.namespaced)}isEnabled(e){var t;const n=e["currentProduct"];if("cluster"!==(null===n||void 0===n?void 0:n.inStore))return!1;if(null!==n&&void 0!==n&&n.showWorkspaceSwitcher)return!1;const r=d(e);return!(null===(t=r.forceNsFilterV2)||void 0===t||!t.enabled)}checkAndCreateParam(e){return this.isApplicable(e)?this.createParam(e.namespaced):""}createParam(e){if(!e||!e.length)return"";const t=e.map(e=>e.replace(l,"").replace(u,"")).join(",");return`${p.param}=${t}`}}p.param="projectsornamespaces";var f=new p,h={data(){return{forceUpdateLiveAndDelayed:0}},computed:{...Object(r["a"])(["currentProduct","currentCluster","namespaceFilters"]),namespaceFilterRequired(){return this.__namespaceRequired&&!this.__validFilter},namespaceFilter(){return this.__namespaceRequired?this.__validFilter:""},__validFilter(){const e=this.namespaceFilters.length&&this.namespaceFilters.every(e=>e.startsWith(a)||e.startsWith(s));return e?this.namespaceFilters:null},__namespaceRequired(){return!!f.isEnabled(this.$store.getters)&&this.__areResourcesNamespaced},__areResourcesNamespaced(){return"cluster"===this.currentProduct.inStore&&(this.loadResources||[]).every(e=>{var t;const n=this.$store.getters["cluster/schemaFor"](e);return null===n||void 0===n||null===(t=n.attributes)||void 0===t?void 0:t.namespaced})}},watch:{async namespaceFilter(e){e&&(this.$options.name!==c["a"]&&this.$fetch&&await this.$fetch(),this.forceUpdateLiveAndDelayed=(new Date).getTime())}}};const v=4;t["a"]={mixins:[h],data(){const e=this.$store.getters["management/byId"](i["l"].SETTING,o["b"].UI_PERFORMANCE);let t={};if(e&&e.value)try{t=JSON.parse(e.value)}catch(n){console.warn("ui-performance setting contains invalid data")}else t=o["a"];return{perfConfig:t,init:!1,multipleResources:[],loadResources:[this.resource],hasManualRefresh:!1,watch:!0,isTooManyItemsToAutoUpdate:!1,force:!1,incremental:!1,fetchedResourceType:[]}},beforeDestroy(){this.init&&(this.$store.dispatch("resource-fetch/clearData"),this.fetchedResourceType.forEach(e=>{this.$store.dispatch(e.currStore+"/incrementLoadCounter",e.type)}))},computed:{...Object(r["a"])({refreshFlag:"resource-fetch/refreshFlag"}),rows(){const e=this.fetchedResourceType.find(e=>e.type===this.resource);return e?this.$store.getters[e.currStore+"/all"](this.resource):[]},loading(){return!this.rows.length&&this.$fetchState.pending}},watch:{refreshFlag(e){this.init&&e&&this.$fetch()}},methods:{$initializeFetchData(e,t=[],n){if(!this.init){const r=n||this.$store.getters["currentStore"]();this.__gatherResourceFetchData(e,t,r),this.watch||(this.force=!0),this.isTooManyItemsToAutoUpdate&&(this.hasManualRefresh=!0)}},$fetchType(e,t=[],n){var r;const i=n||this.$store.getters["currentStore"]();this.$initializeFetchData(e,t,i),this.fetchedResourceType.find(t=>t.type===e)||this.fetchedResourceType.push({type:e,currStore:i});let o=0;if(this.incremental){const t=this.__getCountForResources([e],this.namespaceFilter,i);o=Math.ceil(t/v)}const a={incremental:o,watch:this.watch,force:this.force,hasManualRefresh:this.hasManualRefresh},s=this.$store.getters[i+"/schemaFor"](e);return null!==s&&void 0!==s&&null!==(r=s.attributes)&&void 0!==r&&r.namespaced&&(a.namespaced=this.namespaceFilter),this.$store.dispatch(i+"/findAll",{type:e,opt:a})},__getCountForResources(e,t,n){const r=n||this.$store.getters["currentStore"]();return e.reduce((e,n)=>e+this.__getCountForResource(n,t,r),0)},__getCountForResource(e,t,n){var r,o,a;const s=null===(r=this.$store.getters[n+"/all"](i["d"])[0])||void 0===r?void 0:r.counts[""+e],l=t&&null!==s&&void 0!==s&&s.namespaces?null===s||void 0===s||null===(o=s.namespaces[t])||void 0===o?void 0:o.count:null===s||void 0===s||null===(a=s.summary)||void 0===a?void 0:a.count;return l||0},__gatherResourceFetchData(e,t,n){var r,i,o,a,s,l,u,c;this.init=!0;const d=null===(r=this.perfConfig)||void 0===r||null===(i=r.manualRefresh)||void 0===i?void 0:i.enabled,p=parseInt((null===(o=this.perfConfig)||void 0===o||null===(a=o.manualRefresh)||void 0===a?void 0:a.threshold)||"0",10),f=null===(s=this.perfConfig)||void 0===s||null===(l=s.incrementalLoading)||void 0===l?void 0:l.enabled,h=parseInt((null===(u=this.perfConfig)||void 0===u||null===(c=u.incrementalLoading)||void 0===c?void 0:c.threshold)||"0",10);this.multipleResources=t;let v=0,m=!0,g=!1,b=!1;const y=this.multipleResources.length?this.multipleResources:[e];v=this.__getCountForResources(y,this.namespaceFilter,n),d&&v>=p&&(m=!1,g=!0),b=f&&h>0&&v>=h,this.$store.dispatch("resource-fetch/updateIsTooManyItems",g),this.watch=m,this.isTooManyItemsToAutoUpdate=g,this.incremental=b}}}},2419:function(e,t,n){var r=n("872c"),i=n("aa31"),o=n("7049");function a(e){var t=-1,n=null==e?0:e.length;this.__data__=new r;while(++to){var v=s.slice(o),m=l.slice(o),g=t.processLines(e.isCombined,v,m);n.left+=g.left,n.right+=g.right}})),s=[],l=[]}for(var c=0;c0||p.type!==r.LINE_TYPE.DELETES&&s.length>0)&&u(),p.type===r.LINE_TYPE.CONTEXT?(n.left+=t.generateSingleLineHtml(e.isCombined,p.type,p.oldNumber,h,f),n.right+=t.generateSingleLineHtml(e.isCombined,p.type,p.newNumber,h,f)):p.type!==r.LINE_TYPE.INSERTS||s.length?p.type===r.LINE_TYPE.DELETES?s.push(p):p.type===r.LINE_TYPE.INSERTS&&Boolean(s.length)?l.push(p):(console.error("unknown state in html side-by-side generator"),u()):(n.left+=t.generateSingleLineHtml(e.isCombined,r.LINE_TYPE.CONTEXT,"","",""),n.right+=t.generateSingleLineHtml(e.isCombined,p.type,p.newNumber,h,f))}u()})),n},p.prototype.processLines=function(e,t,n){for(var i=this,a={left:"",right:""},s=Math.max(t.length,n.length),l=0;lspan>span[data-v-42527a3a]:last-of-type{padding-bottom:0}.step-sequence .steps li.step[data-v-42527a3a]:last-of-type{flex-grow:0}.step-sequence .steps li.step .controls[data-v-42527a3a]{display:flex;flex-direction:column;align-items:center;width:40px;overflow:visible;padding-top:15px}.step-sequence .steps li.step .controls>span[data-v-42527a3a]{padding-bottom:5px;margin-bottom:5px;white-space:nowrap}.step-sequence .steps li.step.active .controls[data-v-42527a3a]{color:var(--primary)}.step-sequence .steps li.step:not(.disabled) .controls:hover>*[data-v-42527a3a]{color:var(--primary)!important;cursor:pointer}.step-sequence .steps li.step:not(.active) .controls>*[data-v-42527a3a]{color:var(--input-disabled-text);text-decoration:none}.step-sequence .steps .divider[data-v-42527a3a]{flex-basis:100%;border-top:1px solid var(--border);position:relative;top:25px}.step-container[data-v-42527a3a]{display:flex;flex-direction:column;justify-content:center;align-items:center}",""]),e.exports=t},2971:function(e,t,n){var r=n("b32b");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var i=n("0ed3").default;i("54cdf764",r,!0,{sourceMap:!1,shadowMode:!1})},"2a46":function(e,t,n){var r=n("0e19"),i=n("ff00"),o=n("b4b4"),a="[object Object]",s=Function.prototype,l=Object.prototype,u=s.toString,c=l.hasOwnProperty,d=u.call(Object);function p(e){if(!o(e)||r(e)!=a)return!1;var t=i(e);if(null===t)return!0;var n=c.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==d}e.exports=p},"2b35":function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));const r=(e,t="",n=3e6,r=500,i=!1)=>{return o("Starting wait for",t),new Promise((i,a)=>{e()&&(o("Wait for",t||"unknown","done immediately"),i(void 0));const s=setTimeout(()=>{if(o("Wait for",t,"timed out"),clearInterval(l),clearTimeout(s),!t)throw new Error(`waitFor timed out after ${n/1e3} seconds`);a(new Error("Failed waiting for: "+t))},n),l=setInterval(()=>{e()?(o("Wait for",t,"done"),clearInterval(l),clearTimeout(s),i(void 0)):t&&o("Wait for",t,"not done yet")},r)});function o(...e){i&&console.log(...e)}}},"2c25":function(e,t,n){"use strict";n("8957")},"2cb5":function(e,t,n){"use strict";function r(e){return x(e||"").split("-").map(e=>i(e)).join(" ")}function i(e){return e=e||"",e.substr(0,1).toUpperCase()+e.substr(1)}function o(e,t,n=" ",r=!1){if(e=""+e,e.length>=t)return e;const i=t-e.length+1,o=new Array(i).join(n).substr(0,i);return r?e+o:o+e}n.d(t,"b",(function(){return r})),n.d(t,"r",(function(){return i})),n.d(t,"q",(function(){return o})),n.d(t,"f",(function(){return s})),n.d(t,"g",(function(){return l})),n.d(t,"n",(function(){return h})),n.d(t,"h",(function(){return v})),n.d(t,"m",(function(){return m})),n.d(t,"o",(function(){return g})),n.d(t,"i",(function(){return b})),n.d(t,"d",(function(){return x})),n.d(t,"a",(function(){return k})),n.d(t,"c",(function(){return S})),n.d(t,"k",(function(){return C})),n.d(t,"e",(function(){return A})),n.d(t,"l",(function(){return E})),n.d(t,"p",(function(){return T})),n.d(t,"j",(function(){return N}));const a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function s(e){return String(e).replace(/[&<>"']/g,e=>a[e])}function l(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function u(e){e=Math.max(0,e||1);const t=[];let n;if(window.crypto&&window.crypto.getRandomValues){const r=new Uint32Array(e);for(window.crypto.getRandomValues(r),n=0;nt[e%t.length]).join(""):null}function v(e,t=2){return e<1&&t>=2?Math.round(100*e)/100+"%":e<10&&t>=1?Math.round(10*e)/10+"%":Math.round(e)+"%"}function m(e){return e.match(/.*[^aeiou]y$/i)?e.substr(0,e.length-1)+"ies":e.endsWith("ics")?e:e.endsWith("s")?e+"es":e+"s"}function g(e,t,n){return e.reduce((r,i,o)=>(o>=5||(r+=`${s(i)}`,o===e.length-1?r+=t:r+=o===e.length-2?n("generic.and"):n("generic.comma")),r),"")}function b(e,t=2,n=" ",r=null){e="string"===typeof e?e.split(/\n/):e||[];const i=new Array(t+1).join(n),o=e.map(e=>{let t="",n=e;if(r){const i=e.match(r);i&&(t=i[i.length-1],n=e.substr(i[0].length))}return`${t}${i}${n}`}),a=o.join("\n");return a}const y=/([a-z\d])([A-Z])/g;function w(e){return e.replace(y,"$1_$2").toLowerCase()}const _=/[ _]/g;function x(e){return w(e).replace(_,"-")}function k(e){return e=e||"",!e.match(/[^\r\n\t\x20-\x7F]/)}function S(e,t){return"float"===t?e=parseFloat(e)||null:"int"===t?(e=parseInt(e,10),isNaN(e)&&(e=null)):"boolean"===t&&("true"===e.toLowerCase()?e=!0:"false"===e.toLowerCase()&&(e=!1)),e}function C(e,t=[]){return t.some(t=>{const n=e||"",r=A(t);return n.match(r)})}function A(e,t=!0){return"string"===typeof e?t?new RegExp(`^${l(e)}$`,"i"):new RegExp(""+l(e),"i"):e}function E(e){return s(e||"").replace(/(\r\n|\r|\n)/g,"
    \n")}const O=/[^."']+|"([^"]*)"|'([^']*)'/g;function T(e){return e.includes('"')||e.includes("'")?e.match(O).map(e=>e.replace(/['"]/g,"")):e.split(".")}function N(e){let t="";for(const n of e)n.includes(".")?t+=`."${n}"`:t+="."+n;return t.startsWith(".")&&(t=t.substr(1)),t}},"2cbd":function(e,t){function n(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}e.exports=n},"2da2":function(e,t,n){var r=n("8148");r.Template=n("340e").Template,r.template=r.Template,e.exports=r},"2e63":function(e,t){function n(e,t){var n=-1,r=null==e?0:e.length;while(++n=0;u--)if(a=n[u],o=t(e,a,l),void 0!==o){s=!0;break}return s?(i||"function"!=typeof o||(o=this.mv(o,n,r)),o):!i&&""},ls:function(e,t,n,r,i){var o=this.options.delimiters;return this.options.delimiters=i,this.b(this.ct(u(e.call(t,r)),t,n)),this.options.delimiters=o,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:function(e){this.buf+=e},fl:function(){var e=this.buf;return this.buf="",e},ms:function(e,t,n,r,i,o,a){var s,l=t[t.length-1],u=e.call(l);return"function"==typeof u?!!r||(s=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(u,l,n,s.substring(i,o),a)):u},mv:function(e,t,n){var r=t[t.length-1],i=e.call(r);return"function"==typeof i?this.ct(u(i.call(r)),r,n):i},sub:function(e,t,n,r){var i=this.subs[e];i&&(this.activeSub=e,i(t,n,this,r),this.activeSub=!1)}};var r=/&/g,i=//g,a=/\'/g,s=/\"/g,l=/[&<>\"\']/;function u(e){return String(null===e||void 0===e?"":e)}function c(e){return e=u(e),l.test(e)?e.replace(r,"&").replace(i,"<").replace(o,">").replace(a,"'").replace(s,"""):e}var d=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}})(t)},3440:function(e,t,n){"use strict";n("31fa")},"356f":function(e,t,n){var r=n("2589"),i=n("cfe4");function o(e,t){return null!=e&&i(e,t,r)}e.exports=o},3584:function(e,t,n){var r=n("06a5"),i=n("b4b4");function o(e,t,n,a,s){return e===t||(null==e||null==t||!i(e)&&!i(t)?e!==e&&t!==t:r(e,t,n,a,o,s))}e.exports=o},"35bb":function(e,t,n){var r=n("8045"),i=n("494f"),o=n("4fab"),a=o&&o.isMap,s=a?i(a):r;e.exports=s},"35d9":function(e,t,n){var r=n("f72d"),i=n("b4b4");function o(e){return i(e)&&r(e)}e.exports=o},"37a3":function(e,t,n){"use strict";n("ac48")},"37bb":function(e,t){(function(){var t={};function n(e,t){if(0===e.length)return t.length;if(0===t.length)return e.length;var n,r,i=[];for(n=0;n<=t.length;n++)i[n]=[n];for(r=0;r<=e.length;r++)i[0][r]=r;for(n=1;n<=t.length;n++)for(r=1;r<=e.length;r++)t.charAt(n-1)===e.charAt(r-1)?i[n][r]=i[n-1][r-1]:i[n][r]=Math.min(i[n-1][r-1]+1,Math.min(i[n][r-1]+1,i[n-1][r]+1));return i[t.length][e.length]}t.levenshtein=n,t.distance=function(e,t){e=e.trim(),t=t.trim();var r=n(e,t),i=r/(e.length+t.length);return i},t.rematch=function(e){function t(t,n,r){for(var i,o=1/0,a=0;a0||a.indexB>0)&&(b=v.concat(b)),(e.length>d||r.length>p)&&(b=b.concat(g)),b}return n},e.exports.Rematch=t})()},"37db":function(e,t,n){"use strict";n("b966")},"37e3":function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".root[data-v-be221288]{max-width:100%;position:relative;overflow:auto}",""]),e.exports=t},3819:function(e,t,n){var r=n("bf10"),i=n("201b"),o=r(i,"Set");e.exports=o},"38de":function(e,t,n){"use strict";var r=function(){var e=this,t=e._self._c;return t("section",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}],attrs:{id:e.name,"aria-hidden":!e.active,role:"tabpanel"}},[e.shouldShowHeader?t("div",{staticClass:"tab-header"},[t("h2",[e._v(" "+e._s(e.labelDisplay)+" "),e.tooltip?t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:e.tooltip,expression:"tooltip"}],staticClass:"icon icon-info icon-lg"}):e._e()]),e._t("tab-header-right")],2):e._e(),e._t("default",null,null,{active:e.active})],2)},i=[],o={inject:["addTab","removeTab","sideTabs"],props:{label:{default:null,type:String},labelKey:{default:null,type:String},name:{required:!0,type:String},tooltip:{default:null,type:[String,Object]},weight:{default:0,required:!1,type:Number},showHeader:{type:Boolean,default:null},displayAlertIcon:{type:Boolean,default:null},error:{type:Boolean,default:!1},badge:{default:0,required:!1,type:Number}},data(){return{active:null}},computed:{labelDisplay(){return this.labelKey?this.$store.getters["i18n/t"](this.labelKey):this.label?this.label:this.name},shouldShowHeader(){return null!==this.showHeader?this.showHeader:this.sideTabs||!1}},watch:{active(e){e&&this.$emit("active")}},mounted(){this.addTab(this)},beforeDestroy(){this.removeTab(this)}},a=o,s=(n("94fd"),n("d802")),l=Object(s["a"])(a,r,i,!1,null,"667bdd63",null);t["a"]=l.exports},3973:function(e,t,n){"use strict";n("4914")},"39f2":function(e,t,n){var r=n("73b4");function i(e,t){var n=null==e?0:e.length;return!!n&&r(e,t,0)>-1}e.exports=i},"3ac3":function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".labeled-select[data-v-0abf511e]{position:relative;padding-bottom:1px}.labeled-select.no-label.compact-input[data-v-0abf511e] .vs__actions:after{top:-2px}.labeled-select.no-label.compact-input .labeled-container[data-v-0abf511e]{padding:5px 0 1px 10px}.labeled-select.no-label[data-v-0abf511e]:not(.compact-input){height:61px;padding-top:4px}.labeled-select.no-label[data-v-0abf511e]:not(.compact-input) .vs__actions:after{top:0}.labeled-select .icon-spinner[data-v-0abf511e]{position:absolute;left:calc(50% - .5em);top:calc(50% - .5em)}.labeled-select .labeled-container[data-v-0abf511e]{padding:7px 0 0 10px;padding:10px 0 0 10px}.labeled-select .labeled-container label[data-v-0abf511e]{margin:0}.labeled-select .labeled-container .selected[data-v-0abf511e]{background-color:transparent}.labeled-select.view.labeled-input .labeled-container[data-v-0abf511e]{padding:0}.labeled-select.taggable.compact-input[data-v-0abf511e]{min-height:40px}.labeled-select.taggable.compact-input[data-v-0abf511e] .vs__selected-options{padding-top:8px!important}.labeled-select.taggable[data-v-0abf511e]:not(.compact-input){min-height:61px}.labeled-select.taggable[data-v-0abf511e]:not(.compact-input) .vs__selected-options{margin-top:0}.labeled-select[data-v-0abf511e]:not(.taggable) .vs__selected-options .vs__selected{width:100%}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options{padding:3px 0}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options .vs__selected{border-color:var(--accent-btn);height:20px;min-height:unset!important;padding:0 0 0 7px!important}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options .vs__selected>button{height:20px;line-height:14px}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options .vs__selected>button:hover{background-color:var(--primary);border-radius:0}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options .vs__selected>button:hover:after{color:#fff}.labeled-select[data-v-0abf511e] .vs__selected-options{margin-top:-5px}.labeled-select[data-v-0abf511e] .v-select:not(.vs--single) .vs__selected-options{padding:5px 0}.labeled-select[data-v-0abf511e] .vs__actions:after{position:relative;top:-10px}.labeled-select[data-v-0abf511e] .v-select.vs--open .vs__dropdown-toggle{color:var(--outline)!important}[data-v-0abf511e] .labeled-select.disabled .labeled-container,[data-v-0abf511e] .labeled-select.disabled .vs__dropdown-toggle,[data-v-0abf511e] .labeled-select.disabled input,[data-v-0abf511e] .labeled-select.disabled label{cursor:not-allowed}.labeled-select .no-label[data-v-0abf511e].v-select:not(.vs--single){min-height:33px}.labeled-select .no-label[data-v-0abf511e].selected{padding-top:8px;padding-bottom:9px;position:relative;max-height:2.3em;overflow:hidden}.labeled-select .no-label[data-v-0abf511e] .vs__selected-options{padding:8px 0 7px 0}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group[data-v-0abf511e]{display:flex}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>b[data-v-0abf511e]{flex:1}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>div[data-v-0abf511e]{background-color:var(--primary);border-radius:4px;color:var(--primary-text);font-size:12px;height:18px;line-height:18px;margin-top:1px;padding:0 10px}.vs__dropdown-option>.option-kind-highlighted[data-v-0abf511e]{color:var(--dropdown-highlight-text)}.vs__dropdown-option.vs__dropdown-option--highlight>.option-kind-highlighted[data-v-0abf511e],.vs__dropdown-option.vs__dropdown-option--selected>.option-kind-highlighted[data-v-0abf511e],.vs__dropdown-option>.option-kind-highlighted[data-v-0abf511e]:hover{color:var(--dropdown-hover-text)}",""]),e.exports=t},"3ad3":function(e,t,n){var r=n("4c0b"),i=r(Object.keys,Object);e.exports=i},"3b54":function(e,t,n){var r=n("c364"),i=n("cb86"),o=n("c68c");function a(e,t,n){var a=-1,s=t.length,l={};while(++a({})}},components:{Authority:l["default"]},fetch(){if(this.value)for(const[e,t]of Object.entries(this.value))this.rows.push({registryName:e,certs:t});else this.value={}},data(){return{rows:[]}},computed:{isView(){return this.mode===o["A"]}},methods:{addRegistry(){this.rows.push({registryName:"",certs:[]})},deleteAuthority(e){if(!Object(s["h"])(this.value)){const t=Object.keys(this.value)[e];this.$delete(this.value,[t])}},removeRegistry(e){Object(a["h"])(this.rows,e),this.deleteAuthority(e)},updateAuthority(e,t){const{registryName:n,certs:r}=e;Object(s["h"])(this.value)||this.deleteAuthority(t),this.$set(this.value,[n],r||[]),this.$emit("update",this.value)}}},c=u,d=(n("68ed"),n("d802")),p=Object(d["a"])(c,r,i,!1,null,"3addd9fe",null);t["default"]=p.exports},"3ca3":function(e,t,n){"use strict";n.r(t),n.d(t,"DEFAULT_POLICY_SERVER",(function(){return u})),n.d(t,"default",(function(){return c}));var r=n("330a"),i=n.n(r),o=n("907c"),a=n("90cd"),s=n("d892");class l extends s["i"]{get _availableActions(){const e=super._availableActions,t={action:"openLogs",enabled:!0,icon:"icon icon-fw icon-chevron-right",label:"View Logs"};return e.unshift(t),e}get allRelatedPolicies(){return async()=>{const e=this.$rootGetters["currentProduct"].inStore,t=[a["a"].ADMISSION_POLICY,a["a"].CLUSTER_ADMISSION_POLICY],n=t.map(t=>this.$dispatch(e+"/findAll",{type:t,opt:{force:!0}},{root:!0}));try{const e=await Promise.all(n);if(e)return e.flatMap(e=>e).filter(e=>{var t,n;return(null===(t=e.spec)||void 0===t?void 0:t.policyServer)===(null===(n=this.metadata)||void 0===n?void 0:n.name)})}catch(r){console.warn("Error fetching related policies: "+r)}}}get policyGauges(){return async()=>{const e={},t=["Active","Pending"],n=await this.allRelatedPolicies();if(!n)return e;for(const r of t.values())e[r]||(e[r]={color:Object(s["g"])(r).replace("text-",""),count:0});return null===n||void 0===n||n.map(t=>{const{stateDisplay:n}=t;e[n].count++}),e}}get tracesGauges(){return e=>{const t={};return i()(e)||null===e||void 0===e||e.map(e=>{const{allowed:n,mode:r,mutated:i}=e;"monitor"!==r&&(t["Denied"]&&!n?t["Denied"].count++:n?t["Mutated"]&&i?t["Mutated"].count++:i&&n&&(t["Mutated"]={color:Object(s["h"])("mutated"),count:1}):t["Denied"]={color:Object(s["h"])("denied"),count:1})}),t}}get filteredValidations(){return async({service:e})=>{var t,n;const r=await this.jaegerValidations({jaegerService:e}),i=this.traceTableRows(r),o=`${null===(t=this.spec)||void 0===t?void 0:t.serviceAccountName}-${null===(n=this.metadata)||void 0===n?void 0:n.name}`;return i.filter(e=>e.host.includes(o))}}get matchingDeployment(){return async()=>{try{var e;const t=this.$rootGetters["currentProduct"].inStore;return await this.$dispatch(t+"/findMatching",{type:o["F"].DEPLOYMENT,selector:"kubewarden/policy-server="+(null===(e=this.metadata)||void 0===e?void 0:e.name)},{root:!0})}catch(t){console.warn("Error matching policy-server to deployment",t)}}}get matchingPods(){return async()=>{try{var e;const t=this.$rootGetters["currentProduct"].inStore;return await this.$dispatch(t+"/findMatching",{type:o["r"],selector:"app=kubewarden-policy-server-"+(null===(e=this.metadata)||void 0===e?void 0:e.name)},{root:!0})}catch(t){console.warn("Error matching policy-server to pod",t)}}}jaegerPolicyNameByPolicy(e){var t,n,r;let i=null;switch(e.type){case a["a"].CLUSTER_ADMISSION_POLICY:i="clusterwide-"+(null===(t=e.metadata)||void 0===t?void 0:t.name);break;case a["a"].ADMISSION_POLICY:i=`namespaced-${null===(n=e.metadata)||void 0===n?void 0:n.namespace}-${null===(r=e.metadata)||void 0===r?void 0:r.name}`;break;default:break}return i}async openLogs(){try{const e=await this.matchingPods();i()(e)||this.$dispatch("wm/open",{id:this.id+"-logs",label:this.nameDisplay,icon:"file",component:"ContainerLogs",attrs:{pod:e[0]}},{root:!0})}catch(e){console.warn("Error dispatching console for pod",e)}}}const u={apiVersion:"policies.kubewarden.io/v1alpha2",kind:"PolicyServer",metadata:{annotations:{},labels:{},name:""},spec:{annotations:{},env:[{name:"KUBEWARDEN_LOG_FMT",value:"otlp"},{name:"KUBEWARDEN_LOG_LEVEL",value:"info"}],image:"ghcr.io/kubewarden/policy-server:latest",replicas:1,serviceAccountName:"",verificationConfig:"",insecureSources:[],sourceAuthorities:{}}};class c extends l{}},"3daa":function(e,t,n){var r=n("5eaa");t=r(!1),t.push([e.i,".vertical[data-v-01996ade]{flex-direction:column;width:100%}.subtle[data-v-01996ade]{opacity:.7}.message-icon[data-v-01996ade]{display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column}.message-icon>I[data-v-01996ade]{font-size:64px;margin-bottom:20px}.message-icon>I.info[data-v-01996ade]{color:var(--primary)}.message-icon>I.error[data-v-01996ade]{color:var(--error)}.message-icon>I.warning[data-v-01996ade]{color:var(--warning)}.message-icon>I.success[data-v-01996ade]{color:var(--success)}.message-icon>.message[data-v-01996ade]{font-size:20px;margin-bottom:40px;max-width:60%;text-align:center;line-height:30px}",""]),e.exports=t},"3db8":function(e,t,n){"use strict";n.r(t);var r=function(){var e=this,t=e._self._c;return t("div",[t("div",{staticClass:"row"},[t("Banner",{directives:[{name:"clean-html",rawName:"v-clean-html",value:e.t("kubewarden.policyServerConfig.verification.description",{},!0),expression:"t('kubewarden.policyServerConfig.verification.description', {}, true)"}],staticClass:"type-banner mb-20 mt-0",attrs:{color:"info"}})],1),t("div",{staticClass:"row"},[t("div",{staticClass:"col span-6"},[t("LabeledSelect",{attrs:{mode:e.mode,label:e.t("kubewarden.policyServerConfig.verification.label"),options:e.configMaps,"option-key":"id","option-label":"id",reduce:e=>e.metadata.name},model:{value:e.value.verificationConfig,callback:function(t){e.$set(e.value,"verificationConfig",t)},expression:"value.verificationConfig"}})],1)])])},i=[],o=n("da25"),a=n("6418"),s=n("466b"),l={props:{mode:{type:String,default:o["r"]},value:{type:Object,default:null},configMaps:{type:Array,required:!0}},components:{Banner:a["a"],LabeledSelect:s["a"]}},u=l,c=n("d802"),d=Object(c["a"])(u,r,i,!1,null,null,null);t["default"]=d.exports},"3e09":function(e,t,n){ +/*! @license DOMPurify 2.4.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.5/LICENSE */ +(function(t,n){e.exports=n()})(0,(function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,n){return t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(e,n)}function n(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function r(e,i,o){return r=n()?Reflect.construct:function(e,n,r){var i=[null];i.push.apply(i,n);var o=Function.bind.apply(e,i),a=new o;return r&&t(a,r.prototype),a},r.apply(null,arguments)}function i(e){return o(e)||a(e)||s(e)||u()}function o(e){if(Array.isArray(e))return l(e)}function a(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function s(e,t){if(e){if("string"===typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?n-1:0),i=1;i/gm),X=m(/\${[\w\W]*}/gm),J=m(/^data-[\-\w.\u00B7-\uFFFF]/),Q=m(/^aria-[\-\w]+$/),Z=m(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ee=m(/^(?:\w+script|data):/i),te=m(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ne=m(/^html$/i),re=function(){return"undefined"===typeof window?null:window},ie=function(t,n){if("object"!==e(t)||"function"!==typeof t.createPolicy)return null;var r=null,i="data-tt-policy-suffix";n.currentScript&&n.currentScript.hasAttribute(i)&&(r=n.currentScript.getAttribute(i));var o="dompurify"+(r?"#"+r:"");try{return t.createPolicy(o,{createHTML:function(e){return e},createScriptURL:function(e){return e}})}catch(a){return console.warn("TrustedTypes policy "+o+" could not be created."),null}};function oe(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:re(),n=function(e){return oe(e)};if(n.version="2.4.5",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var r=t.document,o=t.document,a=t.DocumentFragment,s=t.HTMLTemplateElement,l=t.Node,u=t.Element,c=t.NodeFilter,d=t.NamedNodeMap,p=void 0===d?t.NamedNodeMap||t.MozNamedAttrMap:d,f=t.HTMLFormElement,h=t.DOMParser,m=t.trustedTypes,g=u.prototype,b=$(g,"cloneNode"),y=$(g,"nextSibling"),w=$(g,"childNodes"),L=$(g,"parentNode");if("function"===typeof s){var I=o.createElement("template");I.content&&I.content.ownerDocument&&(o=I.content.ownerDocument)}var ae=ie(m,r),se=ae?ae.createHTML(""):"",le=o,ue=le.implementation,ce=le.createNodeIterator,de=le.createDocumentFragment,pe=le.getElementsByTagName,fe=r.importNode,he={};try{he=j(o).documentMode?o.documentMode:{}}catch(It){}var ve={};n.isSupported="function"===typeof L&&ue&&"undefined"!==typeof ue.createHTMLDocument&&9!==he;var me,ge,be=K,ye=W,we=X,_e=J,xe=Q,ke=ee,Se=te,Ce=Z,Ae=null,Ee=M({},[].concat(i(P),i(D),i(F),i(U),i(V))),Oe=null,Te=M({},[].concat(i(H),i(G),i(z),i(Y))),Ne=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Re=null,Le=null,Ie=!0,Me=!0,je=!1,$e=!0,Pe=!1,De=!1,Fe=!1,Be=!1,Ue=!1,qe=!1,Ve=!1,He=!0,Ge=!1,ze="user-content-",Ye=!0,Ke=!1,We={},Xe=null,Je=M({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Qe=null,Ze=M({},["audio","video","img","source","image","track"]),et=null,tt=M({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),nt="http://www.w3.org/1998/Math/MathML",rt="http://www.w3.org/2000/svg",it="http://www.w3.org/1999/xhtml",ot=it,at=!1,st=null,lt=M({},[nt,rt,it],C),ut=["application/xhtml+xml","text/html"],ct="text/html",dt=null,pt=o.createElement("form"),ft=function(e){return e instanceof RegExp||e instanceof Function},ht=function(t){dt&&dt===t||(t&&"object"===e(t)||(t={}),t=j(t),me=me=-1===ut.indexOf(t.PARSER_MEDIA_TYPE)?ct:t.PARSER_MEDIA_TYPE,ge="application/xhtml+xml"===me?C:S,Ae="ALLOWED_TAGS"in t?M({},t.ALLOWED_TAGS,ge):Ee,Oe="ALLOWED_ATTR"in t?M({},t.ALLOWED_ATTR,ge):Te,st="ALLOWED_NAMESPACES"in t?M({},t.ALLOWED_NAMESPACES,C):lt,et="ADD_URI_SAFE_ATTR"in t?M(j(tt),t.ADD_URI_SAFE_ATTR,ge):tt,Qe="ADD_DATA_URI_TAGS"in t?M(j(Ze),t.ADD_DATA_URI_TAGS,ge):Ze,Xe="FORBID_CONTENTS"in t?M({},t.FORBID_CONTENTS,ge):Je,Re="FORBID_TAGS"in t?M({},t.FORBID_TAGS,ge):{},Le="FORBID_ATTR"in t?M({},t.FORBID_ATTR,ge):{},We="USE_PROFILES"in t&&t.USE_PROFILES,Ie=!1!==t.ALLOW_ARIA_ATTR,Me=!1!==t.ALLOW_DATA_ATTR,je=t.ALLOW_UNKNOWN_PROTOCOLS||!1,$e=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,Pe=t.SAFE_FOR_TEMPLATES||!1,De=t.WHOLE_DOCUMENT||!1,Ue=t.RETURN_DOM||!1,qe=t.RETURN_DOM_FRAGMENT||!1,Ve=t.RETURN_TRUSTED_TYPE||!1,Be=t.FORCE_BODY||!1,He=!1!==t.SANITIZE_DOM,Ge=t.SANITIZE_NAMED_PROPS||!1,Ye=!1!==t.KEEP_CONTENT,Ke=t.IN_PLACE||!1,Ce=t.ALLOWED_URI_REGEXP||Ce,ot=t.NAMESPACE||it,Ne=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&ft(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ne.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&ft(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ne.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"===typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Ne.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Pe&&(Me=!1),qe&&(Ue=!0),We&&(Ae=M({},i(V)),Oe=[],!0===We.html&&(M(Ae,P),M(Oe,H)),!0===We.svg&&(M(Ae,D),M(Oe,G),M(Oe,Y)),!0===We.svgFilters&&(M(Ae,F),M(Oe,G),M(Oe,Y)),!0===We.mathMl&&(M(Ae,U),M(Oe,z),M(Oe,Y))),t.ADD_TAGS&&(Ae===Ee&&(Ae=j(Ae)),M(Ae,t.ADD_TAGS,ge)),t.ADD_ATTR&&(Oe===Te&&(Oe=j(Oe)),M(Oe,t.ADD_ATTR,ge)),t.ADD_URI_SAFE_ATTR&&M(et,t.ADD_URI_SAFE_ATTR,ge),t.FORBID_CONTENTS&&(Xe===Je&&(Xe=j(Xe)),M(Xe,t.FORBID_CONTENTS,ge)),Ye&&(Ae["#text"]=!0),De&&M(Ae,["html","head","body"]),Ae.table&&(M(Ae,["tbody"]),delete Re.tbody),v&&v(t),dt=t)},vt=M({},["mi","mo","mn","ms","mtext"]),mt=M({},["foreignobject","desc","title","annotation-xml"]),gt=M({},["title","style","font","a","script"]),bt=M({},D);M(bt,F),M(bt,B);var yt=M({},U);M(yt,q);var wt=function(e){var t=L(e);t&&t.tagName||(t={namespaceURI:ot,tagName:"template"});var n=S(e.tagName),r=S(t.tagName);return!!st[e.namespaceURI]&&(e.namespaceURI===rt?t.namespaceURI===it?"svg"===n:t.namespaceURI===nt?"svg"===n&&("annotation-xml"===r||vt[r]):Boolean(bt[n]):e.namespaceURI===nt?t.namespaceURI===it?"math"===n:t.namespaceURI===rt?"math"===n&&mt[r]:Boolean(yt[n]):e.namespaceURI===it?!(t.namespaceURI===rt&&!mt[r])&&(!(t.namespaceURI===nt&&!vt[r])&&(!yt[n]&&(gt[n]||!bt[n]))):!("application/xhtml+xml"!==me||!st[e.namespaceURI]))},_t=function(e){k(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(It){try{e.outerHTML=se}catch(It){e.remove()}}},xt=function(e,t){try{k(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(It){k(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Oe[e])if(Ue||qe)try{_t(t)}catch(It){}else try{t.setAttribute(e,"")}catch(It){}},kt=function(e){var t,n;if(Be)e=""+e;else{var r=A(e,/^[\r\n\t ]+/);n=r&&r[0]}"application/xhtml+xml"===me&&ot===it&&(e=''+e+"");var i=ae?ae.createHTML(e):e;if(ot===it)try{t=(new h).parseFromString(i,me)}catch(It){}if(!t||!t.documentElement){t=ue.createDocument(ot,"template",null);try{t.documentElement.innerHTML=at?se:i}catch(It){}}var a=t.body||t.documentElement;return e&&n&&a.insertBefore(o.createTextNode(n),a.childNodes[0]||null),ot===it?pe.call(t,De?"html":"body")[0]:De?t.documentElement:a},St=function(e){return ce.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},Ct=function(e){return e instanceof f&&("string"!==typeof e.nodeName||"string"!==typeof e.textContent||"function"!==typeof e.removeChild||!(e.attributes instanceof p)||"function"!==typeof e.removeAttribute||"function"!==typeof e.setAttribute||"string"!==typeof e.namespaceURI||"function"!==typeof e.insertBefore||"function"!==typeof e.hasChildNodes)},At=function(t){return"object"===e(l)?t instanceof l:t&&"object"===e(t)&&"number"===typeof t.nodeType&&"string"===typeof t.nodeName},Et=function(e,t,r){ve[e]&&_(ve[e],(function(e){e.call(n,t,r,dt)}))},Ot=function(e){var t;if(Et("beforeSanitizeElements",e,null),Ct(e))return _t(e),!0;if(N(/[\u0080-\uFFFF]/,e.nodeName))return _t(e),!0;var r=ge(e.nodeName);if(Et("uponSanitizeElement",e,{tagName:r,allowedTags:Ae}),e.hasChildNodes()&&!At(e.firstElementChild)&&(!At(e.content)||!At(e.content.firstElementChild))&&N(/<[/\w]/g,e.innerHTML)&&N(/<[/\w]/g,e.textContent))return _t(e),!0;if("select"===r&&N(/\n\n \n\n \n \n \n \n\n \n \n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResourceTable.vue?vue&type=template&id=63440008&\"\nimport script from \"./ResourceTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ResourceTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","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!./Bar.vue?vue&type=style&index=0&id=b4f4e2ae&prod&lang=scss&scoped=true&\"","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","// 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, \"button[data-v-f61d9b12]{all:unset;height:0;position:relative;top:-35px;float:right;margin-right:7px;cursor:pointer}button .align-value[data-v-f61d9b12]{padding-top:7px}.row.name-ns-description[data-v-f61d9b12]{max-height:61px}.row .namespace-select[data-v-f61d9b12] .labeled-select{min-width:40%}.row .namespace-select[data-v-f61d9b12] .labeled-select .v-select.inline.vs--single{padding-bottom:2px}.row.flip-direction[data-v-f61d9b12]{flex-direction:column}.row.flip-direction.name-ns-description[data-v-f61d9b12]{max-height:none}.row.flip-direction>div>*[data-v-f61d9b12]{margin-bottom:20px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.loading)?_c('div',{staticClass:\"loading-indicator\"},[(_vm.showMessage)?_c('div',{staticClass:\"overlay\",class:{ 'overlay-content-mode' : _vm.mode === 'content', 'overlay-main-mode' : _vm.mode === 'main' }},[_c('t',{attrs:{\"k\":\"generic.loading\",\"raw\":true}})],1):_vm._e()]):_c('div',[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=e765d1f4&scoped=true&\"\nimport script from \"./Loading.vue?vue&type=script&lang=js&\"\nexport * from \"./Loading.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&id=e765d1f4&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 \"e765d1f4\",\n null\n \n)\n\nexport default component.exports","var map = {\n\t\"./kubewarden/_index\": \"61e7\",\n\t\"./kubewarden/_index.vue\": \"61e7\",\n\t\"./kubewarden/admission\": \"f0e8\",\n\t\"./kubewarden/admission/\": \"f0e8\",\n\t\"./kubewarden/admission/ContextAware\": \"78b7\",\n\t\"./kubewarden/admission/ContextAware/\": \"78b7\",\n\t\"./kubewarden/admission/ContextAware/Resource\": \"01af\",\n\t\"./kubewarden/admission/ContextAware/Resource.vue\": \"01af\",\n\t\"./kubewarden/admission/ContextAware/index\": \"78b7\",\n\t\"./kubewarden/admission/ContextAware/index.vue\": \"78b7\",\n\t\"./kubewarden/admission/General\": \"ff83\",\n\t\"./kubewarden/admission/General.vue\": \"ff83\",\n\t\"./kubewarden/admission/Rules\": \"6b71\",\n\t\"./kubewarden/admission/Rules/\": \"6b71\",\n\t\"./kubewarden/admission/Rules/Rule\": \"63a1\",\n\t\"./kubewarden/admission/Rules/Rule.vue\": \"63a1\",\n\t\"./kubewarden/admission/Rules/index\": \"6b71\",\n\t\"./kubewarden/admission/Rules/index.vue\": \"6b71\",\n\t\"./kubewarden/admission/Settings\": \"4d67\",\n\t\"./kubewarden/admission/Settings.vue\": \"4d67\",\n\t\"./kubewarden/admission/index\": \"f0e8\",\n\t\"./kubewarden/admission/index.vue\": \"f0e8\",\n\t\"./kubewarden/policy-server\": \"b118\",\n\t\"./kubewarden/policy-server/\": \"b118\",\n\t\"./kubewarden/policy-server/General\": \"d8b3\",\n\t\"./kubewarden/policy-server/General.vue\": \"d8b3\",\n\t\"./kubewarden/policy-server/Registry/Authority\": \"22a0\",\n\t\"./kubewarden/policy-server/Registry/Authority.vue\": \"22a0\",\n\t\"./kubewarden/policy-server/Registry/Index\": \"6b48\",\n\t\"./kubewarden/policy-server/Registry/Index.vue\": \"6b48\",\n\t\"./kubewarden/policy-server/Registry/SourceAuthorities\": \"3c82\",\n\t\"./kubewarden/policy-server/Registry/SourceAuthorities.vue\": \"3c82\",\n\t\"./kubewarden/policy-server/Verification\": \"3db8\",\n\t\"./kubewarden/policy-server/Verification.vue\": \"3db8\",\n\t\"./kubewarden/policy-server/index\": \"b118\",\n\t\"./kubewarden/policy-server/index.vue\": \"b118\"\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"15d2\";\nmodule.exports = webpackAsyncContext;","// 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, \".code-mirror{z-index:0}.code-mirror .vue-codemirror .CodeMirror{height:auto;background:none}.code-mirror.as-text-area{min-height:40px;position:relative;display:block;box-sizing:border-box;width:100%;padding:10px;background-color:var(--input-bg);border-radius:var(--border-radius);border:solid var(--border-width) var(--input-border);color:var(--input-text)}.code-mirror.as-text-area:hover{border-color:var(--input-hover-border)}.code-mirror.as-text-area.focus,.code-mirror.as-text-area:focus{outline:none;border-color:var(--outline)}.code-mirror.as-text-area .CodeMirror-wrap pre{word-break:break-word}.code-mirror.as-text-area .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-even:before,.code-mirror.as-text-area .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-odd:before,.code-mirror.as-text-area .CodeMirror-code .CodeMirror-line:not(:last-child)>span:after{color:var(--muted);position:absolute;line-height:20px;pointer-events:none}.code-mirror.as-text-area .CodeMirror-code .CodeMirror-line:not(:last-child)>span:after{content:\\\"↵\\\";margin-left:2px}.code-mirror.as-text-area .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-even:before,.code-mirror.as-text-area .CodeMirror-code .CodeMirror-line .cm-markdown-single-trailing-space-odd:before{font-weight:700;content:\\\"·\\\"}.code-mirror.as-text-area .CodeMirror-lines{color:var(--input-text);padding:0}.code-mirror.as-text-area .CodeMirror-lines .CodeMirror-line>span>span.cm-overlay{font-family:monospace}.code-mirror.as-text-area .CodeMirror-lines .CodeMirror-line>span{font-family:Lato,arial,helvetica,sans-serif}.code-mirror.as-text-area .CodeMirror-sizer{min-height:20px}.code-mirror.as-text-area .CodeMirror-selected{background-color:var(--primary)!important}.code-mirror.as-text-area .CodeMirror-selectedtext{color:var(--primary-text)}.code-mirror.as-text-area .CodeMirror-line::selection,.code-mirror.as-text-area .CodeMirror-line>span::selection,.code-mirror.as-text-area .CodeMirror-line>span>span::selection{color:var(--primary-text);background-color:var(--primary)}.code-mirror.as-text-area .CodeMirror-line::-moz-selection,.code-mirror.as-text-area .CodeMirror-line>span::-moz-selection,.code-mirror.as-text-area .CodeMirror-line>span>span::-moz-selection{color:var(--primary-text);background-color:var(--primary)}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { ActionLocation, CardLocation, ExtensionPoint } from '@shell/core/types';\nimport { isMac } from '@shell/utils/platform';\nimport { ucFirst, randomStr } from '@shell/utils/string';\nimport { _EDIT, _CONFIG, _DETAIL, _LIST } from '@shell/config/query-params';\nimport { getProductFromRoute } from '@shell/middleware/authenticated';\n\nfunction checkRouteProduct({ name, params, query }, locationConfigParam) {\n const product = getProductFromRoute({\n name, params, query\n });\n\n // alias for the homepage\n if (locationConfigParam === 'home' && name === 'home') {\n return true;\n } else if (locationConfigParam === product) {\n return true;\n }\n\n return false;\n}\n\nfunction checkRouteMode({ name, query }, locationConfigParam) {\n if (locationConfigParam === _EDIT && query.mode && query.mode === _EDIT) {\n return true;\n } else if (locationConfigParam === _CONFIG && query.as && query.as === _CONFIG) {\n return true;\n } else if (locationConfigParam === _DETAIL && name.includes('-id')) {\n return true;\n // alias to target all list views\n } else if (locationConfigParam === _LIST && !name.includes('-id') && name.includes('-resource')) {\n return true;\n }\n\n return false;\n}\n\nfunction checkExtensionRouteBinding($route, locationConfig) {\n // if no configuration is passed, consider it as global\n if (!Object.keys(locationConfig).length) {\n return true;\n }\n\n const { params } = $route;\n\n // \"params\" to be checked based on the locationConfig\n const paramsToCheck = [\n 'product',\n 'resource',\n 'namespace',\n 'cluster',\n 'id',\n 'mode'\n ];\n\n let res = false;\n\n for (let i = 0; i < paramsToCheck.length; i++) {\n const param = paramsToCheck[i];\n\n if (locationConfig[param]) {\n for (let x = 0; x < locationConfig[param].length; x++) {\n const locationConfigParam = locationConfig[param][x];\n\n if (locationConfigParam) {\n // handle \"product\" in a separate way...\n if (param === 'product') {\n res = checkRouteProduct($route, locationConfigParam);\n // also handle \"mode\" in a separate way because it mainly depends on query params\n } else if (param === 'mode') {\n res = checkRouteMode($route, locationConfigParam);\n } else if (locationConfigParam === params[param]) {\n res = true;\n } else {\n res = false;\n }\n }\n\n // If a single location config param is good then this is an param (aka ['pods', 'configmap'] = pods or configmaps)\n if (res) {\n break;\n }\n }\n\n // If a single param (set of location config params) is bad then this is not an acceptable location\n if (!res) {\n break;\n }\n }\n }\n\n return res;\n}\n\nexport function getApplicableExtensionEnhancements(pluginCtx, actionType, uiArea, currRoute, translationCtx = pluginCtx) {\n const extensionEnhancements = [];\n\n // gate it so that we prevent errors on older versions of dashboard\n if (pluginCtx.$plugin?.getUIConfig) {\n const actions = pluginCtx.$plugin.getUIConfig(actionType, uiArea);\n\n actions.forEach((action, i) => {\n if (checkExtensionRouteBinding(currRoute, action.locationConfig)) {\n // ADD CARD PLUGIN UI ENHANCEMENT\n if (actionType === ExtensionPoint.CARD) {\n // intercept to apply translation\n if (uiArea === CardLocation.CLUSTER_DASHBOARD_CARD && action.labelKey) {\n actions[i].label = translationCtx.t(action.labelKey);\n }\n\n // ADD ACTION PLUGIN UI ENHANCEMENT\n } else if (actionType === ExtensionPoint.ACTION) {\n // TABLE ACTION\n if (uiArea === ActionLocation.TABLE) {\n // intercept to apply translation\n if (action.labelKey) {\n actions[i].label = translationCtx.t(action.labelKey);\n }\n\n // sets the enabled flag to true if omitted on the config\n if (!Object.keys(action).includes('enabled')) {\n actions[i].enabled = true;\n }\n\n // bulkable flag\n actions[i].bulkable = actions[i].multiple || actions[i].bulkable;\n\n // populate action identifier to prevent errors\n if (!actions[i].action) {\n actions[i].action = `custom-table-action-${ randomStr(10).toLowerCase() }`;\n }\n }\n\n // extract simplified shortcut definition on plugin - HEADER ACTION\n if (uiArea === ActionLocation.HEADER && action.shortcut) {\n // if it's a string, then assume CTRL for windows and META for mac\n if (typeof action.shortcut === 'string') {\n actions[i].shortcutLabel = () => {\n return isMac ? `(\\u2318-${ action.shortcut.toUpperCase() })` : `(Ctrl-${ action.shortcut.toUpperCase() })`;\n };\n actions[i].shortcutKey = { windows: ['ctrl', action.shortcut], mac: ['meta', action.shortcut] };\n // correct check for an Object type in JS... handle the object passed\n } else if (typeof action.shortcut === 'object' && !Array.isArray(action.shortcut) && action.shortcut !== null) {\n actions[i].shortcutKey = action.shortcut;\n const keyboardCombo = isMac ? actions[i].shortcut.mac : actions[i].shortcut.windows ? actions[i].shortcut.windows : [];\n let scLabel = '';\n\n keyboardCombo.forEach((key, i) => {\n if (i < keyboardCombo.length - 1) {\n if (key === 'meta') {\n key = '\\u2318';\n } else {\n key = ucFirst(key);\n }\n scLabel += `${ key }`;\n scLabel += '-';\n } else {\n scLabel += `${ key.toUpperCase() }`;\n }\n });\n\n actions[i].shortcutLabel = () => {\n return `(${ scLabel })`;\n };\n }\n }\n }\n\n extensionEnhancements.push(actions[i]);\n }\n });\n }\n\n return extensionEnhancements;\n}\n","/*\n * Jexl\n * Copyright 2019 Tom Shawver\n */\n\nclass PromiseSync {\n constructor(fn) {\n fn(this._resolve.bind(this), this._reject.bind(this))\n }\n\n catch(rejected) {\n if (this.error) {\n try {\n this._resolve(rejected(this.error))\n } catch (e) {\n this._reject(e)\n }\n }\n return this\n }\n\n then(resolved, rejected) {\n if (!this.error) {\n try {\n this._resolve(resolved(this.value))\n } catch (e) {\n this._reject(e)\n }\n }\n if (rejected) this.catch(rejected)\n return this\n }\n\n _reject(error) {\n this.value = undefined\n this.error = error\n }\n\n _resolve(val) {\n if (val instanceof PromiseSync) {\n if (val.error) {\n this._reject(val.error)\n } else {\n this._resolve(val.value)\n }\n } else {\n this.value = val\n this.error = undefined\n }\n }\n}\n\nPromiseSync.all = vals =>\n new PromiseSync(resolve => {\n const resolved = vals.map(val => {\n while (val instanceof PromiseSync) {\n if (val.error) throw Error(val.error)\n val = val.value\n }\n return val\n })\n resolve(resolved)\n })\n\nPromiseSync.resolve = val => new PromiseSync(resolve => resolve(val))\n\nPromiseSync.reject = error =>\n new PromiseSync((resolve, reject) => reject(error))\n\nmodule.exports = PromiseSync\n","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.roletemplate.vue?vue&type=style&index=0&id=5050d908&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".dashboard[data-v-08227e1c],.dashboard .head[data-v-08227e1c]{display:flex;flex-direction:column}.dashboard .head[data-v-08227e1c]{justify-content:space-between;outline:1px solid var(--border);border-radius:var(--border-radius);margin:0 0 64px 0;padding:20px;gap:20px}.dashboard .head-title[data-v-08227e1c]{display:flex;flex-direction:row;align-items:center;gap:10px}.dashboard .head-title h1[data-v-08227e1c]{margin:0}.dashboard .head-title span[data-v-08227e1c]{background:var(--primary);border-radius:var(--border-radius);padding:4px 8px}.dashboard .head-subheader[data-v-08227e1c]{font-size:1.2rem;font-weight:500;color:var(--text-secondary)}.dashboard .head-links[data-v-08227e1c]{display:flex;gap:10px}.dashboard .get-started[data-v-08227e1c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:20px}.dashboard .get-started .card-container[data-v-08227e1c]{min-height:420px;padding:0}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidCron = void 0;\n// This comes from the fact that parseInt trims characters coming\n// after digits and consider it a valid int, so `1*` becomes `1`.\nvar safeParseInt = function (value) {\n if (/^\\d+$/.test(value)) {\n return Number(value);\n }\n else {\n return NaN;\n }\n};\nvar isWildcard = function (value) {\n return value === '*';\n};\nvar isQuestionMark = function (value) {\n return value === '?';\n};\nvar isInRange = function (value, start, stop) {\n return value >= start && value <= stop;\n};\nvar isValidRange = function (value, start, stop) {\n var sides = value.split('-');\n switch (sides.length) {\n case 1:\n return isWildcard(value) || isInRange(safeParseInt(value), start, stop);\n case 2:\n var _a = sides.map(function (side) { return safeParseInt(side); }), small = _a[0], big = _a[1];\n return small <= big && isInRange(small, start, stop) && isInRange(big, start, stop);\n default:\n return false;\n }\n};\nvar isValidStep = function (value) {\n return value === undefined || value.search(/[^\\d]/) === -1;\n};\nvar validateForRange = function (value, start, stop) {\n if (value.search(/[^\\d-,\\/*]/) !== -1) {\n return false;\n }\n var list = value.split(',');\n return list.every(function (condition) {\n var splits = condition.split('/');\n // Prevents `*/ * * * *` from being accepted.\n if (condition.trim().endsWith('/')) {\n return false;\n }\n // Prevents `*/*/* * * * *` from being accepted\n if (splits.length > 2) {\n return false;\n }\n // If we don't have a `/`, right will be undefined which is considered a valid step if we don't a `/`.\n var left = splits[0], right = splits[1];\n return isValidRange(left, start, stop) && isValidStep(right);\n });\n};\nvar hasValidSeconds = function (seconds) {\n return validateForRange(seconds, 0, 59);\n};\nvar hasValidMinutes = function (minutes) {\n return validateForRange(minutes, 0, 59);\n};\nvar hasValidHours = function (hours) {\n return validateForRange(hours, 0, 23);\n};\nvar hasValidDays = function (days, allowBlankDay) {\n return (allowBlankDay && isQuestionMark(days)) || validateForRange(days, 1, 31);\n};\nvar monthAlias = {\n jan: '1',\n feb: '2',\n mar: '3',\n apr: '4',\n may: '5',\n jun: '6',\n jul: '7',\n aug: '8',\n sep: '9',\n oct: '10',\n nov: '11',\n dec: '12'\n};\nvar hasValidMonths = function (months, alias) {\n // Prevents alias to be used as steps\n if (months.search(/\\/[a-zA-Z]/) !== -1) {\n return false;\n }\n if (alias) {\n var remappedMonths = months.toLowerCase().replace(/[a-z]{3}/g, function (match) {\n return monthAlias[match] === undefined ? match : monthAlias[match];\n });\n // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the months\n return validateForRange(remappedMonths, 1, 12);\n }\n return validateForRange(months, 1, 12);\n};\nvar weekdaysAlias = {\n sun: '0',\n mon: '1',\n tue: '2',\n wed: '3',\n thu: '4',\n fri: '5',\n sat: '6'\n};\nvar hasValidWeekdays = function (weekdays, alias, allowBlankDay, allowSevenAsSunday) {\n // If there is a question mark, checks if the allowBlankDay flag is set\n if (allowBlankDay && isQuestionMark(weekdays)) {\n return true;\n }\n else if (!allowBlankDay && isQuestionMark(weekdays)) {\n return false;\n }\n // Prevents alias to be used as steps\n if (weekdays.search(/\\/[a-zA-Z]/) !== -1) {\n return false;\n }\n if (alias) {\n var remappedWeekdays = weekdays.toLowerCase().replace(/[a-z]{3}/g, function (match) {\n return weekdaysAlias[match] === undefined ? match : weekdaysAlias[match];\n });\n // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the weekdays\n return validateForRange(remappedWeekdays, 0, allowSevenAsSunday ? 7 : 6);\n }\n return validateForRange(weekdays, 0, allowSevenAsSunday ? 7 : 6);\n};\nvar hasCompatibleDayFormat = function (days, weekdays, allowBlankDay) {\n return !(allowBlankDay && isQuestionMark(days) && isQuestionMark(weekdays));\n};\nvar split = function (cron) {\n return cron.trim().split(/\\s+/);\n};\nvar defaultOptions = {\n alias: false,\n seconds: false,\n allowBlankDay: false,\n allowSevenAsSunday: false\n};\nexports.isValidCron = function (cron, options) {\n options = __assign(__assign({}, defaultOptions), options);\n var splits = split(cron);\n if (splits.length > (options.seconds ? 6 : 5) || splits.length < 5) {\n return false;\n }\n var checks = [];\n if (splits.length === 6) {\n var seconds = splits.shift();\n if (seconds) {\n checks.push(hasValidSeconds(seconds));\n }\n }\n // We could only check the steps gradually and return false on the first invalid block,\n // However, this won't have any performance impact so why bother for now.\n var minutes = splits[0], hours = splits[1], days = splits[2], months = splits[3], weekdays = splits[4];\n checks.push(hasValidMinutes(minutes));\n checks.push(hasValidHours(hours));\n checks.push(hasValidDays(days, options.allowBlankDay));\n checks.push(hasValidMonths(months, options.alias));\n checks.push(hasValidWeekdays(weekdays, options.alias, options.allowBlankDay, options.allowSevenAsSunday));\n checks.push(hasCompatibleDayFormat(days, weekdays, options.allowBlankDay));\n return checks.every(Boolean);\n};\n//# sourceMappingURL=index.js.map","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","export function importTypes($plugin) { \n $plugin.register('detail', 'policies.kubewarden.io.admissionpolicy', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/policies.kubewarden.io.admissionpolicy.vue'));\n $plugin.register('detail', 'policies.kubewarden.io.clusteradmissionpolicy', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/policies.kubewarden.io.clusteradmissionpolicy.vue'));\n $plugin.register('detail', 'policies.kubewarden.io.policyserver', () => import(/* webpackChunkName: \"detail\" */'@pkg/detail/policies.kubewarden.io.policyserver.vue'));\n $plugin.register('edit', 'policies.kubewarden.io.admissionpolicy', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/policies.kubewarden.io.admissionpolicy.vue'));\n $plugin.register('edit', 'policies.kubewarden.io.clusteradmissionpolicy', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/policies.kubewarden.io.clusteradmissionpolicy.vue'));\n $plugin.register('edit', 'policies.kubewarden.io.policyserver', () => import(/* webpackChunkName: \"edit\" */'@pkg/edit/policies.kubewarden.io.policyserver.vue'));\n $plugin.register('list', 'policies.kubewarden.io.admissionpolicy', () => import(/* webpackChunkName: \"list\" */'@pkg/list/policies.kubewarden.io.admissionpolicy.vue'));\n $plugin.register('list', 'policies.kubewarden.io.clusteradmissionpolicy', () => import(/* webpackChunkName: \"list\" */'@pkg/list/policies.kubewarden.io.clusteradmissionpolicy.vue'));\n $plugin.register('list', 'policies.kubewarden.io.policyserver', () => import(/* webpackChunkName: \"list\" */'@pkg/list/policies.kubewarden.io.policyserver.vue'));\n $plugin.register('models', 'policies.kubewarden.io.admissionpolicy', () => require(/* webpackChunkName: \"models\" */'@pkg/models/policies.kubewarden.io.admissionpolicy.js'));\n $plugin.register('models', 'policies.kubewarden.io.clusteradmissionpolicy', () => require(/* webpackChunkName: \"models\" */'@pkg/models/policies.kubewarden.io.clusteradmissionpolicy.js'));\n $plugin.register('models', 'policies.kubewarden.io.policyserver', () => require(/* webpackChunkName: \"models\" */'@pkg/models/policies.kubewarden.io.policyserver.js'));\n $plugin.register('l10n', 'en-us', () => import('@pkg/l10n/en-us.yaml'));\n $plugin.register('dialog', 'UpdateModeDialog', () => import(/* webpackChunkName: \"dialog\" */'@pkg/dialog/UpdateModeDialog.vue'));\n $plugin.register('formatters', 'PolicyMode', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicyMode.vue'));\n $plugin.register('formatters', 'PolicyResources', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicyResources.vue'));\n $plugin.register('formatters', 'PolicyServerDeployment', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicyServerDeployment.vue'));\n $plugin.register('formatters', 'PolicyServerStatus', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicyServerStatus.vue'));\n $plugin.register('formatters', 'PolicyStatus', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicyStatus.vue'));\n $plugin.register('formatters', 'PolicySummaryGraph', () => import(/* webpackChunkName: \"formatters\" */'@pkg/formatters/PolicySummaryGraph.vue'));\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.hasSchema)?_c('InstallView',{attrs:{\"has-schema\":_vm.hasSchema}}):_c('DashboardView')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import isEmpty from 'lodash/isEmpty';\nimport { MANAGEMENT } from '@shell/config/types';\n\nimport { handleGrowlError } from './handle-growl';\n\ninterface AirgapConfig {\n store: any\n}\n\n/**\n * Preforms a dispatch request on the first index within the\n * `management.cattle.io.settings/whitelist-domain` setting.\n * @param context - The store context\n * @returns Boolean - Will return `true` if request does not have a response status of `200`\n */\nexport async function isAirgap(context: AirgapConfig): Promise {\n const { store } = context;\n\n try {\n await store.dispatch('management/findAll', { type: MANAGEMENT.SETTING });\n const whitelist = await store.getters['management/byId'](MANAGEMENT.SETTING, 'whitelist-domain');\n\n if ( !isEmpty(whitelist) && whitelist.value?.length > 0 ) {\n const whitelistedDomain = whitelist.value.split(',')[0];\n\n const res = await store.dispatch('management/request', {\n url: `/meta/proxy/${ whitelistedDomain }`,\n method: 'GET',\n redirectUnauthorized: false,\n });\n\n if ( res._status !== 200 ) {\n store.dispatch('kubewarden/updateAirGapped', true);\n\n return true;\n }\n\n store.dispatch('kubewarden/updateAirGapped', false);\n\n return false;\n }\n } catch (e) {\n if ( !store.getters['kubewarden/airGapped'] ) {\n const error = {\n _statusText: 'Error',\n message: 'Unable to determine management.cattle.io.settings/whitelist-domain value. Some Kubewarden UI features may be unavailable.'\n };\n\n handleGrowlError({ error, store });\n store.dispatch('kubewarden/updateAirGapped', true);\n }\n\n return true;\n }\n\n store.dispatch('kubewarden/updateAirGapped', true);\n\n return true;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading'):_c('div',{staticClass:\"dashboard\"},[_c('div',{staticClass:\"head\"},[_c('div',{staticClass:\"head-title\"},[_c('h1',[_vm._v(_vm._s(_vm.t('kubewarden.dashboard.intro')))]),(_vm.version)?_c('span',[_vm._v(_vm._s(_vm.version))]):_vm._e()]),_c('p',{staticClass:\"head-subheader\"},[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.dashboard.blurb'))+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.dashboard.description'))+\" \")]),_c('div',{staticClass:\"head-links\"},[_c('a',{attrs:{\"href\":\"https://kubewarden.io/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer nofollow\"}},[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.dashboard.getStarted'))+\" \")]),_c('a',{attrs:{\"href\":\"https://github.com/kubewarden/kubewarden-controller/issues\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer nofollow\"}},[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.dashboard.issues'))+\" \")])])]),(!_vm.hideBannerDefaults)?_c('DefaultsBanner'):_vm._e(),_c('div',{staticClass:\"get-started\"},_vm._l((_vm.DASHBOARD_HEADERS),function(card,index){return _c('div',{key:index,staticClass:\"card-container\"},[(card.isEnabled)?_c('Card',{attrs:{\"card\":card}},[(index === 0)?_c('span',[_vm._t(\"default\",function(){return [_c('ConsumptionGauge',{attrs:{\"resource-name\":\"Active\",\"color-stops\":_vm.colorStops,\"capacity\":_vm.policyServers.total,\"used-as-resource-name\":true,\"used\":_vm.policyServers.status.running,\"units\":\"Pods\"}})]})],2):_vm._e(),(index === 1)?_c('span',[_vm._t(\"default\",function(){return [_c('ConsumptionGauge',{attrs:{\"resource-name\":\"Active\",\"color-stops\":_vm.colorStops,\"capacity\":_vm.namespacedGuages.total,\"used-as-resource-name\":true,\"used\":_vm.namespacedGuages.status.running,\"units\":\"Namespaced Policies\"}}),_c('div',{staticClass:\"mt-20\"},[_c('h4',[_vm._v(_vm._s(_vm.t('kubewarden.dashboard.headers.modes.title')))]),_c('span',{staticClass:\"mr-20\"},[_vm._v(_vm._s(_vm.t('kubewarden.dashboard.headers.modes.protect'))+\": \"+_vm._s(_vm.namespacedGuages.mode.protect))]),_c('span',[_vm._v(_vm._s(_vm.t('kubewarden.dashboard.headers.modes.monitor'))+\": \"+_vm._s(_vm.namespacedGuages.mode.monitor))])])]})],2):_vm._e(),(index === 2)?_c('span',[_vm._t(\"default\",function(){return [_c('ConsumptionGauge',{attrs:{\"resource-name\":\"Active\",\"color-stops\":_vm.colorStops,\"capacity\":_vm.globalGuages.total,\"used-as-resource-name\":true,\"used\":_vm.globalGuages.status.running,\"units\":\"Global Policies\"}}),_c('div',{staticClass:\"mt-20\"},[_c('h4',[_vm._v(_vm._s(_vm.t('kubewarden.dashboard.headers.modes.title')))]),_c('span',{staticClass:\"mr-20\"},[_vm._v(_vm._s(_vm.t('kubewarden.dashboard.headers.modes.protect'))+\": \"+_vm._s(_vm.globalGuages.mode.protect))]),_c('span',[_vm._v(_vm._s(_vm.t('kubewarden.dashboard.headers.modes.monitor'))+\": \"+_vm._s(_vm.globalGuages.mode.monitor))])])]})],2):_vm._e()]):_vm._e()],1)}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"consumption-gauge\"},[(_vm.resourceName && !_vm.usedAsResourceName)?_c('h3',[_vm._v(\" \"+_vm._s(_vm.resourceName)+\" \")]):_vm._e(),_c('div',{staticClass:\"numbers\"},[_vm._t(\"title\",function(){return [(_vm.usedAsResourceName)?_c('h4',[_vm._v(\" \"+_vm._s(_vm.resourceName)+\" \")]):_c('span',[_vm._v(_vm._s(_vm.t('node.detail.glance.consumptionGauge.used')))]),_c('span',{staticClass:\"numbers-stats\"},[_vm._v(\" \"+_vm._s(_vm.t('node.detail.glance.consumptionGauge.amount', _vm.amountTemplateValues))+\" \"),_c('span',{staticClass:\"percentage\"},[_c('i',[_vm._v(\"/ \")]),_vm._v(_vm._s(_vm.formattedPercentage))])])]},{\"amountTemplateValues\":_vm.amountTemplateValues,\"formattedPercentage\":_vm.formattedPercentage})],2),_c('div',{staticClass:\"mt-10\"},[_c('PercentageBar',{attrs:{\"value\":_vm.percentageBarValue,\"color-stops\":_vm.colorStops}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"percentage-bar\"},[_c('Bar',{attrs:{\"percentage\":_vm.value,\"primary-color\":_vm.primaryColor,\"slices\":_vm.slices}}),(_vm.showPercentage)?_c('span',{staticClass:\"ml-5 percentage-value\"},[_vm._v(_vm._s(_vm.formattedPercentage))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bar\",style:(_vm.barStyle)},[_c('div',{staticClass:\"indicator\",style:(_vm.indicatorStyle)}),_vm._l((_vm.sliceStyles),function(sliceStyle,i){return _c('div',{key:i,staticClass:\"slice\",style:(sliceStyle)})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\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!./Bar.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!./Bar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Bar.vue?vue&type=template&id=b4f4e2ae&scoped=true&\"\nimport script from \"./Bar.vue?vue&type=script&lang=js&\"\nexport * from \"./Bar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Bar.vue?vue&type=style&index=0&id=b4f4e2ae&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 \"b4f4e2ae\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PercentageBar.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!./PercentageBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PercentageBar.vue?vue&type=template&id=620caa7e&scoped=true&\"\nimport script from \"./PercentageBar.vue?vue&type=script&lang=js&\"\nexport * from \"./PercentageBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PercentageBar.vue?vue&type=style&index=0&id=620caa7e&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 \"620caa7e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsumptionGauge.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!./ConsumptionGauge.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConsumptionGauge.vue?vue&type=template&id=3f3d0a16&\"\nimport script from \"./ConsumptionGauge.vue?vue&type=script&lang=js&\"\nexport * from \"./ConsumptionGauge.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConsumptionGauge.vue?vue&type=style&index=0&id=3f3d0a16&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.card.isLoaded)?_c('div',{class:_vm.setLoading},[_c('i',{staticClass:\"icon-spinner animate-spin\"})]):_c('div',{staticClass:\"d-main\",class:_vm.setLoading},[_c('div',{staticClass:\"d-header\"},[_c('n-link',{attrs:{\"to\":_vm.card.link}},[_c('h1',[_vm._v(\" \"+_vm._s(_vm.t(_vm.card.title))+\" \")])])],1),_c('p',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.t(_vm.card.description)),expression:\"t(card.description)\"}]}),_c('n-link',{staticClass:\"btn role-secondary\",attrs:{\"to\":_vm.card.cta}},[_vm._v(\" \"+_vm._s(_vm.t(_vm.card.linkText))+\" \")]),_c('hr'),_c('div',{staticClass:\"d-slot\"},[_c('h2',[_vm._v(_vm._s(_vm.t(_vm.card.slotTitle)))]),_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Card.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Card.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Card.vue?vue&type=template&id=3335bcf8&scoped=true&\"\nimport script from \"./Card.vue?vue&type=script&lang=js&\"\nexport * from \"./Card.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Card.vue?vue&type=style&index=0&id=3335bcf8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3335bcf8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DashboardView.vue?vue&type=template&id=08227e1c&scoped=true&\"\nimport script from \"./DashboardView.vue?vue&type=script&lang=js&\"\nexport * from \"./DashboardView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DashboardView.vue?vue&type=style&index=0&id=08227e1c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08227e1c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading'):_c('div',{staticClass:\"container\"},[(!_vm.install)?_c('div',{staticClass:\"title p-10\"},[_c('div',{staticClass:\"logo mt-20 mb-10\"},[_c('img',{attrs:{\"src\":require(\"../../assets/icon-kubewarden.svg\"),\"height\":\"64\"}})]),_c('h1',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.title\"))+\" \")]),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.description\"))+\" \")]),(!_vm.hasSchema)?_c('button',{staticClass:\"btn role-primary mt-20\",on:{\"click\":function($event){_vm.install = true}}},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.appInstall.button\"))+\" \")]):_vm._e()]):[(_vm.isAirgap)?[_c('Banner',{staticClass:\"mb-20 mt-20\",attrs:{\"color\":\"warning\"}},[_c('span',[_vm._v(_vm._s(_vm.t('kubewarden.dashboard.prerequisites.airGapped.warning')))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.t('kubewarden.dashboard.prerequisites.airGapped.docs', {}, true))}})]),_c('InstallWizard',{ref:\"wizard\",attrs:{\"init-step-index\":_vm.initStepIndex,\"steps\":_vm.installSteps},scopedSlots:_vm._u([{key:\"certmanager\",fn:function(){return [_c('h2',{staticClass:\"mt-20 mb-10\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.prerequisites.certManager.title\"))+\" \")]),_c('p',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.prerequisites.certManager.description\"))+\" \")]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.t('kubewarden.dashboard.prerequisites.airGapped.certManager.manualStep', null, true))}}),_vm._t(\"default\",function(){return [_c('Banner',{staticClass:\"mb-20 mt-20\",attrs:{\"color\":\"info\",\"label\":_vm.t('kubewarden.dashboard.prerequisites.certManager.stepProgress')}})]})]},proxy:true},{key:\"install\",fn:function(){return [(!_vm.controllerChart)?[_c('h2',{staticClass:\"mt-20 mb-10\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.prerequisites.repository.title\"))+\" \")]),_c('p',{staticClass:\"mb-20\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.t('kubewarden.dashboard.prerequisites.airGapped.repository.description', {}, true))}})])]:[_c('h2',{staticClass:\"mt-20 mb-10\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.appInstall.title\"))+\" \")]),_c('p',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.appInstall.description\"))+\" \")]),_c('div',{staticClass:\"chart-route\"},[(!_vm.controllerChart && !_vm.reloadReady)?_c('Loading',{staticClass:\"mt-20\",attrs:{\"mode\":\"relative\"}}):(!_vm.controllerChart && _vm.reloadReady)?[_c('Banner',{attrs:{\"color\":\"warning\"}},[_c('span',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.dashboard.appInstall.reload' ))+\" \")]),_c('button',{staticClass:\"ml-10 btn btn-sm role-primary\",on:{\"click\":function($event){return _vm.reload()}}},[_vm._v(\" \"+_vm._s(_vm.t('generic.reload'))+\" \")])])]:[_c('button',{staticClass:\"btn role-primary mt-20\",attrs:{\"disabled\":!_vm.controllerChart},on:{\"click\":function($event){$event.preventDefault();return _vm.chartRoute.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.appInstall.button\"))+\" \")])]],2)]]},proxy:true}],null,true)})]:[_c('InstallWizard',{ref:\"wizard\",attrs:{\"init-step-index\":_vm.initStepIndex,\"steps\":_vm.installSteps},scopedSlots:_vm._u([{key:\"certmanager\",fn:function(){return [_c('h2',{staticClass:\"mt-20 mb-10\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.prerequisites.certManager.title\"))+\" \")]),_c('p',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.prerequisites.certManager.description\"))+\" \")]),_c('p',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.t('kubewarden.dashboard.prerequisites.certManager.manualStep', null, true)),expression:\"t('kubewarden.dashboard.prerequisites.certManager.manualStep', null, true)\"}]}),_c('CopyCode',{staticClass:\"m-10 p-10\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.prerequisites.certManager.applyCommand\"))+\" \")]),_c('button',{staticClass:\"btn role-secondary\",attrs:{\"disabled\":!_vm.shellEnabled,\"type\":\"button\"},on:{\"shortkey\":function($event){return _vm.currentCluster.openShell()},\"click\":function($event){return _vm.currentCluster.openShell()}}},[_c('i',{staticClass:\"icon icon-terminal icon-lg\"}),_vm._v(_vm._s(_vm.t(\"kubewarden.dashboard.prerequisites.certManager.openShell\"))+\" \")]),_vm._t(\"default\",function(){return [_c('Banner',{staticClass:\"mb-20 mt-20\",attrs:{\"color\":\"info\",\"label\":_vm.t('kubewarden.dashboard.prerequisites.certManager.stepProgress')}})]})]},proxy:true},{key:\"install\",fn:function(){return [(!_vm.kubewardenRepo)?[_c('h2',{staticClass:\"mt-20 mb-10\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.prerequisites.repository.title\"))+\" \")]),_c('p',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.prerequisites.repository.description\"))+\" \")]),_c('AsyncButton',{attrs:{\"mode\":\"kubewardenRepository\"},on:{\"click\":_vm.addRepository}})]:[_c('h2',{staticClass:\"mt-20 mb-10\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.appInstall.title\"))+\" \")]),_c('p',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.appInstall.description\"))+\" \")]),_c('div',{staticClass:\"chart-route\"},[(!_vm.controllerChart && !_vm.reloadReady)?_c('Loading',{staticClass:\"mt-20\",attrs:{\"mode\":\"relative\"}}):(!_vm.controllerChart && _vm.reloadReady)?[_c('Banner',{attrs:{\"color\":\"warning\"}},[_c('span',{staticClass:\"mb-20\"},[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.dashboard.appInstall.reload' ))+\" \")]),_c('button',{staticClass:\"ml-10 btn btn-sm role-primary\",on:{\"click\":function($event){return _vm.reload()}}},[_vm._v(\" \"+_vm._s(_vm.t('generic.reload'))+\" \")])])]:[_c('button',{staticClass:\"btn role-primary mt-20\",attrs:{\"disabled\":!_vm.controllerChart},on:{\"click\":function($event){$event.preventDefault();return _vm.chartRoute.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.t(\"kubewarden.dashboard.appInstall.button\"))+\" \")])]],2)]]},proxy:true}],null,true)})]]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('code',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.tooltip),expression:\"tooltip\"}],staticClass:\"copy\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.clicked.apply(null, arguments)}}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./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=59d02634&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=59d02634&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 \"59d02634\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"product-image\"},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"../../assets/icon-kubewarden.svg\")}})])\n}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallWizard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallWizard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InstallWizard.vue?vue&type=template&id=42527a3a&scoped=true&\"\nimport script from \"./InstallWizard.vue?vue&type=script&lang=js&\"\nexport * from \"./InstallWizard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InstallWizard.vue?vue&type=style&index=0&id=42527a3a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42527a3a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InstallView.vue?vue&type=template&id=5ca8b9a4&scoped=true&\"\nimport script from \"./InstallView.vue?vue&type=script&lang=js&\"\nexport * from \"./InstallView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InstallView.vue?vue&type=style&index=0&id=5ca8b9a4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ca8b9a4\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=272d1823&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ResourceList')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.namespaceFilterRequired)?_c('IconMessage',{attrs:{\"vertical\":true,\"subtle\":false,\"icon\":\"icon-filter_alt\"},scopedSlots:_vm._u([{key:\"message\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.t('resourceList.nsFiltering'))+\" \")]},proxy:true}],null,false,4238627989)}):_c('div',[(_vm.showMasthead)?_c('Masthead',{attrs:{\"type-display\":_vm.customTypeDisplay,\"schema\":_vm.schema,\"resource\":_vm.resource,\"show-incremental-loading-indicator\":_vm.showIncrementalLoadingIndicator,\"load-resources\":_vm.loadResources,\"load-indeterminate\":_vm.loadIndeterminate}},[_c('template',{slot:\"extraActions\"},[_vm._t(\"extraActions\")],2)],2):_vm._e(),_c('ExtensionPanel',{attrs:{\"resource\":{},\"type\":_vm.extensionType,\"location\":_vm.extensionLocation}}),(_vm.hasListComponent)?_c('div',[_c(_vm.listComponent,_vm._b({tag:\"component\",attrs:{\"incremental-loading-indicator\":_vm.showIncrementalLoadingIndicator,\"rows\":_vm.rows}},'component',_vm.$data,false))],1):_c('ResourceTable',{attrs:{\"schema\":_vm.schema,\"rows\":_vm.rows,\"loading\":_vm.loading,\"headers\":_vm.headers,\"group-by\":_vm.groupBy,\"has-advanced-filtering\":_vm.hasAdvancedFiltering,\"adv-filter-hide-labels-as-cols\":_vm.advFilterHideLabelsAsCols,\"adv-filter-prevent-filtering-labels\":_vm.advFilterPreventFilteringLabels,\"use-query-params-for-simple-filtering\":_vm.useQueryParamsForSimpleFiltering,\"force-update-live-and-delayed\":_vm.forceUpdateLiveAndDelayed}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('header',[_vm._t(\"typeDescription\",function(){return [_c('TypeDescription',{attrs:{\"resource\":_vm.resource}})]}),_c('div',{staticClass:\"title\"},[_c('h1',{staticClass:\"m-0\"},[_vm._v(\" \"+_vm._s(_vm._typeDisplay)+\" \"),(_vm.isExplorer)?_c('Favorite',{attrs:{\"resource\":_vm.favoriteResource || _vm.resource}}):_vm._e()],1),(_vm.showIncrementalLoadingIndicator)?_c('ResourceLoadingIndicator',{attrs:{\"resources\":_vm.loadResources,\"indeterminate\":_vm.loadIndeterminate}}):_vm._e()],1),_c('div',{staticClass:\"actions-container\"},[_vm._t(\"actions\",function(){return [_c('div',{staticClass:\"actions\"},[_vm._t(\"extraActions\"),_vm._t(\"createButton\",function(){return [(_vm.hasEditComponent && _vm._isCreatable)?_c('n-link',{staticClass:\"btn role-primary\",attrs:{\"to\":_vm._createLocation,\"data-testid\":_vm.componentTestid+'-create'}},[_vm._v(\" \"+_vm._s(_vm._createButtonlabel)+\" \")]):(_vm._isYamlCreatable)?_c('n-link',{staticClass:\"btn role-primary\",attrs:{\"to\":_vm._yamlCreateLocation,\"data-testid\":_vm.componentTestid+'-create-yaml'}},[_vm._v(\" \"+_vm._s(_vm.t(\"resourceList.head.createFromYaml\"))+\" \")]):_vm._e()]})],2)]})],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('i',{staticClass:\"favorite icon\",class:{'icon-star-open': !_vm.isFavorite, 'icon-star': _vm.isFavorite},attrs:{\"tabindex\":0,\"aria-checked\":!!_vm.isFavorite,\"aria-role\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggle.apply(null, arguments)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.toggle.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;$event.preventDefault();return _vm.toggle.apply(null, arguments)}]}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Favorite.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Favorite.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Favorite.vue?vue&type=template&id=f74a378a&scoped=true&\"\nimport script from \"./Favorite.vue?vue&type=script&lang=js&\"\nexport * from \"./Favorite.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Favorite.vue?vue&type=style&index=0&id=f74a378a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f74a378a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.typeDescriptionKey)?_c('Banner',{staticClass:\"type-banner mb-20 mt-0\",attrs:{\"color\":\"info\",\"closable\":true,\"label-key\":_vm.typeDescriptionKey},on:{\"close\":_vm.hideTypeDescription}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TypeDescription.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TypeDescription.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TypeDescription.vue?vue&type=template&id=23a42aff&\"\nimport script from \"./TypeDescription.vue?vue&type=script&lang=js&\"\nexport * from \"./TypeDescription.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.count && !_vm.haveAll)?_c('div',{staticClass:\"ml-10 resource-loading-indicator\"},[_c('div',{staticClass:\"inner\"},[_c('div',{staticClass:\"resource-loader\"},[_c('div',{staticClass:\"rl-bg\"},[_c('i',{staticClass:\"icon icon-spinner icon-spin\"}),_c('span',[_vm._v(_vm._s(_vm.t( 'resourceLoadingIndicator.loading' ))+\" \"),(!_vm.indeterminate)?_c('span',[_vm._v(_vm._s(_vm.count)+\" / \"+_vm._s(_vm.total))]):_vm._e()])])]),_c('div',{staticClass:\"resource-loader\",style:({width: _vm.width})},[_c('div',{staticClass:\"rl-fg\"},[_c('i',{staticClass:\"icon icon-spinner icon-spin\"}),_c('span',[_vm._v(_vm._s(_vm.t( 'resourceLoadingIndicator.loading' ))+\" \"),(!_vm.indeterminate)?_c('span',[_vm._v(_vm._s(_vm.count)+\" / \"+_vm._s(_vm.total))]):_vm._e()])])])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceLoadingIndicator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceLoadingIndicator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResourceLoadingIndicator.vue?vue&type=template&id=6457c305&scoped=true&\"\nimport script from \"./ResourceLoadingIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./ResourceLoadingIndicator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ResourceLoadingIndicator.vue?vue&type=style&index=0&id=6457c305&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6457c305\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Masthead.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Masthead.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Masthead.vue?vue&type=template&id=c734c0f4&scoped=true&\"\nimport script from \"./Masthead.vue?vue&type=script&lang=js&\"\nexport * from \"./Masthead.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Masthead.vue?vue&type=style&index=0&id=c734c0f4&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 \"c734c0f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"message-icon\",class:{'vertical': _vm.vertical, 'subtle': _vm.subtle}},[_c('i',{staticClass:\"icon\",class:{ [_vm.icon]: true, [_vm.iconState]: !!_vm.iconState}}),_c('div',{staticClass:\"message\"},[_vm._t(\"message\",function(){return [(_vm.messageKey)?[_vm._v(\" \"+_vm._s(_vm.t(_vm.messageKey))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.message)+\" \")]]})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./IconMessage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./IconMessage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IconMessage.vue?vue&type=template&id=01996ade&scoped=true&\"\nimport script from \"./IconMessage.vue?vue&type=script&lang=js&\"\nexport * from \"./IconMessage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IconMessage.vue?vue&type=style&index=0&id=01996ade&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"01996ade\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.extensionData.length)?_c('div',_vm._l((_vm.extensionData),function(item,i){return _c('div',{key:`extensionData${_vm.location}${i}`},[_c(item.component,{tag:\"component\",attrs:{\"resource\":_vm.resource}})],1)}),0):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ExtensionPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ExtensionPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ExtensionPanel.vue?vue&type=template&id=1a394d3c&\"\nimport script from \"./ExtensionPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./ExtensionPanel.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c074ced4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c074ced4&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 \"c074ced4\",\n null\n \n)\n\nexport default component.exports","\nimport ResourceList from '@shell/components/ResourceList/index.vue';\n\nexport default {\n name: 'KubewardenResourcedList',\n components: { ResourceList },\n};\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=71a8ef42&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ResourceDetail')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading'):(_vm.notFound)?_c('div',[_c('IconMessage',{attrs:{\"icon\":\"icon-warning\"},scopedSlots:_vm._u([{key:\"message\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.t('generic.notFound'))+\" \"),_c('div',[_c('div',[_vm._v(_vm._s(_vm.t('generic.type'))+\": \"+_vm._s(_vm.resource))]),_c('div',[_vm._v(_vm._s(_vm.t('generic.id'))+\": \"+_vm._s(_vm.notFound))])])]},proxy:true}])})],1):_c('div',[(_vm.showMasthead)?_c('Masthead',{attrs:{\"resource\":_vm.resource,\"value\":_vm.liveModel,\"mode\":_vm.mode,\"real-mode\":_vm.realMode,\"as\":_vm.as,\"has-graph\":_vm.hasGraph,\"has-detail\":_vm.hasCustomDetail,\"has-edit\":_vm.hasCustomEdit,\"can-view-yaml\":_vm.canViewYaml,\"resource-subtype\":_vm.resourceSubtype,\"parent-route-override\":_vm.parentRouteOverride,\"store-override\":_vm.storeOverride}},[(_vm.isView && _vm.isDetail)?_c('DetailTop',{attrs:{\"value\":_vm.liveModel}}):_vm._e()],1):_vm._e(),(_vm.isGraph && _vm.canViewChart)?_c('ForceDirectedTreeChart',{attrs:{\"data\":_vm.chartData,\"fdc-config\":_vm.getGraphConfig}}):(_vm.isYaml)?_c('ResourceYaml',{ref:\"resourceyaml\",class:{'flex-content': _vm.flexContent},attrs:{\"mode\":_vm.mode,\"yaml\":_vm.yaml,\"offer-preview\":_vm.offerPreview,\"done-route\":_vm.doneRoute,\"done-override\":_vm.value.doneOverride},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}):_c(_vm.showComponent,_vm._b({ref:\"comp\",tag:\"component\",class:{'flex-content': _vm.flexContent},attrs:{\"done-params\":_vm.doneParams,\"done-route\":_vm.doneRoute,\"mode\":_vm.mode,\"initial-value\":_vm.initialModel,\"live-value\":_vm.liveModel,\"real-mode\":_vm.realMode},on:{\"set-subtype\":_vm.setSubtype},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},'component',_vm._data,false)),(_vm.isView)?_c('button',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['shift','d']),expression:\"['shift','d']\",modifiers:{\"once\":true}}],staticClass:\"hide\",attrs:{\"data-testid\":_vm.componentTestid + '-detail'},on:{\"shortkey\":function($event){return _vm.keyAction('goToDetail')}}}):_vm._e(),(_vm.isView)?_c('button',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['shift','c']),expression:\"['shift','c']\",modifiers:{\"once\":true}}],staticClass:\"hide\",attrs:{\"data-testid\":_vm.componentTestid + '-config'},on:{\"shortkey\":function($event){return _vm.keyAction('goToViewConfig')}}}):_vm._e(),(_vm.isView)?_c('button',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['shift','y']),expression:\"['shift','y']\",modifiers:{\"once\":true}}],staticClass:\"hide\",attrs:{\"data-testid\":_vm.componentTestid + '-yaml'},on:{\"shortkey\":function($event){return _vm.keyAction('goToViewYaml')}}}):_vm._e(),(_vm.isView)?_c('button',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['shift','e']),expression:\"['shift','e']\",modifiers:{\"once\":true}}],staticClass:\"hide\",attrs:{\"data-testid\":_vm.componentTestid + '-edit'},on:{\"shortkey\":function($event){return _vm.keyAction('goToEdit')}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"masthead\"},[_c('header',[_c('div',{staticClass:\"title\"},[_c('div',{staticClass:\"primaryheader\"},[_c('h1',[(_vm.location)?_c('nuxt-link',{attrs:{\"to\":_vm.location}},[_vm._v(\" \"+_vm._s(_vm.parent.displayName)+\": \")]):_c('span',[_vm._v(_vm._s(_vm.parent.displayName)+\":\")]),(_vm.value.detailPageHeaderActionOverride && _vm.value.detailPageHeaderActionOverride(_vm.realMode))?_c('span',[_vm._v(_vm._s(_vm.value.detailPageHeaderActionOverride(_vm.realMode)))]):_c('t',{attrs:{\"k\":'resourceDetail.header.' + _vm.realMode,\"subtype\":_vm.resourceSubtype,\"name\":_vm.displayName,\"escapehtml\":false}}),(!_vm.isCreate && _vm.parent.showState)?_c('BadgeState',{staticClass:\"masthead-state\",attrs:{\"value\":_vm.value}}):_vm._e(),(!_vm.isCreate && _vm.value.injectionEnabled)?_c('span',{staticClass:\"masthead-istio\"},[_c('i',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.t('projectNamespaces.isIstioInjectionEnabled')),expression:\"t('projectNamespaces.isIstioInjectionEnabled')\"}],staticClass:\"icon icon-sm icon-istio\"})]):_vm._e()],1)]),(!_vm.isCreate)?_c('div',{staticClass:\"subheader\"},[(_vm.isNamespace && _vm.project)?_c('span',[_vm._v(_vm._s(_vm.t(\"resourceDetail.masthead.project\"))+\": \"),_c('nuxt-link',{attrs:{\"to\":_vm.project.detailLocation}},[_vm._v(_vm._s(_vm.project.nameDisplay))])],1):(_vm.isWorkspace)?_c('span',[_vm._v(_vm._s(_vm.t(\"resourceDetail.masthead.workspace\"))+\": \"),_c('nuxt-link',{attrs:{\"to\":_vm.workspaceLocation}},[_vm._v(_vm._s(_vm.namespace))])],1):(_vm.namespace && !_vm.hasMultipleNamespaces)?_c('span',[_vm._v(\" \"+_vm._s(_vm.t(\"resourceDetail.masthead.namespace\"))+\": \"),(!_vm.hideNamespaceLocation)?_c('nuxt-link',{attrs:{\"to\":_vm.namespaceLocation}},[_vm._v(\" \"+_vm._s(_vm.namespace)+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.namespace)+\" \")])],1):_vm._e(),(_vm.parent.showAge)?_c('span',[_vm._v(_vm._s(_vm.t(\"resourceDetail.masthead.age\"))+\": \"),_c('LiveDate',{staticClass:\"live-date\",attrs:{\"value\":_vm.value.creationTimestamp}})],1):_vm._e(),(_vm.value.showPodRestarts)?_c('span',[_vm._v(_vm._s(_vm.t(\"resourceDetail.masthead.restartCount\"))+\":\"),_c('span',{staticClass:\"live-data\"},[_vm._v(\" \"+_vm._s(_vm.value.restartCount))])]):_vm._e()]):_vm._e()]),_vm._t(\"right\",function(){return [_c('div',{staticClass:\"actions-container align-start\"},[_c('div',{staticClass:\"actions\"},[(_vm.detailsAction && _vm.currentView === _vm.DETAIL_VIEW && _vm.isView)?_c('button',{staticClass:\"btn role-primary actions mr-10\",attrs:{\"type\":\"button\",\"disabled\":!_vm.detailsAction.enabled},on:{\"click\":_vm.invokeDetailsAction}},[_vm._v(\" \"+_vm._s(_vm.detailsAction.label)+\" \")]):_vm._e(),(_vm.showSensitiveToggle)?_c('ButtonGroup',{staticClass:\"mr-10\",attrs:{\"value\":!!_vm.hideSensitiveData,\"icon-size\":\"lg\",\"options\":_vm.sensitiveOptions},on:{\"input\":_vm.toggleSensitiveData}}):_vm._e(),(_vm.viewOptions && _vm.isView)?_c('ButtonGroup',{staticClass:\"mr-10\",attrs:{\"options\":_vm.viewOptions},model:{value:(_vm.currentView),callback:function ($$v) {_vm.currentView=$$v},expression:\"currentView\"}}):_vm._e(),(_vm.isView)?_c('button',{ref:\"actions\",staticClass:\"btn role-multi-action actions\",attrs:{\"aria-haspopup\":\"true\",\"type\":\"button\"},on:{\"click\":_vm.showActions}},[_c('i',{staticClass:\"icon icon-actions\"})]):_vm._e()],1)])]})],2),_c('ExtensionPanel',{attrs:{\"resource\":_vm.value,\"type\":_vm.extensionType,\"location\":_vm.extensionLocation}}),(_vm.banner && _vm.isView && !_vm.parent.hideBanner)?_c('Banner',{staticClass:\"state-banner mb-10\",attrs:{\"color\":_vm.banner.color,\"label\":_vm.banner.message}}):_vm._e(),(_vm.managedWarning.show)?_c('Banner',{staticClass:\"mb-20\",attrs:{\"color\":\"warning\",\"label\":_vm.t('resourceDetail.masthead.managedWarning', _vm.managedWarning)}}):_vm._e(),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Masthead.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Masthead.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Masthead.vue?vue&type=template&id=3eff45ba&scoped=true&\"\nimport script from \"./Masthead.vue?vue&type=script&lang=js&\"\nexport * from \"./Masthead.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Masthead.vue?vue&type=style&index=0&id=3eff45ba&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 \"3eff45ba\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"detail-top\",class:{empty: _vm.isEmpty}},[(_vm.hasNamespaces)?_c('div',{staticClass:\"labels\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(_vm.t('resourceDetail.detailTop.namespaces'))+\": \")]),_c('span',_vm._l((_vm.namespaces),function(namespace){return _c('nuxt-link',{key:namespace.name,staticClass:\"namespaceLinkList\",attrs:{\"to\":namespace.detailLocation}},[_vm._v(\" \"+_vm._s(namespace.name)+\" \")])}),1)]):_vm._e(),(_vm.description)?_c('div',{staticClass:\"description\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(_vm.t('resourceDetail.detailTop.description'))+\": \")]),_c('span',{staticClass:\"content\"},[_vm._v(_vm._s(_vm.description))])]):_vm._e(),(_vm.hasDetails)?_c('div',_vm._l((_vm.details),function(group,index){return _c('div',{key:index,staticClass:\"details\"},_vm._l((group),function(detail){return _c('div',{key:detail.label || detail.slotName,staticClass:\"detail\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(detail.label)+\": \")]),(detail.formatter)?_c(detail.formatter,_vm._b({tag:\"component\",attrs:{\"value\":detail.content}},'component',detail.formatterOpts,false)):_c('span',[_vm._v(_vm._s(detail.content))])],1)}),0)}),0):_vm._e(),(_vm.hasLabels)?_c('div',{staticClass:\"labels\"},[_c('div',{staticClass:\"tags\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(_vm.t('resourceDetail.detailTop.labels'))+\": \")]),_vm._l((_vm.labels),function(prop,key){return _c('Tag',{key:key + prop},[(_vm.internalIcons[key])?_c('i',{staticClass:\"icon\",class:_vm.internalIcons[key]}):_vm._e(),(_vm.internalTooltips[key])?_c('span',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(prop ? `${key} : ${prop}` : key),expression:\"prop ? `${key} : ${prop}` : key\"}]},[_c('span',[_vm._v(_vm._s(_vm.internalTooltips[key] ? _vm.internalTooltips[key] : key))]),(_vm.showAllLabels)?_c('span',[_vm._v(\": \"+_vm._s(key))]):_vm._e()]):_c('span',[_vm._v(_vm._s(prop ? `${key} : ${prop}` : key))])])}),(_vm.showFilteredSystemLabels)?_c('a',{staticClass:\"detail-top__label-button\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleLabels.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.t(`resourceDetail.detailTop.${_vm.showAllLabels? 'hideLabels' : 'showLabels'}`))+\" \")]):_vm._e()],2)]):_vm._e(),(_vm.hasAnnotations)?_c('div',{staticClass:\"annotations\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(_vm.t('resourceDetail.detailTop.annotations'))+\": \")]),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleAnnotations.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.t(`resourceDetail.detailTop.${_vm.annotationsVisible? 'hideAnnotations' : 'showAnnotations'}`, {annotations: _vm.annotationCount}))+\" \")]),(_vm.annotationsVisible)?_c('div',_vm._l((_vm.annotations),function(val,key){return _c('DetailText',{key:key,staticClass:\"annotation\",attrs:{\"value\":val,\"label\":key}})}),1):_vm._e()]):_vm._e(),_c('ExtensionPanel',{attrs:{\"resource\":_vm.value,\"type\":_vm.extensionType,\"location\":_vm.extensionLocation}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"tag\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Tag.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!./Tag.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Tag.vue?vue&type=template&id=0d281a35&scoped=true&\"\nimport script from \"./Tag.vue?vue&type=script&lang=js&\"\nexport * from \"./Tag.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Tag.vue?vue&type=style&index=0&id=0d281a35&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 \"0d281a35\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{'force-wrap': true, 'with-copy':_vm.copy}},[(_vm.labelKey)?_c('h5',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.labelKey),expression:\"labelKey\"}]}):(_vm.label)?_c('h5',[_vm._v(\" \"+_vm._s(_vm.label)+\" \")]):_vm._e(),(_vm.isEmpty)?_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('detailText.empty'),expression:\"'detailText.empty'\"}],staticClass:\"text-italic\"}):(_vm.isBinary)?_c('span',{staticClass:\"text-italic\"},[_vm._v(_vm._s(_vm.body))]):(_vm.jsonStr)?_c('CodeMirror',{class:{'conceal': _vm.concealed},attrs:{\"options\":{mode:{name:'javascript', json:true}, lineNumbers:false, foldGutter:false, readOnly:true},\"value\":_vm.jsonStr}}):_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.bodyHtml),expression:\"bodyHtml\"}],class:{'conceal': _vm.concealed, 'monospace': _vm.monospace && !_vm.isBinary},attrs:{\"data-testid\":\"detail-top_html\"}}),(!_vm.isBinary && !_vm.jsonStr && _vm.isLong && !_vm.expanded)?[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.expand.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.plusMore))])]:_vm._e(),(_vm.copy && !_vm.isBinary)?_c('CopyToClipboard',{staticClass:\"role-tertiary\",attrs:{\"text\":_vm.value,\"action-color\":\"\"}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AsyncButton',_vm._b({attrs:{\"icon\":\"icon-copy\",\"show-label\":_vm.showLabel,\"action-label\":\"Copy\",\"waiting-label\":\"Copying...\",\"success-label\":\"Copied!\",\"error-label\":\"Error Copying\",\"delay\":2000},on:{\"click\":_vm.clicked}},'AsyncButton',_vm.$attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CopyToClipboard.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!./CopyToClipboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CopyToClipboard.vue?vue&type=template&id=81782cb4&\"\nimport script from \"./CopyToClipboard.vue?vue&type=script&lang=js&\"\nexport * from \"./CopyToClipboard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailText.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!./DetailText.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DetailText.vue?vue&type=template&id=348d5cf1&scoped=true&\"\nimport script from \"./DetailText.vue?vue&type=script&lang=js&\"\nexport * from \"./DetailText.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DetailText.vue?vue&type=style&index=0&id=348d5cf1&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 \"348d5cf1\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailTop.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!./DetailTop.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DetailTop.vue?vue&type=template&id=ab4e0560&\"\nimport script from \"./DetailTop.vue?vue&type=script&lang=js&\"\nexport * from \"./DetailTop.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DetailTop.vue?vue&type=style&index=0&id=ab4e0560&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"chart-container\"},[(!_vm.isChartFirstRenderAnimationFinished)?_c('div',{staticClass:\"loading-container\"},[_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isChartFirstRendered),expression:\"!isChartFirstRendered\"}]},[_vm._v(\" \"+_vm._s(_vm.t('fleet.fdc.loadingChart'))+\" \")]),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isChartFirstRendered && !_vm.isChartFirstRenderAnimationFinished),expression:\"isChartFirstRendered && !isChartFirstRenderAnimationFinished\"}]},[_vm._v(\" \"+_vm._s(_vm.t('fleet.fdc.renderingChart'))+\" \")]),_c('i',{staticClass:\"mt-10 icon-spinner icon-spin\"})]):_vm._e(),_c('div',{attrs:{\"id\":\"tree\"}}),_c('div',{staticClass:\"more-info-container\"},[_c('div',{staticClass:\"more-info\"},[_c('table',_vm._l((_vm.moreInfo),function(item,i){return _c('tr',{key:i},[(item.type !== 'single-error')?_c('td',{class:{'align-middle': item.type === 'state-badge'}},[_c('span',{staticClass:\"more-info-item-label\"},[_vm._v(_vm._s(_vm.t(item.labelKey))+\":\")])]):_vm._e(),(item.type === 'title-link')?_c('td',[(item.valueObj.detailLocation)?_c('span',[_c('n-link',{attrs:{\"to\":item.valueObj.detailLocation}},[_vm._v(\" \"+_vm._s(item.valueObj.id)+\" \")])],1):_c('span',[_vm._v(_vm._s(item.valueObj.id))])]):(item.type === 'state-badge')?_c('td',{staticClass:\"align-middle\"},[_c('span',[_c('BadgeState',{staticClass:\"state-bagde\",attrs:{\"color\":`bg-${item.valueObj.stateColor}`,\"label\":item.valueObj.stateLabel}})],1)]):_vm._e(),(item.type === 'single-error')?_c('td',{staticClass:\"single-error\",attrs:{\"colspan\":\"2\"}},[_c('p',[_vm._v(_vm._s(item.value))])]):_c('td',[_vm._v(\" \"+_vm._s(item.value)+\" \")])])}),0)])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function(x, y) {\n var nodes, strength = 1;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n return force;\n}\n","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(random) {\n return (random() - 0.5) * 1e-6;\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n random,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"node not found: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n random,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle(random);\n y = target.y + target.vy - source.y - source.vy || jiggle(random);\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer} from \"d3-timer\";\nimport lcg from \"./lcg.js\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = new Map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\"),\n random = lcg();\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.forEach(function(force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes, random);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n randomSource: function(_) {\n return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\nimport {x, y} from \"./simulation.js\";\n\nexport default function() {\n var nodes,\n node,\n random,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","// This is to mitigate an issue where the SVG icons being imported from the project weren't being rendered on Firefox\n// To know more about this technique, check this doc: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs\nexport const getChartIcon = (type) => `\n\n\n\n\n\n\n\n\n\n\n\n\n\n`;\n","\n\n\n\n\n","import mod from \"-!../../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4cb4c59b&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4cb4c59b&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Popup, popupWindowOptions } from '@shell/utils/window';\r\nimport { parse as parseUrl, addParam } from '@shell/utils/url';\r\nimport { BACK_TO, SPA, _EDIT, _FLAGGED } from '@shell/config/query-params';\r\nimport { MANAGEMENT } from '@shell/config/types';\r\nimport { allHash } from '@shell/utils/promise';\r\n\r\nexport function openAuthPopup(url, provider) {\r\n const popup = new Popup(() => {\r\n popup.promise = new Promise((resolve, reject) => {\r\n popup.resolve = resolve;\r\n popup.reject = reject;\r\n });\r\n\r\n window.onAuthTest = (error, code) => {\r\n if (error) {\r\n popup.reject(error);\r\n }\r\n\r\n delete window.onAuthTest;\r\n popup.resolve(code);\r\n };\r\n }, () => {\r\n popup.reject(new Error('Access was not authorized'));\r\n });\r\n\r\n popup.open(url, 'auth-test', popupWindowOptions());\r\n\r\n return popup.promise;\r\n}\r\n\r\nexport function returnTo(opt, vm) {\r\n let { route = `/auth/verify` } = opt;\r\n\r\n if ( vm.$router.options && vm.$router.options.base ) {\r\n const routerBase = vm.$router.options.base;\r\n\r\n if ( routerBase !== '/' ) {\r\n route = `${ routerBase.replace(/\\/+$/, '') }/${ route.replace(/^\\/+/, '') }`;\r\n }\r\n }\r\n\r\n let returnToUrl = `${ window.location.origin }${ route }`;\r\n\r\n const parsed = parseUrl(window.location.href);\r\n\r\n if ( parsed.query.spa !== undefined ) {\r\n returnToUrl = addParam(returnToUrl, SPA, _FLAGGED);\r\n }\r\n\r\n if ( opt.backTo ) {\r\n returnToUrl = addParam(returnToUrl, BACK_TO, opt.backTo);\r\n }\r\n\r\n if (opt.config) {\r\n returnToUrl = addParam(returnToUrl, 'config', opt.config);\r\n }\r\n\r\n return returnToUrl;\r\n}\r\n\r\n/**\r\n * Determines common auth provider info as those that are available (non-local) and the location of the enabled provider\r\n */\r\nexport const authProvidersInfo = async(store) => {\r\n const rows = await store.dispatch(`management/findAll`, { type: MANAGEMENT.AUTH_CONFIG });\r\n const nonLocal = rows.filter((x) => x.name !== 'local');\r\n // Generic OIDC is returned via API but not supported (and will be removed or fixed in future)\r\n const supportedNonLocal = nonLocal.filter((x) => x.id !== 'oidc');\r\n const enabled = nonLocal.filter((x) => x.enabled === true );\r\n\r\n const enabledLocation = enabled.length === 1 ? {\r\n name: 'c-cluster-auth-config-id',\r\n params: { id: enabled[0].id },\r\n query: { mode: _EDIT }\r\n } : null;\r\n\r\n return {\r\n nonLocal: supportedNonLocal,\r\n enabledLocation,\r\n enabled\r\n };\r\n};\r\n\r\nexport const checkSchemasForFindAllHash = (types, store) => {\r\n const hash = {};\r\n\r\n for (const [key, value] of Object.entries(types)) {\r\n const schema = store.getters[`${ value.inStoreType }/schemaFor`](value.type);\r\n\r\n // It could be that user has permissions for GET but not list\r\n // e.g. Standard user with GitRepo permissions try to fetch list of fleetworkspaces\r\n // user has ability to GET but not fleet workspaces\r\n // so optionally define a function that require it to pass before /findAll\r\n const validSchema = value.schemaValidator ? value.schemaValidator(schema) : !!schema;\r\n\r\n if (validSchema) {\r\n hash[key] = store.dispatch(`${ value.inStoreType }/findAll`, { type: value.type } );\r\n }\r\n }\r\n\r\n return allHash(hash);\r\n};\r\n\r\nexport const checkPermissions = (types, getters) => {\r\n const hash = {};\r\n\r\n for (const [key, value] of Object.entries(types)) {\r\n const schema = getters['management/schemaFor'](value.type);\r\n\r\n if (!schema) {\r\n hash[key] = false;\r\n\r\n continue;\r\n }\r\n\r\n // It could be that user has permissions for GET but not list\r\n // e.g. Standard user with GitRepo permissions try to fetch list of fleetworkspaces\r\n // user has ability to GET but not fleet workspaces\r\n // so optionally define a function that require it to pass before /findAll\r\n if (value.schemaValidator) {\r\n hash[key] = value.schemaValidator(schema);\r\n\r\n continue;\r\n }\r\n\r\n if (value.resourceMethods && schema) {\r\n hash[key] = value.resourceMethods.every((method) => {\r\n return (schema.resourceMethods || []).includes(method);\r\n });\r\n\r\n continue;\r\n }\r\n\r\n if (value.collectionMethods && schema) {\r\n hash[key] = value.collectionMethods.every((method) => {\r\n return (schema.collectionMethods || []).includes(method);\r\n });\r\n\r\n continue;\r\n }\r\n\r\n hash[key] = !!schema;\r\n }\r\n\r\n return allHash(hash);\r\n};\r\n","\n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=55e3f65d&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=55e3f65d&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 \"55e3f65d\",\n null\n \n)\n\nexport default component.exports","\nimport ResourceDetail from '@shell/components/ResourceDetail/index.vue';\n\nexport default {\n name: 'KubewardenResourceCreate',\n components: { ResourceDetail },\n};\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./create.vue?vue&type=template&id=5feb7205&\"\nimport script from \"./create.vue?vue&type=script&lang=ts&\"\nexport * from \"./create.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ResourceDetail')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport ResourceDetail from '@shell/components/ResourceDetail/index.vue';\n\nexport default {\n name: 'KubewardenResourcedId',\n components: { ResourceDetail },\n};\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./_id.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./_id.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./_id.vue?vue&type=template&id=6fbed2fe&\"\nimport script from \"./_id.vue?vue&type=script&lang=ts&\"\nexport * from \"./_id.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ResourceDetail')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport ResourceDetail from '@shell/components/ResourceDetail/index.vue';\n\nexport default {\n name: 'KubewardenResourcedNamespaceId',\n components: { ResourceDetail },\n};\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./_id.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./_id.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./_id.vue?vue&type=template&id=5953c8d8&\"\nimport script from \"./_id.vue?vue&type=script&lang=ts&\"\nexport * from \"./_id.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { KUBEWARDEN_PRODUCT_NAME } from '../types';\n\nimport Dashboard from '../pages/c/_cluster/kubewarden/index.vue';\nimport KubewardenResourcedList from '../pages/c/_cluster/kubewarden/_resource/index.vue';\nimport CreateKubewardenResource from '../pages/c/_cluster/kubewarden/_resource/create.vue';\nimport ViewKubewardenResource from '../pages/c/_cluster/kubewarden/_resource/_id.vue';\nimport ViewKubewardenNsResource from '../pages/c/_cluster/kubewarden/_resource/_namespace/_id.vue';\n\nconst routes = [\n {\n name: `c-cluster-${ KUBEWARDEN_PRODUCT_NAME }`,\n path: `/c/:cluster/${ KUBEWARDEN_PRODUCT_NAME }`,\n component: Dashboard,\n meta: { product: KUBEWARDEN_PRODUCT_NAME, pkg: KUBEWARDEN_PRODUCT_NAME }\n },\n {\n name: `c-cluster-${ KUBEWARDEN_PRODUCT_NAME }-resource`,\n path: `/c/:cluster/${ KUBEWARDEN_PRODUCT_NAME }/:resource`,\n component: KubewardenResourcedList,\n meta: { product: KUBEWARDEN_PRODUCT_NAME, pkg: KUBEWARDEN_PRODUCT_NAME }\n },\n {\n name: `c-cluster-${ KUBEWARDEN_PRODUCT_NAME }-resource-create`,\n path: `/c/:cluster/${ KUBEWARDEN_PRODUCT_NAME }/:resource/create`,\n component: CreateKubewardenResource,\n meta: { product: KUBEWARDEN_PRODUCT_NAME, pkg: KUBEWARDEN_PRODUCT_NAME }\n },\n {\n name: `c-cluster-${ KUBEWARDEN_PRODUCT_NAME }-resource-id`,\n path: `/c/:cluster/${ KUBEWARDEN_PRODUCT_NAME }/:resource/:id`,\n component: ViewKubewardenResource,\n meta: { product: KUBEWARDEN_PRODUCT_NAME, pkg: KUBEWARDEN_PRODUCT_NAME }\n },\n {\n name: `c-cluster-${ KUBEWARDEN_PRODUCT_NAME }-resource-namespace-id`,\n path: `/c/:cluster/${ KUBEWARDEN_PRODUCT_NAME }/:resource/:namespace/:id`,\n component: ViewKubewardenNsResource,\n meta: { product: KUBEWARDEN_PRODUCT_NAME, pkg: KUBEWARDEN_PRODUCT_NAME }\n }\n];\n\nexport default routes;\n","import { StateConfig } from './index';\n\nexport default {\n airGapped: (state: StateConfig): Boolean => state.airGapped,\n hideBannerDefaults: (state: StateConfig): Boolean => state.hideBannerDefaults,\n hideBannerArtifactHub: (state: StateConfig): Boolean => state.hideBannerArtifactHub,\n hideBannerAirgapPolicy: (state: StateConfig): Boolean => state.hideBannerAirgapPolicy\n};\n","import { StateConfig } from './index';\n\nexport default {\n updateAirGapped(state: StateConfig, val: Boolean) {\n state.airGapped = val;\n },\n updateHideBannerDefaults(state: StateConfig, val: Boolean) {\n state.hideBannerDefaults = val;\n },\n updateHideBannerArtifactHub(state: StateConfig, val: Boolean) {\n state.hideBannerArtifactHub = val;\n },\n updateHideBannerAirgapPolicy(state: StateConfig, val: Boolean) {\n state.hideBannerAirgapPolicy = val;\n }\n};\n","export default {\n updateAirGapped({ commit }: any, val: Boolean) {\n commit('updateAirGapped', val);\n },\n updateHideBannerDefaults({ commit }: any, val: Boolean) {\n commit('updateHideBannerDefaults', val);\n },\n updateHideBannerArtifactHub({ commit }: any, val: Boolean) {\n commit('updateHideBannerArtifactHub', val);\n },\n updateHideBannerAirgapPolicy({ commit }: any, val: Boolean) {\n commit('updateHideBannerAirgapPolicy', val);\n }\n};\n","import { CoreStoreSpecifics, CoreStoreConfig } from '@shell/core/types';\n\nimport { KUBEWARDEN_PRODUCT_NAME } from '../../types';\n\nimport getters from './getters';\nimport mutations from './mutations';\nimport actions from './actions';\n\nexport interface StateConfig {\n airGapped: Boolean,\n hideBannerDefaults: Boolean,\n hideBannerArtifactHub: Boolean,\n hideBannerAirgapPolicy: Boolean\n}\n\nconst kubewardenFactory = (config: StateConfig): CoreStoreSpecifics => {\n return {\n state: (): StateConfig => {\n return {\n airGapped: config.airGapped,\n hideBannerDefaults: config.hideBannerDefaults,\n hideBannerArtifactHub: config.hideBannerArtifactHub,\n hideBannerAirgapPolicy: config.hideBannerAirgapPolicy\n };\n },\n\n getters: { ...getters },\n mutations: { ...mutations },\n actions: { ...actions },\n };\n};\n\nconst config: CoreStoreConfig = { namespace: KUBEWARDEN_PRODUCT_NAME };\n\nexport default {\n specifics: kubewardenFactory({\n airGapped: false,\n hideBannerDefaults: false,\n hideBannerArtifactHub: false,\n hideBannerAirgapPolicy: false\n }),\n config\n};\n","import Vue from 'vue';\nimport DOMPurify from 'dompurify';\n\nconst ALLOWED_TAGS = [\n 'code',\n 'li',\n 'a',\n 'p',\n 'b',\n 'br',\n 'ul',\n 'pre',\n 'span',\n 'div',\n 'i',\n 'em',\n 'strong',\n];\n\nexport const purifyHTML = (value) => DOMPurify.sanitize(value, { ALLOWED_TAGS });\n\nexport const cleanHtmlDirective = {\n inserted(el, binding) {\n el.innerHTML = purifyHTML(binding.value);\n },\n componentUpdated(el, binding) {\n el.innerHTML = purifyHTML(binding.value);\n },\n unbind(el) {\n el.innerHTML = '';\n }\n};\n\nVue.directive('clean-html', cleanHtmlDirective);\n","import Vue from 'vue';\nimport { VTooltip } from 'v-tooltip';\nimport { purifyHTML } from './clean-html-directive';\n\nfunction purifyContent(value) {\n const type = typeof value;\n\n if (type === 'string') {\n return purifyHTML(value);\n } else if (value && type === 'object' && typeof value.content === 'string') {\n return { ...value, content: purifyHTML(value.content) };\n } else {\n return value;\n }\n}\n\nfunction bind(el, { value, oldValue, modifiers }) {\n const purifiedValue = purifyContent(value);\n\n VTooltip.bind(\n el,\n {\n value: purifiedValue, oldValue, modifiers\n });\n}\n\nconst VCleanTooltip = {\n ...VTooltip,\n bind,\n update: bind,\n};\n\nVue.directive('clean-tooltip', VCleanTooltip);\n","import { importTypes } from '@rancher/auto-import';\nimport { IPlugin } from '@shell/core/types';\n\nimport kubewardenRoutes from './routes/kubewarden-routes';\nimport kubewardenStore from './store/kubewarden';\n\n// fix missing directives on dashboard v2.7.2\nimport '@shell/plugins/clean-tooltip-directive';\nimport '@shell/plugins/clean-html-directive';\n\n// Init the package\nexport default function($plugin: IPlugin) {\n // Auto-import model, detail, edit from the folders\n importTypes($plugin);\n\n // Provide plugin metadata from package.json\n $plugin.metadata = require('./package.json');\n\n // Load product\n $plugin.addProduct(require('./config/kubewarden'));\n\n // Add Vuex store\n $plugin.addDashboardStore(kubewardenStore.config.namespace, kubewardenStore.specifics, kubewardenStore.config);\n\n // Routes\n $plugin.addRoutes(kubewardenRoutes);\n}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".percentage-bar[data-v-620caa7e]{display:flex;flex-direction:row}.percentage-bar .percentage-value[data-v-620caa7e]{word-break:keep-all}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import { get } from './object';\nimport { strPad } from './string';\n\n// Based on https://github.com/emberjs/ember.js/blob/master/packages/@ember/-internals/runtime/lib/type-of.js\n// and https://github.com/emberjs/ember.js/blob/master/packages/@ember/-internals/runtime/lib/mixins/array.js\n/*\nCopyright (c) 2019 Yehuda Katz, Tom Dale and Ember.js contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\n// ........................................\n// TYPING & ARRAY MESSAGING\n//\nconst TYPE_MAP = {\n '[object Boolean]': 'boolean',\n '[object Number]': 'number',\n '[object String]': 'string',\n '[object Function]': 'function',\n '[object Array]': 'array',\n '[object Date]': 'date',\n '[object RegExp]': 'regexp',\n '[object Object]': 'object',\n '[object FileList]': 'filelist',\n};\n\nconst { toString } = Object.prototype;\n\n/**\n Returns a consistent type for the passed object.\n\n Use this instead of the built-in `typeof` to get the type of an item.\n It will return the same result across all browsers and includes a bit\n more detail. Here is what will be returned:\n\n | Return Value | Meaning |\n |---------------|------------------------------------------------------|\n | 'string' | String primitive or String object. |\n | 'number' | Number primitive or Number object. |\n | 'boolean' | Boolean primitive or Boolean object. |\n | 'null' | Null value |\n | 'undefined' | Undefined value |\n | 'function' | A function |\n | 'array' | An instance of Array |\n | 'regexp' | An instance of RegExp |\n | 'date' | An instance of Date |\n | 'filelist' | An instance of FileList |\n | 'error' | An instance of the Error object |\n | 'object' | A JavaScript object |\n\n Examples:\n\n import { typeOf } from '@shell/utils/type-of';\n\n typeOf(); // 'undefined'\n typeOf(null); // 'null'\n typeOf(undefined); // 'undefined'\n typeOf('michael'); // 'string'\n typeOf(new String('michael')); // 'string'\n typeOf(101); // 'number'\n typeOf(new Number(101)); // 'number'\n typeOf(true); // 'boolean'\n typeOf(new Boolean(true)); // 'boolean'\n typeOf(A); // 'function'\n typeOf([1, 2, 90]); // 'array'\n typeOf(/abc/); // 'regexp'\n typeOf(new Date()); // 'date'\n typeOf(event.target.files); // 'filelist'\n typeOf(new Error('teamocil')); // 'error'\n\n // 'normal' JavaScript object\n typeOf({ a: 'b' }); // 'object'\n*/\nexport function typeOf(item) {\n if (item === null) {\n return 'null';\n }\n if (item === undefined) {\n return 'undefined';\n }\n let ret = TYPE_MAP[toString.call(item)] || 'object';\n\n if (ret === 'object') {\n if (item instanceof Error) {\n ret = 'error';\n } else if (item instanceof Date) {\n ret = 'date';\n }\n }\n\n return ret;\n}\n\nexport function spaceship(a, b) {\n const diff = a - b;\n\n return (diff > 0) - (diff < 0);\n}\n\nconst TYPE_ORDER = {\n undefined: 0,\n null: 1,\n boolean: 2,\n number: 3,\n string: 4,\n array: 5,\n object: 6,\n instance: 7,\n function: 8,\n class: 9,\n date: 10,\n};\n\nexport function compare(a, b) {\n const typeA = typeOf(a);\n const typeB = typeOf(b);\n\n const res = spaceship(TYPE_ORDER[typeA], TYPE_ORDER[typeB]);\n\n if ( res ) {\n return res;\n }\n\n switch (typeA) {\n case 'boolean':\n case 'number':\n return spaceship(a, b);\n\n case 'string':\n return spaceship(a.localeCompare(b), 0);\n\n case 'array': {\n const aLen = a.length;\n const bLen = b.length;\n const len = Math.min(aLen, bLen);\n\n for (let i = 0; i < len; i++) {\n const r = compare(a[i], b[i]);\n\n if (r !== 0) {\n return r;\n }\n }\n\n // all elements are equal now\n // shorter array should be ordered first\n return spaceship(aLen, bLen);\n }\n case 'date':\n return spaceship(a.getTime(), b.getTime());\n }\n\n return 0;\n}\n\nexport function parseField(str) {\n const parts = str.split(/:/);\n\n if ( parts.length === 2 && parts[1] === 'desc' ) {\n return { field: parts[0], reverse: true };\n } else {\n return { field: str, reverse: false };\n }\n}\n\nexport function sortBy(ary, keys, desc) {\n if ( !Array.isArray(keys) ) {\n keys = [keys];\n }\n\n return ary.slice().sort((objA, objB) => {\n for ( let i = 0 ; i < keys.length ; i++ ) {\n const parsed = parseField(keys[i]);\n const a = get(objA, parsed.field);\n const b = get(objB, parsed.field);\n let res = compare(a, b);\n\n if ( res ) {\n if ( desc ) {\n res *= -1;\n }\n\n if ( parsed.reverse ) {\n res *= -1;\n }\n\n return res;\n }\n }\n\n return 0;\n });\n}\n\n// Turn foo1-bar2 into foo0000000001-bar0000000002 so that the numbers sort numerically\nconst splitRegex = /([^\\d]+)/;\nconst notNumericRegex = /^[0-9]+$/;\n\nexport function sortableNumericSuffix(str) {\n if ( typeof str !== 'string' ) {\n return str;\n }\n\n return str.split(splitRegex).map((x) => x.match(notNumericRegex) ? strPad(x, 10, '0') : x).join('').trim();\n}\n\nexport function isNumeric(num) {\n return !!`${ num }`.match(notNumericRegex);\n}\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","(function() {\nif (!!!global.browserTemplates) global.browserTemplates = {};\nvar Hogan = require(\"hogan.js\");global.browserTemplates[\"file-summary-line\"] = 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.rp(\"\");t.b(t.v(t.f(\"fileName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"addedLines\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"deletedLines\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
  • \");return t.fl(); },partials: {\"\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" Files changed (\");t.b(t.v(t.f(\"filesNumber\",c,p,0)));t.b(\")\");t.b(\"\\n\" + i);t.b(\" hide\");t.b(\"\\n\" + i);t.b(\" show\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
      \");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(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(t.t(t.f(\"blockHeader\",c,p,0)));t.b(\"
    \");t.b(\"\\n\" + 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(\" File without changes\");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(t.v(t.f(\"fileDiffName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(t.rp(\"\");return t.fl(); },partials: {\"\");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);if(t.s(t.f(\"prefix\",c,p,1),c,p,0,171,247,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" \");t.b(t.t(t.f(\"prefix\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"content\",c,p,1),c,p,0,279,353,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" \");t.b(t.t(t.f(\"content\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);});c.pop();}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(t.t(t.f(\"content\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
    \");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"icon-file-added\"] = 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(\"\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"icon-file-changed\"] = 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(\"\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"icon-file-deleted\"] = 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(\"\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"icon-file-renamed\"] = 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(\"\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"icon-file\"] = 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(\"\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"line-by-line-file-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(t.t(t.f(\"filePath\",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(\"\\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(\"
    \");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"line-by-line-numbers\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(t.v(t.f(\"oldNumber\",c,p,0)));t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(t.v(t.f(\"newNumber\",c,p,0)));t.b(\"
    \");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"side-by-side-file-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(t.t(t.f(\"filePath\",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(\"\\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(\"\\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(\"
    \");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[\"tag-file-added\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"ADDED\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"tag-file-changed\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"CHANGED\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"tag-file-deleted\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"DELETED\");return t.fl(); },partials: {}, subs: { }});\nglobal.browserTemplates[\"tag-file-renamed\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"RENAMED\");return t.fl(); },partials: {}, subs: { }});\nmodule.exports = global.browserTemplates;\n})();\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"cronstrue\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cronstrue\"] = factory();\n\telse\n\t\troot[\"cronstrue\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 4);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar stringUtilities_1 = __webpack_require__(1);\nvar cronParser_1 = __webpack_require__(2);\nvar ExpressionDescriptor = (function () {\n function ExpressionDescriptor(expression, options) {\n this.expression = expression;\n this.options = options;\n this.expressionParts = new Array(5);\n if (ExpressionDescriptor.locales[options.locale]) {\n this.i18n = ExpressionDescriptor.locales[options.locale];\n }\n else {\n console.warn(\"Locale '\" + options.locale + \"' could not be found; falling back to 'en'.\");\n this.i18n = ExpressionDescriptor.locales[\"en\"];\n }\n if (options.use24HourTimeFormat === undefined) {\n options.use24HourTimeFormat = this.i18n.use24HourTimeFormatByDefault();\n }\n }\n ExpressionDescriptor.toString = function (expression, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.throwExceptionOnParseError, throwExceptionOnParseError = _c === void 0 ? true : _c, _d = _b.verbose, verbose = _d === void 0 ? false : _d, _e = _b.dayOfWeekStartIndexZero, dayOfWeekStartIndexZero = _e === void 0 ? true : _e, use24HourTimeFormat = _b.use24HourTimeFormat, _f = _b.locale, locale = _f === void 0 ? \"en\" : _f;\n var options = {\n throwExceptionOnParseError: throwExceptionOnParseError,\n verbose: verbose,\n dayOfWeekStartIndexZero: dayOfWeekStartIndexZero,\n use24HourTimeFormat: use24HourTimeFormat,\n locale: locale\n };\n var descripter = new ExpressionDescriptor(expression, options);\n return descripter.getFullDescription();\n };\n ExpressionDescriptor.initialize = function (localesLoader) {\n ExpressionDescriptor.specialCharacters = [\"/\", \"-\", \",\", \"*\"];\n localesLoader.load(ExpressionDescriptor.locales);\n };\n ExpressionDescriptor.prototype.getFullDescription = function () {\n var description = \"\";\n try {\n var parser = new cronParser_1.CronParser(this.expression, this.options.dayOfWeekStartIndexZero);\n this.expressionParts = parser.parse();\n var timeSegment = this.getTimeOfDayDescription();\n var dayOfMonthDesc = this.getDayOfMonthDescription();\n var monthDesc = this.getMonthDescription();\n var dayOfWeekDesc = this.getDayOfWeekDescription();\n var yearDesc = this.getYearDescription();\n description += timeSegment + dayOfMonthDesc + dayOfWeekDesc + monthDesc + yearDesc;\n description = this.transformVerbosity(description, this.options.verbose);\n description = description.charAt(0).toLocaleUpperCase() + description.substr(1);\n }\n catch (ex) {\n if (!this.options.throwExceptionOnParseError) {\n description = this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();\n }\n else {\n throw \"\" + ex;\n }\n }\n return description;\n };\n ExpressionDescriptor.prototype.getTimeOfDayDescription = function () {\n var secondsExpression = this.expressionParts[0];\n var minuteExpression = this.expressionParts[1];\n var hourExpression = this.expressionParts[2];\n var description = \"\";\n if (!stringUtilities_1.StringUtilities.containsAny(minuteExpression, ExpressionDescriptor.specialCharacters) &&\n !stringUtilities_1.StringUtilities.containsAny(hourExpression, ExpressionDescriptor.specialCharacters) &&\n !stringUtilities_1.StringUtilities.containsAny(secondsExpression, ExpressionDescriptor.specialCharacters)) {\n description += this.i18n.atSpace() + this.formatTime(hourExpression, minuteExpression, secondsExpression);\n }\n else if (!secondsExpression &&\n minuteExpression.indexOf(\"-\") > -1 &&\n !(minuteExpression.indexOf(\",\") > -1) &&\n !(minuteExpression.indexOf(\"/\") > -1) &&\n !stringUtilities_1.StringUtilities.containsAny(hourExpression, ExpressionDescriptor.specialCharacters)) {\n var minuteParts = minuteExpression.split(\"-\");\n description += stringUtilities_1.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(), this.formatTime(hourExpression, minuteParts[0], \"\"), this.formatTime(hourExpression, minuteParts[1], \"\"));\n }\n else if (!secondsExpression &&\n hourExpression.indexOf(\",\") > -1 &&\n hourExpression.indexOf(\"-\") == -1 &&\n hourExpression.indexOf(\"/\") == -1 &&\n !stringUtilities_1.StringUtilities.containsAny(minuteExpression, ExpressionDescriptor.specialCharacters)) {\n var hourParts = hourExpression.split(\",\");\n description += this.i18n.at();\n for (var i = 0; i < hourParts.length; i++) {\n description += \" \";\n description += this.formatTime(hourParts[i], minuteExpression, \"\");\n if (i < hourParts.length - 2) {\n description += \",\";\n }\n if (i == hourParts.length - 2) {\n description += this.i18n.spaceAnd();\n }\n }\n }\n else {\n var secondsDescription = this.getSecondsDescription();\n var minutesDescription = this.getMinutesDescription();\n var hoursDescription = this.getHoursDescription();\n description += secondsDescription;\n if (description.length > 0 && minutesDescription.length > 0) {\n description += \", \";\n }\n description += minutesDescription;\n if (description.length > 0 && hoursDescription.length > 0) {\n description += \", \";\n }\n description += hoursDescription;\n }\n return description;\n };\n ExpressionDescriptor.prototype.getSecondsDescription = function () {\n var _this = this;\n var description = this.getSegmentDescription(this.expressionParts[0], this.i18n.everySecond(), function (s) {\n return s;\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Seconds(), s);\n }, function (s) {\n return _this.i18n.secondsX0ThroughX1PastTheMinute();\n }, function (s) {\n return s == \"0\"\n ? \"\"\n : parseInt(s) < 20\n ? _this.i18n.atX0SecondsPastTheMinute()\n : _this.i18n.atX0SecondsPastTheMinuteGt20() || _this.i18n.atX0SecondsPastTheMinute();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getMinutesDescription = function () {\n var _this = this;\n var secondsExpression = this.expressionParts[0];\n var hourExpression = this.expressionParts[2];\n var description = this.getSegmentDescription(this.expressionParts[1], this.i18n.everyMinute(), function (s) {\n return s;\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Minutes(), s);\n }, function (s) {\n return _this.i18n.minutesX0ThroughX1PastTheHour();\n }, function (s) {\n try {\n return s == \"0\" && hourExpression.indexOf(\"/\") == -1 && secondsExpression == \"\"\n ? _this.i18n.everyHour()\n : parseInt(s) < 20\n ? _this.i18n.atX0MinutesPastTheHour()\n : _this.i18n.atX0MinutesPastTheHourGt20() || _this.i18n.atX0MinutesPastTheHour();\n }\n catch (e) {\n return _this.i18n.atX0MinutesPastTheHour();\n }\n });\n return description;\n };\n ExpressionDescriptor.prototype.getHoursDescription = function () {\n var _this = this;\n var expression = this.expressionParts[2];\n var description = this.getSegmentDescription(expression, this.i18n.everyHour(), function (s) {\n return _this.formatTime(s, \"0\", \"\");\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Hours(), s);\n }, function (s) {\n return _this.i18n.betweenX0AndX1();\n }, function (s) {\n return _this.i18n.atX0();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getDayOfWeekDescription = function () {\n var _this = this;\n var daysOfWeekNames = this.i18n.daysOfTheWeek();\n var description = null;\n if (this.expressionParts[5] == \"*\") {\n description = \"\";\n }\n else {\n description = this.getSegmentDescription(this.expressionParts[5], this.i18n.commaEveryDay(), function (s) {\n var exp = s;\n if (s.indexOf(\"#\") > -1) {\n exp = s.substr(0, s.indexOf(\"#\"));\n }\n else if (s.indexOf(\"L\") > -1) {\n exp = exp.replace(\"L\", \"\");\n }\n return daysOfWeekNames[parseInt(exp)];\n }, function (s) {\n if (parseInt(s) == 1) {\n return \"\";\n }\n else {\n return stringUtilities_1.StringUtilities.format(_this.i18n.commaEveryX0DaysOfTheWeek(), s);\n }\n }, function (s) {\n return _this.i18n.commaX0ThroughX1();\n }, function (s) {\n var format = null;\n if (s.indexOf(\"#\") > -1) {\n var dayOfWeekOfMonthNumber = s.substring(s.indexOf(\"#\") + 1);\n var dayOfWeekOfMonthDescription = null;\n switch (dayOfWeekOfMonthNumber) {\n case \"1\":\n dayOfWeekOfMonthDescription = _this.i18n.first();\n break;\n case \"2\":\n dayOfWeekOfMonthDescription = _this.i18n.second();\n break;\n case \"3\":\n dayOfWeekOfMonthDescription = _this.i18n.third();\n break;\n case \"4\":\n dayOfWeekOfMonthDescription = _this.i18n.fourth();\n break;\n case \"5\":\n dayOfWeekOfMonthDescription = _this.i18n.fifth();\n break;\n }\n format = _this.i18n.commaOnThe() + dayOfWeekOfMonthDescription + _this.i18n.spaceX0OfTheMonth();\n }\n else if (s.indexOf(\"L\") > -1) {\n format = _this.i18n.commaOnTheLastX0OfTheMonth();\n }\n else {\n var domSpecified = _this.expressionParts[3] != \"*\";\n format = domSpecified ? _this.i18n.commaAndOnX0() : _this.i18n.commaOnlyOnX0();\n }\n return format;\n });\n }\n return description;\n };\n ExpressionDescriptor.prototype.getMonthDescription = function () {\n var _this = this;\n var monthNames = this.i18n.monthsOfTheYear();\n var description = this.getSegmentDescription(this.expressionParts[4], \"\", function (s) {\n return monthNames[parseInt(s) - 1];\n }, function (s) {\n if (parseInt(s) == 1) {\n return \"\";\n }\n else {\n return stringUtilities_1.StringUtilities.format(_this.i18n.commaEveryX0Months(), s);\n }\n }, function (s) {\n return _this.i18n.commaMonthX0ThroughMonthX1() || _this.i18n.commaX0ThroughX1();\n }, function (s) {\n return _this.i18n.commaOnlyInMonthX0 ? _this.i18n.commaOnlyInMonthX0() : _this.i18n.commaOnlyInX0();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getDayOfMonthDescription = function () {\n var _this = this;\n var description = null;\n var expression = this.expressionParts[3];\n switch (expression) {\n case \"L\":\n description = this.i18n.commaOnTheLastDayOfTheMonth();\n break;\n case \"WL\":\n case \"LW\":\n description = this.i18n.commaOnTheLastWeekdayOfTheMonth();\n break;\n default:\n var weekDayNumberMatches = expression.match(/(\\d{1,2}W)|(W\\d{1,2})/);\n if (weekDayNumberMatches) {\n var dayNumber = parseInt(weekDayNumberMatches[0].replace(\"W\", \"\"));\n var dayString = dayNumber == 1\n ? this.i18n.firstWeekday()\n : stringUtilities_1.StringUtilities.format(this.i18n.weekdayNearestDayX0(), dayNumber.toString());\n description = stringUtilities_1.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(), dayString);\n break;\n }\n else {\n var lastDayOffSetMatches = expression.match(/L-(\\d{1,2})/);\n if (lastDayOffSetMatches) {\n var offSetDays = lastDayOffSetMatches[1];\n description = stringUtilities_1.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(), offSetDays);\n break;\n }\n else if (expression == \"*\" && this.expressionParts[5] != \"*\") {\n return \"\";\n }\n else {\n description = this.getSegmentDescription(expression, this.i18n.commaEveryDay(), function (s) {\n return s == \"L\" ? _this.i18n.lastDay() : ((_this.i18n.dayX0) ? stringUtilities_1.StringUtilities.format(_this.i18n.dayX0(), s) : s);\n }, function (s) {\n return s == \"1\" ? _this.i18n.commaEveryDay() : _this.i18n.commaEveryX0Days();\n }, function (s) {\n return _this.i18n.commaBetweenDayX0AndX1OfTheMonth();\n }, function (s) {\n return _this.i18n.commaOnDayX0OfTheMonth();\n });\n }\n break;\n }\n }\n return description;\n };\n ExpressionDescriptor.prototype.getYearDescription = function () {\n var _this = this;\n var description = this.getSegmentDescription(this.expressionParts[6], \"\", function (s) {\n return /^\\d+$/.test(s) ? new Date(parseInt(s), 1).getFullYear().toString() : s;\n }, function (s) {\n return stringUtilities_1.StringUtilities.format(_this.i18n.commaEveryX0Years(), s);\n }, function (s) {\n return _this.i18n.commaYearX0ThroughYearX1() || _this.i18n.commaX0ThroughX1();\n }, function (s) {\n return _this.i18n.commaOnlyInYearX0 ? _this.i18n.commaOnlyInYearX0() : _this.i18n.commaOnlyInX0();\n });\n return description;\n };\n ExpressionDescriptor.prototype.getSegmentDescription = function (expression, allDescription, getSingleItemDescription, getIntervalDescriptionFormat, getBetweenDescriptionFormat, getDescriptionFormat) {\n var _this = this;\n var description = null;\n if (!expression) {\n description = \"\";\n }\n else if (expression === \"*\") {\n description = allDescription;\n }\n else if (!stringUtilities_1.StringUtilities.containsAny(expression, [\"/\", \"-\", \",\"])) {\n description = stringUtilities_1.StringUtilities.format(getDescriptionFormat(expression), getSingleItemDescription(expression));\n }\n else if (expression.indexOf(\"/\") > -1) {\n var segments = expression.split(\"/\");\n description = stringUtilities_1.StringUtilities.format(getIntervalDescriptionFormat(segments[1]), segments[1]);\n if (segments[0].indexOf(\"-\") > -1) {\n var betweenSegmentDescription = this.generateBetweenSegmentDescription(segments[0], getBetweenDescriptionFormat, getSingleItemDescription);\n if (betweenSegmentDescription.indexOf(\", \") != 0) {\n description += \", \";\n }\n description += betweenSegmentDescription;\n }\n else if (!stringUtilities_1.StringUtilities.containsAny(segments[0], [\"*\", \",\"])) {\n var rangeItemDescription = stringUtilities_1.StringUtilities.format(getDescriptionFormat(segments[0]), getSingleItemDescription(segments[0]));\n rangeItemDescription = rangeItemDescription.replace(\", \", \"\");\n description += stringUtilities_1.StringUtilities.format(this.i18n.commaStartingX0(), rangeItemDescription);\n }\n }\n else if (expression.indexOf(\",\") > -1) {\n var segments = expression.split(\",\");\n var descriptionContent = \"\";\n for (var i = 0; i < segments.length; i++) {\n if (i > 0 && segments.length > 2) {\n descriptionContent += \",\";\n if (i < segments.length - 1) {\n descriptionContent += \" \";\n }\n }\n if (i > 0 && segments.length > 1 && (i == segments.length - 1 || segments.length == 2)) {\n descriptionContent += this.i18n.spaceAnd() + \" \";\n }\n if (segments[i].indexOf(\"-\") > -1) {\n var betweenSegmentDescription = this.generateBetweenSegmentDescription(segments[i], function (s) {\n return _this.i18n.commaX0ThroughX1();\n }, getSingleItemDescription);\n betweenSegmentDescription = betweenSegmentDescription.replace(\", \", \"\");\n descriptionContent += betweenSegmentDescription;\n }\n else {\n descriptionContent += getSingleItemDescription(segments[i]);\n }\n }\n description = stringUtilities_1.StringUtilities.format(getDescriptionFormat(expression), descriptionContent);\n }\n else if (expression.indexOf(\"-\") > -1) {\n description = this.generateBetweenSegmentDescription(expression, getBetweenDescriptionFormat, getSingleItemDescription);\n }\n return description;\n };\n ExpressionDescriptor.prototype.generateBetweenSegmentDescription = function (betweenExpression, getBetweenDescriptionFormat, getSingleItemDescription) {\n var description = \"\";\n var betweenSegments = betweenExpression.split(\"-\");\n var betweenSegment1Description = getSingleItemDescription(betweenSegments[0]);\n var betweenSegment2Description = getSingleItemDescription(betweenSegments[1]);\n betweenSegment2Description = betweenSegment2Description.replace(\":00\", \":59\");\n var betweenDescriptionFormat = getBetweenDescriptionFormat(betweenExpression);\n description += stringUtilities_1.StringUtilities.format(betweenDescriptionFormat, betweenSegment1Description, betweenSegment2Description);\n return description;\n };\n ExpressionDescriptor.prototype.formatTime = function (hourExpression, minuteExpression, secondExpression) {\n var hour = parseInt(hourExpression);\n var period = \"\";\n var setPeriodBeforeTime = false;\n if (!this.options.use24HourTimeFormat) {\n setPeriodBeforeTime = this.i18n.setPeriodBeforeTime && this.i18n.setPeriodBeforeTime();\n period = setPeriodBeforeTime ? this.getPeriod(hour) + \" \" : \" \" + this.getPeriod(hour);\n if (hour > 12) {\n hour -= 12;\n }\n if (hour === 0) {\n hour = 12;\n }\n }\n var minute = minuteExpression;\n var second = \"\";\n if (secondExpression) {\n second = \":\" + (\"00\" + secondExpression).substring(secondExpression.length);\n }\n return \"\" + (setPeriodBeforeTime ? period : \"\") + (\"00\" + hour.toString()).substring(hour.toString().length) + \":\" + (\"00\" + minute.toString()).substring(minute.toString().length) + second + (!setPeriodBeforeTime ? period : \"\");\n };\n ExpressionDescriptor.prototype.transformVerbosity = function (description, useVerboseFormat) {\n if (!useVerboseFormat) {\n description = description.replace(new RegExp(\", \" + this.i18n.everyMinute(), \"g\"), \"\");\n description = description.replace(new RegExp(\", \" + this.i18n.everyHour(), \"g\"), \"\");\n description = description.replace(new RegExp(this.i18n.commaEveryDay(), \"g\"), \"\");\n description = description.replace(/\\, ?$/, \"\");\n }\n return description;\n };\n ExpressionDescriptor.prototype.getPeriod = function (hour) {\n return hour >= 12 ? this.i18n.pm && this.i18n.pm() || \"PM\" : this.i18n.am && this.i18n.am() || \"AM\";\n };\n ExpressionDescriptor.locales = {};\n return ExpressionDescriptor;\n}());\nexports.ExpressionDescriptor = ExpressionDescriptor;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StringUtilities = (function () {\n function StringUtilities() {\n }\n StringUtilities.format = function (template) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n return template.replace(/%s/g, function () {\n return values.shift();\n });\n };\n StringUtilities.containsAny = function (text, searchStrings) {\n return searchStrings.some(function (c) {\n return text.indexOf(c) > -1;\n });\n };\n return StringUtilities;\n}());\nexports.StringUtilities = StringUtilities;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CronParser = (function () {\n function CronParser(expression, dayOfWeekStartIndexZero) {\n if (dayOfWeekStartIndexZero === void 0) { dayOfWeekStartIndexZero = true; }\n this.expression = expression;\n this.dayOfWeekStartIndexZero = dayOfWeekStartIndexZero;\n }\n CronParser.prototype.parse = function () {\n var parsed = this.extractParts(this.expression);\n this.normalize(parsed);\n this.validate(parsed);\n return parsed;\n };\n CronParser.prototype.extractParts = function (expression) {\n if (!this.expression) {\n throw new Error(\"Expression is empty\");\n }\n var parsed = expression.trim().split(/[ ]+/);\n if (parsed.length < 5) {\n throw new Error(\"Expression has only \" + parsed.length + \" part\" + (parsed.length == 1 ? \"\" : \"s\") + \". At least 5 parts are required.\");\n }\n else if (parsed.length == 5) {\n parsed.unshift(\"\");\n parsed.push(\"\");\n }\n else if (parsed.length == 6) {\n if (/\\d{4}$/.test(parsed[5])) {\n parsed.unshift(\"\");\n }\n else {\n parsed.push(\"\");\n }\n }\n else if (parsed.length > 7) {\n throw new Error(\"Expression has \" + parsed.length + \" parts; too many!\");\n }\n return parsed;\n };\n CronParser.prototype.normalize = function (expressionParts) {\n var _this = this;\n expressionParts[3] = expressionParts[3].replace(\"?\", \"*\");\n expressionParts[5] = expressionParts[5].replace(\"?\", \"*\");\n expressionParts[2] = expressionParts[2].replace(\"?\", \"*\");\n if (expressionParts[0].indexOf(\"0/\") == 0) {\n expressionParts[0] = expressionParts[0].replace(\"0/\", \"*/\");\n }\n if (expressionParts[1].indexOf(\"0/\") == 0) {\n expressionParts[1] = expressionParts[1].replace(\"0/\", \"*/\");\n }\n if (expressionParts[2].indexOf(\"0/\") == 0) {\n expressionParts[2] = expressionParts[2].replace(\"0/\", \"*/\");\n }\n if (expressionParts[3].indexOf(\"1/\") == 0) {\n expressionParts[3] = expressionParts[3].replace(\"1/\", \"*/\");\n }\n if (expressionParts[4].indexOf(\"1/\") == 0) {\n expressionParts[4] = expressionParts[4].replace(\"1/\", \"*/\");\n }\n if (expressionParts[5].indexOf(\"1/\") == 0) {\n expressionParts[5] = expressionParts[5].replace(\"1/\", \"*/\");\n }\n if (expressionParts[6].indexOf(\"1/\") == 0) {\n expressionParts[6] = expressionParts[6].replace(\"1/\", \"*/\");\n }\n expressionParts[5] = expressionParts[5].replace(/(^\\d)|([^#/\\s]\\d)/g, function (t) {\n var dowDigits = t.replace(/\\D/, \"\");\n var dowDigitsAdjusted = dowDigits;\n if (_this.dayOfWeekStartIndexZero) {\n if (dowDigits == \"7\") {\n dowDigitsAdjusted = \"0\";\n }\n }\n else {\n dowDigitsAdjusted = (parseInt(dowDigits) - 1).toString();\n }\n return t.replace(dowDigits, dowDigitsAdjusted);\n });\n if (expressionParts[5] == \"L\") {\n expressionParts[5] = \"6\";\n }\n if (expressionParts[3] == \"?\") {\n expressionParts[3] = \"*\";\n }\n if (expressionParts[3].indexOf(\"W\") > -1 &&\n (expressionParts[3].indexOf(\",\") > -1 || expressionParts[3].indexOf(\"-\") > -1)) {\n throw new Error(\"The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.\");\n }\n var days = {\n SUN: 0,\n MON: 1,\n TUE: 2,\n WED: 3,\n THU: 4,\n FRI: 5,\n SAT: 6\n };\n for (var day in days) {\n expressionParts[5] = expressionParts[5].replace(new RegExp(day, \"gi\"), days[day].toString());\n }\n var months = {\n JAN: 1,\n FEB: 2,\n MAR: 3,\n APR: 4,\n MAY: 5,\n JUN: 6,\n JUL: 7,\n AUG: 8,\n SEP: 9,\n OCT: 10,\n NOV: 11,\n DEC: 12\n };\n for (var month in months) {\n expressionParts[4] = expressionParts[4].replace(new RegExp(month, \"gi\"), months[month].toString());\n }\n if (expressionParts[0] == \"0\") {\n expressionParts[0] = \"\";\n }\n if (!/\\*|\\-|\\,|\\//.test(expressionParts[2]) &&\n (/\\*|\\//.test(expressionParts[1]) || /\\*|\\//.test(expressionParts[0]))) {\n expressionParts[2] += \"-\" + expressionParts[2];\n }\n for (var i = 0; i < expressionParts.length; i++) {\n if (expressionParts[i] == \"*/1\") {\n expressionParts[i] = \"*\";\n }\n if (expressionParts[i].indexOf(\"/\") > -1 && !/^\\*|\\-|\\,/.test(expressionParts[i])) {\n var stepRangeThrough = null;\n switch (i) {\n case 4:\n stepRangeThrough = \"12\";\n break;\n case 5:\n stepRangeThrough = \"6\";\n break;\n case 6:\n stepRangeThrough = \"9999\";\n break;\n default:\n stepRangeThrough = null;\n break;\n }\n if (stepRangeThrough != null) {\n var parts = expressionParts[i].split(\"/\");\n expressionParts[i] = parts[0] + \"-\" + stepRangeThrough + \"/\" + parts[1];\n }\n }\n }\n };\n CronParser.prototype.validate = function (parsed) {\n this.assertNoInvalidCharacters(\"DOW\", parsed[5]);\n this.assertNoInvalidCharacters(\"DOM\", parsed[3]);\n };\n CronParser.prototype.assertNoInvalidCharacters = function (partDescription, expression) {\n var invalidChars = expression.match(/[A-KM-VX-Z]+/gi);\n if (invalidChars && invalidChars.length) {\n throw new Error(partDescription + \" part contains invalid values: '\" + invalidChars.toString() + \"'\");\n }\n };\n return CronParser;\n}());\nexports.CronParser = CronParser;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar en = (function () {\n function en() {\n }\n en.prototype.atX0SecondsPastTheMinuteGt20 = function () {\n return null;\n };\n en.prototype.atX0MinutesPastTheHourGt20 = function () {\n return null;\n };\n en.prototype.commaMonthX0ThroughMonthX1 = function () {\n return null;\n };\n en.prototype.commaYearX0ThroughYearX1 = function () {\n return null;\n };\n en.prototype.use24HourTimeFormatByDefault = function () {\n return false;\n };\n en.prototype.anErrorOccuredWhenGeneratingTheExpressionD = function () {\n return \"An error occured when generating the expression description. Check the cron expression syntax.\";\n };\n en.prototype.everyMinute = function () {\n return \"every minute\";\n };\n en.prototype.everyHour = function () {\n return \"every hour\";\n };\n en.prototype.atSpace = function () {\n return \"At \";\n };\n en.prototype.everyMinuteBetweenX0AndX1 = function () {\n return \"Every minute between %s and %s\";\n };\n en.prototype.at = function () {\n return \"At\";\n };\n en.prototype.spaceAnd = function () {\n return \" and\";\n };\n en.prototype.everySecond = function () {\n return \"every second\";\n };\n en.prototype.everyX0Seconds = function () {\n return \"every %s seconds\";\n };\n en.prototype.secondsX0ThroughX1PastTheMinute = function () {\n return \"seconds %s through %s past the minute\";\n };\n en.prototype.atX0SecondsPastTheMinute = function () {\n return \"at %s seconds past the minute\";\n };\n en.prototype.everyX0Minutes = function () {\n return \"every %s minutes\";\n };\n en.prototype.minutesX0ThroughX1PastTheHour = function () {\n return \"minutes %s through %s past the hour\";\n };\n en.prototype.atX0MinutesPastTheHour = function () {\n return \"at %s minutes past the hour\";\n };\n en.prototype.everyX0Hours = function () {\n return \"every %s hours\";\n };\n en.prototype.betweenX0AndX1 = function () {\n return \"between %s and %s\";\n };\n en.prototype.atX0 = function () {\n return \"at %s\";\n };\n en.prototype.commaEveryDay = function () {\n return \", every day\";\n };\n en.prototype.commaEveryX0DaysOfTheWeek = function () {\n return \", every %s days of the week\";\n };\n en.prototype.commaX0ThroughX1 = function () {\n return \", %s through %s\";\n };\n en.prototype.first = function () {\n return \"first\";\n };\n en.prototype.second = function () {\n return \"second\";\n };\n en.prototype.third = function () {\n return \"third\";\n };\n en.prototype.fourth = function () {\n return \"fourth\";\n };\n en.prototype.fifth = function () {\n return \"fifth\";\n };\n en.prototype.commaOnThe = function () {\n return \", on the \";\n };\n en.prototype.spaceX0OfTheMonth = function () {\n return \" %s of the month\";\n };\n en.prototype.lastDay = function () {\n return \"the last day\";\n };\n en.prototype.commaOnTheLastX0OfTheMonth = function () {\n return \", on the last %s of the month\";\n };\n en.prototype.commaOnlyOnX0 = function () {\n return \", only on %s\";\n };\n en.prototype.commaAndOnX0 = function () {\n return \", and on %s\";\n };\n en.prototype.commaEveryX0Months = function () {\n return \", every %s months\";\n };\n en.prototype.commaOnlyInX0 = function () {\n return \", only in %s\";\n };\n en.prototype.commaOnTheLastDayOfTheMonth = function () {\n return \", on the last day of the month\";\n };\n en.prototype.commaOnTheLastWeekdayOfTheMonth = function () {\n return \", on the last weekday of the month\";\n };\n en.prototype.commaDaysBeforeTheLastDayOfTheMonth = function () {\n return \", %s days before the last day of the month\";\n };\n en.prototype.firstWeekday = function () {\n return \"first weekday\";\n };\n en.prototype.weekdayNearestDayX0 = function () {\n return \"weekday nearest day %s\";\n };\n en.prototype.commaOnTheX0OfTheMonth = function () {\n return \", on the %s of the month\";\n };\n en.prototype.commaEveryX0Days = function () {\n return \", every %s days\";\n };\n en.prototype.commaBetweenDayX0AndX1OfTheMonth = function () {\n return \", between day %s and %s of the month\";\n };\n en.prototype.commaOnDayX0OfTheMonth = function () {\n return \", on day %s of the month\";\n };\n en.prototype.commaEveryHour = function () {\n return \", every hour\";\n };\n en.prototype.commaEveryX0Years = function () {\n return \", every %s years\";\n };\n en.prototype.commaStartingX0 = function () {\n return \", starting %s\";\n };\n en.prototype.daysOfTheWeek = function () {\n return [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n };\n en.prototype.monthsOfTheYear = function () {\n return [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ];\n };\n return en;\n}());\nexports.en = en;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar expressionDescriptor_ts_1 = __webpack_require__(0);\nvar enLocaleLoader_1 = __webpack_require__(5);\nexpressionDescriptor_ts_1.ExpressionDescriptor.initialize(new enLocaleLoader_1.enLocaleLoader());\nexports.default = expressionDescriptor_ts_1.ExpressionDescriptor;\nvar toString = expressionDescriptor_ts_1.ExpressionDescriptor.toString;\nexports.toString = toString;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar en_1 = __webpack_require__(3);\nvar enLocaleLoader = (function () {\n function enLocaleLoader() {\n }\n enLocaleLoader.prototype.load = function (availableLocales) {\n availableLocales[\"en\"] = new en_1.en();\n };\n return enLocaleLoader;\n}());\nexports.enLocaleLoader = enLocaleLoader;\n\n\n/***/ })\n/******/ ]);\n});","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Authority.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Authority.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Authority.vue?vue&type=template&id=6f180288&scoped=true&\"\nimport script from \"./Authority.vue?vue&type=script&lang=js&\"\nexport * from \"./Authority.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Authority.vue?vue&type=style&index=0&id=6f180288&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f180288\",\n null\n \n)\n\nexport default component.exports","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","export const NAMESPACE_FILTER_ALL_PREFIX = 'all';\nexport const NAMESPACE_FILTER_NS_PREFIX = 'ns';\nexport const NAMESPACE_FILTER_P_PREFIX = 'project';\n\nexport const NAMESPACE_FILTER_NS_FULL_PREFIX = `${ NAMESPACE_FILTER_NS_PREFIX }://`;\nexport const NAMESPACE_FILTER_P_FULL_PREFIX = `${ NAMESPACE_FILTER_P_PREFIX }://`;\n\nexport const NAMESPACE_FILTER_ALL = NAMESPACE_FILTER_ALL_PREFIX;\nexport const NAMESPACE_FILTER_ALL_SYSTEM = `${ NAMESPACE_FILTER_ALL_PREFIX }://system`;\nexport const NAMESPACE_FILTER_ALL_USER = `${ NAMESPACE_FILTER_ALL_PREFIX }://user`;\nexport const NAMESPACE_FILTER_ALL_ORPHANS = `${ NAMESPACE_FILTER_ALL_PREFIX }://orphans`;\nexport const NAMESPACE_FILTER_NAMESPACED_PREFIX = 'namespaced://';\nexport const NAMESPACE_FILTER_NAMESPACED_YES = 'namespaced://true';\nexport const NAMESPACE_FILTER_NAMESPACED_NO = 'namespaced://false';\n\nexport const NAMESPACE_FILTER_KINDS = {\n DIVIDER: 'divider',\n PROJECT: 'project',\n NAMESPACE: 'namespace',\n SPECIAL: 'special'\n};\n\nconst SEPARATOR = '__%%__';\n\nexport const createNamespaceFilterKey = (clusterId, product) => {\n if (!product?.customNamespaceFilter) {\n return clusterId;\n }\n\n return createNamespaceFilterKeyWithId(clusterId, product.name);\n};\nexport const createNamespaceFilterKeyWithId = (clusterId, productId) => {\n return `${ clusterId }${ SEPARATOR }${ productId }`;\n};\n\nexport const splitNamespaceFilterKey = (key) => {\n const [clusterId, productId] = key.split(SEPARATOR);\n\n return {\n clusterId,\n productId\n };\n};\n","import { MANAGEMENT } from '@shell/config/types';\nimport { Store } from 'vuex';\nimport { DEFAULT_PERF_SETTING, SETTING } from '@shell/config/settings';\nimport { GC_PREFERENCES } from 'utils/gc/gc-types';\n\nexport const fetchOrCreateSetting = async(store: Store, id: string, val: string, save = true): Promise => {\n let setting;\n\n try {\n setting = await store.dispatch('management/find', { type: MANAGEMENT.SETTING, id });\n } catch {\n const schema = store.getters['management/schemaFor'](MANAGEMENT.SETTING);\n const url = schema.linkFor('collection');\n\n setting = await store.dispatch('management/create', {\n type: MANAGEMENT.SETTING, metadata: { name: id }, value: val, default: val || ''\n });\n if ( save ) {\n await setting.save({ url });\n }\n }\n\n return setting;\n};\n\n/**\n * Fetch a specific setting that might not exist\n * We fetch all settings - reality is Rancher will have done this already, so there's no overhead in doing\n * this - but if we fetch a specific setting that does not exist, we will get a 404, which we don't want\n */\nexport const fetchSetting = async(store: Store, id: string): Promise => {\n const all = await store.dispatch('management/findAll', { type: MANAGEMENT.SETTING });\n const setting = (all || []).find((setting: any) => setting.id === id);\n\n return setting;\n};\n\nexport const setSetting = async(store: Store, id: string, val: string): Promise => {\n const setting = await fetchOrCreateSetting(store, id, val, false);\n\n setting.value = val;\n await setting.save();\n\n return setting;\n};\n\nexport const getPerformanceSetting = (rootGetters: Record any>): {\n inactivity: {\n enabled: boolean;\n threshold: number;\n };\n incrementalLoading: {\n enabled: boolean;\n threshold: number;\n };\n manualRefresh: {};\n disableWebsocketNotification: boolean;\n garbageCollection: GC_PREFERENCES;\n forceNsFilterV2: {};\n advancedWorker: {};\n} => {\n const perfSettingResource = rootGetters['management/byId'](MANAGEMENT.SETTING, SETTING.UI_PERFORMANCE);\n let perfSetting = {};\n\n if (perfSettingResource?.value) {\n try {\n perfSetting = JSON.parse(perfSettingResource.value);\n } catch (e) {\n console.warn('ui-performance setting contains invalid data'); // eslint-disable-line no-console\n }\n }\n\n // Start with the default and overwrite the values from the setting - ensures we have defaults for newly added options\n return Object.assign(DEFAULT_PERF_SETTING, perfSetting || {});\n};\n","import { NAMESPACE_FILTER_NS_FULL_PREFIX, NAMESPACE_FILTER_P_FULL_PREFIX } from '@shell/utils/namespace-filter';\nimport { getPerformanceSetting } from '@shell/utils/settings';\n\ntype Opt = { [key: string]: any, namespaced?: string[]}\n\nclass ProjectAndNamespaceFiltering {\n static param = 'projectsornamespaces'\n\n /**\n * Does the request `opt` definition require resources are fetched from a specific set namespaces/projects?\n */\n isApplicable(opt: Opt): boolean {\n return Array.isArray(opt.namespaced);\n }\n\n isEnabled(rootGetters: any): boolean {\n const currentProduct = rootGetters['currentProduct'];\n\n // Only enable for the cluster store at the moment. In theory this should work in management as well, as they're both 'steve' stores\n if (currentProduct?.inStore !== 'cluster') {\n return false;\n }\n\n if (currentProduct?.showWorkspaceSwitcher) {\n return false;\n }\n\n const perfConfig = getPerformanceSetting(rootGetters);\n\n if (!perfConfig.forceNsFilterV2?.enabled) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Check if `opt` requires resources from specific ns/projects, if so return the required query param (x=y)\n */\n checkAndCreateParam(opt: Opt): string {\n if (!this.isApplicable(opt)) {\n return '';\n }\n\n return this.createParam(opt.namespaced);\n }\n\n private createParam(namespaceFilter: string[] | undefined): string {\n if (!namespaceFilter || !namespaceFilter.length) {\n return '';\n }\n\n const projectsOrNamespaces = namespaceFilter\n .map((f) => f.replace(NAMESPACE_FILTER_NS_FULL_PREFIX, '')\n .replace(NAMESPACE_FILTER_P_FULL_PREFIX, ''))\n .join(',');\n\n return `${ ProjectAndNamespaceFiltering.param }=${ projectsOrNamespaces }`;\n }\n}\n\nexport default new ProjectAndNamespaceFiltering();\n","import { NAMESPACE_FILTER_NS_PREFIX, NAMESPACE_FILTER_P_PREFIX } from '@shell/utils/namespace-filter';\nimport { mapGetters } from 'vuex';\nimport { ResourceListComponentName } from '../components/ResourceList/resource-list.config';\nimport pAndNFiltering from '@shell/utils/projectAndNamespaceFiltering.utils';\n\n/**\n * Companion mixin used with `resource-fetch` for `ResourceList` to determine if the user needs to filter the list by a single namespace\n */\nexport default {\n\n data() {\n return { forceUpdateLiveAndDelayed: 0 };\n },\n\n computed: {\n ...mapGetters(['currentProduct', 'currentCluster', 'namespaceFilters']),\n\n /**\n * Does the user need to update the filter to supply a single namespace?\n */\n namespaceFilterRequired() {\n return this.__namespaceRequired && !this.__validFilter;\n },\n\n /**\n * Returns the namespace that requests should be filtered by\n */\n namespaceFilter() {\n return this.__namespaceRequired ? this.__validFilter : '';\n },\n\n /**\n * If the Project/Namespace filter from the header contains a valid ns / project filter ... return it\n */\n __validFilter() {\n const valid = this.namespaceFilters.length && this.namespaceFilters.every((f) => f.startsWith(NAMESPACE_FILTER_NS_PREFIX) || f.startsWith(NAMESPACE_FILTER_P_PREFIX));\n\n return valid ? this.namespaceFilters : null;\n },\n\n /**\n * Do we need to filter the list by a namespace? This will control whether the user is shown an error\n *\n * We shouldn't show an error on pages with resources that aren't namespaced\n */\n __namespaceRequired() {\n if (!pAndNFiltering.isEnabled(this.$store.getters)) {\n return false;\n }\n\n return this.__areResourcesNamespaced;\n },\n\n /**\n * Are all core list resources namespaced?\n */\n __areResourcesNamespaced() {\n // Only enable for the cluster store at the moment. In theory this should work in management as well, as they're both 'steve' stores\n if (this.currentProduct.inStore !== 'cluster') {\n return false;\n }\n\n return (this.loadResources || []).every((type) => {\n const schema = this.$store.getters['cluster/schemaFor'](type);\n\n return schema?.attributes?.namespaced;\n });\n },\n\n },\n\n watch: {\n async namespaceFilter(neu) {\n if (neu) {\n // When a NS filter is required and the user selects a different one, kick off a new set of API requests\n //\n // ResourceList has two modes\n // 1) ResourceList component handles API request to fetch resources\n // 2) Custom list component handles API request to fetch resources\n //\n // This covers case 2\n if (this.$options.name !== ResourceListComponentName && !!this.$fetch) {\n await this.$fetch();\n }\n // Ensure any live/delayed columns get updated\n this.forceUpdateLiveAndDelayed = new Date().getTime();\n }\n }\n }\n};\n","import { mapGetters } from 'vuex';\nimport { COUNT, MANAGEMENT } from '@shell/config/types';\nimport { SETTING, DEFAULT_PERF_SETTING } from '@shell/config/settings';\nimport ResourceFetchNamespaced from '@shell/mixins/resource-fetch-namespaced';\n\n// Number of pages to fetch when loading incrementally\nconst PAGES = 4;\n\nexport default {\n\n mixins: [ResourceFetchNamespaced],\n\n data() {\n // fetching the settings related to manual refresh from global settings\n const perfSetting = this.$store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.UI_PERFORMANCE);\n let perfConfig = {};\n\n if (perfSetting && perfSetting.value) {\n try {\n perfConfig = JSON.parse(perfSetting.value);\n } catch (e) {\n console.warn('ui-performance setting contains invalid data'); // eslint-disable-line no-console\n }\n } else {\n perfConfig = DEFAULT_PERF_SETTING;\n }\n\n return {\n perfConfig,\n init: false,\n multipleResources: [],\n loadResources: [this.resource],\n // manual refresh vars\n hasManualRefresh: false,\n watch: true,\n isTooManyItemsToAutoUpdate: false,\n force: false,\n // incremental loading vars\n incremental: false,\n fetchedResourceType: [],\n };\n },\n beforeDestroy() {\n // make sure this only runs once, for the initialized instance\n if (this.init) {\n // clear up the store to make sure we aren't storing anything that might interfere with the next rendered list view\n this.$store.dispatch('resource-fetch/clearData');\n\n this.fetchedResourceType.forEach((item) => {\n this.$store.dispatch(`${ item.currStore }/incrementLoadCounter`, item.type);\n });\n }\n },\n\n computed: {\n ...mapGetters({ refreshFlag: 'resource-fetch/refreshFlag' }),\n rows() {\n const currResource = this.fetchedResourceType.find((item) => item.type === this.resource);\n\n if (currResource) {\n return this.$store.getters[`${ currResource.currStore }/all`](this.resource);\n } else {\n return [];\n }\n },\n loading() {\n return this.rows.length ? false : this.$fetchState.pending;\n },\n },\n watch: {\n refreshFlag(neu) {\n // this is where the data assignment will trigger the update of the list view...\n if (this.init && neu) {\n this.$fetch();\n }\n }\n },\n methods: {\n // this defines all the flags needed for the mechanism\n // to work. They should be defined based on the main list view\n // resource that is to be displayed. The secondary resources\n // fetched should follow what was defined (if it is manual and/or incremental)\n $initializeFetchData(type, multipleResources = [], storeType) {\n if (!this.init) {\n const currStore = storeType || this.$store.getters['currentStore']();\n\n this.__gatherResourceFetchData(type, multipleResources, currStore);\n\n // make sure after init that, if we have a manual refresh, we always set the force = true\n if (!this.watch) {\n this.force = true;\n }\n\n if (this.isTooManyItemsToAutoUpdate) {\n this.hasManualRefresh = true;\n }\n }\n },\n // data fetching for the mechanism\n $fetchType(type, multipleResources = [], storeType) {\n const currStore = storeType || this.$store.getters['currentStore']();\n\n this.$initializeFetchData(type, multipleResources, currStore);\n\n if (!this.fetchedResourceType.find((item) => item.type === type)) {\n this.fetchedResourceType.push({\n type,\n currStore\n });\n }\n\n let incremental = 0;\n\n if (this.incremental) {\n const resourceCount = this.__getCountForResources([type], this.namespaceFilter, currStore);\n\n incremental = Math.ceil(resourceCount / PAGES);\n }\n\n const opt = {\n incremental,\n watch: this.watch,\n force: this.force,\n hasManualRefresh: this.hasManualRefresh\n };\n\n const schema = this.$store.getters[`${ currStore }/schemaFor`](type);\n\n if (schema?.attributes?.namespaced) { // Is this specific resource namespaced (could be primary or secondary resource)?\n opt.namespaced = this.namespaceFilter; // namespaceFilter will only be populated if applicable for primary resource\n }\n\n return this.$store.dispatch(`${ currStore }/findAll`, {\n type,\n opt\n });\n },\n\n __getCountForResources(resourceNames, namespace, storeType) {\n const currStore = storeType || this.$store.getters['currentStore']();\n\n return resourceNames.reduce((res, type) => res + this.__getCountForResource(type, namespace, currStore), 0);\n },\n\n __getCountForResource(resourceName, namespace, storeType) {\n const resourceCounts = this.$store.getters[`${ storeType }/all`](COUNT)[0]?.counts[`${ resourceName }`]; // NB `rancher` store behaves differently, lacks counts but has resource\n const resourceCount = namespace && resourceCounts?.namespaces ? resourceCounts?.namespaces[namespace]?.count : resourceCounts?.summary?.count;\n\n return resourceCount || 0;\n },\n\n __gatherResourceFetchData(resourceName, multipleResources, currStore) {\n // flag to prevent a first data update being triggered from the requestData watcher\n this.init = true;\n\n // manual refresh settings config\n const manualDataRefreshEnabled = this.perfConfig?.manualRefresh?.enabled;\n const manualDataRefreshThreshold = parseInt(this.perfConfig?.manualRefresh?.threshold || '0', 10);\n\n // incremental loading settings config\n const incrementalLoadingEnabled = this.perfConfig?.incrementalLoading?.enabled;\n const incrementalLoadingThreshold = parseInt(this.perfConfig?.incrementalLoading?.threshold || '0', 10);\n\n // other vars\n this.multipleResources = multipleResources;\n let resourceCount = 0;\n\n // manual refresh vars\n let watch = true;\n let isTooManyItemsToAutoUpdate = false;\n\n // incremental loading vars\n let incremental = false;\n\n // get resource counts\n const resourcesForCount = this.multipleResources.length ? this.multipleResources : [resourceName];\n\n resourceCount = this.__getCountForResources(resourcesForCount, this.namespaceFilter, currStore);\n\n // manual refresh check\n if (manualDataRefreshEnabled && resourceCount >= manualDataRefreshThreshold) {\n watch = false;\n isTooManyItemsToAutoUpdate = true;\n }\n\n // incremental loading check\n incremental = incrementalLoadingEnabled && incrementalLoadingThreshold > 0 && resourceCount >= incrementalLoadingThreshold;\n\n // pass on the flag that controls the appearance of the manual refresh button on the sortable table\n this.$store.dispatch('resource-fetch/updateIsTooManyItems', isTooManyItemsToAutoUpdate);\n\n // set vars on mixin to be used on $fetchType\n this.watch = watch;\n this.isTooManyItemsToAutoUpdate = isTooManyItemsToAutoUpdate;\n this.incremental = incremental;\n },\n },\n};\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/*\n * Jexl\n * Copyright 2019 Tom Shawver\n */\n\nconst handlers = require('./handlers')\nconst states = require('./states').states\n\n/**\n * The Parser is a state machine that converts tokens from the {@link Lexer}\n * into an Abstract Syntax Tree (AST), capable of being evaluated in any\n * context by the {@link Evaluator}. The Parser expects that all tokens\n * provided to it are legal and typed properly according to the grammar, but\n * accepts that the tokens may still be in an invalid order or in some other\n * unparsable configuration that requires it to throw an Error.\n * @param {{}} grammar The grammar map to use to parse Jexl strings\n * @param {string} [prefix] A string prefix to prepend to the expression string\n * for error messaging purposes. This is useful for when a new Parser is\n * instantiated to parse an subexpression, as the parent Parser's\n * expression string thus far can be passed for a more user-friendly\n * error message.\n * @param {{}} [stopMap] A mapping of token types to any truthy value. When the\n * token type is encountered, the parser will return the mapped value\n * instead of boolean false.\n */\nclass Parser {\n constructor(grammar, prefix, stopMap) {\n this._grammar = grammar\n this._state = 'expectOperand'\n this._tree = null\n this._exprStr = prefix || ''\n this._relative = false\n this._stopMap = stopMap || {}\n }\n\n /**\n * Processes a new token into the AST and manages the transitions of the state\n * machine.\n * @param {{type: }} token A token object, as provided by the\n * {@link Lexer#tokenize} function.\n * @throws {Error} if a token is added when the Parser has been marked as\n * complete by {@link #complete}, or if an unexpected token type is added.\n * @returns {boolean|*} the stopState value if this parser encountered a token\n * in the stopState mapb false if tokens can continue.\n */\n addToken(token) {\n if (this._state === 'complete') {\n throw new Error('Cannot add a new token to a completed Parser')\n }\n const state = states[this._state]\n const startExpr = this._exprStr\n this._exprStr += token.raw\n if (state.subHandler) {\n if (!this._subParser) {\n this._startSubExpression(startExpr)\n }\n const stopState = this._subParser.addToken(token)\n if (stopState) {\n this._endSubExpression()\n if (this._parentStop) return stopState\n this._state = stopState\n }\n } else if (state.tokenTypes[token.type]) {\n const typeOpts = state.tokenTypes[token.type]\n let handleFunc = handlers[token.type]\n if (typeOpts.handler) {\n handleFunc = typeOpts.handler\n }\n if (handleFunc) {\n handleFunc.call(this, token)\n }\n if (typeOpts.toState) {\n this._state = typeOpts.toState\n }\n } else if (this._stopMap[token.type]) {\n return this._stopMap[token.type]\n } else {\n throw new Error(\n `Token ${token.raw} (${token.type}) unexpected in expression: ${this._exprStr}`\n )\n }\n return false\n }\n\n /**\n * Processes an array of tokens iteratively through the {@link #addToken}\n * function.\n * @param {Array<{type: }>} tokens An array of tokens, as provided by\n * the {@link Lexer#tokenize} function.\n */\n addTokens(tokens) {\n tokens.forEach(this.addToken, this)\n }\n\n /**\n * Marks this Parser instance as completed and retrieves the full AST.\n * @returns {{}|null} a full expression tree, ready for evaluation by the\n * {@link Evaluator#eval} function, or null if no tokens were passed to\n * the parser before complete was called\n * @throws {Error} if the parser is not in a state where it's legal to end\n * the expression, indicating that the expression is incomplete\n */\n complete() {\n if (this._cursor && !states[this._state].completable) {\n throw new Error(`Unexpected end of expression: ${this._exprStr}`)\n }\n if (this._subParser) {\n this._endSubExpression()\n }\n this._state = 'complete'\n return this._cursor ? this._tree : null\n }\n\n /**\n * Indicates whether the expression tree contains a relative path identifier.\n * @returns {boolean} true if a relative identifier exists false otherwise.\n */\n isRelative() {\n return this._relative\n }\n\n /**\n * Ends a subexpression by completing the subParser and passing its result\n * to the subHandler configured in the current state.\n * @private\n */\n _endSubExpression() {\n states[this._state].subHandler.call(this, this._subParser.complete())\n this._subParser = null\n }\n\n /**\n * Places a new tree node at the current position of the cursor (to the 'right'\n * property) and then advances the cursor to the new node. This function also\n * handles setting the parent of the new node.\n * @param {{type: }} node A node to be added to the AST\n * @private\n */\n _placeAtCursor(node) {\n if (!this._cursor) {\n this._tree = node\n } else {\n this._cursor.right = node\n this._setParent(node, this._cursor)\n }\n this._cursor = node\n }\n\n /**\n * Places a tree node before the current position of the cursor, replacing\n * the node that the cursor currently points to. This should only be called in\n * cases where the cursor is known to exist, and the provided node already\n * contains a pointer to what's at the cursor currently.\n * @param {{type: }} node A node to be added to the AST\n * @private\n */\n _placeBeforeCursor(node) {\n this._cursor = this._cursor._parent\n this._placeAtCursor(node)\n }\n\n /**\n * Sets the parent of a node by creating a non-enumerable _parent property\n * that points to the supplied parent argument.\n * @param {{type: }} node A node of the AST on which to set a new\n * parent\n * @param {{type: }} parent An existing node of the AST to serve as the\n * parent of the new node\n * @private\n */\n _setParent(node, parent) {\n Object.defineProperty(node, '_parent', {\n value: parent,\n writable: true\n })\n }\n\n /**\n * Prepares the Parser to accept a subexpression by (re)instantiating the\n * subParser.\n * @param {string} [exprStr] The expression string to prefix to the new Parser\n * @private\n */\n _startSubExpression(exprStr) {\n let endStates = states[this._state].endStates\n if (!endStates) {\n this._parentStop = true\n endStates = this._stopMap\n }\n this._subParser = new Parser(this._grammar, exprStr, endStates)\n }\n}\n\nmodule.exports = Parser\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","// 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, \".checkbox-outer-container{display:inline-flex;flex-direction:column}.checkbox-outer-container-description{color:var(--input-label);font-size:14px;margin-left:19px;margin-top:5px;opacity:.8}.checkbox-container{position:relative;display:inline-flex;align-items:center;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:var(--border-radius)}.checkbox-container .checkbox-label{color:var(--input-label);display:inline-flex;margin:0 10px 0 5px}.checkbox-container .checkbox-label.checkbox-primary{color:inherit;font-weight:600}.checkbox-container .checkbox-info{line-height:normal;margin-left:2px}.checkbox-container .checkbox-custom{height:14px;width:14px;background-color:var(--body-bg);border-radius:var(--border-radius);transition:all .3s ease-out;border:1px solid var(--border)}.checkbox-container input{opacity:0;position:absolute;z-index:-1}.checkbox-container input:checked~.checkbox-custom{background-color:var(--primary);transform:rotate(0deg) scale(1);opacity:1;border:1px solid var(--primary)}.checkbox-container .checkbox-custom:after{position:absolute;content:\\\"\\\";left:0;top:0;height:0;width:0;border-radius:var(--border-radius);border:solid;border-color:var(--input-text);border-width:0 3px 3px 0;transform:rotate(0deg) scale(0);opacity:1}.checkbox-container input:checked~.checkbox-custom:after{transform:rotate(45deg) scale(1);opacity:1;left:4px;width:4px;height:10px;border:solid;border-color:var(--checkbox-tick);border-width:0 2px 2px 0;background-color:transparent}.checkbox-container input:checked~.checkbox-custom.indeterminate:after{transform:scale(1);opacity:1;left:3px;top:2px;width:6px;height:5px;border:solid;border-color:var(--checkbox-tick);border-width:0 0 2px 0;background-color:transparent}.checkbox-container.disabled .checkbox-custom,.checkbox-container.disabled input:checked~.checkbox-custom{background-color:var(--checkbox-disabled-bg);border-color:var(--checkbox-disabled-bg)}.checkbox-container.disabled input:checked~.checkbox-custom:after{border-color:var(--checkbox-tick-disabled)}.checkbox-container.disabled{cursor:not-allowed}.checkbox-container .checkbox-view{display:flex;flex-direction:column}.checkbox-container .checkbox-view LABEL{color:var(--input-label)}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/*\n *\n * HtmlPrinter (html-printer.js)\n * Author: rtfpessoa\n *\n */\n\n(function() {\n var diffParser = require('./diff-parser.js').DiffParser;\n var printerUtils = require('./printer-utils.js').PrinterUtils;\n var utils = require('./utils.js').Utils;\n var Rematch = require('./rematch.js').Rematch;\n\n var hoganUtils;\n\n var genericTemplatesPath = 'generic';\n var baseTemplatesPath = 'side-by-side';\n var iconsBaseTemplatesPath = 'icon';\n var tagsBaseTemplatesPath = 'tag';\n\n var matcher = Rematch.rematch(function(a, b) {\n var amod = a.content.substr(1);\n var bmod = b.content.substr(1);\n\n return Rematch.distance(amod, bmod);\n });\n\n function SideBySidePrinter(config) {\n this.config = config;\n\n var HoganJsUtils = require('./hoganjs-utils.js').HoganJsUtils;\n hoganUtils = new HoganJsUtils(config);\n }\n\n SideBySidePrinter.prototype.makeDiffHtml = function(file, diffs) {\n var fileDiffTemplate = hoganUtils.template(baseTemplatesPath, 'file-diff');\n var filePathTemplate = hoganUtils.template(genericTemplatesPath, 'file-path');\n var fileIconTemplate = hoganUtils.template(iconsBaseTemplatesPath, 'file');\n var fileTagTemplate = hoganUtils.template(tagsBaseTemplatesPath, printerUtils.getFileTypeIcon(file));\n\n return fileDiffTemplate.render({\n file: file,\n fileHtmlId: printerUtils.getHtmlId(file),\n diffs: diffs,\n filePath: filePathTemplate.render({\n fileDiffName: printerUtils.getDiffName(file)\n }, {\n fileIcon: fileIconTemplate,\n fileTag: fileTagTemplate\n })\n });\n };\n\n SideBySidePrinter.prototype.generateSideBySideJsonHtml = function(diffFiles) {\n var that = this;\n\n var content = diffFiles.map(function(file) {\n var diffs;\n if (file.blocks.length) {\n diffs = that.generateSideBySideFileHtml(file);\n } else {\n diffs = that.generateEmptyDiff();\n }\n\n return that.makeDiffHtml(file, diffs);\n }).join('\\n');\n\n return hoganUtils.render(genericTemplatesPath, 'wrapper', {'content': content});\n };\n\n SideBySidePrinter.prototype.makeSideHtml = function(blockHeader) {\n return hoganUtils.render(genericTemplatesPath, 'column-line-number', {\n diffParser: diffParser,\n blockHeader: utils.escape(blockHeader),\n lineClass: 'd2h-code-side-linenumber',\n contentClass: 'd2h-code-side-line'\n });\n };\n\n SideBySidePrinter.prototype.generateSideBySideFileHtml = function(file) {\n var that = this;\n var fileHtml = {};\n fileHtml.left = '';\n fileHtml.right = '';\n\n file.blocks.forEach(function(block) {\n fileHtml.left += that.makeSideHtml(block.header);\n fileHtml.right += that.makeSideHtml('');\n\n var oldLines = [];\n var newLines = [];\n\n function processChangeBlock() {\n var matches;\n var insertType;\n var deleteType;\n\n var comparisons = oldLines.length * newLines.length;\n\n var maxLineSizeInBlock = Math.max.apply(null, (oldLines.concat(newLines)).map(function(elem) {\n return elem.length;\n }));\n\n var doMatching = comparisons < that.config.matchingMaxComparisons &&\n maxLineSizeInBlock < that.config.maxLineSizeInBlockForComparison &&\n (that.config.matching === 'lines' || that.config.matching === 'words');\n\n if (doMatching) {\n matches = matcher(oldLines, newLines);\n insertType = diffParser.LINE_TYPE.INSERT_CHANGES;\n deleteType = diffParser.LINE_TYPE.DELETE_CHANGES;\n } else {\n matches = [[oldLines, newLines]];\n insertType = diffParser.LINE_TYPE.INSERTS;\n deleteType = diffParser.LINE_TYPE.DELETES;\n }\n\n matches.forEach(function(match) {\n oldLines = match[0];\n newLines = match[1];\n\n var common = Math.min(oldLines.length, newLines.length);\n var max = Math.max(oldLines.length, newLines.length);\n\n for (var j = 0; j < common; j++) {\n var oldLine = oldLines[j];\n var newLine = newLines[j];\n\n that.config.isCombined = file.isCombined;\n\n var diff = printerUtils.diffHighlight(oldLine.content, newLine.content, that.config);\n\n fileHtml.left +=\n that.generateSingleLineHtml(file.isCombined, deleteType, oldLine.oldNumber,\n diff.first.line, diff.first.prefix);\n fileHtml.right +=\n that.generateSingleLineHtml(file.isCombined, insertType, newLine.newNumber,\n diff.second.line, diff.second.prefix);\n }\n\n if (max > common) {\n var oldSlice = oldLines.slice(common);\n var newSlice = newLines.slice(common);\n\n var tmpHtml = that.processLines(file.isCombined, oldSlice, newSlice);\n fileHtml.left += tmpHtml.left;\n fileHtml.right += tmpHtml.right;\n }\n });\n\n oldLines = [];\n newLines = [];\n }\n\n for (var i = 0; i < block.lines.length; i++) {\n var line = block.lines[i];\n var prefix = line.content[0];\n var escapedLine = utils.escape(line.content.substr(1));\n\n if (line.type !== diffParser.LINE_TYPE.INSERTS &&\n (newLines.length > 0 || (line.type !== diffParser.LINE_TYPE.DELETES && oldLines.length > 0))) {\n processChangeBlock();\n }\n\n if (line.type === diffParser.LINE_TYPE.CONTEXT) {\n fileHtml.left += that.generateSingleLineHtml(file.isCombined, line.type, line.oldNumber, escapedLine, prefix);\n fileHtml.right += that.generateSingleLineHtml(file.isCombined, line.type, line.newNumber, escapedLine, prefix);\n } else if (line.type === diffParser.LINE_TYPE.INSERTS && !oldLines.length) {\n fileHtml.left += that.generateSingleLineHtml(file.isCombined, diffParser.LINE_TYPE.CONTEXT, '', '', '');\n fileHtml.right += that.generateSingleLineHtml(file.isCombined, line.type, line.newNumber, escapedLine, prefix);\n } else if (line.type === diffParser.LINE_TYPE.DELETES) {\n oldLines.push(line);\n } else if (line.type === diffParser.LINE_TYPE.INSERTS && Boolean(oldLines.length)) {\n newLines.push(line);\n } else {\n console.error('unknown state in html side-by-side generator');\n processChangeBlock();\n }\n }\n\n processChangeBlock();\n });\n\n return fileHtml;\n };\n\n SideBySidePrinter.prototype.processLines = function(isCombined, oldLines, newLines) {\n var that = this;\n var fileHtml = {};\n fileHtml.left = '';\n fileHtml.right = '';\n\n var maxLinesNumber = Math.max(oldLines.length, newLines.length);\n for (var i = 0; i < maxLinesNumber; i++) {\n var oldLine = oldLines[i];\n var newLine = newLines[i];\n var oldContent;\n var newContent;\n var oldPrefix;\n var newPrefix;\n\n if (oldLine) {\n oldContent = utils.escape(oldLine.content.substr(1));\n oldPrefix = oldLine.content[0];\n }\n\n if (newLine) {\n newContent = utils.escape(newLine.content.substr(1));\n newPrefix = newLine.content[0];\n }\n\n if (oldLine && newLine) {\n fileHtml.left += that.generateSingleLineHtml(isCombined, oldLine.type, oldLine.oldNumber, oldContent, oldPrefix);\n fileHtml.right += that.generateSingleLineHtml(isCombined, newLine.type, newLine.newNumber, newContent, newPrefix);\n } else if (oldLine) {\n fileHtml.left += that.generateSingleLineHtml(isCombined, oldLine.type, oldLine.oldNumber, oldContent, oldPrefix);\n fileHtml.right += that.generateSingleLineHtml(isCombined, diffParser.LINE_TYPE.CONTEXT, '', '', '');\n } else if (newLine) {\n fileHtml.left += that.generateSingleLineHtml(isCombined, diffParser.LINE_TYPE.CONTEXT, '', '', '');\n fileHtml.right += that.generateSingleLineHtml(isCombined, newLine.type, newLine.newNumber, newContent, newPrefix);\n } else {\n console.error('How did it get here?');\n }\n }\n\n return fileHtml;\n };\n\n SideBySidePrinter.prototype.generateSingleLineHtml = function(isCombined, type, number, content, possiblePrefix) {\n var lineWithoutPrefix = content;\n var prefix = possiblePrefix;\n var lineClass = 'd2h-code-side-linenumber';\n var contentClass = 'd2h-code-side-line';\n\n if (!number && !content) {\n lineClass += ' d2h-code-side-emptyplaceholder';\n contentClass += ' d2h-code-side-emptyplaceholder';\n type += ' d2h-emptyplaceholder';\n }\n\n if (!prefix) {\n var lineWithPrefix = printerUtils.separatePrefix(isCombined, content);\n prefix = lineWithPrefix.prefix;\n lineWithoutPrefix = lineWithPrefix.line;\n }\n\n if (prefix === ' ') {\n prefix = ' ';\n }\n\n return hoganUtils.render(genericTemplatesPath, 'line',\n {\n type: type,\n lineClass: lineClass,\n contentClass: contentClass,\n prefix: prefix,\n content: lineWithoutPrefix,\n lineNumber: number\n });\n };\n\n SideBySidePrinter.prototype.generateEmptyDiff = function() {\n var fileHtml = {};\n fileHtml.right = '';\n\n fileHtml.left = hoganUtils.render(genericTemplatesPath, 'empty-diff', {\n contentClass: 'd2h-code-side-line',\n diffParser: diffParser\n });\n\n return fileHtml;\n };\n\n module.exports.SideBySidePrinter = SideBySidePrinter;\n})();\n","import { SETTING } from '@shell/config/settings';\nimport { MANAGEMENT } from '@shell/config/types';\n\nlet favIconSet = false;\n\nexport function haveSetFavIcon() {\n return favIconSet;\n}\n\nexport function setFavIcon(store) {\n const res = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.FAVICON);\n const brandSetting = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.BRAND);\n const link = findIconLink(document.head.getElementsByTagName('link'));\n\n if (link) {\n let brandImage;\n\n if (brandSetting?.value === 'suse') {\n brandImage = require('~shell/assets/brand/suse/favicon.png');\n } else if (brandSetting?.value === 'csp') {\n brandImage = require('~shell/assets/brand/csp/favicon.png');\n }\n\n link.href = res?.value || brandImage || defaultFavIcon;\n favIconSet = true;\n }\n}\n\nfunction getCurrentFavIcon() {\n const link = findIconLink(document.head.getElementsByTagName('link'));\n\n return link ? link.href : '';\n}\n\nfunction findIconLink(links) {\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n\n if (link.rel?.includes('icon')) {\n return link;\n }\n }\n\n return undefined;\n}\n\nconst defaultFavIcon = getCurrentFavIcon();\n","export * from \"-!../../../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./LabeledInput.vue?vue&type=style&index=0&id=71a5c8d4&prod&scoped=true&lang=scss&\"","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".header[data-v-42527a3a]{display:flex}.header .title[data-v-42527a3a]{display:flex;flex-basis:40%;align-items:center}.header .title .product-image[data-v-42527a3a]{min-width:50px;height:50px;margin:10px 10px 10px 0;overflow:hidden}.header .title .product-image .logo[data-v-42527a3a]{min-width:50px;height:50px}.step-sequence[data-v-42527a3a]{flex:1;min-height:60px;display:flex;width:100%}.step-sequence .steps[data-v-42527a3a]{flex:1;margin:0 30px;display:flex;justify-content:space-between;list-style-type:none;padding:0}.step-sequence .steps[data-v-42527a3a]:focus{outline:none;box-shadow:none}.step-sequence .steps li.step[data-v-42527a3a]{display:flex;flex-direction:row;flex-grow:1;align-items:center}.step-sequence .steps li.step>span>span[data-v-42527a3a]:last-of-type{padding-bottom:0}.step-sequence .steps li.step[data-v-42527a3a]:last-of-type{flex-grow:0}.step-sequence .steps li.step .controls[data-v-42527a3a]{display:flex;flex-direction:column;align-items:center;width:40px;overflow:visible;padding-top:15px}.step-sequence .steps li.step .controls>span[data-v-42527a3a]{padding-bottom:5px;margin-bottom:5px;white-space:nowrap}.step-sequence .steps li.step.active .controls[data-v-42527a3a]{color:var(--primary)}.step-sequence .steps li.step:not(.disabled) .controls:hover>*[data-v-42527a3a]{color:var(--primary)!important;cursor:pointer}.step-sequence .steps li.step:not(.active) .controls>*[data-v-42527a3a]{color:var(--input-disabled-text);text-decoration:none}.step-sequence .steps .divider[data-v-42527a3a]{flex-basis:100%;border-top:1px solid var(--border);position:relative;top:25px}.step-container[data-v-42527a3a]{display:flex;flex-direction:column;justify-content:center;align-items:center}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Tab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Tab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Tab.vue?vue&type=template&id=667bdd63&scoped=true&\"\nimport script from \"./Tab.vue?vue&type=script&lang=js&\"\nexport * from \"./Tab.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Tab.vue?vue&type=style&index=0&id=667bdd63&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"667bdd63\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.globalrole.vue?vue&type=style&index=0&id=effd72b0&prod&lang=scss&scoped=true&\"","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".labeled-select[data-v-0abf511e]{position:relative;padding-bottom:1px}.labeled-select.no-label.compact-input[data-v-0abf511e] .vs__actions:after{top:-2px}.labeled-select.no-label.compact-input .labeled-container[data-v-0abf511e]{padding:5px 0 1px 10px}.labeled-select.no-label[data-v-0abf511e]:not(.compact-input){height:61px;padding-top:4px}.labeled-select.no-label[data-v-0abf511e]:not(.compact-input) .vs__actions:after{top:0}.labeled-select .icon-spinner[data-v-0abf511e]{position:absolute;left:calc(50% - .5em);top:calc(50% - .5em)}.labeled-select .labeled-container[data-v-0abf511e]{padding:7px 0 0 10px;padding:10px 0 0 10px}.labeled-select .labeled-container label[data-v-0abf511e]{margin:0}.labeled-select .labeled-container .selected[data-v-0abf511e]{background-color:transparent}.labeled-select.view.labeled-input .labeled-container[data-v-0abf511e]{padding:0}.labeled-select.taggable.compact-input[data-v-0abf511e]{min-height:40px}.labeled-select.taggable.compact-input[data-v-0abf511e] .vs__selected-options{padding-top:8px!important}.labeled-select.taggable[data-v-0abf511e]:not(.compact-input){min-height:61px}.labeled-select.taggable[data-v-0abf511e]:not(.compact-input) .vs__selected-options{margin-top:0}.labeled-select[data-v-0abf511e]:not(.taggable) .vs__selected-options .vs__selected{width:100%}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options{padding:3px 0}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options .vs__selected{border-color:var(--accent-btn);height:20px;min-height:unset!important;padding:0 0 0 7px!important}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options .vs__selected>button{height:20px;line-height:14px}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options .vs__selected>button:hover{background-color:var(--primary);border-radius:0}.labeled-select.taggable[data-v-0abf511e] .vs__selected-options .vs__selected>button:hover:after{color:#fff}.labeled-select[data-v-0abf511e] .vs__selected-options{margin-top:-5px}.labeled-select[data-v-0abf511e] .v-select:not(.vs--single) .vs__selected-options{padding:5px 0}.labeled-select[data-v-0abf511e] .vs__actions:after{position:relative;top:-10px}.labeled-select[data-v-0abf511e] .v-select.vs--open .vs__dropdown-toggle{color:var(--outline)!important}[data-v-0abf511e] .labeled-select.disabled .labeled-container,[data-v-0abf511e] .labeled-select.disabled .vs__dropdown-toggle,[data-v-0abf511e] .labeled-select.disabled input,[data-v-0abf511e] .labeled-select.disabled label{cursor:not-allowed}.labeled-select .no-label[data-v-0abf511e].v-select:not(.vs--single){min-height:33px}.labeled-select .no-label[data-v-0abf511e].selected{padding-top:8px;padding-bottom:9px;position:relative;max-height:2.3em;overflow:hidden}.labeled-select .no-label[data-v-0abf511e] .vs__selected-options{padding:8px 0 7px 0}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group[data-v-0abf511e]{display:flex}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>b[data-v-0abf511e]{flex:1}.vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group>div[data-v-0abf511e]{background-color:var(--primary);border-radius:4px;color:var(--primary-text);font-size:12px;height:18px;line-height:18px;margin-top:1px;padding:0 10px}.vs__dropdown-option>.option-kind-highlighted[data-v-0abf511e]{color:var(--dropdown-highlight-text)}.vs__dropdown-option.vs__dropdown-option--highlight>.option-kind-highlighted[data-v-0abf511e],.vs__dropdown-option.vs__dropdown-option--selected>.option-kind-highlighted[data-v-0abf511e],.vs__dropdown-option>.option-kind-highlighted[data-v-0abf511e]:hover{color:var(--dropdown-hover-text)}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col span-12\"},[_c('h3',[_vm._v(_vm._s(_vm.t('kubewarden.policyServerConfig.sourceAuthorities.title')))]),_vm._l((_vm.rows),function(row,index){return [_c('Authority',{key:index,ref:\"authority\",refInFor:true,attrs:{\"mode\":_vm.mode},on:{\"update\":function($event){return _vm.updateAuthority($event, index)}},scopedSlots:_vm._u([{key:\"remove\",fn:function(){return [_c('button',{staticClass:\"btn role-link remove btn-sm\",attrs:{\"type\":\"button\",\"disabled\":_vm.isView},on:{\"click\":function($event){return _vm.removeRegistry(index)}}},[_c('i',{staticClass:\"icon icon-2x icon-x\"})])]},proxy:true}],null,true),model:{value:(_vm.rows[index]),callback:function ($$v) {_vm.$set(_vm.rows, index, $$v)},expression:\"rows[index]\"}})]}),_c('button',{staticClass:\"btn role-tertiary add\",attrs:{\"type\":\"button\",\"disabled\":_vm.isView},on:{\"click\":function($event){return _vm.addRegistry()}}},[_vm._v(\" \"+_vm._s(_vm.t('kubewarden.policyServerConfig.sourceAuthorities.add'))+\" \")])],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SourceAuthorities.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SourceAuthorities.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SourceAuthorities.vue?vue&type=template&id=3addd9fe&scoped=true&\"\nimport script from \"./SourceAuthorities.vue?vue&type=script&lang=js&\"\nexport * from \"./SourceAuthorities.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SourceAuthorities.vue?vue&type=style&index=0&id=3addd9fe&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3addd9fe\",\n null\n \n)\n\nexport default component.exports","import isEmpty from 'lodash/isEmpty';\n\nimport { POD, WORKLOAD_TYPES } from '@shell/config/types';\n\nimport { KUBEWARDEN } from '../types';\nimport KubewardenModel, { colorForStatus, colorForTraceStatus } from './kubewarden-class';\n\nexport default class PolicyServerModel extends KubewardenModel {\n get _availableActions() {\n const out = super._availableActions;\n\n const logs = {\n action: 'openLogs',\n enabled: true,\n icon: 'icon icon-fw icon-chevron-right',\n label: 'View Logs',\n };\n\n out.unshift(logs);\n\n return out;\n }\n\n get allRelatedPolicies() {\n return async() => {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n const types = [KUBEWARDEN.ADMISSION_POLICY, KUBEWARDEN.CLUSTER_ADMISSION_POLICY];\n const promises = types.map(type => this.$dispatch(`${ inStore }/findAll`, { type, opt: { force: true } }, { root: true }));\n\n try {\n const out = await Promise.all(promises);\n\n if ( out ) {\n return out.flatMap(o => o).filter(f => f.spec?.policyServer === this.metadata?.name);\n }\n } catch (e) {\n console.warn(`Error fetching related policies: ${ e }`); // eslint-disable-line no-console\n }\n };\n }\n\n get policyGauges() {\n return async() => {\n const out = {};\n const states = ['Active', 'Pending'];\n const relatedPolicies = await this.allRelatedPolicies();\n\n if ( !relatedPolicies ) {\n return out;\n }\n\n // Set defaults for gauges\n for ( const stateType of states.values() ) {\n if ( !out[stateType] ) {\n out[stateType] = {\n color: colorForStatus(stateType).replace('text-', ''),\n count: 0\n };\n }\n }\n\n // Add policy states to gauge\n relatedPolicies?.map((policy) => {\n const { stateDisplay } = policy;\n\n out[stateDisplay].count++;\n });\n\n return out;\n };\n }\n\n get tracesGauges() {\n return (traces) => {\n const out = {};\n\n if ( isEmpty(traces) ) {\n return out;\n }\n\n traces?.map((trace) => {\n const { allowed, mode, mutated } = trace;\n\n if ( mode === 'monitor' ) {\n return;\n }\n\n if ( out['Denied'] && !allowed ) {\n out['Denied'].count++;\n } else if ( !allowed ) {\n out['Denied'] = {\n color: colorForTraceStatus('denied'),\n count: 1\n };\n } else if ( out['Mutated'] && mutated ) {\n out['Mutated'].count++;\n } else if ( mutated && allowed ) {\n out['Mutated'] = {\n color: colorForTraceStatus('mutated'),\n count: 1\n };\n }\n });\n\n return out;\n };\n }\n\n get filteredValidations() {\n return async({ service }) => {\n const vals = await this.jaegerValidations({ jaegerService: service });\n\n const traces = this.traceTableRows(vals);\n const serviceName = `${ this.spec?.serviceAccountName }-${ this.metadata?.name }`;\n\n return traces.filter(trace => trace.host.includes(serviceName));\n };\n }\n\n get matchingDeployment() {\n return async() => {\n try {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n\n return await this.$dispatch(`${ inStore }/findMatching`, {\n type: WORKLOAD_TYPES.DEPLOYMENT,\n selector: `kubewarden/policy-server=${ this.metadata?.name }`\n }, { root: true });\n } catch (e) {\n console.warn('Error matching policy-server to deployment', e); // eslint-disable-line no-console\n }\n };\n }\n\n get matchingPods() {\n return async() => {\n try {\n const inStore = this.$rootGetters['currentProduct'].inStore;\n\n return await this.$dispatch(`${ inStore }/findMatching`, {\n type: POD,\n selector: `app=kubewarden-policy-server-${ this.metadata?.name }` // kubewarden-policy-server is hardcoded from the kubewarden-controller\n }, { root: true });\n } catch (e) {\n console.warn('Error matching policy-server to pod', e); // eslint-disable-line no-console\n }\n };\n }\n\n jaegerPolicyNameByPolicy(policy) {\n let out = null;\n\n switch (policy.type) {\n case KUBEWARDEN.CLUSTER_ADMISSION_POLICY:\n out = `clusterwide-${ policy.metadata?.name }`;\n break;\n\n case KUBEWARDEN.ADMISSION_POLICY:\n out = `namespaced-${ policy.metadata?.namespace }-${ policy.metadata?.name }`;\n break;\n\n default:\n break;\n }\n\n return out;\n }\n\n async openLogs() {\n try {\n const pod = await this.matchingPods();\n\n if ( !isEmpty(pod) ) {\n this.$dispatch('wm/open', {\n id: `${ this.id }-logs`,\n label: this.nameDisplay,\n icon: 'file',\n component: 'ContainerLogs',\n attrs: { pod: pod[0] }\n }, { root: true });\n }\n } catch (e) {\n console.warn('Error dispatching console for pod', e); // eslint-disable-line no-console\n }\n }\n}\n","import PolicyServerModel from '../plugins/policy-server-class';\n\nexport const DEFAULT_POLICY_SERVER = {\n apiVersion: 'policies.kubewarden.io/v1alpha2',\n kind: 'PolicyServer',\n metadata: {\n annotations: {},\n labels: {},\n name: ''\n },\n spec: {\n annotations: {},\n env: [\n { name: 'KUBEWARDEN_LOG_FMT', value: 'otlp' },\n { name: 'KUBEWARDEN_LOG_LEVEL', value: 'info' }\n ],\n image: 'ghcr.io/kubewarden/policy-server:latest',\n replicas: 1,\n serviceAccountName: '',\n verificationConfig: '',\n insecureSources: [],\n sourceAuthorities: {}\n }\n};\n\nexport default class PolicyServer extends PolicyServerModel {}\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".vertical[data-v-01996ade]{flex-direction:column;width:100%}.subtle[data-v-01996ade]{opacity:.7}.message-icon[data-v-01996ade]{display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column}.message-icon>I[data-v-01996ade]{font-size:64px;margin-bottom:20px}.message-icon>I.info[data-v-01996ade]{color:var(--primary)}.message-icon>I.error[data-v-01996ade]{color:var(--error)}.message-icon>I.warning[data-v-01996ade]{color:var(--warning)}.message-icon>I.success[data-v-01996ade]{color:var(--success)}.message-icon>.message[data-v-01996ade]{font-size:20px;margin-bottom:40px;max-width:60%;text-align:center;line-height:30px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"row\"},[_c('Banner',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.t('kubewarden.policyServerConfig.verification.description', {}, true)),expression:\"t('kubewarden.policyServerConfig.verification.description', {}, true)\"}],staticClass:\"type-banner mb-20 mt-0\",attrs:{\"color\":\"info\"}})],1),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col span-6\"},[_c('LabeledSelect',{attrs:{\"mode\":_vm.mode,\"label\":_vm.t('kubewarden.policyServerConfig.verification.label'),\"options\":_vm.configMaps,\"option-key\":\"id\",\"option-label\":\"id\",\"reduce\":opt => opt.metadata.name},model:{value:(_vm.value.verificationConfig),callback:function ($$v) {_vm.$set(_vm.value, \"verificationConfig\", $$v)},expression:\"value.verificationConfig\"}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Verification.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Verification.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Verification.vue?vue&type=template&id=79c3d714&\"\nimport script from \"./Verification.vue?vue&type=script&lang=js&\"\nexport * from \"./Verification.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*! @license DOMPurify 2.4.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.5/LICENSE */\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 = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // 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 _construct(Func, _toConsumableArray(args));\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringToString = unapply(String.prototype.toString);\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 var regExpTest = unapply(RegExp.prototype.test);\n var typeErrorCreate = unconstruct(TypeError);\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new 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 function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n /* Add properties to a lookup table */\n\n function addToSet(set, array, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n\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\n while (l--) {\n var element = array[l];\n\n if (typeof element === 'string') {\n var lcElement = transformCaseFunc(element);\n\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 /* Shallow clone an object */\n\n function clone(object) {\n var newObject = create(null);\n var property;\n\n for (property in object) {\n if (apply(hasOwnProperty, object, [property]) === true) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html$1 = 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', 'dialog', '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']); // SVG\n\n var svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', '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', 'view', 'vkern']);\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n var mathMl$1 = 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']); // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n var text = freeze(['#text']);\n\n var html = 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', 'nonce', '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', 'slot']);\n var svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', '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', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', '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 var mathMl = 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 var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n var MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n\n var ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n var TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n\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 var DOCTYPE_NAME = seal(/^html$/i);\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\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\n\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\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\n\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n\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) {\n return html;\n },\n createScriptURL: function createScriptURL(scriptUrl) {\n return scriptUrl;\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 * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n\n\n DOMPurify.version = '2.4.5';\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\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 return DOMPurify;\n }\n\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // 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\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_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 * 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(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n /* Allowed attribute names */\n\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n\n var FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n\n var FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n\n var ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n\n var ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n\n var ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n\n var SAFE_FOR_TEMPLATES = false;\n /* Decide if document with ... should be returned */\n\n var WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n\n var SET_CONFIG = false;\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\n var FORCE_BODY = false;\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\n var RETURN_DOM = false;\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\n var RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n\n var RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n\n var SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n\n var SANITIZE_NAMED_PROPS = false;\n var SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n\n var KEEP_CONTENT = true;\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\n var IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n\n var USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n\n var ALLOWED_NAMESPACES = null;\n var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n /* Parsing of strict XHTML documents */\n\n var PARSER_MEDIA_TYPE;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc;\n /* Keep a reference to config to pass to hooks */\n\n var CONFIG = null;\n /* Ideally, do not touch anything below this line */\n\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n\n\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n\n\n if (!cfg || _typeof(cfg) !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n\n\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = 'ALLOWED_NAMESPACES' in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n\n\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n ALLOWED_ATTR = [];\n\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n\n\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, transformCaseFunc);\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, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n\n\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n\n\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n\n\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n } // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n\n\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']); // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n\n var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n\n var ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n } // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n\n\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n } // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n\n\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n } // The only way to switch from SVG to MathML is via\n // and HTML integration points\n\n\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n } // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n\n\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n } // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n\n\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n } // For XHTML and XML documents that support custom namespaces\n\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n } // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n\n\n return false;\n };\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n\n\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n\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); // We void attribute values for unremovable \"is\"\" attributes\n\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\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\n\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc;\n var leadingWhitespace;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n\n\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {// Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n\n\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n\n\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n\n\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n\n\n var _isNode = function _isNode(object) {\n return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n\n\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n\n\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeElements', currentNode, null);\n /* Check if element is clobbered or can clobber */\n\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check if tagname contains Unicode */\n\n\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Now let's check the element's type and name */\n\n\n var tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n\n\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Mitigate a problem with templates inside select */\n\n\n if (tagName === 'select' && regExpTest(/\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!./LabeledSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./LabeledSelect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LabeledSelect.vue?vue&type=template&id=0abf511e&scoped=true&\"\nimport script from \"./LabeledSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./LabeledSelect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LabeledSelect.vue?vue&type=style&index=0&id=0abf511e&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 \"0abf511e\",\n null\n \n)\n\nexport default component.exports","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.project.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.project.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./management.cattle.io.project.vue?vue&type=template&id=3a26ac99&scoped=true&\"\nimport script from \"./management.cattle.io.project.vue?vue&type=script&lang=js&\"\nexport * from \"./management.cattle.io.project.vue?vue&type=script&lang=js&\"\nimport style0 from \"./management.cattle.io.project.vue?vue&type=style&index=0&id=3a26ac99&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a26ac99\",\n null\n \n)\n\nexport default component.exports","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".table-options-group .table-options-btn.role-multi-action[data-v-96d8a090]{background-color:transparent;border:none;font-size:18px}.table-options-group .table-options-btn.role-multi-action[data-v-96d8a090]:focus,.table-options-group .table-options-btn.role-multi-action[data-v-96d8a090]:hover{background-color:var(--accent-btn);box-shadow:none}.table-options-group .table-options-container[data-v-96d8a090]{width:350px;border:1px solid var(--primary);background-color:var(--body-bg);padding:20px;z-index:1}.table-options-group .table-options-container .table-options-grouping[data-v-96d8a090]{display:flex;align-items:center;margin-bottom:20px}.table-options-group .table-options-container .table-options-grouping span[data-v-96d8a090]{white-space:nowrap;margin-right:10px}.table-options-group .table-options-container ul[data-v-96d8a090]{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto}.table-options-group .table-options-container ul li[data-v-96d8a090]{margin:0;padding:0}.table-options-group .table-options-container ul li.visible[data-v-96d8a090]{margin:0 0 10px 0}.sortable>SPAN[data-v-96d8a090]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.sortable>SPAN[data-v-96d8a090]:active,.sortable>SPAN[data-v-96d8a090]:hover{text-decoration:underline;color:var(--body-text)}thead tr[data-v-96d8a090]{background-color:var(--sortable-table-header-bg);color:var(--body-text);text-align:left}thead tr[data-v-96d8a090]:not(.loading){border-bottom:1px solid var(--sortable-table-top-divider)}th[data-v-96d8a090]{padding:8px 5px;font-weight:400;border:0;color:var(--body-text)}th .table-header-container[data-v-96d8a090]{display:inherit}th .table-header-container>span[data-v-96d8a090]{display:flex;align-items:center}th .table-header-container.not-filterable[data-v-96d8a090],th .table-header-container.not-filterable .icon-stack[data-v-96d8a090]{margin-top:-2px}th .table-header-container .not-filter-icon[data-v-96d8a090]{font-size:16px;color:var(--primary);vertical-align:super}th[data-v-96d8a090]:first-child{padding-left:10px}th[data-v-96d8a090]:last-child{padding-right:10px}th:not(.sortable)>SPAN[data-v-96d8a090]{display:block;margin-bottom:2px}th A[data-v-96d8a090]{color:var(--body-text)}@media only screen and (max-width:480px){th.desktop[data-v-96d8a090],th.laptop[data-v-96d8a090],th.tablet[data-v-96d8a090]{display:none}}@media only screen and (max-width:992px){th.desktop[data-v-96d8a090],th.laptop[data-v-96d8a090]{display:none}}@media only screen and (max-width:1281px){th.desktop[data-v-96d8a090]{display:none}}.icon-stack[data-v-96d8a090]{width:12px}.icon-sort.faded[data-v-96d8a090]{opacity:.3}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mt-10\"},[_c('div',{staticClass:\"mb-30\"},[_vm._v(\" \"+_vm._s(_vm.t('promptRemove.attemptingToRemove', { type: _vm.type }))+\" \"),_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.podNames),expression:\"podNames\"}],staticClass:\"machine-name\"})]),_c('div',{staticClass:\"mb-30\"},[_c('Checkbox',{attrs:{\"label\":_vm.t('promptForceRemove.forceDelete')},model:{value:(_vm.forceDelete),callback:function ($$v) {_vm.forceDelete=$$v},expression:\"forceDelete\"}})],1),_c('Banner',{attrs:{\"color\":\"warning\",\"label-key\":\"promptForceRemove.podRemoveWarning\"}}),_vm._l((_vm.errors),function(error,i){return _c('Banner',{key:i,attrs:{\"color\":\"error\",\"label\":error}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./pod.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./pod.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./pod.vue?vue&type=template&id=db441fb2&scoped=true&\"\nimport script from \"./pod.vue?vue&type=script&lang=js&\"\nexport * from \"./pod.vue?vue&type=script&lang=js&\"\nimport style0 from \"./pod.vue?vue&type=style&index=0&id=db441fb2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"db441fb2\",\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Rule.vue?vue&type=template&id=f3f87a0e&scoped=true&\"\nimport script from \"./Rule.vue?vue&type=script&lang=js&\"\nexport * from \"./Rule.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Rule.vue?vue&type=style&index=0&id=f3f87a0e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f3f87a0e\",\n null\n \n)\n\nexport default component.exports","import { ANNOTATIONS_TO_IGNORE_REGEX, LABELS_TO_IGNORE_REGEX } from '@shell/config/labels-annotations';\nimport omitBy from 'lodash/omitBy';\nimport pickBy from 'lodash/pickBy';\nimport Vue from 'vue';\nimport { matchesSomeRegex } from '@shell/utils/string';\nimport Resource from '@shell/plugins/dashboard-store/resource-class';\n\n// these are defined elsewhere in Steve models and will cause the error \"Cannot set property of [object Object] which has only a getter\" if defined at top-level\nexport function cleanHybridResources(data) {\n const potentialNormanHoldovers = ['state', 'name', 'description', 'labels', 'annotations'];\n\n potentialNormanHoldovers.forEach((key) => delete data[key]);\n\n return data;\n}\n\nexport default class HybridModel extends Resource {\n constructor(data, ctx, rehydrateNamespace = null, setClone = false) {\n const cleanedData = cleanHybridResources(data);\n\n super(cleanedData, ctx, rehydrateNamespace, setClone);\n }\n\n get labels() {\n const all = this.metadata?.labels || {};\n\n return omitBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n }\n\n setLabels(val) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n const all = this.metadata.labels || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, LABELS_TO_IGNORE_REGEX);\n });\n\n Vue.set(this.metadata, 'labels', { ...wasIgnored, ...val });\n }\n\n setLabel(key, val) {\n if ( val ) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n if ( !this.metadata.labels ) {\n this.metadata.labels = {};\n }\n\n Vue.set(this.metadata.labels, key, val);\n } else if ( this.metadata?.labels ) {\n Vue.set(this.metadata.labels, key, undefined);\n delete this.metadata.labels[key];\n }\n }\n\n get annotations() {\n const all = this.metadata?.annotations || {};\n\n return omitBy(all, (value, key) => {\n return matchesSomeRegex(key, ANNOTATIONS_TO_IGNORE_REGEX);\n });\n }\n\n setAnnotations(val) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n const all = this.metadata.annotations || {};\n const wasIgnored = pickBy(all, (value, key) => {\n return matchesSomeRegex(key, ANNOTATIONS_TO_IGNORE_REGEX);\n });\n\n Vue.set(this.metadata, 'annotations', { ...wasIgnored, ...val });\n }\n\n setAnnotation(key, val) {\n if ( val ) {\n if ( !this.metadata ) {\n this.metadata = {};\n }\n\n if ( !this.metadata.annotations ) {\n this.metadata.annotations = {};\n }\n\n Vue.set(this.metadata.annotations, key, val);\n } else if ( this.metadata?.annotations ) {\n Vue.set(this.metadata.annotations, key, undefined);\n delete this.metadata.annotations[key];\n }\n }\n\n get state() {\n return this.stateObj?.name || 'unknown';\n }\n}\n","import { DESCRIPTION } from '@shell/config/labels-annotations';\nimport HybridModel from './hybrid-class';\n\nexport default class SteveModel extends HybridModel {\n get name() {\n return this.metadata?.name || this._name;\n }\n\n get namespace() {\n return this.metadata?.namespace;\n }\n\n get description() {\n return this.metadata?.annotations?.[DESCRIPTION] || this.spec?.description || this._description;\n }\n\n /**\n * Set description based on the type of model available with private fallback\n */\n set description(value) {\n if (this.metadata?.annotations) {\n this.metadata.annotations[DESCRIPTION] = value;\n }\n\n if (this.spec) {\n this.spec.description = value;\n }\n\n this._description = value;\n }\n}\n","export { default as Banner } from './Banner.vue';\n","export const CSRF = 'CSRF';\nexport const USERNAME = 'R_USERNAME';\nexport const LOCALE = 'R_LOCALE';\nexport const REDIRECTED = 'R_REDIRECTED';\n","var baseFor = require('./_baseFor'),\n castFunction = require('./_castFunction'),\n keysIn = require('./keysIn');\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nmodule.exports = forIn;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","export * 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!./DetailText.vue?vue&type=style&index=0&id=348d5cf1&prod&lang=scss&scoped=true&\"","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!./KeyValue.vue?vue&type=style&index=0&id=e97a00e2&prod&lang=scss&\"","export * from \"-!../../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SequenceTree.vue?vue&type=style&index=0&id=ada41008&prod&lang=scss&scoped=true&\"","export type GC_PREFERENCES = {\n enabled: boolean,\n enabledInterval: boolean,\n interval: number,\n enabledOnNavigate: boolean,\n ageThreshold: number,\n countThreshold: number\n}\n\nexport const GC_DEFAULTS: GC_PREFERENCES = {\n enabled: false,\n\n // When GC Runs\n enabledInterval: true,\n interval: 1 * 60 * 5,\n enabledOnNavigate: true,\n\n // How GC handles resources when GC'ing\n ageThreshold: 1 * 60 * 2,\n countThreshold: 500,\n};\n","/*\n * Jexl\n * Copyright 2019 Tom Shawver\n */\n\nconst numericRegex = /^-?(?:(?:[0-9]*\\.[0-9]+)|[0-9]+)$/\nconst identRegex = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/\nconst escEscRegex = /\\\\\\\\/\nconst whitespaceRegex = /^\\s*$/\nconst preOpRegexElems = [\n // Strings\n \"'(?:(?:\\\\\\\\')|[^'])*'\",\n '\"(?:(?:\\\\\\\\\")|[^\"])*\"',\n // Whitespace\n '\\\\s+',\n // Booleans\n '\\\\btrue\\\\b',\n '\\\\bfalse\\\\b'\n]\nconst postOpRegexElems = [\n // Identifiers\n '[a-zA-Z_\\\\$][a-zA-Z0-9_\\\\$]*',\n // Numerics (without negative symbol)\n '(?:(?:[0-9]*\\\\.[0-9]+)|[0-9]+)'\n]\nconst minusNegatesAfter = [\n 'binaryOp',\n 'unaryOp',\n 'openParen',\n 'openBracket',\n 'question',\n 'colon'\n]\n\n/**\n * Lexer is a collection of stateless, statically-accessed functions for the\n * lexical parsing of a Jexl string. Its responsibility is to identify the\n * \"parts of speech\" of a Jexl expression, and tokenize and label each, but\n * to do only the most minimal syntax checking; the only errors the Lexer\n * should be concerned with are if it's unable to identify the utility of\n * any of its tokens. Errors stemming from these tokens not being in a\n * sensible configuration should be left for the Parser to handle.\n * @type {{}}\n */\nclass Lexer {\n constructor(grammar) {\n this._grammar = grammar\n }\n\n /**\n * Splits a Jexl expression string into an array of expression elements.\n * @param {string} str A Jexl expression string\n * @returns {Array} An array of substrings defining the functional\n * elements of the expression.\n */\n getElements(str) {\n const regex = this._getSplitRegex()\n return str.split(regex).filter(elem => {\n // Remove empty strings\n return elem\n })\n }\n\n /**\n * Converts an array of expression elements into an array of tokens. Note that\n * the resulting array may not equal the element array in length, as any\n * elements that consist only of whitespace get appended to the previous\n * token's \"raw\" property. For the structure of a token object, please see\n * {@link Lexer#tokenize}.\n * @param {Array} elements An array of Jexl expression elements to be\n * converted to tokens\n * @returns {Array<{type, value, raw}>} an array of token objects.\n */\n getTokens(elements) {\n const tokens = []\n let negate = false\n for (let i = 0; i < elements.length; i++) {\n if (this._isWhitespace(elements[i])) {\n if (tokens.length) {\n tokens[tokens.length - 1].raw += elements[i]\n }\n } else if (elements[i] === '-' && this._isNegative(tokens)) {\n negate = true\n } else {\n if (negate) {\n elements[i] = '-' + elements[i]\n negate = false\n }\n tokens.push(this._createToken(elements[i]))\n }\n }\n // Catch a - at the end of the string. Let the parser handle that issue.\n if (negate) {\n tokens.push(this._createToken('-'))\n }\n return tokens\n }\n\n /**\n * Converts a Jexl string into an array of tokens. Each token is an object\n * in the following format:\n *\n * {\n * type: ,\n * [name]: ,\n * value: ,\n * raw: \n * }\n *\n * Type is one of the following:\n *\n * literal, identifier, binaryOp, unaryOp\n *\n * OR, if the token is a control character its type is the name of the element\n * defined in the Grammar.\n *\n * Name appears only if the token is a control string found in\n * {@link grammar#elements}, and is set to the name of the element.\n *\n * Value is the value of the token in the correct type (boolean or numeric as\n * appropriate). Raw is the string representation of this value taken directly\n * from the expression string, including any trailing spaces.\n * @param {string} str The Jexl string to be tokenized\n * @returns {Array<{type, value, raw}>} an array of token objects.\n * @throws {Error} if the provided string contains an invalid token.\n */\n tokenize(str) {\n const elements = this.getElements(str)\n return this.getTokens(elements)\n }\n\n /**\n * Creates a new token object from an element of a Jexl string. See\n * {@link Lexer#tokenize} for a description of the token object.\n * @param {string} element The element from which a token should be made\n * @returns {{value: number|boolean|string, [name]: string, type: string,\n * raw: string}} a token object describing the provided element.\n * @throws {Error} if the provided string is not a valid expression element.\n * @private\n */\n _createToken(element) {\n const token = {\n type: 'literal',\n value: element,\n raw: element\n }\n if (element[0] === '\"' || element[0] === \"'\") {\n token.value = this._unquote(element)\n } else if (element.match(numericRegex)) {\n token.value = parseFloat(element)\n } else if (element === 'true' || element === 'false') {\n token.value = element === 'true'\n } else if (this._grammar[element]) {\n token.type = this._grammar[element].type\n } else if (element.match(identRegex)) {\n token.type = 'identifier'\n } else {\n throw new Error(`Invalid expression token: ${element}`)\n }\n return token\n }\n\n /**\n * Escapes a string so that it can be treated as a string literal within a\n * regular expression.\n * @param {string} str The string to be escaped\n * @returns {string} the RegExp-escaped string.\n * @see https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions\n * @private\n */\n _escapeRegExp(str) {\n str = str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n if (str.match(identRegex)) {\n str = '\\\\b' + str + '\\\\b'\n }\n return str\n }\n\n /**\n * Gets a RegEx object appropriate for splitting a Jexl string into its core\n * elements.\n * @returns {RegExp} An element-splitting RegExp object\n * @private\n */\n _getSplitRegex() {\n if (!this._splitRegex) {\n // Sort by most characters to least, then regex escape each\n const elemArray = Object.keys(this._grammar)\n .sort((a, b) => {\n return b.length - a.length\n })\n .map(elem => {\n return this._escapeRegExp(elem)\n }, this)\n this._splitRegex = new RegExp(\n '(' +\n [\n preOpRegexElems.join('|'),\n elemArray.join('|'),\n postOpRegexElems.join('|')\n ].join('|') +\n ')'\n )\n }\n return this._splitRegex\n }\n\n /**\n * Determines whether the addition of a '-' token should be interpreted as a\n * negative symbol for an upcoming number, given an array of tokens already\n * processed.\n * @param {Array} tokens An array of tokens already processed\n * @returns {boolean} true if adding a '-' should be considered a negative\n * symbol; false otherwise\n * @private\n */\n _isNegative(tokens) {\n if (!tokens.length) return true\n return minusNegatesAfter.some(\n type => type === tokens[tokens.length - 1].type\n )\n }\n\n /**\n * A utility function to determine if a string consists of only space\n * characters.\n * @param {string} str A string to be tested\n * @returns {boolean} true if the string is empty or consists of only spaces;\n * false otherwise.\n * @private\n */\n _isWhitespace(str) {\n return !!str.match(whitespaceRegex)\n }\n\n /**\n * Removes the beginning and trailing quotes from a string, unescapes any\n * escaped quotes on its interior, and unescapes any escaped escape\n * characters. Note that this function is not defensive; it assumes that the\n * provided string is not empty, and that its first and last characters are\n * actually quotes.\n * @param {string} str A string whose first and last characters are quotes\n * @returns {string} a string with the surrounding quotes stripped and escapes\n * properly processed.\n * @private\n */\n _unquote(str) {\n const quote = str[0]\n const escQuoteRegex = new RegExp('\\\\\\\\' + quote, 'g')\n return str\n .substr(1, str.length - 2)\n .replace(escQuoteRegex, quote)\n .replace(escEscRegex, '\\\\')\n }\n}\n\nmodule.exports = Lexer\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.globalrole.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.globalrole.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./management.cattle.io.globalrole.vue?vue&type=template&id=effd72b0&scoped=true&\"\nimport script from \"./management.cattle.io.globalrole.vue?vue&type=script&lang=js&\"\nexport * from \"./management.cattle.io.globalrole.vue?vue&type=script&lang=js&\"\nimport style0 from \"./management.cattle.io.globalrole.vue?vue&type=style&index=0&id=effd72b0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"effd72b0\",\n null\n \n)\n\nexport default component.exports","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","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!./ActionDropdown.vue?vue&type=style&index=0&id=70f0de36&prod&lang=scss&\"","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","// This file has 2 sections that control getting and using specializations of particular types\n// over the generic info that is specified or generated from schemas.\n//\n// 1) Getting info about types\n//\n// labelFor(schema, count) Get the display label for a schema. Count is (in English) 1 or not-1 for pluralizing\n// groupLabelFor(schema) Get the label for the API group of this schema's type\n// isIgnored(schema) Returns true if this type should be hidden from the tree\n// groupForBasicType(schema) Returns the group a type should be shown in basic view, or false-y if it shouldn't be shown.\n// typeWeightFor(type, forBasic) Get the weight value for a particular type label\n// groupWeightFor(group, forBasic) Get the weight value for a particular group\n// headersFor(schema) Returns the column definitions for a type to give to SortableTable\n// activeProducts() Returns the list of products that are installed and should be shown\n//\n// 2) Detecting and using custom list/detail/edit/header components\n//\n// hasCustomList(type) Does type have a custom list implementation?\n// hasCustomDetail(type[,subType]) Does type have a custom detail implementation?\n// hasCustomEdit(type[,subType]) Does type have a custom edit implementation?\n// importList(type) Returns a promise that resolves to the list component for type\n// importDetail(type[,subType]) Returns a promise that resolves to the detail component for type\n// importEdit(type[,subType]) Returns a promise that resolves to the edit component for type\n// optionsFor(schemaOrType) Return the configured options for a type (from configureType)\n//\n// 3) Changing specialization info about a type\n// For all:\n// let { thingYouWant } = DSL(instanceOfTheStore, 'product');\n//\n// product( Add a product into the nav\n// removable, -- Is the product removable (true) or built-in (false).\n// weight, -- Sort order and divider sections in the product menu. 3=global (fleet, ecm), 2=always on (apps, explorer) 1=other\n// showClusterSwitcher, -- Show the cluster switcher in the header (default true)\n// showNamespaceFilter, -- Show the namespace filter in the header (default false)\n// showWorkspaceSwitcher, -- Show the workspace switcher in the header (conflicts with namespace) (default false)\n// ifHave, -- Show this product only if the given capability is available\n// ifHaveGroup, -- Show this product only if the given group exists in the store [inStore]\n// ifHaveType, -- Show this product only if the given type exists in the store [inStore], This can also be specified as an object { type: TYPE, store: 'management' } if the type isn't in the current [inStore]\n// ifHaveVerb, -- In combination with ifHaveTYpe, show it only if the type also has this collectionMethod\n// inStore, -- Which store to look at for if* above and the left-nav, defaults to \"cluster\"\n// inExplorer, -- Determines if the product is to be scoped to the explorer\n// public, -- If true, show to all users. If false, only show when the Developer Tools pref is on (default true)\n// category, -- Group to show the product in for the nav hamburger menu\n// typeStoreMap, -- An object mapping types to the store that should be used to retrieve information about the type\n// hideSystemResources -- Hide resources in namespaces where namespace.isSystem === true, or a namespace managed by fleet (per its annotation) and hide those namespaces from ns/project list and nsfilter (default false)\n// hideNamespaceLocation -- Hide the namespace link in the ResourceDetail masthead of namespaced resources and hide the ExplorerProjectsNamespaces namespace link (default false)\n// })\n//\n// externalLink(stringOrFn) The product has an external page (function gets context object\n//\n// virtualType(obj) Add an item to the tree that goes to a route instead of an actual type.\n// -- obj can contain anything in the objects getTree returns.\n// -- obj must have a `name` that is unique among all virtual types.\n// -- `cluster` is automatically added to route.params if it exists.\n//\n// spoofedType(obj) Create a fake type that can be treated like a normal type\n//\n// basicType( Mark type(s) as always shown in the top of the nav\n// type(s), -- Type name or array of type names\n// group -- Group to show the type(s) under; false-y for top-level.\n// )\n// basicType( Mark all types in group as always shown in the top of the nav\n// group, -- Group to show\n// asLabel -- Label to display the group as; false-y for top-level.\n// )\n// ignoreType(type) Never show type\n// weightType( Set the weight (sorting) order of one or more types\n// typeOrArrayOfTypes,\n// weight, -- Higher numbers are shown first/higher up on the nav tree\n// forBasic -- Apply to basic type instead of regular type tree\n// )\n// mapType( Remap a type id to a display name\n// matchRegexOrString, -- Type to match, or regex that matches types\n// replacementStringOrFn, -- String to replace the type with, or\n// -- sync function: (type, capturedString, schemaObj => { return 'new-type'; }\n// mapWeight, -- Priority for apply this mapping (higher numbers applied first)\n// continueOnMatch -- If true, continue applying to hit other rules that might match the new type.\n// )\n// moveType( Change the group a type is in\n// matchRegexOrString, -- Type to match, or regex that matches types\n// newGroup, -- Group to move the type into\n// mapWeight, -- Priority for apply this mapping (higher numbers applied first)\n// )\n// componentForType( Map matching types to a single component name\n// ( (this is helpful if multiple types should be rendered by a single component)\n// matchRegexOrString, -- Type to match, or regex that matches types\n// replacementString -- String to replace the type with\n// )\n// configureType( Display options for a particular type\n// type, -- Type to apply to\n// options -- Object of options. Defaults/Supported: {\n// isCreatable: true, -- If false, disable create even if schema says it's allowed\n// isEditable: true, -- Ditto, for edit\n// isRemovable: true, -- Ditto, for remove/delete\n// showState: true, -- If false, hide state in columns and masthead\n// showAge: true, -- If false, hide age in columns and masthead\n// showConfigView: true -- If false, hide masthead config button in view mode\n// showListMasthead: true, -- If false, hide masthead in list view\n// canYaml: true,\n// resource: undefined -- Use this resource in ResourceDetails instead\n// resourceDetail: undefined -- Use this resource specifically for ResourceDetail's detail component\n// resourceEdit: undefined -- Use this resource specifically for ResourceDetail's edit component\n// depaginate: undefined -- Use this to depaginate requests for this type\n// resourceEditMasthead: true -- Show the Masthead in the edit resource component\n// customRoute: undefined,\n// hasGraph: undefined -- If true, render ForceDirectedTreeChart graph (ATTENTION: option graphConfig is needed also!!!)\n// graphConfig: undefined -- Use this to pass along the graph configuration\n// notFilterNamespace: undefined -- Define namespaces that do not need to be filtered\n// localOnly: False -- Hide this type from the nav/search bar on downstream clusters\n// }\n// )\n// ignoreGroup(group): Never show group or any types in it\n// weightGroup( Set the weight (sorting) of one or more groups\n// groupOrArrayOfGroups, -- see weightType...\n// weight\n// )\n// setGroupDefaultType( Set the default child type to show when the group is expanded\n// groupOrArrayOfGroups, -- see setGroupDefaultType...\n// defaultType\n// )\n// mapGroup( Remap a group name to a display name\n// matchRegexOrString, -- see mapType...\n// replacementString,\n// mapWeight,\n// continueOnMatch\n// )\nimport { AGE, NAME, NAMESPACE as NAMESPACE_COL, STATE } from '@shell/config/table-headers';\nimport {\n CATALOG,\n COUNT,\n SCHEMA,\n MANAGEMENT,\n NAMESPACE\n} from '@shell/config/types';\nimport { VIEW_IN_API, EXPANDED_GROUPS, FAVORITE_TYPES } from '@shell/store/prefs';\nimport {\n addObject, findBy, insertAt, isArray, removeObject, filterBy\n} from '@shell/utils/array';\nimport { clone, get } from '@shell/utils/object';\nimport {\n ensureRegex, escapeHtml, escapeRegex, ucFirst, pluralize\n} from '@shell/utils/string';\nimport {\n importChart, importList, importDetail, importEdit, listProducts, loadProduct, importCustomPromptRemove, resolveList, resolveEdit, resolveWindowComponent, importWindowComponent, importLogin, resolveChart, resolveDetail, importDialog, importMachineConfig, resolveMachineConfigComponent, resolveCloudCredentialComponent, importCloudCredential\n} from '@shell/utils/dynamic-importer';\n\nimport { NAME as EXPLORER } from '@shell/config/product/explorer';\nimport isObject from 'lodash/isObject';\nimport { normalizeType } from '@shell/plugins/dashboard-store/normalize';\nimport { sortBy } from '@shell/utils/sort';\n\nimport { haveV1Monitoring, haveV2Monitoring } from '@shell/utils/monitoring';\nimport { NEU_VECTOR_NAMESPACE } from '@shell/config/product/neuvector';\n\nimport { ExtensionPoint, TableColumnLocation } from '@shell/core/types';\n\nexport const NAMESPACED = 'namespaced';\nexport const CLUSTER_LEVEL = 'cluster';\nexport const BOTH = 'both';\n\nexport const ALL = 'all';\nexport const BASIC = 'basic';\nexport const FAVORITE = 'favorite';\nexport const USED = 'used';\n\nexport const ROOT = 'root';\n\nexport const SPOOFED_PREFIX = '__[[spoofed]]__';\nexport const SPOOFED_API_PREFIX = '__[[spoofedapi]]__';\n\nconst instanceMethods = {};\nconst graphConfigMap = {};\n\nconst FIELD_REGEX = /^\\$\\.metadata\\.fields\\[([0-9]*)\\]/;\n\nexport const IF_HAVE = {\n V1_MONITORING: 'v1-monitoring',\n V2_MONITORING: 'v2-monitoring',\n PROJECT: 'project',\n NO_PROJECT: 'no-project',\n NOT_V1_ISTIO: 'not-v1-istio',\n MULTI_CLUSTER: 'multi-cluster',\n NEUVECTOR_NAMESPACE: 'neuvector-namespace',\n ADMIN: 'admin-user',\n MCM_DISABLED: 'mcm-disabled',\n NOT_STANDALONE_HARVESTER: 'not-standalone-harvester',\n};\n\nexport function DSL(store, product, module = 'type-map') {\n // store.commit(`${ module }/product`, { name: product });\n\n return {\n product(inOpt) {\n const opt = {\n name: product,\n weight: 1,\n inStore: 'cluster',\n inExplorer: false,\n removable: true,\n showClusterSwitcher: true,\n showNamespaceFilter: false,\n public: true,\n filterMode: 'namespaces',\n ...inOpt\n };\n\n for ( const k of ['ifHaveGroup', 'ifHaveType'] ) {\n if ( opt[k] ) {\n opt[k] = regexToString(ensureRegex(opt[k]));\n }\n }\n\n store.commit(`${ module }/product`, opt);\n },\n\n basicType(types, group) {\n // Support passing in a map of types and using just the values\n if ( !isArray(types) && types && isObject(types) ) {\n types = Object.values(types);\n }\n\n store.commit(`${ module }/basicType`, {\n product, types, group\n });\n },\n\n // Type- and Group-dependent\n groupBy(type, field) {\n store.commit(`${ module }/groupBy`, { type, field });\n },\n\n headers(type, headers) {\n // gate it so that we prevent errors on older versions of dashboard\n if (store.$plugin?.getUIConfig) {\n const extensionCols = store.$plugin.getUIConfig(ExtensionPoint.TABLE_COL, TableColumnLocation.RESOURCE);\n\n // Try and insert the columns before the Age column, if that is the last column\n let insertPosition = headers.length;\n\n if (headers.length > 0) {\n const lastColumn = headers[headers.length - 1];\n\n if (lastColumn?.name === AGE.name) {\n insertPosition--;\n }\n }\n\n // adding extension defined cols to the correct header config\n extensionCols.forEach((col) => {\n if (col.locationConfig.resource) {\n col.locationConfig.resource.forEach((resource) => {\n if (resource && type === resource) {\n headers.splice(insertPosition, 0, col);\n }\n });\n }\n });\n }\n\n headers.forEach((header) => {\n // If on the client, then use the value getter if there is one\n if (header.getValue) {\n // we need to store the .value prop for the advanced filtering\n header.valueProp = header.value;\n header.value = header.getValue;\n }\n\n delete header.getValue;\n });\n\n store.commit(`${ module }/headers`, { type, headers });\n },\n\n hideBulkActions(type, field) {\n store.commit(`${ module }/hideBulkActions`, { type, field });\n },\n\n configureType(match, options) {\n if (options.graphConfig) {\n graphConfigMap[match] = options.graphConfig;\n delete options.graphConfig;\n }\n store.commit(`${ module }/configureType`, { ...options, match });\n },\n\n componentForType(match, replace) {\n store.commit(`${ module }/componentForType`, { match, replace });\n },\n\n ignoreType(regexOrString) {\n store.commit(`${ module }/ignoreType`, regexOrString);\n },\n\n ignoreGroup(regexOrString, cb) {\n store.commit(`${ module }/ignoreGroup`, { regexOrString, cb });\n },\n\n weightGroup(input, weight, forBasic) {\n if ( isArray(input) ) {\n store.commit(`${ module }/weightGroup`, {\n groups: input, weight, forBasic\n });\n } else {\n store.commit(`${ module }/weightGroup`, {\n group: input, weight, forBasic\n });\n }\n },\n\n setGroupDefaultType(input, defaultType) {\n if ( isArray(input) ) {\n store.commit(`${ module }/setGroupDefaultType`, { groups: input, defaultType });\n } else {\n store.commit(`${ module }/setGroupDefaultType`, { group: input, defaultType });\n }\n },\n\n weightType(input, weight, forBasic) {\n if ( isArray(input) ) {\n store.commit(`${ module }/weightType`, {\n types: input, weight, forBasic\n });\n } else {\n store.commit(`${ module }/weightType`, {\n type: input, weight, forBasic\n });\n }\n },\n\n mapGroup(match, replace, weight = 5, continueOnMatch = false) {\n store.commit(`${ module }/mapGroup`, {\n match, replace, weight, continueOnMatch\n });\n },\n\n mapType(match, replace, weight = 5, continueOnMatch = false) {\n store.commit(`${ module }/mapType`, {\n match, replace, weight, continueOnMatch\n });\n },\n\n moveType(match, group, weight = 5, continueOnMatch = false) {\n store.commit(`${ module }/moveType`, {\n match, group, weight,\n });\n },\n\n virtualType(obj) {\n store.commit(`${ module }/virtualType`, { product, obj });\n },\n\n spoofedType(obj) {\n store.commit(`${ module }/spoofedType`, { product, obj });\n }\n };\n}\n\nlet called = false;\n\nexport async function applyProducts(store, $plugin) {\n if (called) {\n return;\n }\n\n called = true;\n for ( const product of listProducts() ) {\n const impl = await loadProduct(product);\n\n if ( impl?.init ) {\n impl.init(store);\n }\n }\n // Load the products from all plugins\n $plugin.loadProducts();\n}\n\nexport function productsLoaded() {\n return called;\n}\n\nexport const state = function() {\n return {\n products: [],\n virtualTypes: {},\n spoofedTypes: {},\n basicTypes: {},\n groupIgnore: [],\n groupWeights: {},\n groupDefaultTypes: {},\n basicGroupWeights: { [ROOT]: 1000 },\n groupMappings: [],\n typeIgnore: [],\n basicTypeWeights: {},\n typeWeights: {},\n typeMappings: [],\n typeMoveMappings: [],\n typeToComponentMappings: [],\n typeOptions: [],\n groupBy: {},\n headers: {},\n hideBulkActions: {},\n schemaGeneration: 1,\n cache: {\n typeMove: {},\n groupLabel: {},\n ignore: {},\n list: {},\n chart: {},\n detail: {},\n edit: {},\n componentFor: {},\n promptRemove: {},\n windowComponents: {},\n 'machine-config': {},\n 'cloud-credential': {}\n\n },\n };\n};\n\nexport const getters = {\n // ----------------------------------------------------------------------------\n // 1 ) Getting info\n // ----------------------------------------------------------------------------\n // Turns a type name into a display label (e.g. management.cattle.io.cluster -> Cluster)\n labelFor(state, getters, rootState, rootGetters) {\n return (schema, count = 1, language = null) => {\n return _applyMapping(schema, state.typeMappings, 'id', false, () => {\n const key = `typeLabel.\"${ schema.id.toLowerCase() }\"`;\n\n if ( rootGetters['i18n/exists'](key, language) ) {\n return rootGetters['i18n/t'](key, { count }, language).trim();\n }\n\n const out = schema?.attributes?.kind || schema.id || '?';\n\n // Add spaces, but breaks typing names into jump menu naturally\n // out = ucFirst(out.replace(/([a-z])([A-Z])/g,'$1 $2'));\n\n if ( count === 1 ) {\n return out;\n }\n\n // This works for most things... if you don't like it, put in a typeLabel translation for above.\n return pluralize(out);\n });\n };\n },\n\n // Turns a group name into a display label (e.g. management.cattle.io.v3.cluster -> Cluster)\n groupLabelFor(state) {\n return (schemaOrName) => {\n let group = schemaOrName;\n\n if ( typeof schemaOrName === 'object' ) {\n let moved = false;\n\n for ( const rule of state.typeMoveMappings ) {\n const re = stringToRegex(rule.match);\n\n if ( schemaOrName.id.match(re) ) {\n moved = true;\n group = rule.replace;\n }\n }\n\n if ( !moved ) {\n group = group.attributes.group;\n }\n }\n\n if ( typeof group !== 'string' ) {\n return null;\n }\n\n const out = _applyMapping(group, state.groupMappings, null, state.cache.groupLabel, (group) => {\n const match = group.match(/^(.*)\\.k8s\\.io$/);\n\n if ( match ) {\n return match[1].split(/\\./).map((x) => ucFirst(x)).join('.');\n }\n\n return group;\n });\n\n return out;\n };\n },\n\n groupForBasicType(state) {\n return (product, schemaId) => {\n return state.basicTypes?.[product]?.[schemaId];\n };\n },\n\n optionsFor(state) {\n const def = {\n isCreatable: true,\n isEditable: true,\n isRemovable: true,\n showState: true,\n showAge: true,\n canYaml: true,\n namespaced: null,\n listGroups: [],\n depaginate: false,\n customRoute: undefined,\n resourceEditMasthead: true,\n };\n\n return (schemaOrType) => {\n if (!schemaOrType) {\n return {};\n }\n\n const type = (typeof schemaOrType === 'object' ? schemaOrType.id : schemaOrType);\n const found = state.typeOptions.find((entry) => {\n const re = stringToRegex(entry.match);\n\n return re.test(type);\n });\n\n const opts = Object.assign({}, def, found || {});\n\n return opts;\n };\n },\n\n isFavorite(state, getters, rootState, rootGetters) {\n return (schemaId) => {\n return rootGetters['prefs/get'](FAVORITE_TYPES).includes(schemaId) || false;\n };\n },\n\n typeWeightFor(state) {\n return (type, forBasic) => {\n type = type?.toLowerCase();\n\n if ( forBasic ) {\n return state.basicTypeWeights[type] || 0;\n } else {\n return state.typeWeights[type] || 0;\n }\n };\n },\n\n groupWeightFor(state) {\n return (group, forBasic) => {\n group = group.toLowerCase();\n\n if ( forBasic ) {\n return state.basicGroupWeights[group] || 0;\n } else {\n return state.groupWeights[group] || 0;\n }\n };\n },\n\n groupDefaultTypeFor(state) {\n return (group) => {\n group = group.toLowerCase();\n\n return state.groupDefaultTypes[group];\n };\n },\n\n getTree(state, getters, rootState, rootGetters) {\n return (productId, mode, allTypes, clusterId, namespaceMode, namespaces, currentType, search) => {\n // getTree has four modes:\n // - `basic` matches data types that should always be shown even if there\n // are 0 of them.\n // - `used` matches the data types where there are more than 0 of them\n // in the current set of namespaces.\n // - `all` matches all types.\n // - `favorite` matches starred types.\n // namespaceMode: 'namespaced', 'cluster', or 'both'\n // namespaces: null means all, otherwise it will be an array of specific namespaces to include\n const isBasic = mode === BASIC;\n\n let searchRegex;\n\n if ( search ) {\n searchRegex = new RegExp(`^(.*)(${ escapeRegex(search) })(.*)$`, 'i');\n }\n\n const root = { children: [] };\n\n // Add types from shortest to longest so that parents\n // get added before children\n const keys = Object.keys(allTypes).sort((a, b) => a.length - b.length);\n\n // Set these for later\n const currentLocal = rootGetters['i18n/current']();\n const defaultLocal = rootGetters['i18n/default']();\n\n for ( const type of keys ) {\n const typeObj = allTypes[type];\n\n if ( typeObj.schema && getters.isIgnored(typeObj.schema) ) {\n // Skip ignored groups & types\n continue;\n }\n\n const namespaced = typeObj.namespaced;\n\n if ( (namespaceMode === NAMESPACED && !namespaced ) || (namespaceMode === CLUSTER_LEVEL && namespaced) ) {\n // Skip types that are not the right namespace mode\n continue;\n }\n\n const count = _matchingCounts(typeObj, namespaces);\n const groupForBasicType = getters.groupForBasicType(productId, typeObj.name);\n\n if ( typeObj.id === currentType ) {\n // If this is the type currently being shown, always show it\n } else if ( isBasic && !groupForBasicType ) {\n // If we want the basic tree only return basic types;\n continue;\n } else if ( mode === USED && count <= 0 ) {\n // If there's none of this type, ignore this entry when viewing only in-use types\n // Note: count is sometimes null, which is <= 0.\n continue;\n }\n\n const label = typeObj.labelKey ? rootGetters['i18n/t'](typeObj.labelKey) || typeObj.label : typeObj.label;\n const virtual = !!typeObj.virtual;\n let icon = typeObj.icon;\n\n if ( (!virtual || typeObj.isSpoofed ) && !icon ) {\n if ( namespaced ) {\n icon = 'folder';\n } else {\n icon = 'globe';\n }\n }\n\n const labelDisplay = highlightLabel(label, icon, typeObj.count, typeObj.schema);\n\n if ( !labelDisplay ) {\n // Search happens in highlight and returns null if not found\n continue;\n }\n\n let group;\n\n if ( isBasic ) {\n group = _ensureGroup(root, groupForBasicType, true);\n } else if ( mode === FAVORITE ) {\n group = _ensureGroup(root, 'starred');\n group.weight = 1000;\n } else if ( mode === USED ) {\n group = _ensureGroup(root, `inUse::${ getters.groupLabelFor(typeObj.schema) }`);\n } else {\n group = _ensureGroup(root, typeObj.schema || typeObj.group || ROOT);\n }\n\n let route = typeObj.route;\n\n // Make the default route if one isn't set\n if (!route ) {\n route = {\n name: 'c-cluster-product-resource',\n params: {\n product: productId,\n cluster: clusterId,\n resource: typeObj.name,\n }\n };\n\n typeObj.route = route;\n }\n\n // Cluster ID and Product should always be set\n if ( route && typeof route === 'object' ) {\n route.params = route.params || {};\n route.params.cluster = clusterId;\n route.params.product = productId;\n }\n\n group.children.push({\n label,\n labelDisplay,\n mode: typeObj.mode,\n count,\n exact: typeObj.exact || false,\n namespaced,\n route,\n name: typeObj.name,\n weight: typeObj.weight || getters.typeWeightFor(typeObj.schema?.id || label, isBasic),\n overview: !!typeObj.overview,\n });\n }\n\n // Recursively sort the groups\n _sortGroup(root, mode);\n\n return root.children;\n\n // ----------------------\n\n function _ensureGroup(tree, schemaOrName, forBasic = false) {\n let name = getters.groupLabelFor(schemaOrName);\n const isRoot = ( name === ROOT || name.startsWith(`${ ROOT }::`) );\n\n if ( name && name.includes('::') ) {\n let parent;\n\n [parent, name] = name.split('::', 2);\n tree = _ensureGroup(tree, parent);\n }\n\n // Translate if an entry exists\n let label = name;\n const key = `nav.group.\"${ name }\"`;\n\n if ( rootGetters['i18n/exists'](key) ) {\n label = rootGetters['i18n/t'](key);\n }\n\n let group = findBy(tree.children, 'name', name);\n\n if ( !group ) {\n group = {\n name,\n label,\n weight: getters.groupWeightFor(name, forBasic),\n defaultType: getters.groupDefaultTypeFor(name),\n };\n\n tree.children.push(group);\n }\n\n if ( isRoot ) {\n group.isRoot = true;\n }\n\n if ( !group.children ) {\n group.children = [];\n }\n\n return group;\n }\n\n function highlightLabel(original, icon, count, schema) {\n let label = escapeHtml(original);\n\n if ( searchRegex ) {\n let match = label.match(searchRegex);\n\n if (!match) {\n if ( currentLocal !== defaultLocal && schema ) {\n const defaultLabel = getters.labelFor(schema, count, defaultLocal);\n\n if (defaultLabel && defaultLabel !== label ) {\n label += ` (${ defaultLabel })`;\n match = label.match(searchRegex);\n }\n }\n }\n\n if ( match ) {\n label = `${ escapeHtml(match[1]) }${ escapeHtml(match[2]) }${ escapeHtml(match[3]) }`;\n } else {\n return null;\n }\n }\n\n if ( icon ) {\n label = `${ label }`;\n }\n\n return label;\n }\n };\n },\n\n isSpoofed(state, getters, rootState, rootGetters) {\n return (type, product) => {\n product = product || rootGetters['productId'];\n const productSpoofedTypes = state.spoofedTypes[product] || [];\n\n return productSpoofedTypes.some((st) => st.type === type);\n };\n },\n\n getSpoofedInstances(state, getters, rootState, rootGetters) {\n return async(type, product) => {\n product = product || rootGetters['productId'];\n const getInstances = instanceMethods[product]?.[type] || (() => []);\n const instances = await getInstances();\n\n instances.forEach((instance) => {\n const type = instance.type;\n const id = instance.id;\n const link = `/${ SPOOFED_PREFIX }/${ type }/${ id }`;\n const apiLink = `/${ SPOOFED_API_PREFIX }/${ type }/${ id }`;\n\n instance.links = {\n remove: instance.links?.remove || link,\n self: instance.links?.self || link,\n update: instance.links?.update || link,\n view: instance.links?.view || apiLink,\n };\n instance.isSpoofed = true;\n });\n\n return instances;\n };\n },\n\n getSpoofedInstance(state, getters, rootState, rootGetters) {\n return async(type, product, id) => {\n const productInstances = await getters.getSpoofedInstances(type, product);\n\n return productInstances.find( (instance) => instance.id === id);\n };\n },\n\n allSpoofedTypes(state, getters, rootState, rootGetters) {\n return Object.values(state.spoofedTypes).flat();\n },\n\n spoofedSchemas(state, getters, rootState, rootGetters) {\n return (product) => {\n const types = state.spoofedTypes[product] || [];\n\n return types.flatMap((type) => {\n const schemas = type.schemas || [];\n\n return schemas.map((schema) => ({\n ...schema,\n isSpoofed: true\n }));\n });\n };\n },\n\n allSpoofedSchemas(state, getters, rootState, rootGetters) {\n return getters.allSpoofedTypes.flatMap((type) => {\n const schemas = type.schemas || [];\n\n return schemas.map((schema) => ({\n ...schema,\n isSpoofed: true\n }));\n });\n },\n\n allTypes(state, getters, rootState, rootGetters) {\n return (product, mode = ALL) => {\n const module = findBy(state.products, 'name', product)?.inStore;\n const schemas = rootGetters[`${ module }/all`](SCHEMA);\n const counts = rootGetters[`${ module }/all`](COUNT)?.[0]?.counts || {};\n const isDev = rootGetters['prefs/get'](VIEW_IN_API);\n const isBasic = mode === BASIC;\n\n const out = {};\n\n for ( const schema of schemas ) {\n const attrs = schema.attributes || {};\n const count = counts[schema.id];\n const label = getters.labelFor(schema, count);\n const weight = getters.typeWeightFor(schema?.id || label, isBasic);\n const typeOptions = getters['optionsFor'](schema);\n\n if ( isBasic ) {\n // These are separate ifs so that things with no kind can still be basic\n if ( !getters.groupForBasicType(product, schema.id) ) {\n continue;\n }\n } else if ( mode === FAVORITE && !getters.isFavorite(schema.id) ) {\n continue;\n } else if ( !attrs.kind ) {\n // Skip the schemas that aren't top-level types\n continue;\n } else if ( typeof typeOptions.ifRancherCluster !== 'undefined' && typeOptions.ifRancherCluster !== rootGetters.isRancher ) {\n continue;\n } else if (typeOptions.localOnly && !rootGetters.currentCluster?.isLocal) {\n continue;\n }\n\n out[schema.id] = {\n label,\n mode,\n weight,\n schema,\n name: schema.id,\n namespaced: typeOptions.namespaced === null ? attrs.namespaced : typeOptions.namespaced,\n count: count ? count.summary.count || 0 : null,\n byNamespace: count ? count.namespaces : {},\n revision: count ? count.revision : null,\n route: typeOptions.customRoute\n };\n }\n\n // Add virtual and spoofed types\n if ( mode !== USED ) {\n const virtualTypes = state.virtualTypes[product] || [];\n const spoofedTypes = state.spoofedTypes[product] || [];\n const allTypes = [...virtualTypes, ...spoofedTypes];\n\n for ( const type of allTypes ) {\n const item = clone(type);\n const id = item.name;\n const weight = type.weight || getters.typeWeightFor(item.label, isBasic);\n\n // Is there a virtual/spoofed type override for schema type?\n // Currently used by harvester, this should be investigated and removed if possible\n if (out[id]) {\n delete out[id];\n }\n\n if ( item['public'] === false && !isDev ) {\n continue;\n }\n\n if (item.ifHave && !ifHave(rootGetters, item.ifHave)) {\n continue;\n }\n\n if ( item.ifHaveType ) {\n const targetedSchemas = typeof item.ifHaveType === 'string' ? schemas : rootGetters[`${ item.ifHaveType.store }/all`](SCHEMA);\n const type = typeof item.ifHaveType === 'string' ? item.ifHaveType : item.ifHaveType?.type;\n\n const haveIds = filterBy(targetedSchemas, 'id', normalizeType(type)).map((s) => s.id);\n\n if (!haveIds.length) {\n continue;\n }\n\n if (item.ifHaveVerb && !ifHaveVerb(rootGetters, module, item.ifHaveVerb, haveIds)) {\n continue;\n }\n }\n\n if ( item.ifHaveSubTypes ) {\n const hasSome = (item.ifHaveSubTypes || []).some((type) => {\n return !!findBy(schemas, 'id', normalizeType(type));\n });\n\n if (!hasSome) {\n continue;\n }\n }\n\n if ( typeof item.ifRancherCluster !== 'undefined' && item.ifRancherCluster !== rootGetters.isRancher ) {\n continue;\n }\n\n if ( isBasic && !getters.groupForBasicType(product, id) ) {\n continue;\n } else if ( mode === FAVORITE && !getters.isFavorite(id) ) {\n continue;\n }\n\n item.mode = mode;\n item.weight = weight;\n\n // Ensure labelKey is taken into account... with a mock count\n // This is harmless if the translation doesn't require count\n if (item.labelKey && rootGetters['i18n/exists'](item.labelKey)) {\n item.label = rootGetters['i18n/t'](item.labelKey, { count: 2 }).trim();\n delete item.labelKey; // Label should really take precedence over labelKey, but it doesn't, so remove it\n } else {\n item.label = item.label || item.name;\n }\n\n out[id] = item;\n }\n }\n\n return out;\n };\n },\n\n groupByFor(state) {\n return (schema) => {\n return state.groupBy[schema?.id];\n };\n },\n\n hideBulkActionsFor(state) {\n return (schema) => {\n return state.hideBulkActions[schema.id];\n };\n },\n\n headersFor(state, getters, rootState, rootGetters) {\n return (schema) => {\n const attributes = schema.attributes || {};\n const columns = attributes.columns || [];\n const typeOptions = getters['optionsFor'](schema);\n\n // A specific list has been provided\n if ( state.headers[schema.id] ) {\n return state.headers[schema.id].map((entry) => {\n if ( typeof entry === 'string' ) {\n const col = findBy(columns, 'name', entry);\n\n if ( col ) {\n return fromSchema(col, rootGetters);\n } else {\n return null;\n }\n } else {\n return entry;\n }\n }).filter((col) => !!col);\n }\n\n // Otherwise make one up from schema\n const out = typeOptions.showState ? [STATE] : [];\n const namespaced = attributes.namespaced || false;\n let hasName = false;\n\n for ( const col of columns ) {\n if ( col.format === 'name' ) {\n hasName = true;\n out.push(NAME);\n if ( namespaced ) {\n out.push(NAMESPACE_COL);\n }\n } else {\n out.push(fromSchema(col, rootGetters));\n }\n }\n\n if ( !hasName ) {\n insertAt(out, 1, NAME);\n if ( namespaced ) {\n insertAt(out, 2, NAMESPACE_COL);\n }\n }\n\n // Age always goes last\n if ( out.includes(AGE) ) {\n removeObject(out, AGE);\n if ( typeOptions.showAge ) {\n out.push(AGE);\n }\n }\n\n return out;\n\n function fromSchema(col, rootGetters) {\n let formatter, width, formatterOpts;\n\n if ( (col.format === '' || col.format === 'date') && col.name === 'Age' ) {\n return AGE;\n }\n\n if ( col.format === 'date' || col.type === 'date' ) {\n formatter = 'Date';\n width = 120;\n formatterOpts = { multiline: true };\n }\n\n if ( col.type === 'number' || col.type === 'int' ) {\n formatter = 'Number';\n }\n\n const colName = col.name.includes(' ') ? col.name.split(' ').map((word) => word.charAt(0).toUpperCase() + word.substring(1) ).join('') : col.name;\n\n const exists = rootGetters['i18n/exists'];\n const t = rootGetters['i18n/t'];\n const labelKey = `tableHeaders.${ colName.charAt(0).toLowerCase() + colName.slice(1) }`;\n const description = col.description || '';\n const tooltip = description && description[description.length - 1] === '.' ? description.slice(0, -1) : description;\n\n return {\n name: col.name.toLowerCase(),\n label: exists(labelKey) ? t(labelKey) : col.name,\n value: _rowValueGetter(col),\n sort: [col.field],\n formatter,\n formatterOpts,\n width,\n tooltip\n };\n }\n };\n },\n\n // ------------------------------------\n // Custom list/detail/edit/header component detection\n //\n // Note: you can't refactor these into one function that does `@/${kind}/${type}`,\n // because babel needs some hardcoded idea where to look for the dependency.\n //\n // Note 2: Yes these are editing state in a getter for caching... it's ok, probably.\n // ------------------------------------\n hasCustomList(state, getters, rootState) {\n return (rawType) => {\n const key = getters.componentFor(rawType);\n\n return hasCustom(state, rootState, 'list', key, (key) => resolveList(key));\n };\n },\n\n hasCustomChart(state, getters, rootState) {\n return (rawType) => {\n const key = getters.componentFor(rawType);\n\n return hasCustom(state, rootState, 'chart', key, (key) => resolveChart(key));\n };\n },\n\n hasCustomDetail(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'detail', key, (key) => resolveDetail(key));\n };\n },\n\n hasGraph(state, getters) {\n return (resource) => {\n const typeOptions = getters['optionsFor'](resource);\n\n if (typeOptions && typeOptions.hasGraph) {\n return graphConfigMap[resource];\n }\n\n return null;\n };\n },\n\n hasCustomEdit(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'edit', key, (key) => resolveEdit(key));\n };\n },\n\n hasComponent(state, getters, rootState) {\n return (path) => {\n return hasCustom(state, rootState, 'edit', path, (path) => resolveEdit(path));\n };\n },\n\n hasCustomPromptRemove(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'promptRemove', key, () => require.resolve(`@shell/promptRemove/${ key }`));\n };\n },\n\n hasCustomWindowComponent(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'windowComponents', key, (key) => resolveWindowComponent(key));\n };\n },\n\n hasCustomMachineConfigComponent(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'machine-config', key, (key) => resolveMachineConfigComponent(key));\n };\n },\n\n hasCustomCloudCredentialComponent(state, getters, rootState) {\n return (rawType, subType) => {\n const key = getters.componentFor(rawType, subType);\n\n return hasCustom(state, rootState, 'cloud-credential', key, (key) => resolveCloudCredentialComponent(key));\n };\n },\n\n importComponent(state, getters) {\n return (path) => {\n return importEdit(path);\n };\n },\n\n importDialog(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'dialog', getters.componentFor(rawType, subType), importDialog);\n };\n },\n\n importList(state, getters, rootState) {\n return (rawType) => {\n return loadExtension(rootState, 'list', getters.componentFor(rawType), importList);\n };\n },\n\n importChart(state, getters, rootState) {\n return (rawType) => {\n return loadExtension(rootState, 'chart', getters.componentFor(rawType), importChart);\n };\n },\n\n importDetail(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'detail', getters.componentFor(rawType, subType), importDetail);\n };\n },\n\n importEdit(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'edit', getters.componentFor(rawType, subType), importEdit);\n };\n },\n\n importCustomPromptRemove(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'promptRemove', getters.componentFor(rawType, subType), importCustomPromptRemove);\n };\n },\n\n importWindowComponent(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'windowComponents', getters.componentFor(rawType, subType), importWindowComponent);\n };\n },\n\n importLogin(state, getters, rootState) {\n return (authType) => {\n return loadExtension(rootState, 'login', authType, importLogin);\n };\n },\n\n importMachineConfig(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'machine-config', getters.componentFor(rawType, subType), importMachineConfig);\n };\n },\n\n importCloudCredential(state, getters, rootState) {\n return (rawType, subType) => {\n return loadExtension(rootState, 'cloud-credential', getters.componentFor(rawType, subType), importCloudCredential);\n };\n },\n\n componentFor(state, getters) {\n return (type, subType) => {\n let key = type;\n\n if ( subType ) {\n key = `${ type }/${ subType }`;\n }\n\n if ( state.cache.componentFor[key] !== undefined ) {\n return state.cache.componentFor[key];\n }\n\n let out = type;\n\n const mapping = state.typeToComponentMappings.find((mapping) => {\n const re = stringToRegex(mapping.match);\n\n return re.test(key);\n });\n\n if ( mapping ) {\n out = mapping.replace;\n } else if ( subType ) {\n // Try again without the subType\n out = getters.componentFor(type);\n }\n\n state.cache.componentFor[key] = out;\n\n return out;\n };\n },\n\n isIgnored(state, getters, rootState, rootGetters) {\n return (schema) => {\n let out = false;\n\n for ( const rule of state.groupIgnore ) {\n const group = schema?.attributes?.group;\n\n if (group && group.match(stringToRegex(rule.type) && isObject(rule) && rule.type)) {\n out = rule.cb(rootGetters);\n break;\n }\n\n if ( group && typeof rule === 'string' && group.match(stringToRegex(rule)) ) {\n out = true;\n break;\n }\n }\n\n if ( !out ) {\n for ( const rule of state.typeIgnore ) {\n if ( schema.id.match(stringToRegex(rule)) ) {\n out = true;\n break;\n }\n }\n }\n\n state.cache.ignore[schema.id] = out;\n\n return out;\n };\n },\n\n activeProducts(state, getters, rootState, rootGetters) {\n const knownTypes = {};\n const knownGroups = {};\n const isDev = rootGetters['prefs/get'](VIEW_IN_API);\n\n if ( state.schemaGeneration < 0 ) {\n // This does nothing, but makes activeProducts depend on schemaGeneration\n // so that it can be used to update the product list on schema change.\n return;\n }\n\n return state.products.filter((p) => {\n const module = p.inStore;\n\n if ( p['public'] === false && !isDev ) {\n return false;\n }\n\n if ( p.ifGetter && !rootGetters[p.ifGetter] ) {\n return false;\n }\n\n if ( !knownTypes[module] ) {\n const schemas = rootGetters[`${ module }/all`](SCHEMA);\n\n knownTypes[module] = [];\n knownGroups[module] = [];\n\n for ( const s of schemas ) {\n knownTypes[module].push(s._id);\n\n if ( s._group ) {\n addObject(knownGroups[module], s._group);\n }\n }\n }\n\n if ( p.ifFeature) {\n const features = Array.isArray(p.ifFeature) ? p.ifFeature : [p.ifFeature];\n\n for (const f of features) {\n if (!rootGetters['features/get'](f)) {\n return false;\n }\n }\n }\n\n if ( p.ifHave && !ifHave(rootGetters, p.ifHave)) {\n return false;\n }\n\n if ( p.ifHaveType ) {\n const haveIds = knownTypes[module].filter((t) => t.match(stringToRegex(p.ifHaveType)) );\n\n if ( !haveIds.length ) {\n return false;\n }\n\n if ( p.ifHaveVerb && !ifHaveVerb(rootGetters, module, p.ifHaveVerb, haveIds)) {\n return false;\n }\n }\n\n if ( p.ifHaveGroup && !knownGroups[module].find((t) => t.match(stringToRegex(p.ifHaveGroup)) ) ) {\n return false;\n }\n\n return true;\n });\n },\n\n isProductActive(state, getters) {\n return (name) => {\n if ( findBy(getters['activeProducts'], 'name', name) ) {\n return true;\n }\n\n return false;\n };\n },\n\n rowValueGetter(state) {\n return (schema, colName) => {\n const col = _findColumnByName(schema, colName);\n\n return _rowValueGetter(col);\n };\n },\n};\n\nexport const mutations = {\n schemaChanged(state) {\n state.schemaGeneration = state.schemaGeneration + 1;\n },\n\n // Remove the specified product\n remove(state, { product, plugin }) {\n const existing = state.products.findIndex((p) => p.name === product);\n\n // Remove the product\n if (existing !== -1) {\n state.products.splice(existing, 1);\n }\n\n // Go through the basic types and remove the headers\n if (state.virtualTypes[product]) {\n delete state.virtualTypes[product];\n }\n\n if (state.basicTypes[product]) {\n // Remove table header configuration\n Object.keys(state.basicTypes[product]).forEach((type) => {\n delete state.headers[type];\n delete state.basicTypeWeights[type];\n delete state.cache.ignore[type];\n // These track whether the type has a custom component\n delete state.cache.detail[type];\n delete state.cache.edit[type];\n delete state.cache.list[type];\n\n // Delete all of the entries from the componentFor cache where the valye is the type\n // Can do this more efficiently\n Object.keys(state.cache.componentFor).forEach((k) => {\n const v = state.cache.componentFor[k];\n\n if (v === type) {\n delete state.cache.componentFor[k];\n }\n });\n });\n\n delete state.basicTypes[product];\n }\n\n if (plugin) {\n // kind is list, edit, detail etc\n Object.keys(plugin.types).forEach((kind) => {\n if (state.cache[kind]) {\n Object.keys(plugin.types[kind]).forEach((type) => {\n delete state.cache[kind][type];\n });\n }\n });\n }\n },\n\n product(state, obj) {\n const existing = findBy(state.products, 'name', obj.name);\n\n if ( existing ) {\n Object.assign(existing, obj);\n } else {\n addObject(state.products, obj);\n }\n },\n\n virtualType(state, { product, obj }) {\n if ( !state.virtualTypes[product] ) {\n state.virtualTypes[product] = [];\n }\n\n const copy = clone(obj);\n\n copy.virtual = true;\n\n const existing = findBy(state.virtualTypes[product], 'name', copy.name);\n\n if ( existing ) {\n Object.assign(existing, copy);\n } else {\n addObject(state.virtualTypes[product], copy);\n }\n },\n\n spoofedType(state, { product, obj }) {\n if ( !state.spoofedTypes[product] ) {\n state.spoofedTypes[product] = [];\n }\n\n const copy = clone(obj);\n\n instanceMethods[product] = instanceMethods[product] || {};\n instanceMethods[product][copy.type] = copy.getInstances;\n delete copy.getInstances;\n\n copy.name = copy.type;\n copy.isSpoofed = true;\n copy.virtual = true;\n copy.schemas.forEach((schema) => {\n schema.links = {\n collection: `/${ SPOOFED_PREFIX }/${ schema.id }`,\n ...(schema.links || {})\n };\n });\n\n const existing = findBy(state.spoofedTypes[product], 'type', copy.type);\n\n if ( existing ) {\n Object.assign(existing, copy);\n } else {\n addObject(state.spoofedTypes[product], copy);\n }\n },\n\n basicType(state, { product, group, types }) {\n if ( !product ) {\n product = EXPLORER;\n }\n\n if ( !group ) {\n group = ROOT;\n }\n\n if ( !isArray(types) ) {\n types = [types];\n }\n\n if ( !state.basicTypes[product] ) {\n state.basicTypes[product] = {};\n }\n\n for ( const t of types ) {\n state.basicTypes[product][t] = group;\n }\n },\n\n ignoreGroup(state, { regexOrString: match, cb }) {\n match = ensureRegex(match);\n // State shouldn't contain actual RegExp objects, because they don't serialize\n cb ? state.groupIgnore.push({\n type: regexToString(match),\n cb\n }) : state.groupIgnore.push(regexToString(match));\n },\n\n ignoreType(state, match) {\n match = ensureRegex(match);\n state.typeIgnore.push(regexToString(match));\n },\n\n groupBy(state, { type, field }) {\n state.groupBy[type] = field;\n },\n\n headers(state, { type, headers }) {\n state.headers[type] = headers;\n },\n\n hideBulkActions(state, { type, field }) {\n state.hideBulkActions[type] = field;\n },\n\n // weightGroup({group: 'core', weight: 99}); -- higher groups are shown first\n // These operate on group names *after* mapping but *before* translation\n weightGroup(state, {\n group, groups, weight, forBasic\n }) {\n if ( !groups ) {\n groups = [];\n }\n\n if ( group ) {\n groups.push(group);\n }\n\n const map = forBasic ? state.basicGroupWeights : state.groupWeights;\n\n for ( const g of groups ) {\n map[g.toLowerCase()] = weight;\n }\n },\n\n // setGroupDefaultType({group: 'core', defaultType: 'name'});\n // By default when a group is clicked, the first item is selected - this allows\n // this behaviour to be changed and a named child type can be chosen\n // These operate on group names *after* mapping but *before* translation\n setGroupDefaultType(state, { group, groups, defaultType }) {\n if ( !groups ) {\n groups = [];\n }\n\n if ( group ) {\n groups.push(group);\n }\n\n for ( const g of groups ) {\n state.groupDefaultTypes[g.toLowerCase()] = defaultType;\n }\n },\n\n // weightType('Cluster' 99); -- higher groups are shown first\n // These operate on *schema* type names, before mapping\n weightType(state, {\n type, types, weight, forBasic\n }) {\n if ( !types ) {\n types = [];\n }\n\n if ( type ) {\n types.push(type);\n }\n\n const map = forBasic ? state.basicTypeWeights : state.typeWeights;\n\n for ( const t of types ) {\n map[t.toLowerCase()] = weight;\n }\n },\n\n // mapGroup('ugly.thing', 'Nice Thing', 1);\n // mapGroup(/ugly.thing.(stuff)', '$1', 2);\n // mapGroup(/ugly.thing.(stuff)', function(groupStr, ruleObj, regexMatch, typeObj) { return ucFirst(group.id) } , 2);\n mapGroup(state, {\n match, replace, weight = 5, continueOnMatch = false\n }) {\n _addMapping(state.groupMappings, match, replace, weight, continueOnMatch);\n },\n\n mapType(state, {\n match, replace, weight = 5, continueOnMatch = false\n }) {\n _addMapping(state.typeMappings, match, replace, weight, continueOnMatch);\n },\n\n // moveType('apps.deployment', 'Core');\n moveType(state, { match, group, weight = 5 }) {\n _addMapping(state.typeMoveMappings, match, group, weight);\n },\n\n componentForType(state, { match, replace }) {\n match = ensureRegex(match);\n match = regexToString(match);\n state.typeToComponentMappings.push({ match, replace });\n },\n\n configureType(state, options) {\n const match = regexToString(ensureRegex(options.match));\n\n const idx = state.typeOptions.findIndex((obj) => obj.match === match);\n let obj = { ...options, match };\n\n if ( idx >= 0 ) {\n obj = Object.assign(state.typeOptions[idx], obj);\n state.typeOptions.splice(idx, 1, obj);\n } else {\n const obj = Object.assign({}, options, { match });\n\n state.typeOptions.push(obj);\n }\n },\n\n};\n\nexport const actions = {\n removeProduct({ commit }, metadata) {\n commit('remove', metadata);\n },\n\n addFavorite({ dispatch, rootGetters }, type) {\n const types = rootGetters['prefs/get'](FAVORITE_TYPES) || [];\n\n addObject(types, type);\n\n dispatch('prefs/set', { key: FAVORITE_TYPES, value: types }, { root: true });\n },\n\n removeFavorite({ dispatch, rootGetters }, type) {\n const types = rootGetters['prefs/get'](FAVORITE_TYPES) || [];\n\n removeObject(types, type);\n\n dispatch('prefs/set', { key: FAVORITE_TYPES, value: types }, { root: true });\n },\n\n toggleGroup({ dispatch, rootGetters }, { group, expanded }) {\n const groups = rootGetters['prefs/get'](EXPANDED_GROUPS);\n\n if ( expanded ) {\n addObject(groups, group);\n } else {\n removeObject(groups, group);\n }\n\n dispatch('prefs/set', { key: EXPANDED_GROUPS, value: groups }, { root: true });\n },\n\n configureType({ commit }, options) {\n commit('configureType', options);\n }\n};\n\nfunction _sortGroup(tree, mode) {\n const by = ['weight:desc', 'namespaced', 'label'];\n\n tree.children = sortBy(tree.children, by);\n\n for (const entry of tree.children ) {\n if ( entry.children ) {\n _sortGroup(entry, mode);\n }\n }\n}\n\nfunction _matchingCounts(typeObj, namespaces) {\n // That was easy\n if ( !typeObj.namespaced || !typeObj.byNamespace || namespaces === null || typeObj.count === null) {\n return typeObj.count;\n }\n\n let out = 0;\n\n // Otherwise start with 0 and count up\n for ( const namespace of namespaces ) {\n out += typeObj.byNamespace[namespace]?.count || 0;\n }\n\n return out;\n}\n\nfunction _applyMapping(objOrValue, mappings, keyField, cache, defaultFn) {\n let key = objOrValue;\n let found = false;\n\n if ( keyField ) {\n if ( typeof objOrValue !== 'object' ) {\n return objOrValue;\n }\n\n key = get(objOrValue, keyField);\n\n if ( typeof key !== 'string' ) {\n return null;\n }\n }\n\n if ( key && cache && cache[key] ) {\n return cache[key];\n }\n\n let out = `${ key }`;\n\n for ( const rule of mappings ) {\n const re = stringToRegex(rule.match);\n const captured = out.match(re);\n\n if ( captured && rule.replace ) {\n out = out.replace(re, rule.replace);\n\n found = true;\n if ( !rule.continueOnMatch ) {\n break;\n }\n }\n }\n\n if ( !found && defaultFn ) {\n out = defaultFn(out, objOrValue);\n }\n\n if ( cache ) {\n cache[key] = out;\n }\n\n return out;\n}\n\nfunction _addMapping(mappings, match, replace, weight, continueOnMatch) {\n match = regexToString(ensureRegex(match));\n\n mappings.push({\n match,\n replace,\n weight,\n continueOnMatch,\n insertIndex: mappings.length,\n });\n\n // Re-sort the list by weight (highest first) and insert time (oldest first)\n mappings.sort((a, b) => {\n const pri = b.weight - a.weight;\n\n if ( pri ) {\n return pri;\n }\n\n return a.insertIndex - b.insertIndex;\n });\n}\n\n// Regexes can't be represented in state because they don't serialize to JSON..\nconst regexCache = {};\n\nfunction regexToString(regex) {\n return regex.source;\n}\n\nfunction stringToRegex(str) {\n let out = regexCache[str];\n\n if ( !out ) {\n out = new RegExp(str);\n regexCache[str] = out;\n }\n\n return out;\n}\n\nfunction ifHave(getters, option) {\n switch (option) {\n case IF_HAVE.V2_MONITORING: {\n return haveV2Monitoring(getters);\n }\n case IF_HAVE.V1_MONITORING: {\n return haveV1Monitoring(getters);\n }\n case IF_HAVE.PROJECT: {\n return !!project(getters);\n }\n case IF_HAVE.NO_PROJECT: {\n return !project(getters);\n }\n case IF_HAVE.NOT_V1_ISTIO: {\n return !isV1Istio(getters);\n }\n case IF_HAVE.MULTI_CLUSTER: {\n return getters.isMultiCluster;\n }\n case IF_HAVE.NEUVECTOR_NAMESPACE: {\n return getters[`cluster/all`](NAMESPACE).find((n) => n.metadata.name === NEU_VECTOR_NAMESPACE);\n }\n case IF_HAVE.ADMIN: {\n return isAdminUser(getters);\n }\n case IF_HAVE.MCM_DISABLED: {\n return !getters['isRancherInHarvester'];\n }\n case IF_HAVE.NOT_STANDALONE_HARVESTER: {\n return !getters['isStandaloneHarvester'];\n }\n default:\n return false;\n }\n}\n\n// Could list a larger set of resources that typically only an admin user would have\nexport function isAdminUser(getters) {\n const canEditSettings = (getters['management/schemaFor'](MANAGEMENT.SETTING)?.resourceMethods || []).includes('PUT');\n const canEditFeatureFlags = (getters['management/schemaFor'](MANAGEMENT.FEATURE)?.resourceMethods || []).includes('PUT');\n const canInstallApps = (getters['management/schemaFor'](CATALOG.APP)?.resourceMethods || []).includes('PUT');\n const canAddRepos = (getters['management/schemaFor'](CATALOG.CLUSTER_REPO)?.resourceMethods || []).includes('PUT');\n const canPutHelmOperations = (getters['management/schemaFor'](CATALOG.OPERATION)?.resourceMethods || []).includes('PUT');\n\n return canEditSettings && canEditFeatureFlags && canInstallApps && canAddRepos && canPutHelmOperations;\n}\n\nfunction _findColumnByName(schema, colName) {\n const attributes = schema.attributes || {};\n const columns = attributes.columns || [];\n\n return findBy(columns, 'name', colName);\n}\n\nfunction _rowValueGetter(col) {\n // 'field' comes from the schema - typically it is of the form $.metadata.field[N]\n // We will use JsonPath to look up this value, which is costly - so if we can detect this format\n // Use a more efficient function to get the value\n const value = col.field.startsWith('.') ? `$${ col.field }` : col.field;\n\n if (process.client) {\n const found = value.match(FIELD_REGEX);\n\n if (found && found.length === 2) {\n const fieldIndex = parseInt(found[1], 10);\n\n return (row) => row.metadata?.fields?.[fieldIndex];\n }\n }\n\n return value;\n}\n\n// Is V1 Istio installed?\nfunction isV1Istio(getters) {\n const cluster = getters['currentCluster'];\n\n return !!cluster?.status?.istioEnabled;\n}\n\nfunction ifHaveVerb(rootGetters, module, verb, haveIds) {\n for ( const haveId of haveIds ) {\n const schema = rootGetters[`${ module }/schemaFor`](haveId);\n const want = verb.toLowerCase();\n const collectionMethods = schema.collectionMethods || [];\n const resourceMethods = schema.resourceMethods || [];\n const have = [...collectionMethods, ...resourceMethods].map((x) => x.toLowerCase());\n\n if ( !have.includes(want) && !have.includes(`blocked-${ want }`) ) {\n return false;\n }\n }\n\n return true;\n}\n\n// Look at the namespace filters to determine if a project is selected\nexport function project(getters) {\n const clusterId = getters['currentCluster']?.id;\n\n if ( !clusterId ) {\n return null;\n }\n\n const filters = getters['namespaceFilters'];\n const namespaces = [];\n let projectName = null;\n\n for (const filter of filters) {\n const [type, id] = filter.split('://', 2);\n\n if (type === 'project') {\n if (projectName !== null) {\n // More than one project selected\n return null;\n }\n projectName = id;\n } else if (type === 'ns') {\n namespaces.push(id);\n } else {\n // Something other than project or namespace\n return null;\n }\n }\n\n // No project found?\n if (!projectName) {\n return null;\n }\n\n // We have one project and a set of namespaces\n // Check that all of the namespaces belong to the project\n const project = getters['management/byId'](MANAGEMENT.PROJECT, `${ clusterId }/${ projectName }`);\n\n // No additional namespaces means just the project is selected\n if (namespaces.length === 0) {\n return project;\n }\n\n // Convert the project namespaces into a map so we can check existence easily\n const prjNamespaceMap = project.namespaces.reduce((m, ns) => {\n m[ns.metadata.name] = true;\n\n return m;\n }, {});\n\n // All of the namespace filters must belong to the project\n const found = namespaces.reduce((total, ns) => {\n return prjNamespaceMap[ns] ? total + 1 : 0;\n }, 0);\n\n if (found !== namespaces.length) {\n return null;\n }\n\n return project;\n}\n\nfunction hasCustom(state, rootState, kind, key, fallback) {\n const cache = state.cache[kind];\n\n if ( cache[key] !== undefined ) {\n return cache[key];\n }\n\n // Check to see if the custom kind is provided by a plugin\n if (!!rootState.$plugin.getDynamic(kind, key)) {\n cache[key] = true;\n\n return cache[key];\n }\n\n // Fallback\n try {\n fallback(key);\n cache[key] = true;\n } catch (e) {\n cache[key] = false;\n }\n\n return cache[key];\n}\n\nfunction loadExtension(rootState, kind, key, fallback) {\n const ext = rootState.$plugin.getDynamic(kind, key);\n\n if (ext) {\n if (typeof ext === 'function') {\n return ext;\n }\n\n return () => ext;\n }\n\n return fallback(key);\n}\n","/*!\r\n * @name JavaScript/NodeJS Merge v1.2.1\r\n * @author yeikos\r\n * @repository https://github.com/yeikos/js.merge\r\n\r\n * Copyright 2014 yeikos - MIT license\r\n * https://raw.github.com/yeikos/js.merge/master/LICENSE\r\n */\r\n\r\n;(function(isNode) {\r\n\r\n\t/**\r\n\t * Merge one or more objects \r\n\t * @param bool? clone\r\n\t * @param mixed,... arguments\r\n\t * @return object\r\n\t */\r\n\r\n\tvar Public = function(clone) {\r\n\r\n\t\treturn merge(clone === true, false, arguments);\r\n\r\n\t}, publicName = 'merge';\r\n\r\n\t/**\r\n\t * Merge two or more objects recursively \r\n\t * @param bool? clone\r\n\t * @param mixed,... arguments\r\n\t * @return object\r\n\t */\r\n\r\n\tPublic.recursive = function(clone) {\r\n\r\n\t\treturn merge(clone === true, true, arguments);\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Clone the input removing any reference\r\n\t * @param mixed input\r\n\t * @return mixed\r\n\t */\r\n\r\n\tPublic.clone = function(input) {\r\n\r\n\t\tvar output = input,\r\n\t\t\ttype = typeOf(input),\r\n\t\t\tindex, size;\r\n\r\n\t\tif (type === 'array') {\r\n\r\n\t\t\toutput = [];\r\n\t\t\tsize = input.length;\r\n\r\n\t\t\tfor (index=0;index} resolves with the result of the evaluation.\n */\n eval(context = {}) {\n return this._eval(context, Promise)\n }\n\n /**\n * Synchronously evaluates the expression within an optional context.\n * @param {Object} [context] A mapping of variables to values, which will be\n * made accessible to the Jexl expression when evaluating it\n * @returns {*} the result of the evaluation.\n * @throws {*} on error\n */\n evalSync(context = {}) {\n const res = this._eval(context, PromiseSync)\n if (res.error) throw res.error\n return res.value\n }\n\n _eval(context, promise) {\n return promise.resolve().then(() => {\n const ast = this._getAst()\n const evaluator = new Evaluator(\n this._lang.grammar,\n this._lang.transforms,\n context,\n undefined,\n promise\n )\n return evaluator.eval(ast)\n })\n }\n\n _getAst() {\n if (!this._ast) this.compile()\n return this._ast\n }\n}\n\nmodule.exports = Expression\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./FileDiff.vue?vue&type=style&index=1&id=be221288&prod&lang=scss&\"","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseUniq = require('./_baseUniq');\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nmodule.exports = baseXor;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function (Hogan) {\n // Setup regex assignments\n // remove whitespace according to Mustache spec\n var rIsWhitespace = /\\S/,\n rQuot = /\\\"/g,\n rNewline = /\\n/g,\n rCr = /\\r/g,\n rSlash = /\\\\/g,\n rLineSep = /\\u2028/,\n rParagraphSep = /\\u2029/;\n\n Hogan.tags = {\n '#': 1, '^': 2, '<': 3, '$': 4,\n '/': 5, '!': 6, '>': 7, '=': 8, '_v': 9,\n '{': 10, '&': 11, '_t': 12\n };\n\n Hogan.scan = function scan(text, delimiters) {\n var len = text.length,\n IN_TEXT = 0,\n IN_TAG_TYPE = 1,\n IN_TAG = 2,\n state = IN_TEXT,\n tagType = null,\n tag = null,\n buf = '',\n tokens = [],\n seenTag = false,\n i = 0,\n lineStart = 0,\n otag = '{{',\n ctag = '}}';\n\n function addBuf() {\n if (buf.length > 0) {\n tokens.push({tag: '_t', text: new String(buf)});\n buf = '';\n }\n }\n\n function lineIsWhitespace() {\n var isAllWhitespace = true;\n for (var j = lineStart; j < tokens.length; j++) {\n isAllWhitespace =\n (Hogan.tags[tokens[j].tag] < Hogan.tags['_v']) ||\n (tokens[j].tag == '_t' && tokens[j].text.match(rIsWhitespace) === null);\n if (!isAllWhitespace) {\n return false;\n }\n }\n\n return isAllWhitespace;\n }\n\n function filterLine(haveSeenTag, noNewLine) {\n addBuf();\n\n if (haveSeenTag && lineIsWhitespace()) {\n for (var j = lineStart, next; j < tokens.length; j++) {\n if (tokens[j].text) {\n if ((next = tokens[j+1]) && next.tag == '>') {\n // set indent to token value\n next.indent = tokens[j].text.toString()\n }\n tokens.splice(j, 1);\n }\n }\n } else if (!noNewLine) {\n tokens.push({tag:'\\n'});\n }\n\n seenTag = false;\n lineStart = tokens.length;\n }\n\n function changeDelimiters(text, index) {\n var close = '=' + ctag,\n closeIndex = text.indexOf(close, index),\n delimiters = trim(\n text.substring(text.indexOf('=', index) + 1, closeIndex)\n ).split(' ');\n\n otag = delimiters[0];\n ctag = delimiters[delimiters.length - 1];\n\n return closeIndex + close.length - 1;\n }\n\n if (delimiters) {\n delimiters = delimiters.split(' ');\n otag = delimiters[0];\n ctag = delimiters[1];\n }\n\n for (i = 0; i < len; i++) {\n if (state == IN_TEXT) {\n if (tagChange(otag, text, i)) {\n --i;\n addBuf();\n state = IN_TAG_TYPE;\n } else {\n if (text.charAt(i) == '\\n') {\n filterLine(seenTag);\n } else {\n buf += text.charAt(i);\n }\n }\n } else if (state == IN_TAG_TYPE) {\n i += otag.length - 1;\n tag = Hogan.tags[text.charAt(i + 1)];\n tagType = tag ? text.charAt(i + 1) : '_v';\n if (tagType == '=') {\n i = changeDelimiters(text, i);\n state = IN_TEXT;\n } else {\n if (tag) {\n i++;\n }\n state = IN_TAG;\n }\n seenTag = i;\n } else {\n if (tagChange(ctag, text, i)) {\n tokens.push({tag: tagType, n: trim(buf), otag: otag, ctag: ctag,\n i: (tagType == '/') ? seenTag - otag.length : i + ctag.length});\n buf = '';\n i += ctag.length - 1;\n state = IN_TEXT;\n if (tagType == '{') {\n if (ctag == '}}') {\n i++;\n } else {\n cleanTripleStache(tokens[tokens.length - 1]);\n }\n }\n } else {\n buf += text.charAt(i);\n }\n }\n }\n\n filterLine(seenTag, true);\n\n return tokens;\n }\n\n function cleanTripleStache(token) {\n if (token.n.substr(token.n.length - 1) === '}') {\n token.n = token.n.substring(0, token.n.length - 1);\n }\n }\n\n function trim(s) {\n if (s.trim) {\n return s.trim();\n }\n\n return s.replace(/^\\s*|\\s*$/g, '');\n }\n\n function tagChange(tag, text, index) {\n if (text.charAt(index) != tag.charAt(0)) {\n return false;\n }\n\n for (var i = 1, l = tag.length; i < l; i++) {\n if (text.charAt(index + i) != tag.charAt(i)) {\n return false;\n }\n }\n\n return true;\n }\n\n // the tags allowed inside super templates\n var allowedInSuper = {'_t': true, '\\n': true, '$': true, '/': true};\n\n function buildTree(tokens, kind, stack, customTags) {\n var instructions = [],\n opener = null,\n tail = null,\n token = null;\n\n tail = stack[stack.length - 1];\n\n while (tokens.length > 0) {\n token = tokens.shift();\n\n if (tail && tail.tag == '<' && !(token.tag in allowedInSuper)) {\n throw new Error('Illegal content in < super tag.');\n }\n\n if (Hogan.tags[token.tag] <= Hogan.tags['$'] || isOpener(token, customTags)) {\n stack.push(token);\n token.nodes = buildTree(tokens, token.tag, stack, customTags);\n } else if (token.tag == '/') {\n if (stack.length === 0) {\n throw new Error('Closing tag without opener: /' + token.n);\n }\n opener = stack.pop();\n if (token.n != opener.n && !isCloser(token.n, opener.n, customTags)) {\n throw new Error('Nesting error: ' + opener.n + ' vs. ' + token.n);\n }\n opener.end = token.i;\n return instructions;\n } else if (token.tag == '\\n') {\n token.last = (tokens.length == 0) || (tokens[0].tag == '\\n');\n }\n\n instructions.push(token);\n }\n\n if (stack.length > 0) {\n throw new Error('missing closing tag: ' + stack.pop().n);\n }\n\n return instructions;\n }\n\n function isOpener(token, tags) {\n for (var i = 0, l = tags.length; i < l; i++) {\n if (tags[i].o == token.n) {\n token.tag = '#';\n return true;\n }\n }\n }\n\n function isCloser(close, open, tags) {\n for (var i = 0, l = tags.length; i < l; i++) {\n if (tags[i].c == close && tags[i].o == open) {\n return true;\n }\n }\n }\n\n function stringifySubstitutions(obj) {\n var items = [];\n for (var key in obj) {\n items.push('\"' + esc(key) + '\": function(c,p,t,i) {' + obj[key] + '}');\n }\n return \"{ \" + items.join(\",\") + \" }\";\n }\n\n function stringifyPartials(codeObj) {\n var partials = [];\n for (var key in codeObj.partials) {\n partials.push('\"' + esc(key) + '\":{name:\"' + esc(codeObj.partials[key].name) + '\", ' + stringifyPartials(codeObj.partials[key]) + \"}\");\n }\n return \"partials: {\" + partials.join(\",\") + \"}, subs: \" + stringifySubstitutions(codeObj.subs);\n }\n\n Hogan.stringify = function(codeObj, text, options) {\n return \"{code: function (c,p,i) { \" + Hogan.wrapMain(codeObj.code) + \" },\" + stringifyPartials(codeObj) + \"}\";\n }\n\n var serialNo = 0;\n Hogan.generate = function(tree, text, options) {\n serialNo = 0;\n var context = { code: '', subs: {}, partials: {} };\n Hogan.walk(tree, context);\n\n if (options.asString) {\n return this.stringify(context, text, options);\n }\n\n return this.makeTemplate(context, text, options);\n }\n\n Hogan.wrapMain = function(code) {\n return 'var t=this;t.b(i=i||\"\");' + code + 'return t.fl();';\n }\n\n Hogan.template = Hogan.Template;\n\n Hogan.makeTemplate = function(codeObj, text, options) {\n var template = this.makePartials(codeObj);\n template.code = new Function('c', 'p', 'i', this.wrapMain(codeObj.code));\n return new this.template(template, text, this, options);\n }\n\n Hogan.makePartials = function(codeObj) {\n var key, template = {subs: {}, partials: codeObj.partials, name: codeObj.name};\n for (key in template.partials) {\n template.partials[key] = this.makePartials(template.partials[key]);\n }\n for (key in codeObj.subs) {\n template.subs[key] = new Function('c', 'p', 't', 'i', codeObj.subs[key]);\n }\n return template;\n }\n\n function esc(s) {\n return s.replace(rSlash, '\\\\\\\\')\n .replace(rQuot, '\\\\\\\"')\n .replace(rNewline, '\\\\n')\n .replace(rCr, '\\\\r')\n .replace(rLineSep, '\\\\u2028')\n .replace(rParagraphSep, '\\\\u2029');\n }\n\n function chooseMethod(s) {\n return (~s.indexOf('.')) ? 'd' : 'f';\n }\n\n function createPartial(node, context) {\n var prefix = \"<\" + (context.prefix || \"\");\n var sym = prefix + node.n + serialNo++;\n context.partials[sym] = {name: node.n, partials: {}};\n context.code += 't.b(t.rp(\"' + esc(sym) + '\",c,p,\"' + (node.indent || '') + '\"));';\n return sym;\n }\n\n Hogan.codegen = {\n '#': function(node, context) {\n context.code += 'if(t.s(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,1),' +\n 'c,p,0,' + node.i + ',' + node.end + ',\"' + node.otag + \" \" + node.ctag + '\")){' +\n 't.rs(c,p,' + 'function(c,p,t){';\n Hogan.walk(node.nodes, context);\n context.code += '});c.pop();}';\n },\n\n '^': function(node, context) {\n context.code += 'if(!t.s(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,1),c,p,1,0,0,\"\")){';\n Hogan.walk(node.nodes, context);\n context.code += '};';\n },\n\n '>': createPartial,\n '<': function(node, context) {\n var ctx = {partials: {}, code: '', subs: {}, inPartial: true};\n Hogan.walk(node.nodes, ctx);\n var template = context.partials[createPartial(node, context)];\n template.subs = ctx.subs;\n template.partials = ctx.partials;\n },\n\n '$': function(node, context) {\n var ctx = {subs: {}, code: '', partials: context.partials, prefix: node.n};\n Hogan.walk(node.nodes, ctx);\n context.subs[node.n] = ctx.code;\n if (!context.inPartial) {\n context.code += 't.sub(\"' + esc(node.n) + '\",c,p,i);';\n }\n },\n\n '\\n': function(node, context) {\n context.code += write('\"\\\\n\"' + (node.last ? '' : ' + i'));\n },\n\n '_v': function(node, context) {\n context.code += 't.b(t.v(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,0)));';\n },\n\n '_t': function(node, context) {\n context.code += write('\"' + esc(node.text) + '\"');\n },\n\n '{': tripleStache,\n\n '&': tripleStache\n }\n\n function tripleStache(node, context) {\n context.code += 't.b(t.t(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,0)));';\n }\n\n function write(s) {\n return 't.b(' + s + ');';\n }\n\n Hogan.walk = function(nodelist, context) {\n var func;\n for (var i = 0, l = nodelist.length; i < l; i++) {\n func = Hogan.codegen[nodelist[i].tag];\n func && func(nodelist[i], context);\n }\n return context;\n }\n\n Hogan.parse = function(tokens, text, options) {\n options = options || {};\n return buildTree(tokens, '', [], options.sectionTags || []);\n }\n\n Hogan.cache = {};\n\n Hogan.cacheKey = function(text, options) {\n return [text, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join('||');\n }\n\n Hogan.compile = function(text, options) {\n options = options || {};\n var key = Hogan.cacheKey(text, options);\n var template = this.cache[key];\n\n if (template) {\n var partials = template.partials;\n for (var name in partials) {\n delete partials[name].instance;\n }\n return template;\n }\n\n template = this.generate(this.parse(this.scan(text, options.delimiters), text, options), text, options);\n return this.cache[key] = template;\n }\n})(typeof exports !== 'undefined' ? exports : Hogan);\n","export { default as TextAreaAutoGrow } from './TextAreaAutoGrow.vue';\n","import Popper from 'popper.js';\nimport { ResizeObserver } from 'vue-resize';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\n}\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nvar _listCacheClear = listCacheClear;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nvar eq_1 = eq;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq_1(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nvar _assocIndexOf = assocIndexOf;\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nvar _listCacheDelete = listCacheDelete;\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nvar _listCacheGet = listCacheGet;\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return _assocIndexOf(this.__data__, key) > -1;\n}\n\nvar _listCacheHas = listCacheHas;\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nvar _listCacheSet = listCacheSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(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 `ListCache`.\nListCache.prototype.clear = _listCacheClear;\nListCache.prototype['delete'] = _listCacheDelete;\nListCache.prototype.get = _listCacheGet;\nListCache.prototype.has = _listCacheHas;\nListCache.prototype.set = _listCacheSet;\n\nvar _ListCache = ListCache;\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new _ListCache;\n this.size = 0;\n}\n\nvar _stackClear = stackClear;\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nvar _stackDelete = stackDelete;\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nvar _stackGet = stackGet;\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nvar _stackHas = stackHas;\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\nvar _freeGlobal = freeGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = _freeGlobal || freeSelf || Function('return this')();\n\nvar _root = root;\n\n/** Built-in value references. */\nvar Symbol$1 = _root.Symbol;\n\nvar _Symbol = Symbol$1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nvar _getRawTag = getRawTag;\n\n/** Used for built-in method references. */\nvar objectProto$1 = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString$1 = objectProto$1.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString$1.call(value);\n}\n\nvar _objectToString = objectToString;\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag$1 && symToStringTag$1 in Object(value))\n ? _getRawTag(value)\n : _objectToString(value);\n}\n\nvar _baseGetTag = baseGetTag;\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nvar isObject_1 = isObject;\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject_1(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = _baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nvar isFunction_1 = isFunction;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = _root['__core-js_shared__'];\n\nvar _coreJsData = coreJsData;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nvar _isMasked = isMasked;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nvar _toSource = toSource;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto$1 = Function.prototype,\n objectProto$2 = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString$1 = funcProto$1.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$1 = objectProto$2.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString$1.call(hasOwnProperty$1).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject_1(value) || _isMasked(value)) {\n return false;\n }\n var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor;\n return pattern.test(_toSource(value));\n}\n\nvar _baseIsNative = baseIsNative;\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nvar _getValue = getValue;\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = _getValue(object, key);\n return _baseIsNative(value) ? value : undefined;\n}\n\nvar _getNative = getNative;\n\n/* Built-in method references that are verified to be native. */\nvar Map = _getNative(_root, 'Map');\n\nvar _Map = Map;\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = _getNative(Object, 'create');\n\nvar _nativeCreate = nativeCreate;\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = _nativeCreate ? _nativeCreate(null) : {};\n this.size = 0;\n}\n\nvar _hashClear = hashClear;\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nvar _hashDelete = hashDelete;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto$3 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$2 = objectProto$3.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty$2.call(data, key) ? data[key] : undefined;\n}\n\nvar _hashGet = hashGet;\n\n/** Used for built-in method references. */\nvar objectProto$4 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$3 = objectProto$4.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$3.call(data, key);\n}\n\nvar _hashHas = hashHas;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED$1 = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (_nativeCreate && value === undefined) ? HASH_UNDEFINED$1 : value;\n return this;\n}\n\nvar _hashSet = 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\nvar _Hash = Hash;\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new _Hash,\n 'map': new (_Map || _ListCache),\n 'string': new _Hash\n };\n}\n\nvar _mapCacheClear = mapCacheClear;\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nvar _isKeyable = isKeyable;\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return _isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nvar _getMapData = getMapData;\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = _getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nvar _mapCacheDelete = mapCacheDelete;\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return _getMapData(this, key).get(key);\n}\n\nvar _mapCacheGet = mapCacheGet;\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return _getMapData(this, key).has(key);\n}\n\nvar _mapCacheHas = mapCacheHas;\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = _getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nvar _mapCacheSet = mapCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = _mapCacheClear;\nMapCache.prototype['delete'] = _mapCacheDelete;\nMapCache.prototype.get = _mapCacheGet;\nMapCache.prototype.has = _mapCacheHas;\nMapCache.prototype.set = _mapCacheSet;\n\nvar _MapCache = MapCache;\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof _ListCache) {\n var pairs = data.__data__;\n if (!_Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new _MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nvar _stackSet = stackSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new _ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = _stackClear;\nStack.prototype['delete'] = _stackDelete;\nStack.prototype.get = _stackGet;\nStack.prototype.has = _stackHas;\nStack.prototype.set = _stackSet;\n\nvar _Stack = Stack;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED$2 = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED$2);\n return this;\n}\n\nvar _setCacheAdd = setCacheAdd;\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nvar _setCacheHas = setCacheHas;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new _MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = _setCacheAdd;\nSetCache.prototype.has = _setCacheHas;\n\nvar _SetCache = SetCache;\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nvar _arraySome = arraySome;\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nvar _cacheHas = cacheHas;\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new _SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!_arraySome(other, function(othValue, othIndex) {\n if (!_cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nvar _equalArrays = equalArrays;\n\n/** Built-in value references. */\nvar Uint8Array = _root.Uint8Array;\n\nvar _Uint8Array = Uint8Array;\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nvar _mapToArray = mapToArray;\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nvar _setToArray = setToArray;\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG$1 = 1,\n COMPARE_UNORDERED_FLAG$1 = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new _Uint8Array(object), new _Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq_1(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = _mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1;\n convert || (convert = _setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG$1;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = _equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nvar _equalByTag = equalByTag;\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nvar _arrayPush = arrayPush;\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nvar isArray_1 = isArray;\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray_1(object) ? result : _arrayPush(result, symbolsFunc(object));\n}\n\nvar _baseGetAllKeys = baseGetAllKeys;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nvar _arrayFilter = arrayFilter;\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nvar stubArray_1 = stubArray;\n\n/** Used for built-in method references. */\nvar objectProto$5 = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto$5.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray_1 : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return _arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nvar _getSymbols = getSymbols;\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nvar _baseTimes = baseTimes;\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nvar isObjectLike_1 = isObjectLike;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike_1(value) && _baseGetTag(value) == argsTag;\n}\n\nvar _baseIsArguments = baseIsArguments;\n\n/** Used for built-in method references. */\nvar objectProto$6 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$4 = objectProto$6.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable$1 = objectProto$6.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = _baseIsArguments(function() { return arguments; }()) ? _baseIsArguments : function(value) {\n return isObjectLike_1(value) && hasOwnProperty$4.call(value, 'callee') &&\n !propertyIsEnumerable$1.call(value, 'callee');\n};\n\nvar isArguments_1 = isArguments;\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nvar stubFalse_1 = stubFalse;\n\nvar isBuffer_1 = createCommonjsModule(function (module, exports) {\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse_1;\n\nmodule.exports = isBuffer;\n});\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nvar _isIndex = isIndex;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER$1 = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$1;\n}\n\nvar isLength_1 = isLength;\n\n/** `Object#toString` result references. */\nvar argsTag$1 = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag$1 = '[object Boolean]',\n dateTag$1 = '[object Date]',\n errorTag$1 = '[object Error]',\n funcTag$1 = '[object Function]',\n mapTag$1 = '[object Map]',\n numberTag$1 = '[object Number]',\n objectTag = '[object Object]',\n regexpTag$1 = '[object RegExp]',\n setTag$1 = '[object Set]',\n stringTag$1 = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag$1 = '[object ArrayBuffer]',\n dataViewTag$1 = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag$1] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] =\ntypedArrayTags[dataViewTag$1] = typedArrayTags[dateTag$1] =\ntypedArrayTags[errorTag$1] = typedArrayTags[funcTag$1] =\ntypedArrayTags[mapTag$1] = typedArrayTags[numberTag$1] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag$1] =\ntypedArrayTags[setTag$1] = typedArrayTags[stringTag$1] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike_1(value) &&\n isLength_1(value.length) && !!typedArrayTags[_baseGetTag(value)];\n}\n\nvar _baseIsTypedArray = baseIsTypedArray;\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nvar _baseUnary = baseUnary;\n\nvar _nodeUtil = createCommonjsModule(function (module, exports) {\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == '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});\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = _nodeUtil && _nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? _baseUnary(nodeIsTypedArray) : _baseIsTypedArray;\n\nvar isTypedArray_1 = isTypedArray;\n\n/** Used for built-in method references. */\nvar objectProto$7 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$5 = objectProto$7.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray_1(value),\n isArg = !isArr && isArguments_1(value),\n isBuff = !isArr && !isArg && isBuffer_1(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray_1(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? _baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty$5.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n _isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nvar _arrayLikeKeys = arrayLikeKeys;\n\n/** Used for built-in method references. */\nvar objectProto$8 = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$8;\n\n return value === proto;\n}\n\nvar _isPrototype = isPrototype;\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nvar _overArg = overArg;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = _overArg(Object.keys, Object);\n\nvar _nativeKeys = nativeKeys;\n\n/** Used for built-in method references. */\nvar objectProto$9 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$6 = objectProto$9.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!_isPrototype(object)) {\n return _nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty$6.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nvar _baseKeys = baseKeys;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength_1(value.length) && !isFunction_1(value);\n}\n\nvar isArrayLike_1 = isArrayLike;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike_1(object) ? _arrayLikeKeys(object) : _baseKeys(object);\n}\n\nvar keys_1 = keys;\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return _baseGetAllKeys(object, keys_1, _getSymbols);\n}\n\nvar _getAllKeys = getAllKeys;\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG$2 = 1;\n\n/** Used for built-in method references. */\nvar objectProto$a = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$7 = objectProto$a.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2,\n objProps = _getAllKeys(object),\n objLength = objProps.length,\n othProps = _getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty$7.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nvar _equalObjects = equalObjects;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = _getNative(_root, 'DataView');\n\nvar _DataView = DataView;\n\n/* Built-in method references that are verified to be native. */\nvar Promise$1 = _getNative(_root, 'Promise');\n\nvar _Promise = Promise$1;\n\n/* Built-in method references that are verified to be native. */\nvar Set = _getNative(_root, 'Set');\n\nvar _Set = Set;\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = _getNative(_root, 'WeakMap');\n\nvar _WeakMap = WeakMap;\n\n/** `Object#toString` result references. */\nvar mapTag$2 = '[object Map]',\n objectTag$1 = '[object Object]',\n promiseTag = '[object Promise]',\n setTag$2 = '[object Set]',\n weakMapTag$1 = '[object WeakMap]';\n\nvar dataViewTag$2 = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = _toSource(_DataView),\n mapCtorString = _toSource(_Map),\n promiseCtorString = _toSource(_Promise),\n setCtorString = _toSource(_Set),\n weakMapCtorString = _toSource(_WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = _baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag$2) ||\n (_Map && getTag(new _Map) != mapTag$2) ||\n (_Promise && getTag(_Promise.resolve()) != promiseTag) ||\n (_Set && getTag(new _Set) != setTag$2) ||\n (_WeakMap && getTag(new _WeakMap) != weakMapTag$1)) {\n getTag = function(value) {\n var result = _baseGetTag(value),\n Ctor = result == objectTag$1 ? value.constructor : undefined,\n ctorString = Ctor ? _toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag$2;\n case mapCtorString: return mapTag$2;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag$2;\n case weakMapCtorString: return weakMapTag$1;\n }\n }\n return result;\n };\n}\n\nvar _getTag = getTag;\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG$3 = 1;\n\n/** `Object#toString` result references. */\nvar argsTag$2 = '[object Arguments]',\n arrayTag$1 = '[object Array]',\n objectTag$2 = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto$b = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$8 = objectProto$b.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray_1(object),\n othIsArr = isArray_1(other),\n objTag = objIsArr ? arrayTag$1 : _getTag(object),\n othTag = othIsArr ? arrayTag$1 : _getTag(other);\n\n objTag = objTag == argsTag$2 ? objectTag$2 : objTag;\n othTag = othTag == argsTag$2 ? objectTag$2 : othTag;\n\n var objIsObj = objTag == objectTag$2,\n othIsObj = othTag == objectTag$2,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer_1(object)) {\n if (!isBuffer_1(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new _Stack);\n return (objIsArr || isTypedArray_1(object))\n ? _equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG$3)) {\n var objIsWrapped = objIsObj && hasOwnProperty$8.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty$8.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new _Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new _Stack);\n return _equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nvar _baseIsEqualDeep = baseIsEqualDeep;\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike_1(value) && !isObjectLike_1(other))) {\n return value !== value && other !== other;\n }\n return _baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nvar _baseIsEqual = baseIsEqual;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return _baseIsEqual(value, other);\n}\n\nvar isEqual_1 = isEqual;\n\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
    ',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip =\n/*#__PURE__*/\nfunction () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='
    ']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread2({}, DEFAULT_OPTIONS, {}, _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual_1(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n }, {\n key: \"_create\",\n value: function _create(reference, template) {\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', this.hide);\n tooltipNode.addEventListener('click', this.hide);\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this2 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n _this2.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this3._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this3.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this3.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this3._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this3._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this3._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this4 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread2({}, options.popperOptions, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread2({}, popperOptions.modifiers, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this4._isDisposed && _this4.popperInstance) {\n _this4.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this4._isDisposed) {\n _this4._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this4.dispose();\n }\n });\n } else {\n _this4.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this5 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n this.popperInstance.disableEventListeners();\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this5._tooltipNode) {\n _this5._tooltipNode.removeEventListener('mouseenter', _this5.hide);\n\n _this5._tooltipNode.removeEventListener('click', _this5.hide); // Don't remove popper instance, just the HTML element\n\n\n _this5._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this6 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this6.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this7 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this7.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this7.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this7._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this7._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this7._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this7._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this7._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this8 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this8._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this9._isOpen === false) {\n return;\n }\n\n if (!_this9._tooltipNode.ownerDocument.body.contains(_this9._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this9._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this9._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n}\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '
    ',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread2({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread2({\n title: content\n }, getOptions(_objectSpread2({}, value, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value,\n oldValue = _ref.oldValue,\n modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread2({}, value, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event,\n _ref2$skipDelay = _ref2.skipDelay,\n _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event,\n _ref3$skipDelay = _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread2({}, this.popperOptions, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread2({}, popperOptions.modifiers, {\n arrow: _objectSpread2({}, popperOptions.modifiers && popperOptions.modifiers.arrow, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread2({}, popperOptions.modifiers && popperOptions.modifiers.offset, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread2({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.popoverId,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\")], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nvar defineProperty = (function() {\n try {\n var func = _getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nvar _defineProperty$1 = defineProperty;\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && _defineProperty$1) {\n _defineProperty$1(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nvar _baseAssignValue = baseAssignValue;\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq_1(object[key], value)) ||\n (value === undefined && !(key in object))) {\n _baseAssignValue(object, key, value);\n }\n}\n\nvar _assignMergeValue = assignMergeValue;\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nvar _createBaseFor = createBaseFor;\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = _createBaseFor();\n\nvar _baseFor = baseFor;\n\nvar _cloneBuffer = createCommonjsModule(function (module, exports) {\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n});\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new _Uint8Array(result).set(new _Uint8Array(arrayBuffer));\n return result;\n}\n\nvar _cloneArrayBuffer = cloneArrayBuffer;\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? _cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nvar _cloneTypedArray = cloneTypedArray;\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nvar _copyArray = copyArray;\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject_1(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nvar _baseCreate = baseCreate;\n\n/** Built-in value references. */\nvar getPrototype = _overArg(Object.getPrototypeOf, Object);\n\nvar _getPrototype = getPrototype;\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !_isPrototype(object))\n ? _baseCreate(_getPrototype(object))\n : {};\n}\n\nvar _initCloneObject = initCloneObject;\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike_1(value) && isArrayLike_1(value);\n}\n\nvar isArrayLikeObject_1 = isArrayLikeObject;\n\n/** `Object#toString` result references. */\nvar objectTag$3 = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto$2 = Function.prototype,\n objectProto$c = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString$2 = funcProto$2.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$9 = objectProto$c.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString$2.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike_1(value) || _baseGetTag(value) != objectTag$3) {\n return false;\n }\n var proto = _getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty$9.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString$2.call(Ctor) == objectCtorString;\n}\n\nvar isPlainObject_1 = isPlainObject;\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nvar _safeGet = safeGet;\n\n/** Used for built-in method references. */\nvar objectProto$d = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$a = objectProto$d.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty$a.call(object, key) && eq_1(objValue, value)) ||\n (value === undefined && !(key in object))) {\n _baseAssignValue(object, key, value);\n }\n}\n\nvar _assignValue = assignValue;\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n _baseAssignValue(object, key, newValue);\n } else {\n _assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nvar _copyObject = copyObject;\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nvar _nativeKeysIn = nativeKeysIn;\n\n/** Used for built-in method references. */\nvar objectProto$e = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$b = objectProto$e.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject_1(object)) {\n return _nativeKeysIn(object);\n }\n var isProto = _isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty$b.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nvar _baseKeysIn = baseKeysIn;\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike_1(object) ? _arrayLikeKeys(object, true) : _baseKeysIn(object);\n}\n\nvar keysIn_1 = keysIn;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return _copyObject(value, keysIn_1(value));\n}\n\nvar toPlainObject_1 = toPlainObject;\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = _safeGet(object, key),\n srcValue = _safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n _assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray_1(srcValue),\n isBuff = !isArr && isBuffer_1(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray_1(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray_1(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject_1(objValue)) {\n newValue = _copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = _cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = _cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject_1(srcValue) || isArguments_1(srcValue)) {\n newValue = objValue;\n if (isArguments_1(objValue)) {\n newValue = toPlainObject_1(objValue);\n }\n else if (!isObject_1(objValue) || isFunction_1(objValue)) {\n newValue = _initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n _assignMergeValue(object, key, newValue);\n}\n\nvar _baseMergeDeep = baseMergeDeep;\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n _baseFor(source, function(srcValue, key) {\n stack || (stack = new _Stack);\n if (isObject_1(srcValue)) {\n _baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(_safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n _assignMergeValue(object, key, newValue);\n }\n }, keysIn_1);\n}\n\nvar _baseMerge = baseMerge;\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nvar identity_1 = identity;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nvar _apply = apply;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return _apply(func, this, otherArgs);\n };\n}\n\nvar _overRest = overRest;\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nvar constant_1 = constant;\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !_defineProperty$1 ? identity_1 : function(func, string) {\n return _defineProperty$1(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant_1(string),\n 'writable': true\n });\n};\n\nvar _baseSetToString = baseSetToString;\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nvar _shortOut = shortOut;\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = _shortOut(_baseSetToString);\n\nvar _setToString = setToString;\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return _setToString(_overRest(func, start, identity_1), func + '');\n}\n\nvar _baseRest = baseRest;\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject_1(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike_1(object) && _isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq_1(object[index], value);\n }\n return false;\n}\n\nvar _isIterateeCall = isIterateeCall;\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return _baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && _isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nvar _createAssigner = createAssigner;\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = _createAssigner(function(object, source, srcIndex) {\n _baseMerge(object, source, srcIndex);\n});\n\nvar merge_1 = merge;\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css = \".resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge_1(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('v-popover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","import { findBy } from '@shell/utils/array';\nimport { sortBy } from '@shell/utils/sort';\n\nlet NEXT_ID = 1;\n\nexport const BEFORE_SAVE_HOOKS = '_beforeSaveHooks';\nexport const AFTER_SAVE_HOOKS = '_afterSaveHooks';\n\nexport default {\n methods: {\n registerBeforeHook(boundFn, name, priority = 99, boundFnContext) {\n this._registerHook(BEFORE_SAVE_HOOKS, boundFn, name, priority, boundFnContext);\n },\n\n unregisterBeforeSaveHook(name) {\n this[BEFORE_SAVE_HOOKS] = this[BEFORE_SAVE_HOOKS].filter((hook) => {\n // BEFORE_SAVE_HOOKS is an array of objects with keys\n // fn, name and priority.\n return hook.name !== name;\n });\n },\n\n registerAfterHook(boundFn, name, priority) {\n this._registerHook(AFTER_SAVE_HOOKS, boundFn, name, priority);\n },\n\n async applyHooks(key, ...args) {\n if ( !key ) {\n throw new Error('Must specify key');\n }\n\n const hooks = sortBy(this[key] || [], ['priority', 'name']);\n const out = {};\n\n for ( const x of hooks ) {\n console.debug('Applying hook', x.name); // eslint-disable-line no-console\n out[x.name] = await x.fn.apply(x.fnContext || this, args);\n }\n\n return out;\n },\n\n _registerHook(key, fn, name, priority, fnContext) {\n if ( !key ) {\n throw new Error('Must specify key');\n }\n\n if ( !name ) {\n name = `hook_${ NEXT_ID }`;\n NEXT_ID++;\n }\n\n if ( !priority ) {\n priority = 99;\n }\n\n let hooks = this[key];\n\n if ( !hooks ) {\n hooks = [];\n this[key] = hooks;\n }\n\n let entry = findBy(hooks, 'name', name);\n\n if ( entry ) {\n entry.priority = priority;\n entry.fn = fn;\n entry.fnContext = fnContext;\n } else {\n entry = {\n name,\n priority,\n fn,\n fnContext\n };\n\n hooks.push(entry);\n }\n },\n },\n};\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","// Settings\nimport { GC_DEFAULTS } from '../utils/gc/gc-types';\n\ninterface GlobalSettingRuleset {\n name: string,\n key?: string | number,\n factoryArg?: string | number | (string | number)[]\n}\n\ninterface GlobalSetting {\n [key: string]: {\n alias?: string,\n canReset?: boolean,\n customFormatter?: string,\n from?: string,\n kind?: string,\n options?: string[]\n readOnly?: boolean,\n /**\n * Function used from the form validation\n */\n ruleSet?: GlobalSettingRuleset[],\n };\n}\n\n// Adapted from: https://github.com/rancher/ui/blob/08c379a9529f740666a704b52522a468986c3520/lib/shared/addon/utils/constants.js#L564\n// Setting IDs\nexport const SETTING = {\n VERSION_RANCHER: 'server-version',\n VERSION_CLI: 'cli-version',\n VERSION_MACHINE: 'machine-version',\n VERSION_HELM: 'helm-version',\n CLI_URL: {\n DARWIN: 'cli-url-darwin',\n WINDOWS: 'cli-url-windows',\n LINUX: 'cli-url-linux',\n },\n API_HOST: 'api-host',\n CA_CERTS: 'cacerts',\n\n // Allow the local cluster to be hidden\n HIDE_LOCAL_CLUSTER: 'hide-local-cluster',\n AUTH_TOKEN_MAX_TTL_MINUTES: 'auth-token-max-ttl-minutes',\n KUBECONFIG_GENERATE_TOKEN: 'kubeconfig-generate-token',\n KUBECONFIG_TOKEN_TTL_MINUTES: 'kubeconfig-token-ttl-minutes',\n KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES: 'kubeconfig-default-token-ttl-minutes',\n ENGINE_URL: 'engine-install-url',\n ENGINE_ISO_URL: 'engine-iso-url',\n FIRST_LOGIN: 'first-login',\n INGRESS_IP_DOMAIN: 'ingress-ip-domain',\n SERVER_URL: 'server-url',\n RKE_METADATA_CONFIG: 'rke-metadata-config',\n TELEMETRY: 'telemetry-opt',\n EULA_AGREED: 'eula-agreed',\n AUTH_USER_INFO_MAX_AGE_SECONDS: 'auth-user-info-max-age-seconds',\n AUTH_USER_SESSION_TTL_MINUTES: 'auth-user-session-ttl-minutes',\n AUTH_USER_INFO_RESYNC_CRON: 'auth-user-info-resync-cron',\n AUTH_LOCAL_VALIDATE_DESC: 'auth-password-requirements-description',\n PASSWORD_MIN_LENGTH: 'password-min-length', // CATTLE_PASSWORD_MIN_LENGTH\n CLUSTER_TEMPLATE_ENFORCEMENT: 'cluster-template-enforcement',\n UI_INDEX: 'ui-index',\n UI_DASHBOARD_INDEX: 'ui-dashboard-index',\n UI_DASHBOARD_HARVESTER_LEGACY_PLUGIN: 'ui-dashboard-harvester-legacy-plugin',\n UI_OFFLINE_PREFERRED: 'ui-offline-preferred',\n SYSTEM_DEFAULT_REGISTRY: 'system-default-registry',\n UI_ISSUES: 'ui-issues',\n PL: 'ui-pl',\n PL_RANCHER_VALUE: 'rancher',\n SUPPORTED: 'has-support',\n BANNERS: 'ui-banners',\n ISSUES: 'ui-issues',\n BRAND: 'ui-brand',\n LOGO_LIGHT: 'ui-logo-light',\n LOGO_DARK: 'ui-logo-dark',\n PRIMARY_COLOR: 'ui-primary-color',\n LINK_COLOR: 'ui-link-color',\n COMMUNITY_LINKS: 'ui-community-links',\n FAVICON: 'ui-favicon',\n UI_PERFORMANCE: 'ui-performance',\n UI_CUSTOM_LINKS: 'ui-custom-links',\n /**\n * Allow the backend to force a light/dark theme. Used in non-rancher world and results in the theme used\n * both pre and post log in. If not present defaults to the usual process\n */\n THEME: 'ui-theme',\n SYSTEM_NAMESPACES: 'system-namespaces',\n /**\n * Cluster Agent configuration\n */\n CLUSTER_AGENT_DEFAULT_AFFINITY: 'cluster-agent-default-affinity',\n FLEET_AGENT_DEFAULT_AFFINITY: 'fleet-agent-default-affinity',\n};\n\n// These are the settings that are allowed to be edited via the UI\nexport const ALLOWED_SETTINGS: GlobalSetting = {\n [SETTING.CA_CERTS]: { kind: 'multiline', readOnly: true },\n [SETTING.ENGINE_URL]: {},\n [SETTING.ENGINE_ISO_URL]: {},\n [SETTING.PASSWORD_MIN_LENGTH]: {\n kind: 'integer',\n ruleSet: [\n {\n name: 'betweenValues',\n key: 'Password',\n factoryArg: [2, 256]\n },\n {\n name: 'isInteger',\n key: 'Password',\n },\n {\n name: 'isPositive',\n key: 'Password',\n },\n {\n name: 'isOctal',\n key: 'Password',\n }\n ],\n },\n [SETTING.INGRESS_IP_DOMAIN]: {},\n [SETTING.AUTH_USER_INFO_MAX_AGE_SECONDS]: {},\n [SETTING.AUTH_USER_SESSION_TTL_MINUTES]: {},\n [SETTING.AUTH_TOKEN_MAX_TTL_MINUTES]: {},\n [SETTING.KUBECONFIG_GENERATE_TOKEN]: { kind: 'boolean' },\n [SETTING.KUBECONFIG_TOKEN_TTL_MINUTES]: {},\n [SETTING.KUBECONFIG_DEFAULT_TOKEN_TTL_MINUTES]: { kind: 'integer' },\n [SETTING.AUTH_USER_INFO_RESYNC_CRON]: {},\n [SETTING.SERVER_URL]: { kind: 'url', canReset: true },\n [SETTING.RKE_METADATA_CONFIG]: { kind: 'json' },\n [SETTING.SYSTEM_DEFAULT_REGISTRY]: {},\n [SETTING.UI_INDEX]: {},\n [SETTING.UI_DASHBOARD_INDEX]: {},\n [SETTING.UI_OFFLINE_PREFERRED]: {\n kind: 'enum',\n options: ['dynamic', 'true', 'false']\n },\n [SETTING.BRAND]: { canReset: true },\n [SETTING.CLUSTER_TEMPLATE_ENFORCEMENT]: { kind: 'boolean' },\n [SETTING.TELEMETRY]: {\n kind: 'enum',\n options: ['prompt', 'in', 'out']\n },\n [SETTING.HIDE_LOCAL_CLUSTER]: { kind: 'boolean' },\n};\n\nexport const DEFAULT_PERF_SETTING = {\n inactivity: {\n enabled: false,\n threshold: 900,\n },\n incrementalLoading: {\n enabled: true,\n threshold: 1500,\n },\n manualRefresh: {\n enabled: false,\n threshold: 1500,\n },\n disableWebsocketNotification: true,\n garbageCollection: GC_DEFAULTS,\n forceNsFilterV2: { enabled: false },\n advancedWorker: { enabled: false },\n};\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!./Footer.vue?vue&type=style&index=0&id=7a533750&prod&lang=scss&\"","// 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.roletemplate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./management.cattle.io.roletemplate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./management.cattle.io.roletemplate.vue?vue&type=template&id=5050d908&scoped=true&\"\nimport script from \"./management.cattle.io.roletemplate.vue?vue&type=script&lang=js&\"\nexport * from \"./management.cattle.io.roletemplate.vue?vue&type=script&lang=js&\"\nimport style0 from \"./management.cattle.io.roletemplate.vue?vue&type=style&index=0&id=5050d908&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5050d908\",\n null\n \n)\n\nexport default component.exports","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".text.info[data-v-5050d908]{display:flex;align-items:center}.text.info>span[data-v-5050d908]{margin-right:5px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"yaml-editor\"},[_c('div',{staticClass:\"text-right\"},[(_vm.isPreview && !_vm.hidePreviewButtons)?_c('span',{directives:[{name:\"trim-whitespace\",rawName:\"v-trim-whitespace\"}],staticClass:\"btn-group btn-sm diff-mode\"},[_c('button',{staticClass:\"btn btn-sm bg-default\",class:{'active': _vm.diffMode !== 'split'},attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.diffMode='unified'}}},[_vm._v(\"Unified\")]),_c('button',{staticClass:\"btn btn-sm bg-default\",class:{'active': _vm.diffMode === 'split'},attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.diffMode='split'}}},[_vm._v(\"Split\")])]):_vm._e()]),(_vm.showCodeEditor)?_c('CodeMirror',{ref:\"cm\",class:{fill: true, scrolling: _vm.scrolling},attrs:{\"value\":_vm.curValue,\"options\":_vm.codeMirrorOptions,\"data-testid\":_vm.componentTestid + '-code-mirror'},on:{\"onInput\":_vm.onInput,\"onReady\":_vm.onReady,\"onChanges\":_vm.onChanges}}):_c('FileDiff',{class:{fill: true, scrolling: _vm.scrolling},attrs:{\"filename\":'.yaml',\"side-by-side\":_vm.diffMode === 'split',\"orig\":_vm.original,\"neu\":_vm.curValue}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('resize-observer',{on:{\"notify\":_vm.fit}}),_c('div',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.html),expression:\"html\"}],ref:\"root\",staticClass:\"root\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./FileDiff.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./FileDiff.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileDiff.vue?vue&type=template&id=be221288&scoped=true&\"\nimport script from \"./FileDiff.vue?vue&type=script&lang=js&\"\nexport * from \"./FileDiff.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileDiff.vue?vue&type=style&index=0&id=be221288&prod&lang=scss&scoped=true&\"\nimport style1 from \"./FileDiff.vue?vue&type=style&index=1&id=be221288&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 \"be221288\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./YamlEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./YamlEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./YamlEditor.vue?vue&type=template&id=3662be84&scoped=true&\"\nimport script from \"./YamlEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./YamlEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./YamlEditor.vue?vue&type=style&index=0&id=3662be84&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 \"3662be84\",\n null\n \n)\n\nexport default component.exports","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","export * from \"-!../../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardView.vue?vue&type=style&index=0&id=08227e1c&prod&lang=scss&scoped=true&\"","// 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!./CodeMirror.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeMirror.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CodeMirror.vue?vue&type=template&id=766d41e5&\"\nimport script from \"./CodeMirror.vue?vue&type=script&lang=js&\"\nexport * from \"./CodeMirror.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CodeMirror.vue?vue&type=style&index=0&id=766d41e5&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrayList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrayList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ArrayList.vue?vue&type=template&id=f06ff0c4&scoped=true&\"\nimport script from \"./ArrayList.vue?vue&type=script&lang=js&\"\nexport * from \"./ArrayList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ArrayList.vue?vue&type=style&index=0&id=f06ff0c4&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 \"f06ff0c4\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6703bcf4&prod&lang=scss&scoped=true&\"","/*\n * Jexl\n * Copyright 2019 Tom Shawver\n */\n\nconst h = require('./handlers')\n\n/**\n * A mapping of all states in the finite state machine to a set of instructions\n * for handling or transitioning into other states. Each state can be handled\n * in one of two schemes: a tokenType map, or a subHandler.\n *\n * Standard expression elements are handled through the tokenType object. This\n * is an object map of all legal token types to encounter in this state (and\n * any unexpected token types will generate a thrown error) to an options\n * object that defines how they're handled. The available options are:\n *\n * {string} toState: The name of the state to which to transition\n * immediately after handling this token\n * {string} handler: The handler function to call when this token type is\n * encountered in this state. If omitted, the default handler\n * matching the token's \"type\" property will be called. If the handler\n * function does not exist, no call will be made and no error will be\n * generated. This is useful for tokens whose sole purpose is to\n * transition to other states.\n *\n * States that consume a subexpression should define a subHandler, the\n * function to be called with an expression tree argument when the\n * subexpression is complete. Completeness is determined through the\n * endStates object, which maps tokens on which an expression should end to the\n * state to which to transition once the subHandler function has been called.\n *\n * Additionally, any state in which it is legal to mark the AST as completed\n * should have a 'completable' property set to boolean true. Attempting to\n * call {@link Parser#complete} in any state without this property will result\n * in a thrown Error.\n *\n * @type {{}}\n */\nexports.states = {\n expectOperand: {\n tokenTypes: {\n literal: { toState: 'expectBinOp' },\n identifier: { toState: 'identifier' },\n unaryOp: {},\n openParen: { toState: 'subExpression' },\n openCurl: { toState: 'expectObjKey', handler: h.objStart },\n dot: { toState: 'traverse' },\n openBracket: { toState: 'arrayVal', handler: h.arrayStart }\n }\n },\n expectBinOp: {\n tokenTypes: {\n binaryOp: { toState: 'expectOperand' },\n pipe: { toState: 'expectTransform' },\n dot: { toState: 'traverse' },\n question: { toState: 'ternaryMid', handler: h.ternaryStart }\n },\n completable: true\n },\n expectTransform: {\n tokenTypes: {\n identifier: { toState: 'postTransform', handler: h.transform }\n }\n },\n expectObjKey: {\n tokenTypes: {\n identifier: { toState: 'expectKeyValSep', handler: h.objKey },\n closeCurl: { toState: 'expectBinOp' }\n }\n },\n expectKeyValSep: {\n tokenTypes: {\n colon: { toState: 'objVal' }\n }\n },\n postTransform: {\n tokenTypes: {\n openParen: { toState: 'argVal' },\n binaryOp: { toState: 'expectOperand' },\n dot: { toState: 'traverse' },\n openBracket: { toState: 'filter' },\n pipe: { toState: 'expectTransform' }\n },\n completable: true\n },\n postTransformArgs: {\n tokenTypes: {\n binaryOp: { toState: 'expectOperand' },\n dot: { toState: 'traverse' },\n openBracket: { toState: 'filter' },\n pipe: { toState: 'expectTransform' }\n },\n completable: true\n },\n identifier: {\n tokenTypes: {\n binaryOp: { toState: 'expectOperand' },\n dot: { toState: 'traverse' },\n openBracket: { toState: 'filter' },\n pipe: { toState: 'expectTransform' },\n question: { toState: 'ternaryMid', handler: h.ternaryStart }\n },\n completable: true\n },\n traverse: {\n tokenTypes: {\n identifier: { toState: 'identifier' }\n }\n },\n filter: {\n subHandler: h.filter,\n endStates: {\n closeBracket: 'identifier'\n }\n },\n subExpression: {\n subHandler: h.subExpression,\n endStates: {\n closeParen: 'expectBinOp'\n }\n },\n argVal: {\n subHandler: h.argVal,\n endStates: {\n comma: 'argVal',\n closeParen: 'postTransformArgs'\n }\n },\n objVal: {\n subHandler: h.objVal,\n endStates: {\n comma: 'expectObjKey',\n closeCurl: 'expectBinOp'\n }\n },\n arrayVal: {\n subHandler: h.arrayVal,\n endStates: {\n comma: 'arrayVal',\n closeBracket: 'expectBinOp'\n }\n },\n ternaryMid: {\n subHandler: h.ternaryMid,\n endStates: {\n colon: 'ternaryEnd'\n }\n },\n ternaryEnd: {\n subHandler: h.ternaryEnd,\n completable: true\n }\n}\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".key-value{width:100%}.key-value .file-selector.role-link{text-transform:none;padding:0}.key-value .kv-container{display:grid;align-items:center;-moz-column-gap:20px;column-gap:20px}.key-value .kv-container label{margin-bottom:0}.key-value .kv-container .kv-item{width:100%;margin:10px 0 10px 0}.key-value .kv-container .kv-item.extra,.key-value .kv-container .kv-item.key{align-self:flex-start}.key-value .kv-container .kv-item.value .value-container.upload-button{position:relative;display:flex;justify-content:right;align-items:center}.key-value .kv-container .kv-item.value .value-container .file-selector{position:absolute;margin-right:5px}.key-value .kv-container .kv-item.value textarea{padding:10px 10px 10px 10px}.key-value .kv-container .kv-item .text-monospace:not(.conceal){font-family:monospace,monospace}.key-value .remove{text-align:center}.key-value .remove BUTTON{padding:0}.key-value .title{margin-bottom:10px}.key-value .title .read-from-file{float:right}.key-value input{height:40px;line-height:1}.key-value .footer .protip{float:right;padding:5px 0}.key-value .download{text-align:right}.key-value .copy-value{padding:0 0 0 10px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export const platform = ( typeof window === 'undefined' ? 'server' : window.navigator.platform.toLowerCase() );\nexport const userAgent = ( typeof window === 'undefined' ? 'server' : window.navigator.userAgent );\n\nexport const isLinuxy = platform.includes('linux') || platform.includes('unix');\nexport const isMac = platform.includes('mac');\nexport const isWin = platform.includes('win');\n\nexport const alternateKey = (isMac ? 'metaKey' : 'ctrlKey');\nexport const alternateLabel = (isMac ? 'Command' : 'Control');\n\nexport const moreKey = alternateKey;\nexport const moreLabel = alternateLabel;\n\nexport const rangeKey = 'shiftKey';\nexport const rangeLabel = 'Shift';\n\nexport function isAlternate(event) {\n return !!event[alternateKey];\n}\n\nexport function isMore(event) {\n return !!event[moreKey];\n}\n\nexport function isRange(event) {\n return !!event[rangeKey];\n}\n\nexport function suppressContextMenu(event) {\n return event.ctrlKey && event.button === 2;\n}\n\n// Only intended to work for Mobile Safari at the moment...\nexport function version() {\n const match = userAgent.match(/\\s+Version\\/([0-9.]+)/);\n\n if ( match ) {\n return parseFloat(match[1]);\n }\n\n return null;\n}\n\nexport const isGecko = userAgent.includes('Gecko/');\nexport const isBlink = userAgent.includes('Chrome/');\nexport const isWebKit = !isBlink && userAgent.includes('AppleWebKit/');\nexport const isSafari = !isBlink && userAgent.includes('Safari/');\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|IEMobile/i.test(userAgent);\n\nexport const KEY = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n ESCAPE: 27,\n CR: 13,\n LF: 10,\n TAB: 9,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n HOME: 35,\n END: 36,\n};\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".sources__container[data-v-6f180288]{position:relative;display:block}.sources__container__cert[data-v-6f180288]{display:grid;grid-template-columns:auto 150px;align-items:center;margin-bottom:10px}.sources__container__cert>.remove[data-v-6f180288]{text-align:right}.sources__container>.remove[data-v-6f180288]{position:absolute;padding:0;top:0;right:0}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","import { MANAGEMENT } from '@shell/config/types';\n\nconst definitions = {};\n\nexport const create = function(name, def) {\n definitions[name] = { def };\n\n return name;\n};\n\nexport const mapFeature = function(name) {\n return {\n get() {\n return this.$store.getters['features/get'](name);\n },\n\n set(value) {\n throw new Error('The feature store only supports getting');\n }\n };\n};\n\n// --------------------\n// The default (2nd arg) is used only if the flag is missing entirely from the server.\n// This is mainly useful for development before the flag has been created in the API..\n\nexport const MULTI_CLUSTER = create('multi-cluster-management', true);\nexport const LEGACY = create('legacy', false);\nexport const RKE2 = create('rke2', true);\nexport const UNSUPPORTED_STORAGE_DRIVERS = create('unsupported-storage-drivers', false);\nexport const FLEET = create('continuous-delivery', true);\nexport const HARVESTER = create('harvester', true);\nexport const HARVESTER_CONTAINER = create('harvester-baremetal-container-workload', false);\n\n// Not currently used.. no point defining ones we don't use\n// export const EMBEDDED_CLUSTER_API = create('embedded-cluster-api', true);\n// export const ISTIO_VIRTUAL_SERVICE_UI = create('istio-virtual-service-ui', true);\n// export const PROVISIONINGV2 = create('provisioningv2', true);\n// export const AUTH = create('auth', true);\n\n// --------------------\n\nexport const getters = {\n get: (state, getters, rootState, rootGetters) => (name) => {\n const definition = definitions[name];\n\n if (!definition) {\n throw new Error(`Unknown feature: ${ name }`);\n }\n\n const entry = rootGetters['management/byId'](MANAGEMENT.FEATURE, name);\n\n if ( entry ) {\n return entry.enabled;\n }\n\n return definition.def;\n },\n};\n\nexport const actions = {\n loadServer({ rootGetters, dispatch }) {\n if ( rootGetters['management/canList'](MANAGEMENT.FEATURE) ) {\n return dispatch('management/findAll', { type: MANAGEMENT.FEATURE }, { root: true });\n }\n },\n};\n","import { STATES } from '@shell/plugins/dashboard-store/resource-class';\nimport { FLEET } from '@shell/config/types';\n\n// some default values\nconst defaultNodeRadius = 20;\nconst defaultNodePadding = 15;\nconst chartWidth = 800;\nconst chartHeight = 500;\nconst fdcStrength = -300;\nconst fdcDistanceMax = 500;\nconst fdcForceCollide = 80;\nconst fdcAlphaDecay = 0.05;\n\n// setting up default sim params\n// check documentation here: https://github.com/d3/d3-force#forceSimulation\nconst simulationParams = {\n fdcStrength,\n fdcDistanceMax,\n fdcForceCollide,\n fdcAlphaDecay\n};\n\n/**\n * Represents a config object for FDC type\n * @param {Function} parseData - Parses the specific data for each chart. Format must be compliant with d3 data format\n * @example data format => { parent: {..., children: [ {..., children: []} ] } }\n * @param {Function} extendNodeClass - Extends the classes for each node so that the styling is correctly applied\n * @param {Function} nodeDimensions - Sets the radius of the nodes according each data type\n * @param {Function} infoDetails - Prepares the data to be displayed in the info box on the right-side of the ForceDirectedTreeChart component\n */\nexport const gitRepoGraphConfig = {\n chartWidth,\n chartHeight,\n simulationParams,\n /**\n * data prop that is used to trigger the watcher in the component. Should follow format \"data.xxxxxx\"\n */\n watcherProp: 'data.bundles',\n /**\n * Mandatory params for a child object in parseData (for statuses to work)\n * @param {String} state\n * @param {String} stateDisplay\n * @param {String} stateColor\n * @param {String} matchingId (this can be different than the actual ID, depends on the usecase)\n */\n parseData: (data) => {\n const bundles = data.bundles.map((bundle, i) => {\n const bundleLowercaseState = bundle.state ? bundle.state.toLowerCase() : 'unknown';\n const bundleStateColor = STATES[bundleLowercaseState].color;\n\n const repoChild = {\n id: bundle.id,\n matchingId: bundle.id,\n type: bundle.type,\n state: bundle.state,\n stateLabel: bundle.stateDisplay,\n stateColor: bundleStateColor,\n isBundle: true,\n errorMsg: bundle.stateDescription,\n detailLocation: bundle.detailLocation,\n children: []\n };\n\n const bds = data.bundleDeployments.filter((bd) => bundle.id === `${ bd.metadata?.labels?.['fleet.cattle.io/bundle-namespace'] }/${ bd.metadata?.labels?.['fleet.cattle.io/bundle-name'] }`);\n\n bds.forEach((bd) => {\n const bdLowercaseState = bd.state ? bd.state.toLowerCase() : 'unknown';\n const bdStateColor = STATES[bdLowercaseState]?.color;\n\n const cluster = data.clustersList.find((cluster) => {\n const clusterString = `${ cluster.namespace }-${ cluster.name }`;\n\n return bd.id.includes(clusterString);\n });\n\n repoChild.children.push({\n id: bd.id,\n matchingId: bd.id,\n type: bd.type,\n clusterId: cluster ? cluster.id : undefined,\n clusterDetailLocation: cluster ? cluster.detailLocation : undefined,\n state: bd.state,\n stateLabel: bd.stateDisplay,\n stateColor: bdStateColor,\n isBundleDeployment: true,\n errorMsg: bd.stateDescription,\n detailLocation: bd.detailLocation,\n });\n });\n\n return repoChild;\n });\n\n const repoLowercaseState = data.state ? data.state.toLowerCase() : 'unknown';\n const repoStateColor = STATES[repoLowercaseState].color;\n\n const finalData = {\n id: data.id,\n matchingId: data.id,\n type: data.type,\n state: data.state,\n stateLabel: data.stateDisplay,\n stateColor: repoStateColor,\n isRepo: true,\n errorMsg: data.stateDescription,\n detailLocation: data.detailLocation,\n children: bundles\n };\n\n return finalData;\n },\n /**\n * Used to add relevant classes to each main node instance\n */\n extendNodeClass: ({ data }) => {\n const classArray = [];\n\n // node type\n data?.isRepo ? classArray.push('repo') : data?.isBundle ? classArray.push('bundle') : classArray.push('bundle-deployment');\n\n return classArray;\n },\n /**\n * Used to add the correct icon to each node\n */\n fetchNodeIcon: ({ data }) => {\n if (data?.isRepo) {\n return 'git';\n }\n\n if ( data?.isBundle) {\n if (data?.id.indexOf('helm') !== -1) {\n return 'helm';\n }\n\n return 'bundle';\n }\n\n if (data?.isBundleDeployment) {\n return 'node';\n }\n },\n /**\n * Used to set node dimensions\n */\n nodeDimensions: ({ data }) => {\n if (data?.isRepo) {\n const radius = defaultNodeRadius * 3;\n const padding = defaultNodePadding * 2.5;\n\n return {\n radius,\n size: (radius * 2) - padding,\n position: -(((radius * 2) - padding) / 2)\n };\n }\n if (data?.isBundle) {\n const radius = defaultNodeRadius * 2;\n const padding = defaultNodePadding;\n\n if (data?.id.indexOf('helm') !== -1) {\n return {\n radius,\n size: (radius * 1.5) - padding,\n position: -(((radius * 1.5) - padding) / 2)\n };\n }\n\n return {\n radius,\n size: (radius * 1.7) - padding,\n position: -(((radius * 1.7) - padding) / 2)\n };\n }\n\n return {\n radius: defaultNodeRadius,\n size: (defaultNodeRadius * 2) - defaultNodePadding,\n position: -(((defaultNodeRadius * 2) - defaultNodePadding) / 2)\n };\n },\n /**\n * Use @param {Obj} valueObj for compound values (usually associated with a template of some sort on the actual component)\n * or @param value for a simple straightforward value\n */\n infoDetails: (data) => {\n let dataType;\n\n switch (data.type) {\n case FLEET.GIT_REPO:\n dataType = 'GitRepo';\n break;\n case FLEET.BUNDLE:\n dataType = 'Bundle';\n break;\n case FLEET.BUNDLE_DEPLOYMENT:\n dataType = 'BundleDeployment';\n break;\n default:\n dataType = data.type;\n break;\n }\n\n const moreInfo = [\n {\n labelKey: 'fleet.fdc.type',\n value: dataType\n },\n {\n type: 'title-link',\n labelKey: 'fleet.fdc.id',\n valueObj: {\n id: data.id,\n detailLocation: data.detailLocation\n }\n }\n ];\n\n if (data.isBundleDeployment) {\n moreInfo.push({\n type: 'title-link',\n labelKey: 'fleet.fdc.cluster',\n valueObj: {\n id: data.clusterId,\n detailLocation: data.clusterDetailLocation\n }\n });\n }\n\n moreInfo.push({\n type: 'state-badge',\n labelKey: 'fleet.fdc.state',\n valueObj: {\n stateColor: data.stateColor,\n stateLabel: data.stateLabel\n }\n });\n\n if (data.errorMsg) {\n moreInfo.push({\n type: 'single-error',\n labelKey: 'fleet.fdc.error',\n value: data.errorMsg\n });\n }\n\n return moreInfo;\n }\n};\n","import { DSL } from '@shell/store/type-map';\nimport { FLEET } from '@shell/config/types';\nimport { STATE, NAME as NAME_COL, AGE } from '@shell/config/table-headers';\nimport { FLEET as FLEET_FEATURE } from '@shell/store/features';\nimport { gitRepoGraphConfig } from '@shell/pages/c/_cluster/fleet/GitRepoGraphConfig';\n\nexport const NAME = 'fleet';\nexport const CHART_NAME = 'fleet';\n\nexport function init(store) {\n const {\n product,\n basicType,\n weightType,\n configureType,\n headers,\n // mapType,\n virtualType,\n } = DSL(store, NAME);\n\n product({\n ifHaveType: FLEET.GIT_REPO,\n ifFeature: FLEET_FEATURE,\n icon: 'fleet',\n inStore: 'management',\n removable: false,\n showClusterSwitcher: false,\n showWorkspaceSwitcher: true,\n });\n\n virtualType({\n labelKey: 'fleet.dashboard.menuLabel',\n icon: 'folder',\n group: 'Root',\n namespaced: false,\n name: FLEET.DASHBOARD,\n weight: 110,\n route: {\n name: 'c-cluster-fleet',\n params: { resource: FLEET.DASHBOARD }\n },\n exact: true,\n });\n\n basicType([\n FLEET.DASHBOARD,\n FLEET.CLUSTER,\n FLEET.CLUSTER_GROUP,\n FLEET.GIT_REPO,\n ]);\n\n configureType(FLEET.CLUSTER, { isCreatable: false });\n configureType(FLEET.GIT_REPO, {\n showListMasthead: false, hasGraph: true, graphConfig: gitRepoGraphConfig\n });\n\n weightType(FLEET.GIT_REPO, 109, true);\n weightType(FLEET.CLUSTER, 108, true);\n weightType(FLEET.CLUSTER_GROUP, 107, true);\n\n basicType([\n FLEET.WORKSPACE,\n FLEET.BUNDLE,\n FLEET.TOKEN,\n FLEET.BUNDLE_NAMESPACE_MAPPING,\n FLEET.GIT_REPO_RESTRICTION\n ], 'advanced');\n\n headers(FLEET.WORKSPACE, [\n STATE,\n NAME_COL,\n {\n name: 'gitRepos',\n labelKey: 'tableHeaders.gitRepos',\n value: 'counts.gitRepos',\n sort: 'counts.gitRepos',\n formatter: 'Number',\n },\n {\n name: 'clusters',\n labelKey: 'tableHeaders.clusters',\n value: 'counts.clusters',\n sort: 'counts.clusters',\n formatter: 'Number',\n },\n {\n name: 'clusterGroups',\n labelKey: 'tableHeaders.clusterGroups',\n value: 'counts.clusterGroups',\n sort: 'counts.clusterGroups',\n formatter: 'Number',\n },\n AGE\n ]);\n}\n","import { NORMAN_NAME } from '@shell/config/labels-annotations';\nimport {\n _CLONE,\n _CONFIG,\n _EDIT,\n _UNFLAG,\n _VIEW,\n _YAML,\n AS,\n MODE\n} from '@shell/config/query-params';\nimport { VIEW_IN_API } from '@shell/store/prefs';\nimport { addObject, addObjects, findBy, removeAt } from '@shell/utils/array';\nimport CustomValidators from '@shell/utils/custom-validators';\nimport { downloadFile, generateZip } from '@shell/utils/download';\nimport { clone, get } from '@shell/utils/object';\nimport { eachLimit } from '@shell/utils/promise';\nimport { sortableNumericSuffix } from '@shell/utils/sort';\nimport { coerceStringTypeToScalarType, escapeHtml, ucFirst } from '@shell/utils/string';\nimport {\n displayKeyFor,\n validateBoolean,\n validateChars,\n validateDnsLikeTypes,\n validateLength,\n} from '@shell/utils/validators';\nimport formRulesGenerator from '@shell/utils/validators/formRules/index';\nimport { waitFor } from '@shell/utils/async';\nimport jsyaml from 'js-yaml';\nimport compact from 'lodash/compact';\nimport forIn from 'lodash/forIn';\nimport isEmpty from 'lodash/isEmpty';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport uniq from 'lodash/uniq';\nimport Vue from 'vue';\n\nimport { normalizeType } from './normalize';\n\nimport { ExtensionPoint, ActionLocation } from '@shell/core/types';\nimport { getApplicableExtensionEnhancements } from '@shell/core/plugin-helpers';\n\nconst STRING_LIKE_TYPES = [\n 'string',\n 'date',\n 'blob',\n 'enum',\n 'multiline',\n 'masked',\n 'password',\n 'dnsLabel',\n 'hostname',\n];\nconst DNS_LIKE_TYPES = ['dnsLabel', 'dnsLabelRestricted', 'hostname'];\n\nconst REMAP_STATE = {\n disabled: 'inactive',\n notapplied: 'Not Applied',\n notready: 'Not Ready',\n waitapplied: 'Wait Applied',\n outofsync: 'Out of Sync',\n 'in-progress': 'In Progress',\n gitupdating: 'Git Updating',\n errapplied: 'Err Applied',\n waitcheckin: 'Wait Check-In',\n off: 'Disabled',\n waitingforinfrastructure: 'Waiting for Infra',\n waitingfornoderef: 'Waiting for Node Ref'\n};\n\nconst DEFAULT_COLOR = 'warning';\nconst DEFAULT_ICON = 'x';\n\nconst DEFAULT_WAIT_INTERVAL = 1000;\nconst DEFAULT_WAIT_TMIMEOUT = 30000;\n\nexport const STATES_ENUM = {\n IN_USE: 'in-use',\n IN_PROGRESS: 'in-progress',\n PENDING_ROLLBACK: 'pending-rollback',\n PENDING_UPGRADE: 'pending-upgrade',\n ABORTED: 'aborted',\n ACTIVATING: 'activating',\n ACTIVE: 'active',\n AVAILABLE: 'available',\n BACKED_UP: 'backedup',\n BOUND: 'bound',\n BUILDING: 'building',\n COMPLETED: 'completed',\n CORDONED: 'cordoned',\n COUNT: 'count',\n CREATED: 'created',\n CREATING: 'creating',\n DEACTIVATING: 'deactivating',\n DEGRADED: 'degraded',\n DENIED: 'denied',\n DEPLOYED: 'deployed',\n DEPLOYING: 'deploying',\n DISABLED: 'disabled',\n DISCONNECTED: 'disconnected',\n DRAINED: 'drained',\n DRAINING: 'draining',\n ERR_APPLIED: 'errapplied',\n ERROR: 'error',\n ERRORING: 'erroring',\n ERRORS: 'errors',\n EXPIRED: 'expired',\n FAIL: 'fail',\n FAILED: 'failed',\n HEALTHY: 'healthy',\n INACTIVE: 'inactive',\n INFO: 'info',\n INITIALIZING: 'initializing',\n INPROGRESS: 'inprogress',\n LOCKED: 'locked',\n MIGRATING: 'migrating',\n MISSING: 'missing',\n MODIFIED: 'modified',\n NOT_APPLICABLE: 'notApplicable',\n NOT_APLLIED: 'notapplied',\n NOT_READY: 'notready',\n OFF: 'off',\n ORPHANED: 'orphaned',\n OTHER: 'other',\n OUT_OF_SYNC: 'outofsync',\n ON_GOING: 'on-going',\n PASS: 'pass',\n PASSED: 'passed',\n PAUSED: 'paused',\n PENDING: 'pending',\n PROVISIONING: 'provisioning',\n PROVISIONED: 'provisioned',\n PURGED: 'purged',\n PURGING: 'purging',\n READY: 'ready',\n RECONNECTING: 'reconnecting',\n REGISTERING: 'registering',\n REINITIALIZING: 'reinitializing',\n RELEASED: 'released',\n REMOVED: 'removed',\n REMOVING: 'removing',\n REQUESTED: 'requested',\n RESTARTING: 'restarting',\n RESTORING: 'restoring',\n RESIZING: 'resizing',\n RUNNING: 'running',\n SKIP: 'skip',\n SKIPPED: 'skipped',\n STARTING: 'starting',\n STOPPED: 'stopped',\n STOPPING: 'stopping',\n SUCCEEDED: 'succeeded',\n SUCCESS: 'success',\n SUCCESSFUL: 'successful',\n SUPERSEDED: 'superseded',\n SUSPENDED: 'suspended',\n UNAVAILABLE: 'unavailable',\n UNHEALTHY: 'unhealthy',\n UNINSTALLED: 'uninstalled',\n UNINSTALLING: 'uninstalling',\n UNKNOWN: 'unknown',\n UNTRIGGERED: 'untriggered',\n UPDATING: 'updating',\n WAIT_APPLIED: 'waitapplied',\n WAIT_CHECKIN: 'waitcheckin',\n WAITING: 'waiting',\n WARNING: 'warning',\n};\n\nexport const STATES = {\n [STATES_ENUM.IN_USE]: {\n color: 'success', icon: 'dot-open', label: 'In Use', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.IN_PROGRESS]: {\n color: 'info', icon: 'tag', label: 'In Progress', compoundIcon: 'info'\n },\n [STATES_ENUM.PENDING_ROLLBACK]: {\n color: 'info', icon: 'dot-half', label: 'Pending Rollback', compoundIcon: 'info'\n },\n [STATES_ENUM.PENDING_UPGRADE]: {\n color: 'info', icon: 'dot-half', label: 'Pending Update', compoundIcon: 'info'\n },\n [STATES_ENUM.ABORTED]: {\n color: 'warning', icon: 'error', label: 'Aborted', compoundIcon: 'warning'\n },\n [STATES_ENUM.ACTIVATING]: {\n color: 'info', icon: 'tag', label: 'Activating', compoundIcon: 'info'\n },\n [STATES_ENUM.ACTIVE]: {\n color: 'success', icon: 'dot-open', label: 'Active', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.AVAILABLE]: {\n color: 'success', icon: 'dot-open', label: 'Available', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.BACKED_UP]: {\n color: 'success', icon: 'backup', label: 'Backed Up', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.BOUND]: {\n color: 'success', icon: 'dot', label: 'Bound', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.BUILDING]: {\n color: 'success', icon: 'dot-open', label: 'Building', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.COMPLETED]: {\n color: 'success', icon: 'dot', label: 'Completed', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.CORDONED]: {\n color: 'info', icon: 'tag', label: 'Cordoned', compoundIcon: 'info'\n },\n [STATES_ENUM.COUNT]: {\n color: 'success', icon: 'dot-open', label: 'Count', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.CREATED]: {\n color: 'info', icon: 'tag', label: 'Created', compoundIcon: 'info'\n },\n [STATES_ENUM.CREATING]: {\n color: 'info', icon: 'tag', label: 'Creating', compoundIcon: 'info'\n },\n [STATES_ENUM.DEACTIVATING]: {\n color: 'info', icon: 'adjust', label: 'Deactivating', compoundIcon: 'info'\n },\n [STATES_ENUM.DEGRADED]: {\n color: 'warning', icon: 'error', label: 'Degraded', compoundIcon: 'warning'\n },\n [STATES_ENUM.DENIED]: {\n color: 'error', icon: 'adjust', label: 'Denied', compoundIcon: 'error'\n },\n [STATES_ENUM.DEPLOYED]: {\n color: 'success', icon: 'dot-open', label: 'Deployed', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.DISABLED]: {\n color: 'warning', icon: 'error', label: 'Disabled', compoundIcon: 'warning'\n },\n [STATES_ENUM.DISCONNECTED]: {\n color: 'warning', icon: 'error', label: 'Disconnected', compoundIcon: 'warning'\n },\n [STATES_ENUM.DRAINED]: {\n color: 'info', icon: 'tag', label: 'Drained', compoundIcon: 'info'\n },\n [STATES_ENUM.DRAINING]: {\n color: 'warning', icon: 'tag', label: 'Draining', compoundIcon: 'warning'\n },\n [STATES_ENUM.ERR_APPLIED]: {\n color: 'error', icon: 'error', label: 'Error Applied', compoundIcon: 'error'\n },\n [STATES_ENUM.ERROR]: {\n color: 'error', icon: 'error', label: 'Error', compoundIcon: 'error'\n },\n [STATES_ENUM.ERRORING]: {\n color: 'error', icon: 'error', label: 'Erroring', compoundIcon: 'error'\n },\n [STATES_ENUM.ERRORS]: {\n color: 'error', icon: 'error', label: 'Errors', compoundIcon: 'error'\n },\n [STATES_ENUM.EXPIRED]: {\n color: 'warning', icon: 'error', label: 'Expired', compoundIcon: 'warning'\n },\n [STATES_ENUM.FAIL]: {\n color: 'error', icon: 'error', label: 'Fail', compoundIcon: 'error'\n },\n [STATES_ENUM.FAILED]: {\n color: 'error', icon: 'error', label: 'Failed', compoundIcon: 'error'\n },\n [STATES_ENUM.HEALTHY]: {\n color: 'success', icon: 'dot-open', label: 'Healthy', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.INACTIVE]: {\n color: 'error', icon: 'dot', label: 'Inactive', compoundIcon: 'error'\n },\n [STATES_ENUM.INITIALIZING]: {\n color: 'warning', icon: 'error', label: 'Initializing', compoundIcon: 'warning'\n },\n [STATES_ENUM.INPROGRESS]: {\n color: 'info', icon: 'spinner', label: 'In Progress', compoundIcon: 'info'\n },\n [STATES_ENUM.INFO]: {\n color: 'info', icon: 'info', label: 'Info', compoundIcon: 'info'\n },\n [STATES_ENUM.LOCKED]: {\n color: 'warning', icon: 'adjust', label: 'Locked', compoundIcon: 'warning'\n },\n [STATES_ENUM.MIGRATING]: {\n color: 'info', icon: 'info', label: 'Migrated', compoundIcon: 'info'\n },\n [STATES_ENUM.MISSING]: {\n color: 'warning', icon: 'adjust', label: 'Missing', compoundIcon: 'warning'\n },\n [STATES_ENUM.MODIFIED]: {\n color: 'warning', icon: 'edit', label: 'Modified', compoundIcon: 'warning'\n },\n [STATES_ENUM.NOT_APPLICABLE]: {\n color: 'warning', icon: 'tag', label: 'Not Applicable', compoundIcon: 'warning'\n },\n [STATES_ENUM.NOT_APLLIED]: {\n color: 'warning', icon: 'tag', label: 'Not Applied', compoundIcon: 'warning'\n },\n [STATES_ENUM.NOT_READY]: {\n color: 'warning', icon: 'tag', label: 'Not Ready', compoundIcon: 'warning'\n },\n [STATES_ENUM.OFF]: {\n color: 'darker', icon: 'error', label: 'Off'\n },\n [STATES_ENUM.ON_GOING]: {\n color: 'info', icon: 'info', label: 'Info', compoundIcon: 'info'\n },\n [STATES_ENUM.ORPHANED]: {\n color: 'warning', icon: 'tag', label: 'Orphaned', compoundIcon: 'warning'\n },\n [STATES_ENUM.OTHER]: {\n color: 'info', icon: 'info', label: 'Other', compoundIcon: 'info'\n },\n [STATES_ENUM.OUT_OF_SYNC]: {\n color: 'warning', icon: 'tag', label: 'Out Of Sync', compoundIcon: 'warning'\n },\n [STATES_ENUM.PASS]: {\n color: 'success', icon: 'dot-dotfill', label: 'Pass', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.PASSED]: {\n color: 'success', icon: 'dot-dotfill', label: 'Passed', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.PAUSED]: {\n color: 'info', icon: 'info', label: 'Paused', compoundIcon: 'info'\n },\n [STATES_ENUM.PENDING]: {\n color: 'info', icon: 'tag', label: 'Pending', compoundIcon: 'info'\n },\n [STATES_ENUM.PROVISIONING]: {\n color: 'info', icon: 'dot', label: 'Provisioning', compoundIcon: 'info'\n },\n [STATES_ENUM.PROVISIONED]: {\n color: 'success', icon: 'dot', label: 'Provisioned', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.PURGED]: {\n color: 'error', icon: 'purged', label: 'Purged', compoundIcon: 'error'\n },\n [STATES_ENUM.PURGING]: {\n color: 'info', icon: 'purged', label: 'Purging', compoundIcon: 'info'\n },\n [STATES_ENUM.READY]: {\n color: 'success', icon: 'dot-open', label: 'Ready', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.RECONNECTING]: {\n color: 'error', icon: 'error', label: 'Reconnecting', compoundIcon: 'error'\n },\n [STATES_ENUM.REGISTERING]: {\n color: 'info', icon: 'tag', label: 'Registering', compoundIcon: 'info'\n },\n [STATES_ENUM.REINITIALIZING]: {\n color: 'warning', icon: 'error', label: 'Reinitializing', compoundIcon: 'warning'\n },\n [STATES_ENUM.RELEASED]: {\n color: 'warning', icon: 'error', label: 'Released', compoundIcon: 'warning'\n },\n [STATES_ENUM.REMOVED]: {\n color: 'error', icon: 'trash', label: 'Removed', compoundIcon: 'error'\n },\n [STATES_ENUM.REMOVING]: {\n color: 'info', icon: 'trash', label: 'Removing', compoundIcon: 'info'\n },\n [STATES_ENUM.REQUESTED]: {\n color: 'info', icon: 'tag', label: 'Requested', compoundIcon: 'info'\n },\n [STATES_ENUM.RESTARTING]: {\n color: 'info', icon: 'adjust', label: 'Restarting', compoundIcon: 'info'\n },\n [STATES_ENUM.RESTORING]: {\n color: 'info', icon: 'medicalcross', label: 'Restoring', compoundIcon: 'info'\n },\n [STATES_ENUM.RESIZING]: {\n color: 'warning', icon: 'dot', label: 'Resizing', compoundIcon: 'warning'\n },\n [STATES_ENUM.RUNNING]: {\n color: 'success', icon: 'dot-open', label: 'Running', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.SKIP]: {\n color: 'info', icon: 'dot-open', label: 'Skip', compoundIcon: 'info'\n },\n [STATES_ENUM.SKIPPED]: {\n color: 'info', icon: 'dot-open', label: 'Skipped', compoundIcon: 'info'\n },\n [STATES_ENUM.STARTING]: {\n color: 'info', icon: 'adjust', label: 'Starting', compoundIcon: 'info'\n },\n [STATES_ENUM.STOPPED]: {\n color: 'error', icon: 'dot', label: 'Stopped', compoundIcon: 'error'\n },\n [STATES_ENUM.STOPPING]: {\n color: 'info', icon: 'adjust', label: 'Stopping', compoundIcon: 'info'\n },\n [STATES_ENUM.SUCCEEDED]: {\n color: 'success', icon: 'dot-dotfill', label: 'Succeeded', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.SUCCESS]: {\n color: 'success', icon: 'dot-open', label: 'Success', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.SUCCESSFUL]: {\n color: 'success', icon: 'dot-open', label: 'Successful'\n },\n [STATES_ENUM.SUPERSEDED]: {\n color: 'info', icon: 'dot-open', label: 'Superseded', compoundIcon: 'info'\n },\n [STATES_ENUM.SUSPENDED]: {\n color: 'info', icon: 'pause', label: 'Suspended', compoundIcon: 'info'\n },\n [STATES_ENUM.UNAVAILABLE]: {\n color: 'error', icon: 'error', label: 'Unavailable', compoundIcon: 'error'\n },\n [STATES_ENUM.UNHEALTHY]: {\n color: 'error', icon: 'error', label: 'Unhealthy', compoundIcon: 'error'\n },\n [STATES_ENUM.UNINSTALLED]: {\n color: 'info', icon: 'trash', label: 'Uninstalled', compoundIcon: 'info'\n },\n [STATES_ENUM.UNINSTALLING]: {\n color: 'info', icon: 'trash', label: 'Uninstalling', compoundIcon: 'info'\n },\n [STATES_ENUM.UNKNOWN]: {\n color: 'warning', icon: 'x', label: 'Unknown', compoundIcon: 'warning'\n },\n [STATES_ENUM.UNTRIGGERED]: {\n color: 'success', icon: 'tag', label: 'Untriggered', compoundIcon: 'checkmark'\n },\n [STATES_ENUM.UPDATING]: {\n color: 'warning', icon: 'tag', label: 'Updating', compoundIcon: 'warning'\n },\n [STATES_ENUM.WAIT_APPLIED]: {\n color: 'info', icon: 'tag', label: 'Wait Applied', compoundIcon: 'info'\n },\n [STATES_ENUM.WAIT_CHECKIN]: {\n color: 'warning', icon: 'tag', label: 'Wait Checkin', compoundIcon: 'warning'\n },\n [STATES_ENUM.WAITING]: {\n color: 'info', icon: 'tag', label: 'Waiting', compoundIcon: 'info'\n },\n [STATES_ENUM.WARNING]: {\n color: 'warning', icon: 'error', label: 'Warning', compoundIcon: 'warning'\n },\n [STATES_ENUM.DEPLOYING]: {\n color: 'info', icon: 'info', label: 'Deploying', compoundIcon: 'info'\n },\n};\n\nexport function getStatesByType(type = 'info') {\n const out = {\n info: [],\n error: [],\n success: [],\n warning: [],\n unknown: [],\n };\n\n forIn(STATES, (state, stateKey) => {\n if (state.color) {\n if (out[state.color]) {\n out[state.color].push(stateKey);\n } else {\n out.unknown.push(stateKey);\n }\n }\n });\n\n return out;\n}\n\nconst SORT_ORDER = {\n error: 1,\n warning: 2,\n info: 3,\n success: 4,\n ready: 5,\n notready: 6,\n other: 7,\n};\n\nexport function getStateLabel(state) {\n const lowercaseState = state.toLowerCase();\n\n return STATES[lowercaseState] ? STATES[lowercaseState].label : STATES[STATES_ENUM.UNKNOWN].label;\n}\n\nexport function colorForState(state, isError, isTransitioning) {\n if ( isError ) {\n return 'text-error';\n }\n\n if ( isTransitioning ) {\n return 'text-info';\n }\n\n const key = (state || 'active').toLowerCase();\n let color;\n\n if ( STATES[key] && STATES[key].color ) {\n color = maybeFn.call(this, STATES[key].color);\n }\n\n if ( !color ) {\n color = DEFAULT_COLOR;\n }\n\n return `text-${ color }`;\n}\n\nexport function stateDisplay(state) {\n // @TODO use translations\n const key = (state || 'active').toLowerCase();\n\n if ( REMAP_STATE[key] ) {\n return REMAP_STATE[key];\n }\n\n return key.split(/-/).map(ucFirst).join('-');\n}\n\nexport function stateSort(color, display) {\n color = color.replace(/^(text|bg)-/, '');\n\n return `${ SORT_ORDER[color] || SORT_ORDER['other'] } ${ display }`;\n}\n\nfunction maybeFn(val) {\n if ( isFunction(val) ) {\n return val(this);\n }\n\n return val;\n}\n\nexport default class Resource {\n constructor(data, ctx, rehydrateNamespace = null, setClone = false) {\n for ( const k in data ) {\n this[k] = data[k];\n }\n\n Object.defineProperty(this, '$ctx', {\n value: ctx,\n enumerable: false,\n });\n\n if ( rehydrateNamespace ) {\n Object.defineProperty(this, '__rehydrate', {\n value: rehydrateNamespace,\n enumerable: true,\n configurable: true\n });\n }\n\n if ( setClone ) {\n Object.defineProperty(this, '__clone', {\n value: true,\n enumerable: true,\n configurable: true,\n writable: true\n });\n }\n }\n\n get '$getters'() {\n return this.$ctx.getters;\n }\n\n get '$rootGetters'() {\n return this.$ctx.rootGetters;\n }\n\n get '$dispatch'() {\n return this.$ctx.dispatch;\n }\n\n get '$state'() {\n return this.$ctx.state;\n }\n\n get '$rootState'() {\n return this.$ctx.rootState;\n }\n\n get customValidationRules() {\n return [\n /**\n * Essentially a fake schema object with additional params to extend validation\n *\n * @param {nullable} Value is nullable\n * @param {path} Path on the resource to the value to validate\n * @param {required} Value required\n * @param {requiredIf} Value required if value at path not empty\n * @param {translationKey} Human readable display key for param in path e.g. metadata.name === Name\n * @param {type} Type of field to validate\n * @param {validators} array of strings where item is name of exported validator function in custom-validators, args can be passed by prepending args separated by colon. e.g maxLength:63\n */\n /* {\n nullable: false,\n path: 'spec.ports',\n required: true,\n type: 'array',\n validators: ['servicePort'],\n } */\n ];\n }\n\n get _key() {\n const m = this.metadata;\n\n if ( m ) {\n if ( m.uid ) {\n return m.uid;\n }\n\n if ( m.namespace ) {\n return `${ this.type }/${ m.namespace }/${ m.name }`;\n }\n }\n\n if ( this.id ) {\n return `${ this.type }/${ this.id }`;\n }\n\n return `${ this.type }/${ Math.random() }`;\n }\n\n get schema() {\n return this.$getters['schemaFor'](this.type);\n }\n\n toString() {\n return `[${ this.type }: ${ this.id }]`;\n }\n\n get typeDisplay() {\n const schema = this.schema;\n\n if ( schema ) {\n return this.$rootGetters['type-map/labelFor'](schema);\n }\n\n return '?';\n }\n\n get nameDisplay() {\n return this.displayName || this.spec?.displayName || this.metadata?.annotations?.[NORMAN_NAME] || this.name || this.metadata?.name || this.id;\n }\n\n get nameSort() {\n return sortableNumericSuffix(this.nameDisplay).toLowerCase();\n }\n\n get namespacedName() {\n const namespace = this.metadata?.namespace;\n const name = this.nameDisplay;\n\n if ( namespace ) {\n return `${ namespace }:${ name }`;\n }\n\n return name;\n }\n\n get namespacedNameSort() {\n return sortableNumericSuffix(this.namespacedName).toLowerCase();\n }\n\n get groupByLabel() {\n const name = this.metadata?.namespace;\n let out;\n\n if ( name ) {\n out = this.t('resourceTable.groupLabel.namespace', { name: escapeHtml(name) });\n } else {\n out = this.t('resourceTable.groupLabel.notInANamespace');\n }\n\n return out;\n }\n\n setLabels(/* val */) {\n throw new Error('Implement setLabels in subclass');\n }\n\n setLabel(/* key, val */) {\n throw new Error('Implement setLabel in subclass');\n }\n\n setAnnotations(val) {\n throw new Error('Implement setAnnotations in subclass');\n }\n\n setAnnotation(key, val) {\n throw new Error('Implement setAnnotation in subclass');\n }\n\n // You can override the displayed by providing your own stateDisplay (and possibly using the function exported above)\n get stateDisplay() {\n return stateDisplay(this.state);\n }\n\n get stateColor() {\n return colorForState.call(\n this,\n this.state,\n this.stateObj?.error,\n this.stateObj?.transitioning\n );\n }\n\n get stateBackground() {\n return this.stateColor.replace('text-', 'bg-');\n }\n\n get stateIcon() {\n let trans = false;\n let error = false;\n\n if ( this.metadata && this.metadata.state ) {\n trans = this.metadata.state.transitioning;\n error = this.metadata.state.error;\n }\n\n if ( trans ) {\n return 'icon icon-spinner icon-spin';\n }\n\n if ( error ) {\n return 'icon icon-error';\n }\n\n const key = (this.state || '').toLowerCase();\n let icon;\n\n if ( STATES[key] && STATES[key].icon ) {\n icon = maybeFn.call(this, STATES[key].icon);\n }\n\n if ( !icon ) {\n icon = DEFAULT_ICON;\n }\n\n return `icon icon-${ icon }`;\n }\n\n get stateSort() {\n return stateSort(this.stateColor, this.stateDisplay);\n }\n\n get stateDescription() {\n const trans = this.stateObj?.transitioning || false;\n const error = this.stateObj?.error || false;\n const message = this.stateObj?.message;\n\n return trans || error ? ucFirst(message) : '';\n }\n\n get stateObj() {\n return this.metadata?.state;\n }\n\n // ------------------------------------------------------------------\n\n waitForTestFn(fn, msg, timeoutMs, intervalMs) {\n return waitFor(() => fn.apply(this), msg, timeoutMs || DEFAULT_WAIT_TMIMEOUT, intervalMs || DEFAULT_WAIT_INTERVAL, true);\n }\n\n waitForState(state, timeout, interval) {\n return this.waitForTestFn(() => {\n return (this.state || '').toLowerCase() === state.toLowerCase();\n }, `state=${ state }`, timeout, interval);\n }\n\n waitForTransition() {\n return this.waitForTestFn(() => {\n return !this.transitioning;\n }, 'transition completion', undefined, undefined);\n }\n\n waitForAction(name) {\n return this.waitForTestFn(() => {\n return this.hasAction(name);\n }, `action=${ name }`, undefined, undefined);\n }\n\n waitForLink(name) {\n return this.waitForTestFn(() => {\n return this.hasLink(name);\n }, `link=${ name }`, undefined, undefined);\n }\n\n hasCondition(condition) {\n return this.isCondition(condition, null);\n }\n\n isCondition(condition, withStatus = 'True') {\n if ( !this.status || !this.status.conditions ) {\n return false;\n }\n\n const entry = findBy((this.status.conditions || []), 'type', condition);\n\n if ( !entry ) {\n return false;\n }\n\n if ( !withStatus ) {\n return true;\n }\n\n return (entry.status || '').toLowerCase() === `${ withStatus }`.toLowerCase();\n }\n\n waitForCondition(name, withStatus = 'True', timeoutMs = DEFAULT_WAIT_TMIMEOUT, intervalMs = DEFAULT_WAIT_INTERVAL) {\n return this.waitForTestFn(() => {\n return this.isCondition(name, withStatus);\n }, `condition ${ name }=${ withStatus }`, timeoutMs, intervalMs);\n }\n\n // ------------------------------------------------------------------\n\n get availableActions() {\n const all = this._availableActions;\n\n // Remove disabled items and consecutive dividers\n let last = null;\n const out = all.filter((item) => {\n if ( item.enabled === false ) {\n return false;\n }\n\n const cur = item.divider;\n const ok = !cur || (cur && !last);\n\n last = cur;\n\n return ok;\n });\n\n // Remove dividers at the beginning\n while ( out.length && out[0].divider ) {\n out.shift();\n }\n\n // Remove dividers at the end\n while ( out.length && out[out.length - 1].divider ) {\n out.pop();\n }\n\n // Remove consecutive dividers in the middle\n for ( let i = 1 ; i < out.length ; i++ ) {\n if ( out[i].divider && out[i - 1].divider ) {\n removeAt(out, i, 1);\n i--;\n }\n }\n\n return out;\n }\n\n // You can add custom actions by overriding your own availableActions (and probably reading super._availableActions)\n get _availableActions() {\n // get menu actions available by plugins configuration\n const currentRoute = this.currentRouter().app._route;\n const extensionMenuActions = getApplicableExtensionEnhancements(this.$rootState, ExtensionPoint.ACTION, ActionLocation.TABLE, currentRoute, this);\n\n let all = [\n { divider: true },\n {\n action: this.canUpdate ? 'goToEdit' : 'goToViewConfig',\n label: this.t(this.canUpdate ? 'action.edit' : 'action.view'),\n icon: 'icon icon-edit',\n enabled: this.canCustomEdit,\n },\n {\n action: this.canEditYaml ? 'goToEditYaml' : 'goToViewYaml',\n label: this.t(this.canEditYaml ? 'action.editYaml' : 'action.viewYaml'),\n icon: 'icon icon-file',\n enabled: this.canYaml,\n },\n {\n action: (this.canCustomEdit ? 'goToClone' : 'cloneYaml'),\n label: this.t('action.clone'),\n icon: 'icon icon-copy',\n enabled: this.canClone && this.canCreate && (this.canCustomEdit || this.canYaml),\n },\n { divider: true },\n {\n action: 'download',\n label: this.t('action.download'),\n icon: 'icon icon-download',\n bulkable: true,\n bulkAction: 'downloadBulk',\n enabled: this.canYaml,\n weight: -9,\n },\n {\n action: 'viewInApi',\n label: this.t('action.viewInApi'),\n icon: 'icon icon-external-link',\n enabled: this.canViewInApi,\n },\n {\n action: 'promptRemove',\n altAction: 'remove',\n label: this.t('action.remove'),\n icon: 'icon icon-trash',\n bulkable: true,\n enabled: this.canDelete,\n bulkAction: 'promptRemove',\n weight: -10, // Delete always goes last\n },\n ];\n\n // Extension actions get added to the end, so add a divider if there are any\n if (extensionMenuActions.length) {\n // Add a divider first\n all.push({ divider: true });\n all = all.concat(extensionMenuActions);\n }\n\n return all;\n }\n\n // ------------------------------------------------------------------\n\n get canDelete() {\n return this._canDelete;\n }\n\n get _canDelete() {\n return this.hasLink('remove') && this.$rootGetters['type-map/optionsFor'](this.type).isRemovable;\n }\n\n get canClone() {\n return true;\n }\n\n get canUpdate() {\n return this.hasLink('update') && this.$rootGetters['type-map/optionsFor'](this.type).isEditable;\n }\n\n get canCustomEdit() {\n return this.$rootGetters['type-map/hasCustomEdit'](this.type, this.id);\n }\n\n get canCreate() {\n if ( this.schema && !this.schema?.collectionMethods.find((x) => x.toLowerCase() === 'post') ) {\n return false;\n }\n\n return this.$rootGetters['type-map/optionsFor'](this.type).isCreatable;\n }\n\n get canViewInApi() {\n return this.hasLink('self') && this.$rootGetters['prefs/get'](VIEW_IN_API);\n }\n\n get canYaml() {\n return this.hasLink('view');\n }\n\n get canEditYaml() {\n return this.schema?.resourceMethods?.find((x) => x === 'blocked-PUT') ? false : this.canUpdate;\n }\n\n // ------------------------------------------------------------------\n\n hasLink(linkName) {\n return !!this.linkFor(linkName);\n }\n\n linkFor(linkName) {\n return (this.links || {})[linkName];\n }\n\n followLink(linkName, opt = {}) {\n if ( !opt.url ) {\n opt.url = (this.links || {})[linkName];\n }\n\n if ( opt.urlSuffix ) {\n opt.url += opt.urlSuffix;\n }\n\n if ( !opt.url ) {\n throw new Error(`Unknown link ${ linkName } on ${ this.type } ${ this.id }`);\n }\n\n return this.$dispatch('request', { opt, type: this.type } );\n }\n\n // ------------------------------------------------------------------\n\n hasAction(actionName) {\n return !!this.actionLinkFor(actionName);\n }\n\n actionLinkFor(actionName) {\n return (this.actions || this.actionLinks || {})[actionName];\n }\n\n doAction(actionName, body, opt = {}) {\n return this.$dispatch('resourceAction', {\n resource: this,\n actionName,\n body,\n opt,\n });\n }\n\n async doActionGrowl(actionName, body, opt = {}) {\n try {\n await this.$dispatch('resourceAction', {\n resource: this,\n actionName,\n body,\n opt,\n });\n } catch (err) {\n this.$dispatch('growl/fromError', {\n title: this.$rootGetters['i18n/t']('generic.notification.title.error'),\n err: err.data || err,\n }, { root: true });\n }\n }\n\n // ------------------------------------------------------------------\n\n patch(data, opt = {}, merge = false, alertOnError = false) {\n if ( !opt.url ) {\n // Workaround for the links not being correct - view link is the only one that seems correct\n opt.url = this.linkFor('view') || this.linkFor('self');\n }\n\n opt.method = 'patch';\n opt.headers = opt.headers || {};\n\n if (!opt.headers['content-type']) {\n const contentType = merge ? 'application/strategic-merge-patch+json' : 'application/json-patch+json';\n\n opt.headers['content-type'] = contentType;\n }\n opt.data = data;\n\n const dispatch = this.$dispatch('request', { opt, type: this.type } );\n\n return !alertOnError ? dispatch : dispatch.catch((e) => {\n const title = this.t('resource.errors.update', { name: this.name });\n\n console.error(title, e); // eslint-disable-line no-console\n\n this.$dispatch('growl/error', {\n title,\n message: e?.message,\n timeout: 5000\n }, { root: true });\n });\n }\n\n save() {\n return this._save(...arguments);\n }\n\n /**\n * Allow to handle the response of the save request\n * @param {*} res Full request response\n */\n processSaveResponse(res) { }\n\n async _save(opt = {}) {\n delete this.__rehydrate;\n delete this.__clone;\n\n const forNew = !this.id;\n\n const errors = await this.validationErrors(this, opt.ignoreFields);\n\n if (!isEmpty(errors)) {\n return Promise.reject(errors);\n }\n\n if ( this.metadata?.resourceVersion ) {\n this.metadata.resourceVersion = `${ this.metadata.resourceVersion }`;\n }\n\n if ( !opt.url ) {\n if ( forNew ) {\n const schema = this.$getters['schemaFor'](this.type);\n let url = schema.linkFor('collection');\n\n if ( schema.attributes && schema.attributes.namespaced && this.metadata && this.metadata.namespace ) {\n url += `/${ this.metadata.namespace }`;\n }\n\n opt.url = url;\n } else {\n opt.url = this.linkFor('update') || this.linkFor('self');\n }\n }\n\n if ( !opt.method ) {\n opt.method = ( forNew ? 'post' : 'put' );\n }\n\n if ( !opt.headers ) {\n opt.headers = {};\n }\n\n if ( !opt.headers['content-type'] ) {\n opt.headers['content-type'] = 'application/json';\n }\n\n if ( !opt.headers['accept'] ) {\n opt.headers['accept'] = 'application/json';\n }\n\n // @TODO remove this once the API maps steve _type <-> k8s type in both directions\n opt.data = this.toSave() || { ...this };\n\n if (opt?.data._type) {\n opt.data.type = opt.data._type;\n }\n\n if (opt?.data._name) {\n opt.data.name = opt.data._name;\n }\n\n if (opt?.data._labels) {\n opt.data.labels = opt.data._labels;\n }\n\n if (opt?.data._annotations) {\n opt.data.annotations = opt.data._annotations;\n }\n\n // handle \"replace\" opt as a query param _replace=true for norman PUT requests\n if (opt?.replace && opt.method === 'put') {\n const argParam = opt.url.includes('?') ? '&' : '?';\n\n opt.url = `${ opt.url }${ argParam }_replace=true`;\n delete opt.replace;\n }\n\n try {\n const res = await this.$dispatch('request', { opt, type: this.type } );\n\n // Allow to process response independently from the related models\n this.processSaveResponse(res);\n\n // Steve sometimes returns Table responses instead of the resource you just saved.. ignore\n if ( res && res.kind !== 'Table') {\n await this.$dispatch('load', { data: res, existing: (forNew ? this : undefined ) });\n }\n } catch (e) {\n if ( this.type && this.id && e?._status === 409) {\n // If there's a conflict, try to load the new version\n await this.$dispatch('find', {\n type: this.type,\n id: this.id,\n opt: { force: true }\n });\n }\n\n return Promise.reject(e);\n }\n\n return this;\n }\n\n remove() {\n return this._remove(...arguments);\n }\n\n async _remove(opt = {}) {\n if ( !opt.url ) {\n opt.url = this.linkFor('self');\n }\n\n opt.method = 'delete';\n\n const res = await this.$dispatch('request', { opt, type: this.type } );\n\n if ( res?._status === 204 ) {\n // If there's no body, assume the resource was immediately deleted\n // and drop it from the store as if a remove event happened.\n await this.$dispatch('ws.resource.remove', { data: this });\n }\n }\n\n // ------------------------------------------------------------------\n\n currentRoute() {\n if ( process.server ) {\n return this.$rootState.$route;\n } else {\n return window.$nuxt.$route;\n }\n }\n\n currentRouter() {\n if ( process.server ) {\n return this.$rootState.$router;\n } else {\n return window.$nuxt.$router;\n }\n }\n\n get listLocation() {\n return {\n name: `c-cluster-product-resource`,\n params: {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n }\n };\n }\n\n get _detailLocation() {\n const schema = this.$getters['schemaFor'](this.type);\n\n const id = this.id?.replace(/.*\\//, '');\n\n return {\n name: `c-cluster-product-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id`,\n params: {\n product: this.$rootGetters['productId'],\n cluster: this.$rootGetters['clusterId'],\n resource: this.type,\n namespace: this.metadata?.namespace,\n id,\n }\n };\n }\n\n get detailLocation() {\n return this._detailLocation;\n }\n\n goToDetail() {\n this.currentRouter().push(this.detailLocation);\n }\n\n goToClone(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _CLONE,\n [AS]: _UNFLAG,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n goToEdit(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _EDIT,\n [AS]: _UNFLAG,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n goToViewConfig(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _VIEW,\n [AS]: _CONFIG,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n goToEditYaml() {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _EDIT,\n [AS]: _YAML\n };\n\n this.currentRouter().push(location);\n }\n\n goToViewYaml() {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _VIEW,\n [AS]: _YAML\n };\n\n this.currentRouter().push(location);\n }\n\n cloneYaml(moreQuery = {}) {\n const location = this.detailLocation;\n\n location.query = {\n ...location.query,\n [MODE]: _CLONE,\n [AS]: _YAML,\n ...moreQuery\n };\n\n this.currentRouter().push(location);\n }\n\n async download() {\n const value = await this.followLink('view', { headers: { accept: 'application/yaml' } });\n const data = await this.$dispatch('cleanForDownload', value.data);\n\n downloadFile(`${ this.nameDisplay }.yaml`, data, 'application/yaml');\n }\n\n async downloadBulk(items) {\n const files = {};\n const names = [];\n\n for ( const item of items ) {\n let name = `${ item.nameDisplay }.yaml`;\n let i = 2;\n\n while ( names.includes(name) ) {\n name = `${ item.nameDisplay }_${ i++ }.yaml`;\n }\n\n names.push(name);\n }\n\n await eachLimit(items, 10, (item, idx) => {\n return item.followLink('view', { headers: { accept: 'application/yaml' } } ).then(async(data) => {\n const yaml = data.data || data;\n const cleanedYaml = await this.$dispatch('cleanForDownload', yaml);\n\n files[`resources/${ names[idx] }`] = cleanedYaml;\n });\n });\n\n const zip = await generateZip(files);\n\n downloadFile('resources.zip', zip, 'application/zip');\n }\n\n viewInApi() {\n window.open(this.links.self, '_blank');\n }\n\n promptRemove(resources) {\n if ( !resources ) {\n resources = this;\n }\n\n this.$dispatch('promptRemove', resources);\n }\n\n get confirmRemove() {\n return false;\n }\n\n applyDefaults() {\n }\n\n get urlFromAttrs() {\n const schema = this.$getters['schemaFor'](this.type);\n const { metadata:{ namespace = 'default' } } = this;\n let url = schema.links.collection;\n\n const attributes = schema?.attributes;\n\n if (!attributes) {\n throw new Error('Attributes must be present on the schema');\n }\n const { group, resource } = attributes;\n\n url = `${ url.slice(0, url.indexOf('/v1')) }/apis/${ group }/namespaces/${ namespace }/${ resource }`;\n\n return url;\n }\n\n // convert yaml to object, clean for new if creating/cloning\n // map _type to type\n cleanYaml(yaml, mode = 'edit') {\n try {\n const obj = jsyaml.load(yaml);\n\n if (mode !== 'edit') {\n this.$dispatch(`cleanForNew`, obj);\n }\n\n if (obj._type) {\n obj.type = obj._type;\n delete obj._type;\n }\n const out = jsyaml.dump(obj, { skipInvalid: true });\n\n return out;\n } catch (e) {\n return null;\n }\n }\n\n cleanForNew() {\n this.$dispatch(`cleanForNew`, this);\n }\n\n cleanForDiff() {\n this.$dispatch(`cleanForDiff`, this.toJSON());\n }\n\n yamlForSave(yaml) {\n try {\n const obj = jsyaml.load(yaml);\n\n if (obj) {\n if (this._type) {\n obj._type = obj.type;\n }\n\n return jsyaml.dump(obj);\n }\n } catch (e) {\n return null;\n }\n }\n\n async saveYaml(yaml) {\n /* Multipart support, but need to know the right cluster and work for management store\n and \"apply\" seems to only work for create, not update.\n\n const ary = jsyaml.loadAll(yaml); // will throw on invalid yaml, and return one or more documents (usually one)\n\n if ( ary.length > 1 ) {\n await this.$rootGetters['currentCluster'].doAction('apply', {\n yaml,\n defaultNamespace: this.metadata.namespace,\n });\n }\n\n const parsed = ary[0];\n */\n\n const parsed = jsyaml.load(yaml); // will throw on invalid yaml, and return one or more documents (usually one)\n\n if ( this.schema?.attributes?.namespaced && !parsed.metadata.namespace ) {\n const err = this.$rootGetters['i18n/t']('resourceYaml.errors.namespaceRequired');\n\n throw err;\n }\n\n let res;\n const isCreate = !this.id;\n const headers = {\n 'content-type': 'application/yaml',\n accept: 'application/json',\n };\n\n if ( isCreate ) {\n res = await this.schema.followLink('collection', {\n method: 'POST',\n headers,\n data: yaml\n });\n } else {\n res = await this.followLink('update', {\n method: 'PUT',\n headers,\n data: yaml\n });\n }\n\n await this.$dispatch(`load`, {\n data: res,\n existing: (isCreate ? this : undefined)\n });\n\n if (this.isSpoofed) {\n await this.$dispatch('cluster/findAll', { type: this.type, opt: { force: true } }, { root: true });\n }\n }\n\n get modelValidationRules() {\n const rules = [];\n\n const customValidationRulesets = this?.customValidationRules\n .filter((rule) => !!rule.validators || !!rule.required)\n .map((rule) => {\n const formRules = formRulesGenerator(this.t, { displayKey: rule?.translationKey ? this.t(rule.translationKey) : 'Value' });\n\n return {\n path: rule.path,\n rules: [\n ...(rule.validators || []),\n ...rule.required ? ['required'] : [],\n ...['dnsLabel', 'dnsLabelRestricted', 'hostname'].includes(rule.type) ? [rule.type] : []\n ]\n .map((rule) => {\n if (rule.includes(':')) {\n const [ruleKey, ruleArg] = rule.split(':');\n\n return formRules[ruleKey](ruleArg);\n }\n\n return formRules[rule];\n }\n )\n .filter((rule) => !!rule)\n };\n })\n .filter((ruleset) => ruleset.rules.length > 0);\n\n rules.push(...customValidationRulesets);\n\n return rules;\n }\n\n customValidationErrors(data, ignorePaths = []) {\n const errors = [];\n\n let { customValidationRules } = this;\n\n if (!isEmpty(customValidationRules)) {\n if (isFunction(customValidationRules)) {\n customValidationRules = customValidationRules();\n }\n\n customValidationRules.filter((rule) => !ignorePaths.includes(rule.path)).forEach((rule) => {\n const {\n path,\n requiredIf: requiredIfPath,\n validators = [],\n type: fieldType,\n } = rule;\n let pathValue = get(data, path);\n\n const parsedRules = compact((validators || []));\n let displayKey = path;\n\n if (rule.translationKey && this.$rootGetters['i18n/exists'](rule.translationKey)) {\n displayKey = this.t(rule.translationKey);\n }\n\n if (isString(pathValue)) {\n pathValue = pathValue.trim();\n }\n if (requiredIfPath) {\n const reqIfVal = get(data, requiredIfPath);\n\n if (!isEmpty(reqIfVal) && (isEmpty(pathValue) && pathValue !== 0)) {\n errors.push(this.t('validation.required', { key: displayKey }));\n }\n }\n\n validateLength(pathValue, rule, displayKey, this.$rootGetters, errors);\n validateChars(pathValue, rule, displayKey, this.$rootGetters, errors);\n\n if ( !isEmpty(pathValue) && DNS_LIKE_TYPES.includes(fieldType) ) {\n // DNS types should be lowercase\n const tolower = (pathValue || '').toLowerCase();\n\n if ( tolower !== pathValue ) {\n pathValue = tolower;\n\n Vue.set(data, path, pathValue);\n }\n\n errors.push(...validateDnsLikeTypes(pathValue, fieldType, displayKey, this.$rootGetters, errors));\n }\n\n parsedRules.forEach((validator) => {\n const validatorAndArgs = validator.split(':');\n const validatorName = validatorAndArgs.slice(0, 1);\n const validatorArgs = validatorAndArgs.slice(1) || null;\n const validatorExists = Object.prototype.hasOwnProperty.call(CustomValidators, validatorName);\n\n if (!isEmpty(validatorName) && validatorExists) {\n CustomValidators[validatorName](pathValue, this.$rootGetters, errors, validatorArgs, displayKey, data);\n } else if (!isEmpty(validatorName) && !validatorExists) {\n // Check if validator is imported from plugin\n const pluginValidator = this.$rootState.$plugin?.getValidator(validatorName);\n\n if (pluginValidator) {\n pluginValidator(pathValue, this.$rootGetters, errors, validatorArgs, displayKey, data);\n } else {\n // eslint-disable-next-line\n console.warn(this.t('validation.custom.missing', { validatorName }));\n }\n }\n });\n });\n }\n\n return errors;\n }\n\n validationErrors(data = this, ignoreFields) {\n const errors = [];\n const {\n type: originalType,\n schema\n } = data;\n const type = normalizeType(originalType);\n\n if ( !originalType ) {\n // eslint-disable-next-line\n console.warn(this.t('validation.noType'), data);\n\n return errors;\n }\n\n if ( !schema ) {\n // eslint-disable-next-line\n // console.warn(this.t('validation.noSchema'), originalType, data);\n\n return errors;\n }\n\n const fields = schema.resourceFields || {};\n const keys = Object.keys(fields);\n let field, key, val, displayKey;\n\n for ( let i = 0 ; i < keys.length ; i++ ) {\n const fieldErrors = [];\n\n key = keys[i];\n field = fields[key];\n val = get(data, key);\n displayKey = displayKeyFor(type, key, this.$rootGetters);\n\n const fieldType = field?.type ? normalizeType(field.type) : null;\n const valIsString = isString(val);\n\n if ( ignoreFields && ignoreFields.includes(key) ) {\n continue;\n }\n\n if ( val === undefined ) {\n val = null;\n }\n\n if (valIsString) {\n if (fieldType) {\n Vue.set(data, key, coerceStringTypeToScalarType(val, fieldType));\n }\n\n // Empty strings on nullable string fields -> null\n if ( field.nullable && val.length === 0 && STRING_LIKE_TYPES.includes(fieldType)) {\n val = null;\n\n Vue.set(data, key, val);\n }\n }\n if (fieldType === 'boolean') {\n validateBoolean(val, field, displayKey, this.$rootGetters, fieldErrors);\n } else {\n validateLength(val, field, displayKey, this.$rootGetters, fieldErrors);\n validateChars(val, field, displayKey, this.$rootGetters, fieldErrors);\n }\n\n if (fieldErrors.length > 0) {\n fieldErrors.push(this.t('validation.required', { key: displayKey }));\n errors.push(...fieldErrors);\n continue;\n }\n\n // IDs claim to be these but are lies...\n if ( key !== 'id' && !isEmpty(val) && DNS_LIKE_TYPES.includes(fieldType) ) {\n // DNS types should be lowercase\n const tolower = (val || '').toLowerCase();\n\n if ( tolower !== val ) {\n val = tolower;\n\n Vue.set(data, key, val);\n }\n\n fieldErrors.push(...validateDnsLikeTypes(val, fieldType, displayKey, this.$rootGetters, fieldErrors));\n }\n errors.push(...fieldErrors);\n }\n\n return uniq([...errors, ...this.customValidationErrors(data)]);\n }\n\n get ownersByType() {\n const ownerReferences = this.metadata?.ownerReferences || [];\n const ownersByType = {};\n\n ownerReferences.forEach((owner) => {\n if (!ownersByType[owner.kind]) {\n ownersByType[owner.kind] = [owner];\n } else {\n ownersByType[owner.kind].push(owner);\n }\n });\n\n return ownersByType;\n }\n\n get owners() {\n const owners = [];\n\n for ( const kind in this.ownersByType) {\n const schema = this.$rootGetters['cluster/schema'](kind);\n\n if (schema) {\n const type = schema.id;\n const allOfResourceType = this.$rootGetters['cluster/all']( type );\n\n this.ownersByType[kind].forEach((resource, idx) => {\n const resourceInstance = allOfResourceType.find((resourceByType) => resourceByType?.metadata?.uid === resource.uid);\n\n if (resourceInstance) {\n owners.push(resourceInstance);\n }\n });\n }\n }\n\n return owners;\n }\n\n get details() {\n return this._details;\n }\n\n get _details() {\n const details = [];\n\n if (this.owners?.length > 0) {\n details.push({\n label: this.t('resourceDetail.detailTop.ownerReferences', { count: this.owners.length }),\n formatter: 'ListLinkDetail',\n content: this.owners.map((owner) => ({\n key: owner.id,\n row: owner,\n col: {},\n value: owner.metadata.name\n }))\n });\n }\n\n if (get(this, 'metadata.deletionTimestamp')) {\n details.push({\n label: this.t('resourceDetail.detailTop.deleted'),\n formatter: 'LiveDate',\n formatterOpts: { addSuffix: true },\n content: get(this, 'metadata.deletionTimestamp')\n });\n }\n\n return details;\n }\n\n get t() {\n return this.$rootGetters['i18n/t'];\n }\n\n // Returns array of MODELS that own this resource (async, network call)\n findOwners() {\n return this._getRelationship('owner', 'from');\n }\n\n // Returns array of {type, namespace, id} objects that own this resource (sync)\n getOwners() {\n return this._getRelationship('owner', 'from');\n }\n\n findOwned() {\n return this._findRelationship('owner', 'to');\n }\n\n _relationshipsFor(rel, direction) {\n const out = { selectors: [], ids: [] };\n\n if ( !this.metadata?.relationships?.length ) {\n return out;\n }\n\n for ( const r of this.metadata.relationships ) {\n if ( rel !== 'any' && r.rel !== rel ) {\n continue;\n }\n\n if ( !r[`${ direction }Type`] ) {\n continue;\n }\n\n if ( r.selector ) {\n addObjects(out.selectors, {\n type: r.toType,\n namespace: r.toNamespace,\n selector: r.selector\n });\n } else {\n const type = r[`${ direction }Type`];\n let namespace = r[`${ direction }Namespace`];\n let name = r[`${ direction }Id`];\n\n if ( !namespace && name.includes('/') ) {\n const idx = name.indexOf('/');\n\n namespace = name.substr(0, idx);\n name = name.substr(idx + 1);\n }\n\n const id = (namespace ? `${ namespace }/` : '') + name;\n\n addObject(out.ids, {\n type,\n namespace,\n name,\n id,\n });\n }\n }\n\n return out;\n }\n\n _getRelationship(rel, direction) {\n const res = this._relationshipsFor(rel, direction);\n\n if ( res.selectors?.length ) {\n // eslint-disable-next-line no-console\n console.warn('Sync request for a relationship that is a selector');\n }\n\n return res.ids || [];\n }\n\n async _findRelationship(rel, direction) {\n const { selectors, ids } = this._relationshipsFor(rel, direction);\n const out = [];\n\n for ( const sel of selectors ) {\n const matching = await this.$dispatch('findMatching', sel);\n\n addObjects(out, matching.data);\n }\n\n for ( const obj of ids ) {\n const { type, id } = obj;\n let matching = this.$getters['byId'](type, id);\n\n if ( !matching ) {\n try {\n matching = await this.$dispatch('find', { type, id });\n } catch {\n }\n }\n if (matching) {\n addObject(out, matching);\n }\n }\n\n return out;\n }\n\n get shortId() {\n const splitId = this.id.split('/');\n\n return splitId.length > 1 ? splitId[1] : splitId[0];\n }\n\n toJSON() {\n const out = {};\n const keys = Object.keys(this);\n\n for ( const k of keys ) {\n if ( this[k]?.toJSON ) {\n out[k] = this[k].toJSON();\n } else {\n out[k] = clone(this[k]);\n }\n }\n\n return out;\n }\n\n /**\n * Allow models to override the object that is sent when saving this resource\n */\n toSave() {\n return undefined;\n }\n\n get creationTimestamp() {\n return this.metadata?.creationTimestamp;\n }\n}\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".dropdown-button-group .no-left-border-radius{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-button-group .no-right-border-radius{border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-button-group .btn{line-height:normal;border:0}.dropdown-button-group .btn-group-xs>.btn,.dropdown-button-group .btn-xs,.dropdown-button-group .btn-xs .btn-label{padding:2px 3px;font-size:13px}.dropdown-button-group .v-popover .text-right{margin-top:5px}.dropdown-button-group .v-popover .trigger{height:100%}.dropdown-button-group .v-popover .trigger .icon-container{height:100%;padding:10px 10px 10px 10px}.dropdown-button-group .v-popover .trigger .icon-container i{transform:scale(1)}.dropdown-button-group .v-popover .trigger .icon-container.btn-xs{padding:2px 4px 4px 4px}.dropdown-button-group .v-popover .trigger .icon-container.btn-sm{padding:10px 10px 10px 10px}.dropdown-button-group .v-popover .trigger .icon-container.btn-lg{padding:18px 10px 10px 10px}.dropdown-button-group .v-popover .trigger .icon-container:focus{outline-style:none;box-shadow:none;border-color:transparent}.dropdown-button-group .dropdown-button{background:var(--tooltip-bg);color:var(--link-text);padding:0;display:inline-flex}.dropdown-button-group .dropdown-button .wrapper-content button{border-right:0}.dropdown-button-group .dropdown-button .icon-chevron-down,.dropdown-button-group .dropdown-button>*{color:var(--primary);background-color:transparent}.dropdown-button-group .dropdown-button.bg-primary:hover{background:var(--accent-btn-hover)}.dropdown-button-group .dropdown-button.one-action{position:relative}.dropdown-button-group .dropdown-button.one-action>.btn{padding:15px 35px 15px 15px}.dropdown-button-group .dropdown-button.one-action .v-popover .trigger{position:absolute;top:0;right:0;left:0;bottom:0}.dropdown-button-group .dropdown-button.one-action .v-popover .trigger BUTTON{position:absolute;right:0}.dropdown-button-group .popover{border:none}.dropdown-button-group .tooltip{margin-top:0}.dropdown-button-group .tooltip[x-placement^=bottom] .tooltip-arrow{border-bottom-color:var(--dropdown-border)}.dropdown-button-group .tooltip[x-placement^=bottom] .tooltip-arrow:after{border-bottom-color:var(--dropdown-bg)}.dropdown-button-group .tooltip .tooltip-inner{color:var(--dropdown-text);background-color:var(--dropdown-bg);border:1px solid var(--dropdown-border);padding:0;text-align:left}.dropdown-button-group .tooltip .tooltip-inner LI{padding:10px}.dropdown-button-group .tooltip .tooltip-inner LI.divider{padding-top:0;padding-bottom:0}.dropdown-button-group .tooltip .tooltip-inner LI.divider>.divider-inner{padding:0;border-bottom:1px solid var(--dropdown-divider);width:125%;margin:0 auto}.dropdown-button-group .tooltip .tooltip-inner LI:not(.divider):hover{background-color:var(--dropdown-hover-bg);color:var(--dropdown-hover-text);cursor:pointer}.dropdown-button-group .user-info{border-bottom:1px solid var(--border);display:block}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\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!./Select.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Select.vue?vue&type=template&id=0a48d738&scoped=true&\"\nimport script from \"./Select.vue?vue&type=script&lang=js&\"\nexport * from \"./Select.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Select.vue?vue&type=style&index=0&id=0a48d738&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 \"0a48d738\",\n null\n \n)\n\nexport default component.exports","\n\n \n \n \n \n {{ addLabel }}\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeyValue.vue?vue&type=template&id=e97a00e2&\"\nimport script from \"./KeyValue.vue?vue&type=script&lang=js&\"\nexport * from \"./KeyValue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KeyValue.vue?vue&type=style&index=0&id=e97a00e2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 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, \".labels__header[data-v-5c717a60]{display:flex;justify-content:space-between}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a \n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceYaml.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceYaml.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResourceYaml.vue?vue&type=template&id=9370b8fe&scoped=true&\"\nimport script from \"./ResourceYaml.vue?vue&type=script&lang=js&\"\nexport * from \"./ResourceYaml.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ResourceYaml.vue?vue&type=style&index=0&id=9370b8fe&prod&lang=scss&scoped=true&\"\nimport style1 from \"./ResourceYaml.vue?vue&type=style&index=1&id=9370b8fe&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9370b8fe\",\n null\n \n)\n\nexport default component.exports","// 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!./Labels.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!./Labels.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Labels.vue?vue&type=template&id=5c717a60&scoped=true&\"\nimport script from \"./Labels.vue?vue&type=script&lang=js&\"\nexport * from \"./Labels.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Labels.vue?vue&type=style&index=0&id=5c717a60&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 \"5c717a60\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0c73f405&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","import { SETTING } from '@shell/config/settings';\nimport { COUNT, MANAGEMENT } from '@shell/config/types';\nimport { GC_DEFAULTS, GC_PREFERENCES } from './gc-types';\n\nclass GarbageCollect {\n private static ENABLE_DEBUG_LOGGING = false;\n\n /**\n * Don't run GC if it's been run within 5 seconds\n */\n private static GC_RE_RUN_GAP = 1000 * 5;\n\n private cachedGcPrefs: GC_PREFERENCES = GC_DEFAULTS;\n\n private cachedGcPrefsStamp = '';\n\n private debugLog = (...args: any) => {\n if (GarbageCollect.ENABLE_DEBUG_LOGGING) {\n console.debug('GC', ...args); // eslint-disable-line no-console\n }\n };\n\n /**\n * Time the GC last ran\n */\n private gcLastRun: number | null = 0;\n\n /**\n * To avoid JSON.parse on the `ui-performance` setting keep a local cache\n */\n private getUiPerfGarbageCollection = (rootState: any) => {\n const uiPerfSetting = rootState.management.types[MANAGEMENT.SETTING]?.list.find((s: any) => s.id === SETTING.UI_PERFORMANCE);\n\n if (!uiPerfSetting || !uiPerfSetting.value) {\n // Could be in the process of logging out\n return undefined;\n }\n const stamp = `${ uiPerfSetting.metadata.generation }-${ uiPerfSetting.metadata.resourceVersion }`;\n\n if (this.cachedGcPrefsStamp !== stamp) {\n this.debugLog(`Updating ${ SETTING.UI_PERFORMANCE } cache`);\n this.cachedGcPrefsStamp = stamp;\n const uiPerfSettingParsed = JSON.parse(uiPerfSetting.value);\n\n this.cachedGcPrefs = uiPerfSettingParsed.garbageCollection;\n }\n\n return this.cachedGcPrefs;\n };\n\n /**\n * The last time a resource was accessed by either find or getters style functions\n */\n private lastAccessedCache: {\n [store: string]: {\n [type: string]: number;\n }\n } = {}\n\n /**\n * Track when a logged in route changes.\n */\n private lastRouteChange = 0;\n\n // ------------- GC Enabled ---------------------\n\n gcEnabledAll(pseudoCtx: any, type: string) {\n return this.gcEnabledForStore(pseudoCtx.state) && this.gcEnabledSetting(pseudoCtx) && this.gcEnabledForType(pseudoCtx, type);\n }\n\n gcEnabledSetting(pseudoCtx: any) {\n const { rootState } = pseudoCtx;\n\n // Don't use a getter... as we'll end up triggering ourselves again\n const uiPerfGarbageCollection = this.getUiPerfGarbageCollection(rootState);\n\n return uiPerfGarbageCollection?.enabled;\n }\n\n gcEnabledForStore(state: any) {\n return state?.config?.supportsGc;\n }\n\n /**\n * Store can require certain types are not GC'd (for example `cluster` and `schema`s, `counts`, etc)\n */\n gcEnabledForType(pseudoCtx: any, type: string) {\n const { getters } = pseudoCtx;\n\n if (!type || getters.gcIgnoreTypes[type]) {\n return false;\n }\n\n return true;\n }\n\n gcEnabledInterval(pseudoCtx: any) {\n const { rootState } = pseudoCtx;\n\n // Don't use a getter... as we'll end up triggering ourselves again\n const uiPerfGarbageCollection = this.getUiPerfGarbageCollection(rootState);\n\n return {\n enabled: uiPerfGarbageCollection?.enabledInterval,\n interval: uiPerfGarbageCollection?.interval || 0\n };\n }\n\n gcEnabledRoute(pseudoCtx: any) {\n const { rootState } = pseudoCtx;\n\n // Don't use a getter... as we'll end up triggering ourselves again\n const uiPerfGarbageCollection = this.getUiPerfGarbageCollection(rootState);\n\n return uiPerfGarbageCollection?.enabledOnNavigate;\n }\n\n // ------------- GC (actual) ---------------------\n\n /**\n * Remove stale resource types from the store and stop watching them for changes\n */\n garbageCollect(ctx: any, ignoreTypes: {[type: string]: boolean} = {}) {\n const now = new Date().getTime();\n\n // Is gc currently running OR has run in the past GC_RE_RUN_GAP return early\n if (this.gcLastRun === null || now - this.gcLastRun < GarbageCollect.GC_RE_RUN_GAP) {\n this.debugLog('Skipping (running or recently run)', this.gcLastRun ? new Date(this.gcLastRun) : 'running');\n\n return;\n }\n\n this.gcLastRun = null;\n const gcd: {[type: string]: number} = {};\n\n try {\n const { getters, rootState, dispatch } = ctx;\n\n if (!rootState.clusterReady) {\n this.debugLog('Skipping (cluster not ready)');\n this.gcLastRun = new Date().getTime();\n\n return ;\n }\n this.debugLog(`------ Started ------`);\n\n const uiPerfGarbageCollection = this.getUiPerfGarbageCollection(rootState);\n\n if (!uiPerfGarbageCollection) {\n return ;\n }\n const maxAge = uiPerfGarbageCollection.ageThreshold * 1000;\n const maxCount = uiPerfGarbageCollection.countThreshold;\n\n this.debugLog(`Max Age: ${ maxAge }. Max Count: ${ maxCount }`);// , 'Cache', this.lastAccessedCache\n\n const store = ctx.state.config.namespace;\n\n // this.debugLog('Cache', this.lastAccessedCache);\n\n Object.entries((this.lastAccessedCache[store] || {})).forEach(([type, lastAccessed]) => {\n if (!lastAccessed) {\n // There's no last accessed time... gc is probably disabled in another way\n this.debugLog(`${ type }: Skipping (no accessed time)`);\n\n return;\n }\n\n if (!this.gcEnabledForType(ctx, type)) {\n // This specific store is telling us to ignore the type (for example `cluster` store will not GC schema's, counts, etc)\n this.debugLog(`${ type }: Skipping (type ignored by store)`);\n\n return;\n }\n\n if (ignoreTypes[type]) {\n // We're going to a place that needs the resource\n this.debugLog(`${ type }: Skipping (navigating to type)`);\n\n return;\n }\n\n if (now - lastAccessed <= maxAge) {\n // The resource was recently accessed\n\n this.debugLog(`${ type }: Skipping (recently accessed)`);\n\n return;\n }\n\n if (this.lastRouteChange !== undefined && this.lastRouteChange < lastAccessed ) {\n // The resource is being used in the current route/page\n this.debugLog(`${ type }: Skipping (used in current route/page)`);\n\n return;\n }\n\n const countFromResource = getters.all(COUNT)[0].counts[type]?.summary.count;\n const currentCount = countFromResource ?? 0;\n\n if (currentCount === undefined || currentCount < maxCount) {\n // There's too few resources, we might as well keep them to avoid a network request when we need them again\n this.debugLog(`${ type }: Skipping (too few of resource)`);\n\n return;\n }\n\n this.debugLog(`${ type }: Removing from store`);\n dispatch('forgetType', type);\n gcd[type] = currentCount;\n });\n\n this.gcLastRun = new Date().getTime();\n } catch (e) {\n this.debugLog(`: Error`, e);\n this.gcLastRun = new Date().getTime();\n }\n\n if (Object.keys(gcd).length > 0) {\n console.info('Garbage Collected Resources', gcd); // eslint-disable-line no-console\n }\n\n this.debugLog(`------ Finished ------`);\n }\n\n // ------------- GC Update local cache ---------------------\n\n /**\n * Update the time that the resource type was accessed\n * This needs to run after any type initialisation (aka registerType)\n */\n gcUpdateLastAccessed(pseudoCtx: any, type: string) {\n if (!this.gcEnabledAll(pseudoCtx, type)) {\n return;\n }\n const store = pseudoCtx.state.config.namespace;\n\n if (!this.lastAccessedCache[store]) {\n this.lastAccessedCache[store] = {};\n }\n\n this.lastAccessedCache[store][type] = new Date().getTime();\n }\n\n /**\n * Update the time the user last changed routes\n */\n gcUpdateRouteChanged() {\n this.lastRouteChange = new Date().getTime();\n }\n\n // ------------- GC reset ---------------------\n\n /**\n * Remove all cached access times for the given store\n */\n gcResetStore(state: any) {\n const store = state.config.namespace;\n\n delete this.lastAccessedCache[store];\n\n this.debugLog('Forgetting Store:', store);\n }\n\n /**\n * Remove cached access time for the given resource type\n */\n gcResetType(state: any, type: string) {\n const store = state.config.namespace;\n\n if (!this.lastAccessedCache[store]) {\n return;\n }\n delete this.lastAccessedCache[store][type];\n\n this.debugLog('Forgetting Type:', store, type);\n }\n}\n\nconst gc = new GarbageCollect();\n\nexport default gc;\n","import merge from 'lodash/merge';\n\nimport { SCHEMA } from '@shell/config/types';\nimport { SPOOFED_API_PREFIX, SPOOFED_PREFIX } from '@shell/store/type-map';\nimport { createYaml } from '@shell/utils/create-yaml';\nimport { classify } from '@shell/plugins/dashboard-store/classify';\nimport { normalizeType } from './normalize';\nimport garbageCollect from '@shell/utils/gc/gc';\nimport { addSchemaIndexFields } from '@shell/plugins/steve/schema.utils';\n\nexport const _ALL = 'all';\nexport const _MERGE = 'merge';\nexport const _MULTI = 'multi';\nexport const _ALL_IF_AUTHED = 'allIfAuthed';\nexport const _NONE = 'none';\n\nconst SCHEMA_CHECK_RETRIES = 15;\nconst SCHEMA_CHECK_RETRY_LOG = 10;\n\nexport async function handleSpoofedRequest(rootGetters, schemaStore, opt, product) {\n // Handle spoofed types instead of making an actual request\n // Spoofing is handled here to ensure it's done for both yaml and form editing.\n // It became apparent that this was the only place that both intersected\n if (opt.url.includes(SPOOFED_PREFIX) || opt.url.includes(SPOOFED_API_PREFIX)) {\n const [empty, scheme, type, ...rest] = opt.url.split('/'); // eslint-disable-line no-unused-vars\n const id = rest.join('/'); // Cover case where id contains '/'\n const isApi = scheme === SPOOFED_API_PREFIX;\n const typemapGetter = id ? 'getSpoofedInstance' : 'getSpoofedInstances';\n\n const schemas = rootGetters[`${ schemaStore }/all`](SCHEMA);\n // getters return async getSpoofedInstance/getSpoofedInstances fn\n const instance = await rootGetters[`type-map/${ typemapGetter }`](type, product, id);\n const data = isApi ? createYaml(schemas, type, instance) : instance;\n\n return id && !isApi ? data : { data };\n }\n}\n\nexport async function loadSchemas(ctx, watch = true) {\n const {\n getters, dispatch, commit, rootGetters\n } = ctx;\n const res = await dispatch('findAll', { type: SCHEMA, opt: { url: 'schemas', load: false } });\n const spoofedTypes = rootGetters['type-map/allSpoofedSchemas'] ;\n\n if (Array.isArray(res.data)) {\n res.data = res.data.concat(spoofedTypes);\n } else if (Array.isArray(res)) {\n res.data = res.concat(spoofedTypes);\n }\n\n res.data.forEach(addSchemaIndexFields);\n\n commit('loadAll', {\n ctx,\n type: SCHEMA,\n data: res.data,\n revision: res.revision\n });\n\n if ( watch !== false ) {\n dispatch('watch', {\n type: SCHEMA,\n revision: res.revision\n });\n }\n\n const all = getters.all(SCHEMA);\n\n return all;\n}\n\nexport default {\n request() {\n throw new Error('Not Implemented');\n },\n\n loadSchemas,\n\n // Load a page of data for a given type\n // Used for incremental loading when enabled\n async loadDataPage(ctx, { type, opt }) {\n const { getters, commit, dispatch } = ctx;\n\n type = getters.normalizeType(type);\n\n // if there's no registered type, then register it so\n // that we don't have issues on 'loadAdd' mutation\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n\n const loadCount = getters['loadCounter'](type);\n\n try {\n const res = await dispatch('request', { opt, type });\n\n const newLoadCount = getters['loadCounter'](type);\n\n // Load count changed, so we changed page or started a new load\n // after this page load was started, so don't continue with incremental load\n if (loadCount !== newLoadCount) {\n return;\n }\n\n commit('loadAdd', {\n ctx,\n type,\n data: res.data,\n });\n\n if (res.pagination?.next) {\n dispatch('loadDataPage', {\n type,\n opt: {\n ...opt,\n url: res.pagination?.next\n }\n });\n } else {\n // We have everything!\n if (opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n if (opt.namespaced) {\n commit('setHaveNamespace', { type, namespace: opt.namespaced });\n } else {\n commit('setHaveAll', { type });\n }\n }\n } catch (e) {\n if (opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n return Promise.reject(e);\n }\n },\n\n async findAll(ctx, { type, opt }) {\n const {\n getters, commit, dispatch, rootGetters\n } = ctx;\n\n opt = opt || {};\n type = getters.normalizeType(type);\n\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n\n // No need to request the resources if we have them already\n if ( opt.force !== true && (getters['haveAll'](type) || getters['haveAllNamespace'](type, opt.namespaced))) {\n const args = {\n type,\n revision: '',\n // watchNamespace - used sometimes when we haven't fetched the results of a single namespace\n // namespaced - used when we have fetched the result of a single namespace (see https://github.com/rancher/dashboard/pull/7329/files)\n namespace: opt.watchNamespace || opt.namespaced\n };\n\n if (opt.watch !== false ) {\n dispatch('watch', args);\n }\n\n return getters.all(type);\n }\n\n let load = (opt.load === undefined ? _ALL : opt.load);\n\n if ( opt.load === false || opt.load === _NONE ) {\n load = _NONE;\n } else if ( opt.load === _ALL_IF_AUTHED ) {\n const header = rootGetters['auth/fromHeader'];\n\n if ( `${ header }` === 'true' || `${ header }` === 'none' ) {\n load = _ALL;\n } else {\n load = _MULTI;\n }\n }\n\n const typeOptions = rootGetters['type-map/optionsFor'](type);\n\n console.log(`Find All: [${ ctx.state.config.namespace }] ${ type }`); // eslint-disable-line no-console\n opt = opt || {};\n opt.url = getters.urlFor(type, null, opt);\n opt.stream = opt.stream !== false && load !== _NONE;\n opt.depaginate = typeOptions?.depaginate;\n\n let skipHaveAll = false;\n\n // if it's incremental loading, we do two parallel requests\n // on for a limit of 100, to quickly show data\n // another one with 1st page of the subset of the resource we are fetching\n // the default is 4 pages, but it can be changed on mixin/resource-fetch.js\n if (opt.incremental) {\n commit('incrementLoadCounter', type);\n\n if (opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', true, { root: true });\n }\n\n const pageFetchOpts = {\n ...opt,\n url: `${ opt.url }?limit=${ opt.incremental }`\n };\n\n // this is where we \"hijack\" the limit for the dispatch('request') some lines below\n // and therefore have 2 initial requests in parallel\n opt.url = `${ opt.url }?limit=100`;\n skipHaveAll = true;\n\n // since we are forcing a request, clear the haveAll\n // needed for the resource-fetch mixin, otherwise the incremental indicator\n // won't pop-up again when manual refreshing\n if (opt.force) {\n commit('forgetType', type);\n }\n\n dispatch('loadDataPage', { type, opt: pageFetchOpts });\n }\n\n let streamStarted = false;\n let out;\n\n let queue = [];\n let streamCollection;\n\n opt.onData = function(data) {\n if ( streamStarted ) {\n // Batch loads into groups of 10 to reduce vuex overhead\n queue.push(data);\n\n if ( queue.length > 10 ) {\n const tmp = queue;\n\n queue = [];\n commit('loadMulti', { ctx, data: tmp });\n }\n } else {\n // The first line is the collection object (sans `data`)\n commit('forgetAll', { type });\n streamStarted = true;\n streamCollection = data;\n }\n };\n\n try {\n if (!opt.incremental && opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', true, { root: true });\n }\n\n const res = await dispatch('request', { opt, type });\n\n if ( streamStarted ) {\n // Flush any remaining entries left over that didn't get loaded by onData\n if ( queue.length ) {\n commit('loadMulti', { ctx, data: queue });\n queue = [];\n }\n commit('loadedAll', { type });\n const all = getters.all(type);\n\n res.finishDeferred(all);\n out = streamCollection;\n } else {\n out = res;\n }\n } catch (e) {\n if (!opt.incremental && opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n return Promise.reject(e);\n }\n\n if ( load === _NONE ) {\n if (!opt.incremental && opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n return out;\n } else if ( out.data ) {\n if ( load === _MULTI ) {\n // This has the effect of adding the response to the store,\n // without replacing all the existing content for that type,\n // and without marking that type as having 'all 'loaded.\n //\n // This is used e.g. to load a partial list of settings before login\n // while still knowing we need to load the full list later.\n commit('loadMulti', {\n ctx,\n data: out.data\n });\n } else if (load === _MERGE) {\n // This is like loadMulti (updates existing entries) but also removes entries that no longer exist\n // This allows changes to existing resources to be reflected in place in the UI\n // (normally not needed as Rancher updates come over socket and are handled individually)\n commit('loadMerge', {\n ctx,\n type,\n data: out.data,\n existing: true\n });\n } else {\n commit('loadAll', {\n ctx,\n type,\n data: out.data,\n revision: out.revision,\n skipHaveAll,\n namespace: opt.namespaced,\n });\n }\n }\n\n // ToDo: SM if we start a \"bigger\" watch (such as watch without a namespace vs a watch with a namespace), we should stop the stop the \"smaller\" watch so we don't have duplicate events coming back\n if ( opt.watch !== false ) {\n const args = {\n type,\n revision: out.revision,\n namespace: opt.watchNamespace || opt.namespaced, // it could be either apparently\n // ToDo: SM namespaced is sometimes a boolean and sometimes a string, I don't see it as especially broken but we should refactor that in the future\n force: opt.forceWatch === true,\n };\n\n dispatch('watch', args);\n }\n\n const all = getters.all(type);\n\n if (!opt.incremental && opt.hasManualRefresh) {\n dispatch('resource-fetch/updateManualRefreshIsLoading', false, { root: true });\n }\n\n garbageCollect.gcUpdateLastAccessed(ctx, type);\n\n return all;\n },\n\n async findMatching(ctx, {\n type,\n selector,\n opt,\n namespace\n }) {\n const {\n getters, commit, dispatch, rootGetters\n } = ctx;\n\n opt = opt || {};\n console.log(`Find Matching: [${ ctx.state.config.namespace }] ${ type }`, selector); // eslint-disable-line no-console\n type = getters.normalizeType(type);\n\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n if ( opt.force !== true && getters['haveSelector'](type, selector) ) {\n return getters.matching( type, selector, namespace );\n }\n\n const typeOptions = rootGetters['type-map/optionsFor'](type);\n\n opt = opt || {};\n\n opt.filter = opt.filter || {};\n opt.filter['labelSelector'] = selector;\n\n opt.url = getters.urlFor(type, null, opt);\n opt.depaginate = typeOptions?.depaginate;\n\n const res = await dispatch('request', { opt, type });\n\n if ( opt.load === false ) {\n return res.data;\n }\n\n commit('loadSelector', {\n ctx,\n type,\n entries: res.data,\n selector,\n revision: res.revision,\n });\n\n if ( opt.watch !== false ) {\n dispatch('watch', {\n type,\n selector,\n revision: res.revision,\n force: opt.forceWatch === true,\n });\n }\n\n garbageCollect.gcUpdateLastAccessed(ctx, type);\n\n return getters.matching( type, selector, namespace );\n },\n\n // opt:\n // filter: Filter by fields, e.g. {field: value, anotherField: anotherValue} (default: none)\n // limit: Number of records to return per page (default: 1000)\n // sortBy: Sort by field\n // sortOrder: asc or desc\n // url: Use this specific URL instead of looking up the URL for the type/id. This should only be used for bootstrapping schemas on startup.\n // @TODO depaginate: If the response is paginated, retrieve all the pages. (default: true)\n async find(ctx, { type, id, opt }) {\n if (!id) {\n console.error('Attempting to find a resource with no id', type, id); // eslint-disable-line no-console\n\n return;\n }\n\n const { getters, dispatch } = ctx;\n\n opt = opt || {};\n\n type = normalizeType(type);\n\n console.log(`Find: [${ ctx.state.config.namespace }] ${ type } ${ id }`); // eslint-disable-line no-console\n let out;\n\n if ( opt.force !== true ) {\n out = getters.byId(type, id);\n\n if ( out ) {\n return out;\n }\n }\n\n opt = opt || {};\n opt.url = getters.urlFor(type, id, opt);\n\n const res = await dispatch('request', { opt, type });\n\n await dispatch('load', { data: res });\n\n if ( opt.watch !== false ) {\n const watchMsg = {\n type,\n id,\n revision: res?.metadata?.resourceVersion,\n force: opt.forceWatch === true,\n };\n\n const idx = id.indexOf('/');\n\n if ( idx > 0 ) {\n watchMsg.namespace = id.substr(0, idx);\n watchMsg.id = id.substr(idx + 1);\n }\n\n dispatch('watch', watchMsg);\n }\n\n out = getters.byId(type, id);\n\n garbageCollect.gcUpdateLastAccessed(ctx, type);\n\n return out;\n },\n\n load(ctx, { data, existing }) {\n const { getters, commit } = ctx;\n\n let type = normalizeType(data.type);\n\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n\n if ( data.baseType && data.baseType !== data.type ) {\n type = normalizeType(data.baseType);\n\n if ( !getters.typeRegistered(type) ) {\n commit('registerType', type);\n }\n }\n // Inject special fields for indexing schemas\n if ( type === SCHEMA ) {\n addSchemaIndexFields(data);\n }\n\n const keyField = getters.keyFieldForType(type);\n const id = data?.[keyField] || existing?.[keyField];\n\n if ( !id ) {\n console.warn('Attempting to load a resource with no id', data, existing); // eslint-disable-line no-console\n\n return;\n }\n\n commit('load', {\n ctx,\n data,\n existing\n });\n\n if ( type === SCHEMA ) {\n commit('type-map/schemaChanged', null, { root: true });\n }\n\n return getters['byId'](type, id);\n },\n\n loadMulti(ctx, data) {\n const { commit } = ctx;\n\n commit('loadMulti', {\n data,\n ctx,\n });\n },\n\n batchChanges(ctx, batch) {\n const { commit } = ctx;\n\n commit('batchChanges', {\n ctx,\n batch\n });\n },\n\n loadAll(ctx, { type, data }) {\n const { commit } = ctx;\n\n commit('loadAll', {\n ctx,\n type,\n data\n });\n },\n\n create(ctx, data) {\n return classify(ctx, data);\n },\n\n createMany(ctx, data) {\n return data.map((d) => classify(ctx, d));\n },\n\n createPopulated(ctx, userData) {\n const data = ctx.getters['defaultFor'](userData.type);\n\n merge(data, userData);\n\n return classify(ctx, data);\n },\n\n clone(ctx, { resource } = {}) {\n return classify(ctx, resource.toJSON(), true);\n },\n\n // Forget a type in the store\n // Remove all entries for that type and stop watching it\n forgetType({ commit, dispatch, state }, type) {\n state.started\n .filter((entry) => entry.type === type)\n .forEach((entry) => dispatch('unwatch', entry));\n\n commit('forgetType', type);\n },\n\n promptRemove({ commit, state }, resources ) {\n commit('action-menu/togglePromptRemove', resources, { root: true });\n },\n\n promptModal({ commit, state }, data ) {\n commit('action-menu/togglePromptModal', data, { root: true });\n },\n\n resourceAction({ getters, dispatch }, {\n resource, actionName, body, opt,\n }) {\n throw new Error('Not Implemented');\n },\n\n collectionAction({ getters, dispatch }, {\n type, actionName, body, opt\n }) {\n throw new Error('Not Implemented');\n },\n\n cleanForNew(ctx, resource) {\n throw new Error('Not Implemented');\n },\n\n createNamespace(ctx, resource) {\n throw new Error('Not Implemented');\n },\n\n cleanForDiff(ctx, resource) {\n throw new Error('Not Implemented');\n },\n\n // Clean a resource for the ResourceDetail page\n // This can ensure common, required properties exists that might have been removed\n cleanForDetail(ctx, resource) {\n return resource;\n },\n\n cleanForDownload(ctx, resource) {\n return resource;\n },\n\n // Wait for a schema that is expected to exist that may not have been loaded yet (for instance when loadCluster is still running).\n async waitForSchema({ getters, dispatch }, { type }) {\n let tries = SCHEMA_CHECK_RETRIES;\n let schema = null;\n\n while (!schema && tries > 0) {\n schema = getters['schemaFor'](type);\n\n if (!schema) {\n if (tries === SCHEMA_CHECK_RETRY_LOG) {\n console.warn(`Schema for ${ type } not available... retrying...`); // eslint-disable-line no-console\n }\n await new Promise((resolve) => setTimeout(resolve, 1000));\n tries--;\n }\n }\n\n if (tries === 0) {\n // Ran out of tries - fetch the schemas again\n console.warn(`Schema for ${ type } still unavailable... loading schemas again...`); // eslint-disable-line no-console\n await dispatch('loadSchemas', true);\n }\n },\n\n incrementLoadCounter({ commit }, resource) {\n commit('incrementLoadCounter', resource);\n },\n\n garbageCollect(ctx, ignoreTypes) {\n return garbageCollect.garbageCollect(ctx, ignoreTypes);\n },\n\n gcResetStore({ state }) {\n garbageCollect.gcResetStore(state);\n }\n};\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".radio-group:focus{border:none;outline:none}.radio-group h3{position:relative}.radio-group.row{display:flex}.radio-group.row .radio-container{margin-right:10px}.radio-group .label{font-size:14px!important}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","\n/**\n * Some plugins won't be bundled with the dashboard build but loaded on demand at run time.\n * This file allows 'manager' style plugins to defined how to determine if a unknown route\n * belongs to one of their associated plugins and how that plugin can be loaded\n */\nclass DynamicPluginLoader {\n dynamicPluginLoaders = [];\n\n register(reg) {\n this.dynamicPluginLoaders.push(reg);\n }\n\n async check({ route, store }) {\n for (const dpl of this.dynamicPluginLoaders) {\n // Check that the route is valid and then load the plugin associated with it\n const res = await dpl.load({ route, store });\n\n if (res) {\n return res;\n }\n }\n }\n}\n\nconst dynamicPluginLoader = new DynamicPluginLoader();\n\nexport default dynamicPluginLoader;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SequenceTree.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SequenceTree.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SequenceTree.vue?vue&type=template&id=ada41008&scoped=true&\"\nimport script from \"./SequenceTree.vue?vue&type=script&lang=js&\"\nexport * from \"./SequenceTree.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SequenceTree.vue?vue&type=style&index=0&id=ada41008&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ada41008\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6703bcf4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6703bcf4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6703bcf4\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=551e2cc5&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../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!./Tag.vue?vue&type=style&index=0&id=0d281a35&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{class:{'badge-state': true, [_vm.bg]: true}},[(_vm.icon)?_c('i',{staticClass:\"icon\",class:{[_vm.icon]: true, 'mr-5': !!_vm.msg}}):_vm._e(),_vm._v(_vm._s(_vm.msg)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue, { PropType } from 'vue';\n\ninterface Badge {\n stateBackground: string;\n stateDisplay: string;\n}\n\n/**\n * Badge state component.\n *

    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 */\nexport default Vue.extend({\n props: {\n /**\n * A value having the properties `stateBackground` and `stateDisplay`\n */\n value: {\n type: Object as PropType,\n default: null\n },\n\n /**\n * Badge color. `stateBackground` of the value property takes precedence if supplied\n */\n color: {\n type: String,\n default: null\n },\n\n /**\n * Optional icon to be shown before the label\n */\n icon: {\n type: String,\n default: null\n },\n\n /**\n * Label to display in the badge. `stateDisplay` of the value property takes precedence if supplied\n */\n label: {\n type: String,\n default: null\n }\n },\n\n computed: {\n bg(): string | null {\n return this.value?.stateBackground || this.color;\n },\n\n msg(): string | null {\n return this.value?.stateDisplay || this.label;\n }\n }\n});\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--15-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./BadgeState.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--15-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./BadgeState.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BadgeState.vue?vue&type=template&id=527a98ac&scoped=true&\"\nimport script from \"./BadgeState.vue?vue&type=script&lang=ts&\"\nexport * from \"./BadgeState.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BadgeState.vue?vue&type=style&index=0&id=527a98ac&prod&lang=scss&scoped=true&\"\nimport style1 from \"./BadgeState.vue?vue&type=style&index=1&id=527a98ac&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 \"527a98ac\",\n null\n \n)\n\nexport default component.exports","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/*\n * Jexl\n * Copyright 2019 Tom Shawver\n */\n\nconst Expression = require('./Expression')\nconst defaultGrammar = require('./grammar').elements\n\n/**\n * Jexl is the Javascript Expression Language, capable of parsing and\n * evaluating basic to complex expression strings, combined with advanced\n * xpath-like drilldown into native Javascript objects.\n * @constructor\n */\nclass Jexl {\n constructor() {\n // Allow expr to be called outside of the jexl context\n this.expr = this.expr.bind(this)\n this._grammar = Object.assign({}, defaultGrammar)\n this._lexer = null\n this._transforms = {}\n }\n\n /**\n * Adds a binary operator to Jexl at the specified precedence. The higher the\n * precedence, the earlier the operator is applied in the order of operations.\n * For example, * has a higher precedence than +, because multiplication comes\n * before division.\n *\n * Please see grammar.js for a listing of all default operators and their\n * precedence values in order to choose the appropriate precedence for the\n * new operator.\n * @param {string} operator The operator string to be added\n * @param {number} precedence The operator's precedence\n * @param {function} fn A function to run to calculate the result. The function\n * will be called with two arguments: left and right, denoting the values\n * on either side of the operator. It should return either the resulting\n * value, or a Promise that resolves with the resulting value.\n */\n addBinaryOp(operator, precedence, fn) {\n this._addGrammarElement(operator, {\n type: 'binaryOp',\n precedence: precedence,\n eval: fn\n })\n }\n\n /**\n * Adds a unary operator to Jexl. Unary operators are currently only supported\n * on the left side of the value on which it will operate.\n * @param {string} operator The operator string to be added\n * @param {function} fn A function to run to calculate the result. The function\n * will be called with one argument: the literal value to the right of the\n * operator. It should return either the resulting value, or a Promise\n * that resolves with the resulting value.\n */\n addUnaryOp(operator, fn) {\n this._addGrammarElement(operator, {\n type: 'unaryOp',\n weight: Infinity,\n eval: fn\n })\n }\n\n /**\n * Adds or replaces a transform function in this Jexl instance.\n * @param {string} name The name of the transform function, as it will be used\n * within Jexl expressions\n * @param {function} fn The function to be executed when this transform is\n * invoked. It will be provided with at least one argument:\n * - {*} value: The value to be transformed\n * - {...*} args: The arguments for this transform\n */\n addTransform(name, fn) {\n this._transforms[name] = fn\n }\n\n /**\n * Syntactic sugar for calling {@link #addTransform} repeatedly. This function\n * accepts a map of one or more transform names to their transform function.\n * @param {{}} map A map of transform names to transform functions\n */\n addTransforms(map) {\n for (let key in map) {\n if (map.hasOwnProperty(key)) {\n this._transforms[key] = map[key]\n }\n }\n }\n\n /**\n * Creates an Expression object from the given Jexl expression string, and\n * immediately compiles it. The returned Expression object can then be\n * evaluated multiple times with new contexts, without generating any\n * additional string processing overhead.\n * @param {string} expression The Jexl expression to be compiled\n * @returns {Expression} The compiled Expression object\n */\n compile(expression) {\n const exprObj = this.createExpression(expression)\n return exprObj.compile()\n }\n\n /**\n * Constructs an Expression object from a Jexl expression string.\n * @param {string} expression The Jexl expression to be wrapped in an\n * Expression object\n * @returns {Expression} The Expression object representing the given string\n */\n createExpression(expression) {\n const lang = this._getLang()\n return new Expression(lang, expression)\n }\n\n /**\n * Retrieves a previously set transform function.\n * @param {string} name The name of the transform function\n * @returns {function} The transform function\n */\n getTransform(name) {\n return this._transforms[name]\n }\n\n /**\n * Asynchronously evaluates a Jexl string within an optional context.\n * @param {string} expression The Jexl expression to be evaluated\n * @param {Object} [context] A mapping of variables to values, which will be\n * made accessible to the Jexl expression when evaluating it\n * @returns {Promise<*>} resolves with the result of the evaluation.\n */\n eval(expression, context = {}) {\n const exprObj = this.createExpression(expression)\n return exprObj.eval(context)\n }\n\n /**\n * Synchronously evaluates a Jexl string within an optional context.\n * @param {string} expression The Jexl expression to be evaluated\n * @param {Object} [context] A mapping of variables to values, which will be\n * made accessible to the Jexl expression when evaluating it\n * @returns {*} the result of the evaluation.\n * @throws {*} on error\n */\n evalSync(expression, context = {}) {\n const exprObj = this.createExpression(expression)\n return exprObj.evalSync(context)\n }\n\n expr(strs, ...args) {\n const exprStr = strs.reduce((acc, str, idx) => {\n const arg = idx < args.length ? args[idx] : ''\n acc += str + arg\n return acc\n }, '')\n return this.createExpression(exprStr)\n }\n\n /**\n * Removes a binary or unary operator from the Jexl grammar.\n * @param {string} operator The operator string to be removed\n */\n removeOp(operator) {\n if (\n this._grammar[operator] &&\n (this._grammar[operator].type === 'binaryOp' ||\n this._grammar[operator].type === 'unaryOp')\n ) {\n delete this._grammar[operator]\n }\n }\n\n /**\n * Adds an element to the grammar map used by this Jexl instance.\n * @param {string} str The key string to be added\n * @param {{type: }} obj A map of configuration options for this\n * grammar element\n * @private\n */\n _addGrammarElement(str, obj) {\n this._grammar[str] = obj\n }\n\n /**\n * Gets an object defining the dynamic language elements of this Jexl\n * instance.\n * @returns {{ grammar: object, transforms: object }} A language definition\n * object\n * @private\n */\n _getLang() {\n return {\n grammar: this._grammar,\n transforms: this._transforms\n }\n }\n}\n\nmodule.exports = new Jexl()\nmodule.exports.Jexl = Jexl\n","/*\n * Jexl\n * Copyright 2019 Tom Shawver\n */\n\n/**\n * Handles a subexpression that's used to define a transform argument's value.\n * @param {{type: }} ast The subexpression tree\n */\nexports.argVal = function(ast) {\n this._cursor.args.push(ast)\n}\n\n/**\n * Handles new array literals by adding them as a new node in the AST,\n * initialized with an empty array.\n */\nexports.arrayStart = function() {\n this._placeAtCursor({\n type: 'ArrayLiteral',\n value: []\n })\n}\n\n/**\n * Handles a subexpression representing an element of an array literal.\n * @param {{type: }} ast The subexpression tree\n */\nexports.arrayVal = function(ast) {\n if (ast) {\n this._cursor.value.push(ast)\n }\n}\n\n/**\n * Handles tokens of type 'binaryOp', indicating an operation that has two\n * inputs: a left side and a right side.\n * @param {{type: }} token A token object\n */\nexports.binaryOp = function(token) {\n const precedence = this._grammar[token.value].precedence || 0\n let parent = this._cursor._parent\n while (\n parent &&\n parent.operator &&\n this._grammar[parent.operator].precedence >= precedence\n ) {\n this._cursor = parent\n parent = parent._parent\n }\n const node = {\n type: 'BinaryExpression',\n operator: token.value,\n left: this._cursor\n }\n this._setParent(this._cursor, node)\n this._cursor = parent\n this._placeAtCursor(node)\n}\n\n/**\n * Handles successive nodes in an identifier chain. More specifically, it\n * sets values that determine how the following identifier gets placed in the\n * AST.\n */\nexports.dot = function() {\n this._nextIdentEncapsulate =\n this._cursor &&\n this._cursor.type !== 'UnaryExpression' &&\n (this._cursor.type !== 'BinaryExpression' ||\n (this._cursor.type === 'BinaryExpression' && this._cursor.right))\n this._nextIdentRelative =\n !this._cursor || (this._cursor && !this._nextIdentEncapsulate)\n if (this._nextIdentRelative) {\n this._relative = true\n }\n}\n\n/**\n * Handles a subexpression used for filtering an array returned by an\n * identifier chain.\n * @param {{type: }} ast The subexpression tree\n */\nexports.filter = function(ast) {\n this._placeBeforeCursor({\n type: 'FilterExpression',\n expr: ast,\n relative: this._subParser.isRelative(),\n subject: this._cursor\n })\n}\n\n/**\n * Handles identifier tokens by adding them as a new node in the AST.\n * @param {{type: }} token A token object\n */\nexports.identifier = function(token) {\n const node = {\n type: 'Identifier',\n value: token.value\n }\n if (this._nextIdentEncapsulate) {\n node.from = this._cursor\n this._placeBeforeCursor(node)\n this._nextIdentEncapsulate = false\n } else {\n if (this._nextIdentRelative) {\n node.relative = true\n this._nextIdentRelative = false\n }\n this._placeAtCursor(node)\n }\n}\n\n/**\n * Handles literal values, such as strings, booleans, and numerics, by adding\n * them as a new node in the AST.\n * @param {{type: }} token A token object\n */\nexports.literal = function(token) {\n this._placeAtCursor({\n type: 'Literal',\n value: token.value\n })\n}\n\n/**\n * Queues a new object literal key to be written once a value is collected.\n * @param {{type: }} token A token object\n */\nexports.objKey = function(token) {\n this._curObjKey = token.value\n}\n\n/**\n * Handles new object literals by adding them as a new node in the AST,\n * initialized with an empty object.\n */\nexports.objStart = function() {\n this._placeAtCursor({\n type: 'ObjectLiteral',\n value: {}\n })\n}\n\n/**\n * Handles an object value by adding its AST to the queued key on the object\n * literal node currently at the cursor.\n * @param {{type: }} ast The subexpression tree\n */\nexports.objVal = function(ast) {\n this._cursor.value[this._curObjKey] = ast\n}\n\n/**\n * Handles traditional subexpressions, delineated with the groupStart and\n * groupEnd elements.\n * @param {{type: }} ast The subexpression tree\n */\nexports.subExpression = function(ast) {\n this._placeAtCursor(ast)\n}\n\n/**\n * Handles a completed alternate subexpression of a ternary operator.\n * @param {{type: }} ast The subexpression tree\n */\nexports.ternaryEnd = function(ast) {\n this._cursor.alternate = ast\n}\n\n/**\n * Handles a completed consequent subexpression of a ternary operator.\n * @param {{type: }} ast The subexpression tree\n */\nexports.ternaryMid = function(ast) {\n this._cursor.consequent = ast\n}\n\n/**\n * Handles the start of a new ternary expression by encapsulating the entire\n * AST in a ConditionalExpression node, and using the existing tree as the\n * test element.\n */\nexports.ternaryStart = function() {\n this._tree = {\n type: 'ConditionalExpression',\n test: this._tree\n }\n this._cursor = this._tree\n}\n\n/**\n * Handles identifier tokens when used to indicate the name of a transform to\n * be applied.\n * @param {{type: }} token A token object\n */\nexports.transform = function(token) {\n this._placeBeforeCursor({\n type: 'Transform',\n name: token.value,\n args: [],\n subject: this._cursor\n })\n}\n\n/**\n * Handles token of type 'unaryOp', indicating that the operation has only\n * one input: a right side.\n * @param {{type: }} token A token object\n */\nexports.unaryOp = function(token) {\n this._placeAtCursor({\n type: 'UnaryExpression',\n operator: token.value\n })\n}\n","// Helpers for determining if V2 or v1 Monitoring are installed\n\nimport { SCHEMA, MONITORING, WORKLOAD_TYPES } from '@shell/config/types';\nimport { normalizeType } from '@shell/plugins/dashboard-store/normalize';\nimport { findBy } from '@shell/utils/array';\nimport { isEmpty } from '@shell/utils/object';\n\n// Can be used inside a components' computed property\nexport function monitoringStatus() {\n return {\n monitoringStatus() {\n const status = {\n v1: haveV1Monitoring(this.$store.getters),\n v2: haveV2Monitoring(this.$store.getters),\n };\n\n status.installed = status.v1 || status.v2;\n\n return status;\n }\n };\n}\n\nexport function haveV2Monitoring(getters) {\n // Can't have V2 and V1 monitoring installed, so if V1 is installed we know v2 is not\n if (haveV1Monitoring(getters)) {\n return false;\n }\n const inStore = getters['getStoreNameByProductId'];\n\n // Just check for the pod monitors CRD\n const schemas = getters[`${ inStore }/all`](SCHEMA);\n const exists = findBy(schemas, 'id', normalizeType(MONITORING.PODMONITOR));\n\n return !!exists;\n}\n\n// For v1 Monitoring, the cluster object indicates presence via status.monitoringStatus\nexport function haveV1Monitoring(getters) {\n const cluster = getters['currentCluster'];\n\n return !!cluster?.status?.monitoringStatus;\n}\n\nconst CATTLE_MONITORING_NAMESPACE = 'cattle-monitoring-system';\n\nexport async function haveV1MonitoringWorkloads(store) {\n const workloadsByType = await Promise.all(\n Object.values(WORKLOAD_TYPES).map((type) => store.dispatch('cluster/findAll', { type })\n )\n );\n const workloads = workloadsByType.flat();\n\n for (let i = 0; i < workloads.length; i++) {\n const workload = workloads[i];\n\n if (!isEmpty(workload?.spec?.template?.spec?.containers) &&\n workload.spec.template.spec.containers.find((c) => c.image?.includes('quay.io/coreos/prometheus-operator') ||\n c.image?.includes('rancher/coreos-prometheus-operator')) &&\n workload?.metadata?.namespace !== CATTLE_MONITORING_NAMESPACE) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n }\n}\n\n// Other ways we check for monitoring:\n\n// (1) Using counts (requires RBAC permissions)\n// return !!this.clusterCounts?.[0]?.counts?.[CATALOG.APP]?.namespaces?.['cattle-monitoring-system'];\n\n// (2) Retrieving all workloads and looking for containers with a given image\n// See chart/monitoring/index.vue\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./NameNsDescription.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./NameNsDescription.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NameNsDescription.vue?vue&type=template&id=f61d9b12&scoped=true&\"\nimport script from \"./NameNsDescription.vue?vue&type=script&lang=js&\"\nexport * from \"./NameNsDescription.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NameNsDescription.vue?vue&type=style&index=0&id=f61d9b12&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 \"f61d9b12\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./General.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./General.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./General.vue?vue&type=template&id=6391289b&\"\nimport script from \"./General.vue?vue&type=script&lang=js&\"\nexport * from \"./General.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.list.js b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.list.js new file mode 100644 index 00000000..8f8c3d16 --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.list.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]||[]).push([[5],{"0e6c":function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e._self._c;return e.$fetchState.pending?t("Loading"):t("div",[t("Banner",{staticClass:"type-banner mb-20 mt-0",attrs:{color:"info",label:e.t("kubewarden.admissionPolicy.description")}}),t("PolicyList",{attrs:{resource:e.resource,rows:e.rows,schema:e.schema}})],1)},a=[],i=r("9ce4"),n=r("6418"),o=r("15ca"),l=r("7542"),c={components:{Banner:n["a"],Loading:o["a"],PolicyList:l["a"]},props:{resource:{type:String,required:!0},schema:{type:Object,required:!0}},async fetch(){await this.$store.dispatch(this.currentProduct.inStore+"/findAll",{type:this.resource})},computed:{...Object(i["a"])(["currentProduct"]),rows(){return this.$store.getters[this.currentProduct.inStore+"/all"](this.resource)}}},u=c,d=r("d802"),p=Object(d["a"])(u,s,a,!1,null,null,null);t["default"]=p.exports},"2ed1":function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e._self._c;return e.$fetchState.pending?t("Loading"):t("div",[e.hideBannerDefaults?e._e():t("DefaultsBanner"),t("ResourceTable",{attrs:{schema:e.schema,rows:e.rows}})],1)},a=[],i=r("9ce4"),n=r("907c"),o=r("4ac6"),l=r("15ca"),c=r("126f"),u=r("90cd"),d=r("91ad"),p={components:{DefaultsBanner:d["a"],Loading:l["a"],ResourceTable:c["a"]},props:{resource:{type:String,required:!0},schema:{type:Object,required:!0}},async fetch(){await this.$store.dispatch(this.currentProduct.inStore+"/findAll",{type:this.resource}),await this.$store.dispatch("catalog/load"),this.hideBannerDefaults||(this.apps=await this.$store.dispatch(this.currentProduct.inStore+"/findAll",{type:n["b"].APP}))},data(){return{apps:null}},computed:{...Object(i["a"])(["currentProduct"]),defaultsApp(){var e;return null===(e=this.apps)||void 0===e?void 0:e.find(e=>{var t,r,s,a;return(null===(t=e.spec)||void 0===t||null===(r=t.chart)||void 0===r||null===(s=r.metadata)||void 0===s||null===(a=s.annotations)||void 0===a?void 0:a[o["c"].RELEASE_NAME])===u["b"].RANCHER_DEFAULTS})},hideBannerDefaults(){return this.$store.getters["kubewarden/hideBannerDefaults"]||!!this.defaultsApp},rows(){return this.$store.getters[this.currentProduct.inStore+"/all"](this.resource)}}},h=p,f=r("d802"),m=Object(f["a"])(h,s,a,!1,null,null,null);t["default"]=m.exports},4952:function(e,t,r){var s=r("9099");s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var a=r("0ed3").default;a("688bb416",s,!0,{sourceMap:!1,shadowMode:!1})},7542:function(e,t,r){"use strict";var s=function(){var e=this,t=e._self._c;return t("div",[t("div",{staticClass:"filter"},[t("LabeledSelect",{staticClass:"filter__resources",attrs:{clearable:!0,taggable:!0,multiple:!0,label:"Search by Resource",options:e.resourceOptions},model:{value:e.resources,callback:function(t){e.resources=t},expression:"resources"}}),t("LabeledSelect",{staticClass:"filter__mode",attrs:{clearable:!0,searchable:!1,options:e.modeOptions,multiple:!1,placement:"bottom",label:"Search by Mode"},model:{value:e.mode,callback:function(t){e.mode=t},expression:"mode"}}),t("button",{ref:"btn",staticClass:"btn, btn-sm, role-primary",attrs:{type:"button"},on:{click:e.resetFilter}},[e._v(" "+e._s(e.t("kubewarden.utils.resetFilter"))+" ")])],1),t("ResourceTable",{attrs:{schema:e.schema,rows:e.filteredRows,headers:e.headers}})],1)},a=[],i=r("71d2"),n=r.n(i),o=r("1d19"),l=r("466b"),c=r("126f"),u={components:{LabeledSelect:l["a"],ResourceTable:c["a"]},props:{resource:{type:String,required:!0},rows:{type:Array,required:!0},schema:{type:Object,required:!0}},data(){return{mode:null,resources:null}},created(){this.mode="All"},computed:{headers(){return this.$store.getters["type-map/headersFor"](this.schema)},filteredRows(){const e=this.rows||[],t=e.filter(e=>{const t=n()(e.spec.rules),r=t.flatMap(e=>e.resources),s=e.spec.mode;if(this.mode&&"All"!==this.mode&&this.mode!==s)return!1;if(this.resources)for(const a of this.resources)if(!r.includes(a))return!1;return!0});return Object(o["a"])(t,["id"])},modeOptions(){var e;const t=(null===(e=this.rows)||void 0===e?void 0:e.map(e=>{var t;return null===(t=e.spec)||void 0===t?void 0:t.mode}))||[];return t.unshift("All"),[...new Set(t)]},resourceOptions(){return this.flattenRule("resources")}},methods:{flattenRule(e){var t;const r=null===(t=this.rows)||void 0===t?void 0:t.flatMap(t=>{var r;const s=n()(null===(r=t.spec)||void 0===r?void 0:r.rules);return s.flatMap(t=>t[e])});return[...new Set(r)]||!1},hasNamespaceSelector(e){return e.namespaceSelector},resetFilter(){this.$set(this,"resources",null),this.$set(this,"mode","All")}}},d=u,p=(r("8485"),r("d802")),h=Object(p["a"])(d,s,a,!1,null,"a2185e04",null);t["a"]=h.exports},8485:function(e,t,r){"use strict";r("4952")},9099:function(e,t,r){var s=r("5eaa");t=s(!1),t.push([e.i,".filter[data-v-a2185e04]{display:flex;flex-direction:row;justify-content:flex-end;align-self:flex-end}.filter>*[data-v-a2185e04]{margin:10px}.filter[data-v-a2185e04]>:first-child{margin-left:0}.filter[data-v-a2185e04]>:last-child{margin-right:0}@media only screen and (min-width:480px){.filter[data-v-a2185e04]{width:100%}}@media only screen and (min-width:1281px){.filter[data-v-a2185e04]{width:75%}}.policy__mode[data-v-a2185e04]{display:flex;align-items:center}.policy__mode i[data-v-a2185e04]{margin-left:5px;font-size:22px;color:var(--warning)}",""]),e.exports=t},e216:function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e._self._c;return e.$fetchState.pending?t("Loading"):t("div",[t("Banner",{staticClass:"type-banner mb-20 mt-0",attrs:{color:"info",label:e.t("kubewarden.clusterAdmissionPolicy.description")}}),t("PolicyList",{attrs:{resource:e.resource,rows:e.rows,schema:e.schema}})],1)},a=[],i=r("9ce4"),n=r("6418"),o=r("15ca"),l=r("7542"),c={components:{Banner:n["a"],Loading:o["a"],PolicyList:l["a"]},props:{resource:{type:String,required:!0},schema:{type:Object,required:!0}},async fetch(){await this.$store.dispatch(this.currentProduct.inStore+"/findAll",{type:this.resource})},computed:{...Object(i["a"])(["currentProduct"]),rows(){return this.$store.getters[this.currentProduct.inStore+"/all"](this.resource)}}},u=c,d=r("d802"),p=Object(d["a"])(u,s,a,!1,null,null,null);t["default"]=p.exports}}]); +//# sourceMappingURL=kubewarden-1.1.0.umd.min.list.js.map \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.list.js.map b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.list.js.map new file mode 100644 index 00000000..aa164c3f --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.list.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://kubewarden-1.1.0/./list/policies.kubewarden.io.admissionpolicy.vue","webpack://kubewarden-1.1.0/list/policies.kubewarden.io.admissionpolicy.vue","webpack://kubewarden-1.1.0/./list/policies.kubewarden.io.admissionpolicy.vue?21ed","webpack://kubewarden-1.1.0/./list/policies.kubewarden.io.admissionpolicy.vue?5634","webpack://kubewarden-1.1.0/./list/policies.kubewarden.io.policyserver.vue","webpack://kubewarden-1.1.0/list/policies.kubewarden.io.policyserver.vue","webpack://kubewarden-1.1.0/./list/policies.kubewarden.io.policyserver.vue?28e3","webpack://kubewarden-1.1.0/./list/policies.kubewarden.io.policyserver.vue?ea12","webpack://kubewarden-1.1.0/./components/Policies/PolicyList.vue?c7d7","webpack://kubewarden-1.1.0/./components/Policies/PolicyList.vue","webpack://kubewarden-1.1.0/components/Policies/PolicyList.vue","webpack://kubewarden-1.1.0/./components/Policies/PolicyList.vue?b383","webpack://kubewarden-1.1.0/./components/Policies/PolicyList.vue?9d42","webpack://kubewarden-1.1.0/./components/Policies/PolicyList.vue?3052","webpack://kubewarden-1.1.0/./components/Policies/PolicyList.vue?7cd1","webpack://kubewarden-1.1.0/./list/policies.kubewarden.io.clusteradmissionpolicy.vue","webpack://kubewarden-1.1.0/list/policies.kubewarden.io.clusteradmissionpolicy.vue","webpack://kubewarden-1.1.0/./list/policies.kubewarden.io.clusteradmissionpolicy.vue?278e","webpack://kubewarden-1.1.0/./list/policies.kubewarden.io.clusteradmissionpolicy.vue?8e23"],"names":["render","_vm","this","_c","_self","$fetchState","pending","staticClass","attrs","t","resource","rows","schema","staticRenderFns","components","Banner","Loading","PolicyList","props","type","String","required","Object","$store","dispatch","currentProduct","inStore","computed","mapGetters","getters","component","hideBannerDefaults","_e","DefaultsBanner","ResourceTable","apps","CATALOG","APP","data","defaultsApp","_this$apps","find","a","_a$spec","_a$spec$chart","_a$spec$chart$metadat","_a$spec$chart$metadat2","spec","chart","metadata","annotations","CATALOG_ANNOTATIONS","RELEASE_NAME","KUBEWARDEN_APPS","RANCHER_DEFAULTS","content","__esModule","default","module","i","locals","exports","add","resourceOptions","model","value","resources","callback","$$v","expression","modeOptions","mode","ref","on","resetFilter","_v","_s","filteredRows","headers","LabeledSelect","Array","created","out","filter","row","flatRules","flattenDeep","rules","flatResources","flatMap","r","rowMode","selected","includes","sortBy","_this$rows","map","_row$spec","unshift","Set","flattenRule","methods","option","_this$rows2","flattened","_row$spec2","hasNamespaceSelector","namespaceSelector","$set","___CSS_LOADER_API_IMPORT___","push"],"mappings":"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","file":"kubewarden-1.1.0.umd.min.list.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading'):_c('div',[_c('Banner',{staticClass:\"type-banner mb-20 mt-0\",attrs:{\"color\":\"info\",\"label\":_vm.t('kubewarden.admissionPolicy.description')}}),_c('PolicyList',{attrs:{\"resource\":_vm.resource,\"rows\":_vm.rows,\"schema\":_vm.schema}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.admissionpolicy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.admissionpolicy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./policies.kubewarden.io.admissionpolicy.vue?vue&type=template&id=2b1be85c&\"\nimport script from \"./policies.kubewarden.io.admissionpolicy.vue?vue&type=script&lang=js&\"\nexport * from \"./policies.kubewarden.io.admissionpolicy.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading'):_c('div',[(!_vm.hideBannerDefaults)?_c('DefaultsBanner'):_vm._e(),_c('ResourceTable',{attrs:{\"schema\":_vm.schema,\"rows\":_vm.rows}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./policies.kubewarden.io.policyserver.vue?vue&type=template&id=41fef855&\"\nimport script from \"./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"\nexport * from \"./policies.kubewarden.io.policyserver.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PolicyList.vue?vue&type=template&id=a2185e04&scoped=true&\"\nimport script from \"./PolicyList.vue?vue&type=script&lang=js&\"\nexport * from \"./PolicyList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PolicyList.vue?vue&type=style&index=0&id=a2185e04&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a2185e04\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/vue-style-loader/index.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./PolicyList.vue?vue&type=style&index=0&id=a2185e04&prod&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".filter[data-v-a2185e04]{display:flex;flex-direction:row;justify-content:flex-end;align-self:flex-end}.filter>*[data-v-a2185e04]{margin:10px}.filter[data-v-a2185e04]>:first-child{margin-left:0}.filter[data-v-a2185e04]>:last-child{margin-right:0}@media only screen and (min-width:480px){.filter[data-v-a2185e04]{width:100%}}@media only screen and (min-width:1281px){.filter[data-v-a2185e04]{width:75%}}.policy__mode[data-v-a2185e04]{display:flex;align-items:center}.policy__mode i[data-v-a2185e04]{margin-left:5px;font-size:22px;color:var(--warning)}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.$fetchState.pending)?_c('Loading'):_c('div',[_c('Banner',{staticClass:\"type-banner mb-20 mt-0\",attrs:{\"color\":\"info\",\"label\":_vm.t('kubewarden.clusterAdmissionPolicy.description')}}),_c('PolicyList',{attrs:{\"resource\":_vm.resource,\"rows\":_vm.rows,\"schema\":_vm.schema}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--2-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=template&id=2bd331da&\"\nimport script from \"./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"\nexport * from \"./policies.kubewarden.io.clusteradmissionpolicy.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~detail.js b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~detail.js new file mode 100644 index 00000000..c1509ad5 --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~detail.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]||[]).push([[6],{"0cb2":function(e,t,a){"use strict";var r=function(){var e=this,t=e._self._c;return t("div",{class:{"side-tabs":!!e.sideTabs,"tabs-only":e.tabsOnly}},[t("ul",{ref:"tablist",staticClass:"tabs",class:{clearfix:!e.sideTabs,vertical:e.sideTabs,horizontal:!e.sideTabs},attrs:{role:"tablist",tabindex:"0"},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])||"button"in t&&2!==t.button?null:(t.preventDefault(),e.selectNext(1))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"left",37,t.key,["Left","ArrowLeft"])||"button"in t&&0!==t.button?null:(t.preventDefault(),e.selectNext(-1))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:(t.preventDefault(),e.selectNext(1))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:(t.preventDefault(),e.selectNext(-1))}]}},[e._l(e.sortedTabs,(function(a){return t("li",{key:a.name,class:{tab:!0,active:a.active,disabled:a.disabled,error:a.error},attrs:{id:a.name,"data-testid":a.name,role:"presentation"}},[t("a",{attrs:{"data-testid":"btn-"+a.name,"aria-controls":"#"+a.name,"aria-selected":a.active,role:"tab"},on:{click:function(t){return t.preventDefault(),e.select(a.name,t)}}},[t("span",[e._v(e._s(a.labelDisplay))]),a.badge?t("span",{staticClass:"tab-badge"},[e._v(e._s(a.badge))]):e._e(),e.hasIcon(a)?t("i",{directives:[{name:"clean-tooltip",rawName:"v-clean-tooltip",value:e.t("validation.tab"),expression:"t('validation.tab')"}],staticClass:"conditions-alert-icon icon-error"}):e._e()])])})),e.sideTabs&&!e.sortedTabs.length?t("li",{staticClass:"tab disabled"},[t("a",{attrs:{href:"#"},on:{click:function(e){e.preventDefault()}}},[e._v("(None)")])]):e._e(),e.sideTabs&&e.showTabsAddRemove?t("ul",{staticClass:"tab-list-footer"},[t("li",[t("button",{staticClass:"btn bg-transparent",attrs:{type:"button"},on:{click:e.tabAddClicked}},[t("i",{staticClass:"icon icon-plus"})]),t("button",{staticClass:"btn bg-transparent",attrs:{type:"button",disabled:!e.sortedTabs.length},on:{click:e.tabRemoveClicked}},[t("i",{staticClass:"icon icon-minus"})])])]):e._e(),e._t("tab-row-extras")],2),t("div",{class:{"tab-container":!!e.tabs.length||!!e.sideTabs,"no-content":e.noContent,"tab-container--flat":!!e.flat}},[e._t("default")],2)])},s=[],o=a("a1d8"),n=a.n(o),i=a("330a"),l=a.n(i),d=a("bddd"),c=a("1d19"),u=a("1659"),p=a.n(u),h={name:"Tabbed",props:{defaultTab:{type:String,default:null},sideTabs:{type:Boolean,default:!1},showTabsAddRemove:{type:Boolean,default:!1},scrollOnChange:{type:Boolean,default:!1},useHash:{type:Boolean,default:!0},noContent:{type:Boolean,default:!1},flat:{type:Boolean,default:!1},tabsOnly:{type:Boolean,default:!1}},provide(){const e=this.tabs;return{sideTabs:this.sideTabs,addTab(t){const a=Object(d["e"])(e,"name",t.name);a&&Object(d["i"])(e,a),Object(d["a"])(e,t)},removeTab(t){Object(d["i"])(e,t)}}},data(){return{tabs:[],activeTabName:null}},computed:{sortedTabs(){return Object(c["a"])(this.tabs,["weight:desc","labelDisplay","name"])}},watch:{sortedTabs(e){const{defaultTab:t,useHash:a}=this,r=e.find(e=>e.active),s=a?this.$route.hash:void 0,o=a?s.slice(1):void 0,i=e.find(e=>e.name===o&&!e.active),d=n()(e)||null;l()(r)?a&&!l()(i)?this.select(i.name):l()(t)||l()(e.find(e=>e.name===t))?null!==d&&void 0!==d&&d.name&&this.select(d.name):this.select(t):a&&(null===r||void 0===r?void 0:r.name)===o&&this.select(r.name)}},mounted(){this.useHash&&window.addEventListener("hashchange",this.hashChange)},unmounted(){this.useHash&&window.removeEventListener("hashchange",this.hashChange)},methods:{hasIcon(e){return e.displayAlertIcon||e.error&&!e.active},hashChange(){if(!this.scrollOnChange){const e=document.getElementsByTagName("main")[0];e&&(e.scrollTop=0)}this.select(this.$route.hash)},find(e){return this.sortedTabs.find(t=>t.name===e)},select(e){const{sortedTabs:t}=this,a=this.find(e),r="#"+e;if(a&&!a.disabled){if(this.useHash){const{$route:{hash:e},$router:{currentRoute:t}}=this;if(this.useHash&&e!==r){const e={...t};e.hash=r,this.$router.replace(e)}}for(const e of t)e.active=e.name===a.name;this.$emit("changed",{tab:a,selectedName:a.name}),this.activeTabName=a.name}},selectNext(e){const{sortedTabs:t}=this,a=t.findIndex(e=>e.active),r=o(a,e,t.length),s=t[r].name;function o(e,t,a){const r=e+t;return r>=a?0:r<=0?a-1:r}this.select(s),this.$nextTick(()=>{this.$refs.tablist.focus()})},tabAddClicked(){const e=p()(this.tabs,e=>e.active);this.$emit("addTab",e)},tabRemoveClicked(){const e=p()(this.tabs,e=>e.active);this.$emit("removeTab",e)}}},f=h,b=(a("5074"),a("d802")),v=Object(b["a"])(f,r,s,!1,null,"f1718c5e",null);t["a"]=v.exports},"13ad":function(e,t,a){"use strict";a("764c")},1645:function(e,t,a){"use strict";a("1b16")},1659:function(e,t,a){var r=a("0ee5"),s=a("4b7a"),o=a("9b66"),n=Math.max;function i(e,t,a){var i=null==e?0:e.length;if(!i)return-1;var l=null==a?0:o(a);return l<0&&(l=n(i+l,0)),r(e,s(t,3),l)}e.exports=i},"1b16":function(e,t,a){var r=a("1cfd");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("30fa9d8c",r,!0,{sourceMap:!1,shadowMode:!1})},"1bf1":function(e,t,a){var r=a("96ab");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("d7b84d86",r,!0,{sourceMap:!1,shadowMode:!1})},"1ce3":function(e,t,a){"use strict";a("f9f6")},"1cfd":function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,".zero circle{stroke:var(--gauge-zero)}.count-gauge{padding:10px;position:relative;display:flex;flex-direction:row;align-items:center}.count-gauge.clickable{cursor:pointer}.count-gauge .data{display:flex;flex-direction:column;flex:1}.count-gauge .data label{opacity:.7}.count-gauge .graphical{width:40px;height:40px;margin-right:10px}.count-gauge h1{font-size:40px;line-height:36px;padding-bottom:5px;margin-bottom:0}@media only screen and (min-width:768px){.count-gauge h1{font-size:40px;line-height:36px}}.count-gauge .alerts{position:absolute;right:10px;top:5px;font-size:15px}.count-gauge .alerts .text-error{margin-left:5px}",""]),e.exports=t},"25a4":function(e,t,a){"use strict";a("8356")},"305c":function(e,t,a){"use strict";var r=a("da25"),s=a("8bbf"),o=a.n(s),n=a("cd6d");t["a"]=o.a.extend({...n["a"],props:{mode:{type:String,default:r["t"]},realMode:{type:String,default:r["t"]},as:{type:String,default:r["B"]},value:{type:Object,required:!0},initialValue:{type:Object,default:null},liveValue:{type:Object,default:null},doneEvent:{type:Boolean,default:!1}}})},5074:function(e,t,a){"use strict";a("9c34")},"5a1e":function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,".tabs[data-v-f1718c5e]{list-style-type:none;margin:0;padding:0}.tabs.horizontal[data-v-f1718c5e]{border:solid thin var(--border);border-bottom:0;display:flex;flex-direction:row}.tabs.horizontal+.tab-container[data-v-f1718c5e]{border:solid thin var(--border)}.tabs.horizontal .tab.active[data-v-f1718c5e]{border-bottom:solid 2px var(--primary)}.tabs[data-v-f1718c5e]:focus{outline:none}.tabs:focus .tab.active a span[data-v-f1718c5e]{text-decoration:underline}.tabs .tab[data-v-f1718c5e]{position:relative;float:left;padding:0 8px 0 0;cursor:pointer}.tabs .tab A[data-v-f1718c5e]{display:flex;align-items:center;padding:10px 15px}.tabs .tab A[data-v-f1718c5e]:hover{text-decoration:none}.tabs .tab A:hover span[data-v-f1718c5e]{text-decoration:underline}.tabs .tab .conditions-alert-icon[data-v-f1718c5e]{color:var(--error);padding-left:4px}.tabs .tab[data-v-f1718c5e]:last-child{padding-right:0}.tabs .tab.active>A[data-v-f1718c5e]{color:var(--primary);text-decoration:none}.tabs .tab.error A>i[data-v-f1718c5e]{color:var(--error)}.tabs .tab .tab-badge[data-v-f1718c5e]{margin-left:5px;background-color:var(--link);color:#fff;border-radius:6px;padding:1px 7px;font-size:11px}.tab-container[data-v-f1718c5e]{padding:20px}.tab-container.no-content[data-v-f1718c5e]{padding:0 0 3px 0}.tab-container--flat[data-v-f1718c5e]{padding:0}.tab-container--flat .side-tabs[data-v-f1718c5e]{box-shadow:unset}.tabs-only[data-v-f1718c5e]{margin-bottom:20px}.tabs-only .tab-container[data-v-f1718c5e]{display:none}.tabs-only .tabs[data-v-f1718c5e]{border:0;border-bottom:2px solid var(--border)}.side-tabs[data-v-f1718c5e]{display:flex;box-shadow:0 0 20px var(--shadow);border-radius:calc(var(--border-radius)*2);background-color:var(--tabbed-sidebar-bg)}.side-tabs .tab-container[data-v-f1718c5e]{padding:20px}.side-tabs .tabs[data-v-f1718c5e]{width:200px;min-width:200px;display:flex;flex:1 0;flex-direction:column}.side-tabs .tabs .tab[data-v-f1718c5e]{width:100%;border-left:5px solid transparent}.side-tabs .tabs .tab.toggle A[data-v-f1718c5e],.side-tabs .tabs .tab A[data-v-f1718c5e]{color:var(--primary)}.side-tabs .tabs .tab.active[data-v-f1718c5e]{background-color:var(--body-bg);border-left:solid 5px var(--primary)}.side-tabs .tabs .tab.active A[data-v-f1718c5e]{color:var(--input-label)}.side-tabs .tabs .tab.disabled[data-v-f1718c5e]{background-color:var(--disabled-bg)}.side-tabs .tabs .tab.disabled A[data-v-f1718c5e]{color:var(--disabled-text);text-decoration:none}.side-tabs .tabs .tab-list-footer[data-v-f1718c5e]{list-style:none;padding:0;margin-top:auto}.side-tabs .tabs .tab-list-footer li[data-v-f1718c5e]{display:flex;flex:1}.side-tabs .tabs .tab-list-footer li .btn[data-v-f1718c5e]{flex:1 1;display:flex;justify-content:center}.side-tabs .tabs .tab-list-footer li button[data-v-f1718c5e]:first-of-type{border-top:solid 1px var(--border);border-right:solid 1px var(--border);border-top-right-radius:0}.side-tabs .tabs .tab-list-footer li button[data-v-f1718c5e]:last-of-type{border-top:solid 1px var(--border);border-top-left-radius:0}.side-tabs .tab-container[data-v-f1718c5e]{width:calc(100% - 200px);flex-grow:1;background-color:var(--body-bg)}",""]),e.exports=t},"66a2":function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,".grafana-graph[data-v-a5a1b7f4]{position:relative;min-height:100%;min-width:100%}.grafana-graph[data-v-a5a1b7f4] .content{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:0}.grafana-graph[data-v-a5a1b7f4] .overlay{position:static;background-color:initial}.grafana-graph iframe[data-v-a5a1b7f4]{position:absolute;left:0;right:0;top:20px;bottom:0;width:100%;height:100%;overflow:hidden}.grafana-graph iframe.loading[data-v-a5a1b7f4]{visibility:hidden}",""]),e.exports=t},"6fc4":function(e,t,a){var r=a("facb");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("5efe5fa7",r,!0,{sourceMap:!1,shadowMode:!1})},"74c2":function(e,t,a){"use strict";var r=function(){var e=this,t=e._self._c;return t("GradientBox",{staticClass:"count-gauge",class:{clickable:e.clickable},attrs:{"primary-color-var":e.primaryColorVar,plain:e.plain},nativeOn:{click:function(t){return e.visitLocation()}}},[e.graphical?t("div",{staticClass:"graphical"},[e.percentage>0?t("GraphCircle",{attrs:{"primary-stroke-color":`rgba(var(${e.primaryColorVar}))`,"secondary-stroke-color":"rgb(var(--resource-gauge-back-circle))",percentage:e.percentage}}):e._e(),0===e.percentage?t("GraphCircle",{staticClass:"zero",attrs:{"primary-stroke-color":`rgba(var(${e.primaryColorVar}))`,"secondary-stroke-color":"rgb(var(--resource-gauge-back-circle))",percentage:100}}):e._e()],1):e._e(),t("div",{staticClass:"data"},[t("h1",[e._v(e._s(e.useful))]),t("label",[e._v(e._s(e.name))]),e.showAlerts?t("div",{staticClass:"alerts"},[t("span",{staticClass:"text-warning"},[t("i",{staticClass:"icon icon-warning"}),t("span",{staticClass:"count"},[e._v(e._s(e.warningCount))])]),t("span",{staticClass:"text-error"},[t("i",{staticClass:"icon icon-error"}),t("span",{staticClass:"count"},[e._v(e._s(e.errorCount))])])]):e._e()])])},s=[],o=function(){var e=this,t=e._self._c;return t("svg",{staticClass:"circle",attrs:{width:"100%",height:"100%",viewBox:e.viewBox}},[t("g",{attrs:{transform:e.transform}},[t("defs",[t("linearGradient",{attrs:{id:e.primaryStrokeColorId,x1:"0%",y1:"0%",x2:"100%",y2:"0%"}},[t("stop",{attrs:{offset:"50%","stop-color":e.primaryStrokeGradientColor||e.primaryStrokeColor}}),t("stop",{attrs:{offset:"100%","stop-color":e.primaryStrokeColor}})],1),t("linearGradient",{attrs:{id:e.secondaryStrokeColorId,x1:"0%",y1:"0%",x2:"100%",y2:"0%"}},[t("stop",{attrs:{offset:"50%","stop-color":e.secondaryStrokeGradientColor||e.secondaryStrokeColor}}),t("stop",{attrs:{offset:"100%","stop-color":e.secondaryStrokeColor}})],1)],1),t("circle",{attrs:{r:e.radius,cy:e.center,cx:e.center,"stroke-width":e.strokeWidth,stroke:`url(#${e.secondaryStrokeColorId})`,fill:"none"}}),t("circle",{attrs:{r:e.radius,cy:e.center,cx:e.center,"stroke-width":e.strokeWidth,stroke:`url(#${e.primaryStrokeColorId})`,"stroke-dasharray":e.circumference,"stroke-dashoffset":e.circumference*(1-e.percentage),fill:"none"}})]),e.showText?t("text",{staticStyle:{"font-size":"25","dominant-baseline":"middle","text-anchor":"middle"},attrs:{x:e.center,y:e.center,fill:`url(#${e.primaryStrokeColorId})`}},[e._v(" "+e._s(e.parsePercentage)+"% ")]):e._e()])},n=[];let i=0;var l={props:{percentage:{type:Number,default:.75},strokeWidth:{type:Number,default:22},primaryStrokeColor:{type:String,required:!0},primaryStrokeGradientColor:{type:String,default:null},secondaryStrokeColor:{type:String,required:!0},secondaryStrokeGradientColor:{type:String,default:null},rotate:{type:Number,default:90},showText:{type:Boolean,default:!1}},data(){return{id:i++}},computed:{viewportSize(){return 100},radius(){const e=this.viewportSize/2,t=this.strokeWidth/2;return e-t},center(){return this.viewportSize/2},viewBox(){return`0 0 ${this.viewportSize} ${this.viewportSize}`},circumference(){return 2*Math.PI*this.radius},transform(){return`rotate(${this.rotate}, ${this.center}, ${this.center})`},strokeDasharray(){return this.circumference},strokeDashoffset(){return this.circumference*(1-this.percentage)},primaryStrokeColorId(){return"primary-"+i},secondaryStrokeColorId(){return"secondary-"+i},parsePercentage(){return parseInt(100*this.percentage)||0}}},d=l,c=(a("a357"),a("d802")),u=Object(c["a"])(d,o,n,!1,null,"5f78e642",null),p=u.exports,h=function(){var e=this,t=e._self._c;return t("div",{staticClass:"gradient-box",class:{"show-tab":e.showTab,plain:e.plain},style:e.style},[e._t("default")],2)},f=[],b={props:{primaryColorVar:{type:String,default:null},showTab:{type:Boolean,default:!0},showSolid:{type:Boolean,default:!1},backgroundOpacityAdjustment:{type:Number,default:1},plain:{type:Boolean,default:!1}},computed:{leftColor(){return this.showSolid?this.primaryColor:this.customizePrimaryColorOpacity(.25*this.backgroundOpacityAdjustment)},rightColor(){return this.showSolid?this.primaryColor:this.customizePrimaryColorOpacity(.125*this.backgroundOpacityAdjustment)},primaryColor(){return this.customizePrimaryColorOpacity(1)},style(){if(!this.plain){const e=`background: transparent linear-gradient(94deg, ${this.leftColor} 0%, ${this.rightColor} 100%) 0% 0% no-repeat padding-box;`,t=this.showBorder?`border: 1px solid ${this.primaryColor};`:"",a=this.showTab?`border-left: 9px solid ${this.primaryColor};`:"";return`${e}${t}${a}`}return""}},methods:{customizePrimaryColorOpacity(e){return`rgba(var(${this.primaryColorVar}), ${e})`}}},v=b,m=(a("9e9f"),a("25a4"),Object(c["a"])(v,h,f,!1,null,"42940dc4",null)),g=m.exports,y={components:{GradientBox:g,GraphCircle:p},props:{name:{type:String,required:!0},total:{type:Number,required:!0},useful:{type:Number,required:!0},primaryColorVar:{type:String,default:null},warningCount:{type:Number,default:0},errorCount:{type:Number,default:0},location:{type:Object,default:null},plain:{type:Boolean,default:!1},graphical:{type:Boolean,default:!0}},computed:{percentage(){return 0===this.total?0:this.useful/this.total},clickable(){return!!this.location},showAlerts(){const e=this.warningCount+this.errorCount;return e>0}},methods:{visitLocation(){this.clickable&&this.$router.push(this.location)}}},x=y,w=(a("1645"),Object(c["a"])(x,r,s,!1,null,null,null));t["a"]=w.exports},"764c":function(e,t,a){var r=a("66a2");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("23f110c9",r,!0,{sourceMap:!1,shadowMode:!1})},"7d6c":function(e,t,a){var r=a("9ef5"),s=1/0,o=17976931348623157e292;function n(e){if(!e)return 0===e?e:0;if(e=r(e),e===s||e===-s){var t=e<0?-1:1;return t*o}return e===e?e:0}e.exports=n},8356:function(e,t,a){var r=a("db3f");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("1fc9ca71",r,!0,{sourceMap:!1,shadowMode:!1})},"898f":function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,".dashboard-metrics[data-v-1e72d538] .external-link{position:absolute;left:200px;top:-45px}.dashboard-metrics[data-v-1e72d538] .frame{top:0}.dashboard-metrics.external-link-pull-left[data-v-1e72d538] .external-link{position:absolute;left:10px;top:-47px}",""]),e.exports=t},9648:function(e,t,a){var r=a("898f");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("37c375f2",r,!0,{sourceMap:!1,shadowMode:!1})},"96ab":function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,".gradient-box{border-radius:5px}",""]),e.exports=t},"9b66":function(e,t,a){var r=a("7d6c");function s(e){var t=r(e),a=t%1;return t===t?a?t-a:t:0}e.exports=s},"9c34":function(e,t,a){var r=a("5a1e");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("e1b83e60",r,!0,{sourceMap:!1,shadowMode:!1})},"9e9f":function(e,t,a){"use strict";a("1bf1")},a1d8:function(e,t){function a(e){return e&&e.length?e[0]:void 0}e.exports=a},a357:function(e,t,a){"use strict";a("6fc4")},b45b:function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return l}));var r=a("f390"),s=a("4048");a("907c");const o=["100.2.0+up40.1.2","102.0.0+up40.1.2"];function n(e,t){return o.includes(e)?"/k8s/clusters/"+t:"local"===t?"":"/k8s/clusters/"+t}function i(e,t,a,r,o=!0){const i=Object(s["c"])(t);let l=o?`${n(e,a)}${i.path}`:i.path;return i.query.viewPanel&&(l=Object(s["a"])(l,"viewPanel",i.query.viewPanel)),l=Object(s["a"])(l,"orgId",i.query.orgId),l=Object(s["a"])(l,"kiosk",null),Object.entries(r).forEach(e=>{l=Object(s["a"])(l,e[0],e[1])}),l}async function l(e,t,a,o,i="cluster"){if(!Object(r["b"])(t.getters))return!1;const l=Object(s["c"])(o),d=n(e,a)+"/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/",c="http:rancher-monitoring-grafana:80/proxy/",u=l.path.split(c)[1],p=u.split("/")[1],h=`${d}api/dashboards/uid/${p}`;try{return await t.dispatch(i+"/request",{url:h,redirectUnauthorized:!1}),!0}catch(f){return!1}}},c389:function(e,t,a){"use strict";var r=function(){var e=this,t=e._self._c;return t("div",{staticClass:"dashboard-metrics",class:!e.hasSummaryAndDetail&&"external-link-pull-left"},[t("div",{staticClass:"graph-options mb-10"},[t("DashboardOptions",{attrs:{"has-summary-and-detail":e.hasSummaryAndDetail},model:{value:e.graphOptions,callback:function(t){e.graphOptions=t},expression:"graphOptions"}})],1),t("div",{staticClass:"info"},[e._t("default")],2),t("div",{staticClass:"graphs",style:{height:e.graphHeight}},["detail"===e.graphOptions.type?t("GrafanaDashboard",{key:"'detail'",staticClass:"col span-12 detail",attrs:{"background-color":e.graphBackgroundColor,theme:e.theme,"refresh-rate":e.graphOptions.refreshRate,range:e.graphOptions.range,url:e.detailUrl,vars:e.vars,"modify-prefix":e.modifyPrefix}}):t("GrafanaDashboard",{key:"'summary'",staticClass:"col span-12 summary",attrs:{"background-color":e.graphBackgroundColor,theme:e.theme,"refresh-rate":e.graphOptions.refreshRate,range:e.graphOptions.range,url:e.summaryUrl,vars:e.vars,"modify-prefix":e.modifyPrefix}})],1)])},s=[],o=function(){var e=this,t=e._self._c;return t("div",{staticClass:"graph-options"},[e.hasSummaryAndDetail?t("div",[t("ButtonGroup",{attrs:{options:e.detailSummaryOptions},model:{value:e.value.type,callback:function(t){e.$set(e.value,"type",t)},expression:"value.type"}})],1):t("div",[t("div")]),t("div",{staticClass:"range-refresh"},[t("LabeledSelect",{attrs:{options:e.rangeOptions,label:e.t("graphOptions.range")},model:{value:e.value.range,callback:function(t){e.$set(e.value,"range",t)},expression:"value.range"}}),t("LabeledSelect",{attrs:{options:e.refreshOptions,label:e.t("graphOptions.refresh")},model:{value:e.value.refreshRate,callback:function(t){e.$set(e.value,"refreshRate",t)},expression:"value.refreshRate"}})],1)])},n=[],i=a("cc2d"),l=a("466b"),d={components:{ButtonGroup:i["a"],LabeledSelect:l["a"]},props:{value:{type:Object,required:!0},hasSummaryAndDetail:{type:Boolean,default:!0}},data(){return{range:null,rangeOptions:[{label:this.t("generic.units.time.5m"),value:"5m"},{label:this.t("generic.units.time.1h"),value:"1h"},{label:this.t("generic.units.time.6h"),value:"6h"},{label:this.t("generic.units.time.1d"),value:"1d"},{label:this.t("generic.units.time.7d"),value:"7d"},{label:this.t("generic.units.time.30d"),value:"30d"}],refreshOptions:[{label:this.t("generic.units.time.5s"),value:"5s"},{label:this.t("generic.units.time.10s"),value:"10s"},{label:this.t("generic.units.time.30s"),value:"30s"},{label:this.t("generic.units.time.1m"),value:"1m"},{label:this.t("generic.units.time.5m"),value:"5m"},{label:this.t("generic.units.time.15m"),value:"15m"},{label:this.t("generic.units.time.30m"),value:"30m"},{label:this.t("generic.units.time.1h"),value:"1h"},{label:this.t("generic.units.time.2h"),value:"2h"},{label:this.t("generic.units.time.1d"),value:"1d"}],detailSummaryOptions:[{label:this.t("graphOptions.detail"),value:"detail"},{label:this.t("graphOptions.summary"),value:"summary"}]}}},c=d,u=(a("1ce3"),a("d802")),p=Object(u["a"])(c,o,n,!1,null,"b7bcaa58",null),h=p.exports,f=function(){var e=this,t=e._self._c;return t("div",{staticClass:"grafana-graph"},[e.error?t("Banner",{staticStyle:{"z-index":"1000"},attrs:{color:"error"}},[t("div",{staticClass:"text-center"},[e._v(" "+e._s(e.t("grafanaDashboard.failedToLoad"))+" "),t("a",{attrs:{href:"#"},on:{click:e.reload}},[e._v(e._s(e.t("grafanaDashboard.reload")))])])]):e._e(),t("iframe",{directives:[{name:"show",rawName:"v-show",value:!e.error,expression:"!error"}],ref:"frame",class:{loading:e.loading,frame:!0},attrs:{src:e.currentUrl,frameborder:"0",scrolling:"no"}}),e.loading?t("div",[t("Loading")],1):e._e(),e.loading||e.error?e._e():t("div",{staticClass:"external-link"},[t("a",{attrs:{href:e.grafanaUrl,target:"_blank",rel:"noopener noreferrer nofollow"}},[e._v(e._s(e.t("grafanaDashboard.grafana"))+" "),t("i",{staticClass:"icon icon-external-link"})])])],1)},b=[],v=a("15ca"),m=a("6418"),g=a("b45b"),y=a("907c"),x={components:{Banner:m["a"],Loading:v["a"]},props:{url:{type:String,required:!0},vars:{type:Object,default:()=>({})},range:{type:String,default:null},refreshRate:{type:String,default:null},modifyPrefix:{type:Boolean,default:!0},backgroundColor:{type:String,default:"#1b1c21"},theme:{type:String,default:"dark"}},async fetch(){const e=this.$store.getters["currentProduct"].inStore,t=await this.$store.dispatch(e+"/find",{type:y["b"].APP,id:"cattle-monitoring-system/rancher-monitoring"});this.monitoringVersion=null===t||void 0===t?void 0:t.currentVersion},data(){return{loading:!1,error:!1,interval:null,errorTimer:null,monitoringVersion:null}},computed:{currentUrl(){return this.computeUrl()},grafanaUrl(){return this.currentUrl.replace("&kiosk","")},graphWindow(){var e;return null===(e=this.$refs.frame)||void 0===e?void 0:e.contentWindow},graphHistory(){var e;return null===(e=this.graphWindow)||void 0===e?void 0:e.history},graphDocument(){var e;return null===(e=this.graphWindow)||void 0===e?void 0:e.document}},watch:{currentUrl(e){var t;this.graphHistory&&null!==(t=this.graphWindow)&&void 0!==t&&t.angular&&this.graphWindow.location.replace(e)},error(e){e?this.errorTimer=setInterval(()=>{this.reload()},45e3):(clearInterval(this.errorTimer),this.errorTimer=null)}},mounted(){this.$refs.frame.onload=this.inject,this.poll()},beforeDestroy(){this.interval&&clearInterval(this.interval),this.errorTimer&&clearInterval(this.errorTimer)},methods:{poll(){this.interval&&(clearInterval(this.interval),this.interval=null),this.interval=setInterval(()=>{try{var e;const t=null===(e=this.$refs.frame)||void 0===e?void 0:e.contentWindow,a=t.document.getElementsByClassName("alert-error"),r=t.document.getElementsByClassName("panel-info-corner--error"),s=t.document.getElementsByClassName("panel-in-fullscreen"),o=t.document.getElementsByClassName("panel-container"),n=a.length>0||r.length>0,i=s.length>0||o.length>0,l=t.document.getElementsByTagName("pre"),d=l.length>0?l[0].innerText:"",c=d.includes('"status": "Failure"');if(n)throw new Error("An error was detected in the iframe");this.$set(this,"loading",!i),this.$set(this,"error",c)}catch(t){this.$set(this,"error",!0),this.$set(this,"loading",!1),clearInterval(this.interval),this.interval=null}},100)},computeFromTo(){return{from:"now-"+this.range,to:"now"}},computeUrl(){const e=this.url,t=this.$store.getters["currentCluster"].id,a=this.computeParams();return Object(g["a"])(this.monitoringVersion,e,t,a,this.modifyPrefix)},computeParams(){const e={},t=this.computeFromTo();return t.from&&(e.from=t.from),t.to&&(e.to=t.to),this.refreshRate&&(e.refresh=this.refreshRate),Object.keys(this.vars).length>0&&Object.entries(this.vars).forEach(t=>{const a="var-"+t[0];e[a]=t[1]}),e.theme=this.theme,e},reload(e){e&&e.preventDefault(),this.$refs.frame.contentWindow.location.reload(),this.poll()},injectCss(){var e;const t=document.createElement("style");t.innerHTML=`\n body .grafana-app .dashboard-content {\n background: ${this.backgroundColor};\n padding: 0;\n }\n\n body .grafana-app .layout {\n background: ${this.backgroundColor};\n }\n\n\n body .grafana-app .dashboard-content .panel-container {\n background-color: initial;\n border: none;\n }\n\n body .grafana-app .dashboard-content .panel-wrapper {\n height: 100%;\n }\n\n body .grafana-app .panel-menu-container {\n display: none;\n }\n\n body .grafana-app .panel-title {\n cursor: default;\n }\n\n body .grafana-app .panel-title .panel-title-text div {\n display: none;\n }\n `;const a=null===(e=this.$refs.frame)||void 0===e?void 0:e.contentWindow,r=null===a||void 0===a?void 0:a.document;r.head&&r.head.appendChild(t)},inject(){this.injectCss()}}},w=x,k=(a("13ad"),Object(u["a"])(w,f,b,!1,null,"a5a1b7f4",null)),C=k.exports,_=a("9ce4"),T={components:{DashboardOptions:h,GrafanaDashboard:C},props:{detailUrl:{type:String,required:!0},summaryUrl:{type:String,default:""},vars:{type:Object,default:()=>({})},graphHeight:{type:String,required:!0},hasSummaryAndDetail:{type:Boolean,default:!0},modifyPrefix:{type:Boolean,default:!0}},data(){return{graphOptions:{range:"5m",refreshRate:"30s",type:"detail"}}},computed:{...Object(_["a"])(["prefs/theme"]),graphBackgroundColor(){return"dark"===this.theme?"#2e3035":"#f3f4f9"},theme(){return this["prefs/theme"]}}},O=T,S=(a("ec0b"),Object(u["a"])(O,r,s,!1,null,"1e72d538",null));t["a"]=S.exports},c422:function(e,t,a){"use strict";var r=function(){var e=this,t=e._self._c;return t("Tabbed",e._b({attrs:{"default-tab":e.defaultTab},on:{changed:e.tabChange}},"Tabbed",e.$attrs,!1),[e._t("default"),e.showConditions?t("Tab",{attrs:{"label-key":"resourceTabs.conditions.tab",name:"conditions",weight:-1,"display-alert-icon":e.conditionsHaveIssues}},[t("Conditions",{attrs:{value:e.value}})],1):e._e(),e.showEvents?t("Tab",{attrs:{"label-key":"resourceTabs.events.tab",name:"events",weight:-2}},["events"===e.selectedTab?t("SortableTable",{attrs:{rows:e.events,headers:e.eventHeaders,"key-field":"id",search:!1,"table-actions":!1,"row-actions":!1,"default-sort-by":"date"}}):e._e()],1):e._e(),e.showRelated?t("Tab",{attrs:{name:"related","label-key":"resourceTabs.related.tab",weight:-3}},[t("h3",{directives:[{name:"t",rawName:"v-t",value:"resourceTabs.related.from",expression:"'resourceTabs.related.from'"}]}),t("RelatedResources",{attrs:{"ignore-types":[e.value.type],value:e.value,direction:"from"}}),t("h3",{directives:[{name:"t",rawName:"v-t",value:"resourceTabs.related.to",expression:"'resourceTabs.related.to'"}],staticClass:"mt-20"}),t("RelatedResources",{attrs:{"ignore-types":[e.value.type],value:e.value,direction:"to"}})],1):e._e(),e._l(e.extensionTabs,(function(a,r){return t("Tab",{key:`${a.name}${r}`,attrs:{name:a.name,label:a.label,"label-key":a.labelKey,weight:a.weight,tooltip:a.tooltip,"show-header":a.showHeader,"display-alert-icon":a.displayAlertIcon,error:a.error,badge:a.badge}},[t(a.component,{tag:"component",attrs:{resource:e.value}})],1)}))],2)},s=[],o=a("0cb2"),n=a("38de"),i=a("305c"),l=function(){var e=this,t=e._self._c;return t("SortableTable",{attrs:{headers:e.headers,rows:e.rows,"key-field":"condition","default-sort-by":"condition","table-actions":!1,"row-actions":!1,search:!1},scopedSlots:e._u([{key:"cell:condition",fn:function({row:a}){return[t("span",{class:{"text-error":a.error}},[e._v(e._s(a.condition))])]}},{key:"cell:status",fn:function({row:a}){return[t("span",{class:{"text-error":a.error}},[e._v(e._s(a.status))])]}}])})},d=[],c=a("0fb1"),u={components:{SortableTable:c["b"]},props:{value:{type:Object,default:()=>({})}},computed:{headers(){return[{name:"condition",labelKey:"tableHeaders.condition",value:"condition",width:150,sort:"condition",dashIfEmpty:!0},{name:"status",labelKey:"tableHeaders.status",value:"status",width:75,sort:"status",dashIfEmpty:!0},{name:"time",labelKey:"tableHeaders.updated",value:"time",sort:"time",formatter:"LiveDate",formatterOpts:{addSuffix:!0},width:125,dashIfEmpty:!0},{name:"message",labelKey:"tableHeaders.message",value:"message",sort:["message"],dashIfEmpty:!0}]},rows(){var e;return((null===(e=this.value.status)||void 0===e?void 0:e.conditions)||[]).map(e=>{let t=e.message||"";return e.reason&&(t=`[${e.reason}] ${t}`.trim()),{condition:e.type||"Unknown",status:e.status||"Unknown",error:e.error,time:e.lastProbeTime||e.lastUpdateTime||e.lastTransitionTime,message:t}})}}},p=u,h=a("d802"),f=Object(h["a"])(p,l,d,!1,null,null,null),b=f.exports,v=a("907c"),m=a("da25"),g=function(){var e=this,t=e._self._c;return t("ResourceTable",{attrs:{schema:null,rows:e.rows,headers:e.headers,search:!1,"table-actions":!1,namespaced:!0,"mangle-action-resources":e.getRealResources,"paging-label":"sortableTable.paging.generic",groupable:!1},scopedSlots:e._u([{key:"cell:state",fn:function({row:e}){return[e.real?t("BadgeState",{attrs:{value:e.real}}):t("BadgeState",{attrs:{value:e}})]}}])})},y=[],x=a("126f"),w=a("9c09"),k=a("462f"),C=a("1d19"),_=a("bcb3"),T=a("f17a"),O={components:{ResourceTable:x["a"],BadgeState:T["a"]},props:{value:{type:Object,required:!0},rel:{type:String,default:null},direction:{type:String,default:"to"},ignoreTypes:{type:Array,default:()=>[]}},data(){return{loadedResources:1}},computed:{filteredRelationships(){var e,t;let a=(null===(e=this.value)||void 0===e||null===(t=e.metadata)||void 0===t?void 0:t.relationships)||[];return a=a.filter(e=>{const t=e[this.direction+"Type"];return!(!t||this.ignoreTypes.includes(t))&&(!this.rel||e.rel===this.rel)}),a},rows(){if(this.loadedResources<1)return;const e=this.$store.getters["clusterId"],t=this.$store.getters["currentStore"](),a=[];for(const r of this.filteredRelationships){const s=r.state||"active",o=Object(w["c"])(s,r.error,r.transitioning),n=r[this.direction+"Type"],i=this.$store.getters[t+"/schemaFor"](n);let l=r[this.direction+"Id"];if(!l)continue;let d=null;const c=l.indexOf("/"),u=`${n}/${d}/${l}`;c>0&&(d=l.substr(0,c),l=l.substr(c+1));const p={name:`c-cluster-product-resource${d?"-namespace":""}-id`,params:{product:_["a"],cluster:"management"===t?"local":e,resource:n,namespace:d,id:l}};a.push({type:n,real:this.$store.getters[t+"/byId"](n,r[this.direction+"Id"]),id:r[this.direction+"Id"],state:s,metadata:{namespace:d,name:l},_key:u,name:l,namespace:d,nameDisplay:l,nameSort:Object(C["b"])(l).toLowerCase(),stateColor:o,detailLocation:p,typeDisplay:this.$store.getters["type-map/labelFor"](i),stateDisplay:Object(w["f"])(s),stateBackground:o.replace("text-","bg-"),groupByLabel:d})}return a},headers(){return[k["H"],k["M"],k["s"],k["t"]]}},methods:{async getRealResources(e){const t=this.$store.getters["currentStore"](),a=await Promise.allSettled(e.map(e=>this.$store.dispatch(t+"/find",{type:e.type,id:e.id}))),r=[];for(let s=0;s({})},mode:{type:String,default:m["A"]},defaultTab:{type:String,default:null},needConditions:{type:Boolean,default:!0},needEvents:{type:Boolean,default:!0},needRelated:{type:Boolean,default:!0}},data(){const e=this.$store.getters["currentStore"](v["f"]);return{hasEvents:this.$store.getters[e+"/schemaFor"](v["f"]),allEvents:[],selectedTab:this.defaultTab,didLoadEvents:!1,extensionTabs:Object(R["a"])(this,B["c"].TAB,B["e"].RESOURCE_DETAIL,this.$route)}},beforeDestroy(){this.$store.dispatch("cluster/forgetType",v["f"])},computed:{showConditions(){const e=this.$store.getters["currentStore"](this.value.type);var t;return!!this.$store.getters[e+"/schemaFor"](this.value.type)&&(this.isView&&this.needConditions&&(null===(t=this.value)||void 0===t?void 0:t.type)&&this.$store.getters[e+"/pathExistsInSchema"](this.value.type,"status.conditions"))},showEvents(){return this.isView&&this.needEvents&&this.hasEvents},showRelated(){return this.isView&&this.needRelated},eventHeaders(){return[{name:"type",label:this.t("tableHeaders.type"),value:"eventType",sort:"eventType"},{name:"reason",label:this.t("tableHeaders.reason"),value:"reason",sort:"reason"},{name:"date",label:this.t("tableHeaders.updated"),value:"date",sort:"date:desc",formatter:"LiveDate",formatterOpts:{addSuffix:!0},width:125},{name:"message",label:this.t("tableHeaders.message"),value:"message",sort:"message"}]},events(){return this.allEvents.filter(e=>{var t,a,r;return(null===(t=e.involvedObject)||void 0===t?void 0:t.uid)===(null===(a=this.value)||void 0===a||null===(r=a.metadata)||void 0===r?void 0:r.uid)}).map(e=>({reason:`${e.reason||this.t("generic.unknown")}${e.count>1?` (${e.count})`:""}`.trim(),message:e.message||this.t("generic.unknown"),date:e.lastTimestamp||e.firstTimestamp||e.metadata.creationTimestamp,eventType:e.eventType}))},conditionsHaveIssues(){var e,t;return!!this.showConditions&&(null===(e=this.value.status)||void 0===e||null===(t=e.conditions)||void 0===t?void 0:t.some(e=>e.error))}},methods:{tabChange(e){if(this.selectedTab=null===e||void 0===e?void 0:e.selectedName,!this.didLoadEvents&&"events"===this.selectedTab){const e=this.$store.getters["currentStore"](v["f"]);this.$store.dispatch(e+"/findAll",{type:v["f"]}).then(e=>{this.allEvents=e,this.didLoadEvents=!0})}}}},I=A,D=Object(h["a"])(I,r,s,!1,null,null,null);t["a"]=D.exports},db3f:function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,".gradient-box.plain[data-v-42940dc4]{border:1px solid var(--border)}",""]),e.exports=t},dcdc:function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,".graph-options[data-v-b7bcaa58],.graph-options .range-refresh[data-v-b7bcaa58]{display:flex;flex-direction:row;justify-content:flex-end}.graph-options[data-v-b7bcaa58]{justify-content:space-between;align-items:center}.graph-options .labeled-select[data-v-b7bcaa58]{width:100px;margin-left:10px}",""]),e.exports=t},ec0b:function(e,t,a){"use strict";a("9648")},f9f6:function(e,t,a){var r=a("dcdc");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var s=a("0ed3").default;s("51569b1b",r,!0,{sourceMap:!1,shadowMode:!1})},facb:function(e,t,a){var r=a("5eaa");t=r(!1),t.push([e.i,"svg.text[data-v-5f78e642]{fill:red}",""]),e.exports=t}}]); +//# sourceMappingURL=kubewarden-1.1.0.umd.min.vendors~detail.js.map \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~detail.js.map b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~detail.js.map new file mode 100644 index 00000000..2a4b8b62 --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~detail.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/Tabbed/index.vue","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/Tabbed/index.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/Tabbed/index.vue?e84e","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/Tabbed/index.vue?7b76","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GrafanaDashboard.vue?9678","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/CountGauge.vue?d023","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/lodash/findIndex.js","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/CountGauge.vue?2e55","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GradientBox.vue?a89d","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardOptions.vue?abfc","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/CountGauge.vue?c3e1","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GradientBox.vue?740b","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/mixins/create-edit-view/index.js","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/Tabbed/index.vue?b406","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/Tabbed/index.vue?8001","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GrafanaDashboard.vue?e10d","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/graph/Circle.vue?2eeb","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/CountGauge.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/graph/Circle.vue","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/graph/Circle.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/graph/Circle.vue?a6b0","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/graph/Circle.vue?df97","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GradientBox.vue","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/GradientBox.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GradientBox.vue?04b6","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GradientBox.vue?fa7d","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/CountGauge.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/CountGauge.vue?04eb","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/CountGauge.vue?4f92","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GrafanaDashboard.vue?b3cb","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/lodash/toFinite.js","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GradientBox.vue?2820","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardMetrics.vue?5af2","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardMetrics.vue?eb66","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GradientBox.vue?8710","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/lodash/toInteger.js","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/Tabbed/index.vue?544b","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GradientBox.vue?a15f","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/lodash/head.js","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/graph/Circle.vue?8765","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/utils/grafana.js","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardMetrics.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardOptions.vue","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/DashboardOptions.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardOptions.vue?8d49","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardOptions.vue?7e0d","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GrafanaDashboard.vue","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/GrafanaDashboard.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GrafanaDashboard.vue?794f","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GrafanaDashboard.vue?d7c3","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/DashboardMetrics.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardMetrics.vue?6845","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardMetrics.vue?422c","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/form/ResourceTabs/index.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/form/Conditions.vue","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/form/Conditions.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/form/Conditions.vue?ca79","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/form/Conditions.vue?8f82","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/RelatedResources.vue","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/RelatedResources.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/RelatedResources.vue?64c9","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/RelatedResources.vue?1fcf","webpack://kubewarden-1.1.0/../../node_modules/@rancher/shell/components/form/ResourceTabs/index.vue","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/form/ResourceTabs/index.vue?4dd5","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/form/ResourceTabs/index.vue?e808","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/GradientBox.vue?2545","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardOptions.vue?1ad6","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardMetrics.vue?2f50","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/DashboardOptions.vue?b34b","webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/@rancher/shell/components/graph/Circle.vue?7005"],"names":["render","_vm","this","_c","_self","class","sideTabs","tabsOnly","ref","staticClass","attrs","on","$event","type","indexOf","_k","keyCode","key","button","preventDefault","selectNext","_l","sortedTabs","tab","name","active","disabled","error","select","_v","_s","labelDisplay","badge","_e","hasIcon","directives","rawName","value","t","expression","length","showTabsAddRemove","tabAddClicked","tabRemoveClicked","_t","tabs","noContent","flat","staticRenderFns","props","defaultTab","String","default","Boolean","scrollOnChange","useHash","provide","addTab","existing","findBy","removeObject","addObject","removeTab","data","activeTabName","computed","sortBy","watch","activeTab","find","hash","$route","undefined","windowHash","slice","windowHashTabMatch","firstTab","head","isEmpty","mounted","window","addEventListener","hashChange","unmounted","removeEventListener","methods","displayAlertIcon","scrollable","document","getElementsByTagName","scrollTop","x","selected","hashName","routeHash","$router","currentRoute","kurrentRoute","replace","$emit","selectedName","direction","currentIdx","findIndex","nextIdx","getCyclicalIdx","nextName","tabsLength","nxt","$nextTick","$refs","tablist","focus","activeTabIndex","component","baseFindIndex","baseIteratee","toInteger","nativeMax","Math","max","array","predicate","fromIndex","index","module","exports","content","__esModule","i","locals","add","___CSS_LOADER_API_IMPORT___","push","Vue","extend","impl","mode","_EDIT","realMode","as","_YAML","Object","required","initialValue","liveValue","doneEvent","clickable","primaryColorVar","plain","nativeOn","visitLocation","graphical","percentage","useful","showAlerts","warningCount","errorCount","viewBox","transform","primaryStrokeColorId","primaryStrokeGradientColor","primaryStrokeColor","secondaryStrokeColorId","secondaryStrokeGradientColor","secondaryStrokeColor","radius","center","strokeWidth","circumference","showText","staticStyle","parsePercentage","id","Number","rotate","viewportSize","outerRadius","halfStrokeWidth","PI","strokeDasharray","strokeDashoffset","parseInt","showTab","style","showSolid","backgroundOpacityAdjustment","leftColor","primaryColor","customizePrimaryColorOpacity","rightColor","background","border","showBorder","borderLeft","opacity","components","GradientBox","GraphCircle","total","location","toNumber","INFINITY","MAX_INTEGER","toFinite","sign","result","remainder","MONITORING_VERSION_ALT_URL","getClusterPrefix","monitoringVersion","clusterId","includes","computeDashboardUrl","embedUrl","params","modifyPrefix","url","parseUrl","newUrl","path","query","viewPanel","addParam","orgId","entries","forEach","entry","async","dashboardExists","store","storeName","haveV2Monitoring","getters","prefix","delimiter","split","uid","dispatch","redirectUnauthorized","ex","hasSummaryAndDetail","model","graphOptions","callback","$$v","height","graphHeight","graphBackgroundColor","theme","refreshRate","range","detailUrl","vars","summaryUrl","detailSummaryOptions","$set","rangeOptions","refreshOptions","ButtonGroup","LabeledSelect","label","reload","loading","frame","currentUrl","grafanaUrl","Banner","Loading","backgroundColor","inStore","$store","res","CATALOG","APP","currentVersion","interval","errorTimer","computeUrl","graphWindow","_this$$refs$frame","contentWindow","graphHistory","_this$graphWindow","history","graphDocument","_this$graphWindow2","neu","_this$graphWindow3","angular","setInterval","clearInterval","onload","inject","poll","beforeDestroy","_this$$refs$frame2","errorElements","getElementsByClassName","errorCornerElements","panelInFullScreenElements","panelContainerElements","loaded","errorMessageElms","errorMessage","innerText","isFailure","Error","computeFromTo","from","to","computeParams","fromTo","refresh","keys","paramName","ev","injectCss","_this$$refs$frame3","createElement","innerHTML","appendChild","DashboardOptions","GrafanaDashboard","mapGetters","_b","tabChange","$attrs","showConditions","conditionsHaveIssues","showEvents","selectedTab","events","eventHeaders","showRelated","extensionTabs","labelKey","weight","tooltip","showHeader","tag","headers","rows","scopedSlots","_u","fn","row","condition","status","SortableTable","width","sort","dashIfEmpty","formatter","formatterOpts","addSuffix","_this$value$status","conditions","map","cond","message","reason","trim","time","lastProbeTime","lastUpdateTime","lastTransitionTime","getRealResources","real","ResourceTable","BadgeState","rel","ignoreTypes","Array","loadedResources","filteredRelationships","_this$value","_this$value$metadata","all","metadata","relationships","filter","relationship","cluster","out","r","state","stateColor","colorForState","transitioning","schema","namespace","idx","substr","detailLocation","product","EXPLORER","resource","_key","nameDisplay","nameSort","sortableNumericSuffix","toLowerCase","typeDisplay","stateDisplay","stateBackground","groupByLabel","STATE","TYPE","NAME","NAMESPACE","Promise","allSettled","Tabbed","Tab","Conditions","RelatedResources","mixins","CreateEditView","_VIEW","needConditions","needEvents","needRelated","EVENT","hasEvents","allEvents","didLoadEvents","getApplicableExtensionEnhancements","ExtensionPoint","TAB","TabLocation","RESOURCE_DETAIL","isView","event","_event$involvedObject","_this$value2","_this$value2$metadata","involvedObject","count","date","lastTimestamp","firstTimestamp","creationTimestamp","eventType","_this$value$status$co","some","then"],"mappings":"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","file":"kubewarden-1.1.0.umd.min.vendors~detail.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{'side-tabs': !!_vm.sideTabs, 'tabs-only': _vm.tabsOnly }},[_c('ul',{ref:\"tablist\",staticClass:\"tabs\",class:{'clearfix':!_vm.sideTabs, 'vertical': _vm.sideTabs, 'horizontal': !_vm.sideTabs},attrs:{\"role\":\"tablist\",\"tabindex\":\"0\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"]))return null;if('button' in $event && $event.button !== 2)return null;$event.preventDefault();return _vm.selectNext(1)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;$event.preventDefault();return _vm.selectNext(-1)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;$event.preventDefault();return _vm.selectNext(1)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;$event.preventDefault();return _vm.selectNext(-1)}]}},[_vm._l((_vm.sortedTabs),function(tab){return _c('li',{key:tab.name,class:{tab: true, active: tab.active, disabled: tab.disabled, error: (tab.error)},attrs:{\"id\":tab.name,\"data-testid\":tab.name,\"role\":\"presentation\"}},[_c('a',{attrs:{\"data-testid\":`btn-${tab.name}`,\"aria-controls\":'#' + tab.name,\"aria-selected\":tab.active,\"role\":\"tab\"},on:{\"click\":function($event){$event.preventDefault();return _vm.select(tab.name, $event)}}},[_c('span',[_vm._v(_vm._s(tab.labelDisplay))]),(tab.badge)?_c('span',{staticClass:\"tab-badge\"},[_vm._v(_vm._s(tab.badge))]):_vm._e(),(_vm.hasIcon(tab))?_c('i',{directives:[{name:\"clean-tooltip\",rawName:\"v-clean-tooltip\",value:(_vm.t('validation.tab')),expression:\"t('validation.tab')\"}],staticClass:\"conditions-alert-icon icon-error\"}):_vm._e()])])}),(_vm.sideTabs && !_vm.sortedTabs.length)?_c('li',{staticClass:\"tab disabled\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"(None)\")])]):_vm._e(),(_vm.sideTabs && _vm.showTabsAddRemove)?_c('ul',{staticClass:\"tab-list-footer\"},[_c('li',[_c('button',{staticClass:\"btn bg-transparent\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.tabAddClicked}},[_c('i',{staticClass:\"icon icon-plus\"})]),_c('button',{staticClass:\"btn bg-transparent\",attrs:{\"type\":\"button\",\"disabled\":!_vm.sortedTabs.length},on:{\"click\":_vm.tabRemoveClicked}},[_c('i',{staticClass:\"icon icon-minus\"})])])]):_vm._e(),_vm._t(\"tab-row-extras\")],2),_c('div',{class:{\n 'tab-container': !!_vm.tabs.length || !!_vm.sideTabs,\n 'no-content': _vm.noContent,\n 'tab-container--flat': !!_vm.flat,\n }},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f1718c5e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f1718c5e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f1718c5e\",\n null\n \n)\n\nexport default component.exports","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!./GrafanaDashboard.vue?vue&type=style&index=0&id=a5a1b7f4&prod&lang=scss&scoped=true&\"","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!./CountGauge.vue?vue&type=style&index=0&id=248b86e0&prod&lang=scss&\"","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","// 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!./Circle.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!./Circle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Circle.vue?vue&type=template&id=5f78e642&scoped=true&\"\nimport script from \"./Circle.vue?vue&type=script&lang=js&\"\nexport * from \"./Circle.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Circle.vue?vue&type=style&index=0&id=5f78e642&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 \"5f78e642\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gradient-box\",class:{'show-tab': _vm.showTab, 'plain': _vm.plain},style:(_vm.style)},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./GradientBox.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!./GradientBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GradientBox.vue?vue&type=template&id=42940dc4&scoped=true&\"\nimport script from \"./GradientBox.vue?vue&type=script&lang=js&\"\nexport * from \"./GradientBox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GradientBox.vue?vue&type=style&index=0&id=42940dc4&prod&lang=scss&\"\nimport style1 from \"./GradientBox.vue?vue&type=style&index=1&id=42940dc4&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 \"42940dc4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CountGauge.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!./CountGauge.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CountGauge.vue?vue&type=template&id=248b86e0&\"\nimport script from \"./CountGauge.vue?vue&type=script&lang=js&\"\nexport * from \"./CountGauge.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CountGauge.vue?vue&type=style&index=0&id=248b86e0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a \r\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!./DashboardOptions.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!./DashboardOptions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DashboardOptions.vue?vue&type=template&id=b7bcaa58&scoped=true&\"\nimport script from \"./DashboardOptions.vue?vue&type=script&lang=js&\"\nexport * from \"./DashboardOptions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DashboardOptions.vue?vue&type=style&index=0&id=b7bcaa58&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 \"b7bcaa58\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"grafana-graph\"},[(_vm.error)?_c('Banner',{staticStyle:{\"z-index\":\"1000\"},attrs:{\"color\":\"error\"}},[_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.t('grafanaDashboard.failedToLoad'))+\" \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":_vm.reload}},[_vm._v(_vm._s(_vm.t('grafanaDashboard.reload')))])])]):_vm._e(),_c('iframe',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.error),expression:\"!error\"}],ref:\"frame\",class:{loading: _vm.loading, frame: true},attrs:{\"src\":_vm.currentUrl,\"frameborder\":\"0\",\"scrolling\":\"no\"}}),(_vm.loading)?_c('div',[_c('Loading')],1):_vm._e(),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"external-link\"},[_c('a',{attrs:{\"href\":_vm.grafanaUrl,\"target\":\"_blank\",\"rel\":\"noopener noreferrer nofollow\"}},[_vm._v(_vm._s(_vm.t('grafanaDashboard.grafana'))+\" \"),_c('i',{staticClass:\"icon icon-external-link\"})])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\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!./GrafanaDashboard.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!./GrafanaDashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GrafanaDashboard.vue?vue&type=template&id=a5a1b7f4&scoped=true&\"\nimport script from \"./GrafanaDashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./GrafanaDashboard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GrafanaDashboard.vue?vue&type=style&index=0&id=a5a1b7f4&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 \"a5a1b7f4\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\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!./DashboardMetrics.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!./DashboardMetrics.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DashboardMetrics.vue?vue&type=template&id=1e72d538&scoped=true&\"\nimport script from \"./DashboardMetrics.vue?vue&type=script&lang=js&\"\nexport * from \"./DashboardMetrics.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DashboardMetrics.vue?vue&type=style&index=0&id=1e72d538&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 \"1e72d538\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabbed',_vm._b({attrs:{\"default-tab\":_vm.defaultTab},on:{\"changed\":_vm.tabChange}},'Tabbed',_vm.$attrs,false),[_vm._t(\"default\"),(_vm.showConditions)?_c('Tab',{attrs:{\"label-key\":\"resourceTabs.conditions.tab\",\"name\":\"conditions\",\"weight\":-1,\"display-alert-icon\":_vm.conditionsHaveIssues}},[_c('Conditions',{attrs:{\"value\":_vm.value}})],1):_vm._e(),(_vm.showEvents)?_c('Tab',{attrs:{\"label-key\":\"resourceTabs.events.tab\",\"name\":\"events\",\"weight\":-2}},[(_vm.selectedTab === 'events')?_c('SortableTable',{attrs:{\"rows\":_vm.events,\"headers\":_vm.eventHeaders,\"key-field\":\"id\",\"search\":false,\"table-actions\":false,\"row-actions\":false,\"default-sort-by\":\"date\"}}):_vm._e()],1):_vm._e(),(_vm.showRelated)?_c('Tab',{attrs:{\"name\":\"related\",\"label-key\":\"resourceTabs.related.tab\",\"weight\":-3}},[_c('h3',{directives:[{name:\"t\",rawName:\"v-t\",value:('resourceTabs.related.from'),expression:\"'resourceTabs.related.from'\"}]}),_c('RelatedResources',{attrs:{\"ignore-types\":[_vm.value.type],\"value\":_vm.value,\"direction\":\"from\"}}),_c('h3',{directives:[{name:\"t\",rawName:\"v-t\",value:('resourceTabs.related.to'),expression:\"'resourceTabs.related.to'\"}],staticClass:\"mt-20\"}),_c('RelatedResources',{attrs:{\"ignore-types\":[_vm.value.type],\"value\":_vm.value,\"direction\":\"to\"}})],1):_vm._e(),_vm._l((_vm.extensionTabs),function(tab,i){return _c('Tab',{key:`${tab.name}${i}`,attrs:{\"name\":tab.name,\"label\":tab.label,\"label-key\":tab.labelKey,\"weight\":tab.weight,\"tooltip\":tab.tooltip,\"show-header\":tab.showHeader,\"display-alert-icon\":tab.displayAlertIcon,\"error\":tab.error,\"badge\":tab.badge}},[_c(tab.component,{tag:\"component\",attrs:{\"resource\":_vm.value}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SortableTable',{attrs:{\"headers\":_vm.headers,\"rows\":_vm.rows,\"key-field\":\"condition\",\"default-sort-by\":\"condition\",\"table-actions\":false,\"row-actions\":false,\"search\":false},scopedSlots:_vm._u([{key:\"cell:condition\",fn:function({row}){return [_c('span',{class:{'text-error': row.error}},[_vm._v(_vm._s(row.condition))])]}},{key:\"cell:status\",fn:function({row}){return [_c('span',{class:{'text-error': row.error}},[_vm._v(_vm._s(row.status))])]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Conditions.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!./Conditions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Conditions.vue?vue&type=template&id=14e4eb96&\"\nimport script from \"./Conditions.vue?vue&type=script&lang=js&\"\nexport * from \"./Conditions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ResourceTable',{attrs:{\"schema\":null,\"rows\":_vm.rows,\"headers\":_vm.headers,\"search\":false,\"table-actions\":false,\"namespaced\":true,\"mangle-action-resources\":_vm.getRealResources,\"paging-label\":\"sortableTable.paging.generic\",\"groupable\":false},scopedSlots:_vm._u([{key:\"cell:state\",fn:function({row}){return [(row.real)?_c('BadgeState',{attrs:{\"value\":row.real}}):_c('BadgeState',{attrs:{\"value\":row}})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./RelatedResources.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!./RelatedResources.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RelatedResources.vue?vue&type=template&id=8ef6c89e&\"\nimport script from \"./RelatedResources.vue?vue&type=script&lang=js&\"\nexport * from \"./RelatedResources.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2d8d7681&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 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, \".gradient-box.plain[data-v-42940dc4]{border:1px solid var(--border)}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".graph-options[data-v-b7bcaa58],.graph-options .range-refresh[data-v-b7bcaa58]{display:flex;flex-direction:row;justify-content:flex-end}.graph-options[data-v-b7bcaa58]{justify-content:space-between;align-items:center}.graph-options .labeled-select[data-v-b7bcaa58]{width:100px;margin-left:10px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardMetrics.vue?vue&type=style&index=0&id=1e72d538&prod&lang=scss&scoped=true&\"","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--14-0!../../../../thread-loader/dist/cjs.js!../../../../babel-loader/lib/index.js!../../../../cache-loader/dist/cjs.js??ref--2-0!../../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f1718c5e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f1718c5e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f1718c5e\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartReadme.vue?vue&type=style&index=0&id=39794b21&prod&lang=scss&scoped=true&\"","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","// 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, \".cru-resource-footer{display:flex;justify-content:flex-end;margin-top:20px}.cru-resource-footer .btn{margin-left:20px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../vue-style-loader/index.js??ref--10-oneOf-1-0!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../postcss-loader/src/index.js??ref--10-oneOf-1-3!../../../sass-loader/dist/cjs.js??ref--10-oneOf-1-4!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceCancelModal.vue?vue&type=style&index=0&id=7090e1b4&prod&lang=scss&scoped=true&\"","import { _EDIT, _YAML } from '@shell/config/query-params';\nimport Vue from 'vue';\n\nimport impl from './impl';\n\nexport default Vue.extend({\n ...impl,\n\n props: {\n mode: {\n type: String,\n default: _EDIT,\n },\n\n realMode: {\n type: String,\n default: _EDIT,\n },\n\n as: {\n type: String,\n default: _YAML,\n },\n\n // The model to be manipulated by the form\n value: {\n type: Object,\n required: true,\n },\n\n // A clone of the model before it's been changed, for conflict resolution\n initialValue: {\n type: Object,\n default: null,\n },\n\n // The 'live' equivalent of this model in the store\n liveValue: {\n type: Object,\n default: null,\n },\n\n doneEvent: {\n type: Boolean,\n default: false,\n },\n },\n});\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceCancelModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceCancelModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResourceCancelModal.vue?vue&type=template&id=7090e1b4&scoped=true&\"\nimport script from \"./ResourceCancelModal.vue?vue&type=script&lang=js&\"\nexport * from \"./ResourceCancelModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ResourceCancelModal.vue?vue&type=style&index=0&id=7090e1b4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7090e1b4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"chart-readmes\"},[(_vm.appReadme)?_c('Markdown',{staticClass:\"md md-desc mb-20\",on:{\"loaded\":function($event){_vm.appReadmeLoaded = true}},model:{value:(_vm.appReadme),callback:function ($$v) {_vm.appReadme=$$v},expression:\"appReadme\"}}):_vm._e(),(_vm.appReadme && _vm.readme && _vm.appReadmeLoaded && _vm.readmeLoaded)?_c('h1',{staticClass:\"pt-10\"},[_vm._v(\" \"+_vm._s(_vm.t('catalog.install.appReadmeTitle'))+\" \")]):_vm._e(),(_vm.readme)?_c('Markdown',{staticClass:\"md md-desc\",on:{\"loaded\":function($event){_vm.readmeLoaded = true}},model:{value:(_vm.readme),callback:function ($$v) {_vm.readme=$$v},expression:\"readme\"}}):_vm._e()],1),_c('div')])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.loaded)?_c('div',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.sanitized),expression:\"sanitized\"}],staticClass:\"markdown\"}):_c('Loading')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Markdown.vue?vue&type=template&id=a7546c6a&\"\nimport script from \"./Markdown.vue?vue&type=script&lang=js&\"\nexport * from \"./Markdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Markdown.vue?vue&type=style&index=0&id=a7546c6a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartReadme.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartReadme.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartReadme.vue?vue&type=template&id=39794b21&scoped=true&\"\nimport script from \"./ChartReadme.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartReadme.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ChartReadme.vue?vue&type=style&index=0&id=39794b21&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39794b21\",\n null\n \n)\n\nexport default component.exports","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!./Wizard.vue?vue&type=style&index=0&id=38b74aec&prod&lang=scss&scoped=true&\"","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".confirm-modal .btn[data-v-7090e1b4]{margin:0 10px}.confirm-modal .v--modal-box[data-v-7090e1b4]{background-color:var(--default);box-shadow:none;min-height:200px}.confirm-modal .v--modal-box .body[data-v-7090e1b4]{min-height:75px;padding:10px 0 0 15px}.confirm-modal .v--modal-box .body p[data-v-7090e1b4]{margin-top:10px}.confirm-modal .v--modal-box .header[data-v-7090e1b4]{background-color:var(--error);padding:15px 0 0 15px;height:50px}.confirm-modal .v--modal-box .header h4[data-v-7090e1b4]{color:#fff}.confirm-modal .v--modal-box .footer[data-v-7090e1b4]{border-top:1px solid var(--border);text-align:center;padding:10px 0 0 15px;height:60px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\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!./Wizard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Wizard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Wizard.vue?vue&type=template&id=38b74aec&scoped=true&\"\nimport script from \"./Wizard.vue?vue&type=script&lang=js&\"\nexport * from \"./Wizard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Wizard.vue?vue&type=style&index=0&id=38b74aec&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 \"38b74aec\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"cru\"},[_vm._t(\"noticeBanner\"),(_vm.description)?_c('p',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.description)+\" \")]):_vm._e(),_c((_vm.isView? 'div' : 'form'),{tag:\"form\",staticClass:\"create-resource-container cru__form\",attrs:{\"data-testid\":\"cru-form\"},on:{\"submit\":function($event){$event.preventDefault();},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.onPressEnter($event)}}},[(_vm.hasErrors)?_c('div',{staticClass:\"cru__errors\",attrs:{\"id\":\"cru-errors\"}},_vm._l((_vm.errors),function(err,i){return _c('Banner',{key:i,attrs:{\"color\":\"error\",\"label\":_vm.stringify(_vm.mappedErrors[err].message),\"icon\":_vm.mappedErrors[err].icon,\"closable\":true},on:{\"close\":function($event){return _vm.closeError(i)}}})}),1):_vm._e(),(_vm.showSubtypeSelection)?_c('div',{staticClass:\"subtypes-container cru__content\"},[_vm._t(\"subtypes\",function(){return _vm._l((_vm.subtypes),function(subtype){return _c('div',{key:subtype.id,staticClass:\"subtype-banner\",class:{ selected: subtype.id === _vm._selectedSubtype },on:{\"click\":function($event){return _vm.selectType(subtype.id, $event)}}},[_vm._t(\"subtype-content\",function(){return [_c('div',{staticClass:\"subtype-container\"},[_c('div',{staticClass:\"subtype-logo\"},[(subtype.bannerImage)?_c('img',{attrs:{\"src\":subtype.bannerImage,\"alt\":(_vm.resource.type ? _vm.resource.type + ': ' : '') + (subtype.label || '')}}):_c('div',{staticClass:\"round-image\"},[(subtype.bannerAbbrv)?_c('div',{staticClass:\"banner-abbrv\"},[(_vm.$store.getters['i18n/exists'](subtype.bannerAbbrv))?_c('span',[_vm._v(_vm._s(_vm.t(subtype.bannerAbbrv)))]):_c('span',{style:({fontSize: _vm.abbrSizes[subtype.bannerAbbrv.length]})},[_vm._v(_vm._s(subtype.bannerAbbrv))])]):_c('div',[_vm._v(\" \"+_vm._s(subtype.id.slice(0, 1).toUpperCase())+\" \")])])]),_c('div',{staticClass:\"subtype-body\"},[_c('div',{staticClass:\"title\",class:{'with-description': !!subtype.description}},[_c('h5',[(_vm.$store.getters['i18n/exists'](subtype.label))?_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.t(subtype.label)),expression:\"t(subtype.label)\"}]}):_c('span',[_vm._v(_vm._s(subtype.label))])]),(subtype.docLink)?_c('a',{staticClass:\"flex-right\",attrs:{\"href\":subtype.docLink,\"target\":\"_blank\",\"rel\":\"noopener nofollow\"}},[_vm._v(_vm._s(_vm.t('generic.moreInfo'))+\" \"),_c('i',{staticClass:\"icon icon-external-link\"})]):_vm._e()]),(subtype.description)?_c('hr'):_vm._e(),(subtype.description)?_c('div',{staticClass:\"description\"},[(_vm.$store.getters['i18n/exists'](subtype.description))?_c('span',{directives:[{name:\"clean-html\",rawName:\"v-clean-html\",value:(_vm.t(subtype.description, {}, true)),expression:\"t(subtype.description, {}, true)\"}]}):_c('span',[_vm._v(_vm._s(subtype.description))])]):_vm._e()])])]})],2)})},{\"subtypes\":_vm.subtypes})],2):_vm._e(),(_vm.showAsForm && _vm.steps.length)?[(_vm._selectedSubtype || !_vm.subtypes.length)?_c('div',{staticClass:\"resource-container cru__content cru__content-wizard\"},[(_vm.resource)?_c('Wizard',{ref:\"Wizard\",staticClass:\"wizard\",attrs:{\"header-mode\":_vm.mode,\"steps\":_vm.steps,\"errors\":_vm.errors,\"finish-mode\":_vm.finishMode},on:{\"error\":e=>_vm.errors = e},scopedSlots:_vm._u([{key:\"stepContainer\",fn:function({activeStep}){return [_vm._l((_vm.steps),function(step){return [(step.name === activeStep.name || step.hidden)?_c('div',{key:step.name,staticClass:\"step-container__step\",class:{'hide': step.name !== activeStep.name && step.hidden}},[_vm._t(step.name,null,{\"step\":step})],2):_vm._e()]})]}},{key:\"controlsContainer\",fn:function({showPrevious, next, back, activeStep, canNext, activeStepIndex, visibleSteps}){return [[_c('CruResourceFooter',{staticClass:\"cru__footer\",attrs:{\"mode\":_vm.mode,\"is-form\":_vm.showAsForm,\"show-cancel\":_vm.showCancel},on:{\"cancel-confirmed\":_vm.confirmCancel},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},[_c('div',{staticClass:\"controls-steps\"},[(_vm.showYaml)?_c('button',{staticClass:\"btn role-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.showPreviewYaml}},[_c('t',{attrs:{\"k\":\"cruResource.previewYaml\"}})],1):_vm._e(),(showPrevious)?[_c('button',{staticClass:\"btn role-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return back()}}},[_c('t',{attrs:{\"k\":\"wizard.previous\"}})],1)]:_vm._e(),(activeStepIndex === visibleSteps.length-1)?[(!_vm.showSubtypeSelection && !_vm.isView)?_c('AsyncButton',{ref:\"save\",attrs:{\"disabled\":!activeStep.ready,\"mode\":_vm.finishButtonMode || _vm.mode},on:{\"click\":function($event){return _vm.$emit('finish', $event)}}}):_vm._e()]:[_c('button',{staticClass:\"btn role-primary\",attrs:{\"disabled\":!canNext,\"type\":\"button\"},on:{\"click\":function($event){return next()}}},[_c('t',{attrs:{\"k\":\"wizard.next\"}})],1)]],2)])]]}}],null,true)}):_vm._e()],1):_vm._e()]:(_vm.showAsForm)?[(_vm._selectedSubtype || !_vm.subtypes.length)?_c('div',{staticClass:\"resource-container cru__content\",style:([_vm.minHeight ? { 'min-height': _vm.minHeight } : {}])},[_vm._t(\"default\")],2):_vm._e(),_vm._t(\"form-footer\",function(){return [_c('CruResourceFooter',{staticClass:\"cru__footer\",attrs:{\"mode\":_vm.mode,\"is-form\":_vm.showAsForm,\"show-cancel\":_vm.showCancel,\"component-testid\":_vm.componentTestid},on:{\"cancel-confirmed\":_vm.confirmCancel},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}}),{key:\"default\",fn:function(){return [(!_vm.isView)?_c('div',[(_vm.showYaml)?_c('button',{staticClass:\"btn role-secondary\",attrs:{\"data-testid\":_vm.componentTestid + '-yaml',\"type\":\"button\"},on:{\"click\":_vm.showPreviewYaml}},[_c('t',{attrs:{\"k\":\"cruResource.previewYaml\"}})],1):_vm._e(),(!_vm.showSubtypeSelection)?_c('AsyncButton',{ref:\"save\",attrs:{\"disabled\":!_vm.canSave,\"mode\":_vm.finishButtonMode || _vm.mode,\"data-testid\":_vm.componentTestid + '-save'},on:{\"click\":function($event){return _vm.clickSave($event)}}}):_vm._e()],1):_vm._e()]},proxy:true}],null,true)})]})]:(_vm.showYaml)?_c('section',{staticClass:\"cru-resource-yaml-container resource-container cru__content\"},[_c('ResourceYaml',{ref:\"resourceyaml\",staticClass:\"resource-container cru__content\",attrs:{\"value\":_vm.resource,\"mode\":_vm.mode,\"initial-yaml-for-diff\":_vm.initialYaml,\"yaml\":_vm.resourceYaml,\"offer-preview\":_vm.isEdit,\"done-route\":_vm.doneRoute,\"done-override\":_vm.resource.doneOverride,\"errors\":_vm.errors,\"apply-hooks\":_vm.applyHooks},on:{\"error\":e=>_vm.$emit('error', e)},scopedSlots:_vm._u([{key:\"yamlFooter\",fn:function({yamlSave, showPreview, yamlPreview, yamlUnpreview}){return [_vm._t(\"cru-yaml-footer\",function(){return [_c('CruResourceFooter',{staticClass:\"cru__footer\",attrs:{\"done-route\":_vm.doneRoute,\"mode\":_vm.mode,\"is-form\":_vm.showAsForm},on:{\"cancel-confirmed\":_vm.confirmCancel},scopedSlots:_vm._u([{key:\"default\",fn:function({checkCancel}){return [_c('div',{staticClass:\"controls-middle\"},[(showPreview)?_c('button',{staticClass:\"btn role-secondary\",attrs:{\"type\":\"button\",\"data-testid\":_vm.componentTestid + '-yaml-yaml'},on:{\"click\":yamlUnpreview}},[_c('t',{attrs:{\"k\":\"resourceYaml.buttons.continue\"}})],1):_vm._e(),(!showPreview && _vm.isEdit)?_c('button',{staticClass:\"btn role-secondary\",attrs:{\"data-testid\":_vm.componentTestid + '-yaml-yaml-preview',\"disabled\":!_vm.canDiff,\"type\":\"button\"},on:{\"click\":yamlPreview}},[_c('t',{attrs:{\"k\":\"resourceYaml.buttons.diff\"}})],1):_vm._e()]),(_vm._selectedSubtype || !_vm.subtypes.length)?_c('div',{staticClass:\"controls-right\"},[_c('button',{staticClass:\"btn role-secondary\",attrs:{\"data-testid\":_vm.componentTestid + '-yaml-cancel',\"type\":\"button\"},on:{\"click\":function($event){return checkCancel(false)}}},[_c('t',{attrs:{\"k\":\"cruResource.backToForm\"}})],1),(!_vm.showSubtypeSelection)?_c('AsyncButton',{attrs:{\"data-testid\":_vm.componentTestid + '-yaml-save',\"disabled\":!_vm.canSave,\"action-label\":_vm.isEdit ? _vm.t('generic.save') : _vm.t('generic.create')},on:{\"click\":cb=>yamlSave(cb)}}):_vm._e()],1):_vm._e()]}}],null,true)})]})]}}],null,true)})],1):_vm._e()],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"cru-resource-footer\"},[_vm._t(\"footer-prefix\"),_vm._t(\"cancel\",function(){return [(!_vm.isView && _vm.showCancel)?_c('button',{staticClass:\"btn role-secondary\",attrs:{\"id\":\"cru-cancel\",\"data-testid\":_vm.componentTestid + '-cancel',\"type\":\"button\"},on:{\"click\":function($event){_vm.confirmCancelRequired ? _vm.checkCancel(true) : _vm.$emit('cancel-confirmed', true)}}},[_c('t',{attrs:{\"k\":\"generic.cancel\"}})],1):_vm._e()]}),_vm._t(\"default\",function(){return [(!_vm.isView)?_c('AsyncButton',{attrs:{\"data-testid\":_vm.componentTestid + '-create',\"mode\":_vm.finishButtonMode || _vm.mode},on:{\"click\":function($event){return _vm.$emit('finish', $event)}}}):_vm._e()]},{\"checkCancel\":_vm.checkCancel}),_c('ResourceCancelModal',{ref:\"cancelModal\",attrs:{\"is-cancel-modal\":_vm.isCancelModal,\"is-form\":_vm.isForm},on:{\"confirm-cancel\":function($event){return _vm.confirmCancel($event)}}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CruResourceFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CruResourceFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CruResourceFooter.vue?vue&type=template&id=3e3d0b47&\"\nimport script from \"./CruResourceFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./CruResourceFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CruResourceFooter.vue?vue&type=style&index=0&id=3e3d0b47&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n $emit('error', e)\"\n >\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CruResource.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--2-0!../../../@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CruResource.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CruResource.vue?vue&type=template&id=c68bca42&scoped=true&\"\nimport script from \"./CruResource.vue?vue&type=script&lang=js&\"\nexport * from \"./CruResource.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CruResource.vue?vue&type=style&index=0&id=c68bca42&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 \"c68bca42\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js new file mode 100644 index 00000000..113b46ba --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js @@ -0,0 +1,2 @@ +(("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]=("undefined"!==typeof self?self:this)["webpackJsonpkubewarden_1_1_0"]||[]).push([[8],{3104:function(e,t,u){(function(e,u){u(t)})(0,(function(e){"use strict";function t(e,t){for(var u=0;ue.length)&&(t=e.length);for(var u=0,n=new Array(t);u=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}function l(t){e.defaults=t}e.defaults=s();var a=/[&<>"']/,D=/[&<>"']/g,o=/[<>"']|&(?!#?\w+;)/,c=/[<>"']|&(?!#?\w+;)/g,h={"&":"&","<":"<",">":">",'"':""","'":"'"},p=function(e){return h[e]};function f(e,t){if(t){if(a.test(e))return e.replace(D,p)}else if(o.test(e))return e.replace(c,p);return e}var g=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function F(e){return e.replace(g,(function(e,t){return t=t.toLowerCase(),"colon"===t?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var A=/(^|[^\[])\^/g;function d(e,t){e="string"===typeof e?e:e.source,t=t||"";var u={replace:function(t,n){return n=n.source||n,n=n.replace(A,"$1"),e=e.replace(t,n),u},getRegex:function(){return new RegExp(e,t)}};return u}var k=/[^\w:]/g,C=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function E(e,t,u){if(e){var n;try{n=decodeURIComponent(F(u)).replace(k,"").toLowerCase()}catch(r){return null}if(0===n.indexOf("javascript:")||0===n.indexOf("vbscript:")||0===n.indexOf("data:"))return null}t&&!C.test(u)&&(u=w(t,u));try{u=encodeURI(u).replace(/%25/g,"%")}catch(r){return null}return u}var x={},m=/^[^:]+:\/*[^/]*$/,b=/^([^:]+:)[\s\S]*$/,B=/^([^:]+:\/*[^/]*)[\s\S]*$/;function w(e,t){x[" "+e]||(m.test(e)?x[" "+e]=e+"/":x[" "+e]=z(e,"/",!0)),e=x[" "+e];var u=-1===e.indexOf(":");return"//"===t.substring(0,2)?u?t:e.replace(b,"$1")+t:"/"===t.charAt(0)?u?t:e.replace(B,"$1")+t:e+t}var v={exec:function(){}};function y(e){for(var t,u,n=1;n=0&&"\\"===u[r])n=!n;return n?"|":" |"})),n=u.split(/ \|/),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),n.length>t)n.splice(t);else while(n.length1)1&t&&(u+=e),t>>=1,e+=e;return u+e}function T(e,t,u,n){var r=t.href,i=t.title?f(t.title):null,s=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){n.state.inLink=!0;var l={type:"link",raw:u,href:r,title:i,text:s,tokens:n.inlineTokens(s,[])};return n.state.inLink=!1,l}return{type:"image",raw:u,href:r,title:i,text:f(s)}}function I(e,t){var u=e.match(/^(\s+)(?:```)/);if(null===u)return t;var n=u[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);if(null===t)return e;var u=t[0];return u.length>=n.length?e.slice(n.length):e})).join("\n")}var Z=function(){function t(t){this.options=t||e.defaults}var u=t.prototype;return u.space=function(e){var t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}},u.code=function(e){var t=this.rules.block.code.exec(e);if(t){var u=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?u:z(u,"\n")}}},u.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var u=t[0],n=I(u,t[3]||"");return{type:"code",raw:u,lang:t[2]?t[2].trim():t[2],text:n}}},u.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var u=t[2].trim();if(/#$/.test(u)){var n=z(u,"#");this.options.pedantic?u=n.trim():n&&!/ $/.test(n)||(u=n.trim())}var r={type:"heading",raw:t[0],depth:t[1].length,text:u,tokens:[]};return this.lexer.inline(r.text,r.tokens),r}},u.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}},u.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var u=t[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(u,[]),text:u}}},u.list=function(e){var t=this.rules.block.list.exec(e);if(t){var u,n,r,s,l,a,D,o,c,h,p,f,g=t[1].trim(),F=g.length>1,A={type:"list",raw:"",ordered:F,start:F?+g.slice(0,-1):"",loose:!1,items:[]};g=F?"\\d{1,9}\\"+g.slice(-1):"\\"+g,this.options.pedantic&&(g=F?g:"[*+-]");var d=new RegExp("^( {0,3}"+g+")((?:[\t ][^\\n]*)?(?:\\n|$))");while(e){if(f=!1,!(t=d.exec(e)))break;if(this.rules.block.hr.test(e))break;if(u=t[0],e=e.substring(u.length),o=t[2].split("\n",1)[0],c=e.split("\n",1)[0],this.options.pedantic?(s=2,p=o.trimLeft()):(s=t[2].search(/[^ ]/),s=s>4?1:s,p=o.slice(s),s+=t[1].length),a=!1,!o&&/^ *$/.test(c)&&(u+=c+"\n",e=e.substring(c.length+1),f=!0),!f){var k=new RegExp("^ {0,"+Math.min(3,s-1)+"}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))"),C=new RegExp("^ {0,"+Math.min(3,s-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),E=new RegExp("^( {0,"+Math.min(3,s-1)+"})(```|~~~)");while(e){if(h=e.split("\n",1)[0],o=h,this.options.pedantic&&(o=o.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),E.test(o))break;if(this.rules.block.heading.test(o))break;if(k.test(o))break;if(C.test(e))break;if(o.search(/[^ ]/)>=s||!o.trim())p+="\n"+o.slice(s);else{if(a)break;p+="\n"+o}a||o.trim()||(a=!0),u+=h+"\n",e=e.substring(h.length+1)}}A.loose||(D?A.loose=!0:/\n *\n *$/.test(u)&&(D=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(p),n&&(r="[ ] "!==n[0],p=p.replace(/^\[[ xX]\] +/,""))),A.items.push({type:"list_item",raw:u,task:!!n,checked:r,loose:!1,text:p}),A.raw+=u}A.items[A.items.length-1].raw=u.trimRight(),A.items[A.items.length-1].text=p.trimRight(),A.raw=A.raw.trimRight();var x=A.items.length;for(l=0;l1)return!0}return!1}));!A.loose&&m.length&&b&&(A.loose=!0,A.items[l].loose=!0)}return A}},u.html=function(e){var t=this.rules.block.html.exec(e);if(t){var u={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(u.type="paragraph",u.text=this.options.sanitizer?this.options.sanitizer(t[0]):f(t[0]),u.tokens=[],this.lexer.inline(u.text,u.tokens)),u}},u.def=function(e){var t=this.rules.block.def.exec(e);if(t){t[3]&&(t[3]=t[3].substring(1,t[3].length-1));var u=t[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:u,raw:t[0],href:t[2],title:t[3]}}},u.table=function(e){var t=this.rules.block.table.exec(e);if(t){var u={type:"table",header:_(t[1]).map((function(e){return{text:e}})),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(u.header.length===u.align.length){u.raw=t[0];var n,r,i,s,l=u.align.length;for(n=0;n/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):f(t[0]):t[0]}},u.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var u=t[2].trim();if(!this.options.pedantic&&/^$/.test(u))return;var n=z(u.slice(0,-1),"\\");if((u.length-n.length)%2===0)return}else{var r=$(t[2],"()");if(r>-1){var i=0===t[0].indexOf("!")?5:4,s=i+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,s).trim(),t[3]=""}}var l=t[2],a="";if(this.options.pedantic){var D=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(l);D&&(l=D[1],a=D[3])}else a=t[3]?t[3].slice(1,-1):"";return l=l.trim(),/^$/.test(u)?l.slice(1):l.slice(1,-1)),T(t,{href:l?l.replace(this.rules.inline._escapes,"$1"):l,title:a?a.replace(this.rules.inline._escapes,"$1"):a},t[0],this.lexer)}},u.reflink=function(e,t){var u;if((u=this.rules.inline.reflink.exec(e))||(u=this.rules.inline.nolink.exec(e))){var n=(u[2]||u[1]).replace(/\s+/g," ");if(n=t[n.toLowerCase()],!n||!n.href){var r=u[0].charAt(0);return{type:"text",raw:r,text:r}}return T(u,n,u[0],this.lexer)}},u.emStrong=function(e,t,u){void 0===u&&(u="");var n=this.rules.inline.emStrong.lDelim.exec(e);if(n&&(!n[3]||!u.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var r=n[1]||n[2]||"";if(!r||r&&(""===u||this.rules.inline.punctuation.exec(u))){var i,s,l=n[0].length-1,a=l,D=0,o="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;o.lastIndex=0,t=t.slice(-1*e.length+l);while(null!=(n=o.exec(t)))if(i=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],i)if(s=i.length,n[3]||n[4])a+=s;else if(!((n[5]||n[6])&&l%3)||(l+s)%3){if(a-=s,!(a>0)){if(s=Math.min(s,s+a+D),Math.min(l,s)%2){var c=e.slice(1,l+n.index+s);return{type:"em",raw:e.slice(0,l+n.index+s+1),text:c,tokens:this.lexer.inlineTokens(c,[])}}var h=e.slice(2,l+n.index+s-1);return{type:"strong",raw:e.slice(0,l+n.index+s+1),text:h,tokens:this.lexer.inlineTokens(h,[])}}}else D+=s}}},u.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var u=t[2].replace(/\n/g," "),n=/[^ ]/.test(u),r=/^ /.test(u)&&/ $/.test(u);return n&&r&&(u=u.substring(1,u.length-1)),u=f(u,!0),{type:"codespan",raw:t[0],text:u}}},u.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},u.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}},u.autolink=function(e,t){var u,n,r=this.rules.inline.autolink.exec(e);if(r)return"@"===r[2]?(u=f(this.options.mangle?t(r[1]):r[1]),n="mailto:"+u):(u=f(r[1]),n=u),{type:"link",raw:r[0],text:u,href:n,tokens:[{type:"text",raw:u,text:u}]}},u.url=function(e,t){var u;if(u=this.rules.inline.url.exec(e)){var n,r;if("@"===u[2])n=f(this.options.mangle?t(u[0]):u[0]),r="mailto:"+n;else{var i;do{i=u[0],u[0]=this.rules.inline._backpedal.exec(u[0])[0]}while(i!==u[0]);n=f(u[0]),r="www."===u[1]?"http://"+n:n}return{type:"link",raw:u[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},u.inlineText=function(e,t){var u,n=this.rules.inline.text.exec(e);if(n)return u=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):f(n[0]):n[0]:f(this.options.smartypants?t(n[0]):n[0]),{type:"text",raw:n[0],text:u}},t}(),O={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:v,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};O.def=d(O.def).replace("label",O._label).replace("title",O._title).getRegex(),O.bullet=/(?:[*+-]|\d{1,9}[.)])/,O.listItemStart=d(/^( *)(bull) */).replace("bull",O.bullet).getRegex(),O.list=d(O.list).replace(/bull/g,O.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+O.def.source+")").getRegex(),O._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",O._comment=/|$)/,O.html=d(O.html,"i").replace("comment",O._comment).replace("tag",O._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),O.paragraph=d(O._paragraph).replace("hr",O.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O._tag).getRegex(),O.blockquote=d(O.blockquote).replace("paragraph",O.paragraph).getRegex(),O.normal=y({},O),O.gfm=y({},O.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),O.gfm.table=d(O.gfm.table).replace("hr",O.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O._tag).getRegex(),O.gfm.paragraph=d(O._paragraph).replace("hr",O.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",O.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O._tag).getRegex(),O.pedantic=y({},O.normal,{html:d("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",O._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:v,paragraph:d(O.normal._paragraph).replace("hr",O.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",O.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var q={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:v,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:v,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(u="x"+u.toString(16)),n+="&#"+u+";";return n}q._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",q.punctuation=d(q.punctuation).replace(/punctuation/g,q._punctuation).getRegex(),q.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,q.escapedEmSt=/\\\*|\\_/g,q._comment=d(O._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),q.emStrong.lDelim=d(q.emStrong.lDelim).replace(/punct/g,q._punctuation).getRegex(),q.emStrong.rDelimAst=d(q.emStrong.rDelimAst,"g").replace(/punct/g,q._punctuation).getRegex(),q.emStrong.rDelimUnd=d(q.emStrong.rDelimUnd,"g").replace(/punct/g,q._punctuation).getRegex(),q._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,q._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,q._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,q.autolink=d(q.autolink).replace("scheme",q._scheme).replace("email",q._email).getRegex(),q._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,q.tag=d(q.tag).replace("comment",q._comment).replace("attribute",q._attribute).getRegex(),q._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,q._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,q._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,q.link=d(q.link).replace("label",q._label).replace("href",q._href).replace("title",q._title).getRegex(),q.reflink=d(q.reflink).replace("label",q._label).replace("ref",O._label).getRegex(),q.nolink=d(q.nolink).replace("ref",O._label).getRegex(),q.reflinkSearch=d(q.reflinkSearch,"g").replace("reflink",q.reflink).replace("nolink",q.nolink).getRegex(),q.normal=y({},q),q.pedantic=y({},q.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:d(/^!?\[(label)\]\((.*?)\)/).replace("label",q._label).getRegex(),reflink:d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",q._label).getRegex()}),q.gfm=y({},q.normal,{escape:d(q.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\0?t[t.length-1].raw+="\n":t.push(u);else if(u=this.tokenizer.code(e))e=e.substring(u.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?t.push(u):(n.raw+="\n"+u.raw,n.text+="\n"+u.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(u=this.tokenizer.fences(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.heading(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.hr(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.blockquote(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.list(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.html(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.def(e))e=e.substring(u.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[u.tag]||(this.tokens.links[u.tag]={href:u.href,title:u.title}):(n.raw+="\n"+u.raw,n.text+="\n"+u.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(u=this.tokenizer.table(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.lheading(e))e=e.substring(u.raw.length),t.push(u);else if(r=e,this.options.extensions&&this.options.extensions.startBlock&&function(){var t=1/0,u=e.slice(1),n=void 0;s.options.extensions.startBlock.forEach((function(e){n=e.call({lexer:this},u),"number"===typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}(),this.state.top&&(u=this.tokenizer.paragraph(r)))n=t[t.length-1],i&&"paragraph"===n.type?(n.raw+="\n"+u.raw,n.text+="\n"+u.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(u),i=r.length!==e.length,e=e.substring(u.raw.length);else if(u=this.tokenizer.text(e))e=e.substring(u.raw.length),n=t[t.length-1],n&&"text"===n.type?(n.raw+="\n"+u.raw,n.text+="\n"+u.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(u);else if(e){var l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}throw new Error(l)}return this.state.top=!0,t},n.inline=function(e,t){this.inlineQueue.push({src:e,tokens:t})},n.inlineTokens=function(e,t){var u,n,r,i=this;void 0===t&&(t=[]);var s,l,a,D=e;if(this.tokens.links){var o=Object.keys(this.tokens.links);if(o.length>0)while(null!=(s=this.tokenizer.rules.inline.reflinkSearch.exec(D)))o.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(D=D.slice(0,s.index)+"["+R("a",s[0].length-2)+"]"+D.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}while(null!=(s=this.tokenizer.rules.inline.blockSkip.exec(D)))D=D.slice(0,s.index)+"["+R("a",s[0].length-2)+"]"+D.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);while(null!=(s=this.tokenizer.rules.inline.escapedEmSt.exec(D)))D=D.slice(0,s.index)+"++"+D.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);while(e)if(l||(a=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(n){return!!(u=n.call({lexer:i},e,t))&&(e=e.substring(u.raw.length),t.push(u),!0)}))))if(u=this.tokenizer.escape(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.tag(e))e=e.substring(u.raw.length),n=t[t.length-1],n&&"text"===u.type&&"text"===n.type?(n.raw+=u.raw,n.text+=u.text):t.push(u);else if(u=this.tokenizer.link(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(u.raw.length),n=t[t.length-1],n&&"text"===u.type&&"text"===n.type?(n.raw+=u.raw,n.text+=u.text):t.push(u);else if(u=this.tokenizer.emStrong(e,D,a))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.codespan(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.br(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.del(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.autolink(e,j))e=e.substring(u.raw.length),t.push(u);else if(this.state.inLink||!(u=this.tokenizer.url(e,j))){if(r=e,this.options.extensions&&this.options.extensions.startInline&&function(){var t=1/0,u=e.slice(1),n=void 0;i.options.extensions.startInline.forEach((function(e){n=e.call({lexer:this},u),"number"===typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}(),u=this.tokenizer.inlineText(r,L))e=e.substring(u.raw.length),"_"!==u.raw.slice(-1)&&(a=u.raw.slice(-1)),l=!0,n=t[t.length-1],n&&"text"===n.type?(n.raw+=u.raw,n.text+=u.text):t.push(u);else if(e){var c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}throw new Error(c)}}else e=e.substring(u.raw.length),t.push(u);return t},u(t,null,[{key:"rules",get:function(){return{block:O,inline:q}}}]),t}(),Q=function(){function t(t){this.options=t||e.defaults}var u=t.prototype;return u.code=function(e,t,u){var n=(t||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(e,n);null!=r&&r!==e&&(u=!0,e=r)}return e=e.replace(/\n$/,"")+"\n",n?'
    '+(u?e:f(e,!0))+"
    \n":"
    "+(u?e:f(e,!0))+"
    \n"},u.blockquote=function(e){return"
    \n"+e+"
    \n"},u.html=function(e){return e},u.heading=function(e,t,u,n){if(this.options.headerIds){var r=this.options.headerPrefix+n.slug(u);return"'+e+"\n"}return""+e+"\n"},u.hr=function(){return this.options.xhtml?"
    \n":"
    \n"},u.list=function(e,t,u){var n=t?"ol":"ul",r=t&&1!==u?' start="'+u+'"':"";return"<"+n+r+">\n"+e+"\n"},u.listitem=function(e){return"
  • "+e+"
  • \n"},u.checkbox=function(e){return" "},u.paragraph=function(e){return"

    "+e+"

    \n"},u.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},u.tablerow=function(e){return"\n"+e+"\n"},u.tablecell=function(e,t){var u=t.header?"th":"td",n=t.align?"<"+u+' align="'+t.align+'">':"<"+u+">";return n+e+"\n"},u.strong=function(e){return""+e+""},u.em=function(e){return""+e+""},u.codespan=function(e){return""+e+""},u.br=function(){return this.options.xhtml?"
    ":"
    "},u.del=function(e){return""+e+""},u.link=function(e,t,u){if(e=E(this.options.sanitize,this.options.baseUrl,e),null===e)return u;var n='",n},u.image=function(e,t,u){if(e=E(this.options.sanitize,this.options.baseUrl,e),null===e)return u;var n=''+u+'":">",n},u.text=function(e){return e},t}(),U=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,u){return""+u},t.image=function(e,t,u){return""+u},t.br=function(){return""},e}(),M=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 u=e,n=0;if(this.seen.hasOwnProperty(u)){n=this.seen[e];do{n++,u=e+"-"+n}while(this.seen.hasOwnProperty(u))}return t||(this.seen[e]=n,this.seen[u]=0),u},t.slug=function(e,t){void 0===t&&(t={});var u=this.serialize(e);return this.getNextSafeSlug(u,t.dryrun)},e}(),N=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new Q,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new U,this.slugger=new M}t.parse=function(e,u){var n=new t(u);return n.parse(e)},t.parseInline=function(e,u){var n=new t(u);return n.parseInline(e)};var u=t.prototype;return u.parse=function(e,t){void 0===t&&(t=!0);var u,n,r,i,s,l,a,D,o,c,h,p,f,g,A,d,k,C,E,x="",m=e.length;for(u=0;u0&&"paragraph"===A.tokens[0].type?(A.tokens[0].text=C+" "+A.tokens[0].text,A.tokens[0].tokens&&A.tokens[0].tokens.length>0&&"text"===A.tokens[0].tokens[0].type&&(A.tokens[0].tokens[0].text=C+" "+A.tokens[0].tokens[0].text)):A.tokens.unshift({type:"text",text:C}):g+=C),g+=this.parse(A.tokens,f),o+=this.renderer.listitem(g,k,d);x+=this.renderer.list(o,h,p);continue;case"html":x+=this.renderer.html(c.text);continue;case"paragraph":x+=this.renderer.paragraph(this.parseInline(c.tokens));continue;case"text":o=c.tokens?this.parseInline(c.tokens):c.text;while(u+1An error occurred:

    "+f(a.message+"",!0)+"
    ";throw a}}J.options=J.setOptions=function(e){return y(J.defaults,e),l(J.defaults),J},J.getDefaults=s,J.defaults=e.defaults,J.use=function(){for(var e=arguments.length,t=new Array(e),u=0;uAn error occurred:

    "+f(n.message+"",!0)+"
    ";throw n}},J.Parser=N,J.parser=N.parse,J.Renderer=Q,J.TextRenderer=U,J.Lexer=P,J.lexer=P.lex,J.Tokenizer=Z,J.Slugger=M,J.parse=J;var X=J.options,G=J.setOptions,V=J.use,H=J.walkTokens,K=J.parseInline,W=J,Y=N.parse,ee=P.lex;e.Lexer=P,e.Parser=N,e.Renderer=Q,e.Slugger=M,e.TextRenderer=U,e.Tokenizer=Z,e.getDefaults=s,e.lexer=ee,e.marked=J,e.options=X,e.parse=W,e.parseInline=K,e.parser=Y,e.setOptions=G,e.use=V,e.walkTokens=H,Object.defineProperty(e,"__esModule",{value:!0})}))}}]); +//# sourceMappingURL=kubewarden-1.1.0.umd.min.vendors~markdown.js.map \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js.map b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js.map new file mode 100644 index 00000000..25a466a7 --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/kubewarden-1.1.0.umd.min.vendors~markdown.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://kubewarden-1.1.0//home/runner/work/ui/ui/node_modules/marked/lib/marked.umd.js"],"names":["global","factory","exports","this","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_unsupportedIterableToArray","o","minLen","_arrayLikeToArray","n","toString","call","slice","constructor","name","Array","from","test","arr","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","next","bind","isArray","done","value","TypeError","getDefaults","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","silent","smartLists","smartypants","tokenizer","walkTokens","xhtml","changeDefaults","newDefaults","defaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","escape","html","encode","replace","unescapeTest","unescape","_","toLowerCase","charAt","String","fromCharCode","parseInt","substring","caret","edit","regex","opt","source","obj","val","getRegex","RegExp","nonWordAndColonTest","originIndependentUrl","cleanUrl","base","href","prot","decodeURIComponent","e","indexOf","resolveUrl","encodeURI","baseUrls","justDomain","protocol","domain","rtrim","relativeBase","noopTest","exec","merge","arguments","hasOwnProperty","splitCells","tableRow","count","row","match","offset","str","escaped","curr","cells","split","trim","shift","pop","splice","push","c","invert","l","suffLen","currChar","findClosingBracket","b","level","checkSanitizeDeprecation","console","warn","repeatString","pattern","result","outputLink","cap","link","raw","lexer","title","text","state","inLink","token","type","tokens","inlineTokens","indentCodeCompensation","matchIndentToCode","indentToCode","map","node","matchIndentInNode","indentInNode","join","Tokenizer","options","_proto","space","src","rules","block","newline","code","codeBlockStyle","fences","lang","heading","trimmed","depth","inline","hr","blockquote","blockTokens","list","istask","ischecked","indent","blankLine","endsWithBlankLine","line","nextLine","rawLine","itemContents","endEarly","bull","isordered","ordered","start","loose","items","itemRegex","trimLeft","search","nextBulletRegex","Math","min","hrRegex","fencesBeginRegex","task","checked","trimRight","top","spacers","filter","t","hasMultipleLineBreaks","every","_step","chars","lineBreaks","_iterator","_char","pre","def","tag","table","item","header","align","rows","j","k","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","_escapes","reflink","links","nolink","emStrong","maskedSrc","prevChar","lDelim","nextChar","punctuation","rDelim","rLength","lLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","lastIndex","_text","index","codespan","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","autolink","url","prevCapZero","_backpedal","inlineText","_paragraph","_label","_title","bullet","listItemStart","_tag","_comment","normal","reflinkSearch","out","charCodeAt","random","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","Lexer","create","inlineQueue","lex","lexInline","lastToken","cutSrc","lastParagraphClipped","_this","leading","tabs","repeat","some","extTokenizer","startBlock","startIndex","Infinity","tempSrc","tempStart","forEach","getStartIndex","errMsg","error","Error","_this2","keepPrevChar","keys","includes","lastIndexOf","startInline","get","Renderer","_code","infostring","quote","_html","slugger","id","slug","body","startatt","listitem","checkbox","tablerow","content","tablecell","flags","image","TextRenderer","Slugger","seen","serialize","getNextSafeSlug","originalSlug","isDryRun","occurenceAccumulator","dryrun","Parser","textRenderer","parse","parser","parseInline","l2","l3","cell","itemBody","ret","renderers","unshift","marked","callback","err","pending","setTimeout","_tokens","message","setOptions","use","_len","args","_key","hasExtensions","opts","apply","concat","childTokens","pack","ext","prevRenderer","_len2","_key2","_loop","prop","_len3","_key3","_loop2","prevTokenizer","_len4","_key4","_walkTokens","_loop3","_step2","_iterator2","_step3","_iterator3","_step4","_iterator4","_cell"],"mappings":"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","file":"kubewarden-1.1.0.umd.min.vendors~markdown.js","sourcesContent":["/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.marked = {}));\n})(this, (function (exports) { 'use strict';\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n }\n exports.defaults = getDefaults();\n function changeDefaults(newDefaults) {\n exports.defaults = newDefaults;\n }\n\n /**\n * Helpers\n */\n var escapeTest = /[&<>\"']/;\n var escapeReplace = /[&<>\"']/g;\n var escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\n var escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n var escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n var getEscapeReplacement = function getEscapeReplacement(ch) {\n return escapeReplacements[ch];\n };\n\n function escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n }\n var unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n /**\n * @param {string} html\n */\n\n function unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, function (_, n) {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\n }\n\n return '';\n });\n }\n var caret = /(^|[^\\[])\\^/g;\n /**\n * @param {string | RegExp} regex\n * @param {string} opt\n */\n\n function edit(regex, opt) {\n regex = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n var obj = {\n replace: function replace(name, val) {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: function getRegex() {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n }\n var nonWordAndColonTest = /[^\\w:]/g;\n var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n /**\n * @param {boolean} sanitize\n * @param {string} base\n * @param {string} href\n */\n\n function cleanUrl(sanitize, base, href) {\n if (sanitize) {\n var prot;\n\n try {\n prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();\n } catch (e) {\n return null;\n }\n\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n\n return href;\n }\n var baseUrls = {};\n var justDomain = /^[^:]+:\\/*[^/]*$/;\n var protocol = /^([^:]+:)[\\s\\S]*$/;\n var domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n /**\n * @param {string} base\n * @param {string} href\n */\n\n function resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n\n base = baseUrls[' ' + base];\n var relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n }\n var noopTest = {\n exec: function noopTest() {}\n };\n function merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n }\n function splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n var escaped = false,\n curr = offset;\n\n while (--curr >= 0 && str[curr] === '\\\\') {\n escaped = !escaped;\n }\n\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n var i = 0; // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n\n if (!cells[0].trim()) {\n cells.shift();\n }\n\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) {\n cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n\n return cells;\n }\n /**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param {string} str\n * @param {string} c\n * @param {boolean} invert Remove suffix of non-c chars instead. Default falsey.\n */\n\n function rtrim(str, c, invert) {\n var l = str.length;\n\n if (l === 0) {\n return '';\n } // Length of suffix matching the invert condition.\n\n\n var suffLen = 0; // Step left until we fail to match the invert condition.\n\n while (suffLen < l) {\n var currChar = str.charAt(l - suffLen - 1);\n\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.slice(0, l - suffLen);\n }\n function findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n var l = str.length;\n var level = 0,\n i = 0;\n\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n\n if (level < 0) {\n return i;\n }\n }\n }\n\n return -1;\n }\n function checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n } // copied from https://stackoverflow.com/a/5450113/806777\n\n /**\n * @param {string} pattern\n * @param {number} count\n */\n\n function repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n\n var result = '';\n\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n\n count >>= 1;\n pattern += pattern;\n }\n\n return result + pattern;\n }\n\n function outputLink(cap, link, raw, lexer) {\n var href = link.href;\n var title = link.title ? escape(link.title) : null;\n var text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n var token = {\n type: 'link',\n raw: raw,\n href: href,\n title: title,\n text: text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n }\n\n return {\n type: 'image',\n raw: raw,\n href: href,\n title: title,\n text: escape(text)\n };\n }\n\n function indentCodeCompensation(raw, text) {\n var matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n var indentToCode = matchIndentToCode[1];\n return text.split('\\n').map(function (node) {\n var matchIndentInNode = node.match(/^\\s+/);\n\n if (matchIndentInNode === null) {\n return node;\n }\n\n var indentInNode = matchIndentInNode[0];\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n }).join('\\n');\n }\n /**\n * Tokenizer\n */\n\n\n var Tokenizer = /*#__PURE__*/function () {\n function Tokenizer(options) {\n this.options = options || exports.defaults;\n }\n\n var _proto = Tokenizer.prototype;\n\n _proto.space = function space(src) {\n var cap = this.rules.block.newline.exec(src);\n\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n };\n\n _proto.code = function code(src) {\n var cap = this.rules.block.code.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic ? rtrim(text, '\\n') : text\n };\n }\n };\n\n _proto.fences = function fences(src) {\n var cap = this.rules.block.fences.exec(src);\n\n if (cap) {\n var raw = cap[0];\n var text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw: raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: text\n };\n }\n };\n\n _proto.heading = function heading(src) {\n var cap = this.rules.block.heading.exec(src);\n\n if (cap) {\n var text = cap[2].trim(); // remove trailing #s\n\n if (/#$/.test(text)) {\n var trimmed = rtrim(text, '#');\n\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n var token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n };\n\n _proto.hr = function hr(src) {\n var cap = this.rules.block.hr.exec(src);\n\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n };\n\n _proto.blockquote = function blockquote(src) {\n var cap = this.rules.block.blockquote.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ *>[ \\t]?/gm, '');\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text: text\n };\n }\n };\n\n _proto.list = function list(src) {\n var cap = this.rules.block.list.exec(src);\n\n if (cap) {\n var raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine, line, nextLine, rawLine, itemContents, endEarly;\n var bull = cap[1].trim();\n var isordered = bull.length > 1;\n var list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? \"\\\\d{1,9}\\\\\" + bull.slice(-1) : \"\\\\\" + bull;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n } // Get next list item\n\n\n var itemRegex = new RegExp(\"^( {0,3}\" + bull + \")((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))\"); // Check if current bullet point can start a new List Item\n\n while (src) {\n endEarly = false;\n\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) {\n // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) {\n // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n var nextBulletRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}(?:[*+-]|\\\\d{1,9}[.)])((?: [^\\\\n]*)?(?:\\\\n|$))\");\n var hrRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)\");\n var fencesBeginRegex = new RegExp(\"^( {0,\" + Math.min(3, indent - 1) + \"})(```|~~~)\"); // Check if following lines should be included in List Item\n\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine; // Re-align to follow commonmark nesting rules\n\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n } // End list item if found code fences\n\n\n if (fencesBeginRegex.test(line)) {\n break;\n } // End list item if found start of new heading\n\n\n if (this.rules.block.heading.test(line)) {\n break;\n } // End list item if found start of new bullet\n\n\n if (nextBulletRegex.test(line)) {\n break;\n } // Horizontal rule found\n\n\n if (hrRegex.test(src)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) {\n // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) {\n // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else {\n // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) {\n // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n } // Check for task list items\n\n\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n list.raw += raw;\n } // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n\n\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n var l = list.items.length; // Item child tokens handled here at end because we needed to have the final item to trim it first\n\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n var spacers = list.items[i].tokens.filter(function (t) {\n return t.type === 'space';\n });\n var hasMultipleLineBreaks = spacers.every(function (t) {\n var chars = t.raw.split('');\n var lineBreaks = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose(chars), _step; !(_step = _iterator()).done;) {\n var _char = _step.value;\n\n if (_char === '\\n') {\n lineBreaks += 1;\n }\n\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n };\n\n _proto.html = function html(src) {\n var cap = this.rules.block.html.exec(src);\n\n if (cap) {\n var token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n\n return token;\n }\n };\n\n _proto.def = function def(src) {\n var cap = this.rules.block.def.exec(src);\n\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n var tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag: tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n };\n\n _proto.table = function table(src) {\n var cap = this.rules.block.table.exec(src);\n\n if (cap) {\n var item = {\n type: 'table',\n header: splitCells(cap[1]).map(function (c) {\n return {\n text: c\n };\n }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n var l = item.align.length;\n var i, j, k, row;\n\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(function (c) {\n return {\n text: c\n };\n });\n } // parse child tokens inside headers and cells\n // header child tokens\n\n\n l = item.header.length;\n\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inline(item.header[j].text, item.header[j].tokens);\n } // cell child tokens\n\n\n l = item.rows.length;\n\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inline(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n };\n\n _proto.lheading = function lheading(src) {\n var cap = this.rules.block.lheading.exec(src);\n\n if (cap) {\n var token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n };\n\n _proto.paragraph = function paragraph(src) {\n var cap = this.rules.block.paragraph.exec(src);\n\n if (cap) {\n var token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n' ? cap[1].slice(0, -1) : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n };\n\n _proto.text = function text(src) {\n var cap = this.rules.block.text.exec(src);\n\n if (cap) {\n var token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n };\n\n _proto.escape = function escape$1(src) {\n var cap = this.rules.inline.escape.exec(src);\n\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n };\n\n _proto.tag = function tag(src) {\n var cap = this.rules.inline.tag.exec(src);\n\n if (cap) {\n if (!this.lexer.state.inLink && /^
    /i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize ? 'text' : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0]\n };\n }\n };\n\n _proto.link = function link(src) {\n var cap = this.rules.inline.link.exec(src);\n\n if (cap) {\n var trimmedUrl = cap[2].trim();\n\n if (!this.options.pedantic && /^$/.test(trimmedUrl)) {\n return;\n } // ending angle bracket cannot be escaped\n\n\n var rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n var lastParenIndex = findClosingBracket(cap[2], '()');\n\n if (lastParenIndex > -1) {\n var start = cap[0].indexOf('!') === 0 ? 5 : 4;\n var linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n\n var href = cap[2];\n var title = '';\n\n if (this.options.pedantic) {\n // split pedantic href and title\n var link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n\n if (/^$/.test(trimmedUrl)) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n };\n\n _proto.reflink = function reflink(src, links) {\n var cap;\n\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n var link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n\n if (!link || !link.href) {\n var text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text: text\n };\n }\n\n return outputLink(cap, link, cap[0], this.lexer);\n }\n };\n\n _proto.emStrong = function emStrong(src, maskedSrc, prevChar) {\n if (prevChar === void 0) {\n prevChar = '';\n }\n\n var match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return; // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n\n if (match[3] && prevChar.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDF70-\\uDF81\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/)) return;\n var nextChar = match[1] || match[2] || '';\n\n if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {\n var lLength = match[0].length - 1;\n var rDelim,\n rLength,\n delimTotal = lLength,\n midDelimTotal = 0;\n var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0; // Clip maskedSrc to same section of string as src (move to lexer?)\n\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) {\n // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); // Create `em` if smallest delimiter has odd char count. *a***\n\n if (Math.min(lLength, rLength) % 2) {\n var _text = src.slice(1, lLength + match.index + rLength);\n\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: _text,\n tokens: this.lexer.inlineTokens(_text, [])\n };\n } // Create 'strong' if smallest delimiter has even char count. **a***\n\n\n var text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n };\n\n _proto.codespan = function codespan(src) {\n var cap = this.rules.inline.code.exec(src);\n\n if (cap) {\n var text = cap[2].replace(/\\n/g, ' ');\n var hasNonSpaceChars = /[^ ]/.test(text);\n var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text: text\n };\n }\n };\n\n _proto.br = function br(src) {\n var cap = this.rules.inline.br.exec(src);\n\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n };\n\n _proto.del = function del(src) {\n var cap = this.rules.inline.del.exec(src);\n\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n };\n\n _proto.autolink = function autolink(src, mangle) {\n var cap = this.rules.inline.autolink.exec(src);\n\n if (cap) {\n var text, href;\n\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.url = function url(src, mangle) {\n var cap;\n\n if (cap = this.rules.inline.url.exec(src)) {\n var text, href;\n\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n var prevCapZero;\n\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n\n text = escape(cap[0]);\n\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.inlineText = function inlineText(src, smartypants) {\n var cap = this.rules.inline.text.exec(src);\n\n if (cap) {\n var text;\n\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n\n return {\n type: 'text',\n raw: cap[0],\n text: text\n };\n }\n };\n\n return Tokenizer;\n }();\n\n /**\n * Block-Level Grammar\n */\n\n var block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n };\n block._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\n block._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\n block.def = edit(block.def).replace('label', block._label).replace('title', block._title).getRegex();\n block.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\n block.listItemStart = edit(/^( *)(bull) */).replace('bull', block.bullet).getRegex();\n block.list = edit(block.list).replace(/bull/g, block.bullet).replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))').replace('def', '\\\\n+(?=' + block.def.source + ')').getRegex();\n block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';\n block._comment = /|$)/;\n block.html = edit(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\n block.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '').replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n block.blockquote = edit(block.blockquote).replace('paragraph', block.paragraph).getRegex();\n /**\n * Normal Block Grammar\n */\n\n block.normal = merge({}, block);\n /**\n * GFM Block Grammar\n */\n\n block.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n\n });\n block.gfm.table = edit(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n block.gfm.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n /**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\n block.pedantic = merge({}, block.normal, {\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)' + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b').getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n paragraph: edit(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()\n });\n /**\n * Inline-Level Grammar\n */\n\n var inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment' + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^',\n // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan inside strong () Consume to delim (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[^*]+(?=[^*])|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\n inline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, \n\n inline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\n inline.escapedEmSt = /\\\\\\*|\\\\_/g;\n inline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n inline.emStrong.lDelim = edit(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();\n inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g').replace(/punct/g, inline._punctuation).getRegex();\n inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g').replace(/punct/g, inline._punctuation).getRegex();\n inline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\n inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\n inline.autolink = edit(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();\n inline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n inline.tag = edit(inline.tag).replace('comment', inline._comment).replace('attribute', inline._attribute).getRegex();\n inline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\n inline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\n inline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n inline.link = edit(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();\n inline.reflink = edit(inline.reflink).replace('label', inline._label).replace('ref', block._label).getRegex();\n inline.nolink = edit(inline.nolink).replace('ref', block._label).getRegex();\n inline.reflinkSearch = edit(inline.reflinkSearch, 'g').replace('reflink', inline.reflink).replace('nolink', inline.nolink).getRegex();\n /**\n * Normal Inline Grammar\n */\n\n inline.normal = merge({}, inline);\n /**\n * Pedantic Inline Grammar\n */\n\n inline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace('label', inline._label).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace('label', inline._label).getRegex()\n });\n /**\n * GFM Inline Grammar\n */\n\n inline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n\n out += '&#' + ch + ';';\n }\n\n return out;\n }\n /**\n * Block Lexer\n */\n\n\n var Lexer = /*#__PURE__*/function () {\n function Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || exports.defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n var rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n\n\n /**\n * Static Lex Method\n */\n Lexer.lex = function lex(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n ;\n\n Lexer.lexInline = function lexInline(src, options) {\n var lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n ;\n\n var _proto = Lexer.prototype;\n\n _proto.lex = function lex(src) {\n src = src.replace(/\\r\\n|\\r/g, '\\n');\n this.blockTokens(src, this.tokens);\n var next;\n\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n /**\n * Lexing\n */\n ;\n\n _proto.blockTokens = function blockTokens(src, tokens) {\n var _this = this;\n\n if (tokens === void 0) {\n tokens = [];\n }\n\n if (this.options.pedantic) {\n src = src.replace(/\\t/g, ' ').replace(/^ +$/gm, '');\n } else {\n src = src.replace(/^( *)(\\t+)/gm, function (_, leading, tabs) {\n return leading + ' '.repeat(tabs.length);\n });\n }\n\n var token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(function (extTokenizer) {\n if (token = extTokenizer.call({\n lexer: _this\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // newline\n\n\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n\n continue;\n } // code\n\n\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.\n\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // fences\n\n\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // heading\n\n\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // hr\n\n\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // blockquote\n\n\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // list\n\n\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // html\n\n\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // def\n\n\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n\n continue;\n } // table (gfm)\n\n\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // lheading\n\n\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startBlock) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this.options.extensions.startBlock.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n } // text\n\n\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n };\n\n _proto.inline = function inline(src, tokens) {\n this.inlineQueue.push({\n src: src,\n tokens: tokens\n });\n }\n /**\n * Lexing/Compiling\n */\n ;\n\n _proto.inlineTokens = function inlineTokens(src, tokens) {\n var _this2 = this;\n\n if (tokens === void 0) {\n tokens = [];\n }\n\n var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong\n\n var maskedSrc = src;\n var match;\n var keepPrevChar, prevChar; // Mask out reflinks\n\n if (this.tokens.links) {\n var links = Object.keys(this.tokens.links);\n\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n } // Mask out other blocks\n\n\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n } // Mask out escaped em & strong delimiters\n\n\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n\n keepPrevChar = false; // extensions\n\n if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(function (extTokenizer) {\n if (token = extTokenizer.call({\n lexer: _this2\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // escape\n\n\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // tag\n\n\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // link\n\n\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // reflink, nolink\n\n\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // em & strong\n\n\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // code\n\n\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // br\n\n\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // del (gfm)\n\n\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // autolink\n\n\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // url (gfm)\n\n\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startInline) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this2.options.extensions.startInline.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.slice(-1) !== '_') {\n // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n };\n\n _createClass(Lexer, null, [{\n key: \"rules\",\n get: function get() {\n return {\n block: block,\n inline: inline\n };\n }\n }]);\n\n return Lexer;\n }();\n\n /**\n * Renderer\n */\n\n var Renderer = /*#__PURE__*/function () {\n function Renderer(options) {\n this.options = options || exports.defaults;\n }\n\n var _proto = Renderer.prototype;\n\n _proto.code = function code(_code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n\n if (this.options.highlight) {\n var out = this.options.highlight(_code, lang);\n\n if (out != null && out !== _code) {\n escaped = true;\n _code = out;\n }\n }\n\n _code = _code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
    ' + (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 } // ignore IDs\n\n\n return \"\" + text + \"\\n\";\n };\n\n _proto.hr = function hr() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n };\n\n _proto.list = function list(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = ordered && start !== 1 ? ' start=\"' + start + '\"' : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.listitem = function listitem(text) {\n return \"
  • \" + text + \"
  • \\n\";\n };\n\n _proto.checkbox = function checkbox(checked) {\n return ' ';\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.paragraph = function paragraph(text) {\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 '\\n' + '\\n' + header + '\\n' + body + '
    \\n';\n }\n /**\n * @param {string} content\n */\n ;\n\n _proto.tablerow = function tablerow(content) {\n return \"\\n\" + content + \"\\n\";\n };\n\n _proto.tablecell = function tablecell(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align ? \"<\" + type + \" align=\\\"\" + flags.align + \"\\\">\" : \"<\" + type + \">\";\n return tag + content + (\"\\n\");\n }\n /**\n * span level renderer\n * @param {string} text\n */\n ;\n\n _proto.strong = function strong(text) {\n return \"\" + text + \"\";\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.em = function em(text) {\n return \"\" + text + \"\";\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.codespan = function codespan(text) {\n return \"\" + text + \"\";\n };\n\n _proto.br = function br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.del = function del(text) {\n return \"\" + text + \"\";\n }\n /**\n * @param {string} href\n * @param {string} title\n * @param {string} text\n */\n ;\n\n _proto.link = function link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = '
    ';\n return out;\n }\n /**\n * @param {string} href\n * @param {string} title\n * @param {string} text\n */\n ;\n\n _proto.image = function image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = \"\\\"\"' : '>';\n return out;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n return Renderer;\n }();\n\n /**\n * TextRenderer\n * returns only the textual part of the token\n */\n var TextRenderer = /*#__PURE__*/function () {\n function TextRenderer() {}\n\n var _proto = TextRenderer.prototype;\n\n // no need for block level renderers\n _proto.strong = function strong(text) {\n return text;\n };\n\n _proto.em = function em(text) {\n return text;\n };\n\n _proto.codespan = function codespan(text) {\n return text;\n };\n\n _proto.del = function del(text) {\n return text;\n };\n\n _proto.html = function html(text) {\n return text;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n _proto.link = function link(href, title, text) {\n return '' + text;\n };\n\n _proto.image = function image(href, title, text) {\n return '' + text;\n };\n\n _proto.br = function br() {\n return '';\n };\n\n return TextRenderer;\n }();\n\n /**\n * Slugger generates header id\n */\n var Slugger = /*#__PURE__*/function () {\n function Slugger() {\n this.seen = {};\n }\n /**\n * @param {string} value\n */\n\n\n var _proto = Slugger.prototype;\n\n _proto.serialize = function serialize(value) {\n return value.toLowerCase().trim() // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '') // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '').replace(/\\s/g, '-');\n }\n /**\n * Finds the next safe (unique) slug to use\n * @param {string} originalSlug\n * @param {boolean} isDryRun\n */\n ;\n\n _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {\n var slug = originalSlug;\n var occurenceAccumulator = 0;\n\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n\n return slug;\n }\n /**\n * Convert string to unique id\n * @param {object} [options]\n * @param {boolean} [options.dryrun] Generates the next unique slug without\n * updating the internal accumulator.\n */\n ;\n\n _proto.slug = function slug(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n };\n\n return Slugger;\n }();\n\n /**\n * Parsing & Compiling\n */\n\n var Parser = /*#__PURE__*/function () {\n function Parser(options) {\n this.options = options || exports.defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n /**\n * Static Parse Method\n */\n\n\n Parser.parse = function parse(tokens, options) {\n var parser = new Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n ;\n\n Parser.parseInline = function parseInline(tokens, options) {\n var parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n ;\n\n var _proto = Parser.prototype;\n\n _proto.parse = function parse(tokens, top) {\n if (top === void 0) {\n top = true;\n }\n\n var out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({\n parser: this\n }, token);\n\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space':\n {\n continue;\n }\n\n case 'hr':\n {\n out += this.renderer.hr();\n continue;\n }\n\n case 'heading':\n {\n out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape(this.parseInline(token.tokens, this.textRenderer)), this.slugger);\n continue;\n }\n\n case 'code':\n {\n out += this.renderer.code(token.text, token.lang, token.escaped);\n continue;\n }\n\n case 'table':\n {\n header = ''; // header\n\n cell = '';\n l2 = token.header.length;\n\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(this.parseInline(token.header[j].tokens), {\n header: true,\n align: token.align[j]\n });\n }\n\n header += this.renderer.tablerow(cell);\n body = '';\n l2 = token.rows.length;\n\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n cell = '';\n l3 = row.length;\n\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k].tokens), {\n header: false,\n align: token.align[k]\n });\n }\n\n body += this.renderer.tablerow(cell);\n }\n\n out += this.renderer.table(header, body);\n continue;\n }\n\n case 'blockquote':\n {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n\n case 'list':\n {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n body = '';\n\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n itemBody = '';\n\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n\n case 'html':\n {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n\n case 'paragraph':\n {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n\n case 'text':\n {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n ;\n\n _proto.parseInline = function parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n var out = '',\n i,\n token,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({\n parser: this\n }, token);\n\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape':\n {\n out += renderer.text(token.text);\n break;\n }\n\n case 'html':\n {\n out += renderer.html(token.text);\n break;\n }\n\n case 'link':\n {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'image':\n {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n\n case 'strong':\n {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'em':\n {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'codespan':\n {\n out += renderer.codespan(token.text);\n break;\n }\n\n case 'br':\n {\n out += renderer.br();\n break;\n }\n\n case 'del':\n {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'text':\n {\n out += renderer.text(token.text);\n break;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n };\n\n return Parser;\n }();\n\n /**\n * Marked\n */\n\n function marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n var highlight = opt.highlight;\n var tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n var done = function done(err) {\n var out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n return err ? callback(err) : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n if (!tokens.length) return done();\n var pending = 0;\n marked.walkTokens(tokens, function (token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(function () {\n highlight(token.text, token.lang, function (err, code) {\n if (err) {\n return done(err);\n }\n\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n var _tokens = Lexer.lex(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(_tokens, opt.walkTokens);\n }\n\n return Parser.parse(_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 * 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"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/kubewarden/1.1.0/plugin/package.json b/extensions/kubewarden/1.1.0/plugin/package.json new file mode 100644 index 00000000..2e8ff7d1 --- /dev/null +++ b/extensions/kubewarden/1.1.0/plugin/package.json @@ -0,0 +1,20 @@ +{ + "name": "kubewarden", + "description": "Kubewarden extension for Rancher Manager", + "icon": "https://raw.githubusercontent.com/kubewarden/ui/main/pkg/kubewarden/assets/icon-kubewarden.svg", + "version": "1.1.0", + "private": false, + "rancher": true, + "engines": { + "node": ">=12" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "5.0.8", + "@vue/cli-service": "5.0.8", + "@vue/cli-plugin-typescript": "5.0.8" + }, + "files": [ + "**/*" + ], + "main": "kubewarden-1.1.0.umd.min.js" +} \ No newline at end of file diff --git a/index.yaml b/index.yaml index ea0f6a42..aec0b3bb 100644 --- a/index.yaml +++ b/index.yaml @@ -11,16 +11,16 @@ entries: catalog.cattle.io/scope: management catalog.cattle.io/ui-component: plugins apiVersion: v2 - appVersion: 1.1.0-rc1 - created: "2023-07-06T14:46:51.904328409Z" + appVersion: 1.1.0 + created: "2023-07-06T19:36:21.596123043Z" description: Kubewarden extension for Rancher Manager - digest: c3880d3be28c0af8a8aa8eaa06b7c497dc730a0a01254283a39dda02dc3a6193 + digest: 5579b822ef0c9784beb7ff577fea9eb330128b3be375d1d96fbe4a978daa6f8f icon: https://raw.githubusercontent.com/kubewarden/ui/main/pkg/kubewarden/assets/icon-kubewarden.svg name: kubewarden type: application urls: - - assets/kubewarden/kubewarden-1.1.0-rc1.tgz - version: 1.1.0-rc1 + - kubewarden/kubewarden-1.1.0.tgz + version: 1.1.0 - annotations: catalog.cattle.io/certified: rancher catalog.cattle.io/kube-version: '>= 1.16.0-0 < 1.28.0-0' @@ -901,4 +901,4 @@ entries: urls: - assets/kubewarden/kubewarden-0.1.0.tgz version: 0.1.0 -generated: "2023-07-06T14:47:29.313164432Z" +generated: "2023-07-06T19:36:21.595687946Z"