From 3508bd3ef4511abc559a4eff6fe5012c472e9e96 Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Tue, 9 Apr 2024 11:41:32 +0800 Subject: [PATCH 01/13] feat: use k8s.website.tabs to show different installation types Signed-off-by: yuluo-yx --- go.mod | 2 +- site/assets/scss/_base.scss | 920 ++++++++++++++++++++ site/assets/scss/_reset.scss | 49 ++ site/assets/scss/_size.scss | 28 + site/assets/scss/_skin.scss | 5 + site/assets/scss/_variables_project.scss | 6 + site/content/en/v1.0.0/user/quickstart.md | 20 +- site/layouts/shortcodes/common/_common.html | 16 + site/layouts/shortcodes/tab.html | 19 + site/layouts/shortcodes/tabs.html | 50 ++ site/static/img/texture.png | Bin 0 -> 35987 bytes 11 files changed, 1111 insertions(+), 4 deletions(-) create mode 100644 site/assets/scss/_base.scss create mode 100644 site/assets/scss/_reset.scss create mode 100644 site/assets/scss/_size.scss create mode 100644 site/assets/scss/_skin.scss create mode 100644 site/layouts/shortcodes/common/_common.html create mode 100644 site/layouts/shortcodes/tab.html create mode 100644 site/layouts/shortcodes/tabs.html create mode 100644 site/static/img/texture.png diff --git a/go.mod b/go.mod index f6309d67f41..68f17b06032 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/envoyproxy/gateway -go 1.22 +go 1.21 require ( fortio.org/fortio v1.63.5 diff --git a/site/assets/scss/_base.scss b/site/assets/scss/_base.scss new file mode 100644 index 00000000000..4d3f3ee974d --- /dev/null +++ b/site/assets/scss/_base.scss @@ -0,0 +1,920 @@ +@import "reset"; + +// header +$full-width-paddingX: 20px; + +$main-width: 100%; +$main-max-width: 100%; + +$header-height: 80px; + +$logo-width: 180px; + +$nav-buttons-margin-left: 30px; + +$hamburger-size: 50px; + +// main nav +$main-nav-padding: 140px 0 30px; +$main-nav-h5-margin-bottom: 1em; +$main-nav-h3-margin-bottom: 0.6em; +$nav-box-width: 20%; +$nav-box-sibling-margin-left: calc(20% / 3); +$main-nav-main-sibling-margin-top: 60px; +$main-nav-left-button-size: 50px; +$main-nav-left-button-font-size: 18px; + +// hero +$hero-padding-top: 80px; +$headline-wrapper-margin-bottom: 40px; +$quickstart-button-padding: 0 50px; +$vendor-strip-height: 88px; +$vendor-strip-font-size: 16px; + +// video +$video-section-height: 200px; + +@import "size"; + +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +body { + background-color: white; + + a { + color: $blue; + } +} + +section { + position: relative; + background-color: white; +} + +section, +header, +footer { + .main-section { + position: relative; + margin: auto; + } + + p { + font-size: 14px; + font-weight: 400; + } + + .button { + display: inline-block; + border-radius: 6px; + padding: 6px 20px; + line-height: 1.3rem; + color: white; + background-color: $blue; + text-decoration: none; + font-size: 1rem; + border: 0px; + + } + + .button:hover { + background-color: darken($blue, 10%); + } + + #cellophane { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: none; + } +} + +main { + .button { + display: inline-block; + border-radius: 6px; + padding: 6px 20px; + line-height: 1.3rem; + color: white; + background-color: $blue; + text-decoration: none; + font-size: 1rem; + border: 0px; + } +} + +::selection { + background: #326ce5; + color: white; +} + +::-moz-selection { + background: #326ce5; + color: white; +} + +// HEADER + +#hamburger { + display: inline-block; + position: relative; + margin-left: auto; + vertical-align: middle; + padding: 0; + border: 0; + background: none; + + div, + &:before, + &:after { + position: absolute; + left: 15%; + width: 70%; + height: 2px; + background-color: $blue; + transition: 0.3s; + content: ""; + } + + div { + top: calc(50% - 1px); + } + + &:before { + top: 24%; + } + + &:after { + bottom: 24%; + } + + &:hover { + div, + &:before, + &:after { + background-color: white; + } + } +} + +// HERO +.header-hero { + background-image: url(/img/texture.png); + background-color: $dark-grey; + text-align: center; + padding-left: 0; + padding-right: 0; + margin-bottom: 0; + position: relative; + + &.bot-bar:after { + display: block; + margin-bottom: -24px; + height: 8px; + width: 100%; + background-color: transparentize(white, 0.9); + content: ""; + } + + &.no-sub { + h5 { + display: none; + } + + h1 { + margin-bottom: 20px; + } + } +} + +.td-home .header-hero:after { + display: none; +} + +.header-hero { + background-color: $dark-grey; + + h5 { + margin: 20px 0; + line-height: 28px; + } +} + +#vendorStrip { + position: relative; + + ul { + float: left; + } + + li { + display: inline-block; + height: 100%; + } + + a { + display: block; + height: 100%; + color: white; + font-size: 0.75em; + font-weight: bold; + } + + li + li { + margin-left: 0; + } +} + +.pi-accordion { + & > .container:first-child > .item:first-child > .title:first-child { + padding-left: 0; + font-size: 1.5em; + font-weight: 700; + } + + & > .container:first-child > .item.yah:first-child > .title:first-child { + margin-left: -20px !important; + } + + .item { + overflow: hidden; + } + + .title { + color: $dark-grey; + position: relative; + padding: 7.5px 10px 7.5px 18px; + cursor: pointer; + transition: 0.3s; + + &:hover { + color: $blue; + } + } + + a.item > .title { + color: black; + + &:hover { + color: $blue; + } + } + + div.item > .title { + &:before { + content: ""; + position: absolute; + top: 12px; + left: 2px; + border-style: solid; + border-width: 5px 0 5px 8px; + border-color: transparent transparent transparent $blue; + transform: rotate(0deg); + transition: 0.3s; + } + } + + .wrapper { + position: relative; + width: 100%; + transition: height 0.3s; + } + + .content { + padding-left: 20px; + opacity: 0; + transition: 0.3s; + } + + .item.on { + & > .title:before { + transform: rotate(90deg); + } + + & > .wrapper > .content { + opacity: 1; + } + } +} + +dt { + margin-bottom: 8px; +} + +dd { + margin-bottom: 16px; +} + +.pi-pushmenu { + display: none; + position: fixed; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + transition: opacity 0.3s; + + &.on { + opacity: 1; + } + + .overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); + } + + .sled { + position: absolute; + top: 0; + width: 0; + height: 100%; + background-color: white; + overflow: auto; + transition: 0.3s; + } + + &.on .sled { + width: 400px; + max-width: 100vw; + } + + .top-bar { + height: 0; + line-height: 60px; + background-color: #444; + } + + ul { + margin-top: 25px; + } + + li { + position: relative; + display: block; + width: 100%; + min-height: 45px; + padding: 0 60px 0 20px; + border-bottom: 1px solid #cccccc; + } + + a { + display: inline-block; + width: 100%; + height: 45px; + line-height: 45px; + font-size: 20px; + color: $blue; + } + + .button { + background: none; + padding: 0; + } + + ul ul { + padding: 0 20px; + + li { + min-height: 40px; + } + + a { + height: 40px; + line-height: 40px; + font-size: 18px; + color: lighten(#222222, 20%); + } + } +} + +.push-menu-close-button { + position: absolute; + top: 0; + right: 0; + width: 50px; + height: 50px; + + &:before, + &:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 25%; + width: 50%; + height: 2px; + background-color: black; + } + + &:before { + transform: rotate(45deg); + } + + &:after { + transform: rotate(-45deg); + } +} + +// ocean nodes +$ocean-nodes-padding-Y: 60px; +$ocean-nodes-main-margin-bottom: 60px; +$ocean-nodes-h3-margin-bottom: 30px; + +// video +$video-section-height: 200px; + +// features +$features-h3-margin-bottom: 20px; +$feature-box-div-width: 100%; +$feature-box-margin-bottom: 0; +$feature-box-div-margin-bottom: 40px; + +// Home-specific + +.td-home { + &.flip-nav, + &.open-nav { + .logo { + background-image: url(/images/nav_logo2.svg); + } + } +} + +.header-hero { + margin-bottom: 0; + padding-bottom: 1px; + + .main-section { + padding: 0 10px; + margin-bottom: 30px; + } + + #vendorStrip { + display: none; + } +} + +// Add logo to CNCF section +section#cncf { + padding-top: 60px; + padding-bottom: 140px; + background-image: url(/images/cncf-color.svg); + background-position: center 100px; + background-repeat: no-repeat; + background-size: 300px; +} + +// OCEAN NODES +#oceanNodes { + padding-top: $ocean-nodes-padding-Y; + padding-bottom: $ocean-nodes-padding-Y; + + a { + color: $blue; + } + + .main-section { + margin-bottom: $ocean-nodes-padding-Y; + min-height: 160px; + } + + .image-wrapper { + max-width: 75%; + margin: 0 auto 20px; + text-align: center; + + img { + width: 100%; + max-width: 160px; + } + } + + .main-section:first-child { + .image-wrapper { + max-width: 100%; + + img { + max-width: 491px; + } + } + } + + h3 { + margin-bottom: $ocean-nodes-h3-margin-bottom; + } +} + +// Video thingy +#video { + height: $video-section-height; +} + +#video { + width: 100%; + position: relative; + background-position: center center; + background-size: cover; + + & > .light-text { + display: none; + // position: absolute; + // top: 50%; + // left: 75%; + width: 500px; + padding-top: 2rem; + // transform: translate(-50%, -50%); + color: white; + } + + h2 { + font-size: 32px; + line-height: 44px; + margin-bottom: 20px; + } + + p { + margin-bottom: 20px; + } + + #desktopKCButton { + position: absolute; + font-size: 18px; + background-color: $dark-grey; + border-radius: 8px; + color: $white; + padding: 20px 10px 20px 10px; + } + + #desktopKCButton:hover{ + background-color: #ffffff; + color: #3371e3; + transition: 150ms; + } + + #desktopShowVideoButton { + position: relative; + font-size: 24px; + background-color: white; + border-radius: 8px; + color: $blue; + padding: 15px 30px 15px 80px; + margin-bottom: 15px; + + &:before { + content: ""; + position: absolute; + @include pureCenter(40px); + width: 0; + height: 0; + border-style: solid; + border-width: 10px 0 10px 20px; + border-color: transparent transparent transparent $blue; + } + + &:hover::before { + border-color: transparent transparent transparent $dark-grey; + } + } + + #desktopShowVideoButton:hover{ + color: $dark-grey; + transition: 150ms; + } + + #mobileShowVideoButton { + @include pureCenter; + width: 80px; + height: 80px; + border-radius: 50%; + background-color: transparent; + border: 5px solid rgba(255, 255, 255, 0.2); + overflow: visible; + + &:after { + @include pureCenter; + left: 40px; + content: ""; + width: 0; + height: 0; + border-style: solid; + border-width: 20px 0 20px 30px; + border-color: transparent transparent transparent #ffffff; + } + } +} + +#videoPlayer { + @include fullScreen; + background-color: rgba(0, 0, 0, 0.9); + display: none; + + iframe { + @include pureCenter; + @include maintain-aspect-ratio; + } + + #closeButton { + position: absolute; + top: 20px; + right: 20px; + width: 50px; + height: 50px; + border: 2px solid transparent; + transition: 0.3s; + + &:before, + &:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 10%; + width: 80%; + height: 2px; + background-color: white; + } + + &:before { + transform: rotate(45deg); + } + + &:after { + transform: rotate(-45deg); + } + + &:hover { + border-color: white; + } + } +} + +// KubeWeekly +#kubeweekly { + background-color: $light-grey; + padding-top: 30px; + padding-bottom: 80px; + background-size: auto; + font-size: 24px; + // font-weight: bold; + + h5 { + font-size: 20px; + } +} + +.subscribe-button { + border-radius: 6px; + padding: 0 20px; + line-height: 31px; + color: white; + background-color: blue; + text-decoration: none; + font-size: 14px; +} + +// Features +#features { + padding-top: 140px; + background-color: $light-grey; + background-image: url(/images/wheel.svg); + background-position: center 60px; + background-repeat: no-repeat; + background-size: 60px; +} + +.feature-box { + //padding: 50px 0 + width: 100%; + overflow: hidden; + clear: both; + display: flex; + justify-content: space-evenly; + flex-wrap: wrap; + + h4 { + line-height: normal; + margin-bottom: 15px; + } + + & > div { + background-color: #daeaf9; + border-radius: 20px; + padding: 25px; + } +} + +#features { + h3 { + margin-bottom: $features-h3-margin-bottom; + } + + .feature-box { + margin-bottom: $feature-box-margin-bottom; + + & > div { + width: $feature-box-div-width; + margin-bottom: $feature-box-div-margin-bottom; + } + } +} + +// Talk to us +#talkToUs { + h3, + h4 { + text-align: center; + } + + h3 { + margin-bottom: 15px; + } + + h4 { + line-height: normal; + margin-bottom: 50px; + + br { + display: none; + } + } + + #bigSocial { + overflow: hidden; + + div { + width: 100%; + float: left; + padding: 30px; + padding-top: 110px; + background-position: center top; + background-size: auto; + background-repeat: no-repeat; + } + + div:nth-child(1) { + background-image: url(/images/twitter_icon.png); + } + + div:nth-child(2) { + background-image: url(/images/github_icon.png); + } + + div:nth-child(3) { + background-image: url(/images/slack_icon.png); + } + + div:nth-child(4) { + background-image: url(/images/stackoverflow_icon.png); + } + + div + div { + margin-top: 20px; + margin-left: 0; + } + + a { + display: inline-block; + color: $blue; + font-size: 24px; + font-weight: 400; + text-decoration: none; + margin-bottom: 15px; + } + + a, + p { + text-align: center; + width: 100%; + } + } +} + +.td-home { + #talkToUs { + .main-section { + padding: 30px 0; + } + + h5 { + font-size: 20px; + } + } + + #caseStudiesWrapper { + position: relative; + text-align: center; + margin-bottom: 30px; + + img { + padding-bottom: 1rem; + } + + div { + position: relative; + display: inline-block; + vertical-align: top; + width: 100%; + min-height: 230px; + margin-bottom: 60px; + padding-right: 1rem; + background-position: top center; + } + + p { + font-size: 20px; + } + + a { + position: absolute; + bottom: -30px; + left: 50%; + transform: translateX(-50%); + color: $blue; + font-weight: 400; + } + } +} + +// Header filler size adjustment + +.header-hero.filler { + height: $hero-padding-top; +} + +// Docs specific + +#editPageButton { + position: absolute; + top: 50px; + right: 25px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: $blue url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; +} + +.feedback--response__hidden { + display: none; +} + +// GitHub info/edit buttons +#pre-footer { + margin-top: 2rem; + + .button { + font-size: 1.1rem; + + &:first-of-type { + margin-right: 0.75rem; + } + } + + .lastedit { + margin-top: 1rem; + font-size: 1rem; + } +} + +/* DOCUMENTATION */ + +// nav-tabs and tab-content +.nav-tabs { + border-bottom: none !important; + + .nav-item { + margin-bottom: 0; + } +} + +.td-content .tab-content .highlight { + margin: 0; +} + +//Table Content +.tab-content table{ + border-collapse: separate; + border-spacing: 6px; +} + +.tab-pane { + border-radius: 0.25rem; + padding: 0 16px 16px; + overflow: auto; + + border: 1px solid #dee2e6; + &:first-of-type.active { + border-top-left-radius: 0; + } +} diff --git a/site/assets/scss/_reset.scss b/site/assets/scss/_reset.scss new file mode 100644 index 00000000000..1978abec5c9 --- /dev/null +++ b/site/assets/scss/_reset.scss @@ -0,0 +1,49 @@ +// CONVENIENCE +.clear { + display: block; + clear: both; + } + + .light-text { + color: white; + } + + .right { + float: right; + } + + .left { + float: left; + } + + .center { + text-align: center; + } + + //mixins + @mixin fullScreen { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + } + + @mixin pureCenter($left: 50%, $top: 50%) { + position: absolute; + top: $top; + left: $left; + transform: translate(-50%, -50%); + } + + @mixin maintain-aspect-ratio( + $width-factor: 16, + $height-factor: 9, + $target-width: 80vw, + $target-height: 80vh + ) { + width: $target-width; + height: $target-width * ($height-factor / $width-factor); + max-width: $target-height * ($width-factor / $height-factor); + max-height: $target-height; + } diff --git a/site/assets/scss/_size.scss b/site/assets/scss/_size.scss new file mode 100644 index 00000000000..14d56201c30 --- /dev/null +++ b/site/assets/scss/_size.scss @@ -0,0 +1,28 @@ +section, +#vendorStrip { + padding-left: $full-width-paddingX; + padding-right: $full-width-paddingX; +} + +#hamburger { + width: $hamburger-size; + height: $hamburger-size; +} + +.header-hero { + padding-top: $hero-padding-top; +} + +#vendorStrip { + height: $vendor-strip-height; + line-height: $vendor-strip-height; + font-size: $vendor-strip-font-size; +} + +#announcement { + min-height: $hero-padding-top; + + .announcement-main { + padding-top: calc(max(8em, 8rem, #{$hero-padding-top} / 3)); + } +} diff --git a/site/assets/scss/_skin.scss b/site/assets/scss/_skin.scss new file mode 100644 index 00000000000..32c94b9dc52 --- /dev/null +++ b/site/assets/scss/_skin.scss @@ -0,0 +1,5 @@ +$blue: #3371e3; +$light-grey: #f7f7f7; +$dark-grey: #303030; +$medium-grey: #4c4c4c; +$white: #ffffff; diff --git a/site/assets/scss/_variables_project.scss b/site/assets/scss/_variables_project.scss index 7e918d43018..38fac24150e 100644 --- a/site/assets/scss/_variables_project.scss +++ b/site/assets/scss/_variables_project.scss @@ -4,6 +4,12 @@ Add styles or override variables from the theme here. */ +@import "reset"; +@import "skin"; + +@import "base"; + + $primary: #280C53; $secondary: #802A78; $dark: #280C53; diff --git a/site/content/en/v1.0.0/user/quickstart.md b/site/content/en/v1.0.0/user/quickstart.md index db184923e50..21eae0859b2 100644 --- a/site/content/en/v1.0.0/user/quickstart.md +++ b/site/content/en/v1.0.0/user/quickstart.md @@ -47,10 +47,16 @@ consideration when debugging. ## Testing the Configuration +{{< tabs name="tabs_test_the_configuration" >}} +{{% tab name="Test Configuration" %}} + Get the name of the Envoy service created the by the example Gateway: ```shell -export ENVOY_SERVICE=$(kubectl get svc -n envoy-gateway-system --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg -o jsonpath='{.items[0].metadata.name}') +export ENVOY_SERVICE= \ + $(kubectl get svc -n envoy-gateway-system \ + --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg \ + -o jsonpath='{.items[0].metadata.name}') ``` Port forward to the Envoy service: @@ -65,7 +71,10 @@ Curl the example app through Envoy proxy: curl --verbose --header "Host: www.example.com" http://localhost:8888/get ``` -### External LoadBalancer Support +{{% /tab %}} + +{{% tab name="External LoadBalancer Support" %}} +Get the name of the Envoy service created the by the example Gateway: You can also test the same functionality by sending traffic to the External IP. To get the external IP of the Envoy service, run: @@ -83,7 +92,9 @@ Curl the example app through Envoy proxy: curl --verbose --header "Host: www.example.com" http://$GATEWAY_HOST/get ``` -## Clean-Up +{{% /tab %}} + +{{% tab name="Clean-Up" %}} Use the steps in this section to uninstall everything from the quickstart guide. @@ -99,6 +110,9 @@ Delete the Gateway API CRDs and Envoy Gateway: helm uninstall eg -n envoy-gateway-system ``` +{{% /tab %}} +{{< /tabs >}} + ## Next Steps Checkout the [Developer Guide](../contributions/develop) to get involved in the project. diff --git a/site/layouts/shortcodes/common/_common.html b/site/layouts/shortcodes/common/_common.html new file mode 100644 index 00000000000..5abf51f5f9f --- /dev/null +++ b/site/layouts/shortcodes/common/_common.html @@ -0,0 +1,16 @@ +{{/* This file contains some common template definitions used in the blocks shortcodes. + The reasoning behind the long and hard-to-remember template names is that these templates are global. */}} + {{ define "shortcodes-blocks_getimage" }} + {{- $cr := site.GetPage "/_common-resources" -}} + {{- with $cr -}} + {{- $image := $cr.Resources.GetMatch (printf "images/**%s*" $.name ) -}} + {{- with $image -}} + {{- $.ctx.Scratch.Set $.target $image -}} + {{- else -}} + {{- errorf "Image matching %q not found _common-resources" $.name -}} + {{- end -}} + {{- else -}} + {{ errorf "[%s] No resource bundle found. Create an empty headless bundle; create content/%s/_common-resources/index.md with \"headless: true\" in front matter. See https://gohugo.io/content-management/page-bundles/#headless-bundle" $.ctx.Page.Lang $.ctx.Page.Lang }} + {{- end -}} + {{- end -}} + \ No newline at end of file diff --git a/site/layouts/shortcodes/tab.html b/site/layouts/shortcodes/tab.html new file mode 100644 index 00000000000..4db7465af9c --- /dev/null +++ b/site/layouts/shortcodes/tab.html @@ -0,0 +1,19 @@ +{{ if .Parent }} + {{ $name := trim (.Get "name") " " }} + {{ $include := trim (.Get "include") " "}} + {{ $codelang := .Get "codelang" }} + {{ if not (.Parent.Scratch.Get "tabs") }} + {{ .Parent.Scratch.Set "tabs" slice }} + {{ end }} + {{ with .Inner }} + {{ if $codelang }} + {{ $.Parent.Scratch.Add "tabs" (dict "name" $name "content" (highlight . $codelang "") ) }} + {{ else }} + {{ $.Parent.Scratch.Add "tabs" (dict "name" $name "content" . ) }} + {{ end }} + {{ else }} + {{ $.Parent.Scratch.Add "tabs" (dict "name" $name "include" $include "codelang" $codelang) }} + {{ end }} +{{ else }} + {{- errorf "[%s] %q: tab shortcode missing its parent" site.Language.Lang .Page.Path -}} +{{ end}} diff --git a/site/layouts/shortcodes/tabs.html b/site/layouts/shortcodes/tabs.html new file mode 100644 index 00000000000..aeb9582b282 --- /dev/null +++ b/site/layouts/shortcodes/tabs.html @@ -0,0 +1,50 @@ +{{- .Page.Scratch.Add "tabset-counter" 1 -}} +{{- $tab_set_id := .Get "name" | default (printf "tabset-%s-%d" (.Page.RelPermalink) (.Page.Scratch.Get "tabset-counter") ) | anchorize -}} +{{- $tabs := .Scratch.Get "tabs" -}} +{{- if .Inner -}}{{- /* We don't use the inner content, but Hugo will complain if we don't reference it. */ -}}{{- end -}} + +
+{{- range $i, $e := $tabs -}} +{{- $id := printf "%s-%d" $tab_set_id $i -}} +{{- if (eq $i 0) -}} +
+{{ else }} +
+{{ end }} +

+ {{- with .content -}} + {{- . -}} + {{- else -}} + {{- if eq $.Page.BundleType "leaf" -}} + {{- /* find the file somewhere inside the bundle. Note the use of double asterisk */ -}} + {{- with $.Page.Resources.GetMatch (printf "**%s*" .include) -}} + {{- if ne .ResourceType "page" -}} + {{- /* Assume it is a file that needs code highlighting. */ -}} + {{- $codelang := $e.codelang | default ( path.Ext .Name | strings.TrimPrefix ".") -}} + {{- highlight .Content $codelang "" -}} + {{- else -}} + {{- .Content -}} + {{- end -}} + {{- end -}} + {{- else -}} + {{- $path := path.Join $.Page.File.Dir .include -}} + {{- $page := site.GetPage "page" $path -}} + {{- with $page -}} + {{- .Content -}} + {{- else -}} + {{- errorf "[%s] tabs include not found for path %q" site.Language.Lang $path -}} + {{- end -}} + {{- end -}} + {{- end -}} +

+{{- end -}} +
diff --git a/site/static/img/texture.png b/site/static/img/texture.png new file mode 100644 index 0000000000000000000000000000000000000000..856707b05915a9dc228992c54a00efd137387eaf GIT binary patch literal 35987 zcmbqaWm{WKw@!k)TXA=H_u^9AwODa?2wI@HyA&^8C@w*YQ{26Hp}6ZwpZ6!6e93iX zuPnQl%$`{jt*$DEhWrj0005vV$jfK|00>|J0Mw2M1O4T!v>_AvC9bZlB@6w2`+t0- zJ03qlS>SnSsA>X$AQ)IUcmzZwWE501bPP-^Y#dzXU%EB`z?V}68A&all@sITuO|%g zJi-<2<@Qf+&Uv5La_t<#;u^qHv&xI2zN#yQ>hhF!+3@)%1z>IaE>|182VdLzvjrpPB8vX$L0njgL|&{Cv#7>hra ztXBx8EMl1r2JKC9)Kif;Pq*i7_DZr6FEQDCAX8fLM07g$W;qW^ay(w7>`S5cQu$VIqd&Btoe4WYk? z_KBaD;~rTHy0U;}RuruZ$p)jmOUlcalvcp2_n z>44ack5DNDQu=3Ivle1&mDEoXmcBKY2RO7i3qBjL8H(YAB}(Y@xSr-=ylYJg- z(NAKp8``zktIFmV$^3L(Qeh2P^wvTS!fMN7W~7%SF;i;IbZ&6VggCQ_zDG104OFA_ zk=n}u_ej4Lf5S_Q-ufer$iUyCOpZ0~8~z8?)1Ub3C_ycl77ek$<3uwKy-n*@mM~Tr zNWr_mT(!g00Usu=iNSc}5w$#Q1Gob^&Ru$uDqHB-w*MGE#5a`{3|xIjQ3&r;r(WSD zF`;!IfgukM`l@rjU|W-_p=fVkU|$!iT~&lEP1FMS7SU@at*@qFdljkN10l%k04}p= zPPqfRO(|)b=&6uZLJRE>depKhiWTg^u z)S(R=*VSnwx?iUm2O&$Gr$^(RBQu=w00;w+o*(7#hhOUzA(YlVrt$+I63Qm?FD;TW z5KI(RUqVeq{XN)XaK{%W_rzj`4~kOhwj#NLZC6n!n?>V?j22-1NW>6f@W2z#b0PVMkGm?X5d+@10noL@l?iOIXb9HD;^mFFOIAVD!kRNGtNf=^ofj0>~n2=3Vk7yt29 z4W4RUs=AZ|9tA!u&hlFV&9zRP&K_%K+C~-aTc;;!5von&PI+^NJbWlzBSr`chY5ZM zF?Natlhxu?3YwKsQa-PUsQ*13l|kS>7ypyzE<{FPWmYgyQS(ya(VIan^2EZUr3bZ@ zWtJ3`;!(?Pr=O%mg@~$j$FFAcs*)93LyN0;0|1hafD7v#{EnVHRWMT*Z5=J0oXm(0 zd3^Etgu$Gy)lA0(y5mRtPtur>yi{<^XR6VI=;T8B?9kh@a?3yIU|EKjCsj{-yW&y5`s zT`O--&#kmq{0T4jl&&NDZ_&qbuLe?BXx;jrDYv6=xXjd{jm%E+GQTNm2-N?|_GZRUrv#Y(xO!{^)S~wNRWRji2$%sXZgh2F3JXvCAIXWonL{JI zUm54vjn830YIpH_%Wa#ke8hpD{}afB^43LNXJY2*_|ese;8{2m`CnZOFbZ-+?o=Y* zq&5BOIEaU>{(`Kj`#W)eoGWlAixAr5gkjAbJGzOaPVv-Vs&+fLDeZ3sJ(13TC{{u; z{|5>@&#cdbBYKiBw#9>@B#Qk{I*hay%&jki-z?S~QT~HuS_*1nmf5%A0eVhN>!VTF zdxMxi4;p6wxjKrj@-HLeRZq{rK=}j1@HhR{F(Re|CXWB2LZ&gUG2vm;S&jNUz}Iwr zA@7(tAGGNw{@+7+dr>6Ox2H+A9#3xAI^j+!BQ+4(ris~?h=0i=b4-C$gG_l&5-huZ z5r=23iqaiz67k<7`NlYZabXzaZAKDw`ZbbKW_FH>Byul@jzCy^DyXkHS$Q@h1qoD< zf>Wo0-%2WT2r9n9ECf)q_DTJ#tRjn4Ow z$Ucx(bZJ|*_O9Z4NK{m3l5axv@c`q0lobnp*nV85(lw=%)V-12K}O*#E{VE%ycpMk znUg-Q$u$c|Oe|2%s@oQbqFzjx&7+2Cr0UT(U0C}>h>efx)Fvf{1)s64XvZD~^@0D9 zR$OcleGu}(|2PP)U)x^$=J?W{|9a)@A|WV$&=u)nU_N zMzAlkR|>u5m0iO+zy>plnr&5ih9du~MD`Q(Mf6u42fDsg$W??aP35Ndc|7aqBr_dg zT3OZ`wf!p3Wc7cg#JuK(=DLI+nZ_C&ELGnE%#Y5ZrIN4eA{SUL<}V@y|D%TNFMCCo z&H4}=i~CKl`_9kF3fc1J5z+(>I#8W_(SBBub?N4?`7b?p450PuvpnM?Yst)@o_*Xj z6S7p>L_Zv>HmG_LD3G*#Y1~=0itz^R8Yiee(fd8&*S`IXCexo^$ObcZ}r9 znXs0qulI=JC1^~H6tzGB&tkX60++m9Z~w_E%u>AsW5}!YzuR+)-28Y+-vSV*iCef_ zZ#O44MFc_F*x1R_!$gP2{di#GoQQl5zcEJD%R?~hC)oS1GFckZLk*L=yPza-j$KHP zV#r*zPXMA4{s((!R{mNc55{_Zi@`5SRe49F!U@SVRAB4byZqn0RB%% z`?86>tCV7CY5;99(L4!?a-ZTeTfVDDX#*w_G*Fz(G3okjI3>C6Q0Td*s&&Z_S!Dio z@SLxl__ODgf`8^5T2H-+XLwY?|4UboM$28$!yJkBC5&kfe4gI&-uj=NdMGR5Pa4N* zqTKa^4zV;m1tS{@z(@a+cnW__h)74OZ?Zb0VOECu~iHP|;`i43NEKQwH+wA6FRWRzB-rB&d-|EZkvgeFq(i(qe zKDAm^)cbLBtIe6s99nrCEuO0zv|uGq1!(C}ac^L)JV^AecB*G|j3O~rpLPx}))VgX zGl}f6Xw${IYR!uhCk0Ub6k2wfe9n`KxN%1!K8U^bHX;^qAqAl#ufd3(h$BrLFlWE} zXjC6u>OyknT`GN5su?K7hA4cI351Adp1rl7n}=%;3%r?+shf)?^jD9bGd%!{FO2l`zapJ zZ7Mm~LXlcQP&TrrNx_ChqxcTUar%M4x%p~w*!EI7;<0+KE-tmJwr~8qi_0Pn_ZM^( zS@d?*LKwg)HTKzaH^(=@_Oa~-I6Al(+?pfaWo;?>xD8K}C=RT41nw^SA|jQbRuM@D z0|tn%dP!x;&}&NaBND%Ug33d;YYQK6-;EHbs7k)zkDWcc zi{RIep`t4$oD+3w zC~_6KN?ZhTd-j1ui*C=E7xjJm;LkoIXDw!ial6Z~&ScQ)d$v79B?+!ByDBnmY-?QI z-&jCuaev;nbYASoBgW819sAPMnH9YQQ;Id2@6q$Gq~4^{Ni{TYg?)d@t7xzl0Ypp` z^+TGc!wxKr_cEJimO0I(%?WRx?#W>%80iQWOQUl>%t}VgtDp%;g-nyU=N&_&Pv`o6 z-zv$;>|Wz{GbzdJ;`x*JR_@!@Dw6%+o>Rs!?a_D{ubaw5|1jxJ_%U4XPCJoL1X<_2I3o)HJYAVX!8=JZGeV#m!Uwdf1i9?>YVh;ELMSvDg>y_oj+inU z5iz%bCiTciBM0OKqb=|wPM2ZqfmvFH?yk7GBkZ6SF;PY8vi59%B}8x2Ss*csB}x1~ zKVnBIv~8Y5*1Vy@LHQYkw{X3_c$8fi4Fi@0o7?DX3D81oZir3lpwp$a{y^#kZ!m25 zRSJ#Yubp~Q5mW#NBF71favrSuc9yl&gG!J(9F|_>{#Q!`yoHY=sws)zF(d^5_rLo? zvHj1=P(JptOd2srM?^6V8d!yCh8OjHvTM(~U|RD9HPXNiD(`^oqU z%_l?-03kdG)ql%5shUDfWJ};d5JMT6Ot6Ds%Nw6|YJ5b6IFu!Ye(YB^GXzQ)J zz5|?>eui5mXycy4$P{waq=1ql3^C?yVzMoYocusksFLu&$Ta_6d%{BL z+*8G!XogJfz7f{`;a}U8HZzi~VLa(qCzB-vASh)dZRXj_G&-3{RQ+wJ=Mv#8wX&X# zb0qPWYn5P(TDA!sRmM}3k8_XwB@@h<*OB@>GN7A7>x{6d3B{jwVq>CaPHz4*-*iv+ zEy6P0Vwdk>+nzM6NEvY=NZ~^zbqIuk}`@YILN3j=HCLMUR1qjmmiVDN5Y?EGBL5nG31}MZt?E zWIuWZXWXt{UZp!2+1X^c#{nQ2SX(AN*{_aHq^<&LBEUR;(~*I4%1cElZVmIAZyP0O zGBO)~ek$OOig+#ht|K|cRrUQz0>FUTsnNSGr5YfcSO^1hzCB~(@D;X{nYvH!sPWP_ z1#B;QuW5X2;-*&!?O&9>ZFz`SyXxWT6odr=Aq1iePRzW}O`4sbyL6FoY)_KIn9^oL z3O3Zs;ksV*99W~R^{D97O|7nrTouSwlM{UZys%c++%#~&?efhKu#c^uS5?Xu z9~zf&-BGWWp9b_wbfIxpE1lRL!}eZHQVyHs5!K@TilJbft2rhr!#iKNUM^U8AUvR- zPbB@%<7(UnVyBFpE7Jj1^eJ93)!<7C`Tbvo?)g5SWx%u}JS+eel>2m(UWVWfZ-G@% z;J24VZnNuhs%!3xSiiqNsA=x01dTY|dz<-(JHuOGf)oL@0tM^rP@$%n)t>o@o((kD5{!LT#KU$?MszBKtX*wSYSWlzfvY}D)j|J)tJmO` z|2Z#WuY?}Czv3f4(cx8{$R$#2{B#!+i}F@fF8;k1fa7FUjqo6>W#yJU|CORXr%WN@ zS~Ot&A^{}(W)*dIPlM;AZH^TB`SHiJmL4gN8Nh||{)U?M0LLjSfR87t+~`wspD);e z@0BaNE!bXk#S%2sx90L~C@7E#&>9}d81@2)!MX`Gd+L7I7f<=wOJ?} zO&p=^(7HHAxhMc?6u~97X%$kW3z5cgfvodPLgHr=fF)LFD@|v>Wi0;!2_+=Pq^qd8 z;JW4;5I}H&-Opa}CKCP2Fgg8K9ij%Cy8N+DR3GgY$z1s&%B%-nyNHJQ#UQ9 z>hn_1E=kMH0r@+|ymHkN2BIuGyKq9z%ur6fxeXaO0ZI6a-bynd0u*g|>Vh%&fYa<} z08r=Yb4q+)985>PTvO|If%MplYmfD8V;*pNeJ9Yon2b?Dapid3bXL<7#)`w~Wn;&0A73ONoC6q<5BiYt&Q zt0fr>_MwV5R+JHWhTX8(*0*3(9g5Nr9B3=@!95R*%9BP7C};s9A9lGfjD#WSVrl_y#L2<{EKRDo;CD1VbgznIc5$}tLXp|lUT7(})CxaRt$kW)Yu zxfTPn%@CnBY=BI20Nt}Zc2t}yqk0`z7zk=K9@EK9E&(tO(%DSk>REIsXoXIHUBOyn zLVYs28XQu$IixjLJ=5j$1jT=dA0oC@nU9RZoS00mbr2oO3Ds2q)cuIo%>>6PqBSY_ zTy_D|0{JOb`CC>cVYzivXaJWvkqeOuO4llVo;SH9?;mPwFn(TN(?Y{qX~xjIoZbj0 zTGy#aiifX5L7K260X56fQd;a@OoZOeTChxNwR8&(kA(}Tm*p9a8(uvkQFuIY%tuF* zp!+=~Gzu%5(lHq2LTqv?cmn^J1sYj&xXn!o~8cT&$bAlnmyM1%m&=&g!ZL{ZBLB6nWU zT)otE-@t2!`_?$dVG=ac0Ajq0(6bl%>rWC1NI->jz|>*~yq5rN7amFMW?z$ip*nwX z5xqn@Sutl%K;#Iao^6&TWkaAArn>mm33ho_L+HGGKaPnJq^2 ziKV3>bljR>J=wPg$y7JX+%}YDyH}{>BWX-51K;&a?97dCq~f8P0Je6x`Mksk6dI*4 zzPBBvCJk=lxOEOED8`2cv1^%|!_5eS*5-GJV*uXhkOCs&vU}m5=#g%1;e$}VaXmvh zdX_r{BtzjRo=hxpNF=^VZ!1E3T914LZ9Rxl z7`n`Z#%1Q`32O(V!-2vT7P1*0o;-~K$O4&!8Ie6@k}^GsaY?w!-vkUnz}YG#^WZ2^)af?rdR8+3tfbp&*Ogv@uF!!DFAyjPkT zy;eBFp`5LixbgN3BY@4=#N3`5&#;@hTZ`Z!0Xh+Y>)yF|F5UFSh;HGRX(G2^SLdV( zHKQ}Dx+f*?!S?>t)`JG^@eK(U(QFm0y$EQH4qz&{^=Xp>RHc|XDTKj#(!QCJ9~HY4 zvYA##pfDmPmhjWwH^7pzbY_LnGIrX4nGrphOltW=)8?mT+U=U3WX%Pli$5UX0$dfy zEia)h!%3%4&50GA&`#KMskUD;#aB!6>X6F?se`S!H2{DWp<`)(WG6XZ0(^~3Nh+>Z%sr%q3q1zMYWH9I#op-k zD}U*xi}+y0eLKex0}4E;dak^oR-JkTD1A|s0Cxbl9%9kRRP|uT|F!|IcnZY#yu}(> zZx<_5eM3Dd^`7Ju1>b)Atq_$&ys#V21dt`*2s$s4v*lIn+l98VA3gBbVxn{<9g8ng#`%6Ds z2E+BMrT)LH3dF0?%1MGUd@q_j+F-LI?3rO7{4a+JZuCoN+Er}10Zs~j%Vql#^GB-KPI(FItTK&~WPO`Y!}`wEw4yq5{=fB14{N*3+>h(b z`mm6=6gS=S!`{swFrUeF-$mMd^=*H%3W2fC9*UU2>ZV!!z7e6ZA8g1nas!Q zdZ%!G#(oy|LQ&4NpPRk zcT)20cQ7}7$PAAaxDe^8xY`hrTD~tvDi+I0LULgRG;;!+;O965^LKi?ego3pfo`&` zRW}Unn-*5|j!n%gI;3vcUoPk^s$~1QD6(+5c@1{h5nZ$aI?(^^QGInyDmI=<)^da2 zp)ob~694vg963=@{K8yov8uGcbS$~$-8u*jvvz>UPnoH|B$z&^&D9~Al)P?U&>e9D z`x;(@k*dbd&lGz1?GgH4LRD$JIcvWVWdk;|LY?-8&0+Bkx#4omj0uqE0@!H#eyqz) zw?yW5pM~+e$Z+uiYhfTl1Mgj$c6O%)dT(#>v)AX4p1au$;bFh1_i)O?g!G`-lP>qh zs(|eQ=f!rr-h@`nf5C(yKc8Q4Z593?2Dww-qd(`-&A$UFSyf+&g-cNS*r;SFc5`?* zgbV!h{|mo}K+N;k-tIKb1FUL(FuzT%p3V7_AB{q`0oG|-G#X`nRLoIKY(07N1p#d9 zJ3!UBt5b6?I!!F(({EZ*@eibZXFQ_sO7AG|*`6KYL-y?Tb6VajF@|G8_pWPD)G)>3 z3wHRR=q-Y_3Z4snNNk+5FTAlyXGpX{6hcDck=Ccg&;#a`WddqP0iFfr z__cc!kP!k{+t$R)j1yGFIG6!fme+sQ)NwYoar}a6<6C?wv#aqcX2(dNjNtqn5mp0) z^nLjI+IQK4iFBC0MOQ^z8GIioo`RQ`&`k_rU4`!%?@wBM;Pv|#6KDWFQWCBcGu!c* za?N;PPYx!_8NIo(Hw;Qf*AkVndc?m#I0m+com_>JqN1%hD<$)Ysoxu;S3JwBs>`$x zqrhLnV+o*Vaeuy5q}7p_f@&Ke2tZkkfT&r*>V#Qa`?EznUFVHSZhOahHkcJ8n=)!W z79-l-b&>r`#ySMES-EIwDf(%;l}^KCEr;t?p%#Ib`Tl2=US;^|?}j{OYAy&zEjc;U zP|lqkx&~3xa<{&H=#i1r`_qB7)MMg<;hT1kqyl}`5T-^+{?ptmE@JA}|MU@_(NI% z97U`TeeoAM6zHmolO#`$0)hw7iwvTHCk&YfBEdfoQf6ug3+I?gr0HW>5~%wZ*4RP! z%VIRK!A~P%YD>LS{k=}!a5tqKJ8i7eNFuNAWFutA_n$7lLIX}9G+o2qvgU`FK(STG zPElns>nfCMr!3Bt56di1C4{+sx8b~G%a2Y}&dh@>1n`!7cNnDPtX7lB)_|Wky^YAQ z)D+x94KFu5edD?%<$uqd>iXIiI@LjH^B`%aawq}<=95ytjE?)-#4Q-uJ68JxzYDjT z8!UCx1VIG_WfH-e;pUauxvf1O6UxB4;RL6ljWssyu@vOwd&ujL#xl6z&SDgLCcUIf z{TYg}3kJw_jEbqDmcu{*5ZVINme7(mVft=foU4ZP#LjsQvA|L;44b3tM}Dg4!OaO> zv3EmBw+%*qFb2CYMcf3+cWHq^ur{_!$6K^iaHPDG9D3;do2@r(xkA-G6Q3JV?Ms=I z!vEpW!l)(_B;F4_A*^mv*g$W6FM^9b_16%L$b5<wO$499*$0_{*u9eJv&wk3r;+XBbQBp&C)~e*g%Jwxv_p1i>9dNmGMI%) zM3Sfaam)3L_`6NQ=Jg1%eQqzwtFQJwq9Dy{7g~fVwnu1&K z&YQ%k-RC0z^LX17U-rjT20v6)u&i?YW9tI?6SKq9`{4IoA#eF7 zK8C_<_?34ckD zB%UVvbjewAIrKrc#n3DJzl4g4@-(TSU8ma&XimvzD76PB6dI~fj?M1d%TKAg5xhW8Qu-trsM(YVaB zqn4zdLi_kIe(&UHA-4x2hb1z(w@uH2PwxFj<>4SYKBUH+0|J(U`U zDz+x(oaf@T!3m$Y*^`&BxGY zfTc$PS&Gv;OL%a8(SCNmANWZrjD0DkmW8oVg9T-4BaVDf|j_2mt-=n ziu?x|LSQ{?*m3b*5P3e*N2noDqhHU)w99Tq!29`={RkR~dR~xshzU46|MLrT`E~YK zI?H?ZK1EnvHq-cPJaH=&2k!oN*-Mm@zmN*D_k2r=%0FTGAl(_FKIaV7)P2?Gdwtvv zlf*OZS+t9`75g=kPgir*Q1SJ^CK4(amXQ5gq&1HOt^Df2VV>%oi~mGdH21oa>8n-Q zCVGJhHz(lqx@cVeJ8W&m+2k>oBN$8X1)Pvw9I4hmn-_k!=I#SA>T*vd zbGcQ}g&v0$i1MQXzOc8heW7FR`qhz2jNy!aM5+`K`w`sA7-PAp4BR%wZG&( z8-R?|*FIWca(0FheFjb%O}IEi_&+;oq?t$Yn$V^iWzKbDdEUmi26wXX>jCX0<#yoBY z;n}>)&_tfCyQ^M@=HkN_A1!^N5I@~-I`~o zw)h@b{FaL5<88GPGHMvn4(=RMfK<)B5025Z%!F7=-8e7@ORww=|Hfbd9##OEI%{u< ztBI8#!MMT7CM1QKi?y_IjL6n)9NFA9WzMH7P1O)p7N3CbJOpOD|MEQx)Jy;5 zDS}sgY-8C86Z>W08MUXF@y={6&cY zMhSV(S4^uRepneiJ^N4|fyp=RIynRIxuTYtGX#OD)qdWnf^CRw8+CF86l=sj4d$cc zWRRkAX`3Rg+88Yzce;gLSqNz|prqt*3P)5>hM!B>Ko8m3*Z2lA3G#aY8`>~tNPzq@ zyJWTeZLNY14QqwsdZ~+_(-2Gi;oFoj>&CEN^rq@#3zT8fRN$6IS5=!dgGkr5dwhP+ zIb&(+Wtu13wM=|Tp)B$-0w5T0IBi4ZH?A3Y{eggiNGx$94n2DkJ@T3?m=N)ta|~`y zL-_jiv5OJlkPKKlSOin{tu(M@j0L05wY}(a>AZgmC^?d)gbv=OE1z9_4grwENu@o| zjQI=)>>HzisU79%UeOjNhNi865W?mbpNf~CGzH8!9U=zh;yLoxd(z*m=xO@v6|R^7 zE)Cwu-#$d?r?-=~71#U$)~n`b6!8I;av!#mYWnf&3$R_P!yu){bzcD@#LA0ufytAI zEC82Y=E8GaAD|1{{T!@WOTW=(g2nvDwUBJmTC`&qlV1n-1CdrATRpbJqK#1l&zamk z<YJ$>L*jvhR!^(Jy;a@G$4EkG{ciwl5DmzA=Bue#Dm%D z(3-+q{tZp0g-?#}K|)-CI7iiKdR5G>_fLaS_8WJ^3&M$#+&hX?uA{;ZPo-a%Eyq@i zFnrkg^zIxQB2Z0ef-J|k^*sGWr(^j~@O?I^lIw4|iFi76A4q!GW^b1p?O{wuMbvpl zd67Uy$!#fpM$?^Or`-kjlp}Er+7Q6bJvCF#@3L69 zM)BRRAcTft5f^?<@#ST66tC=7`z`1;&(Mf8@}6T0N2(F?M&YRy<5$I5XQS5sO@Wql zbb>y<5XD;nP3HT#?^f$)Fk-kjf8gFWsH!v!54w1{m@!i^JsfXfQ2Zm6VV19O+tK1T z(Ri%%;DrzGL6WiCOF<^zGMv8yAy(hvL;!m2gw;+GH+MZ&`PZ0-L?VM{5@7G5bBj?U z*jvx}b07UW(T+(s1u(7CHD9$ya^V}v%@+-_bT|MCu^LO=tG~32Ni&YCWP|H?ibe3{ zX)pGTn#HZfT)Vpy^+TC^)o<#MLRly4gFm+y0esq1R)EY9$Jo+Fym*Dk7eSuy1 zUanixyiw8UgE~dNs729Ni|C94H%6>`^kIoJjv-Zsp;ZLD;or99{I!FQ8>;YB8E?(u zfp>rPZ;>$M`OqIkWmu1Z9_==rVDr=Nk#8GItiUVf6pMi_2HV0ba)VVsKoE9%Oq@k~ zFm}4&S`oEq5)P`I+0T4YExm^zGF7&1%DwkquO50SL{te+m9RAY~#+X!&wuvMe~ z?$~$QNPb?L9tN}Fn$>&sGeGM zRMb;(x2+`y3)0wr?!+3y@6Oom9N<`Kw;y76XZT_CTLM=GH*Qlw|&E@kaD8YsuaBwV}megXV#NT@Z!Ijc6Y>IpMc` zJ8y=kjr`xva?KO-YHu>dumuT_K21yt$dK|)VtBsh97^``daRi)JxT5Oz5Fr=Wa)3) zTz~*n4SVOk)khNCjDRfWjYwfZ$QZyz6~$m}kGVCsRUcSRZ_Rax5`S^PFfXoEo0^bD ziC@OWT~Qy|(UC^g@f_x9;k1Tz-e!quuLYtB$RA6h9L*|1SN=f;oz}jdsFaE45b{&* z|NZs}J-A$f2Mkd+w;IgzFLjpnf9w`x!u*qUAaVri+DFYtrd?5^|bD>RP{Z$_~z~lvu-|!l?hDb8v~LTKN|`78cK2D+95GZf?O3Ww{Sxo^gsz(w#F?DAiNbRJ3pp37 z<|F1fjIJ)Z#8y~Ze#b3-b$#73;%eLw&O&M)I?~~|`$D_fUuw1Z{Etd@Kx>Dwmjf8) zgzZGFPL`6^A%jHKeG&|jD%3(jxAQBk`-++0wOw#kM%sQh{1Q9mLJK6O!&TZ>@19RLL@hn$xlD@pj zSw%A(zV8q4`Zt8@1;&U2B#ig?Nq4+WHD+&Fv173cZz!02dH72KA!uurPEfMCnIzBm zcHcpK*Tu&3AwFt2hy8$|#P@m9@8u&E&v-CW+~$6Qn4%+Wia}j|)(?bp!F*5Qn_BGh zt8_Vuh_s-s?Y&E?Nz0-<)R7aJ*8VB?gMFipZM*PW8R&40zI~0S7$(*Sj$?6bm(K}C z2ZQ7*sHBUG^@d6eS=u8ZS;0;dJiXd~mpgwns+*S%*-${D6Gp!r4Y(O>W9PW>kgC#b zbO`|2*k&T(GWTfvcTD7zy{nkjB6)=zznu<_ zmD-56&Z51iys-VsbW940U#o$~x+9CH*9cX07iAnQ^whq`(Di@c!h6hQV z8sP+FcU>Zu^T;kDmx&XrF_7oczE`0yIyfFtQVz&2Zas|xT$Mr4ciAZAd%0I)OhvJl z599B#o!;A7=KVW0QiAnG6y~(80qIB#R@NsRxg2T+> z4eN(GJ%I*e%?}+#ow(a3(=-4&>c)8_T(m)DO9PgO;oPG=`K zIUjI0)s-Y8evlJgmc5h8+EjKt*U@EUJ*;n#23uX>m-~exBau$J?!MP3L%m6kdwcl= zUuc7=7oJt9HXq1_7i4I5++WnUa_1E*ja%gC6IScK(6)FjMRmEq685t0jT<-hU=`#O zq3LCV0A2F~URZDM4b`NAlUqzN{Q$w@=g@f#luuDqteZx1U}SrCsqIIwn2`BPidQKx;RNYzgor02Uv>WhT4S?qL8n*|KI%*~$>x%z+!6=Er z!rtv<2y@ki`lx5W;;rWQm-NYsd2;=DD3&ocNP`lo~5jcPjvnmQrt*dFJO;bn1cJR#ueDB+&M^-%82 zSuYadZ1LYfZ=>)JQctA%&tC=eQ6N1Ss2{4cw1-PIlg=%%!|Jqwe5HHDO|zKxMT1|K z=ZVHWd&+7xrL?-R@*BpCjboDtc6ce}Up3%?DDY*uXKfWz*7K@U|8XUJGICZ)+@ zaLIXlEc*6R8MW?p<`#!GSw1oK=vp1L@^l-}qu?#z1NZ57L}5#3GB78z6VYB{pAAty z9;kR9%<_|t$}DEtiXy#q7%I^p@0PwLT~|Kt{PY}j=DD^P6d(J6Sj{;TIKLD(nzZf0 zr9V4z+r8er+1hY)jrkWQ*qRWB&tKe!>IWSc&k6_m? zHEMnsskcn;k08x?b>tm&_IHrfNSGvYRaDqhdTtv{WM+CBw|NgpUS^Ja#eid+V ze_+v3Iu#NX8pq3oYz2cAQSi3!G=fRHsVM8JbQ2ZuLzT>4TgOz8S$tbfI3|odY2|h- z%kNuy3qq0po5t*48$zm8R&tt*P;LV;x;-Su8+)f`cG2|hbd+QrM|RWTqvK8PcYxY3FPR zuP1Z#&I{-KKO81>9Z>NWR@}F>NHT1YTQ?B|QP4aEHf5?$Codk#j9GNbj9vp)Cok$8 zT2fcK37TNZ3(P2Aj5)t6!WC$Pauq`!tdk1+4E*=9XO);DD1;7bMOT89o`3nHaMYd# ztfKs)%D$;XYZgvyV-!LxPIs!BJRIoJtJ!h>8f-DnUDWVV4Q$m5AF^xx6c#AQtoy7A z+fd`3ZDuw4bKhScCPw#B1vYu1nW0ikPFrdhs|o)X)S@aN}R_C!Msl1EL8i_*)d@m%L*g; zC&JJdKPRaz^m78H>USB{IIMpxU-bKu7HdDo9~%J5@_~dcIsCwGv*e%qGk;?}!_X+| z%gC@rpo%#rw^t5`^4Yi5IBrXczfP>15~1E>nMg$Zh*DS*=v1t>7P(`i32XWA?vrfY0w0KS+M*mQoFyoF>Ng zXAG};fqxG^3HO@v9P9cHcKrw&UfddCNBPy*`&H|ZllVSIr^99~5;ksc#<|f~KckYH zfTqV`bD9aXc|zl~t1Tv#>}%2SpTk~{@W6vg6&B8er9d}9`k(;a#i&_g}QkIEd(hz z#)t2zD1em`pMN6&`|iH%#z0jb8IQeu87?CeQ%MYZm4I8}*D$GL@l z*^R3G2Wkq@L;X13H_YTaIQ~0il2#ROo;N>nY0K?Z;RB&-o%zX!q)LFuveIf$OLtZe$8k;H-Om&0C^$SFR$T#zd$WU+3_8cC zOErvL_L8oCQQvQQ@N8|g9*N8m&cj~ZvX?Z0c4&lQMQ1yvg=B;_Dqxflz`{c3LBC&9Z2Ei!AYs>G!C)flH0{Fd{i@tFH#;&Tk5~ zy$TU&?z}(kA#@R)sPEj7;CRvtt{{;te`}+)gs+VHolW`~NMP!c;czYyPIh*F%6b@i^bt_X@qe zgRU9Z+Y=KQjrVTMrf`5BtG*yr9nQ;dgZ!PMlFarTOX85+3Ej!6>ZO^LqO9{0^hV9J z`8QyEeBd=2-a?p%pQ z%Upavvb<}3oYGTG*^){2(BYu?TP}Kv@FjLO=YsxAru2g)Aq%-9l7iLlLWG{}LfsLP zQ1C)5dP2JCQ!y*`Z*YJU?9OX|gtW zVYWGH54D|zXtJNu*?&E!wild)!`EI9TX$28pEhap1lfJd&-GVuYv)U_E#Enk_P4gP}8wP?mX%sgd66s8@B~=<2e*I0*OSQO0@-K`m#ZQIJHSPSH>tIoOD{bV;u& z>TbgbxV&Iu8A6R{;>PLq)w6sZEk5pl9$>9~%;u+Vbey&)$evdu^Bc+E$3?~0Rt{dd zLDC>4Bw(l~Cp*w|ZclyY0sSWRnaSD151@sD+Nf{EJ50^}2X1Hj@a&t8 z(EkJB;6~ago@>0A`}#TbR$1|Mt%*y;M;qobUfHhoc4P-nE4~UC2WyNdVt^4DQX@-0 zl-ZoW4WIrV;r$Il2tt5PW>Q9^E~Kyj1EGt_YTEarW1g15L}C~fJ2ZW|ZfDeX-TWOb z-S!uvve0>6Xvppiib{W3W@#2Zmlf3vHZ;4EqM+&DXQ3h}M8UdTvU2^;zF2R3^esDb&vD0OxyBE~pVqUtl<`BHaMg_YD!kHShi>V{ES zd$VS+%J;RCxN;2^S{!e!zl>oB>5!$Gs{o=w-U4~=^YRCNf_?qhx#guzn6TGtq(|5+vik3K_ z9OFl+8!}+8JxTz`!fIWI-)guYLG?e84wyi#t>G%F6G@t4A~UU@@tZUsGFfr$?R;3Z zIqF2O=rt8!HorEP=QZctas{+#h_-7{6KEID$suqn-*Lp2b@Q+Go^hZsk@+<9dAJ(j z6ZDznM@+|`qWjyx6xhg-J-$}`>@Bm2l+S}zSK33E?dz{N_%H^lv9m4Nt6^e^?UTe! zVt|sT%Ffjt8`4*NX>d{@Kj1!Lhj6RsgNmi2jV9DnJ`w&tNT%@A#3vX+!@(&hG=cLs z+Eo0mGPIi3Ti~btakOE#% zIGV`BjT;GyGD|e(OnZ@-DvlZIx;bk<_W0)mCDS}L+6Dk#;}@BS2a^+*MD^zKPF)z_ z=>wC!y;&PXIAzpY=zW}!dPCvr2(vSPvx(ZNBraw8mceY7A!q%;VjgQz-M%xGUwEtN z>FP^b{EQ2~fMezRUiftelBg7 zxg{0-i5hj%Hk>m?-D%8hI?gokvyd+~r(Cjukh6V#iAOw-<@VahsZ)_{zF5>KeU~aM zp%C_~%zTF{wOulh8n)-a6~j;U;XopeWvk;*4lCZZVxiN=%C1kdPY7|%>-(dVV~Xc; z^u)`!8V$4|Hvf`Ug%gC&Si6xBDZbp zer@!LcBBG*Tq&dx+0$jItd#u9Yyr-_1qaJcb#Mv1>5kR7~HNvejgX1+wpIOG2?7kIPJ1HHjqqUd& zu`zBCINc82N0665$Gwds2nIVMe$Tn~HK#F0-VlbuV|of1OIoyVx`2zWcXCXBvsj7X zwQb<#QBu3?L92~b9A#=$V|H^90$DsZ!Tuq9Zr&^ ztI=+^2N_y%3_fYc+WtWMO!xNoeE+Qv#`IZ1W|&=bcxipF(K|+Yf-_%AN#1t-`8yJ% zLVFzruU8x`0oJXW6vr;CB!x=57{I|`>0l{^=SQ77LVlkEKN2;5>qi54fykSe@`m5Y z1;cWs>X|h9W{>TK(Ypm1;)bJhn`+nRdFME3iDjV}P5<=NmX2;#775fJn@;`nCZ-Ml z*T)cA{@1|gD&qXAitdkeq8$C@PtYMvrrtK*Etk3pBf7S^xD*rVdxP0%v9t;0XE$m0 zH?x#!%26gH2X^>6Leno?kxnopoG-6#9ON$W=$MxBreebpu-9rPyiKX6D{5cy@Kdd} zvMiAKZkTtoIb*W%VLF%b!@Jj!9!Sgt-e3W8Lf0za;7vvBvS%t;xWs%voIwm(xW);! zL|zlFc+(^_u5wIe{2_lkY6wkVtEAfY9^TjyyUkb`W0ECbBBX5#FBdUI-+1Zdi5Fzm zO_u2ctI#v6PG{}IHLa+sK@VrgaCed{+gN8=ESD2H(lBeg@FX_NN8-=i4fgBu{6L-UOw3t7x1H(dTI)V zES#}@wcr(@(VS~A&0L=hw=R~SR^d-~5m?MuASk*i*4fHVBH;b84=b74K&4CYjM?Rs zW_eHV+!YRJ%xZ{?%)xHqj8nBzqI=n?+Tg9tnP{&pSH6-ThA9t<9HcHhup;r<)l1YFm5 z?hlCyrhVPyUDR0KP9($N-=|Kyi%dfA0!0LD~ic@$LfLLHKo7$qY-&vxn*L_G%e z8N`MiL4VK}PZ3+pF+7%;2m5Qr8tVjqd{9tMdW7HxzCZ0EkTKChenG~cQ-%rHuUEWx zHua^9!r4qaTc10d7sY97uRr6K-gI^qKgF z*9Q2-5zk?fV8I7RrST3!iBJ(;&DYg(=*>J>LT>=gGe>Cmk=x`0nz+{9ss9AAB6vcHjk|D{cBvcsgQ^bbm=oMQezQ^(C4luTCyY})X5jjBz8d~) zr=URyvwvjE<>_^-YSn@g>fBo&UxxEpYHAkjR&;5f z7xB%bMnnBX0)Ro}?@S}>3He(GsR?Z6_{<#|8FHJxP36$fhN|vWPsE{uX^YW-9F(qE z9_3!(?YZ$&wo0o&c#&db)DBlkWA!bXIMCSkDbAM=6w#zV87$UQ$y57!MW%%mu(lgO zIl_P@$6|9vS2>hghyVyH2Y|U@w~jB_>8l`*eTF_^Rw7q3a-aQXu79Ml{J2jXt`M;; zjk(KUCx&x4a}j_C3m*uvK#-?JVSE#|Ugq)~vTa;L zi%50w%J(C6#vu0}SjuH+$M1879@iUbV^F$Nw7@{)#v`EW1Ilxr*!$aa^*dTs*h~=S zQRdp>{h_kf$1yaZa21X&yexA(_U)SBq8Uco@H_>HnPJogEDweqd zo+DnBRjU`}#hN1{mKh$&f%3GYJz+3gpdF;pceKIMYBN*DRgR#9-%R%gP7 ziUTdi+}9^)$l%;JdvVfuT2)TZCM$nC64T)6pUM-}OAIv_RI5MuN8PO$_1UvD>3tK& z|NXoSp1KhYj~l980Zks|3p+3Pyq+Q+>3giBe|AM3CF@kuM4u5K;E_Tx8XKxW;DaoU2bI|Q9U3e6=XLffYOM4H#`MbTpoF9lQX7<7NVk!i(8uyu zfIG*gNLKvQmVBe3CYUX->m6rY!OFMQ6@L?N^E7zoXtCL}k=QULn<6nf@N8LJSBis$ z+>2W1@;)tB`633jz=fpYZhzH2e}GkT6R=1#F+3-+e2#Kah7y>BW~t#hsZ3@TeVb(l zk`>~k3IxGyopN~o@4e4570td^mSn>@-}LaD;R)b=81bwpHWUU{b!X{o>$Vh0GZp5u zz=Mew6#laG10MX`J1PW_n7?J(qc)dVHya^W$R_6Te9UoDK$!Pn0}*T_llQb5hQq*U zTeOKsVNxwYZLr!mYE2>S938+nl_X?tA#=IWE?#JqA&bXWi5stpqQ&|nftL0z0W{tZ zVGbZ6E@;?Ad5Z;b$kx^rleuMPn^cL4@Yq)gVVnHM7N0q+IyH@wE^!NwGN(FhoiJ|w8bVR(*8?iMJ-3>#ieGMHW7s0`Is-{oA7g-|C zKgiHwv=;(0^j8C-UP$57A5F||L~oF2$AV9b_v_BW6{imVk6$vt!(iVg80!K% zVl7P&G&TZs^;R#V=-3+=P!Wgxw;ex6zY)ATCJek)EL)Cn7JZm$=FQ<^*$wGKt2F)G z?U4#%(^vZrWnS5VzdD_!U?F+8j%IKQ^&9cO*qrEp-3Bf6YEn5(tVxoO3{reYjSIk< z&4Jfxr1|h^YxqVo2c|{_Ch*!3EgCbjgWlr#!A_>Y8u&@+3=bRC`#Vc!@dJZne_@nG zo!Nh&C4sUZHPCp_H)Hbbg)F(3bM-sn-v@%Kv%jLD78lDG}e4EBb`elA+gpxc zgP+p3GTm3fp-(*;3C4ngk~0!PdK?SCZnCZ!poRK;l$;sGtak*tH(YCQ_DFM|BYNMis+Oxw=&wum zPdIsi>j2}EJ$IkCg>w<8?>TknM+3avI z2NyU7?!|T4yn4(65VRvQxL$oA*| z8ke36Z$%J%{*F4H^QQ7I&(9^ z(^|9aR#(Rb&tNe1FXvWTTIKA)5V>Z?FtETdY9Gca?GKhV>L0CGB4BZpNiHpy-%n^Ag*`18{+LuqKkDksiYpo_}2?xXsN~H-kIf*cP6neIWhWPQ)6jSJD4_ z^2Z6fxWB#k4N{;xxt*<`AKZluleq|-vE~p6^2P_MLFtN{^{)F=xqxV9D|s={u9W&z zxZel0{TjA-=?n|gnJ`5r1b&j`4NQl*pqpm~T(A+h6j`?*br-yYu*5GS2P$;9`0F>xjNl&;p7x?BXpC(l#U8fd zbu%JK2cl9ld$LwhF>bRm7LBNWKP(h*5kjDIrp_j%erbZ5Z`tQ>>4ZKZN9#^itj&ce zv=v-D(--c!4Stm;jl>jS2lVjH#mwO5-+yJu;FP{o`ib3c{^CRBurIdxP~2! zVt~BQwq>4UP~59TPt_@$XVn6RIX_xvl3znl!;av58a1Vi7!ww$&AH5V^AFG_!OE_{_ zVpUjJ?>-o21CzwY#;Lq>8m|HSx9+N*^uWS<#~znaCvGAJtBolCF4n@Th06OOOXXjp zl!ASaYd3gC7ToZO%Mg^Tsde@NQ`WUDIdNo`y$-Dg!T`KXQ$NDK~~sa^|l_ zKSFxgsic&(nLZ+_zlkQ+Zn-6f_waRuYVT7{BFx%btGf6RTCuAu`0yD1lN{Z~7$~zC z*uE#w@!e9=gfP~KZw(07)9{K4>^*3+7x>7YgkS}?{%S0~QmMz1HsmNfhC2pISb}R) z3)!~rw z-UwnAr)&$@bOYwR$m6Z6#m&x9AmM0ORmO1Yl{7`EX2|41?l13~kg8yxtDDr%ZA1X?`UML5}Qd4g2 zhkq=Pm{ndw-bbo& zHBv`8L*Hw|f>ug4Z-u1zG&;ZM0;z9tGvY8ciOVkCB+mW2YsXqR?mp-?=DwHyjhq>O zmMUdMr5ysL(!F?LdF=f@>}b@98Jmd^R-zOWQy z#Ye^@-;EV&!`@J1-<%@yVU$5Cu+tPkA=GK9z^kcHmFTEcYJ_*n)(kCM3m@@x_Po_- zukVv7P|vw>{?sjnS#(kq#ik9FZ13Xl#RU7C*Lt_Z1*zN1$KetSx2=iG4TBE3KsoD| zS7kfVg5GQCMjPkGCvr-_@jP?Pm zAZRA4MSp+%+vzMuCl$EXBsU<5L@qRmUu{+oEDGL*oJQFYZbo5<-I7MJDdV>oS*KNo zlLI!)LOM;Utp?S{@M;e7OeOr4);%fzT+{SHPU<`am6MRa*NAhW3e7(bL~}_?WnBuz z@%0cg{S#oeJVy8E*5XxX5j$66cHaE!SA_!b761b?uSS|_-6BpVO&tQ=W4q+V(;5NWLqfZnYa8=tZ|+{gzowv&q(^x_ zJ#4v^=U*6dINt#q$GUffO+s4<+H4n~&j|8>op0<6=+*PPuf{q|tTRd!a+nnUrBkmPyw*nWehEG=9 z=Wq?-%U1q`4K>fO3-+Pqct72SbuJYI7>j}5)mlb21myVP`JZ8g;zYM><~D56q5Er+ zOjFT3E*IwKDVw1`)lMNlQt~FVZ!_UupYO^K)dI7>Ttu?zp3k>2rmAjl{5Gz9p%KB( zh#9(FVkCb>`gP6B+UONf{YlUTuu(Bp{7KyciE!4Y`&r(o)!(`k2;NU*#_#kM$4RBa z=l?FQAJE1%0{ZWmUqSsJ>?RRGMT*}z=8MW_7np-X=3Bkvm+>VIg_hB87ka{r4gK4t zsl){HT4Z-8o+xRvCk%dXjp+WNN~W|8Fhj=q!S6XbOF`U+lofyC*dql36}x2Z{CvG_ zF--D&UaN^o_ZmL=wO-gaiO6JNuem}$L**=#5oDtzCKo!GuJ3Eoub7;#x(WU&ex7cX|_4P zfpZ3jrsNqXc0w}~IvBrdke9qTd)`P!{T;9lvHUQ@^6|T*AiwP;A9X{lC{B{BpBODz zj?z`EyI#m__gg4T)AdxOL%b8xl$~At4SylwS=^H@7=)^?m5^?y0Y}Uxm8Is|Xo2Kv z?bhT{j`ZSKHyQ1%;da|2x7}mm%Gdwy!+z3X#LairbHAOny=4cgHlbNd6@|3f@w2uH z2eMqB%!i;zQWgq z|Iw_OdyDC8gsR7F&wyYU*;d3;)q~b6i*ZF?rA<%e)H`*!eV#JlcQQnQQ_QdEB7M{~ zU(jg~>DLyZYf{N2Jvu$OQ`@=tets>nAUu@z&fkz-Xzc0@+o&XW;ti_1LPfMPB(%6hVmM~J&_vrXLb6eTWg(uaC{^(+y{2L?(hyjw)GwxkheyR&eE~4qiCnnE|F>BZ&3F|0=IT)Doo)Tz0I_??)}UAiAkT`faLN& z*iZNYi&y^Voz84n3f`LTE|e(QQzw%0z%6^>rIdI^6m7ZZW4jjA1S1d02GUdp75;vJ z7+h5Yi|dX95*D|x(bnZ6+}0{rYpVC%3g_)3N)(N!t~D(D1A`{|(7E=(ej-xZ*VSXe zf8igL^91-fd(>%23Tfb~61{1v)+LzL;n|jvDzewV3cHazE6_5KhX*Qb*pXS(*TjG5 zhz3X*y`5mj^?R~WO7?TYYtOIWa!GjGSqJNe3WWN>J@vroC~$Jjcrjp>m|kGlN7e4D z_1W4#W&E292sh|m^g+kv0z{6DU~E(4wb07xIng_QZ}T_<^GI^3I5q7rz>K_;QRLOu zKD%$PSPzYf^<2yHFxG2-9X`|TY@Qxg{dGMJbIK=tkc<&!XN-`u#rrL2V-r^GXIzom zBL6AH9U0B}1OpoHuX(1;bH4T`&$r5mYn0 z3Z|F)7*-lOz(FlOKnG7`GO?4eXZGu3W`f8~P~)N}JGV=T@M7wy822$yGiGOHc|5q~ zYIJoR;YdGAZvRW|LUo>B%I9HWn+6SNEkmPEr9E1$x-Urp2-yKaxR*Vy92{5CT}md$ z?zjG!3s3w!P92xk|FF1oY4Rq#oyHQtxo0%mcJH2nv-H&I$!F{uB*b#9YsN=niqvQI|3RiV z=0Y^T{f+9@W%YednBRng(~HOGE@a>OtFlJ)+)FS-3STlHot<|Psd++MCjFS9Af6o- zHoVAhAYU3qNEW|RuS)DGb6V8uDxr#$%V5B{YdjeCs%C$lCQIl1%uU#ELsE{yimPv5{8@}I zy5zDOGZe={MUK;}C$F$DL9n5|?V^}T>4U6+2z-!vDTbzPtIlO)4M$gLi3O|G_J(%( zUgj@)+#qEBwX;FwiYUo`IHIB^h#oRyj+snpKoaVcj;rv~2>I|2{m2aym6n zy{fcVZ)-=dQ)TedEk>9n5Sd#qL;-$oE)pC8s#!a=Cl65Iz8Y21OXtgSk(-2x_IsqLVMsy+5l{DQAKyIe}iYX zp%pg{Bjd3b*HqQ_x^ao7I0lcR$MKrN@ygNAS5G&OfLoibuGlW-b58u_KO$Dplm-oF z;L)t}9oypU1M@E*H_s@=!^@1WB|HTG)xtml z^hiYRrx&^OV88mS8ThmEq;o4F#;R*62944~WLSehz0{+e5fw(G*)ZDwnCh!qkPK^a zQDw6AEdijs#U5DX@#!-R2bnG>)E8Bb=;x{>NM}TiaxvnJSYlS*N$scBk}2=vZedus zaXY|#I0UFR&cwFp_cZ@XZ)T%82Sq0Y53~LBkg2DdSOEgZ@}~=O|J;GpZot+P01?h` z;`XNx4%hcIpdzE`S(@Ux@IhI1&v_+F#r!~m~pdZKE zj9-`U=T8T$V3|n{Db;(^jzJf!vv4-dzNeHb8%M~`Qjo(okOni(si zoOX5s?Lrf@G?zAGf71jWSX4D;hom%O7G7)`oe=ZkqMwKOf&nS%eP7`&Kxd*Vy717| zo~_%(()0q=fl62yG|v?}%+KF=3n-vkz#eXKlAerIEY3vE87>{_U>VJ+>G+IPP=$mF zu`7pxui~t|2GuV)FGxu5oPIHz0qu%zy zOjF`4q5)O=#@^9M-%?Dh|FEMVo=dXC#{>YfdsuOrsYCi@cX-nThxuqvjav|Rx!B_w zKny2T<}JHljXpd>-&^NS3Rd7L0DOgD+`P7Gqw`iw2HW26$Q|5mAJw z`F!qQuGBoCM`oIvppFFa)*+n{c^wL)7-3Sn82N*2mc1G0z=7c@P~}-;#lNHf(Ec(x zFgtLZnmp9lAqhr{-r6S_L+a&HAs7Fm3Un(F5MeqwW7$+!z3;d}J*_Gcw$~NKN7!+`%RB{9NCbso zgLM+?a+t9RMdfBb?`i(!!70Zb6$*LReC1lM2k*aD>b%SCpA|})=x#aj3aF2pCQBv z-LITHh3RVJUrUEp=SAHuY)l#wQjQiFL`UpZQK>Dur%mpF}x9*+?zU-O@?liz8F)xw^ErhP|$*gu#c z^)*gUzy>&nOqSCMWJ%hzCA=*dxDrl9^mFk}x0NI>i#f8@I{f5P%VHl4ME9yeCnHta z^zq8h_lLg;apP+WX$x+~O%4D4S8#Eg%9f3Q`HyE9Nf{z=YbLeJ_=3eV7_O`Kt~?rn z_zn15I&Ah{#lJQvp9_X94K|fcYA9vX(YvSqcj(&^bNooAxPQ`4@+tC_!Iah2w5HBb z`8T*#Z1`Br5=bt<41S^U6N?YptvWI$%KX@tZ!W9^|?)MVoJEKgou zaouB#0^CB|vGUoXqVQ?E13U~1BWpEW>g>flb6#$@j&LO|I}3|wEh+Ea>6^XE(Jl+ zi-Et{Z-;1LFZ4>t7sdFbPe-cXLOaXx4e4!tRSUqCk2{`ANOA|@?^Ex1FKz_l)2H#V z%Ri-H*mpoa0RM@$tUx>BISn7Gz3Rh((?eyIk>>8ERLzC;JXq9Sb>nvPBZ5C1gmgiwEKBHVFyuYeVd|D}BmmBs8sN3<;wg%NK*zwkE7s&J?#Z z*!xQVLCjFpVsU?nkTn=B+Z4Q>ZjNM`ef&|J7wPhTkfzJzJHsfaE5z+z4m z9Mo%Yu*#`>Od(C@0@mHBwCw&L=+H>w);F`sfA*4B`fQYXEoHvHh_7r_Xlo!-7kMhk zE{4ICZd^k3#jJa}<6;)CP0p=Qp#Kth?EX}Aw*n*FmWrX8n)5?G{gpNX>)PR$*@!ph zCgoxp8t*hUz^8@7?uFPi_m;|OJevRs|0t2t64Qf+j5-Bn!SY1oH|)a===5TsVu`@^ zW{W>^Qg^vb(44r;?Y^ihah8Vyc5~rdB%Ro^C~lCu#;3OYLi`k;2e@7aEn{TxBm7coNm(iwkzG2sQMY{)2|xbFfW03z-zadyJhXXFwl}ds}Uv5-e+90zm=a*(624=hrKYVp~&Zn*VRTt4unjt;R25V8^>-?A_)sf#PX3()u?ubmv3CGKm= zKlRVRo~q>BEGvHy+Eest>JcMH28)Pq#1vsgD&e*B>M=4FY3g+$CAbR%>H3jbe34JR zWQ_SlQQ;UsvHo91XQmQhS~DZZlV_K`!Ug89mj2w%=W@+RrG)X|OtE0MOg8t@E0tio zvYF9X#Hv!9!QkI{-;dgDs(-B5#p&bWT2_O0(!Ab)c8`T95`39A0dosKzGHPpIqUx{ zN~ZSD9vp`2W(5P1wpQ`kL;m zGGHfiiy$va@9&98dOCraNGko;H;BIbfGT+K730>z4+(u#nr0vgLrRA=aIHrizVoVK zdu|wA^(|{G^va8mQsj*fqU4nBUYJ7^G$lRYgIC3%_$|YKuyF|;mh>cBW-Q8)^|#{)8F^R_v72wrMZDUzI$?? z$8j&1{ttO9YjLPi!bBG|v}a+{s`@Wvb2_^mu>n8ae{=fc)_z!-&1@pXCvfBVXB;0{ zKzq%(k2oR-&qM`4si`D&e!@3dDEkpas?xF6GR1Oa?*Ng`?jc8)-nuqx$AWv}G(ba_ z_qRQxxvHoC2pg^0J1kP44c|Ct8hYYG8_Y;5#^s5)0Kfi z+$QAJKfsoVg@GjmE*OlHCeguv3bLIgOv%NHuVer?L1b6Z>tVQnOtXt*f~iD`OT(Gl z_Sf}<5IZv$e@H%0@ND^6o)1&T7wQ;lhio`w+L;lRLZtD?gX^`K#jj9dhoB4Owc(48 zs{sNi79SFbs|#^l>HIn-NV@J%+c*osfjRP6>G%`xSWm=uR)*(0MH-vaFRCMHXqZ{V zhO0fv;ACv@oifeXM;9ezbgb^UaTQux#uZ&VtKx05#kL;hNnWFqztKFi+6)t$ipfRf z^l)yaKdEcf-4mu@1RRKoru2SaYxlKRZkMgO1^b8drOk|**cpZ(aKkd2{IM+5NyP_U ze8(U1GH+!8NSDnbEneehM4}5~rW6r4cqQLzR^_@5Va5@rV z6md&l3>v+Tu9gG^VR;^ko7047MYPWINR9PtRk!Ex>DXYD4KdsRtmX0N2?w{1ld`Y@ z>h9G}#o?@Jpqjc9e9=vIy>K?4 z$pV;6nYyF$B^}Pb$`cw?8I?2Pr#q4T7oG-Ecct%eZ7bR)J*UR$W8&OM9Yp`ErMA#1 zjasXO6Z~-iC!LXF%OXB<-oGX@l}r>-O76&g>fM`sovvVJ;DfB%ID%*I4w1W|T5!6N zBRl15&Xaut(xfndCqc3=aY81x+H}cD&#|d%YaVjr`zQl^$`vin7z~mDt{mfV9Ha>Z z;c+zDh>k zX9S)D0x0}_5@%WZznehWnvSQBq%dk`jnFM8W za0DSLT_EBTUAkR8oA^E?Pp{=hYLvDs$+Ed>qejEyF7^2di49Mu43Z-SR;m zCl~$EcP1Lwcmy%spU2uAK@ow!9>G$ax{w>c8D(%%wuLG)hnWyFhOf$fz% zy1zK4C^>QM{QbuSJ<6G61%VbAo9i#-ZG>zS05`zC?R-4~f}t^0TZt-`!$DEfQa_w6 zj+6Bc7rw_|ndDHLtZ~(5Vn}}?I@2V=8!yFLLy|{pW8kI)Z-*S?iAyPty|uqqlji8V z(m6>;sT^1*_C(~!*Re|FH*skfv&zjjI%w!w-mX|=6mm$ zzej>WiOAlTFN?Yi8o^FTQ74BlM5c#_LtSr;F%nwo>{k^Qhj>A5fA!3udsIRYXr8m0 z_RqE5bb^hyOvhwEK?~nk^0!(*BOLD%-8 zH!5$;ss;+|ING^qUl;QA!slg`ul!#7ci&0IMC844N#=J`PUlxa^#He>Uu8N!iQz5{b*~Drb$+To)HqzSL|o7X>xP z;>7vQ$fVu7%wXT#E%JU&x=~DhLE%RS2H1Ddu7CQ9TT@(aZe$}`kH<}bG}F8#|8b7J z%lJ@LLtoLhgx;ziH4aA*Y)T0`=8gvg<;6~|7{aBL_*m&el_}H|2>@W({A8V-d3Fa6 z&k!(%awx|ym;iDw>$@&P&_zB&i@sKQG9ZZVJ{2Gkje~!2nMd`XLaINh8!;CO>Jea-XVzqCKk|zvd-?GvL?YXcgORU^EEo`g|^?YsQ&CH z&r^*3)|K=qaow6G}0UY!mPXabh%p2W{Br6t&1qg>&aCFplA2o~3Wa!{z7XZFe+ zo%^)HD8FYkYWZ8?rJ@cZ98(B*VxAVmoj#DMqOUocwCGNTZT*H?LL+}*w1PO_<|QY< z5Yd>H(D}%1`a{1HofkxpY*gCW-zPx)nKb-(_|jKtiqE4h10M7>gX{=aIYF1DGlleN$-$_@4XJt+|^< z{3ubHg)XDE(>Y|d#l#&jaW|XDOo^yKKaiHEK>b{Q(riy3DhQV>{pNLtin>`V{o4rx z9?AH{8q<{+>Eu?=YyCy=y9PmBCk_>H3K}f_HZI!BFS7O&J+pU#P&54DhMt5#!oAXC18 zF1WIqGHM5U*x3f)R^F>bD=Hjp<`1vMt>@o8oa1+yBZ5Qcq32=#%rp6@x${8 zZoAsEpSe0=T|f$-?8c<5fu=tC!Ws4Qk(}_5oJRZ^t;bZ>LPUPNCb9tu_~INBOnoEA zc>MGhNx`tWU>E%=)gT~q%KRPD2&X%gvm{k*VZUz>rdyL{*8I zLye96{I@z|rS-TwNELiM56_*wsZ+Dy7M2Oc0{0r=N3M`YX2%;l%I46?Q9Fl3$qK>K zCD;L0lg54cW3nG`*h80rs_6>zKS(H@dc2L5|2i96oK&yky9SwXJZ z)c@UDx967JT1EHJ{{r#|4fmI@!HL-ap6ov}vOf>HLwW@F5)F7ER;Za8HpW`#efY~< z=lr9p+&9b_s<7%tT1@HFG!WpGF@kw9B>C?yR*Scwis1K_+VF)~a%yJyKP2DBfPr<; znVgLXOzV#TZweA#9(jG^h=U64Z+5`&LM(H|b`*ab00V2CQlpz#@3L6021qm<2vibb&DEEo5fVED6Dl8%}t@fo-p{zI)Be8M-_j|dB-tcMS z`O`7(YC}RU0#k)W1g2H?WlHK0C(a5nSeHQV|2Fs&v22u5N|A6{q!7wodxvqgPE=u? zam+YjyYCQ8Nl=?kn?#$i9svOTG+9Hg@#O6&<(5&DASd8!T7W97%I1l{ofBZI=9`|j zbPnkeKn$g}%#3|b{J8ABP=(bQ0<*H-F#%4B4(b`iz<@=d7(y4%DFOGaBmBFRs4zzr z77>_Mm+9#7v*%PM(dwNbBqMV2{uF^PT%wK(bCxQs6U-5Td$pu##pfv_A_5xFpoBz1 zU;8kxaUA)|s0euRE>&13Auv}hlK^Wtr@sE5bZD;x1bi}`!sB6l6iLxte9mEGA7N#J z2u!O-fOVxlLhXRT!buQu*v|$bmN8ruTlLAq0&t{c_pHmtgj0`iU76#IbrIO&1)e}U zQ~xVFV0}oVokCe+a75x7#}alptS3`D4}p1iIy2E%`eY5x6sR8ilSE5!e78d8}DOUxZlZ|E{2%qIdTB2#s|<{wKtV z?V@c0@Pp#`6A?J`+4e<%71nc1H3WtXIk8fFvqCJFN-0I+mu$1~F_%(GA`fm6fQ1|M zPP}bI;Jyg3%3~^Zgv*#k7ch~_he*wYTuKqY{N!wqt6O)P;zGaxOcmC-2+Xjx8_Qb9 z%B33JNFGymh&F6@D#S9el#*91K=@l&L}$GZfN>SERAHS#M9kqc zc|ka zB5)U`JvkV6lVB^jn1JZrY$@U4zh;xI_1=3w>PLD<6Xu~epKXu)<+wQDYy@VA(?O7} zee#*hrNr$xY9cTo7)W8dD`hrjF)pS&-Po7Hr|&SrLAMQ&OvjmtL}1!(Iul}w!I>7` zaV({TjSw8lF4*qdxy{8af1O69lq@O67~^Xw<>w@S(St*zo6VAPBSGNG;AMob58_b_u#-)PE=uCg}}Tn4Vj(U+}e^Z z#t!>wv!s+#lGmz!iR`_`9)#+RAj_1%vvPo)caA_`;^rE|? zpBRIlFaxdx947edH_w&y<^2y(TJqBpdYD2L)-~qXKi`n$831lGm1M1Rf1{a{1?q4m zU^fBGxMP5rkqPS!Y++dwhJimLs<4Q_wC&e=#^?>{*p>o<5qO%N`zxkROo^lXe|uf@ z#FV89iwI2H>`WUk0_!)l)SirPzmdJC#Z3yqLg)SSslyk_slvL@ZS%emfN2-`HK>e4 zEcpeTChwozV#f$71pH)%$!jh_nIka_`8Pmb=>H9m^=dG?LRD!!g$A1 z_ap2{3ce#%SeJQ)OayMi`VnDiHLNx4CXcA99Kqi=1dgf~QC|=!Tb@+f*M`DG;06Mz831M?3CW-;Yj(uMDl`w- z(P3i}dXWHY&}C4|el-H~#xy{%-i=`_nC}JpHZo9FR|6FM2z3)Pm}~M5z$TP$Ug{cz z2;78&rvwYwpbBe#;5e0Z%cIh-;nDkkM^!wT$ST6s2+S*^-YgT)bZRRt52qtlB4v5t z)Pd@QdDD^`pbG2yoC6V9KLTg=0OJ}`3D^&G)z_-`jjGCqr*GDrmf9*+SU1FGyfZDZ ztfxh)D6kBw1Uy>Hl&fV*M)gfn;MpUfM;}fV77>`X=Z^a*BFXdm;ISV8`Yz=Rs2s4I zRp5CSt0pX=3X2F#qcvnmCE#HpUe#o=A8=yGx zU>faA)(H@0rxz`+-R?OMC+481@s~128K|PW4T1UOX%%=@NFpgPk@Z9-7y>jvV|}gb zK=cELDNXQKS%-;Z34sVq(|d|uL%D Date: Tue, 9 Apr 2024 11:43:39 +0800 Subject: [PATCH 02/13] sync: sync to latest Signed-off-by: yuluo-yx --- go.mod | 2 +- site/content/en/latest/user/quickstart.md | 28 +++++++++++++++++------ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 68f17b06032..f6309d67f41 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/envoyproxy/gateway -go 1.21 +go 1.22 require ( fortio.org/fortio v1.63.5 diff --git a/site/content/en/latest/user/quickstart.md b/site/content/en/latest/user/quickstart.md index ab03631229a..21eae0859b2 100644 --- a/site/content/en/latest/user/quickstart.md +++ b/site/content/en/latest/user/quickstart.md @@ -20,7 +20,7 @@ so the `Gateway` resource has an Address associated with it. We recommend using Install the Gateway API CRDs and Envoy Gateway: ```shell -helm install eg oci://docker.io/envoyproxy/gateway-helm --version v0.0.0-latest -n envoy-gateway-system --create-namespace +helm install eg oci://docker.io/envoyproxy/gateway-helm --version v1.0.0 -n envoy-gateway-system --create-namespace ``` Wait for Envoy Gateway to become available: @@ -32,7 +32,7 @@ kubectl wait --timeout=5m -n envoy-gateway-system deployment/envoy-gateway --for Install the GatewayClass, Gateway, HTTPRoute and example app: ```shell -kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml -n default +kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/v1.0.0/quickstart.yaml -n default ``` **Note**: [`quickstart.yaml`] defines that Envoy Gateway will listen for @@ -43,14 +43,20 @@ unprivileged port, so that Envoy Gateway doesn't need additional privileges. It's important to be aware of this mapping, since you may need to take it into consideration when debugging. -[`quickstart.yaml`]: https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml +[`quickstart.yaml`]: https://github.com/envoyproxy/gateway/releases/download/v1.0.0/quickstart.yaml ## Testing the Configuration +{{< tabs name="tabs_test_the_configuration" >}} +{{% tab name="Test Configuration" %}} + Get the name of the Envoy service created the by the example Gateway: ```shell -export ENVOY_SERVICE=$(kubectl get svc -n envoy-gateway-system --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg -o jsonpath='{.items[0].metadata.name}') +export ENVOY_SERVICE= \ + $(kubectl get svc -n envoy-gateway-system \ + --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg \ + -o jsonpath='{.items[0].metadata.name}') ``` Port forward to the Envoy service: @@ -65,7 +71,10 @@ Curl the example app through Envoy proxy: curl --verbose --header "Host: www.example.com" http://localhost:8888/get ``` -### External LoadBalancer Support +{{% /tab %}} + +{{% tab name="External LoadBalancer Support" %}} +Get the name of the Envoy service created the by the example Gateway: You can also test the same functionality by sending traffic to the External IP. To get the external IP of the Envoy service, run: @@ -83,14 +92,16 @@ Curl the example app through Envoy proxy: curl --verbose --header "Host: www.example.com" http://$GATEWAY_HOST/get ``` -## Clean-Up +{{% /tab %}} + +{{% tab name="Clean-Up" %}} Use the steps in this section to uninstall everything from the quickstart guide. Delete the GatewayClass, Gateway, HTTPRoute and Example App: ```shell -kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml --ignore-not-found=true +kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/v1.0.0/quickstart.yaml --ignore-not-found=true ``` Delete the Gateway API CRDs and Envoy Gateway: @@ -99,6 +110,9 @@ Delete the Gateway API CRDs and Envoy Gateway: helm uninstall eg -n envoy-gateway-system ``` +{{% /tab %}} +{{< /tabs >}} + ## Next Steps Checkout the [Developer Guide](../contributions/develop) to get involved in the project. From 0a5e9f3e101696cc744b80c183027cbd89c29416 Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Tue, 9 Apr 2024 12:04:40 +0800 Subject: [PATCH 03/13] fix: fix typo Signed-off-by: yuluo-yx --- site/content/en/latest/user/quickstart.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/content/en/latest/user/quickstart.md b/site/content/en/latest/user/quickstart.md index 21eae0859b2..2ee678bd014 100644 --- a/site/content/en/latest/user/quickstart.md +++ b/site/content/en/latest/user/quickstart.md @@ -20,7 +20,7 @@ so the `Gateway` resource has an Address associated with it. We recommend using Install the Gateway API CRDs and Envoy Gateway: ```shell -helm install eg oci://docker.io/envoyproxy/gateway-helm --version v1.0.0 -n envoy-gateway-system --create-namespace +helm install eg oci://docker.io/envoyproxy/gateway-helm --version latest -n envoy-gateway-system --create-namespace ``` Wait for Envoy Gateway to become available: @@ -32,7 +32,7 @@ kubectl wait --timeout=5m -n envoy-gateway-system deployment/envoy-gateway --for Install the GatewayClass, Gateway, HTTPRoute and example app: ```shell -kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/v1.0.0/quickstart.yaml -n default +kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml -n default ``` **Note**: [`quickstart.yaml`] defines that Envoy Gateway will listen for @@ -43,7 +43,7 @@ unprivileged port, so that Envoy Gateway doesn't need additional privileges. It's important to be aware of this mapping, since you may need to take it into consideration when debugging. -[`quickstart.yaml`]: https://github.com/envoyproxy/gateway/releases/download/v1.0.0/quickstart.yaml +[`quickstart.yaml`]: https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml ## Testing the Configuration @@ -101,7 +101,7 @@ Use the steps in this section to uninstall everything from the quickstart guide. Delete the GatewayClass, Gateway, HTTPRoute and Example App: ```shell -kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/v1.0.0/quickstart.yaml --ignore-not-found=true +kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml --ignore-not-found=true ``` Delete the Gateway API CRDs and Envoy Gateway: From b5bb85b99076294e369f7b6c34c90b77f0c141d8 Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Tue, 9 Apr 2024 12:17:24 +0800 Subject: [PATCH 04/13] fix: fix typo Signed-off-by: yuluo-yx --- site/content/en/latest/user/quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/latest/user/quickstart.md b/site/content/en/latest/user/quickstart.md index 2ee678bd014..242242854a8 100644 --- a/site/content/en/latest/user/quickstart.md +++ b/site/content/en/latest/user/quickstart.md @@ -20,7 +20,7 @@ so the `Gateway` resource has an Address associated with it. We recommend using Install the Gateway API CRDs and Envoy Gateway: ```shell -helm install eg oci://docker.io/envoyproxy/gateway-helm --version latest -n envoy-gateway-system --create-namespace +helm install eg oci://docker.io/envoyproxy/gateway-helm --version v0.0.0-latest -n envoy-gateway-system --create-namespace ``` Wait for Envoy Gateway to become available: From 9f20889339325c3c45ae74dea0c6bfd17a600d99 Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Tue, 9 Apr 2024 16:37:44 +0800 Subject: [PATCH 05/13] fix Signed-off-by: yuluo-yx --- site/content/en/latest/tasks/quickstart.md | 12 +++++------- site/content/en/v1.0.0/user/quickstart.md | 8 +++----- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/site/content/en/latest/tasks/quickstart.md b/site/content/en/latest/tasks/quickstart.md index 8c149bfa57c..0ccde55ebde 100644 --- a/site/content/en/latest/tasks/quickstart.md +++ b/site/content/en/latest/tasks/quickstart.md @@ -80,7 +80,7 @@ You can also test the same functionality by sending traffic to the External IP. Envoy service, run: ```shell -export GATEWAY_HOST=$(kubectl get svc/${ENVOY_SERVICE} -n envoy-gateway-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}') +export GATEWAY_HOST=$(kubectl get gateway/eg -o jsonpath='{.status.addresses[0].value}') ``` In certain environments, the load balancer may be exposed using a hostname, instead of an IP address. If so, replace @@ -93,15 +93,16 @@ curl --verbose --header "Host: www.example.com" http://$GATEWAY_HOST/get ``` {{% /tab %}} +{{< /tabs >}} -{{% tab name="Clean-Up" %}} +## Clean-Up -Use the steps in this section to uninstall everything from the quickstart. +Use the steps in this section to uninstall everything from the quickstart guide. Delete the GatewayClass, Gateway, HTTPRoute and Example App: ```shell -kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml --ignore-not-found=true +kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/v1.0.0/quickstart.yaml --ignore-not-found=true ``` Delete the Gateway API CRDs and Envoy Gateway: @@ -110,9 +111,6 @@ Delete the Gateway API CRDs and Envoy Gateway: helm uninstall eg -n envoy-gateway-system ``` -{{% /tab %}} -{{< /tabs >}} - ## Next Steps Checkout the [Developer Guide](../contributions/develop) to get involved in the project. diff --git a/site/content/en/v1.0.0/user/quickstart.md b/site/content/en/v1.0.0/user/quickstart.md index 21eae0859b2..63c163abafd 100644 --- a/site/content/en/v1.0.0/user/quickstart.md +++ b/site/content/en/v1.0.0/user/quickstart.md @@ -80,7 +80,7 @@ You can also test the same functionality by sending traffic to the External IP. Envoy service, run: ```shell -export GATEWAY_HOST=$(kubectl get svc/${ENVOY_SERVICE} -n envoy-gateway-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}') +export GATEWAY_HOST=$(kubectl get gateway/eg -o jsonpath='{.status.addresses[0].value}') ``` In certain environments, the load balancer may be exposed using a hostname, instead of an IP address. If so, replace @@ -93,8 +93,9 @@ curl --verbose --header "Host: www.example.com" http://$GATEWAY_HOST/get ``` {{% /tab %}} +{{< /tabs >}} -{{% tab name="Clean-Up" %}} +## Clean-Up Use the steps in this section to uninstall everything from the quickstart guide. @@ -110,9 +111,6 @@ Delete the Gateway API CRDs and Envoy Gateway: helm uninstall eg -n envoy-gateway-system ``` -{{% /tab %}} -{{< /tabs >}} - ## Next Steps Checkout the [Developer Guide](../contributions/develop) to get involved in the project. From a692269eb7ddfca2c5bf690f64315bd0e42cfa31 Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Thu, 11 Apr 2024 13:10:27 +0800 Subject: [PATCH 06/13] docs: fix Signed-off-by: yuluo-yx --- site/layouts/partials/scripts.html | 55 ++ .../_common.html => blacks/__common.html} | 0 site/static/js/bootstrap-4.6.1.min.js | 7 + site/static/js/dismiss_banner.js | 41 ++ site/static/js/jquery-3.6.0.min.js | 2 + site/static/js/popper-1.16.1.min.js | 5 + site/static/js/script.js | 489 ++++++++++++++++++ site/static/js/split-1.6.0.js | 3 + site/static/js/sweetalert-2.1.2.min.js | 1 + 9 files changed, 603 insertions(+) create mode 100644 site/layouts/partials/scripts.html rename site/layouts/shortcodes/{common/_common.html => blacks/__common.html} (100%) create mode 100644 site/static/js/bootstrap-4.6.1.min.js create mode 100644 site/static/js/dismiss_banner.js create mode 100644 site/static/js/jquery-3.6.0.min.js create mode 100644 site/static/js/popper-1.16.1.min.js create mode 100644 site/static/js/script.js create mode 100644 site/static/js/split-1.6.0.js create mode 100644 site/static/js/sweetalert-2.1.2.min.js diff --git a/site/layouts/partials/scripts.html b/site/layouts/partials/scripts.html new file mode 100644 index 00000000000..1c8dce0d65d --- /dev/null +++ b/site/layouts/partials/scripts.html @@ -0,0 +1,55 @@ + + + + + +{{ $jsBase := resources.Get "js/base.js" }} +{{ $jsAnchor := resources.Get "js/anchor.js" }} +{{ $jsSearch := resources.Get "js/search.js" | resources.ExecuteAsTemplate "js/search.js" .Site.Home }} +{{ $jsMermaid := resources.Get "js/mermaid.js" | resources.ExecuteAsTemplate "js/mermaid.js" . }} +{{ if .Site.Params.offlineSearch }} +{{ $jsSearch = resources.Get "js/offline-search.js" }} +{{ end }} +{{ $js := (slice $jsBase $jsAnchor $jsSearch $jsMermaid) | resources.Concat "js/main.js" }} +{{ if .Site.IsServer }} + +{{ else }} +{{ $js := $js | minify | fingerprint }} + +{{ end }} +{{ with .Site.Params.prism_syntax_highlighting }} + + +{{ end }} + + + + + +{{ partial "hooks/body-end.html" . }} diff --git a/site/layouts/shortcodes/common/_common.html b/site/layouts/shortcodes/blacks/__common.html similarity index 100% rename from site/layouts/shortcodes/common/_common.html rename to site/layouts/shortcodes/blacks/__common.html diff --git a/site/static/js/bootstrap-4.6.1.min.js b/site/static/js/bootstrap-4.6.1.min.js new file mode 100644 index 00000000000..50720eadbff --- /dev/null +++ b/site/static/js/bootstrap-4.6.1.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.6.1 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var o=i(e),a=i(n);function s(t,e){for(var n=0;n=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};d.jQueryDetection(),o.default.fn.emulateTransitionEnd=function(t){var e=this,n=!1;return o.default(this).one(d.TRANSITION_END,(function(){n=!0})),setTimeout((function(){n||d.triggerTransitionEnd(e)}),t),this},o.default.event.special[d.TRANSITION_END]={bindType:f,delegateType:f,handle:function(t){if(o.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var c="bs.alert",h=o.default.fn.alert,g=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.default.removeData(this._element,c),this._element=null},e._getRootElement=function(t){var e=d.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=o.default(t).closest(".alert")[0]),n},e._triggerCloseEvent=function(t){var e=o.default.Event("close.bs.alert");return o.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(o.default(t).removeClass("show"),o.default(t).hasClass("fade")){var n=d.getTransitionDurationFromElement(t);o.default(t).one(d.TRANSITION_END,(function(n){return e._destroyElement(t,n)})).emulateTransitionEnd(n)}else this._destroyElement(t)},e._destroyElement=function(t){o.default(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(c);i||(i=new t(this),n.data(c,i)),"close"===e&&i[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();o.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',g._handleDismiss(new g)),o.default.fn.alert=g._jQueryInterface,o.default.fn.alert.Constructor=g,o.default.fn.alert.noConflict=function(){return o.default.fn.alert=h,g._jQueryInterface};var m="bs.button",p=o.default.fn.button,_="active",v='[data-toggle^="button"]',y='input:not([type="hidden"])',b=".btn",E=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=o.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var i=this._element.querySelector(y);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(_))t=!1;else{var a=n.querySelector(".active");a&&o.default(a).removeClass(_)}t&&("checkbox"!==i.type&&"radio"!==i.type||(i.checked=!this._element.classList.contains(_)),this.shouldAvoidTriggerChange||o.default(i).trigger("change")),i.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(_)),t&&o.default(this._element).toggleClass(_))},e.dispose=function(){o.default.removeData(this._element,m),this._element=null},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this),a=i.data(m);a||(a=new t(this),i.data(m,a)),a.shouldAvoidTriggerChange=n,"toggle"===e&&a[e]()}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();o.default(document).on("click.bs.button.data-api",v,(function(t){var e=t.target,n=e;if(o.default(e).hasClass("btn")||(e=o.default(e).closest(b)[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var i=e.querySelector(y);if(i&&(i.hasAttribute("disabled")||i.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||E._jQueryInterface.call(o.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",v,(function(t){var e=o.default(t.target).closest(b)[0];o.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),o.default(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(N)},e.nextWhenVisible=function(){var t=o.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(D)},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(d.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(I);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)o.default(this._element).one(A,(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?N:D;this._slide(i,this._items[t])}},e.dispose=function(){o.default(this._element).off(".bs.carousel"),o.default.removeData(this._element,w),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=r({},k,t),d.typeCheckConfig(T,t,O),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&o.default(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&o.default(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},n=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};o.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(o.default(this._element).on("pointerdown.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(o.default(this._element).on("touchstart.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("touchmove.bs.carousel",(function(e){return function(e){t.touchDeltaX=e.originalEvent.touches&&e.originalEvent.touches.length>1?0:e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),o.default(this._element).on("touchend.bs.carousel",(function(t){return n(t)})))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===N,i=t===D,o=this._getItemIndex(e),a=this._items.length-1;if((i&&0===o||n&&o===a)&&!this._config.wrap)return e;var s=(o+(t===D?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(I)),a=o.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n});return o.default(this._element).trigger(a),a},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));o.default(e).removeClass(S);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&o.default(n).addClass(S)}},e._updateInterval=function(){var t=this._activeElement||this._element.querySelector(I);if(t){var e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},e._slide=function(t,e){var n,i,a,s=this,l=this._element.querySelector(I),r=this._getItemIndex(l),u=e||l&&this._getItemByDirection(t,l),f=this._getItemIndex(u),c=Boolean(this._interval);if(t===N?(n="carousel-item-left",i="carousel-item-next",a="left"):(n="carousel-item-right",i="carousel-item-prev",a="right"),u&&o.default(u).hasClass(S))this._isSliding=!1;else if(!this._triggerSlideEvent(u,a).isDefaultPrevented()&&l&&u){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(u),this._activeElement=u;var h=o.default.Event(A,{relatedTarget:u,direction:a,from:r,to:f});if(o.default(this._element).hasClass("slide")){o.default(u).addClass(i),d.reflow(u),o.default(l).addClass(n),o.default(u).addClass(n);var g=d.getTransitionDurationFromElement(l);o.default(l).one(d.TRANSITION_END,(function(){o.default(u).removeClass(n+" "+i).addClass(S),o.default(l).removeClass("active "+i+" "+n),s._isSliding=!1,setTimeout((function(){return o.default(s._element).trigger(h)}),0)})).emulateTransitionEnd(g)}else o.default(l).removeClass(S),o.default(u).addClass(S),this._isSliding=!1,o.default(this._element).trigger(h);c&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(w),i=r({},k,o.default(this).data());"object"==typeof e&&(i=r({},i,e));var a="string"==typeof e?e:i.slide;if(n||(n=new t(this,i),o.default(this).data(w,n)),"number"==typeof e)n.to(e);else if("string"==typeof a){if("undefined"==typeof n[a])throw new TypeError('No method named "'+a+'"');n[a]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}))},t._dataApiClickHandler=function(e){var n=d.getSelectorFromElement(this);if(n){var i=o.default(n)[0];if(i&&o.default(i).hasClass("carousel")){var a=r({},o.default(i).data(),o.default(this).data()),s=this.getAttribute("data-slide-to");s&&(a.interval=!1),t._jQueryInterface.call(o.default(i),a),s&&o.default(i).data(w).to(s),e.preventDefault()}}},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return k}}]),t}();o.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",P._dataApiClickHandler),o.default(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,n=t.length;e0&&(this._selector=s,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){o.default(this._element).hasClass(q)?this.hide():this.show()},e.show=function(){var e,n,i=this;if(!(this._isTransitioning||o.default(this._element).hasClass(q)||(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof i._config.parent?t.getAttribute("data-parent")===i._config.parent:t.classList.contains(F)}))).length&&(e=null),e&&(n=o.default(e).not(this._selector).data(R))&&n._isTransitioning))){var a=o.default.Event("show.bs.collapse");if(o.default(this._element).trigger(a),!a.isDefaultPrevented()){e&&(t._jQueryInterface.call(o.default(e).not(this._selector),"hide"),n||o.default(e).data(R,null));var s=this._getDimension();o.default(this._element).removeClass(F).addClass(Q),this._element.style[s]=0,this._triggerArray.length&&o.default(this._triggerArray).removeClass(B).attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){o.default(i._element).removeClass(Q).addClass("collapse show"),i._element.style[s]="",i.setTransitioning(!1),o.default(i._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(r),this._element.style[s]=this._element[l]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&o.default(this._element).hasClass(q)){var e=o.default.Event("hide.bs.collapse");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",d.reflow(this._element),o.default(this._element).addClass(Q).removeClass("collapse show");var i=this._triggerArray.length;if(i>0)for(var a=0;a0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets,t._element)),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),r({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(K);if(n||(n=new t(this,"object"==typeof e?e:null),o.default(this).data(K,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=[].slice.call(document.querySelectorAll(it)),i=0,a=n.length;i0&&s--,40===e.which&&sdocument.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add(ht);var i=d.getTransitionDurationFromElement(this._dialog);o.default(this._element).off(d.TRANSITION_END),o.default(this._element).one(d.TRANSITION_END,(function(){t._element.classList.remove(ht),n||o.default(t._element).one(d.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,i)})).emulateTransitionEnd(i),this._element.focus()}},e._showElement=function(t){var e=this,n=o.default(this._element).hasClass(dt),i=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),o.default(this._dialog).hasClass("modal-dialog-scrollable")&&i?i.scrollTop=0:this._element.scrollTop=0,n&&d.reflow(this._element),o.default(this._element).addClass(ct),this._config.focus&&this._enforceFocus();var a=o.default.Event("shown.bs.modal",{relatedTarget:t}),s=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,o.default(e._element).trigger(a)};if(n){var l=d.getTransitionDurationFromElement(this._dialog);o.default(this._dialog).one(d.TRANSITION_END,s).emulateTransitionEnd(l)}else s()},e._enforceFocus=function(){var t=this;o.default(document).off(pt).on(pt,(function(e){document!==e.target&&t._element!==e.target&&0===o.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?o.default(this._element).on(yt,(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||o.default(this._element).off(yt)},e._setResizeEvent=function(){var t=this;this._isShown?o.default(window).on(_t,(function(e){return t.handleUpdate(e)})):o.default(window).off(_t)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){o.default(document.body).removeClass(ft),t._resetAdjustments(),t._resetScrollbar(),o.default(t._element).trigger(gt)}))},e._removeBackdrop=function(){this._backdrop&&(o.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=o.default(this._element).hasClass(dt)?dt:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),o.default(this._backdrop).appendTo(document.body),o.default(this._element).on(vt,(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),n&&d.reflow(this._backdrop),o.default(this._backdrop).addClass(ct),!t)return;if(!n)return void t();var i=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){o.default(this._backdrop).removeClass(ct);var a=function(){e._removeBackdrop(),t&&t()};if(o.default(this._element).hasClass(dt)){var s=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ut={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Mt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Wt=function(){function t(t,e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=o.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(o.default(this.getTipElement()).hasClass(Rt))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),o.default.removeData(this.element,this.constructor.DATA_KEY),o.default(this.element).off(this.constructor.EVENT_KEY),o.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&o.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===o.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=o.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){o.default(this.element).trigger(e);var n=d.findShadowRoot(this.element),i=o.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!i)return;var s=this.getTipElement(),l=d.getUID(this.constructor.NAME);s.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&o.default(s).addClass(Lt);var r="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,u=this._getAttachment(r);this.addAttachmentClass(u);var f=this._getContainer();o.default(s).data(this.constructor.DATA_KEY,this),o.default.contains(this.element.ownerDocument.documentElement,this.tip)||o.default(s).appendTo(f),o.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new a.default(this.element,s,this._getPopperConfig(u)),o.default(s).addClass(Rt),o.default(s).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&o.default(document.body).children().on("mouseover",null,o.default.noop);var c=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,o.default(t.element).trigger(t.constructor.Event.SHOWN),e===qt&&t._leave(null,t)};if(o.default(this.tip).hasClass(Lt)){var h=d.getTransitionDurationFromElement(this.tip);o.default(this.tip).one(d.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},e.hide=function(t){var e=this,n=this.getTipElement(),i=o.default.Event(this.constructor.Event.HIDE),a=function(){e._hoverState!==xt&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),o.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(o.default(this.element).trigger(i),!i.isDefaultPrevented()){if(o.default(n).removeClass(Rt),"ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,o.default(this.tip).hasClass(Lt)){var s=d.getTransitionDurationFromElement(n);o.default(n).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-tooltip-"+t)},e.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(o.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),o.default(t).removeClass("fade show")},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=At(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?o.default(e).parent().is(t)||t.empty().append(e):t.text(o.default(e).text())},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return r({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t.config.offset(e.offsets,t.element)),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:d.isElement(this.config.container)?o.default(this.config.container):o.default(document).find(this.config.container)},e._getAttachment=function(t){return Bt[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)o.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n=e===Ft?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===Ft?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;o.default(t.element).on(n,t.config.selector,(function(e){return t._enter(e)})).on(i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},o.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Qt:Ft]=!0),o.default(e.getTipElement()).hasClass(Rt)||e._hoverState===xt?e._hoverState=xt:(clearTimeout(e._timeout),e._hoverState=xt,e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){e._hoverState===xt&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Qt:Ft]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=qt,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){e._hoverState===qt&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=o.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==Pt.indexOf(t)&&delete e[t]})),"number"==typeof(t=r({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),d.typeCheckConfig(It,t,this.constructor.DefaultType),t.sanitize&&(t.template=At(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(jt);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(o.default(t).removeClass(Lt),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(kt),a="object"==typeof e&&e;if((i||!/dispose|hide/.test(e))&&(i||(i=new t(this,a),n.data(kt,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return Ht}},{key:"NAME",get:function(){return It}},{key:"DATA_KEY",get:function(){return kt}},{key:"Event",get:function(){return Mt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ut}}]),t}();o.default.fn.tooltip=Wt._jQueryInterface,o.default.fn.tooltip.Constructor=Wt,o.default.fn.tooltip.noConflict=function(){return o.default.fn.tooltip=Ot,Wt._jQueryInterface};var Vt="bs.popover",zt=o.default.fn.popover,Kt=new RegExp("(^|\\s)bs-popover\\S+","g"),Xt=r({},Wt.Default,{placement:"right",trigger:"click",content:"",template:''}),Yt=r({},Wt.DefaultType,{content:"(string|element|function)"}),$t={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Jt=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,u(e,n);var a=i.prototype;return a.isWithContent=function(){return this.getTitle()||this._getContent()},a.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-popover-"+t)},a.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},a.setContent=function(){var t=o.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},a._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},a._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(Kt);null!==e&&e.length>0&&t.removeClass(e.join(""))},i._jQueryInterface=function(t){return this.each((function(){var e=o.default(this).data(Vt),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n),o.default(this).data(Vt,e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},l(i,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return Xt}},{key:"NAME",get:function(){return"popover"}},{key:"DATA_KEY",get:function(){return Vt}},{key:"Event",get:function(){return $t}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Yt}}]),i}(Wt);o.default.fn.popover=Jt._jQueryInterface,o.default.fn.popover.Constructor=Jt,o.default.fn.popover.noConflict=function(){return o.default.fn.popover=zt,Jt._jQueryInterface};var Gt="scrollspy",Zt="bs.scrollspy",te=o.default.fn[Gt],ee="active",ne="position",ie=".nav, .list-group",oe={offset:10,method:"auto",target:""},ae={offset:"number",method:"string",target:"(string|element)"},se=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,o.default(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":ne,n="auto"===this._config.method?e:this._config.method,i=n===ne?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,a=d.getSelectorFromElement(t);if(a&&(e=document.querySelector(a)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[o.default(e)[n]().top+i,a]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){o.default.removeData(this._element,Zt),o.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=r({},oe,"object"==typeof t&&t?t:{})).target&&d.isElement(t.target)){var e=o.default(t.target).attr("id");e||(e=d.getUID(Gt),o.default(t.target).attr("id",e)),t.target="#"+e}return d.typeCheckConfig(Gt,t,ae),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active",ge=function(){function t(t){this._element=t}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&o.default(this._element).hasClass(ue)||o.default(this._element).hasClass("disabled"))){var e,n,i=o.default(this._element).closest(".nav, .list-group")[0],a=d.getSelectorFromElement(this._element);if(i){var s="UL"===i.nodeName||"OL"===i.nodeName?he:ce;n=(n=o.default.makeArray(o.default(i).find(s)))[n.length-1]}var l=o.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=o.default.Event("show.bs.tab",{relatedTarget:n});if(n&&o.default(n).trigger(l),o.default(this._element).trigger(r),!r.isDefaultPrevented()&&!l.isDefaultPrevented()){a&&(e=document.querySelector(a)),this._activate(this._element,i);var u=function(){var e=o.default.Event("hidden.bs.tab",{relatedTarget:t._element}),i=o.default.Event("shown.bs.tab",{relatedTarget:n});o.default(n).trigger(e),o.default(t._element).trigger(i)};e?this._activate(e,e.parentNode,u):u()}}},e.dispose=function(){o.default.removeData(this._element,le),this._element=null},e._activate=function(t,e,n){var i=this,a=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?o.default(e).children(ce):o.default(e).find(he))[0],s=n&&a&&o.default(a).hasClass(fe),l=function(){return i._transitionComplete(t,a,n)};if(a&&s){var r=d.getTransitionDurationFromElement(a);o.default(a).removeClass(de).one(d.TRANSITION_END,l).emulateTransitionEnd(r)}else l()},e._transitionComplete=function(t,e,n){if(e){o.default(e).removeClass(ue);var i=o.default(e.parentNode).find("> .dropdown-menu .active")[0];i&&o.default(i).removeClass(ue),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}o.default(t).addClass(ue),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),d.reflow(t),t.classList.contains(fe)&&t.classList.add(de);var a=t.parentNode;if(a&&"LI"===a.nodeName&&(a=a.parentNode),a&&o.default(a).hasClass("dropdown-menu")){var s=o.default(t).closest(".dropdown")[0];if(s){var l=[].slice.call(s.querySelectorAll(".dropdown-toggle"));o.default(l).addClass(ue)}t.setAttribute("aria-expanded",!0)}n&&n()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(le);if(i||(i=new t(this),n.data(le,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();o.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),ge._jQueryInterface.call(o.default(this),"show")})),o.default.fn.tab=ge._jQueryInterface,o.default.fn.tab.Constructor=ge,o.default.fn.tab.noConflict=function(){return o.default.fn.tab=re,ge._jQueryInterface};var me="bs.toast",pe=o.default.fn.toast,_e="hide",ve="show",ye="showing",be="click.dismiss.bs.toast",Ee={animation:!0,autohide:!0,delay:500},Te={animation:"boolean",autohide:"boolean",delay:"number"},we=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this,e=o.default.Event("show.bs.toast");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){t._element.classList.remove(ye),t._element.classList.add(ve),o.default(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove(_e),d.reflow(this._element),this._element.classList.add(ye),this._config.animation){var i=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},e.hide=function(){if(this._element.classList.contains(ve)){var t=o.default.Event("hide.bs.toast");o.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains(ve)&&this._element.classList.remove(ve),o.default(this._element).off(be),o.default.removeData(this._element,me),this._element=null,this._config=null},e._getConfig=function(t){return t=r({},Ee,o.default(this._element).data(),"object"==typeof t&&t?t:{}),d.typeCheckConfig("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;o.default(this._element).on(be,'[data-dismiss="toast"]',(function(){return t.hide()}))},e._close=function(){var t=this,e=function(){t._element.classList.add(_e),o.default(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove(ve),this._config.animation){var n=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(me);if(i||(i=new t(this,"object"==typeof e&&e),n.data(me,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](this)}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"DefaultType",get:function(){return Te}},{key:"Default",get:function(){return Ee}}]),t}();o.default.fn.toast=we._jQueryInterface,o.default.fn.toast.Constructor=we,o.default.fn.toast.noConflict=function(){return o.default.fn.toast=pe,we._jQueryInterface},t.Alert=g,t.Button=E,t.Carousel=P,t.Collapse=V,t.Dropdown=lt,t.Modal=Ct,t.Popover=Jt,t.Scrollspy=se,t.Tab=ge,t.Toast=we,t.Tooltip=Wt,t.Util=d,Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/site/static/js/dismiss_banner.js b/site/static/js/dismiss_banner.js new file mode 100644 index 00000000000..bda82628ef8 --- /dev/null +++ b/site/static/js/dismiss_banner.js @@ -0,0 +1,41 @@ +$(document).ready(function() { + function setCookie(name, value, days) { + let expires = ""; + let date = new Date(); // Create a new Date object + let dateToSecond = 24 * 60 * 60 * 1000; + + if (days) { + date.setTime(date.getTime() + days * dateToSecond); // Modify the existing Date object + expires = "; expires=" + date.toUTCString(); + } + + document.cookie = name + "=" + value + expires + "; path=/"; + } + + function getCookie(name) { + let matches = document.cookie.match(new RegExp( + "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" + )); + return matches ? "true" : undefined; + } + + /* Check the presence of a cookie */ + let announcement = document.querySelector("#announcement"); + let token = `announcement_ack_${announcement.getAttribute('data-announcement-name').replace(/\s/g, '_')}`; // Generate the unique token for announcement + let acknowledged = getCookie(token); + if (acknowledged === "true") { + announcement.remove(); // Remove the announcement if the cookie is set + } + else { + announcement.classList.add('display-announcement') // Display the announcement if the cookie is not set + } + + /* Driver code to set the cookie */ + let button = document.querySelector('#banner-dismiss'); + button.removeAttribute('style'); + button.addEventListener('click', function() { + setCookie(token, "true", + button.getAttribute('data-ttl')); // Set a cookie with time to live parameter + announcement.remove(); + }); +}); diff --git a/site/static/js/jquery-3.6.0.min.js b/site/static/js/jquery-3.6.0.min.js new file mode 100644 index 00000000000..c4c6022f298 --- /dev/null +++ b/site/static/js/jquery-3.6.0.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0=o.clientWidth&&n>=o.clientHeight}),l=0a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-us[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f]),E=parseFloat(w['border'+f+'Width']),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,$(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ce.FLIP:p=[n,i];break;case ce.CLOCKWISE:p=G(n);break;case ce.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u),E=!!t.flipVariationsByContent&&(w&&'start'===r&&c||w&&'end'===r&&h||!w&&'start'===r&&u||!w&&'end'===r&&g),v=y||E;(m||b||v)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),v&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport',flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightwindow.devicePixelRatio||!fe),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return V(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&V(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),V(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ge}); +//# sourceMappingURL=popper.min.js.map diff --git a/site/static/js/script.js b/site/static/js/script.js new file mode 100644 index 00000000000..840d76f83ba --- /dev/null +++ b/site/static/js/script.js @@ -0,0 +1,489 @@ +//modal close button +(function(){ + //π.modalCloseButton = function(closingFunction){ + // return π.button('pi-modal-close-button', null, null, closingFunction); + //}; +})(); + +// globals +var body; + +//helper functions +function booleanAttributeValue(element, attribute, defaultValue){ + // returns true if an attribute is present with no value + // e.g. booleanAttributeValue(element, 'data-modal', false); + if (element.hasAttribute(attribute)) { + var value = element.getAttribute(attribute); + if (value === '' || value === 'true') { + return true; + } else if (value === 'false') { + return false; + } + } + + return defaultValue; +} + +function classOnCondition(element, className, condition) { + if (condition) + $(element).addClass(className); + else + $(element).removeClass(className); +} + +function highestZ() { + var Z = 1000; + + $("*").each(function(){ + var thisZ = $(this).css('z-index'); + + if (thisZ != "auto" && thisZ > Z) Z = ++thisZ; + }); + + return Z; +} + +function newDOMElement(tag, className, id){ + var el = document.createElement(tag); + + if (className) el.className = className; + if (id) el.id = id; + + return el; +} + +function px(n){ + return n + 'px'; +} + +var kub = (function () { + var HEADER_HEIGHT; + var html, header, mainNav, quickstartButton, hero, encyclopedia, footer, headlineWrapper; + + $(document).ready(function () { + html = $('html'); + body = $('body'); + header = $('header'); + mainNav = $('#mainNav'); + quickstartButton = $('#quickstartButton'); + hero = $('#hero'); + encyclopedia = $('#encyclopedia'); + footer = $('footer'); + headlineWrapper = $('#headlineWrapper'); + HEADER_HEIGHT = header.outerHeight(); + + document.documentElement.classList.remove('no-js'); + + resetTheView(); + + window.addEventListener('resize', resetTheView); + window.addEventListener('scroll', resetTheView); + window.addEventListener('keydown', handleKeystrokes); + + document.onunload = function(){ + window.removeEventListener('resize', resetTheView); + window.removeEventListener('scroll', resetTheView); + window.removeEventListener('keydown', handleKeystrokes); + }; + + setInterval(setFooterType, 10); + }); + + function setFooterType() { + var windowHeight = window.innerHeight; + var bodyHeight; + + switch (html[0].id) { + case 'docs': { + bodyHeight = hero.outerHeight() + encyclopedia.outerHeight(); + break; + } + + case 'home': + // case 'caseStudies': + bodyHeight = windowHeight; + break; + case 'blog': + bodyHeight = windowHeight; + case 'caseStudies': + case 'partners': + bodyHeight = windowHeight * 2; + break; + + default: { + bodyHeight = hero.outerHeight() + $('#mainContent').outerHeight(); + } + } + + var footerHeight = footer.outerHeight(); + classOnCondition(body, 'fixed', windowHeight - footerHeight > bodyHeight); + } + + function resetTheView() { + if (html.hasClass('open-nav')) { + toggleMenu(); + } else { + HEADER_HEIGHT = header.outerHeight(); + } + + if (html.hasClass('open-toc')) { + toggleToc(); + } + + classOnCondition(html, 'flip-nav', window.pageYOffset > 0); + + if (html[0].id == 'home') { + setHomeHeaderStyles(); + } + } + + function setHomeHeaderStyles() { + if (!quickstartButton[0]) { + return; + } + var Y = window.pageYOffset; + var quickstartBottom = quickstartButton[0].getBoundingClientRect().bottom; + + classOnCondition(html[0], 'y-enough', Y > quickstartBottom); + } + + function toggleMenu() { + if (window.innerWidth < 800) { + pushmenu.show('primary'); + } + + else { + var newHeight = HEADER_HEIGHT; + + if (!html.hasClass('open-nav')) { + newHeight = mainNav.outerHeight(); + } + + header.css({height: px(newHeight)}); + html.toggleClass('open-nav'); + } + } + + function handleKeystrokes(e) { + switch (e.which) { + case 27: { + if (html.hasClass('open-nav')) { + toggleMenu(); + } + break; + } + } + } + + function showVideo() { + $('body').css({overflow: 'hidden'}); + + var videoPlayer = $("#videoPlayer"); + var videoIframe = videoPlayer.find("iframe")[0]; + videoIframe.src = videoIframe.getAttribute("data-url"); + videoPlayer.css({zIndex: highestZ()}); + videoPlayer.fadeIn(300); + videoPlayer.click(function(){ + $('body').css({overflow: 'auto'}); + + videoPlayer.fadeOut(300, function(){ + videoIframe.src = ''; + }); + }); + } + + function tocWasClicked(e) { + var target = $(e.target); + var docsToc = $("#docsToc"); + return (target[0] === docsToc[0] || target.parents("#docsToc").length > 0); + } + + function listenForTocClick(e) { + if (!tocWasClicked(e)) toggleToc(); + } + + function toggleToc() { + html.toggleClass('open-toc'); + + setTimeout(function () { + if (html.hasClass('open-toc')) { + window.addEventListener('click', listenForTocClick); + } else { + window.removeEventListener('click', listenForTocClick); + } + }, 100); + } + + return { + toggleToc: toggleToc, + toggleMenu: toggleMenu, + showVideo: showVideo + }; +})(); + + +// accordion +(function(){ + var yah = true; + var moving = false; + var CSS_BROWSER_HACK_DELAY = 25; + + $(document).ready(function(){ + // Safari chokes on the animation here, so... + if (navigator.userAgent.indexOf('Chrome') == -1 && navigator.userAgent.indexOf('Safari') != -1){ + var hackStyle = newDOMElement('style'); + hackStyle.innerHTML = '.pi-accordion .wrapper{transition: none}'; + body.append(hackStyle); + } + // Gross. + + $('.pi-accordion').each(function () { + var accordion = this; + var content = this.innerHTML; + var container = newDOMElement('div', 'container'); + container.innerHTML = content; + $(accordion).empty(); + accordion.appendChild(container); + CollapseBox($(container)); + }); + + setYAH(); + + setTimeout(function () { + yah = false; + }, 500); + }); + + function CollapseBox(container){ + container.children('.item').each(function(){ + // build the TOC DOM + // the animated open/close is enabled by having each item's content exist in the flow, at its natural height, + // enclosed in a wrapper with height = 0 when closed, and height = contentHeight when open. + var item = this; + + // only add content wrappers to containers, not to links + var isContainer = item.tagName === 'DIV'; + + var titleText = item.getAttribute('data-title'); + var title = newDOMElement('div', 'title'); + title.innerHTML = titleText; + + var wrapper, content; + + if (isContainer) { + wrapper = newDOMElement('div', 'wrapper'); + content = newDOMElement('div', 'content'); + content.innerHTML = item.innerHTML; + wrapper.appendChild(content); + } + + item.innerHTML = ''; + item.appendChild(title); + + if (wrapper) { + item.appendChild(wrapper); + $(wrapper).css({height: 0}); + } + + + $(title).click(function(){ + if (!yah) { + if (moving) return; + moving = true; + } + + if (container[0].getAttribute('data-single')) { + var openSiblings = item.siblings().filter(function(sib){return sib.hasClass('on');}); + openSiblings.forEach(function(sibling){ + toggleItem(sibling); + }); + } + + setTimeout(function(){ + if (!isContainer) { + moving = false; + return; + } + toggleItem(item); + }, CSS_BROWSER_HACK_DELAY); + }); + + function toggleItem(thisItem){ + var thisWrapper = $(thisItem).find('.wrapper').eq(0); + + if (!thisWrapper) return; + + var contentHeight = thisWrapper.find('.content').eq(0).innerHeight() + 'px'; + + if ($(thisItem).hasClass('on')) { + thisWrapper.css({height: contentHeight}); + $(thisItem).removeClass('on'); + + setTimeout(function(){ + thisWrapper.css({height: 0}); + moving = false; + }, CSS_BROWSER_HACK_DELAY); + } else { + $(item).addClass('on'); + thisWrapper.css({height: contentHeight}); + + var duration = parseFloat(getComputedStyle(thisWrapper[0]).transitionDuration) * 1000; + + setTimeout(function(){ + thisWrapper.css({height: ''}); + moving = false; + }, duration); + } + } + + if (content) { + var innerContainers = $(content).children('.container'); + if (innerContainers.length > 0) { + innerContainers.each(function(){ + CollapseBox($(this)); + }); + } + } + }); + } + + function setYAH() { + var pathname = location.href.split('#')[0]; // on page load, make sure the page is YAH even if there's a hash + var currentLinks = []; + + $('.pi-accordion a').each(function () { + if (pathname === this.href) currentLinks.push(this); + }); + + currentLinks.forEach(function (yahLink) { + $(yahLink).parents('.item').each(function(){ + $(this).addClass('on'); + $(this).find('.wrapper').eq(0).css({height: 'auto'}); + $(this).find('.content').eq(0).css({opacity: 1}); + }); + + $(yahLink).addClass('yah'); + yahLink.onclick = function(e){e.preventDefault();}; + }); + } +})(); + + +var pushmenu = (function(){ + var allPushMenus = {}; + + $(document).ready(function(){ + $('[data-auto-burger]').each(function(){ + var container = this; + var id = container.getAttribute('data-auto-burger'); + + var autoBurger = document.getElementById(id) || newDOMElement('div', 'pi-pushmenu', id); + var ul = autoBurger.querySelector('ul') || newDOMElement('ul'); + + $(container).find('a[href], button').each(function () { + if (!booleanAttributeValue(this, 'data-auto-burger-exclude', false)) { + var clone = this.cloneNode(true); + clone.id = ''; + + if (clone.tagName == "BUTTON") { + var aTag = newDOMElement('a'); + aTag.href = ''; + aTag.innerHTML = clone.innerHTML; + aTag.onclick = clone.onclick; + clone = aTag; + } + var li = newDOMElement('li'); + li.appendChild(clone); + ul.appendChild(li); + } + }); + + autoBurger.appendChild(ul); + body.append(autoBurger); + }); + + $(".pi-pushmenu").each(function(){ + allPushMenus[this.id] = PushMenu(this); + }); + }); + + function show(objId) { + allPushMenus[objId].expose(); + } + + function PushMenu(el) { + var html = document.querySelector('html'); + + var overlay = newDOMElement('div', 'overlay'); + var content = newDOMElement('div', 'content'); + content.appendChild(el.querySelector('*')); + + var side = el.getAttribute("data-side") || "right"; + + var sled = newDOMElement('div', 'sled'); + $(sled).css(side, 0); + + sled.appendChild(content); + + var closeButton = newDOMElement('button', 'push-menu-close-button'); + closeButton.onclick = closeMe; + + sled.appendChild(closeButton); + + overlay.appendChild(sled); + el.innerHTML = ''; + el.appendChild(overlay); + + sled.onclick = function(e){ + e.stopPropagation(); + }; + + overlay.onclick = closeMe; + + window.addEventListener('resize', closeMe); + + function closeMe(e) { + if (e.target == sled) return; + + $(el).removeClass('on'); + setTimeout(function(){ + $(el).css({display: 'none'}); + + $(body).removeClass('overlay-on'); + }, 300); + } + + function exposeMe(){ + $(body).addClass('overlay-on'); // in the default config, kills body scrolling + + $(el).css({ + display: 'block', + zIndex: highestZ() + }); + + setTimeout(function(){ + $(el).addClass('on'); + }, 10); + } + + return { + expose: exposeMe + }; + } + + return { + show: show + }; +})(); + +$(function() { + // If vendor strip doesn't exist add className + if ( !$('#vendorStrip').length > 0 ) { + $('.header-hero').addClass('bot-bar'); + } + + // If is not homepage add class to hero section + if (!$('.td-home').length > 0 ) { + $('.header-hero').addClass('no-sub'); + } +}); diff --git a/site/static/js/split-1.6.0.js b/site/static/js/split-1.6.0.js new file mode 100644 index 00000000000..49eae334bcf --- /dev/null +++ b/site/static/js/split-1.6.0.js @@ -0,0 +1,3 @@ +/*! Split.js - v1.6.0 */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Split=t()}(this,(function(){"use strict";var e="undefined"!=typeof window?window:null,t=null===e,n=t?void 0:e.document,i=function(){return!1},r=t?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=n.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",s=function(e){return"string"==typeof e||e instanceof String},o=function(e){if(s(e)){var t=n.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},a=function(e,t,n){var i=e[t];return void 0!==i?i:n},u=function(e,t,n,i){if(t){if("end"===i)return 0;if("center"===i)return e/2}else if(n){if("start"===i)return 0;if("center"===i)return e/2}return e},l=function(e,t){var i=n.createElement("div");return i.className="gutter gutter-"+t,i},c=function(e,t,n){var i={};return s(t)?i[e]=t:i[e]=r+"("+t+"% - "+n+"px)",i},h=function(e,t){var n;return(n={})[e]=t+"px",n};return function(r,s){if(void 0===s&&(s={}),t)return{};var d,f,v,m,g,p,y=r;Array.from&&(y=Array.from(y));var z=o(y[0]).parentNode,b=getComputedStyle?getComputedStyle(z):null,E=b?b.flexDirection:null,S=a(s,"sizes")||y.map((function(){return 100/y.length})),L=a(s,"minSize",100),_=Array.isArray(L)?L:y.map((function(){return L})),w=a(s,"expandToMin",!1),k=a(s,"gutterSize",10),x=a(s,"gutterAlign","center"),C=a(s,"snapOffset",30),M=a(s,"dragInterval",1),U=a(s,"direction","horizontal"),O=a(s,"cursor","horizontal"===U?"col-resize":"row-resize"),D=a(s,"gutter",l),A=a(s,"elementStyle",c),B=a(s,"gutterStyle",h);function j(e,t,n,i){var r=A(d,t,n,i);Object.keys(r).forEach((function(t){e.style[t]=r[t]}))}function F(){return p.map((function(e){return e.size}))}function R(e){return"touches"in e?e.touches[0][f]:e[f]}function T(e){var t=p[this.a],n=p[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,j(t.element,t.size,this._b,t.i),j(n.element,n.size,this._c,n.i)}function N(e){var t,n=p[this.a],r=p[this.b];this.dragging&&(t=R(e)-this.start+(this._b-this.dragOffset),M>1&&(t=Math.round(t/M)*M),t<=n.minSize+C+this._b?t=n.minSize+this._b:t>=this.size-(r.minSize+C+this._c)&&(t=this.size-(r.minSize+this._c)),T.call(this,t),a(s,"onDrag",i)())}function q(){var e=p[this.a].element,t=p[this.b].element,n=e.getBoundingClientRect(),i=t.getBoundingClientRect();this.size=n[d]+i[d]+this._b+this._c,this.start=n[v],this.end=n[m]}function H(e){var t=function(e){if(!getComputedStyle)return null;var t=getComputedStyle(e);if(!t)return null;var n=e[g];return 0===n?null:n-="horizontal"===U?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(z);if(null===t)return e;if(_.reduce((function(e,t){return e+t}),0)>t)return e;var n=0,i=[],r=e.map((function(r,s){var o=t*r/100,a=u(k,0===s,s===e.length-1,x),l=_[s]+a;return o0&&i[r]-n>0){var o=Math.min(n,i[r]-n);n-=o,s=e-o}return s/t*100}))}function I(){var t=p[this.a].element,r=p[this.b].element;this.dragging&&a(s,"onDragEnd",i)(F()),this.dragging=!1,e.removeEventListener("mouseup",this.stop),e.removeEventListener("touchend",this.stop),e.removeEventListener("touchcancel",this.stop),e.removeEventListener("mousemove",this.move),e.removeEventListener("touchmove",this.move),this.stop=null,this.move=null,t.removeEventListener("selectstart",i),t.removeEventListener("dragstart",i),r.removeEventListener("selectstart",i),r.removeEventListener("dragstart",i),t.style.userSelect="",t.style.webkitUserSelect="",t.style.MozUserSelect="",t.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",this.gutter.style.cursor="",this.parent.style.cursor="",n.body.style.cursor=""}function W(t){if(!("button"in t)||0===t.button){var r=p[this.a].element,o=p[this.b].element;this.dragging||a(s,"onDragStart",i)(F()),t.preventDefault(),this.dragging=!0,this.move=N.bind(this),this.stop=I.bind(this),e.addEventListener("mouseup",this.stop),e.addEventListener("touchend",this.stop),e.addEventListener("touchcancel",this.stop),e.addEventListener("mousemove",this.move),e.addEventListener("touchmove",this.move),r.addEventListener("selectstart",i),r.addEventListener("dragstart",i),o.addEventListener("selectstart",i),o.addEventListener("dragstart",i),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",this.gutter.style.cursor=O,this.parent.style.cursor=O,n.body.style.cursor=O,q.call(this),this.dragOffset=R(t)-this.end}}"horizontal"===U?(d="width",f="clientX",v="left",m="right",g="clientWidth"):"vertical"===U&&(d="height",f="clientY",v="top",m="bottom",g="clientHeight"),S=H(S);var X=[];function Y(e){var t=e.i===X.length,n=t?X[e.i-1]:X[e.i];q.call(n);var i=t?n.size-e.minSize-n._c:e.minSize+n._b;T.call(n,i)}return(p=y.map((function(e,t){var n,i={element:o(e),size:S[t],minSize:_[t],i:t};if(t>0&&((n={a:t-1,b:t,dragging:!1,direction:U,parent:z})._b=u(k,t-1==0,!1,x),n._c=u(k,!1,t===y.length-1,x),"row-reverse"===E||"column-reverse"===E)){var r=n.a;n.a=n.b,n.b=r}if(t>0){var s=D(t,U,i.element);!function(e,t,n){var i=B(d,t,n);Object.keys(i).forEach((function(t){e.style[t]=i[t]}))}(s,k,t),n._a=W.bind(n),s.addEventListener("mousedown",n._a),s.addEventListener("touchstart",n._a),z.insertBefore(s,i.element),n.gutter=s}return j(i.element,i.size,u(k,0===t,t===y.length-1,x),t),t>0&&X.push(n),i}))).forEach((function(e){var t=e.element.getBoundingClientRect()[d];t0){var i=X[n-1],r=p[i.a],s=p[i.b];r.size=t[n-1],s.size=e,j(r.element,r.size,i._b,r.i),j(s.element,s.size,i._c,s.i)}}))},getSizes:F,collapse:function(e){Y(p[e])},destroy:function(e,t){X.forEach((function(n){if(!0!==t?n.parent.removeChild(n.gutter):(n.gutter.removeEventListener("mousedown",n._a),n.gutter.removeEventListener("touchstart",n._a)),!0!==e){var i=A(d,n.a.size,n._b);Object.keys(i).forEach((function(e){p[n.a].element.style[e]="",p[n.b].element.style[e]=""}))}}))},parent:z,pairs:X}}})); +//# sourceMappingURL=split.min.js.map diff --git a/site/static/js/sweetalert-2.1.2.min.js b/site/static/js/sweetalert-2.1.2.min.js new file mode 100644 index 00000000000..dc8f5e78ec5 --- /dev/null +++ b/site/static/js/sweetalert-2.1.2.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.swal=e():t.swal=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=8)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o="swal-button";e.CLASS_NAMES={MODAL:"swal-modal",OVERLAY:"swal-overlay",SHOW_MODAL:"swal-overlay--show-modal",MODAL_TITLE:"swal-title",MODAL_TEXT:"swal-text",ICON:"swal-icon",ICON_CUSTOM:"swal-icon--custom",CONTENT:"swal-content",FOOTER:"swal-footer",BUTTON_CONTAINER:"swal-button-container",BUTTON:o,CONFIRM_BUTTON:o+"--confirm",CANCEL_BUTTON:o+"--cancel",DANGER_BUTTON:o+"--danger",BUTTON_LOADING:o+"--loading",BUTTON_LOADER:o+"__loader"},e.default=e.CLASS_NAMES},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNode=function(t){var e="."+t;return document.querySelector(e)},e.stringToNode=function(t){var e=document.createElement("div");return e.innerHTML=t.trim(),e.firstChild},e.insertAfter=function(t,e){var n=e.nextSibling;e.parentNode.insertBefore(t,n)},e.removeNode=function(t){t.parentElement.removeChild(t)},e.throwErr=function(t){throw t=t.replace(/ +(?= )/g,""),"SweetAlert: "+(t=t.trim())},e.isPlainObject=function(t){if("[object Object]"!==Object.prototype.toString.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype},e.ordinalSuffixOf=function(t){var e=t%10,n=t%100;return 1===e&&11!==n?t+"st":2===e&&12!==n?t+"nd":3===e&&13!==n?t+"rd":t+"th"}},function(t,e,n){"use strict";function o(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),o(n(25));var r=n(26);e.overlayMarkup=r.default,o(n(27)),o(n(28)),o(n(29));var i=n(0),a=i.default.MODAL_TITLE,s=i.default.MODAL_TEXT,c=i.default.ICON,l=i.default.FOOTER;e.iconMarkup='\n
',e.titleMarkup='\n
\n',e.textMarkup='\n
',e.footerMarkup='\n
\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1);e.CONFIRM_KEY="confirm",e.CANCEL_KEY="cancel";var r={visible:!0,text:null,value:null,className:"",closeModal:!0},i=Object.assign({},r,{visible:!1,text:"Cancel",value:null}),a=Object.assign({},r,{text:"OK",value:!0});e.defaultButtonList={cancel:i,confirm:a};var s=function(t){switch(t){case e.CONFIRM_KEY:return a;case e.CANCEL_KEY:return i;default:var n=t.charAt(0).toUpperCase()+t.slice(1);return Object.assign({},r,{text:n,value:t})}},c=function(t,e){var n=s(t);return!0===e?Object.assign({},n,{visible:!0}):"string"==typeof e?Object.assign({},n,{visible:!0,text:e}):o.isPlainObject(e)?Object.assign({visible:!0},n,e):Object.assign({},n,{visible:!1})},l=function(t){for(var e={},n=0,o=Object.keys(t);n=0&&w.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",l(e,t.attrs),i(t,e),e}function c(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",l(e,t.attrs),i(t,e),e}function l(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,o,r,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var l=h++;n=g||(g=s(e)),o=f.bind(null,n,l,!1),r=f.bind(null,n,l,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),o=p.bind(null,n,e),r=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),o=d.bind(null,n),r=function(){a(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else r()}}function f(t,e,n,o){var r=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=x(e,r);else{var i=document.createTextNode(r),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function d(t,e){var n=e.css,o=e.media;if(o&&t.setAttribute("media",o),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e,n){var o=n.css,r=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(o=y(o)),r&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([o],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var m={},b=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(t){var e={};return function(n){return void 0===e[n]&&(e[n]=t.call(this,n)),e[n]}}(function(t){return document.querySelector(t)}),g=null,h=0,w=[],y=n(15);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=r(t,e);return o(n,e),function(t){for(var i=[],a=0;athis.length)&&-1!==this.indexOf(t,e)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(t,e){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),o=n.length>>>0;if(0===o)return!1;for(var r=0|e,i=Math.max(r>=0?r:o-Math.abs(r),0);i=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(19),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function o(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n',e.default=e.modalMarkup},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.OVERLAY,i='
\n
';e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.ICON;e.errorIconMarkup=function(){var t=r+"--error",e=t+"__line";return'\n
\n \n \n
\n '},e.warningIconMarkup=function(){var t=r+"--warning";return'\n \n \n \n '},e.successIconMarkup=function(){var t=r+"--success";return'\n \n \n\n
\n
\n '}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.CONTENT;e.contentMarkup='\n
\n\n
\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.BUTTON_CONTAINER,i=o.default.BUTTON,a=o.default.BUTTON_LOADER;e.buttonMarkup='\n
\n\n \n\n
\n
\n
\n
\n
\n\n
\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),r=n(2),i=n(0),a=i.default.ICON,s=i.default.ICON_CUSTOM,c=["error","warning","success","info"],l={error:r.errorIconMarkup(),warning:r.warningIconMarkup(),success:r.successIconMarkup()},u=function(t,e){var n=a+"--"+t;e.classList.add(n);var o=l[t];o&&(e.innerHTML=o)},f=function(t,e){e.classList.add(s);var n=document.createElement("img");n.src=t,e.appendChild(n)},d=function(t){if(t){var e=o.injectElIntoModal(r.iconMarkup);c.includes(t)?u(t,e):f(t,e)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),r=n(4),i=function(t){navigator.userAgent.includes("AppleWebKit")&&(t.style.display="none",t.offsetHeight,t.style.display="")};e.initTitle=function(t){if(t){var e=r.injectElIntoModal(o.titleMarkup);e.textContent=t,i(e)}},e.initText=function(t){if(t){var e=document.createDocumentFragment();t.split("\n").forEach(function(t,n,o){e.appendChild(document.createTextNode(t)),n0}).forEach(function(t){b.classList.add(t)})}n&&t===c.CONFIRM_KEY&&b.classList.add(s),b.textContent=r;var g={};return g[t]=i,f.setActionValue(g),f.setActionOptionsFor(t,{closeModal:p}),b.addEventListener("click",function(){return u.onAction(t)}),m},p=function(t,e){var n=r.injectElIntoModal(l.footerMarkup);for(var o in t){var i=t[o],a=d(o,i,e);i.visible&&n.appendChild(a)}0===n.children.length&&n.remove()};e.default=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r=n(4),i=n(2),a=n(5),s=n(6),c=n(0),l=c.default.CONTENT,u=function(t){t.addEventListener("input",function(t){var e=t.target,n=e.value;a.setActionValue(n)}),t.addEventListener("keyup",function(t){if("Enter"===t.key)return s.onAction(o.CONFIRM_KEY)}),setTimeout(function(){t.focus(),a.setActionValue("")},0)},f=function(t,e,n){var o=document.createElement(e),r=l+"__"+e;o.classList.add(r);for(var i in n){var a=n[i];o[i]=a}"input"===e&&u(o),t.appendChild(o)},d=function(t){if(t){var e=r.injectElIntoModal(i.contentMarkup),n=t.element,o=t.attributes;"string"==typeof n?f(e,n,o):e.appendChild(n)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=function(){var t=o.stringToNode(r.overlayMarkup);document.body.appendChild(t)};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(5),r=n(6),i=n(1),a=n(3),s=n(0),c=s.default.MODAL,l=s.default.BUTTON,u=s.default.OVERLAY,f=function(t){t.preventDefault(),v()},d=function(t){t.preventDefault(),g()},p=function(t){if(o.default.isOpen)switch(t.key){case"Escape":return r.onAction(a.CANCEL_KEY)}},m=function(t){if(o.default.isOpen)switch(t.key){case"Tab":return f(t)}},b=function(t){if(o.default.isOpen)return"Tab"===t.key&&t.shiftKey?d(t):void 0},v=function(){var t=i.getNode(l);t&&(t.tabIndex=0,t.focus())},g=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l),n=e.length-1,o=e[n];o&&o.focus()},h=function(t){t[t.length-1].addEventListener("keydown",m)},w=function(t){t[0].addEventListener("keydown",b)},y=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l);e.length&&(h(e),w(e))},x=function(t){if(i.getNode(u)===t.target)return r.onAction(a.CANCEL_KEY)},_=function(t){var e=i.getNode(u);e.removeEventListener("click",x),t&&e.addEventListener("click",x)},k=function(t){o.default.timer&&clearTimeout(o.default.timer),t&&(o.default.timer=window.setTimeout(function(){return r.onAction(a.CANCEL_KEY)},t))},O=function(t){t.closeOnEsc?document.addEventListener("keyup",p):document.removeEventListener("keyup",p),t.dangerMode?v():g(),y(),_(t.closeOnClickOutside),k(t.timer)};e.default=O},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(37),a=n(38),s={title:null,text:null,icon:null,buttons:r.defaultButtonList,content:null,className:null,closeOnClickOutside:!0,closeOnEsc:!0,dangerMode:!1,timer:null},c=Object.assign({},s);e.setDefaults=function(t){c=Object.assign({},s,t)};var l=function(t){var e=t&&t.button,n=t&&t.buttons;return void 0!==e&&void 0!==n&&o.throwErr("Cannot set both 'button' and 'buttons' options!"),void 0!==e?{confirm:e}:n},u=function(t){return o.ordinalSuffixOf(t+1)},f=function(t,e){o.throwErr(u(e)+" argument ('"+t+"') is invalid")},d=function(t,e){var n=t+1,r=e[n];o.isPlainObject(r)||void 0===r||o.throwErr("Expected "+u(n)+" argument ('"+r+"') to be a plain object")},p=function(t,e){var n=t+1,r=e[n];void 0!==r&&o.throwErr("Unexpected "+u(n)+" argument ("+r+")")},m=function(t,e,n,r){var i=typeof e,a="string"===i,s=e instanceof Element;if(a){if(0===n)return{text:e};if(1===n)return{text:e,title:r[0]};if(2===n)return d(n,r),{icon:e};f(e,n)}else{if(s&&0===n)return d(n,r),{content:e};if(o.isPlainObject(e))return p(n,r),e;f(e,n)}};e.getOpts=function(){for(var t=[],e=0;e Date: Thu, 11 Apr 2024 13:18:09 +0800 Subject: [PATCH 07/13] fix Signed-off-by: yuluo-yx --- site/content/en/latest/tasks/quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/latest/tasks/quickstart.md b/site/content/en/latest/tasks/quickstart.md index 0ccde55ebde..7842322bf2f 100644 --- a/site/content/en/latest/tasks/quickstart.md +++ b/site/content/en/latest/tasks/quickstart.md @@ -48,7 +48,7 @@ consideration when debugging. ## Testing the Configuration {{< tabs name="tabs_test_the_configuration" >}} -{{% tab name="Test Configuration" %}} +{{% tab name="Without LoadBalancer Support" %}} Get the name of the Envoy service created the by the example Gateway: From db9cbebe92cdcd9a5451cba1925340a09a72a1e7 Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Thu, 11 Apr 2024 13:31:17 +0800 Subject: [PATCH 08/13] fix Signed-off-by: yuluo-yx --- site/content/en/v1.0.0/user/quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/v1.0.0/user/quickstart.md b/site/content/en/v1.0.0/user/quickstart.md index 63c163abafd..04dca33ad9a 100644 --- a/site/content/en/v1.0.0/user/quickstart.md +++ b/site/content/en/v1.0.0/user/quickstart.md @@ -48,7 +48,7 @@ consideration when debugging. ## Testing the Configuration {{< tabs name="tabs_test_the_configuration" >}} -{{% tab name="Test Configuration" %}} +{{% tab name="Without LoadBalancer Support" %}} Get the name of the Envoy service created the by the example Gateway: From 06313a74af3bdf18ba2faeee8fdd6112ecf01403 Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Thu, 11 Apr 2024 13:44:48 +0800 Subject: [PATCH 09/13] fix: fix ci skip js files Signed-off-by: yuluo-yx --- tools/linter/codespell/.codespell.skip | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/linter/codespell/.codespell.skip b/tools/linter/codespell/.codespell.skip index 319d3a78dfe..ab39c57d432 100644 --- a/tools/linter/codespell/.codespell.skip +++ b/tools/linter/codespell/.codespell.skip @@ -12,3 +12,4 @@ go.mod go.sum bin +.js From 0246dff4c3cf456aa08aea6b0c8933ad7a02113a Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Thu, 11 Apr 2024 13:50:05 +0800 Subject: [PATCH 10/13] fix Signed-off-by: yuluo-yx --- tools/linter/codespell/.codespell.skip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/linter/codespell/.codespell.skip b/tools/linter/codespell/.codespell.skip index ab39c57d432..b4f172ffc1c 100644 --- a/tools/linter/codespell/.codespell.skip +++ b/tools/linter/codespell/.codespell.skip @@ -12,4 +12,4 @@ go.mod go.sum bin -.js +*.js From ec382a5dc857365087f2005b143b4b3251f6f744 Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Fri, 12 Apr 2024 10:07:52 +0800 Subject: [PATCH 11/13] chore: switch the order tabs Signed-off-by: yuluo-yx --- site/content/en/v1.0.1/tasks/quickstart.md | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/site/content/en/v1.0.1/tasks/quickstart.md b/site/content/en/v1.0.1/tasks/quickstart.md index 16e279a164b..10be431e603 100644 --- a/site/content/en/v1.0.1/tasks/quickstart.md +++ b/site/content/en/v1.0.1/tasks/quickstart.md @@ -48,48 +48,48 @@ consideration when debugging. ## Testing the Configuration {{< tabs name="tabs_test_the_configuration" >}} -{{% tab name="Without LoadBalancer Support" %}} - +{{% tab name="With LoadBalancer Support" %}} Get the name of the Envoy service created the by the example Gateway: -```shell -export ENVOY_SERVICE= \ - $(kubectl get svc -n envoy-gateway-system \ - --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg \ - -o jsonpath='{.items[0].metadata.name}') -``` - -Port forward to the Envoy service: +You can also test the same functionality by sending traffic to the External IP. To get the external IP of the +Envoy service, run: ```shell -kubectl -n envoy-gateway-system port-forward service/${ENVOY_SERVICE} 8888:80 & +export GATEWAY_HOST=$(kubectl get gateway/eg -o jsonpath='{.status.addresses[0].value}') ``` +In certain environments, the load balancer may be exposed using a hostname, instead of an IP address. If so, replace +`ip` in the above command with `hostname`. + Curl the example app through Envoy proxy: ```shell -curl --verbose --header "Host: www.example.com" http://localhost:8888/get +curl --verbose --header "Host: www.example.com" http://$GATEWAY_HOST/get ``` {{% /tab %}} -{{% tab name="External LoadBalancer Support" %}} -Get the name of the Envoy service created the by the example Gateway: +{{% tab name="Without LoadBalancer Support" %}} -You can also test the same functionality by sending traffic to the External IP. To get the external IP of the -Envoy service, run: +Get the name of the Envoy service created the by the example Gateway: ```shell -export GATEWAY_HOST=$(kubectl get gateway/eg -o jsonpath='{.status.addresses[0].value}') +export ENVOY_SERVICE= \ + $(kubectl get svc -n envoy-gateway-system \ + --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg \ + -o jsonpath='{.items[0].metadata.name}') ``` -In certain environments, the load balancer may be exposed using a hostname, instead of an IP address. If so, replace -`ip` in the above command with `hostname`. +Port forward to the Envoy service: + +```shell +kubectl -n envoy-gateway-system port-forward service/${ENVOY_SERVICE} 8888:80 & +``` Curl the example app through Envoy proxy: ```shell -curl --verbose --header "Host: www.example.com" http://$GATEWAY_HOST/get +curl --verbose --header "Host: www.example.com" http://localhost:8888/get ``` {{% /tab %}} From aa9cbb80e97e4f9b3174718aaab3df94128e140c Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Fri, 12 Apr 2024 14:02:48 +0800 Subject: [PATCH 12/13] fix Signed-off-by: yuluo-yx --- site/content/en/latest/tasks/quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/latest/tasks/quickstart.md b/site/content/en/latest/tasks/quickstart.md index 7842322bf2f..4b3d1230c07 100644 --- a/site/content/en/latest/tasks/quickstart.md +++ b/site/content/en/latest/tasks/quickstart.md @@ -102,7 +102,7 @@ Use the steps in this section to uninstall everything from the quickstart guide. Delete the GatewayClass, Gateway, HTTPRoute and Example App: ```shell -kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/v1.0.0/quickstart.yaml --ignore-not-found=true +kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml --ignore-not-found=true ``` Delete the Gateway API CRDs and Envoy Gateway: From 3e038f8d097385e5cefde6b088dfc8fc6232d521 Mon Sep 17 00:00:00 2001 From: yuluo-yx Date: Fri, 12 Apr 2024 14:16:07 +0800 Subject: [PATCH 13/13] chore: redundant js files Signed-off-by: yuluo-yx --- site/layouts/partials/scripts.html | 1 - site/static/js/dismiss_banner.js | 41 -------------------------- site/static/js/popper-1.16.1.min.js | 5 ---- site/static/js/split-1.6.0.js | 3 -- site/static/js/sweetalert-2.1.2.min.js | 1 - 5 files changed, 51 deletions(-) delete mode 100644 site/static/js/dismiss_banner.js delete mode 100644 site/static/js/popper-1.16.1.min.js delete mode 100644 site/static/js/split-1.6.0.js delete mode 100644 site/static/js/sweetalert-2.1.2.min.js diff --git a/site/layouts/partials/scripts.html b/site/layouts/partials/scripts.html index 1c8dce0d65d..4a261216b80 100644 --- a/site/layouts/partials/scripts.html +++ b/site/layouts/partials/scripts.html @@ -1,5 +1,4 @@ - diff --git a/site/static/js/dismiss_banner.js b/site/static/js/dismiss_banner.js deleted file mode 100644 index bda82628ef8..00000000000 --- a/site/static/js/dismiss_banner.js +++ /dev/null @@ -1,41 +0,0 @@ -$(document).ready(function() { - function setCookie(name, value, days) { - let expires = ""; - let date = new Date(); // Create a new Date object - let dateToSecond = 24 * 60 * 60 * 1000; - - if (days) { - date.setTime(date.getTime() + days * dateToSecond); // Modify the existing Date object - expires = "; expires=" + date.toUTCString(); - } - - document.cookie = name + "=" + value + expires + "; path=/"; - } - - function getCookie(name) { - let matches = document.cookie.match(new RegExp( - "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" - )); - return matches ? "true" : undefined; - } - - /* Check the presence of a cookie */ - let announcement = document.querySelector("#announcement"); - let token = `announcement_ack_${announcement.getAttribute('data-announcement-name').replace(/\s/g, '_')}`; // Generate the unique token for announcement - let acknowledged = getCookie(token); - if (acknowledged === "true") { - announcement.remove(); // Remove the announcement if the cookie is set - } - else { - announcement.classList.add('display-announcement') // Display the announcement if the cookie is not set - } - - /* Driver code to set the cookie */ - let button = document.querySelector('#banner-dismiss'); - button.removeAttribute('style'); - button.addEventListener('click', function() { - setCookie(token, "true", - button.getAttribute('data-ttl')); // Set a cookie with time to live parameter - announcement.remove(); - }); -}); diff --git a/site/static/js/popper-1.16.1.min.js b/site/static/js/popper-1.16.1.min.js deleted file mode 100644 index bb1aaae3e86..00000000000 --- a/site/static/js/popper-1.16.1.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/* - Copyright (C) Federico Zivolo 2020 - Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). - */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function i(e){return e&&e.referenceNode?e.referenceNode:e}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1=o.clientWidth&&n>=o.clientHeight}),l=0a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-us[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f]),E=parseFloat(w['border'+f+'Width']),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,$(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ce.FLIP:p=[n,i];break;case ce.CLOCKWISE:p=G(n);break;case ce.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u),E=!!t.flipVariationsByContent&&(w&&'start'===r&&c||w&&'end'===r&&h||!w&&'start'===r&&u||!w&&'end'===r&&g),v=y||E;(m||b||v)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),v&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport',flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightwindow.devicePixelRatio||!fe),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return V(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&V(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),V(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ge}); -//# sourceMappingURL=popper.min.js.map diff --git a/site/static/js/split-1.6.0.js b/site/static/js/split-1.6.0.js deleted file mode 100644 index 49eae334bcf..00000000000 --- a/site/static/js/split-1.6.0.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Split.js - v1.6.0 */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Split=t()}(this,(function(){"use strict";var e="undefined"!=typeof window?window:null,t=null===e,n=t?void 0:e.document,i=function(){return!1},r=t?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=n.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",s=function(e){return"string"==typeof e||e instanceof String},o=function(e){if(s(e)){var t=n.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},a=function(e,t,n){var i=e[t];return void 0!==i?i:n},u=function(e,t,n,i){if(t){if("end"===i)return 0;if("center"===i)return e/2}else if(n){if("start"===i)return 0;if("center"===i)return e/2}return e},l=function(e,t){var i=n.createElement("div");return i.className="gutter gutter-"+t,i},c=function(e,t,n){var i={};return s(t)?i[e]=t:i[e]=r+"("+t+"% - "+n+"px)",i},h=function(e,t){var n;return(n={})[e]=t+"px",n};return function(r,s){if(void 0===s&&(s={}),t)return{};var d,f,v,m,g,p,y=r;Array.from&&(y=Array.from(y));var z=o(y[0]).parentNode,b=getComputedStyle?getComputedStyle(z):null,E=b?b.flexDirection:null,S=a(s,"sizes")||y.map((function(){return 100/y.length})),L=a(s,"minSize",100),_=Array.isArray(L)?L:y.map((function(){return L})),w=a(s,"expandToMin",!1),k=a(s,"gutterSize",10),x=a(s,"gutterAlign","center"),C=a(s,"snapOffset",30),M=a(s,"dragInterval",1),U=a(s,"direction","horizontal"),O=a(s,"cursor","horizontal"===U?"col-resize":"row-resize"),D=a(s,"gutter",l),A=a(s,"elementStyle",c),B=a(s,"gutterStyle",h);function j(e,t,n,i){var r=A(d,t,n,i);Object.keys(r).forEach((function(t){e.style[t]=r[t]}))}function F(){return p.map((function(e){return e.size}))}function R(e){return"touches"in e?e.touches[0][f]:e[f]}function T(e){var t=p[this.a],n=p[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,j(t.element,t.size,this._b,t.i),j(n.element,n.size,this._c,n.i)}function N(e){var t,n=p[this.a],r=p[this.b];this.dragging&&(t=R(e)-this.start+(this._b-this.dragOffset),M>1&&(t=Math.round(t/M)*M),t<=n.minSize+C+this._b?t=n.minSize+this._b:t>=this.size-(r.minSize+C+this._c)&&(t=this.size-(r.minSize+this._c)),T.call(this,t),a(s,"onDrag",i)())}function q(){var e=p[this.a].element,t=p[this.b].element,n=e.getBoundingClientRect(),i=t.getBoundingClientRect();this.size=n[d]+i[d]+this._b+this._c,this.start=n[v],this.end=n[m]}function H(e){var t=function(e){if(!getComputedStyle)return null;var t=getComputedStyle(e);if(!t)return null;var n=e[g];return 0===n?null:n-="horizontal"===U?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(z);if(null===t)return e;if(_.reduce((function(e,t){return e+t}),0)>t)return e;var n=0,i=[],r=e.map((function(r,s){var o=t*r/100,a=u(k,0===s,s===e.length-1,x),l=_[s]+a;return o0&&i[r]-n>0){var o=Math.min(n,i[r]-n);n-=o,s=e-o}return s/t*100}))}function I(){var t=p[this.a].element,r=p[this.b].element;this.dragging&&a(s,"onDragEnd",i)(F()),this.dragging=!1,e.removeEventListener("mouseup",this.stop),e.removeEventListener("touchend",this.stop),e.removeEventListener("touchcancel",this.stop),e.removeEventListener("mousemove",this.move),e.removeEventListener("touchmove",this.move),this.stop=null,this.move=null,t.removeEventListener("selectstart",i),t.removeEventListener("dragstart",i),r.removeEventListener("selectstart",i),r.removeEventListener("dragstart",i),t.style.userSelect="",t.style.webkitUserSelect="",t.style.MozUserSelect="",t.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",this.gutter.style.cursor="",this.parent.style.cursor="",n.body.style.cursor=""}function W(t){if(!("button"in t)||0===t.button){var r=p[this.a].element,o=p[this.b].element;this.dragging||a(s,"onDragStart",i)(F()),t.preventDefault(),this.dragging=!0,this.move=N.bind(this),this.stop=I.bind(this),e.addEventListener("mouseup",this.stop),e.addEventListener("touchend",this.stop),e.addEventListener("touchcancel",this.stop),e.addEventListener("mousemove",this.move),e.addEventListener("touchmove",this.move),r.addEventListener("selectstart",i),r.addEventListener("dragstart",i),o.addEventListener("selectstart",i),o.addEventListener("dragstart",i),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",this.gutter.style.cursor=O,this.parent.style.cursor=O,n.body.style.cursor=O,q.call(this),this.dragOffset=R(t)-this.end}}"horizontal"===U?(d="width",f="clientX",v="left",m="right",g="clientWidth"):"vertical"===U&&(d="height",f="clientY",v="top",m="bottom",g="clientHeight"),S=H(S);var X=[];function Y(e){var t=e.i===X.length,n=t?X[e.i-1]:X[e.i];q.call(n);var i=t?n.size-e.minSize-n._c:e.minSize+n._b;T.call(n,i)}return(p=y.map((function(e,t){var n,i={element:o(e),size:S[t],minSize:_[t],i:t};if(t>0&&((n={a:t-1,b:t,dragging:!1,direction:U,parent:z})._b=u(k,t-1==0,!1,x),n._c=u(k,!1,t===y.length-1,x),"row-reverse"===E||"column-reverse"===E)){var r=n.a;n.a=n.b,n.b=r}if(t>0){var s=D(t,U,i.element);!function(e,t,n){var i=B(d,t,n);Object.keys(i).forEach((function(t){e.style[t]=i[t]}))}(s,k,t),n._a=W.bind(n),s.addEventListener("mousedown",n._a),s.addEventListener("touchstart",n._a),z.insertBefore(s,i.element),n.gutter=s}return j(i.element,i.size,u(k,0===t,t===y.length-1,x),t),t>0&&X.push(n),i}))).forEach((function(e){var t=e.element.getBoundingClientRect()[d];t0){var i=X[n-1],r=p[i.a],s=p[i.b];r.size=t[n-1],s.size=e,j(r.element,r.size,i._b,r.i),j(s.element,s.size,i._c,s.i)}}))},getSizes:F,collapse:function(e){Y(p[e])},destroy:function(e,t){X.forEach((function(n){if(!0!==t?n.parent.removeChild(n.gutter):(n.gutter.removeEventListener("mousedown",n._a),n.gutter.removeEventListener("touchstart",n._a)),!0!==e){var i=A(d,n.a.size,n._b);Object.keys(i).forEach((function(e){p[n.a].element.style[e]="",p[n.b].element.style[e]=""}))}}))},parent:z,pairs:X}}})); -//# sourceMappingURL=split.min.js.map diff --git a/site/static/js/sweetalert-2.1.2.min.js b/site/static/js/sweetalert-2.1.2.min.js deleted file mode 100644 index dc8f5e78ec5..00000000000 --- a/site/static/js/sweetalert-2.1.2.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.swal=e():t.swal=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=8)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o="swal-button";e.CLASS_NAMES={MODAL:"swal-modal",OVERLAY:"swal-overlay",SHOW_MODAL:"swal-overlay--show-modal",MODAL_TITLE:"swal-title",MODAL_TEXT:"swal-text",ICON:"swal-icon",ICON_CUSTOM:"swal-icon--custom",CONTENT:"swal-content",FOOTER:"swal-footer",BUTTON_CONTAINER:"swal-button-container",BUTTON:o,CONFIRM_BUTTON:o+"--confirm",CANCEL_BUTTON:o+"--cancel",DANGER_BUTTON:o+"--danger",BUTTON_LOADING:o+"--loading",BUTTON_LOADER:o+"__loader"},e.default=e.CLASS_NAMES},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNode=function(t){var e="."+t;return document.querySelector(e)},e.stringToNode=function(t){var e=document.createElement("div");return e.innerHTML=t.trim(),e.firstChild},e.insertAfter=function(t,e){var n=e.nextSibling;e.parentNode.insertBefore(t,n)},e.removeNode=function(t){t.parentElement.removeChild(t)},e.throwErr=function(t){throw t=t.replace(/ +(?= )/g,""),"SweetAlert: "+(t=t.trim())},e.isPlainObject=function(t){if("[object Object]"!==Object.prototype.toString.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype},e.ordinalSuffixOf=function(t){var e=t%10,n=t%100;return 1===e&&11!==n?t+"st":2===e&&12!==n?t+"nd":3===e&&13!==n?t+"rd":t+"th"}},function(t,e,n){"use strict";function o(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),o(n(25));var r=n(26);e.overlayMarkup=r.default,o(n(27)),o(n(28)),o(n(29));var i=n(0),a=i.default.MODAL_TITLE,s=i.default.MODAL_TEXT,c=i.default.ICON,l=i.default.FOOTER;e.iconMarkup='\n
',e.titleMarkup='\n
\n',e.textMarkup='\n
',e.footerMarkup='\n
\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1);e.CONFIRM_KEY="confirm",e.CANCEL_KEY="cancel";var r={visible:!0,text:null,value:null,className:"",closeModal:!0},i=Object.assign({},r,{visible:!1,text:"Cancel",value:null}),a=Object.assign({},r,{text:"OK",value:!0});e.defaultButtonList={cancel:i,confirm:a};var s=function(t){switch(t){case e.CONFIRM_KEY:return a;case e.CANCEL_KEY:return i;default:var n=t.charAt(0).toUpperCase()+t.slice(1);return Object.assign({},r,{text:n,value:t})}},c=function(t,e){var n=s(t);return!0===e?Object.assign({},n,{visible:!0}):"string"==typeof e?Object.assign({},n,{visible:!0,text:e}):o.isPlainObject(e)?Object.assign({visible:!0},n,e):Object.assign({},n,{visible:!1})},l=function(t){for(var e={},n=0,o=Object.keys(t);n=0&&w.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",l(e,t.attrs),i(t,e),e}function c(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",l(e,t.attrs),i(t,e),e}function l(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,o,r,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var l=h++;n=g||(g=s(e)),o=f.bind(null,n,l,!1),r=f.bind(null,n,l,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),o=p.bind(null,n,e),r=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),o=d.bind(null,n),r=function(){a(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else r()}}function f(t,e,n,o){var r=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=x(e,r);else{var i=document.createTextNode(r),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function d(t,e){var n=e.css,o=e.media;if(o&&t.setAttribute("media",o),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e,n){var o=n.css,r=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(o=y(o)),r&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([o],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var m={},b=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(t){var e={};return function(n){return void 0===e[n]&&(e[n]=t.call(this,n)),e[n]}}(function(t){return document.querySelector(t)}),g=null,h=0,w=[],y=n(15);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=r(t,e);return o(n,e),function(t){for(var i=[],a=0;athis.length)&&-1!==this.indexOf(t,e)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(t,e){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),o=n.length>>>0;if(0===o)return!1;for(var r=0|e,i=Math.max(r>=0?r:o-Math.abs(r),0);i=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(19),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function o(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n',e.default=e.modalMarkup},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.OVERLAY,i='
\n
';e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.ICON;e.errorIconMarkup=function(){var t=r+"--error",e=t+"__line";return'\n
\n \n \n
\n '},e.warningIconMarkup=function(){var t=r+"--warning";return'\n \n \n \n '},e.successIconMarkup=function(){var t=r+"--success";return'\n \n \n\n
\n
\n '}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.CONTENT;e.contentMarkup='\n
\n\n
\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.BUTTON_CONTAINER,i=o.default.BUTTON,a=o.default.BUTTON_LOADER;e.buttonMarkup='\n
\n\n \n\n
\n
\n
\n
\n
\n\n
\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),r=n(2),i=n(0),a=i.default.ICON,s=i.default.ICON_CUSTOM,c=["error","warning","success","info"],l={error:r.errorIconMarkup(),warning:r.warningIconMarkup(),success:r.successIconMarkup()},u=function(t,e){var n=a+"--"+t;e.classList.add(n);var o=l[t];o&&(e.innerHTML=o)},f=function(t,e){e.classList.add(s);var n=document.createElement("img");n.src=t,e.appendChild(n)},d=function(t){if(t){var e=o.injectElIntoModal(r.iconMarkup);c.includes(t)?u(t,e):f(t,e)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),r=n(4),i=function(t){navigator.userAgent.includes("AppleWebKit")&&(t.style.display="none",t.offsetHeight,t.style.display="")};e.initTitle=function(t){if(t){var e=r.injectElIntoModal(o.titleMarkup);e.textContent=t,i(e)}},e.initText=function(t){if(t){var e=document.createDocumentFragment();t.split("\n").forEach(function(t,n,o){e.appendChild(document.createTextNode(t)),n0}).forEach(function(t){b.classList.add(t)})}n&&t===c.CONFIRM_KEY&&b.classList.add(s),b.textContent=r;var g={};return g[t]=i,f.setActionValue(g),f.setActionOptionsFor(t,{closeModal:p}),b.addEventListener("click",function(){return u.onAction(t)}),m},p=function(t,e){var n=r.injectElIntoModal(l.footerMarkup);for(var o in t){var i=t[o],a=d(o,i,e);i.visible&&n.appendChild(a)}0===n.children.length&&n.remove()};e.default=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r=n(4),i=n(2),a=n(5),s=n(6),c=n(0),l=c.default.CONTENT,u=function(t){t.addEventListener("input",function(t){var e=t.target,n=e.value;a.setActionValue(n)}),t.addEventListener("keyup",function(t){if("Enter"===t.key)return s.onAction(o.CONFIRM_KEY)}),setTimeout(function(){t.focus(),a.setActionValue("")},0)},f=function(t,e,n){var o=document.createElement(e),r=l+"__"+e;o.classList.add(r);for(var i in n){var a=n[i];o[i]=a}"input"===e&&u(o),t.appendChild(o)},d=function(t){if(t){var e=r.injectElIntoModal(i.contentMarkup),n=t.element,o=t.attributes;"string"==typeof n?f(e,n,o):e.appendChild(n)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=function(){var t=o.stringToNode(r.overlayMarkup);document.body.appendChild(t)};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(5),r=n(6),i=n(1),a=n(3),s=n(0),c=s.default.MODAL,l=s.default.BUTTON,u=s.default.OVERLAY,f=function(t){t.preventDefault(),v()},d=function(t){t.preventDefault(),g()},p=function(t){if(o.default.isOpen)switch(t.key){case"Escape":return r.onAction(a.CANCEL_KEY)}},m=function(t){if(o.default.isOpen)switch(t.key){case"Tab":return f(t)}},b=function(t){if(o.default.isOpen)return"Tab"===t.key&&t.shiftKey?d(t):void 0},v=function(){var t=i.getNode(l);t&&(t.tabIndex=0,t.focus())},g=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l),n=e.length-1,o=e[n];o&&o.focus()},h=function(t){t[t.length-1].addEventListener("keydown",m)},w=function(t){t[0].addEventListener("keydown",b)},y=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l);e.length&&(h(e),w(e))},x=function(t){if(i.getNode(u)===t.target)return r.onAction(a.CANCEL_KEY)},_=function(t){var e=i.getNode(u);e.removeEventListener("click",x),t&&e.addEventListener("click",x)},k=function(t){o.default.timer&&clearTimeout(o.default.timer),t&&(o.default.timer=window.setTimeout(function(){return r.onAction(a.CANCEL_KEY)},t))},O=function(t){t.closeOnEsc?document.addEventListener("keyup",p):document.removeEventListener("keyup",p),t.dangerMode?v():g(),y(),_(t.closeOnClickOutside),k(t.timer)};e.default=O},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(37),a=n(38),s={title:null,text:null,icon:null,buttons:r.defaultButtonList,content:null,className:null,closeOnClickOutside:!0,closeOnEsc:!0,dangerMode:!1,timer:null},c=Object.assign({},s);e.setDefaults=function(t){c=Object.assign({},s,t)};var l=function(t){var e=t&&t.button,n=t&&t.buttons;return void 0!==e&&void 0!==n&&o.throwErr("Cannot set both 'button' and 'buttons' options!"),void 0!==e?{confirm:e}:n},u=function(t){return o.ordinalSuffixOf(t+1)},f=function(t,e){o.throwErr(u(e)+" argument ('"+t+"') is invalid")},d=function(t,e){var n=t+1,r=e[n];o.isPlainObject(r)||void 0===r||o.throwErr("Expected "+u(n)+" argument ('"+r+"') to be a plain object")},p=function(t,e){var n=t+1,r=e[n];void 0!==r&&o.throwErr("Unexpected "+u(n)+" argument ("+r+")")},m=function(t,e,n,r){var i=typeof e,a="string"===i,s=e instanceof Element;if(a){if(0===n)return{text:e};if(1===n)return{text:e,title:r[0]};if(2===n)return d(n,r),{icon:e};f(e,n)}else{if(s&&0===n)return d(n,r),{content:e};if(o.isPlainObject(e))return p(n,r),e;f(e,n)}};e.getOpts=function(){for(var t=[],e=0;e