(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{NSxh:function(e,t,a){"use strict";var l=a("q1tI"),n=a.n(l),c=a("Wbzz"),r=a("kiXb"),i=a("5748"),o=a.n(i),s=function(e){var t=e.href,a=e.title;return n.a.createElement("a",{href:t,target:"_blank",rel:"nofollow noopener noreferrer"},a)};t.a=function(e){var t=e.lang,a=Object(r.resolveI18nPath)(t);return n.a.createElement("div",{className:"eclipse-jkube-footer"},n.a.createElement("div",{className:"eclipse-jkube-footer__logo-jkube"},n.a.createElement(c.a,{to:a("/")},n.a.createElement("img",{className:"eclipse-jkube-footer__logo-jkube-image",src:o.a,alt:"JKube"})),n.a.createElement("span",{className:"eclipse-jkube-footer__logo-jkube-tagline"},"Cloud-Native Java Applications without a hassle")),n.a.createElement("div",{className:"eclipse-jkube-footer__links"},n.a.createElement("ul",{className:"eclipse-jkube-footer__links-list"},n.a.createElement("li",null,n.a.createElement(c.a,{to:a("/docs#getting-started")},"Get Started")),n.a.createElement("li",null,n.a.createElement(c.a,{to:a("/docs")},"Docs")),n.a.createElement("li",null,n.a.createElement(c.a,{to:a("/quickstarts")},"Quickstarts")),n.a.createElement("li",null,n.a.createElement(c.a,{to:a("/docs#katacoda-courses")},"Katacoda Courses")),n.a.createElement("li",null,n.a.createElement(c.a,{to:a("/demos")},"Demos"))),n.a.createElement("ul",{className:"eclipse-jkube-footer__links-list"},n.a.createElement("li",null,n.a.createElement(c.a,{to:a("/community")},"Community")),n.a.createElement("li",null,n.a.createElement(c.a,{to:a("/community#planning-and-meetings")},"Get Involved")),n.a.createElement("li",null,n.a.createElement(c.a,{to:a("/contributing")},"Contributing"))),n.a.createElement("ul",{className:"eclipse-jkube-footer__links-list"},n.a.createElement("li",null,n.a.createElement(s,{href:"https://www.eclipse.org",title:"Eclipse Foundation"})),n.a.createElement("li",null,n.a.createElement(s,{href:"https://www.eclipse.org/legal/privacy.php",title:"Privacy Policy"})),n.a.createElement("li",null,n.a.createElement(s,{href:"https://www.eclipse.org/legal/termsofuse.php",title:"Terms of Use"})),n.a.createElement("li",null,n.a.createElement(s,{href:"https://www.eclipse.org/legal/copyright.php",title:"Copyright Agent"})),n.a.createElement("li",null,n.a.createElement(s,{href:"https://www.eclipse.org/legal",title:"Legal Resources"})))),n.a.createElement("div",{className:"eclipse-jkube-footer__copyright"},"Copyright © Eclipse Foundation 2020"))}},"qG+M":function(e,t,a){"use strict";a.r(t),a.d(t,"pageQuery",(function(){return u}));var l=a("q1tI"),n=a.n(l),c=a("dmsj"),r=a("Rb52"),i=a("NSxh"),o={ApacheCamel:"cib-apache",ApacheKaraf:"cib-apache",Kubernetes:"cib-kubernetes",OpenLiberty:"cib-java",OpenShift:"cib-redhat",Quarkus:"cib-quarkus",Spring:"cib-spring",Thorntail:"cib-java",Vertx:"cib-eclipseide"},s=function(e){var t=e.title,a=e.description,l=e.technologies,c=e.url;return n.a.createElement("div",{className:"quick-start-card",itemScope:!0,itemType:"http://schema.org/SoftwareSourceCode"},n.a.createElement("meta",{itemProp:"programmingLanguage",content:"Java"}),n.a.createElement("meta",{itemProp:"codeSampleType",content:"full (compile ready) solution"}),n.a.createElement("meta",{itemProp:"keywords",content:l.join(",")}),n.a.createElement("meta",{itemProp:"name",content:t}),n.a.createElement("meta",{itemProp:"codeRepository",content:c}),n.a.createElement("h3",{className:"quick-start-card__title"},n.a.createElement("a",{href:c,itemProp:"url"},t)),n.a.createElement("ul",{className:"quick-start-card__technologies"},l.map((function(e){return n.a.createElement("li",{key:e,className:"quick-start-card__technologies-item"},n.a.createElement("i",{className:"quick-start-card__technologies-item-icon "+o[e]}),e)}))),n.a.createElement("div",{className:"quick-start-card__description",itemProp:"description"},a.split(/[\n\r]/).map((function(e){return e.trim()})).map((function(e,t){return n.a.createElement("p",{key:t},e)}))),n.a.createElement("div",{className:"quick-start-card__links"},n.a.createElement("a",{href:c},n.a.createElement("i",{className:"cib-github"})," GitHub repository")))},m=(a("+5i3"),function(e){var t=e.title,a=e.description,l=e.langKey,o=e.nodes;return n.a.createElement("div",{className:"eclipse-jkube"},n.a.createElement(c.a,{title:t,description:a,lang:l}),n.a.createElement(r.a,{lang:l}),n.a.createElement("div",{className:"eclipse-jkube__main"},n.a.createElement("div",{className:"eclipse-jkube__content"},n.a.createElement("div",{className:"hero"},n.a.createElement("div",{className:"hero-content"},n.a.createElement("h1",null,t),n.a.createElement("p",null,a))),n.a.createElement("ul",{className:"eclipse-jkube__quickstarts",itemScope:!0,itemType:"http://schema.org/SoftwareApplication"},n.a.createElement("meta",{itemProp:"name",content:"Eclipse JKube"}),n.a.createElement("meta",{itemProp:"applicationCategory",content:"Developer Tools"}),n.a.createElement("meta",{itemProp:"operatingSystem",content:"Linux,Windows,OSX,Mac"}),n.a.createElement("meta",{itemProp:"downloadUrl",content:"https://github.com/eclipse/jkube"}),o.map((function(e){return n.a.createElement("li",{key:e.artifactId,className:"eclipse-jkube__quickstarts-item"},n.a.createElement(s,{title:e.name,description:e.description,technologies:e.technologies,url:e.url}))}))))),n.a.createElement(i.a,{lang:l}))}),u="1750385900";t.default=function(e){var t=e.data.allQuickstart.nodes;return n.a.createElement(m,{title:"Quickstarts",description:"Eclipse JKube Quickstarts and examples",langKey:"en",nodes:t})}}}]);
//# sourceMappingURL=component---src-pages-quickstarts-index-jsx-a1e42093b41968828647.js.map