diff --git a/pr-previews/pr-673/2afe3fb4a968f105fe53dbf6f88d99ef93379730-3161ed6edd3c74a38318.js b/pr-previews/pr-673/2afe3fb4a968f105fe53dbf6f88d99ef93379730-3161ed6edd3c74a38318.js new file mode 100644 index 00000000..946b782e --- /dev/null +++ b/pr-previews/pr-673/2afe3fb4a968f105fe53dbf6f88d99ef93379730-3161ed6edd3c74a38318.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkTheia_Website=self.webpackChunkTheia_Website||[]).push([[723],{6154:function(e,t,i){var r=i(7437);t.A=()=>(0,r.Y)("div",{className:"header__banner"},(0,r.Y)("h2",{style:{fontSize:"2.1rem"}},(0,r.Y)("a",{href:"https://eclipsesource.com/blogs/2024/11/07/eclipse-theia-1-54-release-news-and-noteworthy/",rel:"noopener noreferrer"},"Learn about the latest 1.55 Release")," and ",(0,r.Y)("a",{href:"https://eclipsesource.com/blogs/2024/09/12/the-eclipse-theia-community-release-2024-08/"},"the latest Community Release (2024-08)"),".",(0,r.Y)("br",null),"Stay up-to-date: ",(0,r.Y)("a",{href:"https://twitter.com/theia_ide"},"follow us on Twitter")," and ",(0,r.Y)("a",{href:"https://accounts.eclipse.org/mailing-list/friends-of-theia"},'register to the "Friends of Theia" mailing list'),"."))},7167:function(e,t,i){i.d(t,{Iy:function(){return O},XO:function(){return Y},gD:function(){return k},ZE:function(){return P}});var r=i.p+"static/vuengine-studio-e8c2c71cec497ffe39a57442c029cb27.png",s=i.p+"static/vuengine-studio-min-f112fc4dac0347843579e3a988d61aba.png",n=i.p+"static/record-evolution-screenshot-7da92797b9209f045ac977532bd77c14.png",a=i.p+"static/record-evolution-screenshot-min-06297125dcded5d4a70e8cf06e8adee0.png",o=i.p+"static/arm_mbedstudio-ss-0791be6cb04538de13948610bbeed7b3.png",l=i.p+"static/arm_mbedstudio-ss-min-a8fd7c751f510d9d3c7fd0134167d60a.png",d=i.p+"static/redhat-crw-ss-703c2d37e15a36d9c4132818514e5fb3.png",c=i.p+"static/redhat-crw-ss-min-abe33728579af51bd502facbb7e3ce92.png",u=i.p+"static/coffeeditor-0c020d433326ac590f8805b874c14200.gif",p=i.p+"static/coffeeditor-min-0c020d433326ac590f8805b874c14200.gif",g=i.p+"static/logicloud-51453f4d7610f486646350f5c1a34bb9.png",f=i.p+"static/logicloud-min-630c5fdb9f899e52a55d2dcd6897c630.png",M=i.p+"static/blueprint-0a8595647cfdb2eb7c006730704cc7a0.png",m=i.p+"static/blueprint-min-d01cc012c94ae596708e3fcb603493c3.png",h=i.p+"static/jonas-helming-aca725b00f06acac10b198240c1b1f3b.jpg",v=i.p+"static/marc-dumais-ff2115d30d9d7fec46cd1daf6cf2ce97.jpg",w=i.p+"static/thomas-mader-caeb99d27b52607eeaf2ecaa29d0fef6.jpg",y=i.p+"static/smartface-de9e6d6b3bf64a91f1fcdf4fc13c8cbd.gif",A=i.p+"static/smartface-min-432f3b1943962c29a5ffbc1dd0054aa4.gif",I=i.p+"static/cdtcloudblueprint-74d44b2cac35c90589727d2b601fcb79.gif",L=i.p+"static/cdtcloudblueprint-min-0adc296a889db33c8ac42cbaf658f122.gif",T=i.p+"static/python-4d83351cdbaa92cca2ce1250b8eaa1cf.png",S=i.p+"static/java-0b01ae5598a06693a618955e6113f3fa.png",N=i.p+"static/github-c5f27d4a6c95e952b4c82b3e0574143d.png",j=i.p+"static/gitlens-e81786613170edeae647f41700051e63.png",D=i.p+"static/eslint-44b6cc7f223f80228cde980065d43fce.png",E=i.p+"static/docker-6d1afdb456643d6031423e71908adb98.png",b=i.p+"static/code_realtime_theia-67933551331ed146472406d6e2f2b3d0.png",x=i.p+"static/code_realtime_theia_min-77e385c991c7276558de3a40dc4d1441.png",C=i.p+"static/renesas-qcstudio-b9560d1c94f71792efe8fe429f0cfcdb.png",z=i.p+"static/renesas-qcstudio-min-aee438f3e3510da13b88e4f634777f21.png";const O=[{homepage_url:"https://about.google/",src:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDc0IDI0Ij48cGF0aCBmaWxsPSIjNDI4NUY0IiBkPSJNOS4yNCA4LjE5djIuNDZoNS44OGMtLjE4IDEuMzgtLjY0IDIuMzktMS4zNCAzLjEtLjg2Ljg2LTIuMiAxLjgtNC41NCAxLjgtMy42MiAwLTYuNDUtMi45Mi02LjQ1LTYuNTRzMi44My02LjU0IDYuNDUtNi41NGMxLjk1IDAgMy4zOC43NyA0LjQzIDEuNzZMMTUuNCAyLjVDMTMuOTQgMS4wOCAxMS45OCAwIDkuMjQgMCA0LjI4IDAgLjExIDQuMDQuMTEgOXM0LjE3IDkgOS4xMyA5YzIuNjggMCA0LjctLjg4IDYuMjgtMi41MiAxLjYyLTEuNjIgMi4xMy0zLjkxIDIuMTMtNS43NSAwLS41Ny0uMDQtMS4xLS4xMy0xLjU0SDkuMjR6Ii8+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTI1IDYuMTljLTMuMjEgMC01LjgzIDIuNDQtNS44MyA1LjgxIDAgMy4zNCAyLjYyIDUuODEgNS44MyA1LjgxczUuODMtMi40NiA1LjgzLTUuODFjMC0zLjM3LTIuNjItNS44MS01LjgzLTUuODF6bTAgOS4zM2MtMS43NiAwLTMuMjgtMS40NS0zLjI4LTMuNTIgMC0yLjA5IDEuNTItMy41MiAzLjI4LTMuNTJzMy4yOCAxLjQzIDMuMjggMy41MmMwIDIuMDctMS41MiAzLjUyLTMuMjggMy41MnoiLz48cGF0aCBmaWxsPSIjNDI4NUY0IiBkPSJNNTMuNTggNy40OWgtLjA5Yy0uNTctLjY4LTEuNjctMS4zLTMuMDYtMS4zQzQ3LjUzIDYuMTkgNDUgOC43MiA0NSAxMmMwIDMuMjYgMi41MyA1LjgxIDUuNDMgNS44MSAxLjM5IDAgMi40OS0uNjIgMy4wNi0xLjMyaC4wOXYuODFjMCAyLjIyLTEuMTkgMy40MS0zLjEgMy40MS0xLjU2IDAtMi41My0xLjEyLTIuOTMtMi4wN2wtMi4yMi45MmMuNjQgMS41NCAyLjMzIDMuNDMgNS4xNSAzLjQzIDIuOTkgMCA1LjUyLTEuNzYgNS41Mi02LjA1VjYuNDloLTIuNDJ2MXptLTIuOTMgOC4wM2MtMS43NiAwLTMuMS0xLjUtMy4xLTMuNTIgMC0yLjA1IDEuMzQtMy41MiAzLjEtMy41MiAxLjc0IDAgMy4xIDEuNSAzLjEgMy41NC4wMSAyLjAzLTEuMzYgMy41LTMuMSAzLjV6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNSIgZD0iTTM4IDYuMTljLTMuMjEgMC01LjgzIDIuNDQtNS44MyA1LjgxIDAgMy4zNCAyLjYyIDUuODEgNS44MyA1LjgxczUuODMtMi40NiA1LjgzLTUuODFjMC0zLjM3LTIuNjItNS44MS01LjgzLTUuODF6bTAgOS4zM2MtMS43NiAwLTMuMjgtMS40NS0zLjI4LTMuNTIgMC0yLjA5IDEuNTItMy41MiAzLjI4LTMuNTJzMy4yOCAxLjQzIDMuMjggMy41MmMwIDIuMDctMS41MiAzLjUyLTMuMjggMy41MnoiLz48cGF0aCBmaWxsPSIjMzRBODUzIiBkPSJNNTggLjI0aDIuNTF2MTcuNTdINTh6Ii8+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTY4LjI2IDE1LjUyYy0xLjMgMC0yLjIyLS41OS0yLjgyLTEuNzZsNy43Ny0zLjIxLS4yNi0uNjZjLS40OC0xLjMtMS45Ni0zLjctNC45Ny0zLjctMi45OSAwLTUuNDggMi4zNS01LjQ4IDUuODEgMCAzLjI2IDIuNDYgNS44MSA1Ljc2IDUuODEgMi42NiAwIDQuMi0xLjYzIDQuODQtMi41N2wtMS45OC0xLjMyYy0uNjYuOTYtMS41NiAxLjYtMi44NiAxLjZ6bS0uMTgtNy4xNWMxLjAzIDAgMS45MS41MyAyLjIgMS4yOGwtNS4yNSAyLjE3YzAtMi40NCAxLjczLTMuNDUgMy4wNS0zLjQ1eiIvPjwvc3ZnPg==",name:"Google Logo"},{homepage_url:"https://www.torocloud.com/",src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjIiPjxwYXRoIGQ9Ik0yNzIuMjkxIDEyNy45OTJoLTIzLjkzNVYuMDA4aDQwLjA4M2M5LjI2NCAwIDE3LjE5Ni45IDIzLjc5NiAyLjY5OSA2LjU5OSAxLjggMTIuMDEyIDQuMzIyIDE2LjIzOSA3LjU2OGEyOS41MTYgMjkuNTE2IDAgMDE5LjI5MyAxMS42MzcgMzguNzU2IDM4Ljc1NiAwIDAxMi45NTUgMTQuNTQxdjEuMjI5Yy0uMDA5LjI4NC0uMDA5LjU2OC0uMDM5Ljg1MXYtLjAwMWEzOC43MDEgMzguNzAxIDAgMDEtMS45NzQgMTAuNTEyIDM0LjgwNSAzNC44MDUgMCAwMS01LjgyMyAxMC40NCAzOC41NTIgMzguNTUyIDAgMDEtOS4zODkgOC4yMzJjLTMuNzI1IDIuMzYtNi4wNDIgNC40NTMtMTAuODAyIDUuODY5IDMuMTk0IDEuNzE0IDQuMjIgMy4wMTUgNi41MjggNi4yMDJMMzUyLjg0OCAxMjhsLTIyLjU0NC0uMDA4YTExLjYwNSAxMS42MDUgMCAwMS01LjU4Mi0xLjIzOSAxMS4xNDcgMTEuMTQ3IDAgMDEtMy45LTMuNTQ0bC0yOC41MzQtNDAuOTc2YTkuNzQ4IDkuNzQ4IDAgMDAtMy41Mi0zLjI3NmMtMS4yOC0uNjQ5LTMuMTcyLS45NzQtNS42NzYtLjk3N2gtMTAuODAxdjUwLjAxMnpNMTAxLjMyOCAyMy44MDlINjIuNzA3VjEyOGgtMjMuODhWMjMuODA5SC4wMjVWLjAwOGgxMDEuMzAzdjIzLjgwMXptMzE4LjgzOCAxMDQuMTY1bC0uMTc3LjAwOXYtLjAxYy0zNy4xMjItLjIyNi02Ny4xNDEtMjguNzgzLTY3LjE0MS02My45NzdsLjAwMi0uOTkyYzAtMjkuNDgzIDE5LjQ3My01NC40OTggNDguMzM5LTYyLjM0My4yNzYtLjEwOS41NTgtLjIwMy44NDQtLjI4MSAyLjc2LS43NDIgNS4zNjggMCA1LjgyMyAxLjY0N2EyLjIzMyAyLjIzMyAwIDAxLS4zMDQgMS43MzZjLTIyLjM1NSA1LjkyOS0zOC44NzcgMjYuODY0LTM4Ljg3NyA1MS43ODFhNTQuNzk4IDU0Ljc5OCAwIDAwNC4xMzQgMjAuOTYgNTEuMjM1IDUxLjIzNSAwIDAwMy4wNzQgNi4yNTJjOC45OCAxNS42MzUgMjUuNDYgMjYuMTQ1IDQ0LjMyNyAyNi4yNDcgMTguODY3LS4xMDIgMzUuMzQ3LTEwLjYxMiA0NC4zMjctMjYuMjQ3YTc1LjYxMiA3NS42MTIgMCAwMC40NjMtLjgxOSA1MS4yMzUgNTEuMjM1IDAgMDAyLjk2OS02LjMyNSA1NC43OTggNTQuNzk4IDAgMDAzLjc3Ni0yMC4wNjhjMC0yNC45MTctMTYuNTIyLTQ1Ljg1Mi0zOC44NzctNTEuNzgxYTIuMjI1IDIuMjI1IDAgMDEtLjMwNC0xLjczNmMuNDU1LTEuNjQ3IDMuMDYyLTIuMzg5IDUuODIzLTEuNjQ3LjI4Ni4wNzguNTY4LjE3Mi44NDQuMjgxIDI4Ljg2NiA3Ljg0NSA0OC4zMzkgMzIuODYgNDguMzM5IDYyLjM0M2wuMDAxLjk5MmMwIDM1LjE5NC0zMC4wMTggNjMuNzUxLTY3LjE0IDYzLjk3N3YuMDFhNS4yNDIgNS4yNDIgMCAwMS0uMTc3LS4wMDloLS4wODh6bS0yNTEuNTIxIDBsLS4xNzcuMDA5di0uMDFjLTM3LjEyMi0uMjI2LTY3LjE0LTI4Ljc4My02Ny4xNC02My45NzdsLjAwMS0uOTkyYzAtMjkuNDgzIDE5LjQ3My01NC40OTggNDguMzM5LTYyLjM0My4yNzYtLjEwOS41NTgtLjIwMy44NDQtLjI4MSAyLjc2MS0uNzQyIDUuMzY4IDAgNS44MjQgMS42NDdhMi4yMzMgMi4yMzMgMCAwMS0uMzA0IDEuNzM2Yy0yMi4zNTYgNS45MjktMzguODc3IDI2Ljg2NC0zOC44NzcgNTEuNzgxYTU0Ljc3NiA1NC43NzYgMCAwMDMuOTk2IDIwLjYyNGwuMTM3LjMzNmE1MS4yMzUgNTEuMjM1IDAgMDAyLjYxMSA1LjQzM2wuMjcxLjQ4NS4xOTIuMzM0YzguOTggMTUuNjM1IDI1LjQ2IDI2LjE0NSA0NC4zMjcgMjYuMjQ3IDE4Ljg2OC0uMTAyIDM1LjM0OC0xMC42MTIgNDQuMzI3LTI2LjI0N2E0Ni4wNjIgNDYuMDYyIDAgMDAuNDYzLS44MTkgNTEuMjM1IDUxLjIzNSAwIDAwMi42MTEtNS40MzNsLjEzOC0uMzM2YTU0Ljc5OCA1NC43OTggMCAwMDMuOTk2LTIwLjYyNGMwLTI0LjkxNy0xNi41MjEtNDUuODUyLTM4Ljg3Ny01MS43ODFhMi4yMzMgMi4yMzMgMCAwMS0uMzA0LTEuNzM2Yy40NTUtMS42NDcgMy4wNjMtMi4zODkgNS44MjMtMS42NDcuMjg2LjA3OC41NjguMTcyLjg0NC4yODEgMjguODY2IDcuODQ1IDQ4LjMzOSAzMi44NiA0OC4zMzkgNjIuMzQzbC4wMDIuOTkyYzAgMzUuMTk0LTMwLjAxOSA2My43NTEtNjcuMTQxIDYzLjk3N3YuMDFhNS4zMiA1LjMyIDAgMDEtLjE3Ni0uMDA5aC0uMDg5ek0yODguNzg0IDE5LjU0M2gtMTYuNzEzbC4yMiA0MS4zNTdoMTUuNzczYzE0LjUxNi4yNTYgMjEuNzQ2LTUuNjc5IDI1LjMyNy0xMS42MTcgNC4yODItNy4xMDcgMy4zMzMtMTQuMjE0IDMuMzc3LTEwLjY5NWwtLjAwMS0uMTEuMDAxLjExaC0uMDAxdi0uMTk3Yy0uMDk4LTE0LjMxOS0xMC44NTctMTguODQ4LTI3Ljk4My0xOC44NDh6bTI3Ljk4MyAxOC45MzV2LS4wODcuMDQxbC4wMDEuMTU2LS4wMDEtLjExem0xOTQuMTE4LTIxLjg5MWExMi4wNTcgMTIuMDU3IDAgMDEtMi41NCAzLjc5OCAxMS44ODQgMTEuODg0IDAgMDEtMy44MDggMi41MzggMTEuNzg1IDExLjc4NSAwIDAxLTkuMjQxIDAgMTEuNjc4IDExLjY3OCAwIDAxLTYuMzM2LTYuMzM2IDExLjc2MyAxMS43NjMgMCAwMTAtOS4yNDYgMTEuNjg0IDExLjY4NCAwIDAxNi4zMzYtNi4zMzYgMTEuODAzIDExLjgwMyAwIDAxOS4yNDEgMCAxMS45MDMgMTEuOTAzIDAgMDEzLjgwOCAyLjUzOSAxMi4wMzMgMTIuMDMzIDAgMDEyLjU0IDMuNzk5IDExLjgzNiAxMS44MzYgMCAwMTAgOS4yNDR6bS0xLjk1OC04LjQyM2E5LjY1NyA5LjY1NyAwIDAwLTUuMjAzLTUuMjAyIDkuNjk3IDkuNjk3IDAgMDAtNy42MDMgMCA5LjY2IDkuNjYgMCAwMC01LjIwMyA1LjIwMiA5LjcxIDkuNzEgMCAwMDAgNy41OTggOS42NTUgOS42NTUgMCAwMDUuMjAzIDUuMjAxIDkuNjg4IDkuNjg4IDAgMDA3LjYwMyAwIDkuNjUyIDkuNjUyIDAgMDA1LjIwMy01LjIwMSA5LjcxIDkuNzEgMCAwMDAtNy41OTh6bS0xMS4wNTIgNS41MjZ2NC42NDlhLjM4My4zODMgMCAwMS0uMTI4LjMwNi4zOTcuMzk3IDAgMDEtLjMwMS4xMjFoLTEuNzk5YS40MDUuNDA1IDAgMDEtLjQwMy0uNDAzbC4wMDEtLjAyNFY1LjU4NmwtLjAwMS0uMDIyYzAtLjIyMS4xODItLjQwMy40MDItLjQwM0g0OTkuNTcxYTcuMzY5IDcuMzY5IDAgMDEyLjUyMS4zMiAzLjQzMiAzLjQzMiAwIDAxMS43ODYgMS40NDkgNC42NDUgNC42NDUgMCAwMS4wODkgNC41ODkgMy42MDQgMy42MDQgMCAwMS0xLjUzNiAxLjQ1NGMuMDUyLjA5LjA5LjE2MS4xMjIuMjE0bDIuNzI2IDQuOTU1YS40MDkuNDA5IDAgMDEtLjAxOS40MTFsLS4zNjUuMjEzaC0yLjAxNmEuMzY2LjM2NiAwIDAxLS4zNjQtLjIyN2wtMi41ODYtNC44NDloLTIuMDU0em0yLjE1Ni0yLjQwNWMuNDk4LjAzMi45ODYtLjE0NiAxLjM0NC0uNDkxLjM0My0uMzgxLjUxOC0uODg0LjQ4Ny0xLjM5NWExLjY4MiAxLjY4MiAwIDAwLS43OTQtMS42MDcgMy42IDMuNiAwIDAwLTEuNTYxLS4yMzloLTEuNjMydjMuNzMyaDIuMTU2eiIgZmlsbD0iIzVlYjZlNCIvPjwvc3ZnPg==",name:"ToroCloud logo"},{homepage_url:"https://www.huawei.com/",src:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODQyLjUyIDU2Ni45MyI+PHJhZGlhbEdyYWRpZW50IGlkPSJBIiBjeD0iMzg2LjA0MSIgY3k9IjEzNi4zMzkiIHI9IjM0NS42NiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk4NTYgMCAwIDAuOTg1NiAxMi4wNzI4IDMuOTA5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y3YmZhNCIvPjxzdG9wIG9mZnNldD0iLjQzIiBzdG9wLWNvbG9yPSIjZTYwMDEyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYTAwMDAwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI0EpIiBkPSJNMjk4LjE2IDM3Mi4yMnMuODUtLjY2LjQtMS43NmguMDJDMjQzLjA4IDI0OS4yMyAxNjcuMTYgMTU3LjMgMTY3LjE2IDE1Ny4zcy00MS4zIDM5LjItMzguMzYgNzguNDdjMS41NyAyOS43IDIzLjkzIDQ3LjMgMjMuOTMgNDcuMyAzNi4wMiAzNS4xIDEyMy4yMyA3OS40IDE0My41IDg5LjQ3LjI3LjEgMS4zLjQ0IDEuOTMtLjM0eiIvPjxyYWRpYWxHcmFkaWVudCBpZD0iQiIgY3g9IjM4Ni4wMzgiIGN5PSIxMzYuMjczIiByPSIzNDUuNzE1IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuOTg1NiAwIDAgMC45ODU2IDEyLjA3MjggMy45MDkpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjdiZmE0Ii8+PHN0b3Agb2Zmc2V0PSIuNDMiIHN0b3AtY29sb3I9IiNlNjAwMTIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNhMDAwMDAiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjQikiIGQ9Ik0yODQuNjcgNDAyLjI0Yy0uMzYtMS4zLTEuODctMS4zLTEuODctMS4zdi0uMDVsLTE0NS4xOCA1LjA3YzE1Ljc0IDI4LjA3IDQyLjI2IDQ5Ljg4IDY5Ljg4IDQzLjE4IDE5LjA2LTQuNzYgNjIuMjQtMzQuODggNzYuNS00NS4wNmwtLjA0LS4wM2MxLjEtMSAuNzItMS44LjcyLTEuOHoiLz48cmFkaWFsR3JhZGllbnQgaWQ9IkMiIGN4PSIzODYuMDM3IiBjeT0iMTM2LjM0OCIgcj0iMzQ1LjYzNyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk4NTYgMCAwIDAuOTg1NiAxMi4wNzI4IDMuOTA5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y3YmZhNCIvPjxzdG9wIG9mZnNldD0iLjQzIiBzdG9wLWNvbG9yPSIjZTYwMDEyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYTAwMDAwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI0MpIiBkPSJNMjg2Ljg3IDM4OS4yYy43LTEuMTQtLjU1LTIuMTYtLjU1LTIuMTZsLjAxLS4wMUMyMjIuNTYgMzQ0IDk4Ljk3IDI3Ny45NyA5OC45NyAyNzcuOTdjLTExLjIzIDM0Ljc4IDMuOTIgNjIuOCAzLjkyIDYyLjggMTUuNzQgMzMuMyA0NS44IDQzLjM4IDQ1LjggNDMuMzggMTMuOSA1LjcgMjcuNzcgNi4xIDI3Ljc3IDYuMSAyLjE3LjQgODYuMzQuMDUgMTA4LjktLjA2Ljk3LS4wMiAxLjUtMSAxLjUtMXoiLz48cmFkaWFsR3JhZGllbnQgaWQ9IkQiIGN4PSIzODYuMDI4IiBjeT0iMTM2LjM1NyIgcj0iMzQ1LjY0MyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk4NTYgMCAwIDAuOTg1NiAxMi4wNzI4IDMuOTA5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y3YmZhNCIvPjxzdG9wIG9mZnNldD0iLjQzIiBzdG9wLWNvbG9yPSIjZTYwMDEyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYTAwMDAwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI0QpIiBkPSJNMjk2LjUgOTQuNmMtNi4zMi41Ni0yMy4zNyA0LjQ0LTIzLjM3IDQuNDQtMzguNDMgOS45My00Ny41MiA0NC44LTQ3LjUyIDQ0LjgtNyAyMS45Ni4yIDQ2LjA1LjIgNDYuMDUgMTIuODMgNTYuOTMgNzUuOTYgMTUwLjQ3IDg5LjU0IDE3MC4xMi45Ni45NiAxLjcyLjYgMS43Mi42IDEuNDYtLjQgMS4zNi0xLjggMS4zNi0xLjhsLjAyLjAyQzMzOS4zIDE0OS45NyAyOTYuNSA5NC42IDI5Ni41IDk0LjZ6Ii8+PHJhZGlhbEdyYWRpZW50IGlkPSJFIiBjeD0iMzg2LjEwMyIgY3k9IjEzNi4zNTkiIHI9IjM0Ni4wMyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk4NTYgMCAwIDAuOTg1NiAxMi4wNzI4IDMuOTA5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y3YmZhNCIvPjxzdG9wIG9mZnNldD0iLjQzIiBzdG9wLWNvbG9yPSIjZTYwMDEyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYTAwMDAwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI0UpIiBkPSJNMzQ0LjU3IDM2MC42YzEuNC41NCAyLjEtLjggMi4xLS44bC4wMS4wMmMxMy45My0yMC4xNCA3Ni43LTExMy4xOCA4OS40Ny0xNjkuOSAwIDAgNi45Mi0yNy40NS4yMy00Ni4wNSAwIDAtOS41LTM1LjQyLTQ3Ljk4LTQ0Ljc4IDAgMC0xMS4wOC0yLjgtMjIuODYtNC40NyAwIDAtNDMuMDIgNTUuNC0yMi4xIDI2NC4zOGguMDNjLjE1IDEuMzIgMS4xIDEuNiAxLjEgMS42eiIvPjxyYWRpYWxHcmFkaWVudCBpZD0iRiIgY3g9IjM4Ni4xMDUiIGN5PSIxMzYuMzU2IiByPSIzNDYuMDEzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuOTg1NiAwIDAgMC45ODU2IDEyLjA3MjggMy45MDkpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjdiZmE0Ii8+PHN0b3Agb2Zmc2V0PSIuNDMiIHN0b3AtY29sb3I9IiNlNjAwMTIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNhMDAwMDAiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjRikiIGQ9Ik0zNzguOTMgNDAxLjAzcy0xLjI3LjE2LTEuNjMgMS4xMmMwIDAtLjMgMS4zLjU2IDEuOTZsLS4wMi4wMWMxMy45IDkuOTcgNTYuMDMgMzkuNDIgNzYuMzMgNDUuMTQgMCAwIDM3LjUzIDEyLjggNzAuMTMtNDMuMmwtMTQ1LjM3LTUuMDJ6Ii8+PHJhZGlhbEdyYWRpZW50IGlkPSJHIiBjeD0iMzg2LjEwMyIgY3k9IjEzNi4zNjYiIHI9IjM0Ni4wMDgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC45ODU2IDAgMCAwLjk4NTYgMTIuMDcyOCAzLjkwOSkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmN2JmYTQiLz48c3RvcCBvZmZzZXQ9Ii40MyIgc3RvcC1jb2xvcj0iI2U2MDAxMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2EwMDAwMCIvPjwvcmFkaWFsR3JhZGllbnQ+PHBhdGggZmlsbD0idXJsKCNHKSIgZD0iTTU2Mi45NSAyNzcuNjdzLTEyMy40IDY2LjIzLTE4Ny4yMiAxMDkuMjdsLjAyLjAycy0xLjE1Ljc2LS43NSAyLjFjMCAwIC42IDEuMSAxLjUgMS4xdi4wMWwxMTEuNS0uMjdzMTEuMTgtLjQ0IDI1LTUuNzVjMCAwIDMwLjc1LTkuNzggNDYuNzMtNDQuNy4wMS4wMSAxNC4yNS0yOC41IDMuMjMtNjEuNzd6Ii8+PHJhZGlhbEdyYWRpZW50IGlkPSJIIiBjeD0iMzg2LjEwNCIgY3k9IjEzNi4zNzEiIHI9IjM0Ni4wMDIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC45ODU2IDAgMCAwLjk4NTYgMTIuMDcyOCAzLjkwOSkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmN2JmYTQiLz48c3RvcCBvZmZzZXQ9Ii40MyIgc3RvcC1jb2xvcj0iI2U2MDAxMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2EwMDAwMCIvPjwvcmFkaWFsR3JhZGllbnQ+PHBhdGggZmlsbD0idXJsKCNIKSIgZD0iTTM2NC4wNyAzNzIuMjJzMSAuNzUgMS45NS4xNHYuMDFjMjAuOC0xMC4zMyAxMDcuMzUtNTQuMzYgMTQzLjItODkuMyAwIDAgMjIuNy0xOC4yMyAyMy45LTQ3LjUgMi42Mi00MC42NS0zOC4zLTc4LjI3LTM4LjMtNzguMjdzLTc1LjcgOTEuNjMtMTMxLjE3IDIxMi42bC4wMy0uMDFzLS42NiAxLjQuNCAyLjN6Ii8+PHBhdGggZD0iTTc3NC43NiAyODQuMjRoLTgyLjJ2LTcyLjM4aC0zNi40djE3OS40aDM2LjRWMzE4LjRoODIuMnY3Mi44NmgzNi40di0xNzkuNGgtMzYuNHptMjA1LjA2IDMwLjNjMCAyOS4xNy0xNC40OCA0NC43NS00MC43OCA0NC43NS0yNi40NSAwLTQxLjAyLTE2LjAyLTQxLjAyLTQ2VjIxMS45N2gtMzYuNHYxMDIuNThjMCA1MC40NiAyOC4wNCA3OS40IDc2LjkzIDc5LjQgNDkuMzYgMCA3Ny42Ni0yOS40OCA3Ny42Ni04MC45di0xMDEuMmgtMzYuNHYxMDIuNjd6bTQyMC42OCAyMC42OGwtNDAuNzMtMTIzLjRoLTI5LjdsLTQwLjczIDEyMy40LTM5LjYzLTEyMy4yOGgtMzguNzRsNjIuNTIgMTc5LjMzaDMwLjE1bDQwLjgtMTE3LjggNDAuNzggMTE3LjhoMzAuNEwxNDc4IDIxMS45NGgtMzcuNzV6bTE0Mi43NC0yMS4xNmg2Ni4ydi0zMi42OGgtNjYuMnYtMzYuNzJoOTYuMXYtMzIuNjhoLTEzMnYxNzkuMTdoMTM1LjQ3di0zMi42N2gtOTkuNTZ6bTE0Mi45Ni0xMDIuMmgzNS45djE3OS4xN2gtMzUuOXptLTU3Mi41LjAxbC03OS4wNCAxNzkuM2gzNy4xNWwxNi4zNC0zNy4zNGg4Mi4xbDE2LjEgMzcuMzRoMzguMTVsLTc4Ljc2LTE3OS4zaC0zMi4wNXptLTEyIDEwOS42bDI3LjQzLTY0LjIgMjcuNiA2NC4yaC01NS4wNHoiIGZpbGw9IiMyMzE4MTUiLz48L3N2Zz4=",name:"Huawei logo"}],k=[{title:"Getting started with Eclipse Theia",href:"https://youtu.be/xhSOdAJyess",speaker:"Jonas Helming, Theia project lead and Principal Software Architect at EclipseSource",src:h},{title:"Why Eclipse Theia",href:"https://youtu.be/xs0haWTulrY",speaker:"Marc Dumais, Theia project lead and Software Developer at Ericsson AB",src:v},{title:"How to be an Eclipse Theia Adopter",href:"https://youtu.be/SPO8pudgJak",speaker:"Jonas Helming, Theia project lead and Principal Software Architect at EclipseSource",src:h},{title:"The Eclipse Theia Architecture",href:"https://youtu.be/KN2JUsFuEhU",speaker:"Thomas Mรคder, Theia project lead and Principal Software Developer at Red Hat",src:w}],P=[{href:"https://os.mbed.com/studio/",src:o,thumb:l,alt:"Mbed Studio by Arm"},{href:"https://eclipse.dev/cdt-cloud/",src:I,thumb:L,alt:"CDT Cloud Blueprint"},{href:"https://www.eclipse.dev/emfcloud/#coffeeeditoroverview",src:u,thumb:p,alt:"Coffee Editor Example by EclipseSource"},{href:"https://www.neuron-automation.eu/engineering-toolkit/your-automation-toolchain/logi-cloud",src:g,thumb:f,alt:"logi.cloud by logi.cals"},{href:"https://theia-ide.org/#theiaide",src:M,thumb:m,alt:"Theia IDE"},{href:"https://www.record-evolution.de/reswarm",src:n,thumb:a,alt:"Record Evolution Screenshot"},{href:"https://www.vuengine.dev",src:r,thumb:s,alt:"VUEngine Studio"},{href:"https://smartface.io",src:y,thumb:A,alt:"Smartface"},{href:"https://secure-dev-ops.github.io/code-realtime",src:b,thumb:x,alt:"Code RealTime"},{href:"https://www.renesas.com/qcstudio",src:C,thumb:z,alt:"QuickConnect Studio"},{href:"https://developers.redhat.com/products/codeready-workspaces/overview",src:d,thumb:c,alt:"Red Hat CodeReady Workspaces"}],Y=[{href:"https://open-vsx.org/extension/ms-python/python",thumb:T,alt:"Python"},{href:"https://open-vsx.org/extension/redhat/java",thumb:S,alt:"Language support for Java"},{href:"https://open-vsx.org/extension/GitHub/vscode-pull-request-github",thumb:N,alt:"GitHub Pull Requests and Issues"},{href:"https://open-vsx.org/extension/eamodio/gitlens",thumb:j,alt:"GitLens โ€” Git supercharged"},{href:"https://open-vsx.org/extension/dbaeumer/vscode-eslint",thumb:D,alt:"ESLint"},{href:"https://open-vsx.org/extension/vscode/npm",thumb:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPIAAADyBAMAAACFRoWXAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAIVBMVEUAAADLODf////rt7j66+v13N3hkJLXZmjQS0vnqKrSU1UFneSdAAAAAXRSTlMAQObYZgAAAAFiS0dEAmYLfGQAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfiCwYULRd9NapgAAAAxUlEQVR42u3avQnCQBiA4biB2lgrKlg6hAsIDuAIVtaO4qaCZ5GDfF4i+Hc8T5fLl3vLEC5NAwAAAAAAAAAAQJUm36KsrKys/Jfl6SI0L04UB3JbZWVlZeVqyrvDXVxepoF9XM62WLUvnpaPaTEur7O1vlsoKysrKysrKysrKyu/+l2lrKysrFxpeXZuu6TFdHHq2HiTjffd4nHrOvDUqOst+ZnzKmVlZWXl3ygXjeKHx+/9dU1ZWVlZWRkAAAAAAAAAYIgbTTXuRlq5SeQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMTEtMDZUMjA6NDU6MjMrMDA6MDDmfcq+AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTExLTA2VDIwOjQ1OjIzKzAwOjAwlyByAgAAAABJRU5ErkJggg==",alt:"NPM Support"},{href:"https://open-vsx.org/extension/ms-azuretools/vscode-docker",thumb:E,alt:"Docker"},{href:"https://open-vsx.org/extension/redhat/vscode-yaml",thumb:"data:image/png;base64,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",alt:"YAML"},{href:"https://open-vsx.org/extension/golang/Go",thumb:"data:image/png;base64,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",alt:"Go"}]},3107:function(e,t,i){var r=i(6540),s=i(961);function n(){return n=Object.assign||function(e){for(var t=1;t=p.top+p.height||f.left+f.width>=p.left+p.width))break;u++}return c},u=0,p=(0,r.forwardRef)((function(e,t){var i=e.trigger,l=void 0===i?null:i,d=e.onOpen,p=void 0===d?function(){}:d,g=e.onClose,f=void 0===g?function(){}:g,M=e.defaultOpen,m=void 0!==M&&M,h=e.open,v=void 0===h?void 0:h,w=e.disabled,y=void 0!==w&&w,A=e.nested,I=void 0!==A&&A,L=e.closeOnDocumentClick,T=void 0===L||L,S=e.repositionOnResize,N=void 0===S||S,j=e.closeOnEscape,D=void 0===j||j,E=e.on,b=void 0===E?["click"]:E,x=e.contentStyle,C=void 0===x?{}:x,z=e.arrowStyle,O=void 0===z?{}:z,k=e.overlayStyle,P=void 0===k?{}:k,Y=e.className,G=void 0===Y?"":Y,Q=e.position,B=void 0===Q?"bottom center":Q,R=e.modal,U=void 0!==R&&R,H=e.lockScroll,Z=void 0!==H&&H,W=e.arrow,F=void 0===W||W,V=e.offsetX,X=void 0===V?0:V,J=e.offsetY,q=void 0===J?0:J,K=e.mouseEnterDelay,_=void 0===K?100:K,$=e.mouseLeaveDelay,ee=void 0===$?100:$,te=e.keepTooltipInside,ie=void 0!==te&&te,re=e.children,se=(0,r.useState)(v||m),ne=se[0],ae=se[1],oe=(0,r.useRef)(null),le=(0,r.useRef)(null),de=(0,r.useRef)(null),ce=(0,r.useRef)(null),ue=(0,r.useRef)("popup-"+ ++u),pe=!!U||!l,ge=(0,r.useRef)(0);a((function(){return ne?(ce.current=document.activeElement,Se(),Ie(),ye()):Ae(),function(){clearTimeout(ge.current)}}),[ne]),(0,r.useEffect)((function(){"boolean"==typeof v&&(v?fe():Me())}),[v,y]);var fe=function(e){ne||y||(ae(!0),setTimeout((function(){return p(e)}),0))},Me=function(e){var t;ne&&!y&&(ae(!1),pe&&(null===(t=ce.current)||void 0===t||t.focus()),setTimeout((function(){return f(e)}),0))},me=function(e){null==e||e.stopPropagation(),ne?Me(e):fe(e)},he=function(e){clearTimeout(ge.current),ge.current=setTimeout((function(){return fe(e)}),_)},ve=function(e){null==e||e.preventDefault(),me()},we=function(e){clearTimeout(ge.current),ge.current=setTimeout((function(){return Me(e)}),ee)},ye=function(){pe&&Z&&(document.getElementsByTagName("body")[0].style.overflow="hidden")},Ae=function(){pe&&Z&&(document.getElementsByTagName("body")[0].style.overflow="auto")},Ie=function(){var e,t=null==le||null===(e=le.current)||void 0===e?void 0:e.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]'),i=Array.prototype.slice.call(t)[0];null==i||i.focus()};(0,r.useImperativeHandle)(t,(function(){return{open:function(){fe()},close:function(){Me()},toggle:function(){me()}}}));var Le,Te,Se=function(){if(!pe&&ne&&(null==oe?void 0:oe.current)&&(null==oe?void 0:oe.current)&&(null==le?void 0:le.current)){var e,t,i=oe.current.getBoundingClientRect(),r=le.current.getBoundingClientRect(),s=c(i,r,B,F,{offsetX:X,offsetY:q},ie);if(le.current.style.top=s.top+window.scrollY+"px",le.current.style.left=s.left+window.scrollX+"px",F&&de.current)de.current.style.transform=s.transform,de.current.style.setProperty("-ms-transform",s.transform),de.current.style.setProperty("-webkit-transform",s.transform),de.current.style.top=(null===(e=O.top)||void 0===e?void 0:e.toString())||s.arrowTop,de.current.style.left=(null===(t=O.left)||void 0===t?void 0:t.toString())||s.arrowLeft}};Le=Me,void 0===(Te=D)&&(Te=!0),(0,r.useEffect)((function(){if(Te){var e=function(e){"Escape"===e.key&&Le(e)};return document.addEventListener("keyup",e),function(){Te&&document.removeEventListener("keyup",e)}}}),[Le,Te]),function(e,t){void 0===t&&(t=!0),(0,r.useEffect)((function(){if(t){var i=function(t){if(9===t.keyCode){var i,r=null==e||null===(i=e.current)||void 0===i?void 0:i.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]'),s=Array.prototype.slice.call(r);if(1===s.length)return void t.preventDefault();var n=s[0],a=s[s.length-1];t.shiftKey&&document.activeElement===n?(t.preventDefault(),a.focus()):document.activeElement===a&&(t.preventDefault(),n.focus())}};return document.addEventListener("keydown",i),function(){t&&document.removeEventListener("keydown",i)}}}),[e,t])}(le,ne&&pe),function(e,t){void 0===t&&(t=!0),(0,r.useEffect)((function(){if(t){var i=function(){e()};return window.addEventListener("resize",i),function(){t&&window.removeEventListener("resize",i)}}}),[e,t])}(Se,N),function(e,t,i){void 0===i&&(i=!0),(0,r.useEffect)((function(){if(i){var r=function(i){var r=Array.isArray(e)?e:[e],s=!1;r.forEach((function(e){e.current&&!e.current.contains(i.target)||(s=!0)})),i.stopPropagation(),s||t(i)};return document.addEventListener("mousedown",r),document.addEventListener("touchstart",r),function(){i&&(document.removeEventListener("mousedown",r),document.removeEventListener("touchstart",r))}}}),[e,t,i])}(l?[le,oe]:[le],Me,T&&!I);var Ne,je=function(){return r.createElement("div",Object.assign({},(e=pe?o.popupContent.modal:o.popupContent.tooltip,t={className:"popup-content "+(""!==G?G.split(" ").map((function(e){return e+"-content"})).join(" "):""),style:n({},e,C,{pointerEvents:"auto"}),ref:le,onClick:function(e){e.stopPropagation()}},!U&&b.indexOf("hover")>=0&&(t.onMouseEnter=he,t.onMouseLeave=we),t),{key:"C",role:pe?"dialog":"tooltip",id:ue.current}),F&&!pe&&r.createElement("div",{ref:de,style:o.popupArrow},r.createElement("svg",{"data-testid":"arrow",className:"popup-arrow "+(""!==G?G.split(" ").map((function(e){return e+"-arrow"})).join(" "):""),viewBox:"0 0 32 16",style:n({position:"absolute"},O)},r.createElement("path",{d:"M16 0l16 16H0z",fill:"currentcolor"}))),re&&"function"==typeof re?re(Me,ne):re);var e,t},De=!(b.indexOf("hover")>=0),Ee=pe?o.overlay.modal:o.overlay.tooltip,be=[De&&r.createElement("div",{key:"O","data-testid":"overlay","data-popup":pe?"modal":"tooltip",className:"popup-overlay "+(""!==G?G.split(" ").map((function(e){return e+"-overlay"})).join(" "):""),style:n({},Ee,P,{pointerEvents:T&&I||pe?"auto":"none"}),onClick:T&&I?Me:void 0,tabIndex:-1},pe&&je()),!pe&&je()];return r.createElement(r.Fragment,null,function(){for(var e={key:"T",ref:oe,"aria-describedby":ue.current},t=Array.isArray(b)?b:[b],i=0,s=t.length;i1&&1===t.el.querySelectorAll(e).length?i=t.el.querySelector(e):i&&1===i.length&&(i=i[0])),e&&!i?e:i)}function o(e,i){const r=t.params.navigation;(e=(0,s.m)(e)).forEach((e=>{e&&(e.classList[i?"add":"remove"](...r.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=i),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](r.lockClass))}))}function l(){const{nextEl:e,prevEl:i}=t.navigation;if(t.params.loop)return o(i,!1),void o(e,!1);o(i,t.isBeginning&&!t.params.rewind),o(e,t.isEnd&&!t.params.rewind)}function d(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),n("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),n("navigationNext"))}function u(){const e=t.params.navigation;if(t.params.navigation=function(e,t,i,r){return e.params.createElements&&Object.keys(r).forEach((n=>{if(!i[n]&&!0===i.auto){let a=(0,s.e)(e.el,`.${r[n]}`)[0];a||(a=(0,s.c)("div",r[n]),a.className=r[n],e.el.append(a)),i[n]=a,t[n]=a}})),i}(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let i=a(e.nextEl),r=a(e.prevEl);Object.assign(t.navigation,{nextEl:i,prevEl:r}),i=(0,s.m)(i),r=(0,s.m)(r);const n=(i,r)=>{i&&i.addEventListener("click","next"===r?c:d),!t.enabled&&i&&i.classList.add(...e.lockClass.split(" "))};i.forEach((e=>n(e,"next"))),r.forEach((e=>n(e,"prev")))}function p(){let{nextEl:e,prevEl:i}=t.navigation;e=(0,s.m)(e),i=(0,s.m)(i);const r=(e,i)=>{e.removeEventListener("click","next"===i?c:d),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>r(e,"next"))),i.forEach((e=>r(e,"prev")))}i({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null},r("init",(()=>{!1===t.params.navigation.enabled?g():(u(),l())})),r("toEdge fromEdge lock unlock",(()=>{l()})),r("destroy",(()=>{p()})),r("enable disable",(()=>{let{nextEl:e,prevEl:i}=t.navigation;e=(0,s.m)(e),i=(0,s.m)(i),t.enabled?l():[...e,...i].filter((e=>!!e)).forEach((e=>e.classList.add(t.params.navigation.lockClass)))})),r("click",((e,i)=>{let{nextEl:r,prevEl:a}=t.navigation;r=(0,s.m)(r),a=(0,s.m)(a);const o=i.target;let l=a.includes(o)||r.includes(o);if(t.isElement&&!l){const e=i.path||i.composedPath&&i.composedPath();e&&(l=e.find((e=>r.includes(e)||a.includes(e))))}if(t.params.navigation.hideOnClick&&!l){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===o||t.pagination.el.contains(o)))return;let e;r.length?e=r[0].classList.contains(t.params.navigation.hiddenClass):a.length&&(e=a[0].classList.contains(t.params.navigation.hiddenClass)),n(!0===e?"navigationShow":"navigationHide"),[...r,...a].filter((e=>!!e)).forEach((e=>e.classList.toggle(t.params.navigation.hiddenClass)))}}));const g=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),p()};Object.assign(t.navigation,{enable:()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),u(),l()},disable:g,update:l,init:u,destroy:p})}function a(e){let t,i,{swiper:s,extendParams:n,on:a,emit:o,params:l}=e;s.autoplay={running:!1,paused:!1,timeLeft:0},n({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,u,p,g,f,M,m,h=l&&l.autoplay?l.autoplay.delay:3e3,v=l&&l.autoplay?l.autoplay.delay:3e3,w=(new Date).getTime();function y(e){s&&!s.destroyed&&s.wrapperEl&&e.target===s.wrapperEl&&(s.wrapperEl.removeEventListener("transitionend",y),m||e.detail&&e.detail.bySwiperTouchMove||N())}const A=()=>{if(s.destroyed||!s.autoplay.running)return;s.autoplay.paused?c=!0:c&&(v=d,c=!1);const e=s.autoplay.paused?d:w+v-(new Date).getTime();s.autoplay.timeLeft=e,o("autoplayTimeLeft",e,e/h),i=requestAnimationFrame((()=>{A()}))},I=e=>{if(s.destroyed||!s.autoplay.running)return;cancelAnimationFrame(i),A();let r=void 0===e?s.params.autoplay.delay:e;h=s.params.autoplay.delay,v=s.params.autoplay.delay;const n=(()=>{let e;if(e=s.virtual&&s.params.virtual.enabled?s.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:s.slides[s.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(n)&&n>0&&void 0===e&&(r=n,h=n,v=n),d=r;const a=s.params.speed,l=()=>{s&&!s.destroyed&&(s.params.autoplay.reverseDirection?!s.isBeginning||s.params.loop||s.params.rewind?(s.slidePrev(a,!0,!0),o("autoplay")):s.params.autoplay.stopOnLastSlide||(s.slideTo(s.slides.length-1,a,!0,!0),o("autoplay")):!s.isEnd||s.params.loop||s.params.rewind?(s.slideNext(a,!0,!0),o("autoplay")):s.params.autoplay.stopOnLastSlide||(s.slideTo(0,a,!0,!0),o("autoplay")),s.params.cssMode&&(w=(new Date).getTime(),requestAnimationFrame((()=>{I()}))))};return r>0?(clearTimeout(t),t=setTimeout((()=>{l()}),r)):requestAnimationFrame((()=>{l()})),r},L=()=>{w=(new Date).getTime(),s.autoplay.running=!0,I(),o("autoplayStart")},T=()=>{s.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(i),o("autoplayStop")},S=(e,i)=>{if(s.destroyed||!s.autoplay.running)return;clearTimeout(t),e||(M=!0);const r=()=>{o("autoplayPause"),s.params.autoplay.waitForTransition?s.wrapperEl.addEventListener("transitionend",y):N()};if(s.autoplay.paused=!0,i)return f&&(d=s.params.autoplay.delay),f=!1,void r();const n=d||s.params.autoplay.delay;d=n-((new Date).getTime()-w),s.isEnd&&d<0&&!s.params.loop||(d<0&&(d=0),r())},N=()=>{s.isEnd&&d<0&&!s.params.loop||s.destroyed||!s.autoplay.running||(w=(new Date).getTime(),M?(M=!1,I(d)):I(),s.autoplay.paused=!1,o("autoplayResume"))},j=()=>{if(s.destroyed||!s.autoplay.running)return;const e=(0,r.g)();"hidden"===e.visibilityState&&(M=!0,S(!0)),"visible"===e.visibilityState&&N()},D=e=>{"mouse"===e.pointerType&&(M=!0,m=!0,s.animating||s.autoplay.paused||S(!0))},E=e=>{"mouse"===e.pointerType&&(m=!1,s.autoplay.paused&&N())};a("init",(()=>{s.params.autoplay.enabled&&(s.params.autoplay.pauseOnMouseEnter&&(s.el.addEventListener("pointerenter",D),s.el.addEventListener("pointerleave",E)),(0,r.g)().addEventListener("visibilitychange",j),L())})),a("destroy",(()=>{s.el&&"string"!=typeof s.el&&(s.el.removeEventListener("pointerenter",D),s.el.removeEventListener("pointerleave",E)),(0,r.g)().removeEventListener("visibilitychange",j),s.autoplay.running&&T()})),a("_freeModeStaticRelease",(()=>{(p||M)&&N()})),a("_freeModeNoMomentumRelease",(()=>{s.params.autoplay.disableOnInteraction?T():S(!0,!0)})),a("beforeTransitionStart",((e,t,i)=>{!s.destroyed&&s.autoplay.running&&(i||!s.params.autoplay.disableOnInteraction?S(!0,!0):T())})),a("sliderFirstMove",(()=>{!s.destroyed&&s.autoplay.running&&(s.params.autoplay.disableOnInteraction?T():(u=!0,p=!1,M=!1,g=setTimeout((()=>{M=!0,p=!0,S(!0)}),200)))})),a("touchEnd",(()=>{if(!s.destroyed&&s.autoplay.running&&u){if(clearTimeout(g),clearTimeout(t),s.params.autoplay.disableOnInteraction)return p=!1,void(u=!1);p&&s.params.cssMode&&N(),p=!1,u=!1}})),a("slideChange",(()=>{!s.destroyed&&s.autoplay.running&&(f=!0)})),Object.assign(s.autoplay,{start:L,stop:T,pause:S,resume:N})}},2375:function(e,t,i){function r(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function s(e,t){void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(t).forEach((i=>{void 0===e[i]?e[i]=t[i]:r(t[i])&&r(e[i])&&Object.keys(t[i]).length>0&&s(e[i],t[i])}))}i.d(t,{a:function(){return l},g:function(){return a}});const n={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return s(e,n),e}const o={document:n,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return""}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function l(){const e="undefined"!=typeof window?window:{};return s(e,o),e}},7044:function(e,t,i){i.d(t,{a:function(){return y},c:function(){return M},d:function(){return a},e:function(){return p},f:function(){return A},h:function(){return w},j:function(){return o},m:function(){return I},n:function(){return n},p:function(){return v},q:function(){return h},r:function(){return m},s:function(){return c},t:function(){return u},u:function(){return f},v:function(){return g},w:function(){return d},x:function(){return s}});var r=i(2375);function s(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(i){}try{delete t[e]}catch(i){}}))}function n(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function a(){return Date.now()}function o(e,t){void 0===t&&(t="x");const i=(0,r.a)();let s,n,a;const o=function(e){const t=(0,r.a)();let i;return t.getComputedStyle&&(i=t.getComputedStyle(e,null)),!i&&e.currentStyle&&(i=e.currentStyle),i||(i=e.style),i}(e);return i.WebKitCSSMatrix?(n=o.transform||o.webkitTransform,n.split(",").length>6&&(n=n.split(", ").map((e=>e.replace(",","."))).join(", ")),a=new i.WebKitCSSMatrix("none"===n?"":n)):(a=o.MozTransform||o.OTransform||o.MsTransform||o.msTransform||o.transform||o.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),s=a.toString().split(",")),"x"===t&&(n=i.WebKitCSSMatrix?a.m41:16===s.length?parseFloat(s[12]):parseFloat(s[4])),"y"===t&&(n=i.WebKitCSSMatrix?a.m42:16===s.length?parseFloat(s[13]):parseFloat(s[5])),n||0}function l(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function d(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let r=1;rt.indexOf(e)<0));for(let t=0,r=i.length;ta?"next":"prev",u=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,p=()=>{o=(new Date).getTime(),null===l&&(l=o);const e=Math.max(Math.min((o-l)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=a+r*(i-a);if(u(c,i)&&(c=i),t.wrapperEl.scrollTo({[s]:c}),u(c,i))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[s]:c})})),void n.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=n.requestAnimationFrame(p)};p()}function p(e,t){void 0===t&&(t="");const i=[...e.children];return e instanceof HTMLSlotElement&&i.push(...e.assignedElements()),t?i.filter((e=>e.matches(t))):i}function g(e,t){const i=t.contains(e);if(!i&&t instanceof HTMLSlotElement){return[...t.assignedElements()].includes(e)}return i}function f(e){try{return void console.warn(e)}catch(t){}}function M(e,t){void 0===t&&(t=[]);const i=document.createElement(e);return i.classList.add(...Array.isArray(t)?t:function(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}(t)),i}function m(e,t){const i=[];for(;e.previousElementSibling;){const r=e.previousElementSibling;t?r.matches(t)&&i.push(r):i.push(r),e=r}return i}function h(e,t){const i=[];for(;e.nextElementSibling;){const r=e.nextElementSibling;t?r.matches(t)&&i.push(r):i.push(r),e=r}return i}function v(e,t){return(0,r.a)().getComputedStyle(e,null).getPropertyValue(t)}function w(e){let t,i=e;if(i){for(t=0;null!==(i=i.previousSibling);)1===i.nodeType&&(t+=1);return t}}function y(e,t){const i=[];let r=e.parentElement;for(;r;)t?r.matches(t)&&i.push(r):i.push(r),r=r.parentElement;return i}function A(e,t,i){const s=(0,r.a)();return i?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(s.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(s.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}function I(e){return(Array.isArray(e)?e:[e]).filter((e=>!!e))}},3325:function(e,t,i){i.d(t,{RC:function(){return ee},qr:function(){return te}});var r=i(6540),s=i(2375),n=i(7044);let a,o,l;function d(){return a||(a=function(){const e=(0,s.a)(),t=(0,s.g)();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),a}function c(e){return void 0===e&&(e={}),o||(o=function(e){let{userAgent:t}=void 0===e?{}:e;const i=d(),r=(0,s.a)(),n=r.navigator.platform,a=t||r.navigator.userAgent,o={ios:!1,android:!1},l=r.screen.width,c=r.screen.height,u=a.match(/(Android);?[\s\/]+([\d.]+)?/);let p=a.match(/(iPad).*OS\s([\d_]+)/);const g=a.match(/(iPod)(.*OS\s([\d_]+))?/),f=!p&&a.match(/(iPhone\sOS|iOS)\s([\d_]+)/),M="Win32"===n;let m="MacIntel"===n;return!p&&m&&i.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${l}x${c}`)>=0&&(p=a.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),m=!1),u&&!M&&(o.os="android",o.android=!0),(p||f||g)&&(o.os="ios",o.ios=!0),o}(e)),o}function u(){return l||(l=function(){const e=(0,s.a)(),t=c();let i=!1;function r(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(r()){const t=String(e.navigator.userAgent);if(t.includes("Version/")){const[e,r]=t.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));i=e<16||16===e&&r<2}}const n=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent),a=r();return{isSafari:i||a,needPerspectiveFix:i,need3dFix:a||n&&t.ios,isWebView:n}}()),l}var p={on(e,t,i){const r=this;if(!r.eventsListeners||r.destroyed)return r;if("function"!=typeof t)return r;const s=i?"unshift":"push";return e.split(" ").forEach((e=>{r.eventsListeners[e]||(r.eventsListeners[e]=[]),r.eventsListeners[e][s](t)})),r},once(e,t,i){const r=this;if(!r.eventsListeners||r.destroyed)return r;if("function"!=typeof t)return r;function s(){r.off(e,s),s.__emitterProxy&&delete s.__emitterProxy;for(var i=arguments.length,n=new Array(i),a=0;a=0&&t.eventsAnyListeners.splice(i,1),t},off(e,t){const i=this;return!i.eventsListeners||i.destroyed?i:i.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?i.eventsListeners[e]=[]:i.eventsListeners[e]&&i.eventsListeners[e].forEach(((r,s)=>{(r===t||r.__emitterProxy&&r.__emitterProxy===t)&&i.eventsListeners[e].splice(s,1)}))})),i):i},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,i,r;for(var s=arguments.length,n=new Array(s),a=0;a{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(r,[t,...i])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(r,i)}))})),e}};const g=(e,t,i)=>{t&&!e.classList.contains(i)?e.classList.add(i):!t&&e.classList.contains(i)&&e.classList.remove(i)};const f=(e,t,i)=>{t&&!e.classList.contains(i)?e.classList.add(i):!t&&e.classList.contains(i)&&e.classList.remove(i)};const M=(e,t)=>{if(!e||e.destroyed||!e.params)return;const i=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(i){let t=i.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(i.shadowRoot?t=i.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{i.shadowRoot&&(t=i.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},m=(e,t)=>{if(!e.slides[t])return;const i=e.slides[t].querySelector('[loading="lazy"]');i&&i.removeAttribute("loading")},h=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const i=e.slides.length;if(!i||!t||t<0)return;t=Math.min(t,i);const r="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),s=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const i=s,n=[i-t];return n.push(...Array.from({length:t}).map(((e,t)=>i+r+t))),void e.slides.forEach(((t,i)=>{n.includes(t.column)&&m(e,i)}))}const n=s+r-1;if(e.params.rewind||e.params.loop)for(let a=s-t;a<=n+t;a+=1){const t=(a%i+i)%i;(tn)&&m(e,t)}else for(let a=Math.max(s-t,0);a<=Math.min(n+t,i-1);a+=1)a!==s&&(a>n||a=0?y=parseFloat(y.replace("%",""))/100*a:"string"==typeof y&&(y=parseFloat(y)),e.virtualSize=-y,u.forEach((e=>{o?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),i.centeredSlides&&i.cssMode&&((0,n.s)(r,"--swiper-centered-offset-before",""),(0,n.s)(r,"--swiper-centered-offset-after",""));const T=i.grid&&i.grid.rows>1&&e.grid;let S;T?e.grid.initSlides(u):e.grid&&e.grid.unsetSlides();const N="auto"===i.slidesPerView&&i.breakpoints&&Object.keys(i.breakpoints).filter((e=>void 0!==i.breakpoints[e].slidesPerView)).length>0;for(let j=0;j1&&g.push(e.virtualSize-a)}if(d&&i.loop){const t=M[0]+y;if(i.slidesPerGroup>1){const r=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/i.slidesPerGroup),s=t*i.slidesPerGroup;for(let e=0;e!(i.cssMode&&!i.loop)||t!==u.length-1)).forEach((e=>{e.style[t]=`${y}px`}))}if(i.centeredSlides&&i.centeredSlidesBounds){let e=0;M.forEach((t=>{e+=t+(y||0)})),e-=y;const t=e>a?e-a:0;g=g.map((e=>e<=0?-m:e>t?t+h:e))}if(i.centerInsufficientSlides){let e=0;M.forEach((t=>{e+=t+(y||0)})),e-=y;const t=(i.slidesOffsetBefore||0)+(i.slidesOffsetAfter||0);if(e+t{g[t]=e-i})),f.forEach(((e,t)=>{f[t]=e+i}))}}if(Object.assign(e,{slides:u,snapGrid:g,slidesGrid:f,slidesSizesGrid:M}),i.centeredSlides&&i.cssMode&&!i.centeredSlidesBounds){(0,n.s)(r,"--swiper-centered-offset-before",-g[0]+"px"),(0,n.s)(r,"--swiper-centered-offset-after",e.size/2-M[M.length-1]/2+"px");const t=-e.snapGrid[0],i=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+i))}if(p!==c&&e.emit("slidesLengthChange"),g.length!==v&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),f.length!==w&&e.emit("slidesGridLengthChange"),i.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(d||i.cssMode||"slide"!==i.effect&&"fade"!==i.effect)){const t=`${i.containerModifierClass}backface-hidden`,r=e.el.classList.contains(t);p<=i.maxBackfaceHiddenSlides?r||e.el.classList.add(t):r&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,i=[],r=t.virtual&&t.params.virtual.enabled;let s,n=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const a=e=>r?t.slides[t.getSlideIndexByData(e)]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{i.push(e)}));else for(s=0;st.slides.length&&!r)break;i.push(a(e))}else i.push(a(t.activeIndex));for(s=0;sn?e:n}(n||0===n)&&(t.wrapperEl.style.height=`${n}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,i=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let r=0;r=0?o=parseFloat(o.replace("%",""))/100*t.size:"string"==typeof o&&(o=parseFloat(o));for(let l=0;l=0&&p<=t.size-t.slidesSizesGrid[l],m=p>=0&&p1&&f<=t.size||p<=0&&f>=t.size;m&&(t.visibleSlides.push(e),t.visibleSlidesIndexes.push(l)),g(e,m,i.slideVisibleClass),g(e,M,i.slideFullyVisibleClass),e.progress=s?-c:c,e.originalProgress=s?-u:u}},updateProgress:function(e){const t=this;if(void 0===e){const i=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*i||0}const i=t.params,r=t.maxTranslate()-t.minTranslate();let{progress:s,isBeginning:n,isEnd:a,progressLoop:o}=t;const l=n,d=a;if(0===r)s=0,n=!0,a=!0;else{s=(e-t.minTranslate())/r;const i=Math.abs(e-t.minTranslate())<1,o=Math.abs(e-t.maxTranslate())<1;n=i||s<=0,a=o||s>=1,i&&(s=0),o&&(s=1)}if(i.loop){const i=t.getSlideIndexByData(0),r=t.getSlideIndexByData(t.slides.length-1),s=t.slidesGrid[i],n=t.slidesGrid[r],a=t.slidesGrid[t.slidesGrid.length-1],l=Math.abs(e);o=l>=s?(l-s)/a:(l+a-n)/a,o>1&&(o-=1)}Object.assign(t,{progress:s,progressLoop:o,isBeginning:n,isEnd:a}),(i.watchSlidesProgress||i.centeredSlides&&i.autoHeight)&&t.updateSlidesProgress(e),n&&!l&&t.emit("reachBeginning toEdge"),a&&!d&&t.emit("reachEnd toEdge"),(l&&!n||d&&!a)&&t.emit("fromEdge"),t.emit("progress",s)},updateSlidesClasses:function(){const e=this,{slides:t,params:i,slidesEl:r,activeIndex:s}=e,a=e.virtual&&i.virtual.enabled,o=e.grid&&i.grid&&i.grid.rows>1,l=e=>(0,n.e)(r,`.${i.slideClass}${e}, swiper-slide${e}`)[0];let d,c,u;if(a)if(i.loop){let t=s-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),d=l(`[data-swiper-slide-index="${t}"]`)}else d=l(`[data-swiper-slide-index="${s}"]`);else o?(d=t.filter((e=>e.column===s))[0],u=t.filter((e=>e.column===s+1))[0],c=t.filter((e=>e.column===s-1))[0]):d=t[s];d&&(o||(u=(0,n.q)(d,`.${i.slideClass}, swiper-slide`)[0],i.loop&&!u&&(u=t[0]),c=(0,n.r)(d,`.${i.slideClass}, swiper-slide`)[0],i.loop&&0===!c&&(c=t[t.length-1]))),t.forEach((e=>{f(e,e===d,i.slideActiveClass),f(e,e===u,i.slideNextClass),f(e,e===c,i.slidePrevClass)})),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,i=t.rtlTranslate?t.translate:-t.translate,{snapGrid:r,params:s,activeIndex:n,realIndex:a,snapIndex:o}=t;let l,d=e;const c=e=>{let i=e-t.virtual.slidesBefore;return i<0&&(i=t.virtual.slides.length+i),i>=t.virtual.slides.length&&(i-=t.virtual.slides.length),i};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:i}=e,r=e.rtlTranslate?e.translate:-e.translate;let s;for(let n=0;n=t[n]&&r=t[n]&&r=t[n]&&(s=n);return i.normalizeSlideIndex&&(s<0||void 0===s)&&(s=0),s}(t)),r.indexOf(i)>=0)l=r.indexOf(i);else{const e=Math.min(s.slidesPerGroupSkip,d);l=e+Math.floor((d-e)/s.slidesPerGroup)}if(l>=r.length&&(l=r.length-1),d===n&&!t.params.loop)return void(l!==o&&(t.snapIndex=l,t.emit("snapIndexChange")));if(d===n&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const u=t.grid&&s.grid&&s.grid.rows>1;let p;if(t.virtual&&s.virtual.enabled&&s.loop)p=c(d);else if(u){const e=t.slides.filter((e=>e.column===d))[0];let i=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(i)&&(i=Math.max(t.slides.indexOf(e),0)),p=Math.floor(i/s.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");p=e?parseInt(e,10):d}else p=d;Object.assign(t,{previousSnapIndex:o,snapIndex:l,previousRealIndex:a,realIndex:p,previousIndex:n,activeIndex:d}),t.initialized&&h(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(a!==p&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const i=this,r=i.params;let s=e.closest(`.${r.slideClass}, swiper-slide`);!s&&i.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!s&&e.matches&&e.matches(`.${r.slideClass}, swiper-slide`)&&(s=e)}));let n,a=!1;if(s)for(let o=0;od?d:r&&ea?"next":n=d.length&&(h=d.length-1);const v=-d[h];if(l.normalizeSlideIndex)for(let n=0;n=t&&e=t&&e=t&&(o=n)}if(a.initialized&&o!==p){if(!a.allowSlideNext&&(g?v>a.translate&&v>a.minTranslate():va.translate&&v>a.maxTranslate()&&(p||0)!==o)return!1}let w;o!==(u||0)&&i&&a.emit("beforeSlideChangeStart"),a.updateProgress(v),w=o>p?"next":o0?(a._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{f[e?"scrollLeft":"scrollTop"]=i}))):f[e?"scrollLeft":"scrollTop"]=i,y&&requestAnimationFrame((()=>{a.wrapperEl.style.scrollSnapType="",a._immediateVirtual=!1}));else{if(!a.support.smoothScroll)return(0,n.t)({swiper:a,targetPosition:i,side:e?"left":"top"}),!0;f.scrollTo({[e?"left":"top"]:i,behavior:"smooth"})}return!0}return a.setTransition(t),a.setTranslate(v),a.updateActiveIndex(o),a.updateSlidesClasses(),a.emit("beforeTransitionStart",t,r),a.transitionStart(i,w),0===t?a.transitionEnd(i,w):a.animating||(a.animating=!0,a.onSlideToWrapperTransitionEnd||(a.onSlideToWrapperTransitionEnd=function(e){a&&!a.destroyed&&e.target===this&&(a.wrapperEl.removeEventListener("transitionend",a.onSlideToWrapperTransitionEnd),a.onSlideToWrapperTransitionEnd=null,delete a.onSlideToWrapperTransitionEnd,a.transitionEnd(i,w))}),a.wrapperEl.addEventListener("transitionend",a.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,i,r){if(void 0===e&&(e=0),void 0===i&&(i=!0),"string"==typeof e){e=parseInt(e,10)}const s=this;if(s.destroyed)return;void 0===t&&(t=s.params.speed);const n=s.grid&&s.params.grid&&s.params.grid.rows>1;let a=e;if(s.params.loop)if(s.virtual&&s.params.virtual.enabled)a+=s.virtual.slidesBefore;else{let e;if(n){const t=a*s.params.grid.rows;e=s.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=s.getSlideIndexByData(a);const t=n?Math.ceil(s.slides.length/s.params.grid.rows):s.slides.length,{centeredSlides:i}=s.params;let o=s.params.slidesPerView;"auto"===o?o=s.slidesPerViewDynamic():(o=Math.ceil(parseFloat(s.params.slidesPerView,10)),i&&o%2==0&&(o+=1));let l=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else a=s.getSlideIndexByData(a)}return requestAnimationFrame((()=>{s.slideTo(a,t,i,r)})),s},slideNext:function(e,t,i){void 0===t&&(t=!0);const r=this,{enabled:s,params:n,animating:a}=r;if(!s||r.destroyed)return r;void 0===e&&(e=r.params.speed);let o=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(o=Math.max(r.slidesPerViewDynamic("current",!0),1));const l=r.activeIndex{r.slideTo(r.activeIndex+l,e,t,i)})),!0}return n.rewind&&r.isEnd?r.slideTo(0,e,t,i):r.slideTo(r.activeIndex+l,e,t,i)},slidePrev:function(e,t,i){void 0===t&&(t=!0);const r=this,{params:s,snapGrid:n,slidesGrid:a,rtlTranslate:o,enabled:l,animating:d}=r;if(!l||r.destroyed)return r;void 0===e&&(e=r.params.speed);const c=r.virtual&&s.virtual.enabled;if(s.loop){if(d&&!c&&s.loopPreventsSliding)return!1;r.loopFix({direction:"prev"}),r._clientLeft=r.wrapperEl.clientLeft}function u(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const p=u(o?r.translate:-r.translate),g=n.map((e=>u(e)));let f=n[g.indexOf(p)-1];if(void 0===f&&s.cssMode){let e;n.forEach(((t,i)=>{p>=t&&(e=i)})),void 0!==e&&(f=n[e>0?e-1:e])}let M=0;if(void 0!==f&&(M=a.indexOf(f),M<0&&(M=r.activeIndex-1),"auto"===s.slidesPerView&&1===s.slidesPerGroup&&s.slidesPerGroupAuto&&(M=M-r.slidesPerViewDynamic("previous",!0)+1,M=Math.max(M,0))),s.rewind&&r.isBeginning){const s=r.params.virtual&&r.params.virtual.enabled&&r.virtual?r.virtual.slides.length-1:r.slides.length-1;return r.slideTo(s,e,t,i)}return s.loop&&0===r.activeIndex&&s.cssMode?(requestAnimationFrame((()=>{r.slideTo(M,e,t,i)})),!0):r.slideTo(M,e,t,i)},slideReset:function(e,t,i){void 0===t&&(t=!0);const r=this;if(!r.destroyed)return void 0===e&&(e=r.params.speed),r.slideTo(r.activeIndex,e,t,i)},slideToClosest:function(e,t,i,r){void 0===t&&(t=!0),void 0===r&&(r=.5);const s=this;if(s.destroyed)return;void 0===e&&(e=s.params.speed);let n=s.activeIndex;const a=Math.min(s.params.slidesPerGroupSkip,n),o=a+Math.floor((n-a)/s.params.slidesPerGroup),l=s.rtlTranslate?s.translate:-s.translate;if(l>=s.snapGrid[o]){const e=s.snapGrid[o];l-e>(s.snapGrid[o+1]-e)*r&&(n+=s.params.slidesPerGroup)}else{const e=s.snapGrid[o-1];l-e<=(s.snapGrid[o]-e)*r&&(n-=s.params.slidesPerGroup)}return n=Math.max(n,0),n=Math.min(n,s.slidesGrid.length-1),s.slideTo(n,e,t,i)},slideToClickedSlide:function(){const e=this;if(e.destroyed)return;const{params:t,slidesEl:i}=e,r="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let s,a=e.clickedIndex;const o=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;s=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?ae.slides.length-e.loopedSlides+r/2?(e.loopFix(),a=e.getSlideIndex((0,n.e)(i,`${o}[data-swiper-slide-index="${s}"]`)[0]),(0,n.n)((()=>{e.slideTo(a)}))):e.slideTo(a):a>e.slides.length-r?(e.loopFix(),a=e.getSlideIndex((0,n.e)(i,`${o}[data-swiper-slide-index="${s}"]`)[0]),(0,n.n)((()=>{e.slideTo(a)}))):e.slideTo(a)}else e.slideTo(a)}};var I={loopCreate:function(e){const t=this,{params:i,slidesEl:r}=t;if(!i.loop||t.virtual&&t.params.virtual.enabled)return;const s=()=>{(0,n.e)(r,`.${i.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},a=t.grid&&i.grid&&i.grid.rows>1,o=i.slidesPerGroup*(a?i.grid.rows:1),l=t.slides.length%o!=0,d=a&&t.slides.length%i.grid.rows!=0,c=e=>{for(let r=0;r1;c.lengthe.classList.contains(f.slideActiveClass)))[0]):I=a;const L="next"===r||!r,T="prev"===r||!r;let S=0,N=0;const j=w?Math.ceil(c.length/f.grid.rows):c.length,D=(w?c[a].column:a)+(M&&void 0===s?-m/2+.5:0);if(D=0;t-=1)c[t].column===e&&y.push(t)}else y.push(j-t-1)}}else if(D+m>j-v){N=Math.max(D-(j-2*v),h);for(let e=0;e{e.column===t&&A.push(i)})):A.push(t)}}if(d.__preventObserver__=!0,requestAnimationFrame((()=>{d.__preventObserver__=!1})),T&&y.forEach((e=>{c[e].swiperLoopMoveDOM=!0,g.prepend(c[e]),c[e].swiperLoopMoveDOM=!1})),L&&A.forEach((e=>{c[e].swiperLoopMoveDOM=!0,g.append(c[e]),c[e].swiperLoopMoveDOM=!1})),d.recalcSlides(),"auto"===f.slidesPerView?d.updateSlides():w&&(y.length>0&&T||A.length>0&&L)&&d.slides.forEach(((e,t)=>{d.grid.updateSlide(t,e,d.slides)})),f.watchSlidesProgress&&d.updateSlidesOffset(),i)if(y.length>0&&T){if(void 0===t){const e=d.slidesGrid[I],t=d.slidesGrid[I+S]-e;l?d.setTranslate(d.translate-t):(d.slideTo(I+Math.ceil(S),0,!1,!0),s&&(d.touchEventsData.startTranslate=d.touchEventsData.startTranslate-t,d.touchEventsData.currentTranslate=d.touchEventsData.currentTranslate-t))}else if(s){const e=w?y.length/f.grid.rows:y.length;d.slideTo(d.activeIndex+e,0,!1,!0),d.touchEventsData.currentTranslate=d.translate}}else if(A.length>0&&L)if(void 0===t){const e=d.slidesGrid[I],t=d.slidesGrid[I-N]-e;l?d.setTranslate(d.translate-t):(d.slideTo(I-N,0,!1,!0),s&&(d.touchEventsData.startTranslate=d.touchEventsData.startTranslate-t,d.touchEventsData.currentTranslate=d.touchEventsData.currentTranslate-t))}else{const e=w?A.length/f.grid.rows:A.length;d.slideTo(d.activeIndex-e,0,!1,!0)}if(d.allowSlidePrev=u,d.allowSlideNext=p,d.controller&&d.controller.control&&!o){const e={slideRealIndex:t,direction:r,setTranslate:s,activeSlideIndex:a,byController:!0};Array.isArray(d.controller.control)?d.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix({...e,slideTo:t.params.slidesPerView===f.slidesPerView&&i})})):d.controller.control instanceof d.constructor&&d.controller.control.params.loop&&d.controller.control.loopFix({...e,slideTo:d.controller.control.params.slidesPerView===f.slidesPerView&&i})}d.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:i}=e;if(!t.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const r=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;r[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),r.forEach((e=>{i.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function L(e,t,i){const r=(0,s.a)(),{params:n}=e,a=n.edgeSwipeDetection,o=n.edgeSwipeThreshold;return!a||!(i<=o||i>=r.innerWidth-o)||"prevent"===a&&(t.preventDefault(),!0)}function T(e){const t=this,i=(0,s.g)();let r=e;r.originalEvent&&(r=r.originalEvent);const a=t.touchEventsData;if("pointerdown"===r.type){if(null!==a.pointerId&&a.pointerId!==r.pointerId)return;a.pointerId=r.pointerId}else"touchstart"===r.type&&1===r.targetTouches.length&&(a.touchId=r.targetTouches[0].identifier);if("touchstart"===r.type)return void L(t,r,r.targetTouches[0].pageX);const{params:o,touches:l,enabled:d}=t;if(!d)return;if(!o.simulateTouch&&"mouse"===r.pointerType)return;if(t.animating&&o.preventInteractionOnTransition)return;!t.animating&&o.cssMode&&o.loop&&t.loopFix();let c=r.target;if("wrapper"===o.touchEventsTarget&&!(0,n.v)(c,t.wrapperEl))return;if("which"in r&&3===r.which)return;if("button"in r&&r.button>0)return;if(a.isTouched&&a.isMoved)return;const u=!!o.noSwipingClass&&""!==o.noSwipingClass,p=r.composedPath?r.composedPath():r.path;u&&r.target&&r.target.shadowRoot&&p&&(c=p[0]);const g=o.noSwipingSelector?o.noSwipingSelector:`.${o.noSwipingClass}`,f=!(!r.target||!r.target.shadowRoot);if(o.noSwiping&&(f?function(e,t){return void 0===t&&(t=this),function t(i){if(!i||i===(0,s.g)()||i===(0,s.a)())return null;i.assignedSlot&&(i=i.assignedSlot);const r=i.closest(e);return r||i.getRootNode?r||t(i.getRootNode().host):null}(t)}(g,c):c.closest(g)))return void(t.allowClick=!0);if(o.swipeHandler&&!c.closest(o.swipeHandler))return;l.currentX=r.pageX,l.currentY=r.pageY;const M=l.currentX,m=l.currentY;if(!L(t,r,M))return;Object.assign(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),l.startX=M,l.startY=m,a.touchStartTime=(0,n.d)(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,o.threshold>0&&(a.allowThresholdMove=!1);let h=!0;c.matches(a.focusableElements)&&(h=!1,"SELECT"===c.nodeName&&(a.isTouched=!1)),i.activeElement&&i.activeElement.matches(a.focusableElements)&&i.activeElement!==c&&("mouse"===r.pointerType||"mouse"!==r.pointerType&&!c.matches(a.focusableElements))&&i.activeElement.blur();const v=h&&t.allowTouchMove&&o.touchStartPreventDefault;!o.touchStartForcePreventDefault&&!v||c.isContentEditable||r.preventDefault(),o.freeMode&&o.freeMode.enabled&&t.freeMode&&t.animating&&!o.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",r)}function S(e){const t=(0,s.g)(),i=this,r=i.touchEventsData,{params:a,touches:o,rtlTranslate:l,enabled:d}=i;if(!d)return;if(!a.simulateTouch&&"mouse"===e.pointerType)return;let c,u=e;if(u.originalEvent&&(u=u.originalEvent),"pointermove"===u.type){if(null!==r.touchId)return;if(u.pointerId!==r.pointerId)return}if("touchmove"===u.type){if(c=[...u.changedTouches].filter((e=>e.identifier===r.touchId))[0],!c||c.identifier!==r.touchId)return}else c=u;if(!r.isTouched)return void(r.startMoving&&r.isScrolling&&i.emit("touchMoveOpposite",u));const p=c.pageX,g=c.pageY;if(u.preventedByNestedSwiper)return o.startX=p,void(o.startY=g);if(!i.allowTouchMove)return u.target.matches(r.focusableElements)||(i.allowClick=!1),void(r.isTouched&&(Object.assign(o,{startX:p,startY:g,currentX:p,currentY:g}),r.touchStartTime=(0,n.d)()));if(a.touchReleaseOnEdges&&!a.loop)if(i.isVertical()){if(go.startY&&i.translate>=i.minTranslate())return r.isTouched=!1,void(r.isMoved=!1)}else if(po.startX&&i.translate>=i.minTranslate())return;if(t.activeElement&&t.activeElement.matches(r.focusableElements)&&t.activeElement!==u.target&&"mouse"!==u.pointerType&&t.activeElement.blur(),t.activeElement&&u.target===t.activeElement&&u.target.matches(r.focusableElements))return r.isMoved=!0,void(i.allowClick=!1);r.allowTouchCallbacks&&i.emit("touchMove",u),o.previousX=o.currentX,o.previousY=o.currentY,o.currentX=p,o.currentY=g;const f=o.currentX-o.startX,M=o.currentY-o.startY;if(i.params.threshold&&Math.sqrt(f**2+M**2)=25&&(e=180*Math.atan2(Math.abs(M),Math.abs(f))/Math.PI,r.isScrolling=i.isHorizontal()?e>a.touchAngle:90-e>a.touchAngle)}if(r.isScrolling&&i.emit("touchMoveOpposite",u),void 0===r.startMoving&&(o.currentX===o.startX&&o.currentY===o.startY||(r.startMoving=!0)),r.isScrolling||"touchmove"===u.type&&r.preventTouchMoveFromPointerMove)return void(r.isTouched=!1);if(!r.startMoving)return;i.allowClick=!1,!a.cssMode&&u.cancelable&&u.preventDefault(),a.touchMoveStopPropagation&&!a.nested&&u.stopPropagation();let m=i.isHorizontal()?f:M,h=i.isHorizontal()?o.currentX-o.previousX:o.currentY-o.previousY;a.oneWayMovement&&(m=Math.abs(m)*(l?1:-1),h=Math.abs(h)*(l?1:-1)),o.diff=m,m*=a.touchRatio,l&&(m=-m,h=-h);const v=i.touchesDirection;i.swipeDirection=m>0?"prev":"next",i.touchesDirection=h>0?"prev":"next";const w=i.params.loop&&!a.cssMode,y="next"===i.touchesDirection&&i.allowSlideNext||"prev"===i.touchesDirection&&i.allowSlidePrev;if(!r.isMoved){if(w&&y&&i.loopFix({direction:i.swipeDirection}),r.startTranslate=i.getTranslate(),i.setTransition(0),i.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});i.wrapperEl.dispatchEvent(e)}r.allowMomentumBounce=!1,!a.grabCursor||!0!==i.allowSlideNext&&!0!==i.allowSlidePrev||i.setGrabCursor(!0),i.emit("sliderFirstMove",u)}if((new Date).getTime(),r.isMoved&&r.allowThresholdMove&&v!==i.touchesDirection&&w&&y&&Math.abs(m)>=1)return Object.assign(o,{startX:p,startY:g,currentX:p,currentY:g,startTranslate:r.currentTranslate}),r.loopSwapReset=!0,void(r.startTranslate=r.currentTranslate);i.emit("sliderMove",u),r.isMoved=!0,r.currentTranslate=m+r.startTranslate;let A=!0,I=a.resistanceRatio;if(a.touchReleaseOnEdges&&(I=0),m>0?(w&&y&&r.allowThresholdMove&&r.currentTranslate>(a.centeredSlides?i.minTranslate()-i.slidesSizesGrid[i.activeIndex+1]-("auto"!==a.slidesPerView&&i.slides.length-a.slidesPerView>=2?i.slidesSizesGrid[i.activeIndex+1]+i.params.spaceBetween:0)-i.params.spaceBetween:i.minTranslate())&&i.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),r.currentTranslate>i.minTranslate()&&(A=!1,a.resistance&&(r.currentTranslate=i.minTranslate()-1+(-i.minTranslate()+r.startTranslate+m)**I))):m<0&&(w&&y&&r.allowThresholdMove&&r.currentTranslate<(a.centeredSlides?i.maxTranslate()+i.slidesSizesGrid[i.slidesSizesGrid.length-1]+i.params.spaceBetween+("auto"!==a.slidesPerView&&i.slides.length-a.slidesPerView>=2?i.slidesSizesGrid[i.slidesSizesGrid.length-1]+i.params.spaceBetween:0):i.maxTranslate())&&i.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:i.slides.length-("auto"===a.slidesPerView?i.slidesPerViewDynamic():Math.ceil(parseFloat(a.slidesPerView,10)))}),r.currentTranslater.startTranslate&&(r.currentTranslate=r.startTranslate),i.allowSlidePrev||i.allowSlideNext||(r.currentTranslate=r.startTranslate),a.threshold>0){if(!(Math.abs(m)>a.threshold||r.allowThresholdMove))return void(r.currentTranslate=r.startTranslate);if(!r.allowThresholdMove)return r.allowThresholdMove=!0,o.startX=o.currentX,o.startY=o.currentY,r.currentTranslate=r.startTranslate,void(o.diff=i.isHorizontal()?o.currentX-o.startX:o.currentY-o.startY)}a.followFinger&&!a.cssMode&&((a.freeMode&&a.freeMode.enabled&&i.freeMode||a.watchSlidesProgress)&&(i.updateActiveIndex(),i.updateSlidesClasses()),a.freeMode&&a.freeMode.enabled&&i.freeMode&&i.freeMode.onTouchMove(),i.updateProgress(r.currentTranslate),i.setTranslate(r.currentTranslate))}function N(e){const t=this,i=t.touchEventsData;let r,s=e;s.originalEvent&&(s=s.originalEvent);if("touchend"===s.type||"touchcancel"===s.type){if(r=[...s.changedTouches].filter((e=>e.identifier===i.touchId))[0],!r||r.identifier!==i.touchId)return}else{if(null!==i.touchId)return;if(s.pointerId!==i.pointerId)return;r=s}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(s.type)){if(!(["pointercancel","contextmenu"].includes(s.type)&&(t.browser.isSafari||t.browser.isWebView)))return}i.pointerId=null,i.touchId=null;const{params:a,touches:o,rtlTranslate:l,slidesGrid:d,enabled:c}=t;if(!c)return;if(!a.simulateTouch&&"mouse"===s.pointerType)return;if(i.allowTouchCallbacks&&t.emit("touchEnd",s),i.allowTouchCallbacks=!1,!i.isTouched)return i.isMoved&&a.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,void(i.startMoving=!1);a.grabCursor&&i.isMoved&&i.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=(0,n.d)(),p=u-i.touchStartTime;if(t.allowClick){const e=s.path||s.composedPath&&s.composedPath();t.updateClickedSlide(e&&e[0]||s.target,e),t.emit("tap click",s),p<300&&u-i.lastClickTime<300&&t.emit("doubleTap doubleClick",s)}if(i.lastClickTime=(0,n.d)(),(0,n.n)((()=>{t.destroyed||(t.allowClick=!0)})),!i.isTouched||!i.isMoved||!t.swipeDirection||0===o.diff&&!i.loopSwapReset||i.currentTranslate===i.startTranslate&&!i.loopSwapReset)return i.isTouched=!1,i.isMoved=!1,void(i.startMoving=!1);let g;if(i.isTouched=!1,i.isMoved=!1,i.startMoving=!1,g=a.followFinger?l?t.translate:-t.translate:-i.currentTranslate,a.cssMode)return;if(a.freeMode&&a.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:g});const f=g>=-t.maxTranslate()&&!t.params.loop;let M=0,m=t.slidesSizesGrid[0];for(let n=0;n=d[n]&&g=d[n])&&(M=n,m=d[d.length-1]-d[d.length-2])}let h=null,v=null;a.rewind&&(t.isBeginning?v=a.virtual&&a.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(h=0));const w=(g-d[M])/m,y=Ma.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(w>=a.longSwipesRatio?t.slideTo(a.rewind&&t.isEnd?h:M+y):t.slideTo(M)),"prev"===t.swipeDirection&&(w>1-a.longSwipesRatio?t.slideTo(M+y):null!==v&&w<0&&Math.abs(w)>a.longSwipesRatio?t.slideTo(v):t.slideTo(M))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(s.target===t.navigation.nextEl||s.target===t.navigation.prevEl)?s.target===t.navigation.nextEl?t.slideTo(M+y):t.slideTo(M):("next"===t.swipeDirection&&t.slideTo(null!==h?h:M+y),"prev"===t.swipeDirection&&t.slideTo(null!==v?v:M))}}function j(){const e=this,{params:t,el:i}=e;if(i&&0===i.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:r,allowSlidePrev:s,snapGrid:n}=e,a=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const o=a&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||o?e.params.loop&&!a?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout((()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()}),500)),e.allowSlidePrev=s,e.allowSlideNext=r,e.params.watchOverflow&&n!==e.snapGrid&&e.checkOverflow()}function D(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function E(){const e=this,{wrapperEl:t,rtlTranslate:i,enabled:r}=e;if(!r)return;let s;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const n=e.maxTranslate()-e.minTranslate();s=0===n?0:(e.translate-e.minTranslate())/n,s!==e.progress&&e.updateProgress(i?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function b(e){const t=this;M(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function x(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const C=(e,t)=>{const i=(0,s.g)(),{params:r,el:n,wrapperEl:a,device:o}=e,l=!!r.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;n&&"string"!=typeof n&&(i[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:l}),n[d]("touchstart",e.onTouchStart,{passive:!1}),n[d]("pointerdown",e.onTouchStart,{passive:!1}),i[d]("touchmove",e.onTouchMove,{passive:!1,capture:l}),i[d]("pointermove",e.onTouchMove,{passive:!1,capture:l}),i[d]("touchend",e.onTouchEnd,{passive:!0}),i[d]("pointerup",e.onTouchEnd,{passive:!0}),i[d]("pointercancel",e.onTouchEnd,{passive:!0}),i[d]("touchcancel",e.onTouchEnd,{passive:!0}),i[d]("pointerout",e.onTouchEnd,{passive:!0}),i[d]("pointerleave",e.onTouchEnd,{passive:!0}),i[d]("contextmenu",e.onTouchEnd,{passive:!0}),(r.preventClicks||r.preventClicksPropagation)&&n[d]("click",e.onClick,!0),r.cssMode&&a[d]("scroll",e.onScroll),r.updateOnWindowResize?e[c](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",j,!0):e[c]("observerUpdate",j,!0),n[d]("load",e.onLoad,{capture:!0}))};const z=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var O={init:!0,direction:"horizontal",oneWayMovement:!1,swiperElementNodeName:"SWIPER-CONTAINER",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function k(e,t){return function(i){void 0===i&&(i={});const r=Object.keys(i)[0],s=i[r];"object"==typeof s&&null!==s?(!0===e[r]&&(e[r]={enabled:!0}),"navigation"===r&&e[r]&&e[r].enabled&&!e[r].prevEl&&!e[r].nextEl&&(e[r].auto=!0),["pagination","scrollbar"].indexOf(r)>=0&&e[r]&&e[r].enabled&&!e[r].el&&(e[r].auto=!0),r in e&&"enabled"in s?("object"!=typeof e[r]||"enabled"in e[r]||(e[r].enabled=!0),e[r]||(e[r]={enabled:!1}),(0,n.w)(t,i)):(0,n.w)(t,i)):(0,n.w)(t,i)}}const P={eventsEmitter:p,update:v,translate:w,transition:{setTransition:function(e,t){const i=this;i.params.cssMode||(i.wrapperEl.style.transitionDuration=`${e}ms`,i.wrapperEl.style.transitionDelay=0===e?"0ms":""),i.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const i=this,{params:r}=i;r.cssMode||(r.autoHeight&&i.updateAutoHeight(),y({swiper:i,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const i=this,{params:r}=i;i.animating=!1,r.cssMode||(i.setTransition(0),y({swiper:i,runCallbacks:e,direction:t,step:"End"}))}},slide:A,loop:I,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const i="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),i.style.cursor="move",i.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame((()=>{t.__preventObserver__=!1}))},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame((()=>{e.__preventObserver__=!1})))}},events:{attachEvents:function(){const e=this,{params:t}=e;e.onTouchStart=T.bind(e),e.onTouchMove=S.bind(e),e.onTouchEnd=N.bind(e),e.onDocumentTouchStart=x.bind(e),t.cssMode&&(e.onScroll=E.bind(e)),e.onClick=D.bind(e),e.onLoad=b.bind(e),C(e,"on")},detachEvents:function(){C(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:i,params:r,el:s}=e,a=r.breakpoints;if(!a||a&&0===Object.keys(a).length)return;const o=e.getBreakpoint(a,e.params.breakpointsBase,e.el);if(!o||e.currentBreakpoint===o)return;const l=(o in a?a[o]:void 0)||e.originalParams,d=z(e,r),c=z(e,l),u=e.params.grabCursor,p=l.grabCursor,g=r.enabled;d&&!c?(s.classList.remove(`${r.containerModifierClass}grid`,`${r.containerModifierClass}grid-column`),e.emitContainerClasses()):!d&&c&&(s.classList.add(`${r.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===r.grid.fill)&&s.classList.add(`${r.containerModifierClass}grid-column`),e.emitContainerClasses()),u&&!p?e.unsetGrabCursor():!u&&p&&e.setGrabCursor(),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===l[t])return;const i=r[t]&&r[t].enabled,s=l[t]&&l[t].enabled;i&&!s&&e[t].disable(),!i&&s&&e[t].enable()}));const f=l.direction&&l.direction!==r.direction,M=r.loop&&(l.slidesPerView!==r.slidesPerView||f),m=r.loop;f&&i&&e.changeDirection(),(0,n.w)(e.params,l);const h=e.params.enabled,v=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),g&&!h?e.disable():!g&&h&&e.enable(),e.currentBreakpoint=o,e.emit("_beforeBreakpoint",l),i&&(M?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!m&&v?(e.loopCreate(t),e.updateSlides()):m&&!v&&e.loopDestroy()),e.emit("breakpoint",l)},getBreakpoint:function(e,t,i){if(void 0===t&&(t="window"),!e||"container"===t&&!i)return;let r=!1;const n=(0,s.a)(),a="window"===t?n.innerHeight:i.clientHeight,o=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:a*t,point:e}}return{value:e,point:e}}));o.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let s=0;si}else e.isLocked=1===e.snapGrid.length;!0===i.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===i.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:i,rtl:r,el:s,device:n}=e,a=function(e,t){const i=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((r=>{e[r]&&i.push(t+r)})):"string"==typeof e&&i.push(t+e)})),i}(["initialized",i.direction,{"free-mode":e.params.freeMode&&i.freeMode.enabled},{autoheight:i.autoHeight},{rtl:r},{grid:i.grid&&i.grid.rows>1},{"grid-column":i.grid&&i.grid.rows>1&&"column"===i.grid.fill},{android:n.android},{ios:n.ios},{"css-mode":i.cssMode},{centered:i.cssMode&&i.centeredSlides},{"watch-progress":i.watchSlidesProgress}],i.containerModifierClass);t.push(...a),s.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e&&"string"!=typeof e&&(e.classList.remove(...t),this.emitContainerClasses())}}},Y={};class G{constructor(){let e,t;for(var i=arguments.length,r=new Array(i),a=0;a1){const e=[];return o.querySelectorAll(t.el).forEach((i=>{const r=(0,n.w)({},t,{el:i});e.push(new G(r))})),e}const l=this;l.__swiper__=!0,l.support=d(),l.device=c({userAgent:t.userAgent}),l.browser=u(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const p={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:k(t,p),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const g=(0,n.w)({},O,p);return l.params=(0,n.w)({},g,Y,t),l.originalParams=(0,n.w)({},l.params),l.passedParams=(0,n.w)({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return"horizontal"===l.params.direction},isVertical(){return"vertical"===l.params.direction},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:i}=this,r=(0,n.e)(t,`.${i.slideClass}, swiper-slide`),s=(0,n.h)(r[0]);return(0,n.h)(e)-s}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=(0,n.e)(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const i=this;e=Math.min(Math.max(e,0),1);const r=i.minTranslate(),s=(i.maxTranslate()-r)*e+r;i.translateTo(s,void 0===t?0:t),i.updateActiveIndex(),i.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((i=>{const r=e.getSlideClasses(i);t.push({slideEl:i,classNames:r}),e.emit("_slideClass",i,r)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:i,slides:r,slidesGrid:s,slidesSizesGrid:n,size:a,activeIndex:o}=this;let l=1;if("number"==typeof i.slidesPerView)return i.slidesPerView;if(i.centeredSlides){let e,t=r[o]?Math.ceil(r[o].swiperSlideSize):0;for(let i=o+1;ia&&(e=!0));for(let i=o-1;i>=0;i-=1)r[i]&&!e&&(t+=r[i].swiperSlideSize,l+=1,t>a&&(e=!0))}else if("current"===e)for(let d=o+1;d=0;d-=1){s[o]-s[d]{t.complete&&M(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),i.freeMode&&i.freeMode.enabled&&!i.cssMode)r(),i.autoHeight&&e.updateAutoHeight();else{if(("auto"===i.slidesPerView||i.slidesPerView>1)&&e.isEnd&&!i.centeredSlides){const t=e.virtual&&i.virtual.enabled?e.virtual.slides:e.slides;s=e.slideTo(t.length-1,0,!1,!0)}else s=e.slideTo(e.activeIndex,0,!1,!0);s||r()}i.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const i=this,r=i.params.direction;return e||(e="horizontal"===r?"vertical":"horizontal"),e===r||"horizontal"!==e&&"vertical"!==e||(i.el.classList.remove(`${i.params.containerModifierClass}${r}`),i.el.classList.add(`${i.params.containerModifierClass}${e}`),i.emitContainerClasses(),i.params.direction=e,i.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),i.emit("changeDirection"),t&&i.update()),i}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let i=e||t.params.el;if("string"==typeof i&&(i=document.querySelector(i)),!i)return!1;i.swiper=t,i.parentNode&&i.parentNode.host&&i.parentNode.host.nodeName===t.params.swiperElementNodeName.toUpperCase()&&(t.isElement=!0);const r=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let s=(()=>{if(i&&i.shadowRoot&&i.shadowRoot.querySelector){return i.shadowRoot.querySelector(r())}return(0,n.e)(i,r())[0]})();return!s&&t.params.createElements&&(s=(0,n.c)("div",t.params.wrapperClass),i.append(s),(0,n.e)(i,`.${t.params.slideClass}`).forEach((e=>{s.append(e)}))),Object.assign(t,{el:i,wrapperEl:s,slidesEl:t.isElement&&!i.parentNode.host.slideSlots?i.parentNode.host:s,hostEl:t.isElement?i.parentNode.host:i,mounted:!0,rtl:"rtl"===i.dir.toLowerCase()||"rtl"===(0,n.p)(i,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===i.dir.toLowerCase()||"rtl"===(0,n.p)(i,"direction")),wrongRTL:"-webkit-box"===(0,n.p)(s,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))return t;t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(),t.attachEvents();const i=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&i.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),i.forEach((e=>{e.complete?M(t,e):e.addEventListener("load",(e=>{M(t,e.target)}))})),h(t),t.initialized=!0,h(t),t.emit("init"),t.emit("afterInit"),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const i=this,{params:r,el:s,wrapperEl:a,slides:o}=i;return void 0===i.params||i.destroyed||(i.emit("beforeDestroy"),i.initialized=!1,i.detachEvents(),r.loop&&i.loopDestroy(),t&&(i.removeClasses(),s&&"string"!=typeof s&&s.removeAttribute("style"),a&&a.removeAttribute("style"),o&&o.length&&o.forEach((e=>{e.classList.remove(r.slideVisibleClass,r.slideFullyVisibleClass,r.slideActiveClass,r.slideNextClass,r.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),i.emit("destroy"),Object.keys(i.eventsListeners).forEach((e=>{i.off(e)})),!1!==e&&(i.el&&"string"!=typeof i.el&&(i.el.swiper=null),(0,n.x)(i)),i.destroyed=!0),null}static extendDefaults(e){(0,n.w)(Y,e)}static get extendedDefaults(){return Y}static get defaults(){return O}static installModule(e){G.prototype.__modules__||(G.prototype.__modules__=[]);const t=G.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>G.installModule(e))),G):(G.installModule(e),G)}}Object.keys(P).forEach((e=>{Object.keys(P[e]).forEach((t=>{G.prototype[t]=P[e][t]}))})),G.use([function(e){let{swiper:t,on:i,emit:r}=e;const n=(0,s.a)();let a=null,o=null;const l=()=>{t&&!t.destroyed&&t.initialized&&(r("beforeResize"),r("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&r("orientationchange")};i("init",(()=>{t.params.resizeObserver&&void 0!==n.ResizeObserver?t&&!t.destroyed&&t.initialized&&(a=new ResizeObserver((e=>{o=n.requestAnimationFrame((()=>{const{width:i,height:r}=t;let s=i,n=r;e.forEach((e=>{let{contentBoxSize:i,contentRect:r,target:a}=e;a&&a!==t.el||(s=r?r.width:(i[0]||i).inlineSize,n=r?r.height:(i[0]||i).blockSize)})),s===i&&n===r||l()}))})),a.observe(t.el)):(n.addEventListener("resize",l),n.addEventListener("orientationchange",d))})),i("destroy",(()=>{o&&n.cancelAnimationFrame(o),a&&a.unobserve&&t.el&&(a.unobserve(t.el),a=null),n.removeEventListener("resize",l),n.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:i,on:r,emit:a}=e;const o=[],l=(0,s.a)(),d=function(e,i){void 0===i&&(i={});const r=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void a("observerUpdate",e[0]);const i=function(){a("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(i):l.setTimeout(i,0)}));r.observe(e,{attributes:void 0===i.attributes||i.attributes,childList:t.isElement||(void 0===i.childList||i).childList,characterData:void 0===i.characterData||i.characterData}),o.push(r)};i({observer:!1,observeParents:!1,observeSlideChildren:!1}),r("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=(0,n.a)(t.hostEl);for(let t=0;t{o.forEach((e=>{e.disconnect()})),o.splice(0,o.length)}))}]);const Q=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","swiperElementNodeName","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopAdditionalSlides","loopAddBlankSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","slideBlankClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function B(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)&&!e.__swiper__}function R(e,t){const i=["__proto__","constructor","prototype"];Object.keys(t).filter((e=>i.indexOf(e)<0)).forEach((i=>{void 0===e[i]?e[i]=t[i]:B(t[i])&&B(e[i])&&Object.keys(t[i]).length>0?t[i].__swiper__?e[i]=t[i]:R(e[i],t[i]):e[i]=t[i]}))}function U(e){return void 0===e&&(e={}),e.navigation&&void 0===e.navigation.nextEl&&void 0===e.navigation.prevEl}function H(e){return void 0===e&&(e={}),e.pagination&&void 0===e.pagination.el}function Z(e){return void 0===e&&(e={}),e.scrollbar&&void 0===e.scrollbar.el}function W(e){void 0===e&&(e="");const t=e.split(" ").map((e=>e.trim())).filter((e=>!!e)),i=[];return t.forEach((e=>{i.indexOf(e)<0&&i.push(e)})),i.join(" ")}function F(e){return void 0===e&&(e=""),e?e.includes("swiper-wrapper")?e:`swiper-wrapper ${e}`:"swiper-wrapper"}function V(){return V=Object.assign?Object.assign.bind():function(e){for(var t=1;t{X(e)?t.push(e):e.props&&e.props.children&&J(e.props.children).forEach((e=>t.push(e)))})),t}function q(e){const t=[],i={"container-start":[],"container-end":[],"wrapper-start":[],"wrapper-end":[]};return r.Children.toArray(e).forEach((e=>{if(X(e))t.push(e);else if(e.props&&e.props.slot&&i[e.props.slot])i[e.props.slot].push(e);else if(e.props&&e.props.children){const r=J(e.props.children);r.length>0?r.forEach((e=>t.push(e))):i["container-end"].push(e)}else i["container-end"].push(e)})),{slides:t,slots:i}}function K(e,t){return"undefined"==typeof window?(0,r.useEffect)(e,t):(0,r.useLayoutEffect)(e,t)}const _=(0,r.createContext)(null),$=(0,r.createContext)(null),ee=(0,r.forwardRef)((function(e,t){let{className:i,tag:s="div",wrapperTag:n="div",children:a,onSwiper:o,...l}=void 0===e?{}:e,d=!1;const[c,u]=(0,r.useState)("swiper"),[p,g]=(0,r.useState)(null),[f,M]=(0,r.useState)(!1),m=(0,r.useRef)(!1),h=(0,r.useRef)(null),v=(0,r.useRef)(null),w=(0,r.useRef)(null),y=(0,r.useRef)(null),A=(0,r.useRef)(null),I=(0,r.useRef)(null),L=(0,r.useRef)(null),T=(0,r.useRef)(null),{params:S,passedParams:N,rest:j,events:D}=function(e,t){void 0===e&&(e={}),void 0===t&&(t=!0);const i={on:{}},r={},s={};R(i,O),i._emitClasses=!0,i.init=!1;const n={},a=Q.map((e=>e.replace(/_/,""))),o=Object.assign({},e);return Object.keys(o).forEach((o=>{void 0!==e[o]&&(a.indexOf(o)>=0?B(e[o])?(i[o]={},s[o]={},R(i[o],e[o]),R(s[o],e[o])):(i[o]=e[o],s[o]=e[o]):0===o.search(/on[A-Z]/)&&"function"==typeof e[o]?t?r[`${o[2].toLowerCase()}${o.substr(3)}`]=e[o]:i.on[`${o[2].toLowerCase()}${o.substr(3)}`]=e[o]:n[o]=e[o])})),["navigation","pagination","scrollbar"].forEach((e=>{!0===i[e]&&(i[e]={}),!1===i[e]&&delete i[e]})),{params:i,passedParams:s,rest:n,events:r}}(l),{slides:E,slots:b}=q(a),x=()=>{M(!f)};Object.assign(S.on,{_containerClasses(e,t){u(t)}});const C=()=>{Object.assign(S.on,D),d=!0;const e={...S};if(delete e.wrapperClass,v.current=new G(e),v.current.virtual&&v.current.params.virtual.enabled){v.current.virtual.slides=E;const e={cache:!1,slides:E,renderExternal:g,renderExternalUpdate:!1};R(v.current.params.virtual,e),R(v.current.originalParams.virtual,e)}};h.current||C(),v.current&&v.current.on("_beforeBreakpoint",x);return(0,r.useEffect)((()=>()=>{v.current&&v.current.off("_beforeBreakpoint",x)})),(0,r.useEffect)((()=>{!m.current&&v.current&&(v.current.emitSlidesClasses(),m.current=!0)})),K((()=>{if(t&&(t.current=h.current),h.current)return v.current.destroyed&&C(),function(e,t){let{el:i,nextEl:r,prevEl:s,paginationEl:n,scrollbarEl:a,swiper:o}=e;U(t)&&r&&s&&(o.params.navigation.nextEl=r,o.originalParams.navigation.nextEl=r,o.params.navigation.prevEl=s,o.originalParams.navigation.prevEl=s),H(t)&&n&&(o.params.pagination.el=n,o.originalParams.pagination.el=n),Z(t)&&a&&(o.params.scrollbar.el=a,o.originalParams.scrollbar.el=a),o.init(i)}({el:h.current,nextEl:A.current,prevEl:I.current,paginationEl:L.current,scrollbarEl:T.current,swiper:v.current},S),o&&!v.current.destroyed&&o(v.current),()=>{v.current&&!v.current.destroyed&&v.current.destroy(!0,!1)}}),[]),K((()=>{!d&&D&&v.current&&Object.keys(D).forEach((e=>{v.current.on(e,D[e])}));const e=function(e,t,i,r,s){const n=[];if(!t)return n;const a=e=>{n.indexOf(e)<0&&n.push(e)};if(i&&r){const e=r.map(s),t=i.map(s);e.join("")!==t.join("")&&a("children"),r.length!==i.length&&a("children")}return Q.filter((e=>"_"===e[0])).map((e=>e.replace(/_/,""))).forEach((i=>{if(i in e&&i in t)if(B(e[i])&&B(t[i])){const r=Object.keys(e[i]),s=Object.keys(t[i]);r.length!==s.length?a(i):(r.forEach((r=>{e[i][r]!==t[i][r]&&a(i)})),s.forEach((r=>{e[i][r]!==t[i][r]&&a(i)})))}else e[i]!==t[i]&&a(i)})),n}(N,w.current,E,y.current,(e=>e.key));return w.current=N,y.current=E,e.length&&v.current&&!v.current.destroyed&&function(e){let{swiper:t,slides:i,passedParams:r,changedParams:s,nextEl:n,prevEl:a,scrollbarEl:o,paginationEl:l}=e;const d=s.filter((e=>"children"!==e&&"direction"!==e&&"wrapperClass"!==e)),{params:c,pagination:u,navigation:p,scrollbar:g,virtual:f,thumbs:M}=t;let m,h,v,w,y,A,I,L;s.includes("thumbs")&&r.thumbs&&r.thumbs.swiper&&c.thumbs&&!c.thumbs.swiper&&(m=!0),s.includes("controller")&&r.controller&&r.controller.control&&c.controller&&!c.controller.control&&(h=!0),s.includes("pagination")&&r.pagination&&(r.pagination.el||l)&&(c.pagination||!1===c.pagination)&&u&&!u.el&&(v=!0),s.includes("scrollbar")&&r.scrollbar&&(r.scrollbar.el||o)&&(c.scrollbar||!1===c.scrollbar)&&g&&!g.el&&(w=!0),s.includes("navigation")&&r.navigation&&(r.navigation.prevEl||a)&&(r.navigation.nextEl||n)&&(c.navigation||!1===c.navigation)&&p&&!p.prevEl&&!p.nextEl&&(y=!0);const T=e=>{t[e]&&(t[e].destroy(),"navigation"===e?(t.isElement&&(t[e].prevEl.remove(),t[e].nextEl.remove()),c[e].prevEl=void 0,c[e].nextEl=void 0,t[e].prevEl=void 0,t[e].nextEl=void 0):(t.isElement&&t[e].el.remove(),c[e].el=void 0,t[e].el=void 0))};s.includes("loop")&&t.isElement&&(c.loop&&!r.loop?A=!0:!c.loop&&r.loop?I=!0:L=!0),d.forEach((e=>{if(B(c[e])&&B(r[e]))Object.assign(c[e],r[e]),"navigation"!==e&&"pagination"!==e&&"scrollbar"!==e||!("enabled"in r[e])||r[e].enabled||T(e);else{const t=r[e];!0!==t&&!1!==t||"navigation"!==e&&"pagination"!==e&&"scrollbar"!==e?c[e]=r[e]:!1===t&&T(e)}})),d.includes("controller")&&!h&&t.controller&&t.controller.control&&c.controller&&c.controller.control&&(t.controller.control=c.controller.control),s.includes("children")&&i&&f&&c.virtual.enabled?(f.slides=i,f.update(!0)):s.includes("virtual")&&f&&c.virtual.enabled&&(i&&(f.slides=i),f.update(!0)),s.includes("children")&&i&&c.loop&&(L=!0),m&&M.init()&&M.update(!0);h&&(t.controller.control=c.controller.control),v&&(!t.isElement||l&&"string"!=typeof l||(l=document.createElement("div"),l.classList.add("swiper-pagination"),l.part.add("pagination"),t.el.appendChild(l)),l&&(c.pagination.el=l),u.init(),u.render(),u.update()),w&&(!t.isElement||o&&"string"!=typeof o||(o=document.createElement("div"),o.classList.add("swiper-scrollbar"),o.part.add("scrollbar"),t.el.appendChild(o)),o&&(c.scrollbar.el=o),g.init(),g.updateSize(),g.setTranslate()),y&&(t.isElement&&(n&&"string"!=typeof n||(n=document.createElement("div"),n.classList.add("swiper-button-next"),n.innerHTML=t.hostEl.constructor.nextButtonSvg,n.part.add("button-next"),t.el.appendChild(n)),a&&"string"!=typeof a||(a=document.createElement("div"),a.classList.add("swiper-button-prev"),a.innerHTML=t.hostEl.constructor.prevButtonSvg,a.part.add("button-prev"),t.el.appendChild(a))),n&&(c.navigation.nextEl=n),a&&(c.navigation.prevEl=a),p.init(),p.update()),s.includes("allowSlideNext")&&(t.allowSlideNext=r.allowSlideNext),s.includes("allowSlidePrev")&&(t.allowSlidePrev=r.allowSlidePrev),s.includes("direction")&&t.changeDirection(r.direction,!1),(A||L)&&t.loopDestroy(),(I||L)&&t.loopCreate(),t.update()}({swiper:v.current,slides:E,passedParams:N,changedParams:e,nextEl:A.current,prevEl:I.current,scrollbarEl:T.current,paginationEl:L.current}),()=>{D&&v.current&&Object.keys(D).forEach((e=>{v.current.off(e,D[e])}))}})),K((()=>{var e;!(e=v.current)||e.destroyed||!e.params.virtual||e.params.virtual&&!e.params.virtual.enabled||(e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.parallax&&e.params.parallax&&e.params.parallax.enabled&&e.parallax.setTranslate())}),[p]),r.createElement(s,V({ref:h,className:W(`${c}${i?` ${i}`:""}`)},j),r.createElement($.Provider,{value:v.current},b["container-start"],r.createElement(n,{className:F(S.wrapperClass)},b["wrapper-start"],S.virtual?function(e,t,i){if(!i)return null;const s=e=>{let i=e;return e<0?i=t.length+e:i>=t.length&&(i-=t.length),i},n=e.isHorizontal()?{[e.rtlTranslate?"right":"left"]:`${i.offset}px`}:{top:`${i.offset}px`},{from:a,to:o}=i,l=e.params.loop?-t.length:0,d=e.params.loop?2*t.length:t.length,c=[];for(let r=l;r=a&&r<=o&&c.push(t[s(r)]);return c.map(((t,i)=>r.cloneElement(t,{swiper:e,style:n,key:t.props.virtualIndex||t.key||`slide-${i}`})))}(v.current,E,p):E.map(((e,t)=>r.cloneElement(e,{swiper:v.current,swiperSlideIndex:t}))),b["wrapper-end"]),U(S)&&r.createElement(r.Fragment,null,r.createElement("div",{ref:I,className:"swiper-button-prev"}),r.createElement("div",{ref:A,className:"swiper-button-next"})),Z(S)&&r.createElement("div",{ref:T,className:"swiper-scrollbar"}),H(S)&&r.createElement("div",{ref:L,className:"swiper-pagination"}),b["container-end"]))}));ee.displayName="Swiper";const te=(0,r.forwardRef)((function(e,t){let{tag:i="div",children:s,className:n="",swiper:a,zoom:o,lazy:l,virtualIndex:d,swiperSlideIndex:c,...u}=void 0===e?{}:e;const p=(0,r.useRef)(null),[g,f]=(0,r.useState)("swiper-slide"),[M,m]=(0,r.useState)(!1);function h(e,t,i){t===p.current&&f(i)}K((()=>{if(void 0!==c&&(p.current.swiperSlideIndex=c),t&&(t.current=p.current),p.current&&a){if(!a.destroyed)return a.on("_slideClass",h),()=>{a&&a.off("_slideClass",h)};"swiper-slide"!==g&&f("swiper-slide")}})),K((()=>{a&&p.current&&!a.destroyed&&f(a.getSlideClasses(p.current))}),[a]);const v={isActive:g.indexOf("swiper-slide-active")>=0,isVisible:g.indexOf("swiper-slide-visible")>=0,isPrev:g.indexOf("swiper-slide-prev")>=0,isNext:g.indexOf("swiper-slide-next")>=0},w=()=>"function"==typeof s?s(v):s;return r.createElement(i,V({ref:p,className:W(`${g}${n?` ${n}`:""}`),"data-swiper-slide-index":d,onLoad:()=>{m(!0)}},u),o&&r.createElement(_.Provider,{value:v},r.createElement("div",{className:"swiper-zoom-container","data-swiper-zoom":"number"==typeof o?o:void 0},w(),l&&!M&&r.createElement("div",{className:"swiper-lazy-preloader"}))),!o&&r.createElement(_.Provider,{value:v},w(),l&&!M&&r.createElement("div",{className:"swiper-lazy-preloader"})))}));te.displayName="SwiperSlide"}}]); +//# sourceMappingURL=2afe3fb4a968f105fe53dbf6f88d99ef93379730-3161ed6edd3c74a38318.js.map \ No newline at end of file diff --git a/pr-previews/pr-673/2afe3fb4a968f105fe53dbf6f88d99ef93379730-3161ed6edd3c74a38318.js.map b/pr-previews/pr-673/2afe3fb4a968f105fe53dbf6f88d99ef93379730-3161ed6edd3c74a38318.js.map new file mode 100644 index 00000000..dba80e20 --- /dev/null +++ b/pr-previews/pr-673/2afe3fb4a968f105fe53dbf6f88d99ef93379730-3161ed6edd3c74a38318.js.map @@ -0,0 +1 @@ +{"version":3,"file":"2afe3fb4a968f105fe53dbf6f88d99ef93379730-3161ed6edd3c74a38318.js","mappings":"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","sources":["webpack://Theia-Website/./src/components/index/CommonNews.js","webpack://Theia-Website/./src/resources/google.svg","webpack://Theia-Website/./src/resources/screenshots/vuengine-studio.png","webpack://Theia-Website/./src/resources/screenshots/thumbnails/vuengine-studio-min.png","webpack://Theia-Website/./src/resources/screenshots/record-evolution-screenshot.png","webpack://Theia-Website/./src/resources/screenshots/thumbnails/record-evolution-screenshot-min.png","webpack://Theia-Website/./src/resources/screenshots/arm_mbedstudio-ss.png","webpack://Theia-Website/./src/resources/screenshots/thumbnails/arm_mbedstudio-ss-min.png","webpack://Theia-Website/./src/resources/screenshots/redhat-crw-ss.png","webpack://Theia-Website/./src/resources/screenshots/thumbnails/redhat-crw-ss-min.png","webpack://Theia-Website/./src/resources/screenshots/coffeeditor.gif","webpack://Theia-Website/./src/resources/screenshots/thumbnails/coffeeditor-min.gif","webpack://Theia-Website/./src/resources/screenshots/logicloud.png","webpack://Theia-Website/./src/resources/screenshots/thumbnails/logicloud-min.png","webpack://Theia-Website/./src/resources/screenshots/blueprint.png","webpack://Theia-Website/./src/resources/screenshots/thumbnails/blueprint-min.png","webpack://Theia-Website/./src/resources/intros/jonas-helming.jpg","webpack://Theia-Website/./src/resources/intros/marc-dumais.jpg","webpack://Theia-Website/./src/resources/intros/thomas-mader.jpg","webpack://Theia-Website/./src/resources/screenshots/smartface.gif","webpack://Theia-Website/./src/resources/screenshots/thumbnails/smartface-min.gif","webpack://Theia-Website/./src/resources/screenshots/cdtcloudblueprint.gif","webpack://Theia-Website/./src/resources/screenshots/thumbnails/cdtcloudblueprint-min.gif","webpack://Theia-Website/./src/resources/extensions/python.png","webpack://Theia-Website/./src/resources/extensions/java.png","webpack://Theia-Website/./src/resources/extensions/github.png","webpack://Theia-Website/./src/resources/extensions/gitlens.png","webpack://Theia-Website/./src/resources/extensions/eslint.png","webpack://Theia-Website/./src/resources/extensions/docker.png","webpack://Theia-Website/./src/resources/screenshots/code_realtime_theia.png","webpack://Theia-Website/./src/resources/screenshots/thumbnails/code_realtime_theia_min.png","webpack://Theia-Website/./src/resources/screenshots/renesas-qcstudio.png","webpack://Theia-Website/./src/resources/screenshots/thumbnails/renesas-qcstudio-min.png","webpack://Theia-Website/./src/utils/data.js","webpack://Theia-Website/./src/resources/toro-r.svg","webpack://Theia-Website/./src/resources/huawei.svg","webpack://Theia-Website/./src/resources/extensions/npm.png","webpack://Theia-Website/./src/resources/extensions/yaml.png","webpack://Theia-Website/./src/resources/extensions/go.png","webpack://Theia-Website/./node_modules/reactjs-popup/dist/reactjs-popup.esm.js","webpack://Theia-Website/./node_modules/swiper/modules/navigation.mjs","webpack://Theia-Website/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://Theia-Website/./node_modules/swiper/modules/autoplay.mjs","webpack://Theia-Website/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://Theia-Website/./node_modules/swiper/shared/utils.mjs","webpack://Theia-Website/./node_modules/swiper/shared/swiper-core.mjs","webpack://Theia-Website/./node_modules/swiper/shared/update-swiper.mjs","webpack://Theia-Website/./node_modules/swiper/swiper-react.mjs","webpack://Theia-Website/./node_modules/swiper/shared/update-on-virtual-data.mjs"],"sourcesContent":["/********************************************************************************\n * Copyright (C) 2020 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\nconst PlatformHeader = () => (\n \n)\n\nexport default PlatformHeader","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDc0IDI0Ij48cGF0aCBmaWxsPSIjNDI4NUY0IiBkPSJNOS4yNCA4LjE5djIuNDZoNS44OGMtLjE4IDEuMzgtLjY0IDIuMzktMS4zNCAzLjEtLjg2Ljg2LTIuMiAxLjgtNC41NCAxLjgtMy42MiAwLTYuNDUtMi45Mi02LjQ1LTYuNTRzMi44My02LjU0IDYuNDUtNi41NGMxLjk1IDAgMy4zOC43NyA0LjQzIDEuNzZMMTUuNCAyLjVDMTMuOTQgMS4wOCAxMS45OCAwIDkuMjQgMCA0LjI4IDAgLjExIDQuMDQuMTEgOXM0LjE3IDkgOS4xMyA5YzIuNjggMCA0LjctLjg4IDYuMjgtMi41MiAxLjYyLTEuNjIgMi4xMy0zLjkxIDIuMTMtNS43NSAwLS41Ny0uMDQtMS4xLS4xMy0xLjU0SDkuMjR6Ii8+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTI1IDYuMTljLTMuMjEgMC01LjgzIDIuNDQtNS44MyA1LjgxIDAgMy4zNCAyLjYyIDUuODEgNS44MyA1LjgxczUuODMtMi40NiA1LjgzLTUuODFjMC0zLjM3LTIuNjItNS44MS01LjgzLTUuODF6bTAgOS4zM2MtMS43NiAwLTMuMjgtMS40NS0zLjI4LTMuNTIgMC0yLjA5IDEuNTItMy41MiAzLjI4LTMuNTJzMy4yOCAxLjQzIDMuMjggMy41MmMwIDIuMDctMS41MiAzLjUyLTMuMjggMy41MnoiLz48cGF0aCBmaWxsPSIjNDI4NUY0IiBkPSJNNTMuNTggNy40OWgtLjA5Yy0uNTctLjY4LTEuNjctMS4zLTMuMDYtMS4zQzQ3LjUzIDYuMTkgNDUgOC43MiA0NSAxMmMwIDMuMjYgMi41MyA1LjgxIDUuNDMgNS44MSAxLjM5IDAgMi40OS0uNjIgMy4wNi0xLjMyaC4wOXYuODFjMCAyLjIyLTEuMTkgMy40MS0zLjEgMy40MS0xLjU2IDAtMi41My0xLjEyLTIuOTMtMi4wN2wtMi4yMi45MmMuNjQgMS41NCAyLjMzIDMuNDMgNS4xNSAzLjQzIDIuOTkgMCA1LjUyLTEuNzYgNS41Mi02LjA1VjYuNDloLTIuNDJ2MXptLTIuOTMgOC4wM2MtMS43NiAwLTMuMS0xLjUtMy4xLTMuNTIgMC0yLjA1IDEuMzQtMy41MiAzLjEtMy41MiAxLjc0IDAgMy4xIDEuNSAzLjEgMy41NC4wMSAyLjAzLTEuMzYgMy41LTMuMSAzLjV6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNSIgZD0iTTM4IDYuMTljLTMuMjEgMC01LjgzIDIuNDQtNS44MyA1LjgxIDAgMy4zNCAyLjYyIDUuODEgNS44MyA1LjgxczUuODMtMi40NiA1LjgzLTUuODFjMC0zLjM3LTIuNjItNS44MS01LjgzLTUuODF6bTAgOS4zM2MtMS43NiAwLTMuMjgtMS40NS0zLjI4LTMuNTIgMC0yLjA5IDEuNTItMy41MiAzLjI4LTMuNTJzMy4yOCAxLjQzIDMuMjggMy41MmMwIDIuMDctMS41MiAzLjUyLTMuMjggMy41MnoiLz48cGF0aCBmaWxsPSIjMzRBODUzIiBkPSJNNTggLjI0aDIuNTF2MTcuNTdINTh6Ii8+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTY4LjI2IDE1LjUyYy0xLjMgMC0yLjIyLS41OS0yLjgyLTEuNzZsNy43Ny0zLjIxLS4yNi0uNjZjLS40OC0xLjMtMS45Ni0zLjctNC45Ny0zLjctMi45OSAwLTUuNDggMi4zNS01LjQ4IDUuODEgMCAzLjI2IDIuNDYgNS44MSA1Ljc2IDUuODEgMi42NiAwIDQuMi0xLjYzIDQuODQtMi41N2wtMS45OC0xLjMyYy0uNjYuOTYtMS41NiAxLjYtMi44NiAxLjZ6bS0uMTgtNy4xNWMxLjAzIDAgMS45MS41MyAyLjIgMS4yOGwtNS4yNSAyLjE3YzAtMi40NCAxLjczLTMuNDUgMy4wNS0zLjQ1eiIvPjwvc3ZnPg==\"","export default __webpack_public_path__ + \"static/vuengine-studio-e8c2c71cec497ffe39a57442c029cb27.png\";","export default __webpack_public_path__ + \"static/vuengine-studio-min-f112fc4dac0347843579e3a988d61aba.png\";","export default __webpack_public_path__ + \"static/record-evolution-screenshot-7da92797b9209f045ac977532bd77c14.png\";","export default __webpack_public_path__ + \"static/record-evolution-screenshot-min-06297125dcded5d4a70e8cf06e8adee0.png\";","export default __webpack_public_path__ + \"static/arm_mbedstudio-ss-0791be6cb04538de13948610bbeed7b3.png\";","export default __webpack_public_path__ + \"static/arm_mbedstudio-ss-min-a8fd7c751f510d9d3c7fd0134167d60a.png\";","export default __webpack_public_path__ + \"static/redhat-crw-ss-703c2d37e15a36d9c4132818514e5fb3.png\";","export default __webpack_public_path__ + \"static/redhat-crw-ss-min-abe33728579af51bd502facbb7e3ce92.png\";","export default __webpack_public_path__ + \"static/coffeeditor-0c020d433326ac590f8805b874c14200.gif\";","export default __webpack_public_path__ + \"static/coffeeditor-min-0c020d433326ac590f8805b874c14200.gif\";","export default __webpack_public_path__ + \"static/logicloud-51453f4d7610f486646350f5c1a34bb9.png\";","export default __webpack_public_path__ + \"static/logicloud-min-630c5fdb9f899e52a55d2dcd6897c630.png\";","export default __webpack_public_path__ + \"static/blueprint-0a8595647cfdb2eb7c006730704cc7a0.png\";","export default __webpack_public_path__ + \"static/blueprint-min-d01cc012c94ae596708e3fcb603493c3.png\";","export default __webpack_public_path__ + \"static/jonas-helming-aca725b00f06acac10b198240c1b1f3b.jpg\";","export default __webpack_public_path__ + \"static/marc-dumais-ff2115d30d9d7fec46cd1daf6cf2ce97.jpg\";","export default __webpack_public_path__ + \"static/thomas-mader-caeb99d27b52607eeaf2ecaa29d0fef6.jpg\";","export default __webpack_public_path__ + \"static/smartface-de9e6d6b3bf64a91f1fcdf4fc13c8cbd.gif\";","export default __webpack_public_path__ + \"static/smartface-min-432f3b1943962c29a5ffbc1dd0054aa4.gif\";","export default __webpack_public_path__ + \"static/cdtcloudblueprint-74d44b2cac35c90589727d2b601fcb79.gif\";","export default __webpack_public_path__ + \"static/cdtcloudblueprint-min-0adc296a889db33c8ac42cbaf658f122.gif\";","export default __webpack_public_path__ + \"static/python-4d83351cdbaa92cca2ce1250b8eaa1cf.png\";","export default __webpack_public_path__ + \"static/java-0b01ae5598a06693a618955e6113f3fa.png\";","export default __webpack_public_path__ + \"static/github-c5f27d4a6c95e952b4c82b3e0574143d.png\";","export default __webpack_public_path__ + \"static/gitlens-e81786613170edeae647f41700051e63.png\";","export default __webpack_public_path__ + \"static/eslint-44b6cc7f223f80228cde980065d43fce.png\";","export default __webpack_public_path__ + \"static/docker-6d1afdb456643d6031423e71908adb98.png\";","export default __webpack_public_path__ + \"static/code_realtime_theia-67933551331ed146472406d6e2f2b3d0.png\";","export default __webpack_public_path__ + \"static/code_realtime_theia_min-77e385c991c7276558de3a40dc4d1441.png\";","export default __webpack_public_path__ + \"static/renesas-qcstudio-b9560d1c94f71792efe8fe429f0cfcdb.png\";","export default __webpack_public_path__ + \"static/renesas-qcstudio-min-aee438f3e3510da13b88e4f634777f21.png\";","/********************************************************************************\n * Copyright (C) 2020 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\n import GoogleLogo from '../resources/google.svg'\n import ToroC from '../resources/toro-r.svg'\n import Huawei from '../resources/huawei.svg'\n import VUEngineStudioScreenshot from '../resources/screenshots/vuengine-studio.png'\n import VUEngineStudioScreenshotMin from '../resources/screenshots/thumbnails/vuengine-studio-min.png'\n import RecordEvolutionScreenshot from '../resources/screenshots/record-evolution-screenshot.png'\n import RecordEvolutionScreenshotMin from '../resources/screenshots/thumbnails/record-evolution-screenshot-min.png'\n import MbedStudio from '../resources/screenshots/arm_mbedstudio-ss.png'\n import MbedStudioMin from '../resources/screenshots/thumbnails/arm_mbedstudio-ss-min.png'\n import CodeReady from '../resources/screenshots/redhat-crw-ss.png'\n import CodeReadyMin from '../resources/screenshots/thumbnails/redhat-crw-ss-min.png'\n import CoffeeEditor from '../resources/screenshots/coffeeditor.gif'\n import CoffeeEditorMin from '../resources/screenshots/thumbnails/coffeeditor-min.gif'\n import LogiCloud from '../resources/screenshots/logicloud.png'\n import LogiCloudMin from '../resources/screenshots/thumbnails/logicloud-min.png'\n import BluePrint from '../resources/screenshots/blueprint.png'\n import BluePrintMin from '../resources/screenshots/thumbnails/blueprint-min.png'\n import JonasHelming from '../resources/intros/jonas-helming.jpg'\n import MarcDumais from '../resources/intros/marc-dumais.jpg'\n import ThomasMader from '../resources/intros/thomas-mader.jpg'\n import Smartface from '../resources/screenshots/smartface.gif'\n import SmartfaceMin from '../resources/screenshots/thumbnails/smartface-min.gif'\n import CDTCloud from '../resources/screenshots/cdtcloudblueprint.gif'\n import CDTCloudMin from '../resources/screenshots/thumbnails/cdtcloudblueprint-min.gif'\n import Python from '../resources/extensions/python.png'\n import Java from '../resources/extensions/java.png'\n import GitHub from '../resources/extensions/github.png'\n import GitLens from '../resources/extensions/gitlens.png'\n import ESLint from '../resources/extensions/eslint.png'\n import NPM from '../resources/extensions/npm.png'\n import Docker from '../resources/extensions/docker.png'\n import YAML from '../resources/extensions/yaml.png'\n import Go from '../resources/extensions/go.png'\n import CodeRealTime from '../resources/screenshots/code_realtime_theia.png'\n import CodeRealTimeMin from '../resources/screenshots/thumbnails/code_realtime_theia_min.png'\n import QuickConnectStudio from '../resources/screenshots/renesas-qcstudio.png'\n import QuickConnectStudioMin from '../resources/screenshots/thumbnails/renesas-qcstudio-min.png'\n\n export const contributorsAndAdopters = [\n {\n homepage_url: \"https://about.google/\",\n src: GoogleLogo,\n name: \"Google Logo\"\n },\n {\n homepage_url: \"https://www.torocloud.com/\",\n src: ToroC,\n name: \"ToroCloud logo\"\n },\n {\n homepage_url: \"https://www.huawei.com/\",\n src: Huawei,\n name: \"Huawei logo\"\n }\n ]\n \n export const introsToTheia = [\n {\n title: \"Getting started with Eclipse Theia\",\n href: \"https://youtu.be/xhSOdAJyess\",\n speaker: \"Jonas Helming, Theia project lead and Principal Software Architect at EclipseSource\",\n src: JonasHelming,\n },\n {\n title: \"Why Eclipse Theia\",\n href: \"https://youtu.be/xs0haWTulrY\",\n speaker: \"Marc Dumais, Theia project lead and Software Developer at Ericsson AB\",\n src: MarcDumais,\n },\n {\n title: \"How to be an Eclipse Theia Adopter\",\n href: \"https://youtu.be/SPO8pudgJak\",\n speaker: \"Jonas Helming, Theia project lead and Principal Software Architect at EclipseSource\",\n src: JonasHelming,\n },\n {\n title: \"The Eclipse Theia Architecture\",\n href: \"https://youtu.be/KN2JUsFuEhU\",\n speaker: \"Thomas Mรคder, Theia project lead and Principal Software Developer at Red Hat\",\n src: ThomasMader,\n }\n ]\n \n export const products = [\n {\n href: \"https://os.mbed.com/studio/\",\n src: MbedStudio,\n thumb: MbedStudioMin,\n alt: \"Mbed Studio by Arm\"\n },\n {\n href: \"https://eclipse.dev/cdt-cloud/\",\n src: CDTCloud,\n thumb: CDTCloudMin,\n alt: \"CDT Cloud Blueprint\"\n },\n {\n href: \"https://www.eclipse.dev/emfcloud/#coffeeeditoroverview\",\n src: CoffeeEditor,\n thumb: CoffeeEditorMin,\n alt: \"Coffee Editor Example by EclipseSource\"\n },\n {\n href: \"https://www.neuron-automation.eu/engineering-toolkit/your-automation-toolchain/logi-cloud\",\n src: LogiCloud,\n thumb: LogiCloudMin,\n alt: \"logi.cloud by logi.cals\"\n },\n {\n href: \"https://theia-ide.org/#theiaide\",\n src: BluePrint,\n thumb: BluePrintMin,\n alt: \"Theia IDE\"\n },\n {\n href: \"https://www.record-evolution.de/reswarm\",\n src: RecordEvolutionScreenshot,\n thumb: RecordEvolutionScreenshotMin,\n alt: \"Record Evolution Screenshot\"\n },\n {\n href: \"https://www.vuengine.dev\",\n src: VUEngineStudioScreenshot,\n thumb: VUEngineStudioScreenshotMin,\n alt: \"VUEngine Studio\"\n },\n {\n href: \"https://smartface.io\",\n src: Smartface,\n thumb: SmartfaceMin,\n alt: \"Smartface\"\n },\n {\n href: \"https://secure-dev-ops.github.io/code-realtime\",\n src: CodeRealTime,\n thumb: CodeRealTimeMin,\n alt: \"Code RealTime\"\n },\n {\n href: \"https://www.renesas.com/qcstudio\",\n src: QuickConnectStudio,\n thumb: QuickConnectStudioMin,\n alt: \"QuickConnect Studio\"\n },\n {\n href: \"https://developers.redhat.com/products/codeready-workspaces/overview\",\n src: CodeReady,\n thumb: CodeReadyMin,\n alt: \"Red Hat CodeReady Workspaces\"\n }\n ]\n\n export const extensions = [\n {\n href: \"https://open-vsx.org/extension/ms-python/python\",\n thumb: Python,\n alt: \"Python\"\n },\n {\n href: \"https://open-vsx.org/extension/redhat/java\",\n thumb: Java,\n alt: \"Language support for Java\"\n },\n {\n href: \"https://open-vsx.org/extension/GitHub/vscode-pull-request-github\",\n thumb: GitHub,\n alt: \"GitHub Pull Requests and Issues\"\n },\n {\n href: \"https://open-vsx.org/extension/eamodio/gitlens\",\n thumb: GitLens,\n alt: \"GitLens โ€” Git supercharged\"\n },\n {\n href: \"https://open-vsx.org/extension/dbaeumer/vscode-eslint\",\n thumb: ESLint,\n alt: \"ESLint\"\n },\n {\n href: \"https://open-vsx.org/extension/vscode/npm\",\n thumb: NPM,\n alt: \"NPM Support\"\n },\n {\n href: \"https://open-vsx.org/extension/ms-azuretools/vscode-docker\",\n thumb: Docker,\n alt: \"Docker\"\n },\n {\n href: \"https://open-vsx.org/extension/redhat/vscode-yaml\",\n thumb: YAML,\n alt: \"YAML\"\n },\n {\n href: \"https://open-vsx.org/extension/golang/Go\",\n thumb: Go,\n alt: \"Go\"\n }\n]\n \n","export default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjIiPjxwYXRoIGQ9Ik0yNzIuMjkxIDEyNy45OTJoLTIzLjkzNVYuMDA4aDQwLjA4M2M5LjI2NCAwIDE3LjE5Ni45IDIzLjc5NiAyLjY5OSA2LjU5OSAxLjggMTIuMDEyIDQuMzIyIDE2LjIzOSA3LjU2OGEyOS41MTYgMjkuNTE2IDAgMDE5LjI5MyAxMS42MzcgMzguNzU2IDM4Ljc1NiAwIDAxMi45NTUgMTQuNTQxdjEuMjI5Yy0uMDA5LjI4NC0uMDA5LjU2OC0uMDM5Ljg1MXYtLjAwMWEzOC43MDEgMzguNzAxIDAgMDEtMS45NzQgMTAuNTEyIDM0LjgwNSAzNC44MDUgMCAwMS01LjgyMyAxMC40NCAzOC41NTIgMzguNTUyIDAgMDEtOS4zODkgOC4yMzJjLTMuNzI1IDIuMzYtNi4wNDIgNC40NTMtMTAuODAyIDUuODY5IDMuMTk0IDEuNzE0IDQuMjIgMy4wMTUgNi41MjggNi4yMDJMMzUyLjg0OCAxMjhsLTIyLjU0NC0uMDA4YTExLjYwNSAxMS42MDUgMCAwMS01LjU4Mi0xLjIzOSAxMS4xNDcgMTEuMTQ3IDAgMDEtMy45LTMuNTQ0bC0yOC41MzQtNDAuOTc2YTkuNzQ4IDkuNzQ4IDAgMDAtMy41Mi0zLjI3NmMtMS4yOC0uNjQ5LTMuMTcyLS45NzQtNS42NzYtLjk3N2gtMTAuODAxdjUwLjAxMnpNMTAxLjMyOCAyMy44MDlINjIuNzA3VjEyOGgtMjMuODhWMjMuODA5SC4wMjVWLjAwOGgxMDEuMzAzdjIzLjgwMXptMzE4LjgzOCAxMDQuMTY1bC0uMTc3LjAwOXYtLjAxYy0zNy4xMjItLjIyNi02Ny4xNDEtMjguNzgzLTY3LjE0MS02My45NzdsLjAwMi0uOTkyYzAtMjkuNDgzIDE5LjQ3My01NC40OTggNDguMzM5LTYyLjM0My4yNzYtLjEwOS41NTgtLjIwMy44NDQtLjI4MSAyLjc2LS43NDIgNS4zNjggMCA1LjgyMyAxLjY0N2EyLjIzMyAyLjIzMyAwIDAxLS4zMDQgMS43MzZjLTIyLjM1NSA1LjkyOS0zOC44NzcgMjYuODY0LTM4Ljg3NyA1MS43ODFhNTQuNzk4IDU0Ljc5OCAwIDAwNC4xMzQgMjAuOTYgNTEuMjM1IDUxLjIzNSAwIDAwMy4wNzQgNi4yNTJjOC45OCAxNS42MzUgMjUuNDYgMjYuMTQ1IDQ0LjMyNyAyNi4yNDcgMTguODY3LS4xMDIgMzUuMzQ3LTEwLjYxMiA0NC4zMjctMjYuMjQ3YTc1LjYxMiA3NS42MTIgMCAwMC40NjMtLjgxOSA1MS4yMzUgNTEuMjM1IDAgMDAyLjk2OS02LjMyNSA1NC43OTggNTQuNzk4IDAgMDAzLjc3Ni0yMC4wNjhjMC0yNC45MTctMTYuNTIyLTQ1Ljg1Mi0zOC44NzctNTEuNzgxYTIuMjI1IDIuMjI1IDAgMDEtLjMwNC0xLjczNmMuNDU1LTEuNjQ3IDMuMDYyLTIuMzg5IDUuODIzLTEuNjQ3LjI4Ni4wNzguNTY4LjE3Mi44NDQuMjgxIDI4Ljg2NiA3Ljg0NSA0OC4zMzkgMzIuODYgNDguMzM5IDYyLjM0M2wuMDAxLjk5MmMwIDM1LjE5NC0zMC4wMTggNjMuNzUxLTY3LjE0IDYzLjk3N3YuMDFhNS4yNDIgNS4yNDIgMCAwMS0uMTc3LS4wMDloLS4wODh6bS0yNTEuNTIxIDBsLS4xNzcuMDA5di0uMDFjLTM3LjEyMi0uMjI2LTY3LjE0LTI4Ljc4My02Ny4xNC02My45NzdsLjAwMS0uOTkyYzAtMjkuNDgzIDE5LjQ3My01NC40OTggNDguMzM5LTYyLjM0My4yNzYtLjEwOS41NTgtLjIwMy44NDQtLjI4MSAyLjc2MS0uNzQyIDUuMzY4IDAgNS44MjQgMS42NDdhMi4yMzMgMi4yMzMgMCAwMS0uMzA0IDEuNzM2Yy0yMi4zNTYgNS45MjktMzguODc3IDI2Ljg2NC0zOC44NzcgNTEuNzgxYTU0Ljc3NiA1NC43NzYgMCAwMDMuOTk2IDIwLjYyNGwuMTM3LjMzNmE1MS4yMzUgNTEuMjM1IDAgMDAyLjYxMSA1LjQzM2wuMjcxLjQ4NS4xOTIuMzM0YzguOTggMTUuNjM1IDI1LjQ2IDI2LjE0NSA0NC4zMjcgMjYuMjQ3IDE4Ljg2OC0uMTAyIDM1LjM0OC0xMC42MTIgNDQuMzI3LTI2LjI0N2E0Ni4wNjIgNDYuMDYyIDAgMDAuNDYzLS44MTkgNTEuMjM1IDUxLjIzNSAwIDAwMi42MTEtNS40MzNsLjEzOC0uMzM2YTU0Ljc5OCA1NC43OTggMCAwMDMuOTk2LTIwLjYyNGMwLTI0LjkxNy0xNi41MjEtNDUuODUyLTM4Ljg3Ny01MS43ODFhMi4yMzMgMi4yMzMgMCAwMS0uMzA0LTEuNzM2Yy40NTUtMS42NDcgMy4wNjMtMi4zODkgNS44MjMtMS42NDcuMjg2LjA3OC41NjguMTcyLjg0NC4yODEgMjguODY2IDcuODQ1IDQ4LjMzOSAzMi44NiA0OC4zMzkgNjIuMzQzbC4wMDIuOTkyYzAgMzUuMTk0LTMwLjAxOSA2My43NTEtNjcuMTQxIDYzLjk3N3YuMDFhNS4zMiA1LjMyIDAgMDEtLjE3Ni0uMDA5aC0uMDg5ek0yODguNzg0IDE5LjU0M2gtMTYuNzEzbC4yMiA0MS4zNTdoMTUuNzczYzE0LjUxNi4yNTYgMjEuNzQ2LTUuNjc5IDI1LjMyNy0xMS42MTcgNC4yODItNy4xMDcgMy4zMzMtMTQuMjE0IDMuMzc3LTEwLjY5NWwtLjAwMS0uMTEuMDAxLjExaC0uMDAxdi0uMTk3Yy0uMDk4LTE0LjMxOS0xMC44NTctMTguODQ4LTI3Ljk4My0xOC44NDh6bTI3Ljk4MyAxOC45MzV2LS4wODcuMDQxbC4wMDEuMTU2LS4wMDEtLjExem0xOTQuMTE4LTIxLjg5MWExMi4wNTcgMTIuMDU3IDAgMDEtMi41NCAzLjc5OCAxMS44ODQgMTEuODg0IDAgMDEtMy44MDggMi41MzggMTEuNzg1IDExLjc4NSAwIDAxLTkuMjQxIDAgMTEuNjc4IDExLjY3OCAwIDAxLTYuMzM2LTYuMzM2IDExLjc2MyAxMS43NjMgMCAwMTAtOS4yNDYgMTEuNjg0IDExLjY4NCAwIDAxNi4zMzYtNi4zMzYgMTEuODAzIDExLjgwMyAwIDAxOS4yNDEgMCAxMS45MDMgMTEuOTAzIDAgMDEzLjgwOCAyLjUzOSAxMi4wMzMgMTIuMDMzIDAgMDEyLjU0IDMuNzk5IDExLjgzNiAxMS44MzYgMCAwMTAgOS4yNDR6bS0xLjk1OC04LjQyM2E5LjY1NyA5LjY1NyAwIDAwLTUuMjAzLTUuMjAyIDkuNjk3IDkuNjk3IDAgMDAtNy42MDMgMCA5LjY2IDkuNjYgMCAwMC01LjIwMyA1LjIwMiA5LjcxIDkuNzEgMCAwMDAgNy41OTggOS42NTUgOS42NTUgMCAwMDUuMjAzIDUuMjAxIDkuNjg4IDkuNjg4IDAgMDA3LjYwMyAwIDkuNjUyIDkuNjUyIDAgMDA1LjIwMy01LjIwMSA5LjcxIDkuNzEgMCAwMDAtNy41OTh6bS0xMS4wNTIgNS41MjZ2NC42NDlhLjM4My4zODMgMCAwMS0uMTI4LjMwNi4zOTcuMzk3IDAgMDEtLjMwMS4xMjFoLTEuNzk5YS40MDUuNDA1IDAgMDEtLjQwMy0uNDAzbC4wMDEtLjAyNFY1LjU4NmwtLjAwMS0uMDIyYzAtLjIyMS4xODItLjQwMy40MDItLjQwM0g0OTkuNTcxYTcuMzY5IDcuMzY5IDAgMDEyLjUyMS4zMiAzLjQzMiAzLjQzMiAwIDAxMS43ODYgMS40NDkgNC42NDUgNC42NDUgMCAwMS4wODkgNC41ODkgMy42MDQgMy42MDQgMCAwMS0xLjUzNiAxLjQ1NGMuMDUyLjA5LjA5LjE2MS4xMjIuMjE0bDIuNzI2IDQuOTU1YS40MDkuNDA5IDAgMDEtLjAxOS40MTFsLS4zNjUuMjEzaC0yLjAxNmEuMzY2LjM2NiAwIDAxLS4zNjQtLjIyN2wtMi41ODYtNC44NDloLTIuMDU0em0yLjE1Ni0yLjQwNWMuNDk4LjAzMi45ODYtLjE0NiAxLjM0NC0uNDkxLjM0My0uMzgxLjUxOC0uODg0LjQ4Ny0xLjM5NWExLjY4MiAxLjY4MiAwIDAwLS43OTQtMS42MDcgMy42IDMuNiAwIDAwLTEuNTYxLS4yMzloLTEuNjMydjMuNzMyaDIuMTU2eiIgZmlsbD0iIzVlYjZlNCIvPjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODQyLjUyIDU2Ni45MyI+PHJhZGlhbEdyYWRpZW50IGlkPSJBIiBjeD0iMzg2LjA0MSIgY3k9IjEzNi4zMzkiIHI9IjM0NS42NiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk4NTYgMCAwIDAuOTg1NiAxMi4wNzI4IDMuOTA5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y3YmZhNCIvPjxzdG9wIG9mZnNldD0iLjQzIiBzdG9wLWNvbG9yPSIjZTYwMDEyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYTAwMDAwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI0EpIiBkPSJNMjk4LjE2IDM3Mi4yMnMuODUtLjY2LjQtMS43NmguMDJDMjQzLjA4IDI0OS4yMyAxNjcuMTYgMTU3LjMgMTY3LjE2IDE1Ny4zcy00MS4zIDM5LjItMzguMzYgNzguNDdjMS41NyAyOS43IDIzLjkzIDQ3LjMgMjMuOTMgNDcuMyAzNi4wMiAzNS4xIDEyMy4yMyA3OS40IDE0My41IDg5LjQ3LjI3LjEgMS4zLjQ0IDEuOTMtLjM0eiIvPjxyYWRpYWxHcmFkaWVudCBpZD0iQiIgY3g9IjM4Ni4wMzgiIGN5PSIxMzYuMjczIiByPSIzNDUuNzE1IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuOTg1NiAwIDAgMC45ODU2IDEyLjA3MjggMy45MDkpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjdiZmE0Ii8+PHN0b3Agb2Zmc2V0PSIuNDMiIHN0b3AtY29sb3I9IiNlNjAwMTIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNhMDAwMDAiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjQikiIGQ9Ik0yODQuNjcgNDAyLjI0Yy0uMzYtMS4zLTEuODctMS4zLTEuODctMS4zdi0uMDVsLTE0NS4xOCA1LjA3YzE1Ljc0IDI4LjA3IDQyLjI2IDQ5Ljg4IDY5Ljg4IDQzLjE4IDE5LjA2LTQuNzYgNjIuMjQtMzQuODggNzYuNS00NS4wNmwtLjA0LS4wM2MxLjEtMSAuNzItMS44LjcyLTEuOHoiLz48cmFkaWFsR3JhZGllbnQgaWQ9IkMiIGN4PSIzODYuMDM3IiBjeT0iMTM2LjM0OCIgcj0iMzQ1LjYzNyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk4NTYgMCAwIDAuOTg1NiAxMi4wNzI4IDMuOTA5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y3YmZhNCIvPjxzdG9wIG9mZnNldD0iLjQzIiBzdG9wLWNvbG9yPSIjZTYwMDEyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYTAwMDAwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI0MpIiBkPSJNMjg2Ljg3IDM4OS4yYy43LTEuMTQtLjU1LTIuMTYtLjU1LTIuMTZsLjAxLS4wMUMyMjIuNTYgMzQ0IDk4Ljk3IDI3Ny45NyA5OC45NyAyNzcuOTdjLTExLjIzIDM0Ljc4IDMuOTIgNjIuOCAzLjkyIDYyLjggMTUuNzQgMzMuMyA0NS44IDQzLjM4IDQ1LjggNDMuMzggMTMuOSA1LjcgMjcuNzcgNi4xIDI3Ljc3IDYuMSAyLjE3LjQgODYuMzQuMDUgMTA4LjktLjA2Ljk3LS4wMiAxLjUtMSAxLjUtMXoiLz48cmFkaWFsR3JhZGllbnQgaWQ9IkQiIGN4PSIzODYuMDI4IiBjeT0iMTM2LjM1NyIgcj0iMzQ1LjY0MyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk4NTYgMCAwIDAuOTg1NiAxMi4wNzI4IDMuOTA5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y3YmZhNCIvPjxzdG9wIG9mZnNldD0iLjQzIiBzdG9wLWNvbG9yPSIjZTYwMDEyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYTAwMDAwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI0QpIiBkPSJNMjk2LjUgOTQuNmMtNi4zMi41Ni0yMy4zNyA0LjQ0LTIzLjM3IDQuNDQtMzguNDMgOS45My00Ny41MiA0NC44LTQ3LjUyIDQ0LjgtNyAyMS45Ni4yIDQ2LjA1LjIgNDYuMDUgMTIuODMgNTYuOTMgNzUuOTYgMTUwLjQ3IDg5LjU0IDE3MC4xMi45Ni45NiAxLjcyLjYgMS43Mi42IDEuNDYtLjQgMS4zNi0xLjggMS4zNi0xLjhsLjAyLjAyQzMzOS4zIDE0OS45NyAyOTYuNSA5NC42IDI5Ni41IDk0LjZ6Ii8+PHJhZGlhbEdyYWRpZW50IGlkPSJFIiBjeD0iMzg2LjEwMyIgY3k9IjEzNi4zNTkiIHI9IjM0Ni4wMyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk4NTYgMCAwIDAuOTg1NiAxMi4wNzI4IDMuOTA5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y3YmZhNCIvPjxzdG9wIG9mZnNldD0iLjQzIiBzdG9wLWNvbG9yPSIjZTYwMDEyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYTAwMDAwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI0UpIiBkPSJNMzQ0LjU3IDM2MC42YzEuNC41NCAyLjEtLjggMi4xLS44bC4wMS4wMmMxMy45My0yMC4xNCA3Ni43LTExMy4xOCA4OS40Ny0xNjkuOSAwIDAgNi45Mi0yNy40NS4yMy00Ni4wNSAwIDAtOS41LTM1LjQyLTQ3Ljk4LTQ0Ljc4IDAgMC0xMS4wOC0yLjgtMjIuODYtNC40NyAwIDAtNDMuMDIgNTUuNC0yMi4xIDI2NC4zOGguMDNjLjE1IDEuMzIgMS4xIDEuNiAxLjEgMS42eiIvPjxyYWRpYWxHcmFkaWVudCBpZD0iRiIgY3g9IjM4Ni4xMDUiIGN5PSIxMzYuMzU2IiByPSIzNDYuMDEzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuOTg1NiAwIDAgMC45ODU2IDEyLjA3MjggMy45MDkpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjdiZmE0Ii8+PHN0b3Agb2Zmc2V0PSIuNDMiIHN0b3AtY29sb3I9IiNlNjAwMTIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNhMDAwMDAiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjRikiIGQ9Ik0zNzguOTMgNDAxLjAzcy0xLjI3LjE2LTEuNjMgMS4xMmMwIDAtLjMgMS4zLjU2IDEuOTZsLS4wMi4wMWMxMy45IDkuOTcgNTYuMDMgMzkuNDIgNzYuMzMgNDUuMTQgMCAwIDM3LjUzIDEyLjggNzAuMTMtNDMuMmwtMTQ1LjM3LTUuMDJ6Ii8+PHJhZGlhbEdyYWRpZW50IGlkPSJHIiBjeD0iMzg2LjEwMyIgY3k9IjEzNi4zNjYiIHI9IjM0Ni4wMDgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC45ODU2IDAgMCAwLjk4NTYgMTIuMDcyOCAzLjkwOSkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmN2JmYTQiLz48c3RvcCBvZmZzZXQ9Ii40MyIgc3RvcC1jb2xvcj0iI2U2MDAxMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2EwMDAwMCIvPjwvcmFkaWFsR3JhZGllbnQ+PHBhdGggZmlsbD0idXJsKCNHKSIgZD0iTTU2Mi45NSAyNzcuNjdzLTEyMy40IDY2LjIzLTE4Ny4yMiAxMDkuMjdsLjAyLjAycy0xLjE1Ljc2LS43NSAyLjFjMCAwIC42IDEuMSAxLjUgMS4xdi4wMWwxMTEuNS0uMjdzMTEuMTgtLjQ0IDI1LTUuNzVjMCAwIDMwLjc1LTkuNzggNDYuNzMtNDQuNy4wMS4wMSAxNC4yNS0yOC41IDMuMjMtNjEuNzd6Ii8+PHJhZGlhbEdyYWRpZW50IGlkPSJIIiBjeD0iMzg2LjEwNCIgY3k9IjEzNi4zNzEiIHI9IjM0Ni4wMDIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC45ODU2IDAgMCAwLjk4NTYgMTIuMDcyOCAzLjkwOSkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmN2JmYTQiLz48c3RvcCBvZmZzZXQ9Ii40MyIgc3RvcC1jb2xvcj0iI2U2MDAxMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2EwMDAwMCIvPjwvcmFkaWFsR3JhZGllbnQ+PHBhdGggZmlsbD0idXJsKCNIKSIgZD0iTTM2NC4wNyAzNzIuMjJzMSAuNzUgMS45NS4xNHYuMDFjMjAuOC0xMC4zMyAxMDcuMzUtNTQuMzYgMTQzLjItODkuMyAwIDAgMjIuNy0xOC4yMyAyMy45LTQ3LjUgMi42Mi00MC42NS0zOC4zLTc4LjI3LTM4LjMtNzguMjdzLTc1LjcgOTEuNjMtMTMxLjE3IDIxMi42bC4wMy0uMDFzLS42NiAxLjQuNCAyLjN6Ii8+PHBhdGggZD0iTTc3NC43NiAyODQuMjRoLTgyLjJ2LTcyLjM4aC0zNi40djE3OS40aDM2LjRWMzE4LjRoODIuMnY3Mi44NmgzNi40di0xNzkuNGgtMzYuNHptMjA1LjA2IDMwLjNjMCAyOS4xNy0xNC40OCA0NC43NS00MC43OCA0NC43NS0yNi40NSAwLTQxLjAyLTE2LjAyLTQxLjAyLTQ2VjIxMS45N2gtMzYuNHYxMDIuNThjMCA1MC40NiAyOC4wNCA3OS40IDc2LjkzIDc5LjQgNDkuMzYgMCA3Ny42Ni0yOS40OCA3Ny42Ni04MC45di0xMDEuMmgtMzYuNHYxMDIuNjd6bTQyMC42OCAyMC42OGwtNDAuNzMtMTIzLjRoLTI5LjdsLTQwLjczIDEyMy40LTM5LjYzLTEyMy4yOGgtMzguNzRsNjIuNTIgMTc5LjMzaDMwLjE1bDQwLjgtMTE3LjggNDAuNzggMTE3LjhoMzAuNEwxNDc4IDIxMS45NGgtMzcuNzV6bTE0Mi43NC0yMS4xNmg2Ni4ydi0zMi42OGgtNjYuMnYtMzYuNzJoOTYuMXYtMzIuNjhoLTEzMnYxNzkuMTdoMTM1LjQ3di0zMi42N2gtOTkuNTZ6bTE0Mi45Ni0xMDIuMmgzNS45djE3OS4xN2gtMzUuOXptLTU3Mi41LjAxbC03OS4wNCAxNzkuM2gzNy4xNWwxNi4zNC0zNy4zNGg4Mi4xbDE2LjEgMzcuMzRoMzguMTVsLTc4Ljc2LTE3OS4zaC0zMi4wNXptLTEyIDEwOS42bDI3LjQzLTY0LjIgMjcuNiA2NC4yaC01NS4wNHoiIGZpbGw9IiMyMzE4MTUiLz48L3N2Zz4=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPIAAADyBAMAAACFRoWXAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAIVBMVEUAAADLODf////rt7j66+v13N3hkJLXZmjQS0vnqKrSU1UFneSdAAAAAXRSTlMAQObYZgAAAAFiS0dEAmYLfGQAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfiCwYULRd9NapgAAAAxUlEQVR42u3avQnCQBiA4biB2lgrKlg6hAsIDuAIVtaO4qaCZ5GDfF4i+Hc8T5fLl3vLEC5NAwAAAAAAAAAAQJUm36KsrKys/Jfl6SI0L04UB3JbZWVlZeVqyrvDXVxepoF9XM62WLUvnpaPaTEur7O1vlsoKysrKysrKysrKyu/+l2lrKysrFxpeXZuu6TFdHHq2HiTjffd4nHrOvDUqOst+ZnzKmVlZWXl3ygXjeKHx+/9dU1ZWVlZWRkAAAAAAAAAYIgbTTXuRlq5SeQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMTEtMDZUMjA6NDU6MjMrMDA6MDDmfcq+AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTExLTA2VDIwOjQ1OjIzKzAwOjAwlyByAgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAr1SURBVHic7dx7cFTVHcDx7+/s8lJ0QHyPb43ZJKBYFe04ahlH21qpCJtYUbRaW9SqHbXq+Kqg1qHU2hZpUbTTh8qUZTfASDu0Do3W+kbBymY3RK0O46Ni1KoB8tj76x8rmphks/fubnbj/D7/5d5zzu833MO955w994IxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjKoWUO4GSeqh1V0Z1H49jElCFx34I4xFGAaCyFXgd1ddw+jwZfZqGuvfLmnNPK9aPIzNqD7zQeFy34LlunLed7SM3c17VR8UI8eXrALHkZJxEQaYBEwHno3YGaEJlKTuHlnJ6VUdpkuxHvCWC6lcRbwrIUUAVsNuA5YUPUJ5H5FkyuoqGmheChP1ydIDY5jGEPpmNciVQV6RW30G4i4x3Dw11nUVqs7dYyxRcZtannfWQAlt7DWUxHeElfu4Ow7sDNDWFadtrDsitwB6lCaIpVOdQX/dEUZpragrTts/5wBWgk4vSZm//Q7id99oXMueYrsEKD98OkEifgOoDQGQIomVQvYlozQJENHAry9P1iN4BHF681AaURPR8Zta+mKvQ8OsAseRIJHQ7otcAoSGO3ojnneP7kbAqvS9dei8wrTRpDagD5CqikcUDFRheHSCW3A3n4sDU8iUhK5nwdj1Tp3bnVXx58hTExcg1oCs15RdEI9f2d/fyM0IurxWpg3DuWcp68QF0Om173ZdX0Xj6UsStoZwXH0C4hnjLov5ODY8OsPLl/cmwFjis3KlkyUUkUrNyFomnrgb9LRAempwGIXoZifTNfQ6XIxdfGl/ZE6/raQqfJhWZfEi46wimT9rc51Q8fSXor8uQ1GA81DuN+rq1Ow5U9h3gvnUj0K4YFXfxAXQcmfAdfQ7Hm08HvbsMCeXDgfsTq9K79DhQwSbsvAjl5HKnMSDlXOItn09D4y0RkKUM/ewkf8K+dOoNn/+Zr8SmQ1BvLqKji56UxzvU11zZ69jy1AyERIEtK/A48Agi68G9gXaH8GRfhGNxnIFyEgU9CvUhorWziSVH4tzTwFcKzNkDnkf1UZyk8HgdJ4Kn43EyGeU00BMo7D/vNjrdAcyqfi+/AUps8xi0PQE6meDLIDno93v9mX3uLymsTVmGc/OYcXiqn5OtZDvGXcSStTh3N/B1nwHaUJoIud8D4Nw8Crv4WxC5F7zFzKx9e4Ayq4E7iKUm4eQ20OkBY41hpHcxMD+/nh9PTUOYHTAYKGOAge4c65gZubHXHDWRvh/ViwNGexP1Lug50MlLPHU5sJCB7wbtKE8Aa3H6D16u2cBc8QBo3FSDl3kJGBEgXw+Vewlvu4mzjvrQV83lqTkIC4GRAeK2EK2JVN4sIJ48Ctw6gt3inqTTTWdW9XvBYqcvBV30aewu4DlgLaJryegzA64AxlNr8H8HAWgHPY9o7cpA+QIkms9CJU6Qfy9HdeV1gEQqhlIfoGYTo9rPYNoxWwuLn56KemPw9J801H2SR/kTUP1XgEjbEDmVmZEnA9T9Qg6pW1Hm+q8ol1VWB4g3V4Gk8D+KbqWj6zjOPeKDUqSVUzy9ItizWM4mGokVJYe/to5ia3cLcKDPmkvCzFXHxJY/IHpGUZLJl7KGaM0XV9MuwP/F9xC5sCwXP9G6H9r9bf8VZVnRLj7A6VUdJFJ3ouS3RP1ZGlobZlLLjajOLs3oPmfw53r9rSok0uf4b0iXMrNm8NtoLDkWXLX/9nOF7pwFzu+zt4MRXF3UPAAy4RW47sX4GQuo7B5GdTPCnLwqeLod3LaAKfaMnGHU1jW9DiWaa8EFWPFzPx+0SPZXxBeAg/y3nzN2gDr6MGfWvFXcPICGqi0kmtehMiXvOsLuYaI1fyx6MoHI1wJU2kg08u/Bm3Y/pugXPygtcH0jV9NsAvLvAMquFbQU7I4LUOnvg5aIJXdDuDxA28Wn/JeNtc+XLoC867NCZ+E/VcaSB4Dztx+vM9zad+OiVvmOrfrSoGVErgJ2GbTcUBB57LPFo9IY66u0sL2wDhBP1oF7Eb8rUaO7rgZ+2euYcrDvFXnH6znPx5JjEXc5Qz7CHYBqusQR/E0DlY8KewSo+xmBliHdlj6HhHEBMsi9UONC3wMN0m5pCMFWKPMxVx1wjM9arxR2B1A3ByejcpaR7p3o7lEmpErG29i7HRUSaf8dSXXgtfeYhiB1RYXteQmyZp+fic1Hgpvgs9amwjpAQ/WbBdXfYR7CRBTfV0v2GfhU+psghxaWWNEdXLqm3Xf915H1lTELyA6M/P0SljXwLc9pbeB8SufYkrTamJoAcr7veuGuRytjw2JWG753z7pvAX02OgKQ2eUeXPtbiO6Ud3PK0cAP/OXgyxRWtB7KWVWvFrXVDLcifsc6mmL6pM0V1AH0FRCfU0GdTCx1Mg01j/c51bD/NuChvJuKJcfi3DX+4vsmdHf/CLhy0JL5akx/A09/6D8TeRAqaU+gSnOgeiFdQFNTgYNZFZxbwlC8siVcSjx9RFHaiiUn4+nD+L+OHciI3xGgYulIoN/UQWUKbXvdGThudgbyKyDAD1EMtHUrlzDoCmKthb3MmkifgHNrCfLSibCUGYe9C5XUAUIdjwH5vW7Vh1xLIvVTVP3NImLJsTSmlxHslvwisDxAPYBDcN1riaX9zwpiGiLRfB2qTQR742grhH+y44+KmiQTTz0CFLIvoQncZUSrc6+4zVVHXctMRO8CDggQR1HvVNRtxfFUoEyz2kBuZsLbDwz6rqGq0Jg6BZW7gCMLiHkb0Zpbd/xRWR0gu7+tscBWPJA1wGqcPEWo8x0+0U52lrF4oQgZTkKkgcKe9/cTrcnOFuKpl4BCn+lvoLIC1ZW0j36WCw/eDmQ/cTPGq0a9U4CLyH41pACygZ1Cx/f88klldYC56piY3gBMKncqObxJaPvEz3bwJtJRVIM+CvqjCB+iKMV9qbQd3DFfvDtWzhgAsgtCKreUO40cOhA5u9f27RnVCSjoMfBFgjKe4l58D9WL+3s0VlYHAKiPrEJZUe40+qV6eZ9dvCKK0znA9vIklZdrqa/9c38nKq8DAIRGXALS963bchK5hfraB/o9N6N2I0jx9/kVx3yiNQO+rFqZHSA7R50BtJc7FQCUecyM9H0TuKdoZDEqC4YoozzJzURrbshZYqhSCSSRnorqaiD/9fzi6ga5hmhkYd41Eun5qF5fwpzysR24JJ/9npXdAWDHmzeNwJ5DHPl9YBbRmr/5qqUqxFvmI3pdadIaVDOedy4NdRvyKVyZj4CeZkaeJMRxfd4jKK3ViE70ffEhOyisj1yP6HeAj4uf2oA6UVnAx6OPzvfiw3C4A+zQ1BTm/b2vRbkFGFOiKK2o3ER9pDjz+pUv7093+DeU9vNwirISlRtoiLT4rTx8OsAOidb90Mxc0PMJ9jp2f9aDLKLtkwfz+bqmb4n0VJR5oCcWsdV20GWgdxOtSwZtZPh1gB1iyb0/3fR5NsFWDtMof0G85UTrni12ev2KJSfj3MXAmcB+AVrYCvooIivZFm4sxhfDh28H6CnRfCDqTkSZhHjVIHuQ/XZwCGhHeB/lLZRNiG4gnHmh3697DRVVIdEyKft1cI4m+/m7/REmoIwDtgDvgm5G3X8QfRXlGdRbV7IPVxtjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDGm7P4Pgx91lejgQ28AAAAASUVORK5CYII=\"","import React, { useEffect, useLayoutEffect, forwardRef, useState, useRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar useOnEscape = function useOnEscape(handler, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener(event) {\n // check if key is an Escape\n if (event.key === 'Escape') handler(event);\n };\n\n document.addEventListener('keyup', listener);\n return function () {\n if (!active) return;\n document.removeEventListener('keyup', listener);\n };\n }, [handler, active]);\n};\nvar useRepositionOnResize = function useRepositionOnResize(handler, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener() {\n handler();\n };\n\n window.addEventListener('resize', listener);\n return function () {\n if (!active) return;\n window.removeEventListener('resize', listener);\n };\n }, [handler, active]);\n};\nvar useOnClickOutside = function useOnClickOutside(ref, handler, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener(event) {\n // Do nothing if clicking ref's element or descendent elements\n var refs = Array.isArray(ref) ? ref : [ref];\n var contains = false;\n refs.forEach(function (r) {\n if (!r.current || r.current.contains(event.target)) {\n contains = true;\n return;\n }\n });\n event.stopPropagation();\n if (!contains) handler(event);\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n return function () {\n if (!active) return;\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, handler, active]);\n}; // Make sure that user is not able TAB out of the Modal content on Open\n\nvar useTabbing = function useTabbing(contentRef, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener(event) {\n // check if key is an Tab\n if (event.keyCode === 9) {\n var _contentRef$current;\n\n var els = contentRef === null || contentRef === void 0 ? void 0 : (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]');\n var focusableEls = Array.prototype.slice.call(els);\n\n if (focusableEls.length === 1) {\n event.preventDefault();\n return;\n }\n\n var firstFocusableEl = focusableEls[0];\n var lastFocusableEl = focusableEls[focusableEls.length - 1];\n\n if (event.shiftKey && document.activeElement === firstFocusableEl) {\n event.preventDefault();\n lastFocusableEl.focus();\n } else if (document.activeElement === lastFocusableEl) {\n event.preventDefault();\n firstFocusableEl.focus();\n }\n }\n };\n\n document.addEventListener('keydown', listener);\n return function () {\n if (!active) return;\n document.removeEventListener('keydown', listener);\n };\n }, [contentRef, active]);\n};\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar Style = {\n popupContent: {\n tooltip: {\n position: 'absolute',\n zIndex: 999\n },\n modal: {\n position: 'relative',\n margin: 'auto'\n }\n },\n popupArrow: {\n height: '8px',\n width: '16px',\n position: 'absolute',\n background: 'transparent',\n color: '#FFF',\n zIndex: -1\n },\n overlay: {\n tooltip: {\n position: 'fixed',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n zIndex: 999\n },\n modal: {\n position: 'fixed',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n display: 'flex',\n zIndex: 999\n }\n }\n};\n\nvar POSITION_TYPES = ['top left', 'top center', 'top right', 'right top', 'right center', 'right bottom', 'bottom left', 'bottom center', 'bottom right', 'left top', 'left center', 'left bottom'];\n\nvar getCoordinatesForPosition = function getCoordinatesForPosition(triggerBounding, ContentBounding, position, //PopupPosition | PopupPosition[],\narrow, _ref) {\n var offsetX = _ref.offsetX,\n offsetY = _ref.offsetY;\n var margin = arrow ? 8 : 0;\n var args = position.split(' '); // the step N 1 : center the popup content => ok\n\n var CenterTop = triggerBounding.top + triggerBounding.height / 2;\n var CenterLeft = triggerBounding.left + triggerBounding.width / 2;\n var height = ContentBounding.height,\n width = ContentBounding.width;\n var top = CenterTop - height / 2;\n var left = CenterLeft - width / 2;\n var transform = '';\n var arrowTop = '0%';\n var arrowLeft = '0%'; // the step N 2 : => ok\n\n switch (args[0]) {\n case 'top':\n top -= height / 2 + triggerBounding.height / 2 + margin;\n transform = \"rotate(180deg) translateX(50%)\";\n arrowTop = '100%';\n arrowLeft = '50%';\n break;\n\n case 'bottom':\n top += height / 2 + triggerBounding.height / 2 + margin;\n transform = \"rotate(0deg) translateY(-100%) translateX(-50%)\";\n arrowLeft = '50%';\n break;\n\n case 'left':\n left -= width / 2 + triggerBounding.width / 2 + margin;\n transform = \" rotate(90deg) translateY(50%) translateX(-25%)\";\n arrowLeft = '100%';\n arrowTop = '50%';\n break;\n\n case 'right':\n left += width / 2 + triggerBounding.width / 2 + margin;\n transform = \"rotate(-90deg) translateY(-150%) translateX(25%)\";\n arrowTop = '50%';\n break;\n }\n\n switch (args[1]) {\n case 'top':\n top = triggerBounding.top;\n arrowTop = triggerBounding.height / 2 + \"px\";\n break;\n\n case 'bottom':\n top = triggerBounding.top - height + triggerBounding.height;\n arrowTop = height - triggerBounding.height / 2 + \"px\";\n break;\n\n case 'left':\n left = triggerBounding.left;\n arrowLeft = triggerBounding.width / 2 + \"px\";\n break;\n\n case 'right':\n left = triggerBounding.left - width + triggerBounding.width;\n arrowLeft = width - triggerBounding.width / 2 + \"px\";\n break;\n }\n\n top = args[0] === 'top' ? top - offsetY : top + offsetY;\n left = args[0] === 'left' ? left - offsetX : left + offsetX;\n return {\n top: top,\n left: left,\n transform: transform,\n arrowLeft: arrowLeft,\n arrowTop: arrowTop\n };\n};\n\nvar getTooltipBoundary = function getTooltipBoundary(keepTooltipInside) {\n // add viewport\n var boundingBox = {\n top: 0,\n left: 0,\n\n /* eslint-disable-next-line no-undef */\n width: window.innerWidth,\n\n /* eslint-disable-next-line no-undef */\n height: window.innerHeight\n };\n\n if (typeof keepTooltipInside === 'string') {\n /* eslint-disable-next-line no-undef */\n var selector = document.querySelector(keepTooltipInside);\n\n if (process.env.NODE_ENV !== 'production') {\n if (selector === null) throw new Error(keepTooltipInside + \" selector does not exist : keepTooltipInside must be a valid html selector 'class' or 'Id' or a boolean value\");\n }\n\n if (selector !== null) boundingBox = selector.getBoundingClientRect();\n }\n\n return boundingBox;\n};\n\nvar calculatePosition = function calculatePosition(triggerBounding, ContentBounding, position, arrow, _ref2, keepTooltipInside) {\n var offsetX = _ref2.offsetX,\n offsetY = _ref2.offsetY;\n var bestCoords = {\n arrowLeft: '0%',\n arrowTop: '0%',\n left: 0,\n top: 0,\n transform: 'rotate(135deg)'\n };\n var i = 0;\n var wrapperBox = getTooltipBoundary(keepTooltipInside);\n var positions = Array.isArray(position) ? position : [position]; // keepTooltipInside would be activated if the keepTooltipInside exist or the position is Array\n\n if (keepTooltipInside || Array.isArray(position)) positions = [].concat(positions, POSITION_TYPES); // add viewPort for WarpperBox\n // wrapperBox.top = wrapperBox.top + window.scrollY;\n // wrapperBox.left = wrapperBox.left + window.scrollX;\n\n while (i < positions.length) {\n bestCoords = getCoordinatesForPosition(triggerBounding, ContentBounding, positions[i], arrow, {\n offsetX: offsetX,\n offsetY: offsetY\n });\n var contentBox = {\n top: bestCoords.top,\n left: bestCoords.left,\n width: ContentBounding.width,\n height: ContentBounding.height\n };\n\n if (contentBox.top <= wrapperBox.top || contentBox.left <= wrapperBox.left || contentBox.top + contentBox.height >= wrapperBox.top + wrapperBox.height || contentBox.left + contentBox.width >= wrapperBox.left + wrapperBox.width) {\n i++;\n } else {\n break;\n }\n }\n\n return bestCoords;\n};\n\nvar popupIdCounter = 0;\n\nvar getRootPopup = function getRootPopup() {\n var PopupRoot = document.getElementById('popup-root');\n\n if (PopupRoot === null) {\n PopupRoot = document.createElement('div');\n PopupRoot.setAttribute('id', 'popup-root');\n document.body.appendChild(PopupRoot);\n }\n\n return PopupRoot;\n};\n\nvar Popup = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _ref$trigger = _ref.trigger,\n trigger = _ref$trigger === void 0 ? null : _ref$trigger,\n _ref$onOpen = _ref.onOpen,\n onOpen = _ref$onOpen === void 0 ? function () {} : _ref$onOpen,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,\n _ref$defaultOpen = _ref.defaultOpen,\n defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,\n _ref$open = _ref.open,\n open = _ref$open === void 0 ? undefined : _ref$open,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$nested = _ref.nested,\n nested = _ref$nested === void 0 ? false : _ref$nested,\n _ref$closeOnDocumentC = _ref.closeOnDocumentClick,\n closeOnDocumentClick = _ref$closeOnDocumentC === void 0 ? true : _ref$closeOnDocumentC,\n _ref$repositionOnResi = _ref.repositionOnResize,\n repositionOnResize = _ref$repositionOnResi === void 0 ? true : _ref$repositionOnResi,\n _ref$closeOnEscape = _ref.closeOnEscape,\n closeOnEscape = _ref$closeOnEscape === void 0 ? true : _ref$closeOnEscape,\n _ref$on = _ref.on,\n on = _ref$on === void 0 ? ['click'] : _ref$on,\n _ref$contentStyle = _ref.contentStyle,\n contentStyle = _ref$contentStyle === void 0 ? {} : _ref$contentStyle,\n _ref$arrowStyle = _ref.arrowStyle,\n arrowStyle = _ref$arrowStyle === void 0 ? {} : _ref$arrowStyle,\n _ref$overlayStyle = _ref.overlayStyle,\n overlayStyle = _ref$overlayStyle === void 0 ? {} : _ref$overlayStyle,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? 'bottom center' : _ref$position,\n _ref$modal = _ref.modal,\n modal = _ref$modal === void 0 ? false : _ref$modal,\n _ref$lockScroll = _ref.lockScroll,\n lockScroll = _ref$lockScroll === void 0 ? false : _ref$lockScroll,\n _ref$arrow = _ref.arrow,\n arrow = _ref$arrow === void 0 ? true : _ref$arrow,\n _ref$offsetX = _ref.offsetX,\n offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX,\n _ref$offsetY = _ref.offsetY,\n offsetY = _ref$offsetY === void 0 ? 0 : _ref$offsetY,\n _ref$mouseEnterDelay = _ref.mouseEnterDelay,\n mouseEnterDelay = _ref$mouseEnterDelay === void 0 ? 100 : _ref$mouseEnterDelay,\n _ref$mouseLeaveDelay = _ref.mouseLeaveDelay,\n mouseLeaveDelay = _ref$mouseLeaveDelay === void 0 ? 100 : _ref$mouseLeaveDelay,\n _ref$keepTooltipInsid = _ref.keepTooltipInside,\n keepTooltipInside = _ref$keepTooltipInsid === void 0 ? false : _ref$keepTooltipInsid,\n children = _ref.children;\n\n var _useState = useState(open || defaultOpen),\n isOpen = _useState[0],\n setIsOpen = _useState[1];\n\n var triggerRef = useRef(null);\n var contentRef = useRef(null);\n var arrowRef = useRef(null);\n var focusedElBeforeOpen = useRef(null);\n var popupId = useRef(\"popup-\" + ++popupIdCounter);\n var isModal = modal ? true : !trigger;\n var timeOut = useRef(0);\n useIsomorphicLayoutEffect(function () {\n if (isOpen) {\n focusedElBeforeOpen.current = document.activeElement;\n setPosition();\n focusContentOnOpen(); // for accessibility\n\n lockScrolll();\n } else {\n resetScroll();\n }\n\n return function () {\n clearTimeout(timeOut.current);\n };\n }, [isOpen]); // for uncontrolled popup we need to sync isOpen with open prop\n\n useEffect(function () {\n if (typeof open === 'boolean') {\n if (open) openPopup();else closePopup();\n }\n }, [open, disabled]);\n\n var openPopup = function openPopup(event) {\n if (isOpen || disabled) return;\n setIsOpen(true);\n setTimeout(function () {\n return onOpen(event);\n }, 0);\n };\n\n var closePopup = function closePopup(event) {\n var _focusedElBeforeOpen$;\n\n if (!isOpen || disabled) return;\n setIsOpen(false);\n if (isModal) (_focusedElBeforeOpen$ = focusedElBeforeOpen.current) === null || _focusedElBeforeOpen$ === void 0 ? void 0 : _focusedElBeforeOpen$.focus();\n setTimeout(function () {\n return onClose(event);\n }, 0);\n };\n\n var togglePopup = function togglePopup(event) {\n event === null || event === void 0 ? void 0 : event.stopPropagation();\n if (!isOpen) openPopup(event);else closePopup(event);\n };\n\n var onMouseEnter = function onMouseEnter(event) {\n clearTimeout(timeOut.current);\n timeOut.current = setTimeout(function () {\n return openPopup(event);\n }, mouseEnterDelay);\n };\n\n var onContextMenu = function onContextMenu(event) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n togglePopup();\n };\n\n var onMouseLeave = function onMouseLeave(event) {\n clearTimeout(timeOut.current);\n timeOut.current = setTimeout(function () {\n return closePopup(event);\n }, mouseLeaveDelay);\n };\n\n var lockScrolll = function lockScrolll() {\n if (isModal && lockScroll) document.getElementsByTagName('body')[0].style.overflow = 'hidden'; // migrate to document.body\n };\n\n var resetScroll = function resetScroll() {\n if (isModal && lockScroll) document.getElementsByTagName('body')[0].style.overflow = 'auto';\n };\n\n var focusContentOnOpen = function focusContentOnOpen() {\n var _contentRef$current;\n\n var focusableEls = contentRef === null || contentRef === void 0 ? void 0 : (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]');\n var firstEl = Array.prototype.slice.call(focusableEls)[0];\n firstEl === null || firstEl === void 0 ? void 0 : firstEl.focus();\n };\n\n useImperativeHandle(ref, function () {\n return {\n open: function open() {\n openPopup();\n },\n close: function close() {\n closePopup();\n },\n toggle: function toggle() {\n togglePopup();\n }\n };\n }); // set Position\n\n var setPosition = function setPosition() {\n if (isModal || !isOpen) return;\n if (!(triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) || !(triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) || !(contentRef === null || contentRef === void 0 ? void 0 : contentRef.current)) return; /// show error as one of ref is undefined\n\n var trigger = triggerRef.current.getBoundingClientRect();\n var content = contentRef.current.getBoundingClientRect();\n var cords = calculatePosition(trigger, content, position, arrow, {\n offsetX: offsetX,\n offsetY: offsetY\n }, keepTooltipInside);\n contentRef.current.style.top = cords.top + window.scrollY + \"px\";\n contentRef.current.style.left = cords.left + window.scrollX + \"px\";\n\n if (arrow && !!arrowRef.current) {\n var _arrowStyle$top, _arrowStyle$left;\n\n arrowRef.current.style.transform = cords.transform;\n arrowRef.current.style.setProperty('-ms-transform', cords.transform);\n arrowRef.current.style.setProperty('-webkit-transform', cords.transform);\n arrowRef.current.style.top = ((_arrowStyle$top = arrowStyle.top) === null || _arrowStyle$top === void 0 ? void 0 : _arrowStyle$top.toString()) || cords.arrowTop;\n arrowRef.current.style.left = ((_arrowStyle$left = arrowStyle.left) === null || _arrowStyle$left === void 0 ? void 0 : _arrowStyle$left.toString()) || cords.arrowLeft;\n }\n }; // hooks\n\n\n useOnEscape(closePopup, closeOnEscape); // can be optimized if we disabled for hover\n\n useTabbing(contentRef, isOpen && isModal);\n useRepositionOnResize(setPosition, repositionOnResize);\n useOnClickOutside(!!trigger ? [contentRef, triggerRef] : [contentRef], closePopup, closeOnDocumentClick && !nested); // we need to add a ne\n // render the trigger element and add events\n\n var renderTrigger = function renderTrigger() {\n var triggerProps = {\n key: 'T',\n ref: triggerRef,\n 'aria-describedby': popupId.current\n };\n var onAsArray = Array.isArray(on) ? on : [on];\n\n for (var i = 0, len = onAsArray.length; i < len; i++) {\n switch (onAsArray[i]) {\n case 'click':\n triggerProps.onClick = togglePopup;\n break;\n\n case 'right-click':\n triggerProps.onContextMenu = onContextMenu;\n break;\n\n case 'hover':\n triggerProps.onMouseEnter = onMouseEnter;\n triggerProps.onMouseLeave = onMouseLeave;\n break;\n\n case 'focus':\n triggerProps.onFocus = onMouseEnter;\n triggerProps.onBlur = onMouseLeave;\n break;\n }\n }\n\n if (typeof trigger === 'function') {\n var comp = trigger(isOpen);\n return !!trigger && React.cloneElement(comp, triggerProps);\n }\n\n return !!trigger && React.cloneElement(trigger, triggerProps);\n };\n\n var addWarperAction = function addWarperAction() {\n var popupContentStyle = isModal ? Style.popupContent.modal : Style.popupContent.tooltip;\n var childrenElementProps = {\n className: \"popup-content \" + (className !== '' ? className.split(' ').map(function (c) {\n return c + \"-content\";\n }).join(' ') : ''),\n style: _extends({}, popupContentStyle, contentStyle, {\n pointerEvents: 'auto'\n }),\n ref: contentRef,\n onClick: function onClick(e) {\n e.stopPropagation();\n }\n };\n\n if (!modal && on.indexOf('hover') >= 0) {\n childrenElementProps.onMouseEnter = onMouseEnter;\n childrenElementProps.onMouseLeave = onMouseLeave;\n }\n\n return childrenElementProps;\n };\n\n var renderContent = function renderContent() {\n return React.createElement(\"div\", Object.assign({}, addWarperAction(), {\n key: \"C\",\n role: isModal ? 'dialog' : 'tooltip',\n id: popupId.current\n }), arrow && !isModal && React.createElement(\"div\", {\n ref: arrowRef,\n style: Style.popupArrow\n }, React.createElement(\"svg\", {\n \"data-testid\": \"arrow\",\n className: \"popup-arrow \" + (className !== '' ? className.split(' ').map(function (c) {\n return c + \"-arrow\";\n }).join(' ') : ''),\n viewBox: \"0 0 32 16\",\n style: _extends({\n position: 'absolute'\n }, arrowStyle)\n }, React.createElement(\"path\", {\n d: \"M16 0l16 16H0z\",\n fill: \"currentcolor\"\n }))), children && typeof children === 'function' ? children(closePopup, isOpen) : children);\n };\n\n var overlay = !(on.indexOf('hover') >= 0);\n var ovStyle = isModal ? Style.overlay.modal : Style.overlay.tooltip;\n var content = [overlay && React.createElement(\"div\", {\n key: \"O\",\n \"data-testid\": \"overlay\",\n \"data-popup\": isModal ? 'modal' : 'tooltip',\n className: \"popup-overlay \" + (className !== '' ? className.split(' ').map(function (c) {\n return c + \"-overlay\";\n }).join(' ') : ''),\n style: _extends({}, ovStyle, overlayStyle, {\n pointerEvents: closeOnDocumentClick && nested || isModal ? 'auto' : 'none'\n }),\n onClick: closeOnDocumentClick && nested ? closePopup : undefined,\n tabIndex: -1\n }, isModal && renderContent()), !isModal && renderContent()];\n return React.createElement(React.Fragment, null, renderTrigger(), isOpen && ReactDOM.createPortal(content, getRootPopup()));\n});\n\nexport default Popup;\nexport { Popup };\n//# sourceMappingURL=reactjs-popup.esm.js.map\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const children = [...element.children];\n if (element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOf(el, parent) {\n const isChild = parent.contains(el);\n if (!isChild && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n return children.includes(el);\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\n\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n Object.assign(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n if (slides) virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg;\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg;\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","/**\n * Swiper React 11.1.14\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2024 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 12, 2024\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: child.props.virtualIndex || child.key || `slide-${index}`\n });\n });\n}\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\n\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper && !swiperRef.current.destroyed) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };\n","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj, splitEvents) {\n if (obj === void 0) {\n obj = {};\n }\n if (splitEvents === void 0) {\n splitEvents = true;\n }\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nconst updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n"],"names":["PlatformHeader","___EmotionJSX","className","style","fontSize","href","rel","contributorsAndAdopters","homepage_url","src","name","introsToTheia","title","speaker","JonasHelming","MarcDumais","ThomasMader","products","MbedStudio","thumb","MbedStudioMin","alt","CDTCloud","CDTCloudMin","CoffeeEditor","CoffeeEditorMin","LogiCloud","LogiCloudMin","BluePrint","BluePrintMin","RecordEvolutionScreenshot","RecordEvolutionScreenshotMin","VUEngineStudioScreenshot","VUEngineStudioScreenshotMin","Smartface","SmartfaceMin","CodeRealTime","CodeRealTimeMin","QuickConnectStudio","QuickConnectStudioMin","CodeReady","CodeReadyMin","extensions","Python","Java","GitHub","GitLens","ESLint","Docker","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","Style","popupContent","tooltip","position","zIndex","modal","margin","popupArrow","height","width","background","color","overlay","top","bottom","left","right","display","POSITION_TYPES","getCoordinatesForPosition","triggerBounding","ContentBounding","arrow","_ref","offsetX","offsetY","args","split","CenterTop","CenterLeft","transform","arrowTop","arrowLeft","calculatePosition","_ref2","keepTooltipInside","bestCoords","wrapperBox","boundingBox","innerWidth","innerHeight","selector","document","querySelector","getBoundingClientRect","getTooltipBoundary","positions","Array","isArray","concat","contentBox","popupIdCounter","Popup","forwardRef","ref","_ref$trigger","trigger","_ref$onOpen","onOpen","_ref$onClose","onClose","_ref$defaultOpen","defaultOpen","_ref$open","open","undefined","_ref$disabled","disabled","_ref$nested","nested","_ref$closeOnDocumentC","closeOnDocumentClick","_ref$repositionOnResi","repositionOnResize","_ref$closeOnEscape","closeOnEscape","_ref$on","on","_ref$contentStyle","contentStyle","_ref$arrowStyle","arrowStyle","_ref$overlayStyle","overlayStyle","_ref$className","_ref$position","_ref$modal","_ref$lockScroll","lockScroll","_ref$arrow","_ref$offsetX","_ref$offsetY","_ref$mouseEnterDelay","mouseEnterDelay","_ref$mouseLeaveDelay","mouseLeaveDelay","_ref$keepTooltipInsid","children","_useState","useState","isOpen","setIsOpen","triggerRef","useRef","contentRef","arrowRef","focusedElBeforeOpen","popupId","isModal","timeOut","current","activeElement","setPosition","focusContentOnOpen","lockScrolll","resetScroll","clearTimeout","openPopup","closePopup","event","setTimeout","_focusedElBeforeOpen$","focus","togglePopup","stopPropagation","onMouseEnter","onContextMenu","preventDefault","onMouseLeave","getElementsByTagName","overflow","_contentRef$current","focusableEls","querySelectorAll","firstEl","slice","useImperativeHandle","close","toggle","handler","active","_arrowStyle$top","_arrowStyle$left","content","cords","scrollY","scrollX","setProperty","toString","listener","addEventListener","removeEventListener","keyCode","els","firstFocusableEl","lastFocusableEl","shiftKey","useTabbing","useRepositionOnResize","refs","contains","forEach","r","useOnClickOutside","PopupRoot","renderContent","popupContentStyle","childrenElementProps","map","c","join","pointerEvents","onClick","e","indexOf","role","id","viewBox","d","fill","ovStyle","tabIndex","triggerProps","onAsArray","len","onFocus","onBlur","comp","renderTrigger","getElementById","createElement","setAttribute","body","appendChild","Navigation","swiper","extendParams","emit","getEl","el","res","isElement","hostEl","params","uniqueNavElements","toggleEl","navigation","m","subEl","classList","disabledClass","tagName","watchOverflow","enabled","isLocked","lockClass","update","nextEl","prevEl","loop","isBeginning","rewind","isEnd","onPrevClick","slidePrev","onNextClick","slideNext","init","originalParams","checkProps","createElements","keys","auto","element","append","initButton","dir","add","destroy","destroyButton","remove","hideOnClick","hiddenClass","navigationDisabledClass","disable","filter","_s","targetEl","targetIsButton","includes","path","composedPath","find","pathEl","pagination","clickable","isHidden","enable","Autoplay","timeout","raf","autoplay","running","paused","timeLeft","delay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","isTouched","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","Date","getTime","onTransitionEnd","destroyed","wrapperEl","detail","bySwiperTouchMove","resume","calcTimeLeft","requestAnimationFrame","run","delayForce","cancelAnimationFrame","currentSlideDelay","activeSlideEl","virtual","slides","slideEl","activeIndex","parseInt","getAttribute","getSlideDelay","Number","isNaN","speed","proceed","slideTo","cssMode","start","stop","pause","internal","reset","onVisibilityChange","g","visibilityState","onPointerEnter","pointerType","animating","onPointerLeave","isObject","obj","constructor","extend","ssrDocument","blur","nodeName","createEvent","initEvent","childNodes","createElementNS","importNode","location","hash","host","hostname","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","matchMedia","callback","getWindow","win","deleteProps","object","nextTick","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","a","replace","MozTransform","OTransform","MsTransform","msTransform","m41","parseFloat","m42","o","to","noExtend","nextSource","node","HTMLElement","nodeType","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","targetPosition","side","startPosition","translate","time","startTime","duration","scrollSnapType","cssModeFrameID","isOutOfBound","animate","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","elementChildren","HTMLSlotElement","push","assignedElements","matches","elementIsChildOf","parent","isChild","showWarning","text","console","warn","err","tag","classes","trim","classesToTokens","elementPrevAll","prevEls","previousElementSibling","prev","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parentElement","elementOuterSize","size","includeMargins","offsetWidth","makeElementsArray","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","toLowerCase","String","major","minor","num","isWebView","test","isSafariBrowser","need3dFix","calcBrowser","eventsEmitter","events","priority","self","eventsListeners","method","once","onceHandler","off","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","index","splice","eventHandler","data","context","_len2","_key2","unshift","toggleSlideClasses$1","condition","toggleSlideClasses","processLazyPreloader","imageEl","closest","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","grid","rows","activeColumn","preloadColumns","from","_","column","slideIndexLastInView","realIndex","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","s","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","slideVisibleClass","slideFullyVisibleClass","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","n","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","touchEventsTarget","which","button","isMoved","swipingClassHasValue","noSwipingClass","eventPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","preventTouchMoveFromPointerMove","cancelable","touchMoveStopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","isVirtualLoop","resizeTimeout","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","swiperElementNodeName","resizeObserver","eventsPrefix","url","breakpointsBase","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","transition","transitionDuration","transitionDelay","moving","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","points","point","minRatio","substr","value","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","toUpperCase","getWrapperSelector","getWrapper","slideSlots","lazyElements","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","module","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","paramsList","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","isChildSwiperSlide","displayName","processChildren","toArray","props","getChildren","slots","slot","foundSlides","deps","SwiperSlideContext","createContext","SwiperContext","externalElRef","Tag","wrapperTag","WrapperTag","onSwiper","rest","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","splitEvents","allowedParams","plainObj","getParams","onBeforeBreakpoint","_containerClasses","initSwiper","passParams","extendWith","cache","renderExternal","renderExternalUpdate","paginationEl","scrollbarEl","mountSwiper","changedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","newValue","part","render","innerHTML","nextButtonSvg","prevButtonSvg","updateSwiper","parallax","Provider","offset","loopFrom","loopTo","slidesToRender","virtualIndex","renderVirtual","SwiperSlide","externalRef","zoom","lazy","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","slideData","isActive","renderChildren"],"sourceRoot":""} \ No newline at end of file diff --git a/pr-previews/pr-673/404.html b/pr-previews/pr-673/404.html new file mode 100644 index 00000000..b98738dd --- /dev/null +++ b/pr-previews/pr-673/404.html @@ -0,0 +1,57 @@ +Theia - Cloud and Desktop IDE Platform
404

Oops!

We can't find the page you're looking for

Back to Home ย โ†’
+ + \ No newline at end of file diff --git a/pr-previews/pr-673/404/index.html b/pr-previews/pr-673/404/index.html new file mode 100644 index 00000000..7fcef830 --- /dev/null +++ b/pr-previews/pr-673/404/index.html @@ -0,0 +1,57 @@ +Theia - Cloud and Desktop IDE Platform
404

Oops!

We can't find the page you're looking for

Back to Home ย โ†’
+ + \ No newline at end of file diff --git a/pr-previews/pr-673/8c9522e9ab04d805c32ce56d0725aa8a5b32377d-87289377e7c421d5e020.js b/pr-previews/pr-673/8c9522e9ab04d805c32ce56d0725aa8a5b32377d-87289377e7c421d5e020.js new file mode 100644 index 00000000..7d3dc943 --- /dev/null +++ b/pr-previews/pr-673/8c9522e9ab04d805c32ce56d0725aa8a5b32377d-87289377e7c421d5e020.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkTheia_Website=self.webpackChunkTheia_Website||[]).push([[205],{3451:function(e,i,t){t.d(i,{s:function(){return a},v:function(){return o}});const n=function(e,i,t,n){return void 0===n&&(n=!1),{title:e,path:"/docs/"+(i?i+"/":""),subMenu:t,indented:n}},a=[{title:"Overview"},n("Getting Started",""),n("Project Goals","project_goals"),{title:"Using the Theia IDE"},n("Getting Started","user_getting_started"),n("Installing VS Code Extensions","user_install_vscode_extensions"),n("Using AI Features","user_ai"),n("Using the dynamic Toolbar","user_toolbar"),n("Download","blueprint_download"),{title:"Adopting the Theia Platform"},n("Build your own IDE/Tool","composing_applications"),n("Extending the Theia IDE","blueprint_documentation"),n("Extensions and Plugins","extensions"),n("Authoring Theia Extensions","authoring_extensions"),n("Authoring VS Code Extensions","authoring_vscode_extensions"),n("Consuming Theia fixes without upgrading","consume_theia_fixes_master"),{title:"Platform Concepts & APIs"},n("Services and Contributions","services_and_contributions"),n("Architecture Overview","architecture"),n("Commands/Menus/Keybindings","commands_keybindings"),n("Widgets","widgets"),n("Preferences","preferences"),n("Theia AI","theia_ai"),n("Label Provider","label_provider"),n("Message Service","message_service"),n("Property View","property_view"),n("Events","events"),n("Frontend Application Contributions","frontend_application_contribution"),n("Backend Application Contributions","backend_application_contribution"),n("Communication via JSON-RPC","json_rpc"),n("Tasks","tasks"),n("Internationalization","i18n"),n("Language Support","language_support"),n("Dynamic Toolbar","toolbar"),n("Breadcrumbs","breadcrumbs"),n("Enhanced Tab Bar Preview","enhanced_tab_bar_preview"),n("Contribution Filter","contribution_filter"),n("Advanced Tips","tips")];function o(e,i,t){void 0===i&&(i=a),void 0===t&&(t={});const n=i.findIndex((i=>{let{path:t}=i;return!!t&&t.includes(e)}));return{prev:i[n-1]&&i[n-1].path?i[n-1].path:i[n-2]&&i[n-2].path&&i[n-2].path,prevTitle:i[n-1]&&i[n-1].path?i[n-1].title:i[n-2]&&i[n-2].path&&i[n-2].title,next:i[n+1]&&i[n+1].path?i[n+1].path:i[n+2]&&i[n+2].path&&i[n+2].path,nextTitle:i[n+1]&&i[n+1].path?i[n+1].title:i[n+2]&&i[n+2].path&&i[n+2].title}}},9140:function(e,i,t){t.d(i,{A:function(){return y}});var n=t(644),a=(t(6540),t(8660)),o=t(1919),r=t(4810),s=t(7361),l=t(4572),d=t(3451),m=t(7437);const c=(0,n.A)("div",{target:"e17llkhu0"})("width:30%;min-height:100vh;min-width:25rem;border-right:10px solid #f8f8f8;background-image:url(",s.A,");background-size:cover;background-position:center;background-repeat:no-repeat;.container{position:relative;min-height:100vh;min-width:25rem;padding:10rem 0;background-image:url(",s.A,"),linear-gradient(#fff, #fff);background-size:cover;background-position:center;background-repeat:no-repeat;}@media(max-width: ",o.fi.xmd,"){display:none;}.logo{display:block;height:2.8rem;margin:0 auto 13rem auto;}.links{display:flex;flex-direction:column;justify-content:center;list-style:none;min-width:21rem;width:50%;margin:0 auto;}ul{list-style:none;}li{text-align:left;&:not(:last-of-type){margin-bottom:.7rem;}}a{text-decoration:none;color:inherit;transition:all .2s;&:hover,&:focus{color:",o.Tj.blue,";padding:.2rem 0 .4rem;border-bottom:1px dashed #9dc7d9;}}.caption{font-family:'Anonymous Pro',sans-serif;font-weight:bold;text-transform:uppercase;&:not(:first-of-type){margin-top:3rem;}}.active{color:",o.Tj.blue,";padding:.2rem 0 .4rem;border-bottom:1px dashed #9dc7d9;}");var g=()=>(0,m.Y)(c,null,(0,m.Y)("div",{className:"container"},(0,m.Y)(r.N_,{to:"/"},(0,m.Y)("img",{className:"logo",src:l.A,alt:"theia logo"})),(0,m.Y)("ul",{className:"links"},d.s.map(((e,i)=>(0,m.Y)("li",{key:`${e.title}+${i}`,className:e.path?"":"caption",style:e.indented?{marginLeft:"3rem",marginTop:"1rem",listStyle:"circle",listStylePosition:"inside"}:{}},e.path?(0,m.Y)(r.N_,{to:e.path,activeClassName:"active"},e.title):e.title))))));const p=(0,n.A)("div",{target:"ewv6paa0"})("position:absolute;top:4rem;left:50%;transform:translate(-50%, -2rem);z-index:100;@media(max-width: 360px){top:9rem;}@media(min-width: ",o.fi.xmd,"){display:none;}select{font:inherit;color:inherit;padding:1rem 1.5rem;background:#fff;border:1px solid #ddd;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-image:url(","data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0iQ2FwYV8xIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgeD0iMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjU1IDI1NSIgeT0iMCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjU1IDI1NSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGc+PGxpbmsgaWQ9ImRhcmstbW9kZSIgY2xhc3M9ImFjdGl2ZS1wYXRoIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+PHN0eWxlIGlkPSJkYXJrLW1vZGUtY3VzdG9tLXN0eWxlIiBjbGFzcz0iYWN0aXZlLXBhdGgiIHR5cGU9InRleHQvY3NzIi8+PGc+PGcgaWQ9ImFycm93LWRyb3AtZG93biI+PHBvbHlnb24gZmlsbD0iIzM4MzgzOCIgcG9pbnRzPSIwIDYzLjc1IDEyNy41IDE5MS4yNSAyNTUgNjMuNzUiIGNsYXNzPSJhY3RpdmUtcGF0aCIgZGF0YS1vcmlnaW5hbD0iIzAwMDAwMCIvPjwvZz48L2c+PC9nPjwvc3ZnPg==","),linear-gradient(to bottom, #ffffff 0%,#e5e5e5 100%);background-repeat:no-repeat,repeat;background-position:right .7em top 50%,0 0;background-size:.65em auto,100%;}option{&:disabled{font-family:'Anonymous Pro',monospace;color:inherit;}}"),u=e=>{(0,r.oo)(e.currentTarget.value)};var h=()=>(0,m.Y)(p,null,(0,m.Y)("select",{onChange:u,defaultValue:"Select A Topic"},(0,m.Y)("option",{value:"#",selected:!0},"Select A Topic"),d.s.map(((e,i)=>(0,m.Y)("option",{key:i,value:e.path,disabled:!e.path},e.title))))),b=t(7518),I=t(9620),v="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1OS40MTQgNTkuNDE0IiBpZD0iQ2FwYV8xIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgeD0iMCIgeT0iMCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNTkuNDE0IDU5LjQxNCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGc+PGxpbmsgaWQ9ImRhcmstbW9kZSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPjxzdHlsZSBpZD0iZGFyay1tb2RlLWN1c3RvbS1zdHlsZSIgdHlwZT0idGV4dC9jc3MiLz48Zz48cG9seWdvbiBmaWxsPSIjMzgzODM4IiBwb2ludHM9IjI5LjcwNyA0NS4yNjggMCAxNS41NjEgMS40MTQgMTQuMTQ2IDI5LjcwNyA0Mi40MzkgNTggMTQuMTQ2IDU5LjQxNCAxNS41NjEiIGNsYXNzPSJhY3RpdmUtcGF0aCIgZGF0YS1vbGRfY29sb3I9IiM0OEEwREMiIGRhdGEtb3JpZ2luYWw9IiM0OEEwREMiLz48L2c+PC9nPjwvc3ZnPg==";const f=(0,n.A)("div",{target:"ex5dzuf0"})({name:"3ufj4z",styles:"display:flex;justify-content:space-between;margin-top:10rem;.arrow{display:inline-block;height:6rem;&--left{transform:rotate(90deg);}&--right{transform:rotate(270deg);}}"});var w=e=>{let{prev:i,next:t,prevTitle:n,nextTitle:a}=e;const o="Go to previous Page "+(n?`: ${n}`:""),s="Go to next page "+(a?`: ${a}`:"");return(0,m.Y)(f,null,(0,m.Y)(r.N_,{to:i,title:o,"aria-label":o,style:{pointerEvents:!i&&"none"}},(0,m.Y)("img",{src:v,alt:o,className:"arrow arrow--left",style:{opacity:i?1:".3"}})),(0,m.Y)(r.N_,{to:t,title:s,"aria-label":s,style:{pointerEvents:!t&&"none"}},(0,m.Y)("img",{src:v,alt:s,className:"arrow arrow--right",style:{opacity:t?1:".3"}})))};const x=(0,n.A)("div",{target:"e1mh6m3o0"})("display:flex;.main{position:relative;overflow-x:hidden;@media(max-width: ",o.fi.xmd,"){padding:15rem 3rem;}@media(min-width: ",o.fi.xmd,"){width:70%;}@media(max-width: ",o.fi.xmd,"){min-width:100vw;}}.docs-row{width:85%;max-width:100rem;margin:0 auto;padding-bottom:10rem;@media(max-width: ",o.fi.sm,"){width:100%;}@media(min-width: ",o.fi.sm,"){min-height:90rem;}}h1{margin-bottom:3rem;}h2{margin:2.5rem 0;font-size:2.6rem;}p{margin:1rem 0;}ul{margin-bottom:3rem;list-style-position:inside;ul{margin-left:3rem;margin-bottom:0;}}ol{margin-bottom:3rem;list-style-position:inside;ol{margin-left:3rem;margin-bottom:0;}}li{margin-top:.8rem;}li>p{display:inline;}code,pre{max-width:100%;}.doc-image{width:100%;margin:2rem 0;margin-right:auto;box-shadow:0 1.5rem 3rem rgba(0,0,0, .25);}");var y=e=>{let{children:i,canonical:t,context:n}=e;return(0,m.Y)(a.A,{canonical:t},(0,m.Y)(x,null,(0,m.Y)(g,null),(0,m.Y)(h,null),(0,m.Y)("div",{className:"main"},(0,m.Y)("div",null,(0,m.Y)("div",{className:"docs-row"},(0,m.Y)(b.A,null),i,(0,m.Y)(w,n)),(0,m.Y)(I.A,null)))))}}}]); +//# sourceMappingURL=8c9522e9ab04d805c32ce56d0725aa8a5b32377d-87289377e7c421d5e020.js.map \ No newline at end of file diff --git a/pr-previews/pr-673/8c9522e9ab04d805c32ce56d0725aa8a5b32377d-87289377e7c421d5e020.js.map b/pr-previews/pr-673/8c9522e9ab04d805c32ce56d0725aa8a5b32377d-87289377e7c421d5e020.js.map new file mode 100644 index 00000000..799a1c31 --- /dev/null +++ b/pr-previews/pr-673/8c9522e9ab04d805c32ce56d0725aa8a5b32377d-87289377e7c421d5e020.js.map @@ -0,0 +1 @@ +{"version":3,"file":"8c9522e9ab04d805c32ce56d0725aa8a5b32377d-87289377e7c421d5e020.js","mappings":"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","sources":["webpack://Theia-Website/./src/docs/menu.js","webpack://Theia-Website/./src/components/DocSideBar.js","webpack://Theia-Website/./src/components/DocTopicChooser.js","webpack://Theia-Website/./src/resources/drop-down-arrow.svg","webpack://Theia-Website/./src/resources/arrow.svg","webpack://Theia-Website/./src/components/DocArrowNavigators.js","webpack://Theia-Website/./src/layouts/docs-layout.js"],"sourcesContent":["/********************************************************************************\n * Copyright (C) 2020 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nconst M = (title, path, subMenu, indented = false) => ({\n title,\n path: '/docs/' + (path ? path + '/' : ''),\n subMenu,\n indented\n})\n\nexport const MENU = [\n {\n title: 'Overview'\n },\n M(\n 'Getting Started',\n ''\n ),\n M(\n 'Project Goals',\n 'project_goals'\n ),\n {\n title: 'Using the Theia IDE'\n },\n M(\n 'Getting Started',\n 'user_getting_started'\n ),\n M(\n 'Installing VS Code Extensions',\n 'user_install_vscode_extensions'\n ),\n M(\n 'Using AI Features',\n 'user_ai'\n ),\n M(\n 'Using the dynamic Toolbar',\n 'user_toolbar'\n ),\n M(\n 'Download',\n 'blueprint_download'\n ),\n {\n title: 'Adopting the Theia Platform'\n },\n M(\n 'Build your own IDE/Tool',\n 'composing_applications'\n ),\n M(\n 'Extending the Theia IDE',\n 'blueprint_documentation'\n ),\n M(\n 'Extensions and Plugins',\n 'extensions'\n ),\n M(\n 'Authoring Theia Extensions',\n 'authoring_extensions'\n ),\n M(\n 'Authoring VS Code Extensions',\n 'authoring_vscode_extensions'\n ),\n M(\n 'Consuming Theia fixes without upgrading',\n 'consume_theia_fixes_master'\n ),\n {\n title: 'Platform Concepts & APIs'\n },\n M(\n 'Services and Contributions',\n 'services_and_contributions'\n ),\n M(\n 'Architecture Overview',\n 'architecture'\n ),\n M(\n 'Commands/Menus/Keybindings',\n 'commands_keybindings'\n ),\n M(\n 'Widgets',\n 'widgets'\n ),\n M(\n 'Preferences',\n 'preferences'\n ),\n M(\n 'Theia AI',\n 'theia_ai'\n ),\n M(\n 'Label Provider',\n 'label_provider'\n ),\n M(\n 'Message Service',\n 'message_service'\n ),\n M(\n 'Property View',\n 'property_view'\n ),\n M(\n 'Events',\n 'events'\n ),\n M(\n 'Frontend Application Contributions',\n 'frontend_application_contribution'\n ),\n M(\n 'Backend Application Contributions',\n 'backend_application_contribution'\n ),\n M(\n 'Communication via JSON-RPC',\n 'json_rpc'\n ),\n M(\n 'Tasks',\n 'tasks'\n ),\n M(\n 'Internationalization',\n 'i18n'\n ),\n M(\n 'Language Support',\n 'language_support'\n ),\n M(\n 'Dynamic Toolbar',\n 'toolbar'\n ),\n M(\n 'Breadcrumbs',\n 'breadcrumbs'\n ),\n M(\n 'Enhanced Tab Bar Preview',\n 'enhanced_tab_bar_preview'\n ),\n M(\n 'Contribution Filter',\n 'contribution_filter'\n ),\n M(\n 'Advanced Tips',\n 'tips'\n )\n]\n\nexport function getMenuContext(slug, menu = MENU, context = {}) {\n const indexOfCurrent = menu.findIndex(({path}) => {\n if (path) {\n return path.includes(slug)\n }\n return false\n })\n const prev = menu[indexOfCurrent - 1] && menu[indexOfCurrent - 1].path ?\n menu[indexOfCurrent - 1].path : menu[indexOfCurrent - 2] &&\n menu[indexOfCurrent - 2].path && menu[indexOfCurrent - 2].path\n\n const prevTitle = menu[indexOfCurrent - 1] && menu[indexOfCurrent - 1].path ?\n menu[indexOfCurrent - 1].title :\n menu[indexOfCurrent - 2] && menu[indexOfCurrent - 2].path &&\n menu[indexOfCurrent - 2].title\n\n const next = menu[indexOfCurrent + 1] && menu[indexOfCurrent + 1].path ?\n menu[indexOfCurrent + 1].path : menu[indexOfCurrent + 2] &&\n menu[indexOfCurrent + 2].path && menu[indexOfCurrent + 2].path\n\n const nextTitle = menu[indexOfCurrent + 1] && menu[indexOfCurrent + 1].path ?\n menu[indexOfCurrent + 1].title :\n menu[indexOfCurrent + 2] && menu[indexOfCurrent + 2].path &&\n menu[indexOfCurrent + 2].title\n\n return {\n prev: prev,\n prevTitle,\n next: next,\n nextTitle\n }\n}\n","/********************************************************************************\n * Copyright (C) 2019 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nimport React from 'react'\nimport styled from '@emotion/styled'\nimport { breakpoints, colors } from '../utils/variables'\nimport { Link } from 'gatsby'\nimport Background from '../resources/background-image.png'\nimport TheiaLogoDark from '../resources/theia-logo-dark.svg'\nimport { MENU } from '../docs/menu'\n\nconst Styled = styled.div`\n width: 30%;\n min-height: 100vh;\n min-width: 25rem;\n border-right: 10px solid #f8f8f8;\n background-image: url(${Background});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n\n .container {\n position: relative;\n min-height: 100vh;\n min-width: 25rem;\n padding: 10rem 0;\n background-image: url(${Background}), linear-gradient(#fff, #fff);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n @media(max-width: ${breakpoints.xmd}) {\n display: none;\n }\n\n .logo {\n display: block;\n height: 2.8rem;\n margin: 0 auto 13rem auto;\n }\n\n .links {\n display: flex;\n flex-direction: column;\n justify-content: center;\n list-style: none;\n min-width: 21rem;\n width: 50%;\n margin: 0 auto;\n }\n\n ul {\n list-style: none;\n }\n\n li {\n text-align: left;\n &:not(:last-of-type) {\n margin-bottom: .7rem;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n transition: all .2s;\n\n &:hover,\n &:focus {\n color: ${colors.blue};\n padding: .2rem 0 .4rem;\n border-bottom: 1px dashed #9dc7d9;\n }\n }\n\n .caption {\n font-family: 'Anonymous Pro', sans-serif;\n font-weight: bold;\n text-transform: uppercase;\n\n &:not(:first-of-type) {\n margin-top: 3rem;\n }\n }\n\n .active {\n color: ${colors.blue};\n padding: .2rem 0 .4rem;\n border-bottom: 1px dashed #9dc7d9;\n }\n`\n\nconst DocSideBar = () => {\n return (\n \n
\n \"theia\n
    \n {\n MENU.map((m,i) => (\n
  • \n {\n m.path ? \n {m.title}\n : m.title\n }\n
  • \n ))\n }\n
\n
\n
\n )\n}\n\nexport default DocSideBar","/********************************************************************************\n * Copyright (C) 2019 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nimport React from 'react'\nimport { navigate } from 'gatsby'\nimport styled from '@emotion/styled'\nimport { breakpoints } from '../utils/variables'\nimport DropDownArrow from '../resources/drop-down-arrow.svg';\nimport { MENU } from '../docs/menu'\n\nconst Styled = styled.div`\n position: absolute;\n top: 4rem;\n left: 50%;\n transform: translate(-50%, -2rem);\n z-index: 100;\n\n @media(max-width: 360px) {\n top: 9rem;\n }\n\n @media(min-width: ${breakpoints.xmd}) {\n display: none;\n }\n\n select {\n font: inherit;\n color: inherit;\n padding: 1rem 1.5rem;\n background: #fff;\n border: 1px solid #ddd;\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n background-image: url(${DropDownArrow}),\n linear-gradient(to bottom, #ffffff 0%,#e5e5e5 100%);\n background-repeat: no-repeat, repeat;\n background-position: right .7em top 50%, 0 0;\n background-size: .65em auto, 100%;\n }\n\n option {\n &:disabled {\n font-family: 'Anonymous Pro', monospace;\n color: inherit;\n }\n }\n`\n\nconst onSelectTopic = (e) => {\n navigate(e.currentTarget.value)\n}\n\nconst DocTopicChooser = () => (\n \n \n \n)\n\nexport default DocTopicChooser","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0iQ2FwYV8xIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgeD0iMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjU1IDI1NSIgeT0iMCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjU1IDI1NSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGc+PGxpbmsgaWQ9ImRhcmstbW9kZSIgY2xhc3M9ImFjdGl2ZS1wYXRoIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+PHN0eWxlIGlkPSJkYXJrLW1vZGUtY3VzdG9tLXN0eWxlIiBjbGFzcz0iYWN0aXZlLXBhdGgiIHR5cGU9InRleHQvY3NzIi8+PGc+PGcgaWQ9ImFycm93LWRyb3AtZG93biI+PHBvbHlnb24gZmlsbD0iIzM4MzgzOCIgcG9pbnRzPSIwIDYzLjc1IDEyNy41IDE5MS4yNSAyNTUgNjMuNzUiIGNsYXNzPSJhY3RpdmUtcGF0aCIgZGF0YS1vcmlnaW5hbD0iIzAwMDAwMCIvPjwvZz48L2c+PC9nPjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1OS40MTQgNTkuNDE0IiBpZD0iQ2FwYV8xIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgeD0iMCIgeT0iMCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNTkuNDE0IDU5LjQxNCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGc+PGxpbmsgaWQ9ImRhcmstbW9kZSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPjxzdHlsZSBpZD0iZGFyay1tb2RlLWN1c3RvbS1zdHlsZSIgdHlwZT0idGV4dC9jc3MiLz48Zz48cG9seWdvbiBmaWxsPSIjMzgzODM4IiBwb2ludHM9IjI5LjcwNyA0NS4yNjggMCAxNS41NjEgMS40MTQgMTQuMTQ2IDI5LjcwNyA0Mi40MzkgNTggMTQuMTQ2IDU5LjQxNCAxNS41NjEiIGNsYXNzPSJhY3RpdmUtcGF0aCIgZGF0YS1vbGRfY29sb3I9IiM0OEEwREMiIGRhdGEtb3JpZ2luYWw9IiM0OEEwREMiLz48L2c+PC9nPjwvc3ZnPg==\"","/********************************************************************************\n * Copyright (C) 2019 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nimport React from 'react'\nimport { Link } from 'gatsby'\nimport styled from '@emotion/styled'\nimport Arrow from '../resources/arrow.svg'\n\nconst Styled = styled.div`\n display: flex;\n justify-content: space-between;\n margin-top: 10rem;\n\n .arrow {\n display: inline-block;\n height: 6rem;\n\n &--left {\n transform: rotate(90deg);\n }\n\n &--right {\n transform: rotate(270deg);\n }\n }\n`\n\nconst DocArrowNavigators = ({prev, next, prevTitle, nextTitle}) => {\n const pTitle = `Go to previous Page ${prevTitle ? `: ${prevTitle}` : \"\"}`\n const nTitle = `Go to next page ${nextTitle ? `: ${nextTitle}` : \"\"}`\n return (\n \n \n {pTitle}\n \n \n {nTitle}\n \n \n)\n}\n\nexport default DocArrowNavigators","/********************************************************************************\n * Copyright (C) 2019 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nimport React from 'react'\nimport styled from '@emotion/styled'\nimport Layout from '../layouts/layout'\nimport DocSideBar from '../components/DocSideBar'\nimport DocTopicChooser from '../components/DocTopicChooser'\nimport Nav from '../components/Nav'\nimport Footer from '../components/Footer'\nimport { breakpoints } from '../utils/variables'\nimport DocArrowNavigators from '../components/DocArrowNavigators'\n\nconst DocContainer = styled.div`\n display: flex;\n\n .main {\n position: relative;\n overflow-x: hidden;\n @media(max-width: ${breakpoints.xmd}) {\n padding: 15rem 3rem ;\n }\n\n @media(min-width: ${breakpoints.xmd}) {\n width: 70%;\n }\n\n @media(max-width: ${breakpoints.xmd}) {\n min-width: 100vw;\n }\n }\n\n .docs-row {\n width: 85%;\n max-width: 100rem;\n margin: 0 auto;\n padding-bottom: 10rem;\n\n @media(max-width: ${breakpoints.sm}) {\n width: 100%;\n }\n\n @media(min-width: ${breakpoints.sm}) {\n min-height: 90rem;\n }\n }\n\n h1 {\n margin-bottom: 3rem;\n }\n\n h2 {\n margin: 2.5rem 0;\n font-size: 2.6rem;\n }\n\n p {\n margin: 1rem 0;\n }\n\n ul {\n margin-bottom: 3rem;\n list-style-position: inside;\n\n ul {\n margin-left: 3rem;\n margin-bottom: 0;\n }\n }\n\n ol {\n margin-bottom: 3rem;\n list-style-position: inside;\n\n ol {\n margin-left: 3rem;\n margin-bottom: 0;\n }\n }\n\n li {\n margin-top: .8rem;\n }\n\n li > p {\n display: inline;\n }\n\n code,\n pre {\n max-width: 100%;\n }\n\n .doc-image {\n width: 100%;\n margin: 2rem 0;\n margin-right: auto;\n box-shadow: 0 1.5rem 3rem rgba(0,0,0, .25);\n }\n`\n\nconst DocsLayout = ({children, canonical, context}) => (\n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n)\n\nexport default DocsLayout"],"names":["M","title","path","subMenu","indented","MENU","getMenuContext","slug","menu","context","indexOfCurrent","findIndex","_ref","includes","prev","prevTitle","next","nextTitle","Styled","_styled","target","Background","breakpoints","xmd","colors","blue","DocSideBar","___EmotionJSX","className","Link","to","src","TheiaLogoDark","alt","map","m","i","key","style","marginLeft","marginTop","listStyle","listStylePosition","activeClassName","onSelectTopic","e","navigate","currentTarget","value","DocTopicChooser","onChange","defaultValue","selected","disabled","name","styles","pTitle","nTitle","pointerEvents","Arrow","opacity","DocContainer","sm","children","canonical","Layout","Nav","DocArrowNavigators","Footer"],"sourceRoot":""} \ No newline at end of file diff --git a/pr-previews/pr-673/TheiaIDE.png b/pr-previews/pr-673/TheiaIDE.png new file mode 100644 index 00000000..4379f33e Binary files /dev/null and b/pr-previews/pr-673/TheiaIDE.png differ diff --git a/pr-previews/pr-673/TheiaPlatform.png b/pr-previews/pr-673/TheiaPlatform.png new file mode 100644 index 00000000..9d470775 Binary files /dev/null and b/pr-previews/pr-673/TheiaPlatform.png differ diff --git a/pr-previews/pr-673/_gatsby/slices/_gatsby-scripts-1.html b/pr-previews/pr-673/_gatsby/slices/_gatsby-scripts-1.html new file mode 100644 index 00000000..d2fff503 --- /dev/null +++ b/pr-previews/pr-673/_gatsby/slices/_gatsby-scripts-1.html @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/pr-previews/pr-673/add-custom-agents.png b/pr-previews/pr-673/add-custom-agents.png new file mode 100644 index 00000000..42de897d Binary files /dev/null and b/pr-previews/pr-673/add-custom-agents.png differ diff --git a/pr-previews/pr-673/ai-configuration-view.png b/pr-previews/pr-673/ai-configuration-view.png new file mode 100644 index 00000000..501206a2 Binary files /dev/null and b/pr-previews/pr-673/ai-configuration-view.png differ diff --git a/pr-previews/pr-673/app-fc81d05595623bcf88e0.js b/pr-previews/pr-673/app-fc81d05595623bcf88e0.js new file mode 100644 index 00000000..7ae2443f --- /dev/null +++ b/pr-previews/pr-673/app-fc81d05595623bcf88e0.js @@ -0,0 +1,3 @@ +/*! For license information please see app-fc81d05595623bcf88e0.js.LICENSE.txt */ +(self.webpackChunkTheia_Website=self.webpackChunkTheia_Website||[]).push([[524],{5655:function(e,t,n){"use strict";n.d(t,{A:function(){return oe}});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?l(b,--y):0,g--,10===w&&(g=1,m--),w}function P(){return w=y2||x(w)>3?"":" "}function j(e,t){for(;--t&&P()&&!(w<48||w>102||w>57&&w<65||w>70&&w<97););return k(e,C()+(t<6&&32==R()&&32==P()))}function $(e){for(;P();)switch(w){case e:return y;case 34:case 39:34!==e&&39!==e&&$(w);break;case 40:41===e&&$(e);break;case 92:P()}return y}function D(e,t){for(;P()&&e+w!==57&&(e+w!==84||47!==R()););return"/*"+k(t,y-1)+"*"+a(47===e?e:P())}function M(e){for(;!x(R());)P();return k(e,y)}var L="-ms-",H="-moz-",I="-webkit-",W="comm",F="rule",U="decl",q="@keyframes";function J(e,t){for(var n="",r=d(e),o=0;o0&&f(H)-v&&h(w>32?V(H+";",r,n,v-1):V(c(H," ","")+";",r,n,v-2),d);break;case 59:H+=";";default:if(h(L=z(H,t,n,m,g,o,p,O,T=[],$=[],v),s),123===x)if(0===g)G(H,t,L,L,T,s,v,p,$);else switch(99===y&&110===l(H,3)?100:y){case 100:case 108:case 109:case 115:G(e,L,L,r&&h(z(e,L,L,0,0,o,p,O,o,T=[],v),$),o,$,v,p,r?T:$);break;default:G(H,L,L,L,[""],$,0,p,$)}}m=g=w=0,_=k=1,O=H="",v=i;break;case 58:v=1+f(H),w=b;default:if(_<1)if(123==x)--_;else if(125==x&&0==_++&&125==S())continue;switch(H+=a(x),x*_){case 38:k=g>0?1:(H+="\f",-1);break;case 44:p[m++]=(f(H)-1)*k,k=1;break;case 64:45===R()&&(H+=A(P())),y=R(),g=v=f(O=H+=M(C())),x++;break;case 45:45===b&&2==f(H)&&(_=0)}}return s}function z(e,t,n,r,a,s,u,l,f,h,m){for(var g=a-1,v=0===a?s:[""],y=d(v),w=0,b=0,E=0;w0?v[S]+" "+P:c(P,/&\f/g,v[S])))&&(f[E++]=R);return _(e,t,n,0===a?F:l,f,h,m)}function B(e,t,n){return _(e,t,n,W,a(w),p(e,2,-2),0)}function V(e,t,n,r){return _(e,t,n,U,p(e,0,r),p(e,r+1,-1),r)}var K=function(e,t,n){for(var r=0,o=0;r=o,o=R(),38===r&&12===o&&(t[n]=1),!x(o);)P();return k(e,y)},X=function(e,t){return T(function(e,t){var n=-1,r=44;do{switch(x(r)){case 0:38===r&&12===R()&&(t[n]=1),e[n]+=K(y-1,t,n);break;case 2:e[n]+=A(r);break;case 4:if(44===r){e[++n]=58===R()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=a(r)}}while(r=P());return e}(O(e),t))},Z=new WeakMap,ee=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||Z.get(n))&&!r){Z.set(e,!0);for(var o=[],a=X(t,o),s=n.props,i=0,c=0;i6)switch(l(e,t+1)){case 109:if(45!==l(e,t+4))break;case 102:return c(e,/(.+:)(.+)-([^]+)/,"$1"+I+"$2-$3$1"+H+(108==l(e,t+3)?"$3":"$2-$3"))+e;case 115:return~u(e,"stretch")?ne(c(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==l(e,t+1))break;case 6444:switch(l(e,f(e)-3-(~u(e,"!important")&&10))){case 107:return c(e,":",":"+I)+e;case 101:return c(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+I+(45===l(e,14)?"inline-":"")+"box$3$1"+I+"$2$3$1"+L+"$2box$3")+e}break;case 5936:switch(l(e,t+11)){case 114:return I+e+L+c(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return I+e+L+c(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return I+e+L+c(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return I+e+L+e+e}return e}var re=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case U:e.return=ne(e.value,e.length);break;case q:return J([E(e,{value:c(e.value,"@","@"+I)})],r);case F:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return J([E(e,{props:[c(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return J([E(e,{props:[c(t,/:(plac\w+)/,":"+I+"input-$1")]}),E(e,{props:[c(t,/:(plac\w+)/,":-moz-$1")]}),E(e,{props:[c(t,/:(plac\w+)/,L+"input-$1")]})],r)}return""}))}}],oe=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o,a,s=e.stylisPlugins||re,i={},c=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+c;return{name:u,styles:o,next:h}}},1287:function(e,t,n){"use strict";var r;n.d(t,{i:function(){return i},s:function(){return s}});var o=n(6540),a=!!(r||(r=n.t(o,2))).useInsertionEffect&&(r||(r=n.t(o,2))).useInsertionEffect,s=a||function(e){return e()},i=a||o.useLayoutEffect},41:function(e,t,n){"use strict";n.d(t,{Rk:function(){return r},SF:function(){return o},sk:function(){return a}});function r(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(r+=n+" ")})),r}var o=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},a=function(e,t,n){o(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+r:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}}},6395:function(e,t){"use strict";t.T=void 0;const n=[".html",".json",".js",".map",".txt",".xml",".pdf"];t.T=(e,t="always")=>{if("/"===e)return e;const r=e.endsWith("/");return((e,t)=>{for(const n of e)if(t.endsWith(n))return!0;return!1})(n,e)?e:"always"===t?r?e:`${e}/`:"never"===t&&r?e.slice(0,-1):e}},7035:function(e,t,n){"use strict";t.z_=void 0;var r=n(3215);t.z_=r.ScrollHandler,n(3721).useScrollRestoration},3215:function(e,t,n){"use strict";var r=n(4994);t.__esModule=!0,t.ScrollHandler=t.ScrollContext=void 0;var o=r(n(2475)),a=r(n(6221)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=o?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(6540)),i=r(n(5556)),c=n(4351);function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}var l=s.createContext(new c.SessionStorage);t.ScrollContext=l,l.displayName="GatsbyScrollContext";var p=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a{}},3309:function(e,t){"use strict";t.__esModule=!0,t.getForwards=function(e){return null==e?void 0:e.flatMap((e=>(null==e?void 0:e.forward)||[]))}},9300:function(e,t,n){"use strict";t.__esModule=!0,t.injectPartytownSnippet=function(e){if(!e.length)return;const t=document.querySelector("script[data-partytown]"),n=document.querySelector('iframe[src*="~partytown/partytown-sandbox-sw"]');t&&t.remove();n&&n.remove();const a=(0,o.getForwards)(e),s=document.createElement("script");s.dataset.partytown="",s.innerHTML=(0,r.partytownSnippet)({forward:a}),document.head.appendChild(s)};var r=n(4656),o=n(3309)},6877:function(e,t,n){t.components={"component---src-pages-404-js":()=>Promise.all([n.e(223),n.e(125)]).then(n.bind(n,3432)),"component---src-pages-blogs-js":()=>Promise.all([n.e(223),n.e(576)]).then(n.bind(n,6612)),"component---src-pages-docs-js":()=>Promise.all([n.e(223),n.e(205),n.e(116)]).then(n.bind(n,8587)),"component---src-pages-index-js":()=>Promise.all([n.e(869),n.e(223),n.e(723),n.e(293)]).then(n.bind(n,2213)),"component---src-pages-releases-js":()=>Promise.all([n.e(223),n.e(709)]).then(n.bind(n,6438)),"component---src-pages-resources-js":()=>Promise.all([n.e(223),n.e(636)]).then(n.bind(n,2369)),"component---src-pages-support-js":()=>Promise.all([n.e(223),n.e(854)]).then(n.bind(n,3002)),"component---src-pages-theia-platform-js":()=>Promise.all([n.e(869),n.e(223),n.e(723),n.e(828)]).then(n.bind(n,7342)),"component---src-templates-doc-js":()=>Promise.all([n.e(223),n.e(205),n.e(824)]).then(n.bind(n,2074))}},9377:function(e,t,n){e.exports=[{plugin:n(6774),options:{plugins:[],offsetY:0,className:"anchor"}},{plugin:n(3697),options:{plugins:[]}},{plugin:n(8108),options:{plugins:[]}},{plugin:n(2311),options:{plugins:[]}}]},20:function(e,t,n){const r=n(9377),{getResourceURLsForPathname:o,loadPage:a,loadPageSync:s}=n(6814).Zf;t.N=function(e,t,n,i){void 0===t&&(t={});let c=r.map((n=>{if(!n.plugin[e])return;t.getResourceURLsForPathname=o,t.loadPage=a,t.loadPageSync=s;const r=n.plugin[e](t,n.options);return r&&i&&(t=i({args:t,result:r,plugin:n})),r}));return c=c.filter((e=>void 0!==e)),c.length>0?c:n?[n]:[]},t.v=(e,t,n)=>r.reduce(((n,r)=>r.plugin[e]?n.then((()=>r.plugin[e](t,r.options))):n),Promise.resolve())},700:function(e,t){},9369:function(e,t,n){"use strict";n.d(t,{A:function(){return r}});var r=function(e){return e=e||Object.create(null),{on:function(t,n){(e[t]||(e[t]=[])).push(n)},off:function(t,n){e[t]&&e[t].splice(e[t].indexOf(n)>>>0,1)},emit:function(t,n){(e[t]||[]).slice().map((function(e){e(n)})),(e["*"]||[]).slice().map((function(e){e(t,n)}))}}}()},8990:function(e,t,n){"use strict";n.d(t,{Yl:function(){return f},Hh:function(){return h},UA:function(){return d},QX:function(){return p}});var r=n(6462),o=n(8797),a=e=>{if(void 0===e)return e;let[t,n=""]=e.split("?");return n&&(n="?"+n),"/"===t?"/"+n:"/"===t.charAt(t.length-1)?t.slice(0,-1)+n:t+n},s=n(6491);const i=new Map;let c=[];const u=e=>{let t=e;if(-1!==e.indexOf("?")){const[n,r]=e.split("?");t=`${n}?${encodeURIComponent(r)}`}const n=decodeURIComponent(t);return(0,o.A)(n,decodeURIComponent("/theia-website-previews/pr-previews/pr-673")).split("#")[0]};function l(e){return e.startsWith("/")||e.startsWith("https://")||e.startsWith("http://")?e:new URL(e,window.location.href+(window.location.href.endsWith("/")?"":"/")).pathname}const p=e=>{c=e},f=e=>{const t=m(e),n=c.map((e=>{let{path:t,matchPath:n}=e;return{path:n,originalPath:t}})),o=(0,r.pick)(n,t);return o?a(o.route.originalPath):null},d=e=>{const t=m(e),n=c.map((e=>{let{path:t,matchPath:n}=e;return{path:n,originalPath:t}})),o=(0,r.pick)(n,t);return o?o.params:{}},h=e=>{const t=u(l(e));if(i.has(t))return i.get(t);const n=(0,s.X)(e);if(n)return h(n.toPath);let r=f(t);return r||(r=m(e)),i.set(t,r),r},m=e=>{let t=u(l(e));return"/index.html"===t&&(t="/"),t=a(t),t}},4810:function(e,t,n){"use strict";n.d(t,{N_:function(){return o.N_},G:function(){return a.G},oo:function(){return o.oo},GR:function(){return a.GR},Fe:function(){return o.Fe}});var r=n(6814),o=(n(2549),n(7035),n(7078)),a=n(7231);n(6540),n(700),n(2024);r.Ay.enqueue},6814:function(e,t,n){"use strict";n.d(t,{Wi:function(){return p},N5:function(){return _},Ay:function(){return P},Rh:function(){return C},LE:function(){return R},Zf:function(){return S},iC:function(){return E}});var r=n(5540),o=n(4506),a=n(8163);const s=function(e){if("undefined"==typeof document)return!1;const t=document.createElement("link");try{if(t.relList&&"function"==typeof t.relList.supports)return t.relList.supports(e)}catch(n){return!1}return!1}("prefetch")?function(e,t){return new Promise(((n,r)=>{if("undefined"==typeof document)return void r();const o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",e),Object.keys(t).forEach((e=>{o.setAttribute(e,t[e])})),o.onload=n,o.onerror=r;(document.getElementsByTagName("head")[0]||document.getElementsByName("script")[0].parentNode).appendChild(o)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.onload=()=>{200===r.status?t():n()},r.send(null)}))},i={};var c=function(e,t){return new Promise((n=>{i[e]?n():s(e,t).then((()=>{n(),i[e]=!0})).catch((()=>{}))}))},u=n(9369),l=n(8990);const p={Error:"error",Success:"success"},f=e=>{const[t,n]=e.split("?");var r;return`/theia-website-previews/pr-previews/pr-673/page-data/${"/"===t?"index":(r="/"===(r=t)[0]?r.slice(1):r).endsWith("/")?r.slice(0,-1):r}/page-data.json${n?`?${n}`:""}`},d=e=>e.startsWith("//");function h(e,t){return void 0===t&&(t="GET"),new Promise((n=>{const r=new XMLHttpRequest;r.open(t,e,!0),r.onreadystatechange=()=>{4==r.readyState&&n(r)},r.send(null)}))}const m=/bot|crawler|spider|crawling/i,g=function(e,t,n){var r;void 0===t&&(t=null);const o={componentChunkName:e.componentChunkName,path:e.path,webpackCompilationHash:e.webpackCompilationHash,matchPath:e.matchPath,staticQueryHashes:e.staticQueryHashes,getServerDataError:e.getServerDataError,slicesMap:null!==(r=e.slicesMap)&&void 0!==r?r:{}};return{component:t,head:n,json:e.result,page:o}};function v(e){return new Promise((t=>{try{const n=e.readRoot();t(n)}catch(n){if(!Object.hasOwnProperty.call(n,"_response")||!Object.hasOwnProperty.call(n,"_status"))throw n;setTimeout((()=>{v(e).then(t)}),200)}}))}let y=function(){function e(e,t){this.inFlightNetworkRequests=new Map,this.pageDb=new Map,this.inFlightDb=new Map,this.staticQueryDb={},this.pageDataDb=new Map,this.partialHydrationDb=new Map,this.slicesDataDb=new Map,this.sliceInflightDb=new Map,this.slicesDb=new Map,this.isPrefetchQueueRunning=!1,this.prefetchQueued=[],this.prefetchTriggered=new Set,this.prefetchCompleted=new Set,this.loadComponent=e,(0,l.QX)(t)}var t=e.prototype;return t.memoizedGet=function(e){let t=this.inFlightNetworkRequests.get(e);return t||(t=h(e,"GET"),this.inFlightNetworkRequests.set(e,t)),t.then((t=>(this.inFlightNetworkRequests.delete(e),t))).catch((t=>{throw this.inFlightNetworkRequests.delete(e),t}))},t.setApiRunner=function(e){this.apiRunner=e,this.prefetchDisabled=e("disableCorePrefetching").some((e=>e))},t.fetchPageDataJson=function(e){const{pagePath:t,retries:n=0}=e,r=f(t);return this.memoizedGet(r).then((r=>{const{status:o,responseText:a}=r;if(200===o)try{const n=JSON.parse(a);if(void 0===n.path)throw new Error("not a valid pageData response");const r=t.split("?")[1];return r&&!n.path.includes(r)&&(n.path+=`?${r}`),Object.assign(e,{status:p.Success,payload:n})}catch(s){}return 404===o||200===o?"/404.html"===t||"/500.html"===t?Object.assign(e,{status:p.Error}):this.fetchPageDataJson(Object.assign(e,{pagePath:"/404.html",notFound:!0})):500===o?this.fetchPageDataJson(Object.assign(e,{pagePath:"/500.html",internalServerError:!0})):n<3?this.fetchPageDataJson(Object.assign(e,{retries:n+1})):Object.assign(e,{status:p.Error})}))},t.fetchPartialHydrationJson=function(e){const{pagePath:t,retries:n=0}=e,r=f(t).replace(".json","-rsc.json");return this.memoizedGet(r).then((r=>{const{status:o,responseText:a}=r;if(200===o)try{return Object.assign(e,{status:p.Success,payload:a})}catch(s){}return 404===o||200===o?"/404.html"===t||"/500.html"===t?Object.assign(e,{status:p.Error}):this.fetchPartialHydrationJson(Object.assign(e,{pagePath:"/404.html",notFound:!0})):500===o?this.fetchPartialHydrationJson(Object.assign(e,{pagePath:"/500.html",internalServerError:!0})):n<3?this.fetchPartialHydrationJson(Object.assign(e,{retries:n+1})):Object.assign(e,{status:p.Error})}))},t.loadPageDataJson=function(e){const t=(0,l.Hh)(e);if(this.pageDataDb.has(t)){const e=this.pageDataDb.get(t);return Promise.resolve(e)}return this.fetchPageDataJson({pagePath:t}).then((e=>(this.pageDataDb.set(t,e),e)))},t.loadPartialHydrationJson=function(e){const t=(0,l.Hh)(e);if(this.partialHydrationDb.has(t)){const e=this.partialHydrationDb.get(t);return Promise.resolve(e)}return this.fetchPartialHydrationJson({pagePath:t}).then((e=>(this.partialHydrationDb.set(t,e),e)))},t.loadSliceDataJson=function(e){if(this.slicesDataDb.has(e)){const t=this.slicesDataDb.get(e);return Promise.resolve({sliceName:e,jsonPayload:t})}return h(`/theia-website-previews/pr-previews/pr-673/slice-data/${e}.json`,"GET").then((t=>{const n=JSON.parse(t.responseText);return this.slicesDataDb.set(e,n),{sliceName:e,jsonPayload:n}}))},t.findMatchPath=function(e){return(0,l.Yl)(e)},t.loadPage=function(e){const t=(0,l.Hh)(e);if(this.pageDb.has(t)){const e=this.pageDb.get(t);return e.error?Promise.resolve({error:e.error,status:e.status}):Promise.resolve(e.payload)}if(this.inFlightDb.has(t))return this.inFlightDb.get(t);const n=[this.loadAppData(),this.loadPageDataJson(t)];const r=Promise.all(n).then((e=>{const[n,r,s]=e;if(r.status===p.Error||(null==s?void 0:s.status)===p.Error)return{status:p.Error};let i=r.payload;const{componentChunkName:c,staticQueryHashes:l=[],slicesMap:f={}}=i,d={},h=Array.from(new Set(Object.values(f))),m=e=>{if(this.slicesDb.has(e.name))return this.slicesDb.get(e.name);if(this.sliceInflightDb.has(e.name))return this.sliceInflightDb.get(e.name);const t=this.loadComponent(e.componentChunkName).then((t=>{return{component:(n=t,n&&n.default||n),sliceContext:e.result.sliceContext,data:e.result.data};var n}));return this.sliceInflightDb.set(e.name,t),t.then((t=>{this.slicesDb.set(e.name,t),this.sliceInflightDb.delete(e.name)})),t};return Promise.all(h.map((e=>this.loadSliceDataJson(e)))).then((e=>{const f=[],h=(0,o.A)(l);for(const{jsonPayload:t,sliceName:n}of Object.values(e)){f.push({name:n,...t});for(const e of t.staticQueryHashes)h.includes(e)||h.push(e)}const y=[Promise.all(f.map(m)),this.loadComponent(c,"head")];y.push(this.loadComponent(c));const w=Promise.all(y).then((e=>{const[t,o,c]=e;d.createdAt=new Date;for(const n of t)(!n||n instanceof Error)&&(d.status=p.Error,d.error=n);let u;if((!c||c instanceof Error)&&(d.status=p.Error,d.error=c),d.status!==p.Error){if(d.status=p.Success,!0!==r.notFound&&!0!==(null==s?void 0:s.notFound)||(d.notFound=!0),i=Object.assign(i,{webpackCompilationHash:n?n.webpackCompilationHash:""}),"string"==typeof(null==s?void 0:s.payload)){u=g(i,null,o),u.partialHydration=s.payload;const e=new ReadableStream({start(e){const t=new TextEncoder;e.enqueue(t.encode(s.payload))},pull(e){e.close()},cancel(){}});return v((0,a.createFromReadableStream)(e)).then((e=>(u.partialHydration=e,u)))}u=g(i,c,o)}return u})),b=Promise.all(h.map((e=>{if(this.staticQueryDb[e]){const t=this.staticQueryDb[e];return{staticQueryHash:e,jsonPayload:t}}return this.memoizedGet(`/theia-website-previews/pr-previews/pr-673/page-data/sq/d/${e}.json`).then((t=>{const n=JSON.parse(t.responseText);return{staticQueryHash:e,jsonPayload:n}})).catch((()=>{throw new Error(`We couldn't load "/theia-website-previews/pr-previews/pr-673/page-data/sq/d/${e}.json"`)}))}))).then((e=>{const t={};return e.forEach((e=>{let{staticQueryHash:n,jsonPayload:r}=e;t[n]=r,this.staticQueryDb[n]=r})),t}));return Promise.all([w,b]).then((e=>{let n,[r,o]=e;return r&&(n={...r,staticQueryResults:o},d.payload=n,u.A.emit("onPostLoadPageResources",{page:n,pageResources:n})),this.pageDb.set(t,d),d.error?{error:d.error,status:d.status}:n})).catch((e=>({error:e,status:p.Error})))}))}));return r.then((()=>{this.inFlightDb.delete(t)})).catch((e=>{throw this.inFlightDb.delete(t),e})),this.inFlightDb.set(t,r),r},t.loadPageSync=function(e,t){void 0===t&&(t={});const n=(0,l.Hh)(e);if(this.pageDb.has(n)){var r;const e=this.pageDb.get(n);if(e.payload)return e.payload;if(null!==(r=t)&&void 0!==r&&r.withErrorDetails)return{error:e.error,status:e.status}}},t.shouldPrefetch=function(e){return!!(()=>{if("connection"in navigator&&void 0!==navigator.connection){if((navigator.connection.effectiveType||"").includes("2g"))return!1;if(navigator.connection.saveData)return!1}return!0})()&&((!navigator.userAgent||!m.test(navigator.userAgent))&&!this.pageDb.has(e))},t.prefetch=function(e){if(!this.shouldPrefetch(e))return{then:e=>e(!1),abort:()=>{}};if(this.prefetchTriggered.has(e))return{then:e=>e(!0),abort:()=>{}};const t={resolve:null,reject:null,promise:null};t.promise=new Promise(((e,n)=>{t.resolve=e,t.reject=n})),this.prefetchQueued.push([e,t]);const n=new AbortController;return n.signal.addEventListener("abort",(()=>{const t=this.prefetchQueued.findIndex((t=>{let[n]=t;return n===e}));-1!==t&&this.prefetchQueued.splice(t,1)})),this.isPrefetchQueueRunning||(this.isPrefetchQueueRunning=!0,setTimeout((()=>{this._processNextPrefetchBatch()}),3e3)),{then:(e,n)=>t.promise.then(e,n),abort:n.abort.bind(n)}},t._processNextPrefetchBatch=function(){(window.requestIdleCallback||(e=>setTimeout(e,0)))((()=>{const e=this.prefetchQueued.splice(0,4),t=Promise.all(e.map((e=>{let[t,n]=e;return this.prefetchTriggered.has(t)||(this.apiRunner("onPrefetchPathname",{pathname:t}),this.prefetchTriggered.add(t)),this.prefetchDisabled?n.resolve(!1):this.doPrefetch((0,l.Hh)(t)).then((()=>{this.prefetchCompleted.has(t)||(this.apiRunner("onPostPrefetchPathname",{pathname:t}),this.prefetchCompleted.add(t)),n.resolve(!0)}))})));this.prefetchQueued.length?t.then((()=>{setTimeout((()=>{this._processNextPrefetchBatch()}),3e3)})):this.isPrefetchQueueRunning=!1}))},t.doPrefetch=function(e){const t=f(e);return c(t,{crossOrigin:"anonymous",as:"fetch"}).then((()=>this.loadPageDataJson(e)))},t.hovering=function(e){this.loadPage(e)},t.getResourceURLsForPathname=function(e){const t=(0,l.Hh)(e),n=this.pageDataDb.get(t);if(n){const e=g(n.payload);return[].concat((0,o.A)(w(e.page.componentChunkName)),[f(t)])}return null},t.isPageNotFound=function(e){const t=(0,l.Hh)(e),n=this.pageDb.get(t);return!n||n.notFound},t.loadAppData=function(e){return void 0===e&&(e=0),this.memoizedGet("/theia-website-previews/pr-previews/pr-673/page-data/app-data.json").then((t=>{const{status:n,responseText:r}=t;let o;if(200!==n&&e<3)return this.loadAppData(e+1);if(200===n)try{const e=JSON.parse(r);if(void 0===e.webpackCompilationHash)throw new Error("not a valid app-data response");o=e}catch(a){}return o}))},e}();const w=e=>(window.___chunkMapping[e]||[]).map((e=>"/theia-website-previews/pr-previews/pr-673"+e));let b,_=function(e){function t(t,n,r){var o;return o=e.call(this,(function(e,n){if(void 0===n&&(n="components"),!t[n="components"][e])throw new Error(`We couldn't find the correct component chunk with the name "${e}"`);return t[n][e]().catch((e=>e))}),n)||this,r&&o.pageDataDb.set((0,l.Hh)(r.path),{pagePath:r.path,payload:r,status:"success"}),o}(0,r.A)(t,e);var n=t.prototype;return n.doPrefetch=function(t){return e.prototype.doPrefetch.call(this,t).then((e=>{if(e.status!==p.Success)return Promise.resolve();const t=e.payload,n=t.componentChunkName,r=w(n);return Promise.all(r.map(c)).then((()=>t))}))},n.loadPageDataJson=function(t){return e.prototype.loadPageDataJson.call(this,t).then((e=>e.notFound?d(t)?e:h(t,"HEAD").then((t=>200===t.status?{status:p.Error}:e)):e))},n.loadPartialHydrationJson=function(t){return e.prototype.loadPartialHydrationJson.call(this,t).then((e=>e.notFound?d(t)?e:h(t,"HEAD").then((t=>200===t.status?{status:p.Error}:e)):e))},t}(y);const E=e=>{b=e},S={enqueue:e=>b.prefetch(e),getResourceURLsForPathname:e=>b.getResourceURLsForPathname(e),loadPage:e=>b.loadPage(e),loadPageSync:function(e,t){return void 0===t&&(t={}),b.loadPageSync(e,t)},prefetch:e=>b.prefetch(e),isPageNotFound:e=>b.isPageNotFound(e),hovering:e=>b.hovering(e),loadAppData:()=>b.loadAppData()};var P=S;function R(){return b?b.staticQueryDb:{}}function C(){return b?b.slicesDb:{}}},6017:function(e,t,n){"use strict";n.d(t,{A:function(){return R}});var r=n(6540),o=n(5556),a=n.n(o),s=n(20),i=n(8990),c=n(4506),u=n(4810),l=n(6462),p=n(9732);function f(e){let{children:t,callback:n}=e;return(0,r.useEffect)((()=>{n()})),t}const d=["link","meta","style","title","base","noscript","script","html","body"];function h(e,t){if(e instanceof HTMLElement&&t instanceof HTMLElement){const n=t.getAttribute("nonce");if(n&&!e.getAttribute("nonce")){const r=t.cloneNode(!0);return r.setAttribute("nonce",""),r.nonce=n,n===e.nonce&&e.isEqualNode(r)}}return e.isEqualNode(t)}function m(e,t){void 0===t&&(t={html:{},body:{}});const n=new Map,r=[];for(const u of e.childNodes){var o,a;const e=u.nodeName.toLowerCase(),l=null===(o=u.attributes)||void 0===o||null===(a=o.id)||void 0===a?void 0:a.value;if(y(u)){if(v(e))if("html"===e||"body"===e)for(const n of u.attributes){const r="style"===n.name;var s;if(t[e]={...t[e]},r||(t[e][n.name]=n.value),r)t[e].style=`${null!==(s=t[e])&&void 0!==s&&s.style?t[e].style:""}${n.value} `}else{let e=u.cloneNode(!0);if(e.setAttribute("data-gatsby-head",!0),"script"===e.nodeName.toLowerCase()&&(e=g(e)),l)if(n.has(l)){var i;const t=n.get(l);null===(i=r[t].parentNode)||void 0===i||i.removeChild(r[t]),r[t]=e}else r.push(e),n.set(l,r.length-1);else r.push(e)}u.childNodes.length&&r.push.apply(r,(0,c.A)(m(u,t).validHeadNodes))}}return{validHeadNodes:r,htmlAndBodyAttributes:t}}function g(e){const t=document.createElement("script");for(const n of e.attributes)t.setAttribute(n.name,n.value);return t.innerHTML=e.innerHTML,t}function v(e){return d.includes(e)}function y(e){return 1===e.nodeType}var w=n(7437);const b=document.createElement("div"),_={html:[],body:[]},E=()=>{var e;const{validHeadNodes:t,htmlAndBodyAttributes:n}=m(b);_.html=Object.keys(n.html),_.body=Object.keys(n.body),function(e){if(!e)return;const{html:t,body:n}=e,r=document.querySelector("html");r&&Object.entries(t).forEach((e=>{let[t,n]=e;r.setAttribute(t,n)}));const o=document.querySelector("body");o&&Object.entries(n).forEach((e=>{let[t,n]=e;o.setAttribute(t,n)}))}(n);const r=document.querySelectorAll("[data-gatsby-head]");var o;if(0===r.length)return void(o=document.head).append.apply(o,(0,c.A)(t));const a=[];!function(e){let{oldNodes:t,newNodes:n,onStale:r,onNew:o}=e;for(const a of t){const e=n.findIndex((e=>h(e,a)));-1===e?r(a):n.splice(e,1)}for(const a of n)o(a)}({oldNodes:r,newNodes:t,onStale:e=>e.parentNode.removeChild(e),onNew:e=>a.push(e)}),(e=document.head).append.apply(e,a)};function S(e){let{pageComponent:t,staticQueryResults:n,pageComponentProps:o}=e;(0,r.useEffect)((()=>{if(null!=t&&t.Head){!function(e){if("function"!=typeof e)throw new Error(`Expected "Head" export to be a function got "${typeof e}".`)}(t.Head);const{render:r}=(0,p.n)(),a=(0,w.Y)(t.Head,{location:{pathname:(e=o).location.pathname},params:e.params,data:e.data||{},serverData:e.serverData,pageContext:e.pageContext}),i=(0,s.N)("wrapRootElement",{element:a},a,(e=>{let{result:t}=e;return{element:t}})).pop();r((0,w.Y)(f,{callback:E},(0,w.Y)(u.G.Provider,{value:n},(0,w.Y)(l.LocationProvider,null,i))),b)}var e;return()=>{!function(){const e=document.querySelectorAll("[data-gatsby-head]");for(const t of e)t.parentNode.removeChild(t)}(),function(e){if(!e)return;const{html:t,body:n}=e;if(t){const e=document.querySelector("html");t.forEach((t=>{e&&e.removeAttribute(t)}))}if(n){const e=document.querySelector("body");n.forEach((t=>{e&&e.removeAttribute(t)}))}}(_)}}))}function P(e){const t={...e,params:{...(0,i.UA)(e.location.pathname),...e.pageResources.json.pageContext.__params}};let n;var o;n=e.pageResources.partialHydration?e.pageResources.partialHydration:(0,r.createElement)((o=e.pageResources.component)&&o.default||o,{...t,key:e.path||e.pageResources.page.path});S({pageComponent:e.pageResources.head,staticQueryResults:e.pageResources.staticQueryResults,pageComponentProps:t});return(0,s.N)("wrapPageElement",{element:n,props:t},n,(e=>{let{result:n}=e;return{element:n,props:t}})).pop()}P.propTypes={location:a().object.isRequired,pageResources:a().object.isRequired,data:a().object,pageContext:a().object.isRequired};var R=P},6498:function(e,t,n){"use strict";var r=n(8168),o=n(5540),a=n(20),s=n(6540),i=n(6462),c=n(7035),u=n(7231),l=n(2024),p=n(6814),f=n(6491),d=n(9369);const h={id:"gatsby-announcer",style:{position:"absolute",top:0,width:1,height:1,padding:0,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},"aria-live":"assertive","aria-atomic":"true"};var m=n(7078),g=n(7437);function v(e){const t=(0,f.X)(e),{hash:n,search:r}=window.location;return null!=t&&(window.___replace(t.toPath+r+n),!0)}let y="";window.addEventListener("unhandledrejection",(e=>{/loading chunk \d* failed./i.test(e.reason)&&y&&(window.location.pathname=y)}));const w=(e,t)=>{v(e.pathname)||(y=e.pathname,(0,a.N)("onPreRouteUpdate",{location:e,prevLocation:t}))},b=(e,t)=>{v(e.pathname)||(0,a.N)("onRouteUpdate",{location:e,prevLocation:t})},_=function(e,t){if(void 0===t&&(t={}),"number"==typeof e)return void i.globalHistory.navigate(e);const{pathname:n,search:r,hash:o}=(0,m.Rr)(e),s=(0,f.X)(n);if(s&&(e=s.toPath+r+o),window.___swUpdated)return void(window.location=n+r+o);const c=setTimeout((()=>{d.A.emit("onDelayedLoadPageResources",{pathname:n}),(0,a.N)("onRouteUpdateDelayed",{location:window.location})}),1e3);p.Ay.loadPage(n+r).then((a=>{if(!a||a.status===p.Wi.Error)return window.history.replaceState({},"",location.href),window.location=n,void clearTimeout(c);a&&a.page.webpackCompilationHash!==window.___webpackCompilationHash&&("serviceWorker"in navigator&&null!==navigator.serviceWorker.controller&&"activated"===navigator.serviceWorker.controller.state&&navigator.serviceWorker.controller.postMessage({gatsbyApi:"clearPathResources"}),window.location=n+r+o),(0,i.navigate)(e,t),clearTimeout(c)}))};function E(e,t){let{location:n}=t;const{pathname:r,hash:o}=n,s=(0,a.N)("shouldUpdateScroll",{prevRouterProps:e,pathname:r,routerProps:{location:n},getSavedScrollPosition:e=>[0,this._stateStorage.read(e,e.key)]});if(s.length>0)return s[s.length-1];if(e){const{location:{pathname:t}}=e;if(t===r)return o?decodeURI(o.slice(1)):[0,0]}return!0}let S=function(e){function t(t){var n;return(n=e.call(this,t)||this).announcementRef=s.createRef(),n}(0,o.A)(t,e);var n=t.prototype;return n.componentDidUpdate=function(e,t){requestAnimationFrame((()=>{let e=`new page at ${this.props.location.pathname}`;document.title&&(e=document.title);const t=document.querySelectorAll("#gatsby-focus-wrapper h1");t&&t.length&&(e=t[0].textContent);const n=`Navigated to ${e}`;if(this.announcementRef.current){this.announcementRef.current.innerText!==n&&(this.announcementRef.current.innerText=n)}}))},n.render=function(){return(0,g.Y)("div",(0,r.A)({},h,{ref:this.announcementRef}))},t}(s.Component);const P=(e,t)=>{var n,r;return e.href!==t.href||(null==e||null===(n=e.state)||void 0===n?void 0:n.key)!==(null==t||null===(r=t.state)||void 0===r?void 0:r.key)};let R=function(e){function t(t){var n;return n=e.call(this,t)||this,w(t.location,null),n}(0,o.A)(t,e);var n=t.prototype;return n.componentDidMount=function(){b(this.props.location,null)},n.shouldComponentUpdate=function(e){return!!P(this.props.location,e.location)&&(w(e.location,this.props.location),!0)},n.componentDidUpdate=function(e){P(e.location,this.props.location)&&b(this.props.location,e.location)},n.render=function(){return(0,g.Y)(s.Fragment,null,this.props.children,(0,g.Y)(S,{location:location}))},t}(s.Component);var C=n(6017),k=n(6877);function x(e,t){for(var n in e)if(!(n in t))return!0;for(var r in t)if(e[r]!==t[r])return!0;return!1}var O=function(e){function t(t){var n;n=e.call(this)||this;const{location:r,pageResources:o}=t;return n.state={location:{...r},pageResources:o||p.Ay.loadPageSync(r.pathname+r.search,{withErrorDetails:!0})},n}(0,o.A)(t,e),t.getDerivedStateFromProps=function(e,t){let{location:n}=e;if(t.location.href!==n.href){return{pageResources:p.Ay.loadPageSync(n.pathname+n.search,{withErrorDetails:!0}),location:{...n}}}return{location:{...n}}};var n=t.prototype;return n.loadResources=function(e){p.Ay.loadPage(e).then((t=>{t&&t.status!==p.Wi.Error?this.setState({location:{...window.location},pageResources:t}):(window.history.replaceState({},"",location.href),window.location=e)}))},n.shouldComponentUpdate=function(e,t){return t.pageResources?this.state.pageResources!==t.pageResources||(this.state.pageResources.component!==t.pageResources.component||(this.state.pageResources.json!==t.pageResources.json||(!(this.state.location.key===t.location.key||!t.pageResources.page||!t.pageResources.page.matchPath&&!t.pageResources.page.path)||function(e,t,n){return x(e.props,t)||x(e.state,n)}(this,e,t)))):(this.loadResources(e.location.pathname+e.location.search),!1)},n.render=function(){return this.props.children(this.state)},t}(s.Component),T=n(8797),A=n(9732);const N=new p.N5(k,[],window.pageData);(0,p.iC)(N),N.setApiRunner(a.N);const{render:j,hydrate:$}=(0,A.n)();window.asyncRequires=k,window.___emitter=d.A,window.___loader=p.Zf,i.globalHistory.listen((e=>{e.location.action=e.action})),window.___push=e=>_(e,{replace:!1}),window.___replace=e=>_(e,{replace:!0}),window.___navigate=(e,t)=>_(e,t);const D="gatsby-reload-compilation-hash-match";(0,a.v)("onClientEntry").then((()=>{(0,a.N)("registerServiceWorker").filter(Boolean).length>0&&n(626);const e=e=>(0,g.Y)(i.BaseContext.Provider,{value:{baseuri:"/",basepath:"/"}},(0,g.Y)(C.A,e)),t=s.createContext({}),f={renderEnvironment:"browser"};let d=function(e){function n(){return e.apply(this,arguments)||this}return(0,o.A)(n,e),n.prototype.render=function(){const{children:e}=this.props;return(0,g.Y)(i.Location,null,(n=>{let{location:r}=n;return(0,g.Y)(O,{location:r},(n=>{let{pageResources:r,location:o}=n;const a=(0,p.LE)(),s=(0,p.Rh)();return(0,g.Y)(u.G.Provider,{value:a},(0,g.Y)(l.j$.Provider,{value:f},(0,g.Y)(l.dd.Provider,{value:s},(0,g.Y)(l.Jr.Provider,{value:r.page.slicesMap},(0,g.Y)(t.Provider,{value:{pageResources:r,location:o}},e)))))}))}))},n}(s.Component),h=function(n){function a(){return n.apply(this,arguments)||this}return(0,o.A)(a,n),a.prototype.render=function(){return(0,g.Y)(t.Consumer,null,(t=>{let{pageResources:n,location:o}=t;return(0,g.Y)(R,{location:o},(0,g.Y)(c.z_,{location:o,shouldUpdateScroll:E},(0,g.Y)(i.Router,{basepath:"/theia-website-previews/pr-previews/pr-673",location:o,id:"gatsby-focus-wrapper"},(0,g.Y)(e,(0,r.A)({path:"/404.html"===n.page.path||"/500.html"===n.page.path?(0,T.A)(o.pathname,"/theia-website-previews/pr-previews/pr-673"):encodeURI((n.page.matchPath||n.page.path).split("?")[0])},this.props,{location:o,pageResources:n},n.json)))))}))},a}(s.Component);const{pagePath:m,location:v}=window;m&&"/theia-website-previews/pr-previews/pr-673"+m!==v.pathname+(m.includes("?")?v.search:"")&&!(N.findMatchPath((0,T.A)(v.pathname,"/theia-website-previews/pr-previews/pr-673"))||m.match(/^\/(404|500)(\/?|.html)$/)||m.match(/^\/offline-plugin-app-shell-fallback\/?$/))&&(0,i.navigate)("/theia-website-previews/pr-previews/pr-673"+m+(m.includes("?")?"":v.search)+v.hash,{replace:!0});const y=()=>{try{return sessionStorage}catch{return null}};p.Zf.loadPage(v.pathname+v.search).then((e=>{var t;const n=y();if(null!=e&&null!==(t=e.page)&&void 0!==t&&t.webpackCompilationHash&&e.page.webpackCompilationHash!==window.___webpackCompilationHash&&("serviceWorker"in navigator&&null!==navigator.serviceWorker.controller&&"activated"===navigator.serviceWorker.controller.state&&navigator.serviceWorker.controller.postMessage({gatsbyApi:"clearPathResources"}),n)){if(!("1"===n.getItem(D)))return n.setItem(D,"1"),void window.location.reload(!0)}if(n&&n.removeItem(D),!e||e.status===p.Wi.Error){const t=`page resources for ${v.pathname} not found. Not rendering React`;if(e&&e.error)throw console.error(t),e.error;throw new Error(t)}const r=(0,a.N)("wrapRootElement",{element:(0,g.Y)(h,null)},(0,g.Y)(h,null),(e=>{let{result:t}=e;return{element:t}})).pop(),o=function(){const e=s.useRef(!1);return s.useEffect((()=>{e.current||(e.current=!0,performance.mark&&performance.mark("onInitialClientRender"),(0,a.N)("onInitialClientRender"))}),[]),(0,g.Y)(d,null,r)},i=document.getElementById("gatsby-focus-wrapper");let c=j;i&&i.children.length&&(c=$);const u=(0,a.N)("replaceHydrateFunction",void 0,c)[0];function l(){const e="undefined"!=typeof window?document.getElementById("___gatsby"):null;u((0,g.Y)(o,null),e)}const f=document;if("complete"===f.readyState||"loading"!==f.readyState&&!f.documentElement.doScroll)setTimeout((function(){l()}),0);else{const e=function(){f.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),l()};f.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)}}))}))},963:function(e,t,n){"use strict";n.r(t);var r=n(6540),o=n(6814),a=n(6017);t.default=e=>{let{location:t}=e;const n=o.Ay.loadPageSync(t.pathname);return n?r.createElement(a.A,{location:t,pageResources:n,...n.json}):null}},2549:function(e,t,n){var r;e.exports=(r=n(963))&&r.default||r},9732:function(e,t,n){"use strict";n.d(t,{n:function(){return o}});const r=new WeakMap;function o(){const e=n(5338);return{render:(t,n)=>{let o=r.get(n);o||r.set(n,o=e.createRoot(n)),o.render(t)},hydrate:(t,n)=>e.hydrateRoot(n,t)}}},6491:function(e,t,n){"use strict";n.d(t,{X:function(){return a}});const r=new Map,o=new Map;function a(e){let t=r.get(e);return t||(t=o.get(e.toLowerCase())),t}[].forEach((e=>{e.ignoreCase?o.set(e.fromPath,e):r.set(e.fromPath,e)}))},626:function(e,t,n){"use strict";n.r(t);var r=n(20);"https:"!==window.location.protocol&&"localhost"!==window.location.hostname?console.error("Service workers can only be used over HTTPS, or on localhost for development"):"serviceWorker"in navigator&&navigator.serviceWorker.register("/theia-website-previews/pr-previews/pr-673/sw.js").then((function(e){e.addEventListener("updatefound",(()=>{(0,r.N)("onServiceWorkerUpdateFound",{serviceWorker:e});const t=e.installing;console.log("installingWorker",t),t.addEventListener("statechange",(()=>{switch(t.state){case"installed":navigator.serviceWorker.controller?(window.___swUpdated=!0,(0,r.N)("onServiceWorkerUpdateReady",{serviceWorker:e}),window.___failedResources&&(console.log("resources failed, SW updated - reloading"),window.location.reload())):(console.log("Content is now available offline!"),(0,r.N)("onServiceWorkerInstalled",{serviceWorker:e}));break;case"redundant":console.error("The installing service worker became redundant."),(0,r.N)("onServiceWorkerRedundant",{serviceWorker:e});break;case"activated":(0,r.N)("onServiceWorkerActive",{serviceWorker:e})}}))}))})).catch((function(e){console.error("Error during service worker registration:",e)}))},2024:function(e,t,n){"use strict";n.d(t,{Jr:function(){return s},dd:function(){return o},j$:function(){return a}});var r=n(6540);const o=r.createContext({}),a=r.createContext({}),s=r.createContext({})},7231:function(e,t,n){"use strict";n.d(t,{G:function(){return o},GR:function(){return i}});var r=n(6540);const o=(a="StaticQuery",s={},r.createServerContext?function(e,t){return void 0===t&&(t=null),globalThis.__SERVER_CONTEXT||(globalThis.__SERVER_CONTEXT={}),globalThis.__SERVER_CONTEXT[e]||(globalThis.__SERVER_CONTEXT[e]=r.createServerContext(e,t)),globalThis.__SERVER_CONTEXT[e]}(a,s):r.createContext(s));var a,s;const i=e=>{var t;r.useContext;const n=r.useContext(o);if(isNaN(Number(e)))throw new Error(`useStaticQuery was called with a string but expects to be called using \`graphql\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\`${e}\`);\n`);if(null!==(t=n[e])&&void 0!==t&&t.data)return n[e].data;throw new Error("The result of this StaticQuery could not be fetched.\n\nThis is likely a bug in Gatsby and if refreshing the page does not fix it, please open an issue in https://github.com/gatsbyjs/gatsby/issues")}},8797:function(e,t,n){"use strict";function r(e,t){return void 0===t&&(t=""),t?e===t?"/":e.startsWith(`${t}/`)?e.slice(t.length):e:e}n.d(t,{A:function(){return r}})},8108:function(e,t,n){n(1309)},3697:function(e,t,n){"use strict";n.r(t),n.d(t,{onClientEntry:function(){return c}});var r=n(4810),o=n(382),a=n.n(o);const s=e=>"/"===e[0]?e:`/${e}`,i=(e,t)=>n=>{if(window.___failedResources)return!0;if((e=>0!==e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)(n))return!0;if((e=>e.defaultPrevented)(n))return!0;const o=(e=>{for(;e.parentNode;e=e.parentNode)if("a"===e.nodeName.toLowerCase())return e;return null})(n.target);if(null==o)return!0;if(!0===(i=o).hasAttribute("download")||!1===(e=>!1===e.hasAttribute("target")||null==e.target||["_self",""].includes(e.target)||"_parent"===e.target&&(!e.ownerDocument.defaultView.parent||e.ownerDocument.defaultView.parent===e.ownerDocument.defaultView)||"_top"===e.target&&(!e.ownerDocument.defaultView.top||e.ownerDocument.defaultView.top===e.ownerDocument.defaultView))(i))return!0;var i;const c=document.createElement("a");""!==o.href&&(c.href=o.href),"SVGAnimatedString"in window&&o.href instanceof SVGAnimatedString&&(c.href=o.href.animVal);const u=document.createElement("a");if(u.href=window.location.href,!1===((e,t)=>e.protocol===t.protocol&&e.host===t.host)(u,c))return!0;const l=new RegExp(`^${a()((0,r.Fe)("/"))}`);if(((e,t)=>!1===t.test(s(e.pathname))||-1!==e.pathname.search(/^.*\.((?!htm)[a-z0-9]{1,5})$/i))(c,l))return!0;if(((e,t)=>""!==t.hash&&(""===t.pathname||t.pathname===e.pathname))(u,c))return!0;if(t.excludePattern){if(new RegExp(t.excludePattern).test(c.pathname))return!0}n.preventDefault();const p=s(c.pathname).replace(l,"/");return e(`${p}${c.search}${c.hash}`),!1};const c=function(e,t){void 0===t&&(t={}),function(e,t,n){const r=i(n,t);e.addEventListener("click",r)}(window,t,(e=>{(0,r.oo)(e)}))}},382:function(e){"use strict";var t=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(t,"\\$&")}},6774:function(e,t){"use strict";var n=0,r=function(e){var t=window.decodeURI(e.replace("#",""));if(""!==t){var r=document.getElementById(t);if(r){var o=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,a=document.documentElement.clientTop||document.body.clientTop||0,s=window.getComputedStyle(r),i=s.getPropertyValue("scroll-margin-top")||s.getPropertyValue("scroll-snap-margin-top")||"0px";return r.getBoundingClientRect().top+o-parseInt(i,10)-a-n}}return null};t.onInitialClientRender=function(e,t){t.offsetY&&(n=t.offsetY),requestAnimationFrame((function(){var e=r(window.location.hash);null!==e&&window.scrollTo(0,e)}))},t.shouldUpdateScroll=function(e){var t=e.routerProps.location,n=r(t.hash);return null===n||[0,n]}},4146:function(e,t,n){"use strict";var r=n(4363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function c(e){return r.isMemo(e)?s:i[e.$$typeof]||o}i[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[r.Memo]=s;var u=Object.defineProperty,l=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=d(n);o&&o!==h&&e(t,o,r)}var s=l(n);p&&(s=s.concat(p(n)));for(var i=c(t),m=c(n),g=0;g((e,t)=>{const{forward:n=[],...r}=e||{},o=JSON.stringify(r,((e,t)=>("function"==typeof t&&(t=String(t)).startsWith(e+"(")&&(t="function "+t),t)));return["!(function(w,p,f,c){",Object.keys(r).length>0?`c=w[p]=Object.assign(w[p]||{},${o});`:"c=w[p]=w[p]||{};","c[f]=(c[f]||[])",n.length>0?`.concat(${JSON.stringify(n)})`:"","})(window,'partytown','forward');",t].join("")})(e,'/* Partytown 0.7.6 - MIT builder.io */\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,"/"==(a=(o.lib||"/~partytown/")+(o.debug?"debug/":""))[0]&&(s=e.querySelectorAll(\'script[type="text/partytown"]\'),i!=t?i.dispatchEvent(new CustomEvent("pt1",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener("pt0",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||"partytown-sw.js"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener("statechange",(function(t){"activated"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?"script":"iframe"),t||(c.setAttribute("style","display:block;width:0;height:0;border:0;visibility:hidden"),c.setAttribute("aria-hidden",!0)),c.src=a+"partytown-"+(t?"atomics.js?v=0.7.6":"sandbox-sw.html?"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(".")[0]]})),n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=0||(o[n]=e[n]);return o}const u=e=>{const{search:t,hash:n,href:r,origin:o,protocol:a,host:s,hostname:i,port:c}=e.location;let{pathname:u}=e.location;return!u&&r&&f&&(u=new URL(r).pathname),{pathname:encodeURI(decodeURI(u)),search:t,hash:n,href:r,origin:o,protocol:a,host:s,hostname:i,port:c,state:e.history.state,key:e.history.state&&e.history.state.key||"initial"}},l=(e,t)=>{let n=[],r=u(e),o=!1,a=()=>{};return{get location(){return r},get transitioning(){return o},_onTransitionComplete(){o=!1,a()},listen(t){n.push(t);const o=()=>{r=u(e),t({location:r,action:"POP"})};return e.addEventListener("popstate",o),()=>{e.removeEventListener("popstate",o),n=n.filter((e=>e!==t))}},navigate(t,{state:s,replace:c=!1}={}){if("number"==typeof t)e.history.go(t);else{s=i({},s,{key:Date.now()+""});try{o||c?e.history.replaceState(s,null,t):e.history.pushState(s,null,t)}catch(n){e.location[c?"replace":"assign"](t)}}r=u(e),o=!0;const l=new Promise((e=>a=e));return n.forEach((e=>e({location:r,action:"PUSH"}))),l}}},p=(e="/")=>{const t=e.indexOf("?"),n={pathname:t>-1?e.substr(0,t):e,search:t>-1?e.substr(t):""};let r=0;const o=[n],a=[null];return{get location(){return o[r]},addEventListener(e,t){},removeEventListener(e,t){},history:{get entries(){return o},get index(){return r},get state(){return a[r]},pushState(e,t,n){const[s,i=""]=n.split("?");r++,o.push({pathname:s,search:i.length?`?${i}`:i}),a.push(e)},replaceState(e,t,n){const[s,i=""]=n.split("?");o[r]={pathname:s,search:i},a[r]=e},go(e){const t=r+e;t<0||t>a.length-1||(r=t)}}}},f=!("undefined"==typeof window||!window.document||!window.document.createElement),d=l(f?window:p()),{navigate:h}=d;function m(e,t){return o.createServerContext?((e,t=null)=>(globalThis.__SERVER_CONTEXT||(globalThis.__SERVER_CONTEXT={}),globalThis.__SERVER_CONTEXT[e]||(globalThis.__SERVER_CONTEXT[e]=o.createServerContext(e,t)),globalThis.__SERVER_CONTEXT[e]))(e,t):o.createContext(t)}const g=m("Base",{baseuri:"/",basepath:"/"}),v=m("Location"),y=()=>o.useContext(g),w=()=>o.useContext(v);function b(e){this.uri=e}const _=e=>e instanceof b,E=e=>{throw new b(e)};function S(e){const{to:t,replace:n=!0,state:r,noThrow:a,baseuri:s}=e;o.useEffect((()=>{Promise.resolve().then((()=>{const o=x(t,s);h(O(o,e),{replace:n,state:r})}))}),[]);const i=x(t,s);return a||E(O(i,e)),null}const P=e=>{const t=w(),{baseuri:n}=y();return o.createElement(S,i({},t,{baseuri:n},e))};P.propTypes={from:a.string,to:a.string.isRequired};const R=(e,t)=>e.substr(0,t.length)===t,C=(e,t)=>{let n,r;const[o]=t.split("?"),a=M(o),i=""===a[0],c=D(e);for(let u=0,l=c.length;u dynamic segment "${r[1]}" is a reserved name. Please use a different name in path "${o.path}".`);const t=decodeURIComponent(n);p[r[1]]=t}else if(t!==n){e=!0;break}}if(!e){n={route:o,params:p,uri:"/"+a.slice(0,d).join("/")};break}}return n||r||null},k=(e,t)=>C([{path:e}],t),x=(e,t)=>{if(R(e,"/"))return e;const[n,r]=e.split("?"),[o]=t.split("?"),a=M(n),s=M(o);if(""===a[0])return L(o,r);if(!R(a[0],".")){const e=s.concat(a).join("/");return L(("/"===o?"":"/")+e,r)}const i=s.concat(a),c=[];for(let u=0,l=i.length;u{const[n,r=""]=e.split("?");let o="/"+M(n).map((e=>{const n=A.exec(e);return n?t[n[1]]:e})).join("/");const{location:{search:a=""}={}}=t,s=a.split("?")[1]||"";return o=L(o,r,s),o},T=(e,t)=>{const n=e=>N(e);return M(e).filter(n).sort().join("/")===M(t).filter(n).sort().join("/")},A=/^:(.+)/,N=e=>A.test(e),j=e=>e&&"*"===e[0],$=(e,t)=>({route:e,score:e.default?0:M(e.path).reduce(((e,t)=>(e+=4,(e=>""===e)(t)?e+=1:N(t)?e+=2:j(t)?e-=5:e+=3,e)),0),index:t}),D=e=>e.map($).sort(((e,t)=>e.scoret.score?-1:e.index-t.index)),M=e=>e.replace(/(^\/+|\/+$)/g,"").split("/"),L=(e,...t)=>e+((t=t.filter((e=>e&&e.length>0)))&&t.length>0?`?${t.join("&")}`:""),H=["uri","path"],I=(e,t)=>{const n=Object.keys(e);return n.length===Object.keys(t).length&&n.every((n=>t.hasOwnProperty(n)&&e[n]===t[n]))},W=e=>e.replace(/(^\/+|\/+$)/g,""),F=e=>t=>{if(!t)return null;if(t.type===o.Fragment&&t.props.children)return o.Children.map(t.props.children,F(e));if(s(t.props.path||t.props.default||t.type===P,`: Children of must have a \`path\` or \`default\` prop, or be a \`\`. None found on element type \`${t.type}\``),s(!!(t.type!==P||t.props.from&&t.props.to),` requires both "from" and "to" props when inside a .`),s(!(t.type===P&&!T(t.props.from,t.props.to)),` has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.`),t.props.default)return{value:t,default:!0};const n=t.type===P?t.props.from:t.props.path,r="/"===n?e:`${W(e)}/${W(n)}`;return{value:t,default:t.props.default,path:t.props.children?`${W(r)}/*`:r}},U=["innerRef"],q=["to","state","replace","getProps"],J=["key"];let{forwardRef:Y}=r||(r=n.t(o,2));void 0===Y&&(Y=e=>e);const Q=()=>{},G=Y(((e,t)=>{let{innerRef:n}=e,r=c(e,U);const{baseuri:a}=y(),{location:s}=w(),{to:u,state:l,replace:p,getProps:f=Q}=r,d=c(r,q),m=x(u,a),g=encodeURI(m),v=s.pathname===g,b=R(s.pathname,g);return o.createElement("a",i({ref:t||n,"aria-current":v?"page":void 0},d,f({isCurrent:v,isPartiallyCurrent:b,href:m,location:s}),{href:m,onClick:e=>{if(d.onClick&&d.onClick(e),(e=>!e.defaultPrevented&&0===e.button&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey))(e)){e.preventDefault();let t=p;if("boolean"!=typeof p&&v){const e=c(i({},s.state),J);t=I(i({},l),e)}h(m,{state:l,replace:t})}}}))}));G.displayName="Link",G.propTypes={to:a.string.isRequired};class z extends o.Component{constructor(...e){super(...e),this.displayName="ReactUseErrorBoundary"}componentDidCatch(...e){this.setState({}),this.props.onError(...e)}render(){return this.props.children}}const B=o.createContext({componentDidCatch:{current:void 0},error:void 0,setError:()=>!1});function V({children:e}){const[t,n]=o.useState(),r=o.useRef(),a=o.useMemo((()=>({componentDidCatch:r,error:t,setError:n})),[t]);return o.createElement(B.Provider,{value:a},o.createElement(z,{error:t,onError:(e,t)=>{n(e),null==r.current||r.current(e,t)}},e))}V.displayName="ReactUseErrorBoundaryContext";const K=function(e){var t,n;function r(t){return o.createElement(V,null,o.createElement(e,i({key:"WrappedComponent"},t)))}return r.displayName=`WithErrorBoundary(${null!=(t=null!=(n=e.displayName)?n:e.name)?t:"Component"})`,r}((({history:e=d,children:t})=>{const{location:n}=e,[r,a]=o.useState({location:n}),[s]=function(){const e=o.useContext(B);e.componentDidCatch.current=void 0;const t=o.useCallback((()=>{e.setError(void 0)}),[]);return[e.error,t]}();if(o.useEffect((()=>{e._onTransitionComplete()}),[r.location]),o.useEffect((()=>{let t=!1;const n=e.listen((({location:e})=>{Promise.resolve().then((()=>{requestAnimationFrame((()=>{t||a({location:e})}))}))}));return()=>{t=!0,n()}}),[]),s){if(!_(s))throw s;h(s.uri,{replace:!0})}return o.createElement(v.Provider,{value:r},"function"==typeof t?t(r):t||null)})),X=({children:e})=>{const t=w();return t?e(t):o.createElement(K,null,e)},Z=({url:e,children:t})=>{const n=e.indexOf("?");let r,a="";return n>-1?(r=e.substring(0,n),a=e.substring(n)):r=e,o.createElement(v.Provider,{value:{location:{pathname:r,search:a,hash:""}}},t)},ee=({path:e,children:t})=>{const{baseuri:n}=y(),{location:r}=w(),o=x(e,n),a=k(o,r.pathname);return t({location:r,match:a?i({},a.params,{uri:a.uri,path:e}):null})},te=["uri","location","component"],ne=["children","style","component","uri","location"],re=e=>{let{uri:t,location:n,component:r}=e,a=c(e,te);return o.createElement(ae,i({},a,{component:r,uri:t,location:n}))};let oe=0;const ae=e=>{let{children:t,style:n,component:r="div",uri:a,location:s}=e,u=c(e,ne);const l=o.useRef(),p=o.useRef(!0),f=o.useRef(a),d=o.useRef(s.pathname),h=o.useRef(!1);o.useEffect((()=>(oe++,m(),()=>{oe--,0===oe&&(p.current=!0)})),[]),o.useEffect((()=>{let e=!1,t=!1;a!==f.current&&(f.current=a,e=!0),s.pathname!==d.current&&(d.current=s.pathname,t=!0),h.current=e||t&&s.pathname===a,h.current&&m()}),[a,s]);const m=o.useCallback((()=>{var e;p.current?p.current=!1:(e=l.current,h.current&&e&&e.focus())}),[]);return o.createElement(r,i({style:i({outline:"none"},n),tabIndex:"-1",ref:l},u),t)},se=["location","primary","children","basepath","baseuri","component"],ie=e=>{const t=y(),n=w();return o.createElement(ce,i({},t,n,e))};function ce(e){const{location:t,primary:n=!0,children:r,basepath:a,component:s="div"}=e,u=c(e,se),l=o.Children.toArray(r).reduce(((e,t)=>{const n=F(a)(t);return e.concat(n)}),[]),{pathname:p}=t,f=C(l,p);if(f){const{params:e,uri:r,route:c,route:{value:l}}=f,p=c.default?a:c.path.replace(/\*$/,""),d=i({},e,{uri:r,location:t}),h=o.cloneElement(l,d,l.props.children?o.createElement(ie,{location:t,primary:n},l.props.children):void 0),m=n?re:s,v=n?i({uri:r,location:t,component:s},u):u;return o.createElement(g.Provider,{value:{baseuri:r,basepath:p}},o.createElement(m,v,h))}return null}const ue=()=>{const e=w();if(!e)throw new Error("useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");return e.location},le=()=>{throw new Error("useNavigate is removed. Use import { navigate } from 'gatsby' instead")},pe=()=>{const e=y();if(!e)throw new Error("useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");const t=ue(),n=k(e.basepath,t.pathname);return n?n.params:null},fe=e=>{if(!e)throw new Error("useMatch(path: string) requires an argument of a string to match against");const t=y();if(!t)throw new Error("useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");const n=ue(),r=x(e,t.baseuri),o=k(r,n.pathname);return o?i({},o.params,{uri:o.uri,path:e}):null}},7078:function(e,t,n){"use strict";n.d(t,{Fe:function(){return d},N_:function(){return _},Rr:function(){return c},oo:function(){return E}});var r=n(5556),o=n(6540),a=n(6462),s=n(6395);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if("string"==typeof e)return!(e=>u.test(e))(e)},p=()=>"/theia-website-previews/pr-previews/pr-673",f=()=>"/theia-website-previews/pr-previews/pr-673";function d(e,t=p()){var n;if(!l(e))return e;if(e.startsWith("./")||e.startsWith("../"))return e;const r=null!=(n=null!=t?t:f())?n:"/";return`${null!=r&&r.endsWith("/")?r.slice(0,-1):r}${e.startsWith("/")?e:`/${e}`}`}const h=e=>null==e?void 0:e.startsWith("/");function m(e,t){const{pathname:n,search:r,hash:o}=c(e);return`${(0,s.T)(n,t)}${r}${o}`}const g=(e,t)=>"number"==typeof e?e:l(e)?h(e)?function(e){const t=d(e),n="always";return m(t,n)}(e):function(e,t){if(h(e))return e;const n="always",r=(0,a.resolve)(e,t);return m(r,n)}(e,t):e,v=["to","getProps","onClick","onMouseEnter","activeClassName","activeStyle","innerRef","partiallyActive","state","replace","_location"];const y={activeClassName:r.string,activeStyle:r.object,partiallyActive:r.bool};function w(e){return o.createElement(a.Location,null,(({location:t})=>o.createElement(b,i({},e,{_location:t}))))}class b extends o.Component{constructor(e){super(e),this.defaultGetProps=({isPartiallyCurrent:e,isCurrent:t})=>(this.props.partiallyActive?e:t)?{className:[this.props.className,this.props.activeClassName].filter(Boolean).join(" "),style:i({},this.props.style,this.props.activeStyle)}:null;let t=!1;"undefined"!=typeof window&&window.IntersectionObserver&&(t=!0),this.state={IOSupported:t},this.abortPrefetch=null,this.handleRef=this.handleRef.bind(this)}_prefetch(){let e=window.location.pathname+window.location.search;this.props._location&&this.props._location.pathname&&(e=this.props._location.pathname+this.props._location.search);const t=c(g(this.props.to,e)),n=t.pathname+t.search;if(e!==n)return ___loader.enqueue(n)}componentWillUnmount(){if(!this.io)return;const{instance:e,el:t}=this.io;this.abortPrefetch&&this.abortPrefetch.abort(),e.unobserve(t),e.disconnect()}handleRef(e){this.props.innerRef&&Object.prototype.hasOwnProperty.call(this.props.innerRef,"current")?this.props.innerRef.current=e:this.props.innerRef&&this.props.innerRef(e),this.state.IOSupported&&e&&(this.io=((e,t)=>{const n=new window.IntersectionObserver((n=>{n.forEach((n=>{e===n.target&&t(n.isIntersecting||n.intersectionRatio>0)}))}));return n.observe(e),{instance:n,el:e}})(e,(e=>{e?this.abortPrefetch=this._prefetch():this.abortPrefetch&&this.abortPrefetch.abort()})))}render(){const e=this.props,{to:t,getProps:n=this.defaultGetProps,onClick:r,onMouseEnter:s,state:u,replace:p,_location:f}=e,d=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,v),h=g(t,f.pathname);return l(h)?o.createElement(a.Link,i({to:h,state:u,getProps:n,innerRef:this.handleRef,onMouseEnter:e=>{s&&s(e);const t=c(h);___loader.hovering(t.pathname+t.search)},onClick:e=>{if(r&&r(e),!(0!==e.button||this.props.target||e.defaultPrevented||e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)){e.preventDefault();let t=p;const n=encodeURI(h)===f.pathname;"boolean"!=typeof p&&n&&(t=!0),window.___navigate(h,{state:u,replace:t})}return!0}},d)):o.createElement("a",i({href:h},d))}}b.propTypes=i({},y,{onClick:r.func,to:r.string.isRequired,replace:r.bool,state:r.object});const _=o.forwardRef(((e,t)=>o.createElement(w,i({innerRef:t},e)))),E=(e,t)=>{window.___navigate(g(e,window.location.pathname),t)}},5535:function(e,t,n){"use strict";n.r(t),n.d(t,{Script:function(){return h},ScriptStrategy:function(){return u},collectedScriptsByPage:function(){return i},scriptCache:function(){return f},scriptCallbackCache:function(){return d}});var r=n(6540),o=n(6462);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;ts.get(e)||[],set(e,t){const n=s.get(e)||[];n.push(t),s.set(e,n)},delete(e){s.delete(e)}},c="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){const t=Date.now();return setTimeout((function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})}),1)};var u,l;(l=u||(u={})).postHydrate="post-hydrate",l.idle="idle",l.offMainThread="off-main-thread";const p=new Set(["src","strategy","dangerouslySetInnerHTML","children","onLoad","onError"]),f=new Set,d=new Map;function h(e){return r.createElement(o.Location,null,(()=>r.createElement(m,e)))}function m(e){const{src:t,strategy:n=u.postHydrate}=e||{},{pathname:s}=(0,o.useLocation)();if((0,r.useEffect)((()=>{let t;switch(n){case u.postHydrate:t=g(e);break;case u.idle:c((()=>{t=g(e)}));break;case u.offMainThread:{const t=y(e);i.set(s,t)}}return()=>{const{script:e,loadCallback:n,errorCallback:r}=t||{};n&&(null==e||e.removeEventListener("load",n)),r&&(null==e||e.removeEventListener("error",r)),null==e||e.remove()}}),[]),n===u.offMainThread){const o=v(e),c=y(e);return"undefined"==typeof window&&i.set(s,c),r.createElement("script",o?a({type:"text/partytown","data-strategy":n,crossOrigin:"anonymous"},c,{dangerouslySetInnerHTML:{__html:v(e)}}):a({type:"text/partytown",src:w(t),"data-strategy":n,crossOrigin:"anonymous"},c))}return null}function g(e){const{id:t,src:n,strategy:r=u.postHydrate,onLoad:o,onError:s}=e||{},i=t||n,c=["load","error"],l={load:o,error:s};if(i){for(const e of c)if(null!=l&&l[e]){var p;const t=d.get(i)||{},{callbacks:n=[]}=(null==t?void 0:t[e])||{};var h,m;n.push(null==l?void 0:l[e]),null!=t&&null!=(p=t[e])&&p.event?null==l||null==(h=l[e])||h.call(l,null==t||null==(m=t[e])?void 0:m.event):d.set(i,a({},t,{[e]:{callbacks:n}}))}if(f.has(i))return null}const g=v(e),w=y(e),_=document.createElement("script");t&&(_.id=t),_.dataset.strategy=r;for(const[a,u]of Object.entries(w))_.setAttribute(a,u);g&&(_.textContent=g),n&&(_.src=n);const E={};if(i){for(const e of c){const t=t=>b(t,i,e);_.addEventListener(e,t),E[`${e}Callback`]=t}f.add(i)}return document.body.appendChild(_),{script:_,loadCallback:E.loadCallback,errorCallback:E.errorCallback}}function v(e){const{dangerouslySetInnerHTML:t,children:n=""}=e||{},{__html:r=""}=t||{};return r||n}function y(e){const t={};for(const[n,r]of Object.entries(e))p.has(n)||(t[n]=r);return t}function w(e){if(e)return`/__third-party-proxy?url=${encodeURIComponent(e)}`}function b(e,t,n){const r=d.get(t)||{};for(const a of(null==r||null==(o=r[n])?void 0:o.callbacks)||[]){var o;a(e)}d.set(t,{[n]:{event:e}})}}},function(e){e.O(0,[869,593],(function(){return t=6498,e(e.s=t);var t}));e.O()}]); +//# sourceMappingURL=app-fc81d05595623bcf88e0.js.map \ No newline at end of file diff --git a/pr-previews/pr-673/app-fc81d05595623bcf88e0.js.LICENSE.txt b/pr-previews/pr-673/app-fc81d05595623bcf88e0.js.LICENSE.txt new file mode 100644 index 00000000..ef4a917d --- /dev/null +++ b/pr-previews/pr-673/app-fc81d05595623bcf88e0.js.LICENSE.txt @@ -0,0 +1,18 @@ +/** + * @license React + * react-server-dom-webpack.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/pr-previews/pr-673/app-fc81d05595623bcf88e0.js.map b/pr-previews/pr-673/app-fc81d05595623bcf88e0.js.map new file mode 100644 index 00000000..21f73e2e --- /dev/null +++ b/pr-previews/pr-673/app-fc81d05595623bcf88e0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app-fc81d05595623bcf88e0.js","mappings":"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","sources":["webpack://Theia-Website/./node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","webpack://Theia-Website/./node_modules/stylis/src/Utility.js","webpack://Theia-Website/./node_modules/stylis/src/Tokenizer.js","webpack://Theia-Website/./node_modules/stylis/src/Enum.js","webpack://Theia-Website/./node_modules/stylis/src/Serializer.js","webpack://Theia-Website/./node_modules/stylis/src/Parser.js","webpack://Theia-Website/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://Theia-Website/./node_modules/stylis/src/Middleware.js","webpack://Theia-Website/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://Theia-Website/./node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","webpack://Theia-Website/./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://Theia-Website/./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://Theia-Website/./node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","webpack://Theia-Website/./node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://Theia-Website/./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://Theia-Website/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://Theia-Website/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://Theia-Website/./node_modules/gatsby-react-router-scroll/index.js","webpack://Theia-Website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://Theia-Website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://Theia-Website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://Theia-Website/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://Theia-Website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://Theia-Website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://Theia-Website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://Theia-Website/./.cache/api-runner-browser-plugins.js","webpack://Theia-Website/./.cache/api-runner-browser.js","webpack://Theia-Website/./.cache/emitter.js","webpack://Theia-Website/./node_modules/mitt/dist/mitt.es.js","webpack://Theia-Website/./.cache/normalize-page-path.js","webpack://Theia-Website/./.cache/find-path.js","webpack://Theia-Website/./.cache/gatsby-browser-entry.js","webpack://Theia-Website/./.cache/prefetch.js","webpack://Theia-Website/./.cache/loader.js","webpack://Theia-Website/./.cache/head/components/fire-callback-in-effect.js","webpack://Theia-Website/./.cache/head/constants.js","webpack://Theia-Website/./.cache/head/utils.js","webpack://Theia-Website/./.cache/head/head-export-handler-for-browser.js","webpack://Theia-Website/./.cache/page-renderer.js","webpack://Theia-Website/./.cache/route-announcer-props.js","webpack://Theia-Website/./.cache/navigation.js","webpack://Theia-Website/./node_modules/shallow-compare/es/index.js","webpack://Theia-Website/./.cache/ensure-resources.js","webpack://Theia-Website/./.cache/production-app.js","webpack://Theia-Website/./.cache/public-page-renderer-prod.js","webpack://Theia-Website/./.cache/public-page-renderer.js","webpack://Theia-Website/./.cache/react-dom-utils.js","webpack://Theia-Website/./.cache/redirect-utils.js","webpack://Theia-Website/./.cache/register-service-worker.js","webpack://Theia-Website/./.cache/slice/context.js","webpack://Theia-Website/./.cache/static-query.js","webpack://Theia-Website/./.cache/context-utils.js","webpack://Theia-Website/./.cache/strip-prefix.js","webpack://Theia-Website/./gatsby-browser.js","webpack://Theia-Website/./node_modules/gatsby-plugin-catch-links/catch-links.js","webpack://Theia-Website/./node_modules/gatsby-plugin-catch-links/gatsby-browser.js","webpack://Theia-Website/./node_modules/gatsby-plugin-catch-links/node_modules/escape-string-regexp/index.js","webpack://Theia-Website/./node_modules/gatsby-remark-autolink-headers/gatsby-browser.js","webpack://Theia-Website/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://Theia-Website/./node_modules/invariant/browser.js","webpack://Theia-Website/./node_modules/react-is/cjs/react-is.production.min.js","webpack://Theia-Website/./node_modules/react-is/index.js","webpack://Theia-Website/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://Theia-Website/./node_modules/react-server-dom-webpack/index.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/extends.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://Theia-Website/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Theia-Website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://Theia-Website/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://Theia-Website/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://Theia-Website/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil โค๏ธ\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node\n /*: HTMLStyleElement */\n ) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n /* : Node */\n\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node\n /*: HTMLStyleElement */\n ) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n /*: (\n selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache\n /*: EmotionCache */\n = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\n/* import { type EmotionCache } from '@emotion/utils' */\nvar EmotionCacheContext\n/*: React.Context */\n= /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache()\n/*: EmotionCache | null*/\n{\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache\n/* > */\n(func\n/*: (props: Props, cache: EmotionCache, ref: Ref) => React.Node */\n)\n/*: React.AbstractComponent */\n{\n return /*#__PURE__*/forwardRef(function (props\n /*: Props */\n , ref\n /*: Ref */\n ) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme\n/*: Object */\n, theme\n/*: Object | (Object => Object) */\n) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\n/*\ntype ThemeProviderProps = {\n theme: Object | (Object => Object),\n children: React.Node\n}\n*/\n\nvar ThemeProvider = function ThemeProvider(props\n/*: ThemeProviderProps */\n) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme\n/* */\n(Component\n/*: React.AbstractComponent */\n)\n/*: React.AbstractComponent<$Diff> */\n{\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n };\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n\n var newProps\n /*: any */\n = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(\n/* */\nfunction (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (!isDevelopment )) {\n newProps[key] = props[key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-5486c51c.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-5486c51c.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx\n/*: typeof React.createElement */\n= function jsx\n/*: typeof React.createElement */\n(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global\n/*: React.AbstractComponent<\nGlobalProps\n> */\n= /* #__PURE__ */withEmotionCache(function (props\n/*: GlobalProps */\n, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node\n /*: HTMLStyleElement | null*/\n = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\n/* import type { Interpolation, SerializedStyles } from '@emotion/utils' */\n\nfunction css()\n/*: SerializedStyles */\n{\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\n/*\ntype Keyframes = {|\n name: string,\n styles: string,\n anim: 1,\n toString: () => string\n|} & string\n*/\n\nvar keyframes = function\n /*: Keyframes */\nkeyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\n/*\ntype ClassNameArg =\n | string\n | boolean\n | { [key: string]: boolean }\n | Array\n | null\n | void\n*/\n\nvar classnames = function\n /*: string */\nclassnames(args\n/*: Array */\n) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered\n/*: Object */\n, css\n/*: (...args: Array) => string */\n, className\n/*: string */\n) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n/*\ntype Props = {\n children: ({\n css: (...args: any) => string,\n cx: (...args: Array) => string,\n theme: Object\n }) => React.Node\n} */\n\n\nvar ClassNames\n/*: React.AbstractComponent*/\n= /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n }\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth โ€” if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-blogs-js\": () => import(\"./../../../src/pages/blogs.js\" /* webpackChunkName: \"component---src-pages-blogs-js\" */),\n \"component---src-pages-docs-js\": () => import(\"./../../../src/pages/docs.js\" /* webpackChunkName: \"component---src-pages-docs-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-releases-js\": () => import(\"./../../../src/pages/releases.js\" /* webpackChunkName: \"component---src-pages-releases-js\" */),\n \"component---src-pages-resources-js\": () => import(\"./../../../src/pages/resources.js\" /* webpackChunkName: \"component---src-pages-resources-js\" */),\n \"component---src-pages-support-js\": () => import(\"./../../../src/pages/support.js\" /* webpackChunkName: \"component---src-pages-support-js\" */),\n \"component---src-pages-theia-platform-js\": () => import(\"./../../../src/pages/theia-platform.js\" /* webpackChunkName: \"component---src-pages-theia-platform-js\" */),\n \"component---src-templates-doc-js\": () => import(\"./../../../src/templates/doc.js\" /* webpackChunkName: \"component---src-templates-doc-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-remark-autolink-headers/gatsby-browser.js'),\n options: {\"plugins\":[],\"offsetY\":0,\"className\":\"anchor\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-catch-links/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","require(\"prismjs/themes/prism-tomorrow.css\")","import escapeStringRegexp from \"escape-string-regexp\";\nimport { withPrefix } from \"gatsby\";\nexport const userIsForcingNavigation = event => event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n\n// IE does not include leading slash in anchor.pathname\nexport const slashedPathname = pathname => pathname[0] === `/` ? pathname : `/${pathname}`;\nexport const navigationWasHandledElsewhere = event => event.defaultPrevented;\nexport const findClosestAnchor = node => {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === `a`) {\n return node;\n }\n }\n return null;\n};\nexport const anchorsTargetIsEquivalentToSelf = anchor => /* If target attribute is not present it's treated as _self */\nanchor.hasAttribute(`target`) === false ||\n/**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n/**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\nanchor.target == null ||\n/**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n[`_self`, ``].includes(anchor.target) ||\n/**\n * As per https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n */\nanchor.target === `_parent` && (!anchor.ownerDocument.defaultView.parent ||\n// Assumption: This can be falsey\nanchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === `_top` && (!anchor.ownerDocument.defaultView.top ||\n// Assumption: This can be falsey\nanchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView);\nexport const authorIsForcingNavigation = anchor =>\n/**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\nanchor.hasAttribute(`download`) === true ||\n/**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\nanchorsTargetIsEquivalentToSelf(anchor) === false;\n\n// https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\nexport const urlsAreOnSameOrigin = (origin, destination) => origin.protocol === destination.protocol && /* a.host includes both hostname and port in the expected format host:port */\norigin.host === destination.host;\nexport const pathIsNotHandledByApp = (destination, pathStartRegEx) => {\n const pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, `` the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\nexport const hashShouldBeFollowed = (origin, destination) => destination.hash !== `` && (\n/**\n * Dynamically created anchor links (href=\"#my-anchor\") do not always\n * have pathname on IE\n */\ndestination.pathname === `` || /* Don't catch links pointed to the same page but with a hash. */\ndestination.pathname === origin.pathname);\nexport const routeThroughBrowserOrApp = (hrefHandler, pluginOptions) => event => {\n if (window.___failedResources) return true;\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n const clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true;\n\n // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n const destination = document.createElement(`a`);\n\n // https://html.spec.whatwg.org/multipage/links.html#concept-hyperlink-url-set\n // If clickedAnchor has no href attribute like `example`, the href getter returns empty string.\n if (clickedAnchor.href !== ``) {\n destination.href = clickedAnchor.href;\n }\n if (`SVGAnimatedString` in window && clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n }\n\n // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n const origin = document.createElement(`a`);\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true;\n\n // Regex to test pathname against pathPrefix\n const pathStartRegEx = new RegExp(`^${escapeStringRegexp(withPrefix(`/`))}`);\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n if (pluginOptions.excludePattern) {\n const excludeRegex = new RegExp(pluginOptions.excludePattern);\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\n }\n event.preventDefault();\n\n // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n const destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, `/`);\n hrefHandler(`${destinationPathname}${destination.search}${destination.hash}`);\n return false;\n};\nexport default function (root, pluginOptions, cb) {\n const clickHandler = routeThroughBrowserOrApp(cb, pluginOptions);\n root.addEventListener(`click`, clickHandler);\n return () => root.removeEventListener(`click`, clickHandler);\n}","import { navigate } from \"gatsby\";\nimport catchLinks from \"./catch-links\";\nexport const onClientEntry = (_, pluginOptions = {}) => {\n catchLinks(window, pluginOptions, href => {\n navigate(href);\n });\n};","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","\"use strict\";\n\nvar offsetY = 0;\nvar getTargetOffset = function getTargetOffset(hash) {\n var id = window.decodeURI(hash.replace(\"#\", \"\"));\n if (id !== \"\") {\n var element = document.getElementById(id);\n if (element) {\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;\n var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;\n var computedStyles = window.getComputedStyle(element);\n var scrollMarginTop = computedStyles.getPropertyValue(\"scroll-margin-top\") || computedStyles.getPropertyValue(\"scroll-snap-margin-top\") || \"0px\";\n return element.getBoundingClientRect().top + scrollTop - parseInt(scrollMarginTop, 10) - clientTop - offsetY;\n }\n }\n return null;\n};\nexports.onInitialClientRender = function (_, pluginOptions) {\n if (pluginOptions.offsetY) {\n offsetY = pluginOptions.offsetY;\n }\n requestAnimationFrame(function () {\n var offset = getTargetOffset(window.location.hash);\n if (offset !== null) {\n window.scrollTo(0, offset);\n }\n });\n};\nexports.shouldUpdateScroll = function (_ref) {\n var location = _ref.routerProps.location;\n var offset = getTargetOffset(location.hash);\n return offset !== null ? [0, offset] : true;\n};","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `Theia - Cloud and Desktop IDE Platform
+ + \ No newline at end of file diff --git a/pr-previews/pr-673/breadcrumbs-custom.png b/pr-previews/pr-673/breadcrumbs-custom.png new file mode 100644 index 00000000..733b22ee Binary files /dev/null and b/pr-previews/pr-673/breadcrumbs-custom.png differ diff --git a/pr-previews/pr-673/breadcrumbs-popup.png b/pr-previews/pr-673/breadcrumbs-popup.png new file mode 100644 index 00000000..748493a6 Binary files /dev/null and b/pr-previews/pr-673/breadcrumbs-popup.png differ diff --git a/pr-previews/pr-673/breadcrumbs.png b/pr-previews/pr-673/breadcrumbs.png new file mode 100644 index 00000000..9180eabc Binary files /dev/null and b/pr-previews/pr-673/breadcrumbs.png differ diff --git a/pr-previews/pr-673/chunk-map.json b/pr-previews/pr-673/chunk-map.json new file mode 100644 index 00000000..b656d396 --- /dev/null +++ b/pr-previews/pr-673/chunk-map.json @@ -0,0 +1 @@ +{"app":["/app-fc81d05595623bcf88e0.js"],"component---src-pages-404-js":["/component---src-pages-404-js-1c97c66d7998fb40d048.js"],"component---src-pages-blogs-js":["/component---src-pages-blogs-js-d636a26158aeeb9701fa.js"],"component---src-pages-docs-js":["/component---src-pages-docs-js-52ba16cfe819f11145bf.js"],"component---src-pages-index-js":["/component---src-pages-index-js-38396d52784b3e0faeaa.js"],"component---src-pages-releases-js":["/component---src-pages-releases-js-404cf9fd0a5454f0cb71.js"],"component---src-pages-resources-js":["/component---src-pages-resources-js-9e89f625c6e1d41ec550.js"],"component---src-pages-support-js":["/component---src-pages-support-js-9bd01f77ce82eb582405.js"],"component---src-pages-theia-platform-js":["/component---src-pages-theia-platform-js-67bbbc09b47c1d992f67.js"],"component---src-templates-doc-js":["/component---src-templates-doc-js-0f91607553d4c7973801.js"]} \ No newline at end of file diff --git a/pr-previews/pr-673/command-palette-hello-world.png b/pr-previews/pr-673/command-palette-hello-world.png new file mode 100644 index 00000000..b14dcf4d Binary files /dev/null and b/pr-previews/pr-673/command-palette-hello-world.png differ diff --git a/pr-previews/pr-673/commons-a937ee768c2fca7c326a.js b/pr-previews/pr-673/commons-a937ee768c2fca7c326a.js new file mode 100644 index 00000000..ebc0d4d1 --- /dev/null +++ b/pr-previews/pr-673/commons-a937ee768c2fca7c326a.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkTheia_Website=self.webpackChunkTheia_Website||[]).push([[223],{644:function(M,e,i){i.d(e,{A:function(){return c}});var N=i(8168),t=i(6540),j=i(6289),L=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,s=(0,j.A)((function(M){return L.test(M)||111===M.charCodeAt(0)&&110===M.charCodeAt(1)&&M.charCodeAt(2)<91})),D=i(9214),n=i(41),o=i(3174),a=i(1287),r=s,u=function(M){return"theme"!==M},g=function(M){return"string"==typeof M&&M.charCodeAt(0)>96?r:u},y=function(M,e,i){var N;if(e){var t=e.shouldForwardProp;N=M.__emotion_forwardProp&&t?function(e){return M.__emotion_forwardProp(e)&&t(e)}:t}return"function"!=typeof N&&i&&(N=M.__emotion_forwardProp),N},T=function(M){var e=M.cache,i=M.serialized,N=M.isStringTag;return(0,n.SF)(e,i,N),(0,a.s)((function(){return(0,n.sk)(e,i,N)})),null},c=function M(e,i){var j,L,s=e.__emotion_real===e,a=s&&e.__emotion_base||e;void 0!==i&&(j=i.label,L=i.target);var r=y(e,i,s),u=r||g(a),c=!u("as");return function(){var z=arguments,I=s&&void 0!==e.__emotion_styles?e.__emotion_styles.slice(0):[];if(void 0!==j&&I.push("label:"+j+";"),null==z[0]||void 0===z[0].raw)I.push.apply(I,z);else{I.push(z[0][0]);for(var l=z.length,w=1;w{let{background:e}=M;return(0,j.Y)(L,null,(0,j.Y)("footer",{className:"footer",role:"contentinfo",style:{background:e?`url(${t.A})`:null}},(0,j.Y)("p",null,"Join the community!"),(0,j.Y)("div",{className:"footer__icons"},(0,j.Y)("a",{href:"https://twitter.com/theia_ide",target:"_blank",rel:"noopener noreferrer",className:"footer__link"},(0,j.Y)("img",{src:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyIj48cGF0aCBzdHlsZT0iZmlsbDojMDNhOWY0IiBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNgljLTIwLjI4OCwxMi4wOTYtNDIuNjg4LDIwLjY0LTY2LjU2LDI1LjQwOEM0MTEuODcyLDYwLjcwNCwzODQuNDE2LDQ4LDM1NC40NjQsNDhjLTU4LjExMiwwLTEwNC44OTYsNDcuMTY4LTEwNC44OTYsMTA0Ljk5MgljMCw4LjMyLDAuNzA0LDE2LjMyLDIuNDMyLDIzLjkzNmMtODcuMjY0LTQuMjU2LTE2NC40OC00Ni4wOC0yMTYuMzUyLTEwOS43OTJjLTkuMDU2LDE1LjcxMi0xNC4zNjgsMzMuNjk2LTE0LjM2OCw1My4wNTYJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyCWMwLDUxLjAwOCwzNi4zODQsOTMuMzc2LDg0LjA5NiwxMDMuMTM2Yy04LjU0NCwyLjMzNi0xNy44NTYsMy40NTYtMjcuNTIsMy40NTZjLTYuNzIsMC0xMy41MDQtMC4zODQtMTkuODcyLTEuNzkyCWMxMy42LDQxLjU2OCw1Mi4xOTIsNzIuMTI4LDk4LjA4LDczLjEyYy0zNS43MTIsMjcuOTM2LTgxLjA1Niw0NC43NjgtMTMwLjE0NCw0NC43NjhjLTguNjA4LDAtMTYuODY0LTAuMzg0LTI1LjEyLTEuNDQJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgJQzQ4MC4yMjQsMTM2Ljk2LDQ5Ny43MjgsMTE4LjQ5Niw1MTIsOTcuMjQ4eiIvPjwvc3ZnPg==",alt:"Twitter Logo",className:"footer__icon"})),(0,j.Y)("a",{href:"https://github.com/eclipse-theia/theia",target:"_blank",rel:"noopener noreferrer",className:"footer__link"},(0,j.Y)("img",{src:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNDM4LjU0OSIgaGVpZ2h0PSI0MzguNTQ5IiB4PSIwIiB5PSIwIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA0MzguNTQ5IDQzOC41NDkiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQzOC41NDkgNDM4LjU0OSI+PGc+PHBhdGggZD0iTTQwOS4xMzIsMTE0LjU3M2MtMTkuNjA4LTMzLjU5Ni00Ni4yMDUtNjAuMTk0LTc5Ljc5OC03OS44QzI5NS43MzYsMTUuMTY2LDI1OS4wNTcsNS4zNjUsMjE5LjI3MSw1LjM2NSBjLTM5Ljc4MSwwLTc2LjQ3Miw5LjgwNC0xMTAuMDYzLDI5LjQwOGMtMzMuNTk2LDE5LjYwNS02MC4xOTIsNDYuMjA0LTc5LjgsNzkuOEM5LjgwMywxNDguMTY4LDAsMTg0Ljg1NCwwLDIyNC42MyBjMCw0Ny43OCwxMy45NCw5MC43NDUsNDEuODI3LDEyOC45MDZjMjcuODg0LDM4LjE2NCw2My45MDYsNjQuNTcyLDEwOC4wNjMsNzkuMjI3YzUuMTQsMC45NTQsOC45NDUsMC4yODMsMTEuNDE5LTEuOTk2IGMyLjQ3NS0yLjI4MiwzLjcxMS01LjE0LDMuNzExLTguNTYyYzAtMC41NzEtMC4wNDktNS43MDgtMC4xNDQtMTUuNDE3Yy0wLjA5OC05LjcwOS0wLjE0NC0xOC4xNzktMC4xNDQtMjUuNDA2bC02LjU2NywxLjEzNiBjLTQuMTg3LDAuNzY3LTkuNDY5LDEuMDkyLTE1Ljg0NiwxYy02LjM3NC0wLjA4OS0xMi45OTEtMC43NTctMTkuODQyLTEuOTk5Yy02Ljg1NC0xLjIzMS0xMy4yMjktNC4wODYtMTkuMTMtOC41NTkgYy01Ljg5OC00LjQ3My0xMC4wODUtMTAuMzI4LTEyLjU2LTE3LjU1NmwtMi44NTUtNi41N2MtMS45MDMtNC4zNzQtNC44OTktOS4yMzMtOC45OTItMTQuNTU5IGMtNC4wOTMtNS4zMzEtOC4yMzItOC45NDUtMTIuNDE5LTEwLjg0OGwtMS45OTktMS40MzFjLTEuMzMyLTAuOTUxLTIuNTY4LTIuMDk4LTMuNzExLTMuNDI5Yy0xLjE0Mi0xLjMzMS0xLjk5Ny0yLjY2My0yLjU2OC0zLjk5NyBjLTAuNTcyLTEuMzM1LTAuMDk4LTIuNDMsMS40MjctMy4yODljMS41MjUtMC44NTksNC4yODEtMS4yNzYsOC4yOC0xLjI3Nmw1LjcwOCwwLjg1M2MzLjgwNywwLjc2Myw4LjUxNiwzLjA0MiwxNC4xMzMsNi44NTEgYzUuNjE0LDMuODA2LDEwLjIyOSw4Ljc1NCwxMy44NDYsMTQuODQyYzQuMzgsNy44MDYsOS42NTcsMTMuNzU0LDE1Ljg0NiwxNy44NDdjNi4xODQsNC4wOTMsMTIuNDE5LDYuMTM2LDE4LjY5OSw2LjEzNiBjNi4yOCwwLDExLjcwNC0wLjQ3NiwxNi4yNzQtMS40MjNjNC41NjUtMC45NTIsOC44NDgtMi4zODMsMTIuODQ3LTQuMjg1YzEuNzEzLTEyLjc1OCw2LjM3Ny0yMi41NTksMTMuOTg4LTI5LjQxIGMtMTAuODQ4LTEuMTQtMjAuNjAxLTIuODU3LTI5LjI2NC01LjE0Yy04LjY1OC0yLjI4Ni0xNy42MDUtNS45OTYtMjYuODM1LTExLjE0Yy05LjIzNS01LjEzNy0xNi44OTYtMTEuNTE2LTIyLjk4NS0xOS4xMjYgYy02LjA5LTcuNjE0LTExLjA4OC0xNy42MS0xNC45ODctMjkuOTc5Yy0zLjkwMS0xMi4zNzQtNS44NTItMjYuNjQ4LTUuODUyLTQyLjgyNmMwLTIzLjAzNSw3LjUyLTQyLjYzNywyMi41NTctNTguODE3IGMtNy4wNDQtMTcuMzE4LTYuMzc5LTM2LjczMiwxLjk5Ny01OC4yNGM1LjUyLTEuNzE1LDEzLjcwNi0wLjQyOCwyNC41NTQsMy44NTNjMTAuODUsNC4yODMsMTguNzk0LDcuOTUyLDIzLjg0LDEwLjk5NCBjNS4wNDYsMy4wNDEsOS4wODksNS42MTgsMTIuMTM1LDcuNzA4YzE3LjcwNS00Ljk0NywzNS45NzYtNy40MjEsNTQuODE4LTcuNDIxczM3LjExNywyLjQ3NCw1NC44MjMsNy40MjFsMTAuODQ5LTYuODQ5IGM3LjQxOS00LjU3LDE2LjE4LTguNzU4LDI2LjI2Mi0xMi41NjVjMTAuMDg4LTMuODA1LDE3LjgwMi00Ljg1MywyMy4xMzQtMy4xMzhjOC41NjIsMjEuNTA5LDkuMzI1LDQwLjkyMiwyLjI3OSw1OC4yNCBjMTUuMDM2LDE2LjE4LDIyLjU1OSwzNS43ODcsMjIuNTU5LDU4LjgxN2MwLDE2LjE3OC0xLjk1OCwzMC40OTctNS44NTMsNDIuOTY2Yy0zLjksMTIuNDcxLTguOTQxLDIyLjQ1Ny0xNS4xMjUsMjkuOTc5IGMtNi4xOTEsNy41MjEtMTMuOTAxLDEzLjg1LTIzLjEzMSwxOC45ODZjLTkuMjMyLDUuMTQtMTguMTgyLDguODUtMjYuODQsMTEuMTM2Yy04LjY2MiwyLjI4Ni0xOC40MTUsNC4wMDQtMjkuMjYzLDUuMTQ2IGM5Ljg5NCw4LjU2MiwxNC44NDIsMjIuMDc3LDE0Ljg0Miw0MC41Mzl2NjAuMjM3YzAsMy40MjIsMS4xOSw2LjI3OSwzLjU3Miw4LjU2MmMyLjM3OSwyLjI3OSw2LjEzNiwyLjk1LDExLjI3NiwxLjk5NSBjNDQuMTYzLTE0LjY1Myw4MC4xODUtNDEuMDYyLDEwOC4wNjgtNzkuMjI2YzI3Ljg4LTM4LjE2MSw0MS44MjUtODEuMTI2LDQxLjgyNS0xMjguOTA2IEM0MzguNTM2LDE4NC44NTEsNDI4LjcyOCwxNDguMTY4LDQwOS4xMzIsMTE0LjU3M3oiLz48L2c+PC9zdmc+",alt:"Github Logo",className:"footer__icon"}))),(0,j.Y)("p",{className:"footer__copyright"},(0,j.Y)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://projects.eclipse.org/projects/ecd.theia/"},"About")," | ",(0,j.Y)("a",{target:"_blank",rel:"noopener noreferrer",href:" http://www.eclipse.org/legal/privacy.php"},"Privacy Policy")," | ",(0,j.Y)("a",{target:"_blank",rel:"noopener noreferrer",href:" http://www.eclipse.org/legal/termsofuse.php"},"Terms of Use")," | ",(0,j.Y)("a",{target:"_blank",rel:"noopener noreferrer",href:"http://www.eclipse.org/legal/copyright.php"},"Copyright Agent")),(0,j.Y)("p",null,"ยฉ ",(new Date).getFullYear()," by ",(0,j.Y)("a",{href:"https://www.eclipse.org/org/",target:"_blank",rel:"noopener"},"Eclipse Foundation"))))}},7518:function(M,e,i){i.d(e,{A:function(){return r}});var N=i(5540),t=i(644),j=i(6540),L=i(4810),s=i(1919),D=i(4572),n=i(7437);const o=(0,t.A)("div",{target:"e12wdvq10"})("@media(max-width: ",s.fi.xmd,"){position:absolute;top:0;left:0;right:0;}.nav{display:flex;position:relative;padding-top:5rem;margin-bottom:2rem;@media(max-width: ",s.fi.xmd,"){flex-direction:column;padding-top:0;.navIsRendered{display:flex;}.navIsNotRendered{display:none;}&__header{display:flex;justify-content:space-between;flex:1;padding:3rem 2rem;}}.logo{height:2.7rem;color:transparent;}&__button{border:none;background:#fff;color:transparent;transition:all .2s;&:hover,&:focus{transform:scale(1.1);}img{height:3.5rem;@media(max-width: ",s.fi.sm,"){height:3rem;}}@media(min-width: ",s.fi.xmd,"){display:none;}}&__items{display:flex;justify-content:flex-end;list-style:none;width:100%;@media(max-width: ",s.fi.xmd,"){height:95vh;flex-direction:column;text-align:center;justify-content:center;align-items:center;background:white;}}&__item{margin-bottom:3rem;@media(min-width: ",s.fi.xmd,"){&:not(:last-child){margin-right:3rem;}}@media(max-width: ",s.fi.xmd,"){width:100vw;}}&__link{position:relative;width:100%;text-decoration:none;color:",s.Tj.greyOne,';display:block;padding-bottom:.8rem;&::after{content:"";position:absolute;bottom:0;right:100%;left:0;border-bottom:2px solid ',s.Tj.greyOne,";transition:all .4s cubic-bezier(0,.5,0, 1);@media(max-width: ",s.fi.xmd,"){display:none;}}&:hover,&:focus{color:",s.Tj.blue,";@media(max-width: ",s.fi.xmd,"){transform:scale(1.2);}&::after{right:0;border-color:",s.Tj.blue,";}}}&__dropdown{cursor:pointer;&:hover .dropdown-menu,&:focus .dropdown-menu{visibility:visible;opacity:1;}}}.active{color:",s.Tj.blue,";}.dropdown-menu{visibility:hidden;opacity:0;min-width:15rem;margin-top:1rem;position:relative;background-color:#fff;padding:1rem 0;z-index:2;@media(min-width: ",s.fi.xmd,"){box-shadow:0 6px 12px rgb(0 0 0 / 18%);left:-25%;}}.dropdown-menu li{padding:0.5rem 1rem;list-style:none;}.caret{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px dashed;display:inline-block;height:0;margin-left:2px;vertical-align:middle;width:0;}");let a=function(M){function e(){for(var e,i=arguments.length,N=new Array(i),t=0;t{e.setState({isNavRendered:!e.state.isNavRendered})},e}return(0,N.A)(e,M),e.prototype.render=function(){const{shouldRenderLogo:M}=this.props;return(0,n.Y)(o,null,(0,n.Y)("nav",{className:"nav",style:this.state.isNavRendered?{background:"#fff",height:"100vh"}:{}},(0,n.Y)("div",{className:"nav__header"},M?(0,n.Y)(L.N_,{to:"/",className:"logo-container"},(0,n.Y)("img",{className:"logo",src:D.A,alt:"theia logo"})):(0,n.Y)("span",{"aria-hidden":!0},"ย "),(0,n.Y)("div",{className:"nav__button-container"},(0,n.Y)("button",{className:"nav__button","aria-label":"Navigation Toggle",onClick:this.toggleNavigation},this.state.isNavRendered?(0,n.Y)("img",{src:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiBmaWxsPSIjMzgzODM4IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzMS4xMTIgMzEuMTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMS4xMTIgMzEuMTEyIj48cG9seWdvbiBwb2ludHM9IjMxLjExMiAxLjQxNCAyOS42OTggMCAxNS41NTYgMTQuMTQyIDEuNDE0IDAgMCAxLjQxNCAxNC4xNDIgMTUuNTU2IDAgMjkuNjk4IDEuNDE0IDMxLjExMiAxNS41NTYgMTYuOTcgMjkuNjk4IDMxLjExMiAzMS4xMTIgMjkuNjk4IDE2Ljk3IDE1LjU1NiIvPjwvc3ZnPg==",alt:"close menu icon"}):(0,n.Y)("img",{src:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjEyIiBoZWlnaHQ9IjYxMiIgeD0iMCIgeT0iMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjEyIDYxMiIgZmlsbD0iIzM4MzgzOCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNjEyIDYxMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGc+PGc+PGc+PHBhdGggZD0iTTAsOTUuNjI1djM4LjI1aDYxMnYtMzguMjVIMHogTTAsMzI1LjEyNWg2MTJ2LTM4LjI1SDBWMzI1LjEyNXogTTAsNTE2LjM3NWg2MTJ2LTM4LjI1SDBWNTE2LjM3NXoiLz48L2c+PC9nPjwvZz48L3N2Zz4=",alt:"hamburger menu icon"})))),(0,n.Y)("ul",{className:"nav__items "+(this.state.isNavRendered?"navIsRendered":"navIsNotRendered")},(0,n.Y)("li",{className:"nav__item"},(0,n.Y)(L.N_,{to:"https://github.com/eclipse-theia/theia",className:"nav__link"},"Github")),(0,n.Y)("li",{className:"nav__item"},(0,n.Y)(L.N_,{to:"/theia-platform/",className:"nav__link"},"Theia Platform")),(0,n.Y)("li",{className:"nav__item"},(0,n.Y)(L.N_,{to:"/docs/",className:"nav__link",activeClassName:"active"},"Documentation")),(0,n.Y)("li",{className:"nav__item"},(0,n.Y)("a",{href:"https://github.com/eclipse-theia/theia/discussions",target:"_blank",rel:"noopener",className:"nav__link"},"Community")),(0,n.Y)("li",{className:"nav__item"},(0,n.Y)(L.N_,{to:"/support/",className:"nav__link"},"Support")),(0,n.Y)("li",{className:"nav__item"},(0,n.Y)(L.N_,{to:"/releases/",className:"nav__link"},"Releases")),(0,n.Y)("li",{className:"nav__item nav__dropdown"},"Resources ",(0,n.Y)("b",{className:"caret"}),(0,n.Y)("ul",{className:"dropdown-menu"},(0,n.Y)("li",null,(0,n.Y)(L.N_,{to:"/blogs/",className:"nav__link"},"Blogs")),(0,n.Y)("li",null,(0,n.Y)(L.N_,{to:"/resources/",className:"nav__link"},"Other Resources")))))))},e}(j.Component);var r=a},5226:function(M,e,i){i.d(e,{A:function(){return s}});var N=i(6540),t=i(4810);var j=()=>(0,t.GR)("2468095761").site.siteMetadata,L=i(7437);var s=M=>{let{canonical:e}=M;const{title:i,description:t}=j();return(0,L.Y)(N.Fragment,null,(0,L.Y)("html",{lang:"en"}),(0,L.Y)("title",null,i),(0,L.Y)("meta",{name:"description",content:t}),(0,L.Y)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"}),(0,L.Y)("meta",{name:"theme-color",content:"#FFFFFF"}),e&&(0,L.Y)("link",{rel:"canonical",href:`https://theia-ide.org${e}`}),(0,L.Y)("link",{rel:"apple-touch-icon",type:"image/png",href:"data:image/png;base64,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",sizes:"180x180"}),(0,L.Y)("link",{rel:"icon",type:"image/png",href:"data:image/png;base64,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",sizes:"196x196"}),(0,L.Y)("link",{rel:"icon",type:"image/svg+xml",href:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBkPSJNMzkyLjQgMTM2LjVjNjYuMSAwIDExOS42IDUzLjUgMTE5LjYgMTE5LjYgMCA2Ni01My41IDExOS42LTExOS42IDExOS42SDEyOC43Yy05LjQgMC0xNy4xLTcuNi0xNy4xLTE3LjEgMC05LjQgNy42LTE3LjEgMTcuMS0xNy4xaDYxLjRjOS40IDAgMTctNy42IDE3LTE3LjFzLTcuNi0xNy4xLTE3LTE3LjFoLTEzLjdjLTkuNCAwLTE3LjEtNy42LTE3LjEtMTcuMSAwLTkuNCA3LjYtMTcuMSAxNy4xLTE3LjFoNDFjOS41IDAgMTYuOC03LjggMTcuMS0xNy4xIDAtOS40LTcuNi0xNy4xLTE3LjEtMTcuMUg3NGMtOS40IDAtMTcuMS03LjYtMTcuMS0xNy4xIDAtOS40IDcuNi0xNy4xIDE3LjEtMTcuMWgxMDUuOGM5LjUgMCAxNi44LTcuOCAxNy4xLTE3LjEgMC05LjQtNy42LTE3LjEtMTcuMS0xNy4xSDE1NmMtOS40IDAtMTcuMS03LjYtMTcuMS0xNy4xIDAtOS40IDcuNi0xNy41IDE3LjEtMTcuNWwyMzYuNC42em0tMTkuMSAzOS44Yy0zNi43IDAtNjYuNCAyOS44LTY2LjQgNjYuNHYyNi42YzAgMzYuNyAyOS43IDY2LjQgNjYuNCA2Ni40czY2LjQtMjkuNyA2Ni40LTY2LjR2LTI2LjZjMC0zNi42LTI5LjgtNjYuNC02Ni40LTY2LjR6bTIyLjcgNjIuOWM4LjggMCAxNiA3LjIgMTYgMTZ2Mi4xYzAgOC44LTcuMiAxNi0xNiAxNmgtNDkuOWMtOC44IDAtMTYtNy4yLTE2LTE2di0yLjFjMC04LjggNy4yLTE2IDE2LTE2SDM5NnpNNzUuMSAzNDEuNmM4LjkgMCAxNiA3LjEgMTYgMTZ2Mi4xYzAgOC44LTcuMSAxNi0xNiAxNkgxNmMtOC44IDAtMTYtNy4yLTE2LTE2di0yLjFjMC04LjkgNy4yLTE2IDE2LTE2aDU5LjF6Ii8+PHBhdGggZD0iTTEwMi40IDEzNi43YzguOCAwIDE2IDcuMiAxNiAxNnYyLjFjMCA4LjgtNy4xIDE2LTE2IDE2SDM2LjVjLTguOCAwLTE2LTcuMS0xNi0xNnYtMi4xYzAtOC44IDcuMi0xNiAxNi0xNmg2NS45ek0xMjIuOSAyNzMuM2M4LjggMCAxNiA3LjIgMTYgMTZ2Mi4xYzAgOC44LTcuMiAxNi0xNiAxNkg4Ni43Yy04LjggMC0xNi03LjItMTYtMTZ2LTIuMWMwLTguOCA3LjItMTYgMTYtMTZoMzYuMnoiLz48L3N2Zz4=",sizes:"any"}),(0,L.Y)("link",{href:"https://fonts.googleapis.com/css?family=Anonymous+Pro&display=swap",rel:"stylesheet"}),(0,L.Y)("link",{href:"https://fonts.googleapis.com/css?family=Montserrat:400,500&display=swap",rel:"stylesheet"}))}},8660:function(M,e,i){var N=i(6540),t=i(7437),j=i(1919);e.A=M=>{let{children:e}=M;return(0,t.Y)(N.Fragment,null,(0,t.Y)(t.mL,{styles:(0,t.AH)("*,*::before,*::after{margin:0;padding:0;box-sizing:inherit;}html{font-size:62.5%;@media(max-width: ",j.fi.md,"){font-size:58.5%;}}body{font-family:'Montserrat','Work Sans',sans-serif;font-size:",j.GR.default,";color:",j.Tj.greyOne,";line-height:1.6;box-sizing:border-box;overflow-x:hidden;}a{text-decoration:none;color:",j.Tj.lightBlue,";transition:all .2s;&:hover{color:",j.Tj.blue,";text-decoration:underline;}}a,button{cursor:pointer;}button,input{font-family:inherit;}h1,h2,h3,h4{font-family:'Anonymous Pro',monospace;font-weight:100;}.heading-primary{font-size:5.5rem;}.heading-tertiary{font-size:2.5rem;margin-bottom:1.5rem;}.row{max-width:",j.Vg.maxWidth,";width:80%;margin:0 auto;@media (max-width: ",j.fi.md,"){width:95%;}}.btn{display:inline-block;padding:1.3rem 3rem;color:inherit;text-decoration:none;border:2px solid;border-radius:10rem;transition:all .3s;font-weight:500;outline:none;&:hover,&:active,&--cta{color:#fff;background:",j.Tj.greyOne,";border-color:",j.Tj.greyOne,";}&:hover,&:focus{text-decoration:none;transform:translateY(-3px);box-shadow:0 .8rem 1.6rem rgba(0,0,0, .2);}&:active{transform:translateY(-1px);box-shadow:0 .4rem .8rem rgba(0,0,0, .2);}&--cta{box-shadow:0 .3rem .6rem rgba(0,0,0, .2);}}img{object-fit:contain;}.popup-content{width:60%;display:flex;flex-direction:column;align-items:center;justify-content:space-between,;}@media(max-width: ",j.fi.md,"){.popup-content{width:80%;}}.popup-content .close{cursor:pointer;position:absolute;display:block;padding:2px 5px;line-height:20px;right:-10px;top:-10px;font-size:24px;background:#ffffff;border-radius:18px;border:1px solid #cfcece;outline:none;}","")}),(0,t.Y)(N.Fragment,null,e))}},1919:function(M,e,i){i.d(e,{GR:function(){return t},Tj:function(){return N},Vg:function(){return j},fi:function(){return L}});const N={greyOne:"#383838",blue:"#0000f8",lightBlue:"#0074D9"},t={default:"1.5rem"},j={maxWidth:"114rem"},L={sm:"34rem",xmd:"50rem",md:"70rem"}},7361:function(M,e,i){e.A=i.p+"static/background-image-bae6db106e3819854309162f02f1b13a.png"},4572:function(M,e){e.A="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzODUxLjM1IDU0MC42Ij48ZyBpZD0iTGF5ZXJfMSIgZmlsbD0iIzAwMDAwIj48cGF0aCBkPSJNMzYzNS4xMjMsMy45MTIgQzM2MzUuMTI0LDMuOTEyIDM2NTguNjIsMy45MTIgMzY2OC40MzUsMTEuMSBDMzY2OC40MzUsMTEuMSAzNjc4LjI5OSwxOC4yODggMzY4NS44ODMsNDAuMjQ3IEwzODUwLjIwOCw1MTkuNjg4IEMzODUwLjIwOCw1MTkuNjg4IDM4NTIuNDg4LDUyNS43MzYgMzg1MC42MDQsNTMwLjY5MyBDMzg1MC42MDQsNTMwLjY5MyAzODQ4LjcyMSw1MzUuNiAzODQwLjM0Myw1MzUuNiBMMzc3MC42OTcsNTM1LjYgQzM3NzAuNjk4LDUzNS42IDM3NjIuMzcsNTM1LjYgMzc1Ny40NjIsNTMzLjcxNyBDMzc1Ny40NjIsNTMzLjcxNyAzNzUyLjUwNSw1MzEuODMzIDM3NDkuNDgxLDUyMy41MDUgTDM3MTYuMTcsNDE5Ljc1NSBMMzUyMy43ODksNDE5Ljc1NSBMMzQ5MC40NzgsNTIyLjcxMiBDMzQ5MC40NzgsNTIyLjcxMiAzNDg4LjE5OCw1MjkuNTUzIDM0ODQuMDM0LDUzMi41NzYgQzM0ODQuMDM0LDUzMi41NzYgMzQ3OS44Nyw1MzUuNiAzNDcwLjc5OSw1MzUuNiBMMzQwMS4xMDMsNTM1LjYgQzM0MDEuMTA0LDUzNS42IDMzOTIuNzc2LDUzNS42IDMzOTAuNDk2LDUzMC42OTMgQzMzOTAuNDk2LDUzMC42OTMgMzM4OC4yNjUsNTI1LjczNiAzMzkwLjQ5Niw1MTkuNjg4IEwzNTU0LjA3Niw0MC4yNDcgQzM1NTQuMDc2LDQwLjI0NyAzNTU3Ljg5MywyOC44OTYgMzU2MS42NjEsMjIuMTA1IEMzNTYxLjY2MSwyMi4xMDUgMzU2NS40NzgsMTUuMjY0IDM1NzEuMTI5LDExLjQ5NyBDMzU3MS4xMjksMTEuNDk3IDM1NzYuODI5LDcuNjggMzU4NC40MTMsNS43OTYgQzM1ODQuNDEzLDUuNzk2IDM1OTEuOTQ4LDMuOTEyIDM2MDIuNTU2LDMuOTEyIEwzNjM1LjEyMywzLjkxMiB6IE0zNjIwLjc0OCwxMDYuMTc1IEwzNjE2Ljk4MSwxMDYuMTc1IEwzNTg1LjksMjExLjM2MyBMMzU0Ni41NDIsMzQwLjc0MSBMMzY5MS45MzEsMzQwLjc0MSBMMzY1Mi41NzIsMjEzLjU5MyBMMzYyMC43NDgsMTA2LjE3NSB6Ii8+PHBhdGggZD0iTTIwNzEuMjA5LDUuMzUgQzIwNzEuMjA5LDUuMzUgMjA4MS44MTcsNS4zNSAyMDg1LjU4NCw4LjAyNyBDMjA4NS41ODQsOC4wMjcgMjA4OS4zNTIsMTAuNjU0IDIwODkuMzUyLDIxLjI2MiBMMjA4OS4zNTEsMjE3LjY1OCBMMjMyNC45MDgsMjE3LjY1OCBMMjMyNC45MDgsMjEuMjYyIEMyMzI0LjkwOCwyMS4yNjIgMjMyNC45MDgsMTEuMzk3IDIzMjkuMTIyLDguMzc0IEMyMzI5LjEyMiw4LjM3NCAyMzMzLjI4NSw1LjM1IDIzNDIuMzU3LDUuMzUgTDI0MDAuMDU2LDUuMzUgQzI0MDAuMDU2LDUuMzUgMjQxMC42NjQsNS4zNSAyNDE0LjA4NCw4LjAyNyBDMjQxNC4wODQsOC4wMjcgMjQxNy41MDUsMTAuNjU0IDI0MTcuNTA1LDIxLjI2MiBMMjQxNy41MDUsNTE5LjY4OCBDMjQxNy41MDUsNTE5LjY4OCAyNDE3LjUwNSw1MzAuMjk2IDI0MTQuMDg0LDUzMi45NzMgQzI0MTQuMDg0LDUzMi45NzMgMjQxMC42NjQsNTM1LjYgMjQwMC4wNTYsNTM1LjYgTDIzNDIuMzU2LDUzNS42IEMyMzQyLjM1Nyw1MzUuNiAyMzMzLjI4NSw1MzUuNiAyMzI5LjEyMiw1MzIuNTc2IEMyMzI5LjEyMiw1MzIuNTc2IDIzMjQuOTA4LDUyOS41NTMgMjMyNC45MDgsNTE5LjY4OCBMMjMyNC45MDgsMjk3LjExOSBMMjA4OS4zNTEsMjk3LjExOSBMMjA4OS4zNTEsNTE5LjY4OCBDMjA4OS4zNTIsNTE5LjY4OCAyMDg5LjM1Miw1MzAuMjk2IDIwODUuNTg0LDUzMi45NzMgQzIwODUuNTg0LDUzMi45NzMgMjA4MS44MTcsNTM1LjYgMjA3MS4yMDksNTM1LjYgTDIwMTMuNzA3LDUzNS42IEMyMDEzLjcwOCw1MzUuNiAyMDA1LjM4LDUzNS42IDIwMDAuODY5LDUzMi41NzYgQzIwMDAuODY5LDUzMi41NzYgMTk5Ni4zMDksNTI5LjU1MyAxOTk2LjMwOSw1MTkuNjg4IEwxOTk2LjMwOCwyMS4yNjIgQzE5OTYuMzA5LDIxLjI2MiAxOTk2LjMwOSwxMS4zOTcgMjAwMC44NjksOC4zNzQgQzIwMDAuODY5LDguMzc0IDIwMDUuMzgsNS4zNSAyMDEzLjcwOCw1LjM1IEwyMDcxLjIwOSw1LjM1IHoiLz48cGF0aCBkPSJNMTg0MC40MTEsNS4zNSBDMTg0MC40MTEsNS4zNSAxODQ4LjczOSw1LjM1IDE4NTEuNDE2LDguMzc0IEMxODUxLjQxNiw4LjM3NCAxODU0LjA0MywxMS40NDcgMTg1NC4wNDMsMTkuNzc1IEwxODU0LjA0Myw3Mi4xNyBDMTg1NC4wNDMsNzIuMTcgMTg1NC4wNDMsNzkuNzU1IDE4NTEuNDE2LDgyLjc3OCBDMTg1MS40MTYsODIuNzc4IDE4NDguNzM5LDg1LjgwMiAxODQwLjQxMSw4NS44MDIgTDE2OTYuNTU5LDg1LjgwMiBMMTY5Ni41NTksNTE5LjY4OCBDMTY5Ni41NTksNTE5LjY4OCAxNjk2LjU1OSw1MzAuMjk2IDE2OTMuMTM5LDUzMi45NzMgQzE2OTMuMTM5LDUzMi45NzMgMTY4OS43MTgsNTM1LjYgMTY3OS4xMSw1MzUuNiBMMTYxOS45MjQsNTM1LjYgQzE2MTkuOTI0LDUzNS42IDE2MTAuODUzLDUzNS42IDE2MDYuNjg5LDUzMi41NzYgQzE2MDYuNjg5LDUzMi41NzYgMTYwMi41MjUsNTI5LjU1MyAxNjAyLjUyNSw1MTkuNjg4IEwxNjAyLjUyNSw4NS44MDIgTDE0NjEuNjQ3LDg1LjgwMiBDMTQ2MS42NDcsODUuODAyIDE0NTMuMzE5LDg1LjgwMiAxNDUxLjAzOSw4Mi43NzggQzE0NTEuMDM5LDgyLjc3OCAxNDQ4Ljc1OSw3OS43NTUgMTQ0OC43NTksNzIuMTcgTDE0NDguNzU4LDE5Ljc3NSBDMTQ0OC43NTksMTkuNzc1IDE0NDguNzU5LDExLjQ0NyAxNDUxLjAzOSw4LjM3NCBDMTQ1MS4wMzksOC4zNzQgMTQ1My4zMTksNS4zNSAxNDYxLjY0Nyw1LjM1IEwxODQwLjQxMSw1LjM1IHoiLz48cGF0aCBkPSJNODgxLjA5OSwyLjIgQzEwMjksMi4yIDExNDguOCwxMjIgMTE0OC44LDI2OS45IEMxMTQ4LjgsNDE3LjcgMTAyOSw1MzcuNiA4ODEuMSw1MzcuNiBMMjkxLDUzNy42IEMyNjkuOSw1MzcuNiAyNTIuOCw1MjAuNSAyNTIuOCw0OTkuNCBDMjUyLjgsNDc4LjMgMjY5LjksNDYxLjIgMjkxLDQ2MS4yIEw0MjguNSw0NjEuMiBDNDQ5LjUsNDYxLjIgNDY2LjYsNDQ0LjEgNDY2LjYsNDIzIEM0NjYuNiw0MDEuOSA0NDkuNSwzODQuOCA0MjguNSwzODQuOCBMMzk3Ljg5OSwzODQuOCBDMzc2LjgsMzg0LjggMzU5LjcsMzY3LjcgMzU5LjcsMzQ2LjYgQzM1OS43LDMyNS41IDM3Ni44LDMwOC40IDM5Ny45LDMwOC40IEw0ODkuNjAzLDMwOC40IEM1MTAuODE4LDMwOC4zNDEgNTI3LjI3MywyOTEuMDUgNTI3LjgsMjcwLjIgQzUyNy44LDI0OS4xIDUxMC43LDIzMiA0ODkuNiwyMzIgTDE2OC43LDIzMiBDMTQ3LjYsMjMyIDEzMC41LDIxNC45IDEzMC41LDE5My44IEMxMzAuNSwxNzIuNyAxNDcuNiwxNTUuNiAxNjguNywxNTUuNiBMNDA1LjUwNCwxNTUuNiBDNDI2LjcxOCwxNTUuNTQxIDQ0My4xNzMsMTM4LjI1IDQ0My43LDExNy40IEM0NDMuNyw5Ni4zIDQyNi42LDc5LjIgNDA1LjUsNzkuMiBMMzUyLjEsNzkuMiBDMzMxLDc5LjIgMzEzLjksNjIuMSAzMTMuOSw0MSBDMzEzLjksMTkuOSAzMzEsMS44IDM1Mi4xLDEuOCBMODgxLjA5OSwyLjIgeiBNODM4LjMsOTEuNCBMODM4LjMsOTEuNCBDNzU2LjEsOTEuNCA2ODkuNiwxNTggNjg5LjYsMjQwLjEgTDY4OS42LDI5OS42IEM2ODkuNiwzODEuOCA3NTYuMSw0NDguMyA4MzguMyw0NDguMyBDOTIwLjQsNDQ4LjMgOTg3LDM4MS44IDk4NywyOTkuNiBMOTg3LDI0MC4xIEM5ODcsMTU4IDkyMC40LDkxLjQgODM4LjMsOTEuNCBMODM4LjMsOTEuNCB6IE04ODkuMSwyMzIgQzkwOC45LDIzMiA5MjUsMjQ4LjEgOTI1LDI2Ny45IEw5MjUsMjcyLjUgQzkyNSwyOTIuMyA5MDguOSwzMDguNCA4ODkuMSwzMDguNCBMNzc3LjUsMzA4LjQgQzc1Ny43LDMwOC40IDc0MS42LDI5Mi4zIDc0MS42LDI3Mi41IEw3NDEuNiwyNjcuOSBDNzQxLjYsMjQ4LjEgNzU3LjcsMjMyIDc3Ny41LDIzMiBMODg5LjEsMjMyIHoiLz48cGF0aCBkPSJNMTcxLDQ2MS4yIEMxOTAuOSw0NjEuMiAyMDYuOSw0NzcuMiAyMDYuOSw0OTcuMSBMMjA2LjksNTAxLjcgQzIwNi45LDUyMS41IDE5MC45LDUzNy42IDE3MSw1MzcuNiBMMzguOSw1MzcuNiBDMTkuMSw1MzcuNiAzLDUyMS41IDMsNTAxLjcgTDMsNDk3LjEgQzMsNDc3LjIgMTkuMSw0NjEuMiAzOC45LDQ2MS4yIEwxNzEsNDYxLjIgeiIvPjxwYXRoIGQ9Ik0yOTUyLjkwNCw0Ljg1NCBDMjk1Mi45MDUsNC44NTQgMjk2Mi43MTksNC44NTQgMjk2NS4zOTYsOS4wNjggQzI5NjUuMzk2LDkuMDY4IDI5NjguMDIzLDEzLjIzMiAyOTY4LjAyMywyMi4zMDMgTDI5NjguMDIzLDcwLjA4OCBDMjk2OC4wMjMsNzAuMDg4IDI5NjguMDIzLDc5Ljk1MyAyOTY1LjM5Niw4My4zNzMgQzI5NjUuMzk2LDgzLjM3MyAyOTYyLjcxOSw4Ni43OTMgMjk1Mi45MDUsODYuNzkzIEwyNzUxLjQ1Miw4Ni43OTMgQzI3NTEuNDUyLDg2Ljc5MyAyNzIyLjY1Miw4Ni43OTMgMjcxMC45MDQsOTkuNjMyIEMyNzEwLjkwNCw5OS42MzIgMjY5OS4yMDUsMTEyLjUyIDI2OTkuMjA1LDEzNi43MSBMMjY5OS4yMDUsMjE2LjE3MSBMMjkyNy44NzIsMjE2LjE3MSBDMjkyNy44NzIsMjE2LjE3MSAyOTM3LjczNiwyMTYuMTcxIDI5NDAuNDEzLDIxOS45ODggQzI5NDAuNDEzLDIxOS45ODggMjk0My4wNCwyMjMuNzU1IDI5NDMuMDQsMjM0LjMxNCBMMjk0My4wNCwyNzUuOTAzIEMyOTQzLjA0LDI3NS45MDMgMjk0My4wNCwyODQuOTc0IDI5NDAuNDEzLDI4OS4wODkgQzI5NDAuNDEzLDI4OS4wODkgMjkzNy43MzYsMjkzLjI1MiAyOTI3Ljg3MiwyOTMuMjUyIEwyNjk5LjIwNSwyOTMuMjUyIEwyNjk5LjIwNSw0MDMuOTQyIEMyNjk5LjIwNSw0MDMuOTQyIDI2OTkuMjA1LDQyOC4xODIgMjcxMS42OTcsNDQwLjY3NCBDMjcxMS42OTcsNDQwLjY3NCAyNzI0LjE4OCw0NTMuMjE1IDI3NTEuNDUyLDQ1My4yMTUgTDI5NTcuNDE1LDQ1My4yMTUgQzI5NTcuNDE1LDQ1My4yMTUgMjk2OC4wMjMsNDUzLjIxNSAyOTcwLjcsNDU2Ljk4MiBDMjk3MC43LDQ1Ni45ODIgMjk3My4zMjcsNDYwLjc0OSAyOTczLjMyNyw0NzEuMzU3IEwyOTczLjMyNyw1MTguMjAxIEMyOTczLjMyNyw1MTguMjAxIDI5NzMuMzI3LDUyNi41MjkgMjk3MC4zMDMsNTMxLjA0IEMyOTcwLjMwMyw1MzEuMDQgMjk2Ny4yOCw1MzUuNiAyOTU3LjQxNSw1MzUuNiBMMjc0MS41ODcsNTM1LjYgQzI3NDEuNTg4LDUzNS42IDI3MDEuNDM2LDUzNS42IDI2NzUuNjU5LDUyNC4yNDkgQzI2NzUuNjU5LDUyNC4yNDkgMjY0OS44ODMsNTEyLjg5NyAyNjM0LjMxOCw0OTMuOTYxIEMyNjM0LjMxOCw0OTMuOTYxIDI2MTguNzUzLDQ3NS4wMjYgMjYxMi43MDYsNDUwLjc4NiBDMjYxMi43MDYsNDUwLjc4NiAyNjA2LjYwOCw0MjYuNTk2IDI2MDYuNjA4LDQwMC4wNzYgTDI2MDYuNjA4LDE0MS4xNzIgQzI2MDYuNjA4LDE0MS4xNzIgMjYwNi42MDgsMTE0LjY1MiAyNjEzLjc5Niw5MC4wNjUgQzI2MTMuNzk2LDkwLjA2NSAyNjIxLjAzMyw2NS40MjkgMjYzNy4zNDIsNDYuNDkzIEMyNjM3LjM0Miw0Ni40OTMgMjY1My42NSwyNy42MDcgMjY3OS40MjcsMTYuMjA2IEMyNjc5LjQyNywxNi4yMDYgMjcwNS4yNTMsNC44NTQgMjc0MS41ODgsNC44NTQgTDI5NTIuOTA0LDQuODU0IHoiLz48cGF0aCBkPSJNMzIxOS4zMjgsNS4zNSBDMzIxOS4zMjgsNS4zNSAzMjI5Ljg4Nyw1LjM1IDMyMzMuNzA0LDguMDI3IEMzMjMzLjcwNCw4LjAyNyAzMjM3LjQ3MSwxMC42NTQgMzIzNy40NzEsMjEuMjYyIEwzMjM3LjQ3MSw1MTkuNjg4IEMzMjM3LjQ3MSw1MTkuNjg4IDMyMzcuNDcxLDUzMC4yOTYgMzIzMy43MDQsNTMyLjk3MyBDMzIzMy43MDQsNTMyLjk3MyAzMjI5Ljg4Nyw1MzUuNiAzMjE5LjMyOCw1MzUuNiBMMzE2MS44MjcsNTM1LjYgQzMxNjEuODI3LDUzNS42IDMxNTIuNzU2LDUzNS42IDMxNDguNTkyLDUzMi41NzYgQzMxNDguNTkyLDUzMi41NzYgMzE0NC40MjgsNTI5LjU1MyAzMTQ0LjQyOCw1MTkuNjg4IEwzMTQ0LjQyOCwyMS4yNjIgQzMxNDQuNDI4LDIxLjI2MiAzMTQ0LjQyOCwxMS4zOTcgMzE0OC41OTIsOC4zNzQgQzMxNDguNTkyLDguMzc0IDMxNTIuNzU2LDUuMzUgMzE2MS44MjcsNS4zNSBMMzIxOS4zMjgsNS4zNSB6Ii8+PHBhdGggZmlsbD0iIzAwMDAwIiBkPSJNMjMyLjIsMi44IEMyNTIsMi44IDI2OCwxOC45IDI2OCwzOC43IEwyNjgsNDMuNCBDMjY4LDYzLjIgMjUyLDc5LjIgMjMyLjIsNzkuMiBMODQuNyw3OS4yIEM2NC45LDc5LjIgNDguOCw2My4yIDQ4LjgsNDMuNCBMNDguOCwzOC43IEM0OC44LDE4LjkgNjQuOSwyLjggODQuNywyLjggTDIzMi4yLDIuOCB6Ii8+PHBhdGggZD0iTTI3OCwzMDguNCBDMjk3LjgsMzA4LjQgMzEzLjksMzI0LjUgMzEzLjksMzQ0LjMgTDMxMy45LDM0OC45IEMzMTMuOSwzNjguNyAyOTcuOCwzODQuOCAyNzgsMzg0LjggTDE5NywzODQuOCBDMTc3LjIsMzg0LjggMTYxLjEsMzY4LjcgMTYxLjEsMzQ4LjkgTDE2MS4xLDM0NC4zIEMxNjEuMSwzMjQuNSAxNzcuMiwzMDguNCAxOTcsMzA4LjQgTDI3OCwzMDguNCB6Ii8+PC9nPjwvc3ZnPg=="}}]); +//# sourceMappingURL=commons-a937ee768c2fca7c326a.js.map \ No newline at end of file diff --git a/pr-previews/pr-673/commons-a937ee768c2fca7c326a.js.map b/pr-previews/pr-673/commons-a937ee768c2fca7c326a.js.map new file mode 100644 index 00000000..1439ff3b --- /dev/null +++ b/pr-previews/pr-673/commons-a937ee768c2fca7c326a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"commons-a937ee768c2fca7c326a.js","mappings":"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","sources":["webpack://Theia-Website/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://Theia-Website/./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://Theia-Website/./src/components/Footer.js","webpack://Theia-Website/./src/resources/twitter.svg","webpack://Theia-Website/./src/resources/github.svg","webpack://Theia-Website/./src/components/Nav.js","webpack://Theia-Website/./src/resources/multiply.svg","webpack://Theia-Website/./src/resources/hamburger.svg","webpack://Theia-Website/./src/hooks/use-site-metadata.js","webpack://Theia-Website/./src/layouts/basehead.js","webpack://Theia-Website/./src/resources/apple-touch-icon.png","webpack://Theia-Website/./src/resources/theia-favicon-196x196.png","webpack://Theia-Website/./src/resources/theia-favicon.svg","webpack://Theia-Website/./src/layouts/layout.js","webpack://Theia-Website/./src/utils/variables.js","webpack://Theia-Website/./src/resources/background-image.png","webpack://Theia-Website/./src/resources/theia-logo-dark.svg"],"sourcesContent":["import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\n/* import type {\n ElementType,\n StatelessFunctionalComponent,\n AbstractComponent\n} from 'react' */\n/*\nexport type Interpolations = Array\n\nexport type StyledElementType =\n | string\n | AbstractComponent<{ ...Props, className: string }, mixed>\n\nexport type StyledOptions = {\n label?: string,\n shouldForwardProp?: string => boolean,\n target?: string\n}\n\nexport type StyledComponent = StatelessFunctionalComponent & {\n defaultProps: any,\n toString: () => string,\n withComponent: (\n nextTag: StyledElementType,\n nextOptions?: StyledOptions\n ) => StyledComponent\n}\n\nexport type PrivateStyledComponent = StyledComponent & {\n __emotion_real: StyledComponent,\n __emotion_base: any,\n __emotion_styles: any,\n __emotion_forwardProp: any\n}\n*/\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key\n/*: string */\n) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag\n/*: ElementType */\n) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag\n/*: PrivateStyledComponent */\n, options\n/*: StyledOptions | void */\n, isReal\n/*: boolean */\n) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName\n /*: string */\n ) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n/*\nexport type CreateStyledComponent = (\n ...args: Interpolations\n) => StyledComponent\n\nexport type CreateStyled = {\n (\n tag: StyledElementType,\n options?: StyledOptions\n ): (...args: Interpolations) => StyledComponent,\n [key: string]: CreateStyledComponent,\n bind: () => CreateStyled\n}\n*/\n\nvar isDevelopment = false;\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled\n/*: CreateStyled */\n= function createStyled\n/*: CreateStyled */\n(tag\n/*: any */\n, options\n/* ?: StyledOptions */\n) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n /* return function(): PrivateStyledComponent { */\n\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], args[0][i]);\n }\n }\n\n var Styled\n /*: PrivateStyledComponent */\n = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag\n /*: StyledElementType */\n , nextOptions\n /* ?: StyledOptions */\n ) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","/********************************************************************************\n * Copyright (C) 2019 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nimport React from 'react'\nimport styled from '@emotion/styled'\nimport Background from '../resources/background-image.png'\nimport TwitterLogo from '../resources/twitter.svg'\nimport GithubLogo from '../resources/github.svg'\nimport DiscourseLogo from '../resources/discourse.svg'\n\nconst StyledFooter = styled.div`\n .footer {\n padding: 4rem 0;\n text-align: center;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n border-top: 10px solid #f8f8f8;\n\n &__icons {\n display: flex;\n justify-content: center;\n margin: 2rem 0;\n }\n\n &__icon {\n height: 3rem;\n display: block;\n }\n\n &__link {\n &:not(:last-child) {\n margin-right: 3rem;\n }\n }\n\n &__copyright {\n margin: 2rem 0;\n }\n }\n`\n\nconst Footer = ({background}) => (\n \n \n \n)\n\nexport default Footer\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyIj48cGF0aCBzdHlsZT0iZmlsbDojMDNhOWY0IiBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNgljLTIwLjI4OCwxMi4wOTYtNDIuNjg4LDIwLjY0LTY2LjU2LDI1LjQwOEM0MTEuODcyLDYwLjcwNCwzODQuNDE2LDQ4LDM1NC40NjQsNDhjLTU4LjExMiwwLTEwNC44OTYsNDcuMTY4LTEwNC44OTYsMTA0Ljk5MgljMCw4LjMyLDAuNzA0LDE2LjMyLDIuNDMyLDIzLjkzNmMtODcuMjY0LTQuMjU2LTE2NC40OC00Ni4wOC0yMTYuMzUyLTEwOS43OTJjLTkuMDU2LDE1LjcxMi0xNC4zNjgsMzMuNjk2LTE0LjM2OCw1My4wNTYJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyCWMwLDUxLjAwOCwzNi4zODQsOTMuMzc2LDg0LjA5NiwxMDMuMTM2Yy04LjU0NCwyLjMzNi0xNy44NTYsMy40NTYtMjcuNTIsMy40NTZjLTYuNzIsMC0xMy41MDQtMC4zODQtMTkuODcyLTEuNzkyCWMxMy42LDQxLjU2OCw1Mi4xOTIsNzIuMTI4LDk4LjA4LDczLjEyYy0zNS43MTIsMjcuOTM2LTgxLjA1Niw0NC43NjgtMTMwLjE0NCw0NC43NjhjLTguNjA4LDAtMTYuODY0LTAuMzg0LTI1LjEyLTEuNDQJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgJQzQ4MC4yMjQsMTM2Ljk2LDQ5Ny43MjgsMTE4LjQ5Niw1MTIsOTcuMjQ4eiIvPjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNDM4LjU0OSIgaGVpZ2h0PSI0MzguNTQ5IiB4PSIwIiB5PSIwIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA0MzguNTQ5IDQzOC41NDkiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQzOC41NDkgNDM4LjU0OSI+PGc+PHBhdGggZD0iTTQwOS4xMzIsMTE0LjU3M2MtMTkuNjA4LTMzLjU5Ni00Ni4yMDUtNjAuMTk0LTc5Ljc5OC03OS44QzI5NS43MzYsMTUuMTY2LDI1OS4wNTcsNS4zNjUsMjE5LjI3MSw1LjM2NSBjLTM5Ljc4MSwwLTc2LjQ3Miw5LjgwNC0xMTAuMDYzLDI5LjQwOGMtMzMuNTk2LDE5LjYwNS02MC4xOTIsNDYuMjA0LTc5LjgsNzkuOEM5LjgwMywxNDguMTY4LDAsMTg0Ljg1NCwwLDIyNC42MyBjMCw0Ny43OCwxMy45NCw5MC43NDUsNDEuODI3LDEyOC45MDZjMjcuODg0LDM4LjE2NCw2My45MDYsNjQuNTcyLDEwOC4wNjMsNzkuMjI3YzUuMTQsMC45NTQsOC45NDUsMC4yODMsMTEuNDE5LTEuOTk2IGMyLjQ3NS0yLjI4MiwzLjcxMS01LjE0LDMuNzExLTguNTYyYzAtMC41NzEtMC4wNDktNS43MDgtMC4xNDQtMTUuNDE3Yy0wLjA5OC05LjcwOS0wLjE0NC0xOC4xNzktMC4xNDQtMjUuNDA2bC02LjU2NywxLjEzNiBjLTQuMTg3LDAuNzY3LTkuNDY5LDEuMDkyLTE1Ljg0NiwxYy02LjM3NC0wLjA4OS0xMi45OTEtMC43NTctMTkuODQyLTEuOTk5Yy02Ljg1NC0xLjIzMS0xMy4yMjktNC4wODYtMTkuMTMtOC41NTkgYy01Ljg5OC00LjQ3My0xMC4wODUtMTAuMzI4LTEyLjU2LTE3LjU1NmwtMi44NTUtNi41N2MtMS45MDMtNC4zNzQtNC44OTktOS4yMzMtOC45OTItMTQuNTU5IGMtNC4wOTMtNS4zMzEtOC4yMzItOC45NDUtMTIuNDE5LTEwLjg0OGwtMS45OTktMS40MzFjLTEuMzMyLTAuOTUxLTIuNTY4LTIuMDk4LTMuNzExLTMuNDI5Yy0xLjE0Mi0xLjMzMS0xLjk5Ny0yLjY2My0yLjU2OC0zLjk5NyBjLTAuNTcyLTEuMzM1LTAuMDk4LTIuNDMsMS40MjctMy4yODljMS41MjUtMC44NTksNC4yODEtMS4yNzYsOC4yOC0xLjI3Nmw1LjcwOCwwLjg1M2MzLjgwNywwLjc2Myw4LjUxNiwzLjA0MiwxNC4xMzMsNi44NTEgYzUuNjE0LDMuODA2LDEwLjIyOSw4Ljc1NCwxMy44NDYsMTQuODQyYzQuMzgsNy44MDYsOS42NTcsMTMuNzU0LDE1Ljg0NiwxNy44NDdjNi4xODQsNC4wOTMsMTIuNDE5LDYuMTM2LDE4LjY5OSw2LjEzNiBjNi4yOCwwLDExLjcwNC0wLjQ3NiwxNi4yNzQtMS40MjNjNC41NjUtMC45NTIsOC44NDgtMi4zODMsMTIuODQ3LTQuMjg1YzEuNzEzLTEyLjc1OCw2LjM3Ny0yMi41NTksMTMuOTg4LTI5LjQxIGMtMTAuODQ4LTEuMTQtMjAuNjAxLTIuODU3LTI5LjI2NC01LjE0Yy04LjY1OC0yLjI4Ni0xNy42MDUtNS45OTYtMjYuODM1LTExLjE0Yy05LjIzNS01LjEzNy0xNi44OTYtMTEuNTE2LTIyLjk4NS0xOS4xMjYgYy02LjA5LTcuNjE0LTExLjA4OC0xNy42MS0xNC45ODctMjkuOTc5Yy0zLjkwMS0xMi4zNzQtNS44NTItMjYuNjQ4LTUuODUyLTQyLjgyNmMwLTIzLjAzNSw3LjUyLTQyLjYzNywyMi41NTctNTguODE3IGMtNy4wNDQtMTcuMzE4LTYuMzc5LTM2LjczMiwxLjk5Ny01OC4yNGM1LjUyLTEuNzE1LDEzLjcwNi0wLjQyOCwyNC41NTQsMy44NTNjMTAuODUsNC4yODMsMTguNzk0LDcuOTUyLDIzLjg0LDEwLjk5NCBjNS4wNDYsMy4wNDEsOS4wODksNS42MTgsMTIuMTM1LDcuNzA4YzE3LjcwNS00Ljk0NywzNS45NzYtNy40MjEsNTQuODE4LTcuNDIxczM3LjExNywyLjQ3NCw1NC44MjMsNy40MjFsMTAuODQ5LTYuODQ5IGM3LjQxOS00LjU3LDE2LjE4LTguNzU4LDI2LjI2Mi0xMi41NjVjMTAuMDg4LTMuODA1LDE3LjgwMi00Ljg1MywyMy4xMzQtMy4xMzhjOC41NjIsMjEuNTA5LDkuMzI1LDQwLjkyMiwyLjI3OSw1OC4yNCBjMTUuMDM2LDE2LjE4LDIyLjU1OSwzNS43ODcsMjIuNTU5LDU4LjgxN2MwLDE2LjE3OC0xLjk1OCwzMC40OTctNS44NTMsNDIuOTY2Yy0zLjksMTIuNDcxLTguOTQxLDIyLjQ1Ny0xNS4xMjUsMjkuOTc5IGMtNi4xOTEsNy41MjEtMTMuOTAxLDEzLjg1LTIzLjEzMSwxOC45ODZjLTkuMjMyLDUuMTQtMTguMTgyLDguODUtMjYuODQsMTEuMTM2Yy04LjY2MiwyLjI4Ni0xOC40MTUsNC4wMDQtMjkuMjYzLDUuMTQ2IGM5Ljg5NCw4LjU2MiwxNC44NDIsMjIuMDc3LDE0Ljg0Miw0MC41Mzl2NjAuMjM3YzAsMy40MjIsMS4xOSw2LjI3OSwzLjU3Miw4LjU2MmMyLjM3OSwyLjI3OSw2LjEzNiwyLjk1LDExLjI3NiwxLjk5NSBjNDQuMTYzLTE0LjY1Myw4MC4xODUtNDEuMDYyLDEwOC4wNjgtNzkuMjI2YzI3Ljg4LTM4LjE2MSw0MS44MjUtODEuMTI2LDQxLjgyNS0xMjguOTA2IEM0MzguNTM2LDE4NC44NTEsNDI4LjcyOCwxNDguMTY4LDQwOS4xMzIsMTE0LjU3M3oiLz48L2c+PC9zdmc+\"","/********************************************************************************\n * Copyright (C) 2019 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nimport React from 'react'\nimport { Link } from 'gatsby'\nimport styled from '@emotion/styled'\nimport { breakpoints, colors } from '../utils/variables'\nimport Hamburger from '../resources/hamburger.svg'\nimport Multiply from '../resources/multiply.svg'\nimport TheiaLogoDark from '../resources/theia-logo-dark.svg'\n\nconst StyledNav = styled.div`\n @media(max-width: ${breakpoints.xmd}) {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n }\n\n .nav {\n display: flex;\n position: relative;\n padding-top: 5rem;\n margin-bottom: 2rem;\n\n @media(max-width: ${breakpoints.xmd}) {\n flex-direction: column;\n padding-top: 0;\n\n .navIsRendered {\n display: flex;\n }\n\n .navIsNotRendered {\n display: none;\n }\n\n &__header {\n display: flex;\n justify-content: space-between;\n flex: 1;\n padding: 3rem 2rem;\n }\n\n }\n\n .logo {\n height: 2.7rem;\n color: transparent;\n }\n\n &__button {\n border: none;\n background: #fff;\n color: transparent;\n transition: all .2s;\n\n &:hover,\n &:focus {\n transform: scale(1.1);\n }\n\n img {\n height: 3.5rem;\n\n @media(max-width: ${breakpoints.sm}) {\n height: 3rem;\n }\n }\n\n @media(min-width: ${breakpoints.xmd}) {\n display: none;\n }\n }\n\n &__items {\n display: flex;\n justify-content: flex-end;\n list-style: none;\n width: 100%;\n\n @media(max-width: ${breakpoints.xmd}) {\n height: 95vh;\n flex-direction: column;\n text-align: center;\n justify-content: center;\n align-items: center;\n background: white;\n }\n }\n\n &__item {\n margin-bottom: 3rem;\n\n @media(min-width: ${breakpoints.xmd}) {\n &:not(:last-child) {\n margin-right: 3rem;\n }\n }\n\n @media(max-width: ${breakpoints.xmd}) {\n width: 100vw;\n }\n }\n\n &__link {\n position: relative;\n width: 100%;\n text-decoration: none;\n color: ${colors.greyOne};\n display: block;\n padding-bottom: .8rem;\n\n &::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n right: 100%;\n left: 0;\n border-bottom: 2px solid ${colors.greyOne};\n transition: all .4s cubic-bezier(0,.5,0, 1);\n\n @media(max-width: ${breakpoints.xmd}) {\n display: none;\n }\n }\n\n &:hover,\n &:focus {\n color: ${colors.blue};\n\n @media(max-width: ${breakpoints.xmd}) {\n transform: scale(1.2);\n }\n\n &::after {\n right: 0;\n border-color: ${colors.blue};\n }\n }\n }\n &__dropdown {\n cursor: pointer;\n \n &:hover .dropdown-menu,\n &:focus .dropdown-menu {\n visibility: visible;\n opacity: 1;\n }\n }\n }\n .active {\n color: ${colors.blue};\n }\n .dropdown-menu {\n visibility: hidden;\n opacity: 0;\n min-width: 15rem;\n margin-top: 1rem;\n position: relative;\n background-color: #fff;\n padding: 1rem 0;\n z-index: 2;\n @media(min-width: ${breakpoints.xmd}) {\n box-shadow: 0 6px 12px rgb(0 0 0 / 18%);\n left: -25%;\n }\n }\n .dropdown-menu li {\n padding: 0.5rem 1rem;\n list-style: none;\n }\n .caret {\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px dashed;\n display: inline-block;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n width: 0;\n }\n`\n\nclass Nav extends React.Component {\n\n state = {\n isNavRendered: false,\n }\n\n toggleNavigation = () => {\n this.setState({ isNavRendered: !this.state.isNavRendered })\n }\n\n render() {\n const { shouldRenderLogo } = this.props\n return (\n \n \n \n )\n }\n}\n\nexport default Nav\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiBmaWxsPSIjMzgzODM4IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzMS4xMTIgMzEuMTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMS4xMTIgMzEuMTEyIj48cG9seWdvbiBwb2ludHM9IjMxLjExMiAxLjQxNCAyOS42OTggMCAxNS41NTYgMTQuMTQyIDEuNDE0IDAgMCAxLjQxNCAxNC4xNDIgMTUuNTU2IDAgMjkuNjk4IDEuNDE0IDMxLjExMiAxNS41NTYgMTYuOTcgMjkuNjk4IDMxLjExMiAzMS4xMTIgMjkuNjk4IDE2Ljk3IDE1LjU1NiIvPjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjEyIiBoZWlnaHQ9IjYxMiIgeD0iMCIgeT0iMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjEyIDYxMiIgZmlsbD0iIzM4MzgzOCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNjEyIDYxMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGc+PGc+PGc+PHBhdGggZD0iTTAsOTUuNjI1djM4LjI1aDYxMnYtMzguMjVIMHogTTAsMzI1LjEyNWg2MTJ2LTM4LjI1SDBWMzI1LjEyNXogTTAsNTE2LjM3NWg2MTJ2LTM4LjI1SDBWNTE2LjM3NXoiLz48L2c+PC9nPjwvZz48L3N2Zz4=\"","/********************************************************************************\n * Copyright (C) 2019 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nimport { useStaticQuery, graphql } from 'gatsby'\n\nconst useSiteMetadata = () => {\n const data = useStaticQuery(graphql`\n {\n site {\n siteMetadata {\n title\n description\n }\n }\n }\n `)\n\n return data.site.siteMetadata\n}\n\nexport default useSiteMetadata","import React from 'react'\nimport useSiteMetadata from '../hooks/use-site-metadata'\nimport AppleTouchIcon from '../resources/apple-touch-icon.png'\nimport Favicon from '../resources/theia-favicon.svg'\nimport Favicon196 from '../resources/theia-favicon-196x196.png'\n\nconst BaseHead = ({ canonical }) => {\n const { title, description } = useSiteMetadata()\n return (\n <>\n \n {title}\n \n \n \n {canonical && }\n \n \n \n \n \n \n )\n}\n\nexport default BaseHead\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBkPSJNMzkyLjQgMTM2LjVjNjYuMSAwIDExOS42IDUzLjUgMTE5LjYgMTE5LjYgMCA2Ni01My41IDExOS42LTExOS42IDExOS42SDEyOC43Yy05LjQgMC0xNy4xLTcuNi0xNy4xLTE3LjEgMC05LjQgNy42LTE3LjEgMTcuMS0xNy4xaDYxLjRjOS40IDAgMTctNy42IDE3LTE3LjFzLTcuNi0xNy4xLTE3LTE3LjFoLTEzLjdjLTkuNCAwLTE3LjEtNy42LTE3LjEtMTcuMSAwLTkuNCA3LjYtMTcuMSAxNy4xLTE3LjFoNDFjOS41IDAgMTYuOC03LjggMTcuMS0xNy4xIDAtOS40LTcuNi0xNy4xLTE3LjEtMTcuMUg3NGMtOS40IDAtMTcuMS03LjYtMTcuMS0xNy4xIDAtOS40IDcuNi0xNy4xIDE3LjEtMTcuMWgxMDUuOGM5LjUgMCAxNi44LTcuOCAxNy4xLTE3LjEgMC05LjQtNy42LTE3LjEtMTcuMS0xNy4xSDE1NmMtOS40IDAtMTcuMS03LjYtMTcuMS0xNy4xIDAtOS40IDcuNi0xNy41IDE3LjEtMTcuNWwyMzYuNC42em0tMTkuMSAzOS44Yy0zNi43IDAtNjYuNCAyOS44LTY2LjQgNjYuNHYyNi42YzAgMzYuNyAyOS43IDY2LjQgNjYuNCA2Ni40czY2LjQtMjkuNyA2Ni40LTY2LjR2LTI2LjZjMC0zNi42LTI5LjgtNjYuNC02Ni40LTY2LjR6bTIyLjcgNjIuOWM4LjggMCAxNiA3LjIgMTYgMTZ2Mi4xYzAgOC44LTcuMiAxNi0xNiAxNmgtNDkuOWMtOC44IDAtMTYtNy4yLTE2LTE2di0yLjFjMC04LjggNy4yLTE2IDE2LTE2SDM5NnpNNzUuMSAzNDEuNmM4LjkgMCAxNiA3LjEgMTYgMTZ2Mi4xYzAgOC44LTcuMSAxNi0xNiAxNkgxNmMtOC44IDAtMTYtNy4yLTE2LTE2di0yLjFjMC04LjkgNy4yLTE2IDE2LTE2aDU5LjF6Ii8+PHBhdGggZD0iTTEwMi40IDEzNi43YzguOCAwIDE2IDcuMiAxNiAxNnYyLjFjMCA4LjgtNy4xIDE2LTE2IDE2SDM2LjVjLTguOCAwLTE2LTcuMS0xNi0xNnYtMi4xYzAtOC44IDcuMi0xNiAxNi0xNmg2NS45ek0xMjIuOSAyNzMuM2M4LjggMCAxNiA3LjIgMTYgMTZ2Mi4xYzAgOC44LTcuMiAxNi0xNiAxNkg4Ni43Yy04LjggMC0xNi03LjItMTYtMTZ2LTIuMWMwLTguOCA3LjItMTYgMTYtMTZoMzYuMnoiLz48L3N2Zz4=\"","/********************************************************************************\n * Copyright (C) 2019 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nimport React from 'react'\nimport { Global, css } from '@emotion/react'\nimport { fontSizes, colors, grid, breakpoints } from '../utils/variables'\nconst Layout = ({ children }) => (\n <>\n \n <>\n {children}\n \n \n)\n\nexport default Layout\n","/********************************************************************************\n * Copyright (C) 2019 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nexport const colors = {\n greyOne: '#383838',\n blue: '#0000f8',\n lightBlue: '#0074D9'\n}\n\nexport const fontSizes = {\n default: '1.5rem',\n}\n\nexport const grid = {\n maxWidth: '114rem',\n}\n\nexport const breakpoints = {\n sm: '34rem',\n xmd: '50rem',\n md: '70rem',\n}","export default __webpack_public_path__ + \"static/background-image-bae6db106e3819854309162f02f1b13a.png\";","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzODUxLjM1IDU0MC42Ij48ZyBpZD0iTGF5ZXJfMSIgZmlsbD0iIzAwMDAwIj48cGF0aCBkPSJNMzYzNS4xMjMsMy45MTIgQzM2MzUuMTI0LDMuOTEyIDM2NTguNjIsMy45MTIgMzY2OC40MzUsMTEuMSBDMzY2OC40MzUsMTEuMSAzNjc4LjI5OSwxOC4yODggMzY4NS44ODMsNDAuMjQ3IEwzODUwLjIwOCw1MTkuNjg4IEMzODUwLjIwOCw1MTkuNjg4IDM4NTIuNDg4LDUyNS43MzYgMzg1MC42MDQsNTMwLjY5MyBDMzg1MC42MDQsNTMwLjY5MyAzODQ4LjcyMSw1MzUuNiAzODQwLjM0Myw1MzUuNiBMMzc3MC42OTcsNTM1LjYgQzM3NzAuNjk4LDUzNS42IDM3NjIuMzcsNTM1LjYgMzc1Ny40NjIsNTMzLjcxNyBDMzc1Ny40NjIsNTMzLjcxNyAzNzUyLjUwNSw1MzEuODMzIDM3NDkuNDgxLDUyMy41MDUgTDM3MTYuMTcsNDE5Ljc1NSBMMzUyMy43ODksNDE5Ljc1NSBMMzQ5MC40NzgsNTIyLjcxMiBDMzQ5MC40NzgsNTIyLjcxMiAzNDg4LjE5OCw1MjkuNTUzIDM0ODQuMDM0LDUzMi41NzYgQzM0ODQuMDM0LDUzMi41NzYgMzQ3OS44Nyw1MzUuNiAzNDcwLjc5OSw1MzUuNiBMMzQwMS4xMDMsNTM1LjYgQzM0MDEuMTA0LDUzNS42IDMzOTIuNzc2LDUzNS42IDMzOTAuNDk2LDUzMC42OTMgQzMzOTAuNDk2LDUzMC42OTMgMzM4OC4yNjUsNTI1LjczNiAzMzkwLjQ5Niw1MTkuNjg4IEwzNTU0LjA3Niw0MC4yNDcgQzM1NTQuMDc2LDQwLjI0NyAzNTU3Ljg5MywyOC44OTYgMzU2MS42NjEsMjIuMTA1IEMzNTYxLjY2MSwyMi4xMDUgMzU2NS40NzgsMTUuMjY0IDM1NzEuMTI5LDExLjQ5NyBDMzU3MS4xMjksMTEuNDk3IDM1NzYuODI5LDcuNjggMzU4NC40MTMsNS43OTYgQzM1ODQuNDEzLDUuNzk2IDM1OTEuOTQ4LDMuOTEyIDM2MDIuNTU2LDMuOTEyIEwzNjM1LjEyMywzLjkxMiB6IE0zNjIwLjc0OCwxMDYuMTc1IEwzNjE2Ljk4MSwxMDYuMTc1IEwzNTg1LjksMjExLjM2MyBMMzU0Ni41NDIsMzQwLjc0MSBMMzY5MS45MzEsMzQwLjc0MSBMMzY1Mi41NzIsMjEzLjU5MyBMMzYyMC43NDgsMTA2LjE3NSB6Ii8+PHBhdGggZD0iTTIwNzEuMjA5LDUuMzUgQzIwNzEuMjA5LDUuMzUgMjA4MS44MTcsNS4zNSAyMDg1LjU4NCw4LjAyNyBDMjA4NS41ODQsOC4wMjcgMjA4OS4zNTIsMTAuNjU0IDIwODkuMzUyLDIxLjI2MiBMMjA4OS4zNTEsMjE3LjY1OCBMMjMyNC45MDgsMjE3LjY1OCBMMjMyNC45MDgsMjEuMjYyIEMyMzI0LjkwOCwyMS4yNjIgMjMyNC45MDgsMTEuMzk3IDIzMjkuMTIyLDguMzc0IEMyMzI5LjEyMiw4LjM3NCAyMzMzLjI4NSw1LjM1IDIzNDIuMzU3LDUuMzUgTDI0MDAuMDU2LDUuMzUgQzI0MDAuMDU2LDUuMzUgMjQxMC42NjQsNS4zNSAyNDE0LjA4NCw4LjAyNyBDMjQxNC4wODQsOC4wMjcgMjQxNy41MDUsMTAuNjU0IDI0MTcuNTA1LDIxLjI2MiBMMjQxNy41MDUsNTE5LjY4OCBDMjQxNy41MDUsNTE5LjY4OCAyNDE3LjUwNSw1MzAuMjk2IDI0MTQuMDg0LDUzMi45NzMgQzI0MTQuMDg0LDUzMi45NzMgMjQxMC42NjQsNTM1LjYgMjQwMC4wNTYsNTM1LjYgTDIzNDIuMzU2LDUzNS42IEMyMzQyLjM1Nyw1MzUuNiAyMzMzLjI4NSw1MzUuNiAyMzI5LjEyMiw1MzIuNTc2IEMyMzI5LjEyMiw1MzIuNTc2IDIzMjQuOTA4LDUyOS41NTMgMjMyNC45MDgsNTE5LjY4OCBMMjMyNC45MDgsMjk3LjExOSBMMjA4OS4zNTEsMjk3LjExOSBMMjA4OS4zNTEsNTE5LjY4OCBDMjA4OS4zNTIsNTE5LjY4OCAyMDg5LjM1Miw1MzAuMjk2IDIwODUuNTg0LDUzMi45NzMgQzIwODUuNTg0LDUzMi45NzMgMjA4MS44MTcsNTM1LjYgMjA3MS4yMDksNTM1LjYgTDIwMTMuNzA3LDUzNS42IEMyMDEzLjcwOCw1MzUuNiAyMDA1LjM4LDUzNS42IDIwMDAuODY5LDUzMi41NzYgQzIwMDAuODY5LDUzMi41NzYgMTk5Ni4zMDksNTI5LjU1MyAxOTk2LjMwOSw1MTkuNjg4IEwxOTk2LjMwOCwyMS4yNjIgQzE5OTYuMzA5LDIxLjI2MiAxOTk2LjMwOSwxMS4zOTcgMjAwMC44NjksOC4zNzQgQzIwMDAuODY5LDguMzc0IDIwMDUuMzgsNS4zNSAyMDEzLjcwOCw1LjM1IEwyMDcxLjIwOSw1LjM1IHoiLz48cGF0aCBkPSJNMTg0MC40MTEsNS4zNSBDMTg0MC40MTEsNS4zNSAxODQ4LjczOSw1LjM1IDE4NTEuNDE2LDguMzc0IEMxODUxLjQxNiw4LjM3NCAxODU0LjA0MywxMS40NDcgMTg1NC4wNDMsMTkuNzc1IEwxODU0LjA0Myw3Mi4xNyBDMTg1NC4wNDMsNzIuMTcgMTg1NC4wNDMsNzkuNzU1IDE4NTEuNDE2LDgyLjc3OCBDMTg1MS40MTYsODIuNzc4IDE4NDguNzM5LDg1LjgwMiAxODQwLjQxMSw4NS44MDIgTDE2OTYuNTU5LDg1LjgwMiBMMTY5Ni41NTksNTE5LjY4OCBDMTY5Ni41NTksNTE5LjY4OCAxNjk2LjU1OSw1MzAuMjk2IDE2OTMuMTM5LDUzMi45NzMgQzE2OTMuMTM5LDUzMi45NzMgMTY4OS43MTgsNTM1LjYgMTY3OS4xMSw1MzUuNiBMMTYxOS45MjQsNTM1LjYgQzE2MTkuOTI0LDUzNS42IDE2MTAuODUzLDUzNS42IDE2MDYuNjg5LDUzMi41NzYgQzE2MDYuNjg5LDUzMi41NzYgMTYwMi41MjUsNTI5LjU1MyAxNjAyLjUyNSw1MTkuNjg4IEwxNjAyLjUyNSw4NS44MDIgTDE0NjEuNjQ3LDg1LjgwMiBDMTQ2MS42NDcsODUuODAyIDE0NTMuMzE5LDg1LjgwMiAxNDUxLjAzOSw4Mi43NzggQzE0NTEuMDM5LDgyLjc3OCAxNDQ4Ljc1OSw3OS43NTUgMTQ0OC43NTksNzIuMTcgTDE0NDguNzU4LDE5Ljc3NSBDMTQ0OC43NTksMTkuNzc1IDE0NDguNzU5LDExLjQ0NyAxNDUxLjAzOSw4LjM3NCBDMTQ1MS4wMzksOC4zNzQgMTQ1My4zMTksNS4zNSAxNDYxLjY0Nyw1LjM1IEwxODQwLjQxMSw1LjM1IHoiLz48cGF0aCBkPSJNODgxLjA5OSwyLjIgQzEwMjksMi4yIDExNDguOCwxMjIgMTE0OC44LDI2OS45IEMxMTQ4LjgsNDE3LjcgMTAyOSw1MzcuNiA4ODEuMSw1MzcuNiBMMjkxLDUzNy42IEMyNjkuOSw1MzcuNiAyNTIuOCw1MjAuNSAyNTIuOCw0OTkuNCBDMjUyLjgsNDc4LjMgMjY5LjksNDYxLjIgMjkxLDQ2MS4yIEw0MjguNSw0NjEuMiBDNDQ5LjUsNDYxLjIgNDY2LjYsNDQ0LjEgNDY2LjYsNDIzIEM0NjYuNiw0MDEuOSA0NDkuNSwzODQuOCA0MjguNSwzODQuOCBMMzk3Ljg5OSwzODQuOCBDMzc2LjgsMzg0LjggMzU5LjcsMzY3LjcgMzU5LjcsMzQ2LjYgQzM1OS43LDMyNS41IDM3Ni44LDMwOC40IDM5Ny45LDMwOC40IEw0ODkuNjAzLDMwOC40IEM1MTAuODE4LDMwOC4zNDEgNTI3LjI3MywyOTEuMDUgNTI3LjgsMjcwLjIgQzUyNy44LDI0OS4xIDUxMC43LDIzMiA0ODkuNiwyMzIgTDE2OC43LDIzMiBDMTQ3LjYsMjMyIDEzMC41LDIxNC45IDEzMC41LDE5My44IEMxMzAuNSwxNzIuNyAxNDcuNiwxNTUuNiAxNjguNywxNTUuNiBMNDA1LjUwNCwxNTUuNiBDNDI2LjcxOCwxNTUuNTQxIDQ0My4xNzMsMTM4LjI1IDQ0My43LDExNy40IEM0NDMuNyw5Ni4zIDQyNi42LDc5LjIgNDA1LjUsNzkuMiBMMzUyLjEsNzkuMiBDMzMxLDc5LjIgMzEzLjksNjIuMSAzMTMuOSw0MSBDMzEzLjksMTkuOSAzMzEsMS44IDM1Mi4xLDEuOCBMODgxLjA5OSwyLjIgeiBNODM4LjMsOTEuNCBMODM4LjMsOTEuNCBDNzU2LjEsOTEuNCA2ODkuNiwxNTggNjg5LjYsMjQwLjEgTDY4OS42LDI5OS42IEM2ODkuNiwzODEuOCA3NTYuMSw0NDguMyA4MzguMyw0NDguMyBDOTIwLjQsNDQ4LjMgOTg3LDM4MS44IDk4NywyOTkuNiBMOTg3LDI0MC4xIEM5ODcsMTU4IDkyMC40LDkxLjQgODM4LjMsOTEuNCBMODM4LjMsOTEuNCB6IE04ODkuMSwyMzIgQzkwOC45LDIzMiA5MjUsMjQ4LjEgOTI1LDI2Ny45IEw5MjUsMjcyLjUgQzkyNSwyOTIuMyA5MDguOSwzMDguNCA4ODkuMSwzMDguNCBMNzc3LjUsMzA4LjQgQzc1Ny43LDMwOC40IDc0MS42LDI5Mi4zIDc0MS42LDI3Mi41IEw3NDEuNiwyNjcuOSBDNzQxLjYsMjQ4LjEgNzU3LjcsMjMyIDc3Ny41LDIzMiBMODg5LjEsMjMyIHoiLz48cGF0aCBkPSJNMTcxLDQ2MS4yIEMxOTAuOSw0NjEuMiAyMDYuOSw0NzcuMiAyMDYuOSw0OTcuMSBMMjA2LjksNTAxLjcgQzIwNi45LDUyMS41IDE5MC45LDUzNy42IDE3MSw1MzcuNiBMMzguOSw1MzcuNiBDMTkuMSw1MzcuNiAzLDUyMS41IDMsNTAxLjcgTDMsNDk3LjEgQzMsNDc3LjIgMTkuMSw0NjEuMiAzOC45LDQ2MS4yIEwxNzEsNDYxLjIgeiIvPjxwYXRoIGQ9Ik0yOTUyLjkwNCw0Ljg1NCBDMjk1Mi45MDUsNC44NTQgMjk2Mi43MTksNC44NTQgMjk2NS4zOTYsOS4wNjggQzI5NjUuMzk2LDkuMDY4IDI5NjguMDIzLDEzLjIzMiAyOTY4LjAyMywyMi4zMDMgTDI5NjguMDIzLDcwLjA4OCBDMjk2OC4wMjMsNzAuMDg4IDI5NjguMDIzLDc5Ljk1MyAyOTY1LjM5Niw4My4zNzMgQzI5NjUuMzk2LDgzLjM3MyAyOTYyLjcxOSw4Ni43OTMgMjk1Mi45MDUsODYuNzkzIEwyNzUxLjQ1Miw4Ni43OTMgQzI3NTEuNDUyLDg2Ljc5MyAyNzIyLjY1Miw4Ni43OTMgMjcxMC45MDQsOTkuNjMyIEMyNzEwLjkwNCw5OS42MzIgMjY5OS4yMDUsMTEyLjUyIDI2OTkuMjA1LDEzNi43MSBMMjY5OS4yMDUsMjE2LjE3MSBMMjkyNy44NzIsMjE2LjE3MSBDMjkyNy44NzIsMjE2LjE3MSAyOTM3LjczNiwyMTYuMTcxIDI5NDAuNDEzLDIxOS45ODggQzI5NDAuNDEzLDIxOS45ODggMjk0My4wNCwyMjMuNzU1IDI5NDMuMDQsMjM0LjMxNCBMMjk0My4wNCwyNzUuOTAzIEMyOTQzLjA0LDI3NS45MDMgMjk0My4wNCwyODQuOTc0IDI5NDAuNDEzLDI4OS4wODkgQzI5NDAuNDEzLDI4OS4wODkgMjkzNy43MzYsMjkzLjI1MiAyOTI3Ljg3MiwyOTMuMjUyIEwyNjk5LjIwNSwyOTMuMjUyIEwyNjk5LjIwNSw0MDMuOTQyIEMyNjk5LjIwNSw0MDMuOTQyIDI2OTkuMjA1LDQyOC4xODIgMjcxMS42OTcsNDQwLjY3NCBDMjcxMS42OTcsNDQwLjY3NCAyNzI0LjE4OCw0NTMuMjE1IDI3NTEuNDUyLDQ1My4yMTUgTDI5NTcuNDE1LDQ1My4yMTUgQzI5NTcuNDE1LDQ1My4yMTUgMjk2OC4wMjMsNDUzLjIxNSAyOTcwLjcsNDU2Ljk4MiBDMjk3MC43LDQ1Ni45ODIgMjk3My4zMjcsNDYwLjc0OSAyOTczLjMyNyw0NzEuMzU3IEwyOTczLjMyNyw1MTguMjAxIEMyOTczLjMyNyw1MTguMjAxIDI5NzMuMzI3LDUyNi41MjkgMjk3MC4zMDMsNTMxLjA0IEMyOTcwLjMwMyw1MzEuMDQgMjk2Ny4yOCw1MzUuNiAyOTU3LjQxNSw1MzUuNiBMMjc0MS41ODcsNTM1LjYgQzI3NDEuNTg4LDUzNS42IDI3MDEuNDM2LDUzNS42IDI2NzUuNjU5LDUyNC4yNDkgQzI2NzUuNjU5LDUyNC4yNDkgMjY0OS44ODMsNTEyLjg5NyAyNjM0LjMxOCw0OTMuOTYxIEMyNjM0LjMxOCw0OTMuOTYxIDI2MTguNzUzLDQ3NS4wMjYgMjYxMi43MDYsNDUwLjc4NiBDMjYxMi43MDYsNDUwLjc4NiAyNjA2LjYwOCw0MjYuNTk2IDI2MDYuNjA4LDQwMC4wNzYgTDI2MDYuNjA4LDE0MS4xNzIgQzI2MDYuNjA4LDE0MS4xNzIgMjYwNi42MDgsMTE0LjY1MiAyNjEzLjc5Niw5MC4wNjUgQzI2MTMuNzk2LDkwLjA2NSAyNjIxLjAzMyw2NS40MjkgMjYzNy4zNDIsNDYuNDkzIEMyNjM3LjM0Miw0Ni40OTMgMjY1My42NSwyNy42MDcgMjY3OS40MjcsMTYuMjA2IEMyNjc5LjQyNywxNi4yMDYgMjcwNS4yNTMsNC44NTQgMjc0MS41ODgsNC44NTQgTDI5NTIuOTA0LDQuODU0IHoiLz48cGF0aCBkPSJNMzIxOS4zMjgsNS4zNSBDMzIxOS4zMjgsNS4zNSAzMjI5Ljg4Nyw1LjM1IDMyMzMuNzA0LDguMDI3IEMzMjMzLjcwNCw4LjAyNyAzMjM3LjQ3MSwxMC42NTQgMzIzNy40NzEsMjEuMjYyIEwzMjM3LjQ3MSw1MTkuNjg4IEMzMjM3LjQ3MSw1MTkuNjg4IDMyMzcuNDcxLDUzMC4yOTYgMzIzMy43MDQsNTMyLjk3MyBDMzIzMy43MDQsNTMyLjk3MyAzMjI5Ljg4Nyw1MzUuNiAzMjE5LjMyOCw1MzUuNiBMMzE2MS44MjcsNTM1LjYgQzMxNjEuODI3LDUzNS42IDMxNTIuNzU2LDUzNS42IDMxNDguNTkyLDUzMi41NzYgQzMxNDguNTkyLDUzMi41NzYgMzE0NC40MjgsNTI5LjU1MyAzMTQ0LjQyOCw1MTkuNjg4IEwzMTQ0LjQyOCwyMS4yNjIgQzMxNDQuNDI4LDIxLjI2MiAzMTQ0LjQyOCwxMS4zOTcgMzE0OC41OTIsOC4zNzQgQzMxNDguNTkyLDguMzc0IDMxNTIuNzU2LDUuMzUgMzE2MS44MjcsNS4zNSBMMzIxOS4zMjgsNS4zNSB6Ii8+PHBhdGggZmlsbD0iIzAwMDAwIiBkPSJNMjMyLjIsMi44IEMyNTIsMi44IDI2OCwxOC45IDI2OCwzOC43IEwyNjgsNDMuNCBDMjY4LDYzLjIgMjUyLDc5LjIgMjMyLjIsNzkuMiBMODQuNyw3OS4yIEM2NC45LDc5LjIgNDguOCw2My4yIDQ4LjgsNDMuNCBMNDguOCwzOC43IEM0OC44LDE4LjkgNjQuOSwyLjggODQuNywyLjggTDIzMi4yLDIuOCB6Ii8+PHBhdGggZD0iTTI3OCwzMDguNCBDMjk3LjgsMzA4LjQgMzEzLjksMzI0LjUgMzEzLjksMzQ0LjMgTDMxMy45LDM0OC45IEMzMTMuOSwzNjguNyAyOTcuOCwzODQuOCAyNzgsMzg0LjggTDE5NywzODQuOCBDMTc3LjIsMzg0LjggMTYxLjEsMzY4LjcgMTYxLjEsMzQ4LjkgTDE2MS4xLDM0NC4zIEMxNjEuMSwzMjQuNSAxNzcuMiwzMDguNCAxOTcsMzA4LjQgTDI3OCwzMDguNCB6Ii8+PC9nPjwvc3ZnPg==\""],"names":["reactPropsRegex","isPropValid","prop","test","charCodeAt","testOmitPropsOnStringTag","testOmitPropsOnComponent","key","getDefaultShouldForwardProp","tag","composeShouldForwardProps","options","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","Insertion","_ref","cache","serialized","isStringTag","createStyled","identifierName","targetClassName","__emotion_real","baseTag","__emotion_base","undefined","label","target","defaultShouldForwardProp","shouldUseAs","args","arguments","styles","__emotion_styles","slice","push","raw","apply","len","length","i","Styled","w","props","ref","FinalTag","as","className","classInterpolations","mergedProps","theme","T","registered","concat","name","finalShouldForwardProp","newProps","_key","displayName","defaultProps","Object","defineProperty","value","withComponent","nextTag","nextOptions","StyledFooter","_styled","background","___EmotionJSX","role","style","Background","href","rel","src","alt","Date","getFullYear","StyledNav","breakpoints","xmd","sm","colors","greyOne","blue","Nav","_React$Component","_this","_len","Array","call","state","isNavRendered","toggleNavigation","setState","_inheritsLoose","prototype","render","shouldRenderLogo","this","height","Link","to","TheiaLogoDark","onClick","activeClassName","React","useSiteMetadata","useStaticQuery","site","siteMetadata","canonical","title","description","lang","content","type","sizes","children","Global","css","md","fontSizes","default","lightBlue","grid","maxWidth"],"sourceRoot":""} \ No newline at end of file diff --git a/pr-previews/pr-673/component---src-pages-404-js-1c97c66d7998fb40d048.js b/pr-previews/pr-673/component---src-pages-404-js-1c97c66d7998fb40d048.js new file mode 100644 index 00000000..f8991b71 --- /dev/null +++ b/pr-previews/pr-673/component---src-pages-404-js-1c97c66d7998fb40d048.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkTheia_Website=self.webpackChunkTheia_Website||[]).push([[125],{3432:function(M,L,N){N.r(L),N.d(L,{Head:function(){return s},default:function(){return O}});var D=N(644),j=(N(6540),N(8660)),T=N(7361),u=N(9620),w=N(1919),y=N(7518),i=N(4810),z=N(5226),t=N(7437);const x=(0,D.A)("div",{target:"e18934id0"})("background-image:url(",T.A,");background-size:cover;background-repeat:no-repeat;border-bottom:10px solid #f8f8f8;main{margin-top:15rem;text-align:center;@media(min-width: ",w.fi.md,"){min-height:80vh;}}img{display:inline-block;height:18rem;border-bottom:2px solid;@media(max-width: ",w.fi.md,"){height:15rem;}@media(max-width: ",w.fi.sm,"){height:10rem;}}h1{font-size:6rem;}p{margin-bottom:1.5rem;}"),s=z.A;var O=()=>(0,t.Y)(j.A,null,(0,t.Y)(x,null,(0,t.Y)("div",{className:"row"},(0,t.Y)(y.A,{shouldRenderLogo:!0}),(0,t.Y)("main",null,(0,t.Y)("div",null,(0,t.Y)("img",{src:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3MTguMDYxIiBoZWlnaHQ9IjMxMS4zMzMiIHZpZXdCb3g9IjAgMCA3MTguMDYxIDMxMS4zMzMiPjxnIGRhdGEtbmFtZT0iR3J1cHBlIDI2Ij48cGF0aCBkYXRhLW5hbWU9IlZlcmVpbmlndW5nc21lbmdlIDMiIGQ9Ik0tOTg3MC4xNzMsMjUuNDU4bDQuOS0xNi4wMjgsMjguOSw4LjgzNUwtOTgyNS42NS0xNi44bC03OS45OTMtMjQuNDU5LDQuOTgzLTE2LjMsMTA4Ljk3MS04OC40NTUsMjMuODM2LDcuMjg1TC05ODAxLjktMjcuMzYxbDI4LjksOC44MzUtNC45ODIsMTYuMy0yOC45LTguODM4TC05ODE3LjYwNSwyNGwyOC45LDguODM4LTQuOSwxNi4wMjVaTS05ODgwLjgtNTEuNDgzbDYwLjEzMywxOC4zODQsMjcuMjY0LTg5LjE3M1ptLTMxMi44LDYzLjU0OCwyOC43NDQtOS4zMzgtMTEuMzMxLTM0Ljg3Ni03OS41NTgsMjUuODUtNS4yNjYtMTYuMjExLDM4LjUyOS0xMzQuOTYyLDIzLjctNy43LDM1Ljk4NSwxMTAuNzUxLDI4Ljc0NC05LjM0LDUuMjY3LDE2LjIxMS0yOC43NDIsOS4zNCwxMS4zMzEsMzQuODczLDI4Ljc0NC05LjM0LDUuMTc5LDE1LjkzOC03Ni4xNSwyNC43NDVabS00Ny42NTktNDAuOTkyLDU5LjgtMTkuNDMyLTI4LjgxMy04OC42ODFabTE5NC42LjkwNnEtMTguMDYyLTcuNjY4LTI3LjQ5Mi0yMC40NjJhNjUuNzMzLDY1LjczMywwLDAsMS0xMi4wNy0yOC4zODYsOTMuMzY5LDkzLjM2OSwwLDAsMSwuNjkzLTMzLjE2MSwxNzAuMzcxLDE3MC4zNzEsMCwwLDEsMTAuNjY2LTM0Ljg0LDE2MS41MzYsMTYxLjUzNiwwLDAsMSwxNy44NTItMzEuNzkzLDk5LjcsOTkuNywwLDAsMSwyMy41Ni0yMy42MDksNjQuNjA3LDY0LjYwNywwLDAsMSwyOC43OTQtMTEuMnExNS43NTEtMi4xMDUsMzMuNTUyLDUuNDUydDI3LjIyOSwyMC4zNDlhNjUuODc0LDY1Ljg3NCwwLDAsMSwxMi4wOCwyOC41NDYsOTUuMjExLDk1LjIxMSwwLDAsMS0uNjE4LDMzLjM0OSwxNjcuMjUxLDE2Ny4yNTEsMCwwLDEtMTAuNiwzNC44NywxNjcuMjczLDE2Ny4yNzMsMCwwLDEtMTcuNzIxLDMxLjg0NSw5NS40MDcsOTUuNDA3LDAsMCwxLTIzLjM3MiwyMy41MzUsNjUuMDQ3LDY1LjA0NywwLDAsMS0yOC43MzYsMTEuMDY2LDUyLDUyLDAsMCwxLTYuODk0LjQ1M1EtMTAwMzIuNS0yMi0xMDA0Ni42NjgtMjguMDJabS0yMC43NjQtNTQuMDk0cTMuMjA3LDI4Ljc0MywyNy4yLDM4LjkzMSwyMi42NzksOS42MjYsNDMuNTcyLTQuNzY5dDM1LjQ0NC00OC42NzZhMTQxLjIzOCwxNDEuMjM4LDAsMCwwLDYuNDUxLTE4LjUsMTQyLjQsMTQyLjQsMCwwLDAsMy42MTUtMTcuNjg0Wm00NS44NjktMTAzLjg0N3EtMjAuNjkyLDE0LjQ3OC0zNS4yNDYsNDguNzU4YTE0Ni4yNTMsMTQ2LjI1MywwLDAsMC0xMC42MDcsMzcuODIybDExNi42NTgtNTAuODQ3cS0xLjI5MS0xNC41NTUtNy45LTI0LjgyN2E0MC44NTksNDAuODU5LDAsMCwwLTE5LTE1LjUzNiw0Ni44NDMsNDYuODQzLDAsMCwwLTE4LjM3OS0zLjk4OFEtMTAwMDkuMjQ1LTE5NC41OC0xMDAyMS41NjItMTg1Ljk2MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02MDEuMDAxIC0zNTcuNjY4KSB0cmFuc2xhdGUoMTA5NzQuMDE1IDU3MC4wOTYpIiBmaWxsPSIjMmUyZTJlIiBzdHJva2U9InJnYmEoMCwwLDAsMCkiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPjxwYXRoIGRhdGEtbmFtZT0iVmVyZWluaWd1bmdzbWVuZ2UgNCIgZD0iTS0xMDMxNC0xMTguOTY0aDBabTU5My45MTctMTguNDQ4LDIwLjc2OC4yNTZaTS05ODE0LjYtMTQ5LjVsNDQuNDEzLDEyLjA5MVptLTM3Mi4yNjQuMDA1LDczLjg4OCw5Ljk4MVptMTY3LjMyOSwzLjU5LTQ4LjM5MiwzLjAxNlptMzM5LjAxNS0yMS45LTM4Ljk1NiwyMi4xWm0tMTEzLjE0OSw3LjQzMiwyMS44OCwxMC40MTlabTgzLjA2Mi04LjAxNC0xMy41MiwxNS40NzFabS0zMjIuNTQyLDEuODIyLTIxLjg2NywxMC40NVptLTExNi43ODQtLjEyNywyMS44NzgsMTAuNDE5Wm0xMTkuMDM2LTM1LjcyMS00MS4wNzQsMzcuMjgyWm04NC4yNTUtMTUuOTA5LDM5Ljc4NywxLjcyN1ptMjAuOC0xNS42ODQtMTMuNzg4LDUuODc4WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYwMS4wMDEgLTM1Ny42NjgpIHRyYW5zbGF0ZSgxMDkxNi41MDIgNzg2LjQ2NCkiIGZpbGw9InJnYmEoMCwwLDAsMCkiIHN0cm9rZT0iIzJlMmUyZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiLz48L2c+PC9zdmc+",alt:"404"}),(0,t.Y)("h1",null,"Oops!"),(0,t.Y)("p",null,"We can't find the page you're looking for"),(0,t.Y)(i.N_,{to:"/",className:"btn"},"Back to Home ย โ†’"))))),(0,t.Y)(u.A,null))}}]); +//# sourceMappingURL=component---src-pages-404-js-1c97c66d7998fb40d048.js.map \ No newline at end of file diff --git a/pr-previews/pr-673/component---src-pages-404-js-1c97c66d7998fb40d048.js.map b/pr-previews/pr-673/component---src-pages-404-js-1c97c66d7998fb40d048.js.map new file mode 100644 index 00000000..a40fe3fa --- /dev/null +++ b/pr-previews/pr-673/component---src-pages-404-js-1c97c66d7998fb40d048.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-404-js-1c97c66d7998fb40d048.js","mappings":"iSA4BA,MAAMA,GAAkBC,EAAAA,EAAAA,GAAA,OAAAC,OAAA,aAAAD,CAAA,wBACIE,EAAAA,EAAU,kJASVC,EAAAA,GAAYC,GAAE,uGAUdD,EAAAA,GAAYC,GAAE,qCAIdD,EAAAA,GAAYE,GAAE,gEAc7BC,EAAOC,EAAAA,EAsBpB,MAnBqBC,KACjBC,EAAAA,EAAAA,GAACC,EAAAA,EAAM,MACHD,EAAAA,EAAAA,GAACV,EAAkB,MACXU,EAAAA,EAAAA,GAAA,OAAKE,UAAU,QACXF,EAAAA,EAAAA,GAACG,EAAAA,EAAG,CAACC,kBAAkB,KACvBJ,EAAAA,EAAAA,GAAA,aACIA,EAAAA,EAAAA,GAAA,YACIA,EAAAA,EAAAA,GAAA,OAAKK,IC5EjC,i9FD4EgDC,IAAI,SACxBN,EAAAA,EAAAA,GAAA,UAAI,UACJA,EAAAA,EAAAA,GAAA,SAAG,8CACHA,EAAAA,EAAAA,GAACO,EAAAA,GAAI,CAACC,GAAG,IAAIN,UAAU,OAAM,wBAKjDF,EAAAA,EAAAA,GAACS,EAAAA,EAAM,M","sources":["webpack://Theia-Website/./src/pages/404.js","webpack://Theia-Website/./src/resources/404-error.svg"],"sourcesContent":["/********************************************************************************\n * Copyright (C) 2020 TypeFox and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n\nimport React from 'react'\n\nimport Layout from '../layouts/layout'\nimport Error404 from '../resources/404-error.svg'\nimport Background from '../resources/background-image.png'\nimport Footer from '../components/Footer'\nimport styled from '@emotion/styled'\nimport { breakpoints } from '../utils/variables'\nimport Nav from '../components/Nav'\nimport { Link } from 'gatsby'\nimport BaseHead from '../layouts/basehead'\n\nconst StyledNotFoundPage = styled.div`\n background-image: url(${Background});\n background-size: cover;\n background-repeat: no-repeat;\n border-bottom: 10px solid #f8f8f8;\n\n main {\n margin-top: 15rem;\n text-align: center;\n\n @media(min-width: ${breakpoints.md}) {\n min-height: 80vh;\n }\n }\n\n img {\n display: inline-block;\n height: 18rem;\n border-bottom: 2px solid;\n\n @media(max-width: ${breakpoints.md}) {\n height: 15rem;\n }\n\n @media(max-width: ${breakpoints.sm}) {\n height: 10rem;\n } \n }\n\n h1 {\n font-size: 6rem;\n }\n\n p {\n margin-bottom: 1.5rem;\n }\n\n`\nexport const Head = BaseHead\n\n\nconst NotFoundPage = () => (\n \n \n
\n
\n
\n