Guides - Latest
Tutorials
+Short and focused exercises to get you going quickly.
+Building a Native Executable
+Build native executables with GraalVM or Mandrel.
+Collect metrics using Micrometer
+Create an application that uses the Micrometer metrics library to collect runtime, + extension and application metrics and expose them as a Prometheus (OpenMetrics) endpoint.
+Creating Your First Application
+Discover how to create your first Quarkus application.
+Creating a tutorial
+Create a new tutorial that guides users through creating, running, and testing a Quarkus + application that uses annotations from an imaginary extension.
+Getting Started With Reactive
+Learn more about developing reactive applications with Quarkus.
+Protect Quarkus web application by using an Auth0 OpenID Connect + provider
+Quarkus Security provides comprehensive OpenId Connect (OIDC) and OAuth2 support with + its quarkus-oidc extension, supporting both Authorization code flow and Bearer token authentication + mechanisms.
+Protect a service application by using + OpenID Connect (OIDC) Bearer token authentication
+Use the Quarkus OpenID Connect (OIDC) extension to secure a Jakarta REST application + with Bearer token authentication.
+Protect a web application by using OpenID + Connect (OIDC) authorization code flow
+With the Quarkus OpenID Connect (OIDC) extension, you can protect application HTTP + endpoints by using the OIDC Authorization Code Flow mechanism.
+Quarkus Tools in your favorite IDE
+Learn more about Quarkus integrations in IDEs.
+Secure a Quarkus application with Basic authentication + and Jakarta Persistence
+Secure your Quarkus application endpoints by combining the built-in Quarkus Basic + authentication with the Jakarta Persistence identity provider to enable role-based access control (RBAC).
+Using our Tooling
+Explore the Quarkus developer toolchain which makes Quarkus development so fast and + enjoyable.
+Your second Quarkus application
+Discover some of the features that make developing with Quarkus a joyful experience.
+${this._renderContent(this.data.title)}
+${this._renderContent(this.data.summary)}
+${this._renderContent(c)}
`); + } + return unsafeHTML(content); + } +} \ No newline at end of file diff --git a/src/main/resources/web/app/qs-target.ts b/src/main/resources/web/app/qs-target.ts new file mode 100644 index 00000000..6bbf9677 --- /dev/null +++ b/src/main/resources/web/app/qs-target.ts @@ -0,0 +1,177 @@ +import {html, LitElement, css, unsafeCSS} from 'lit'; +import {customElement, property, state, queryAll} from 'lit/decorators.js'; +import './qs-guide' +import {QS_END_EVENT, QS_NEXT_PAGE_EVENT, QS_RESULT_EVENT, QS_START_EVENT, QsResult} from "./qs-form"; +import debounce from 'lodash/debounce'; +import icons from "./assets/icons"; + + +/** + * This component is the target of the search results + */ +@customElement('qs-target') +export class QsTarget extends LitElement { + + static styles = css` + + .loading { + background-image: url('${unsafeCSS(icons.loading)}'); + background-repeat: no-repeat; + background-position: top; + background-size: 45px; + padding-top: 55px; + text-align: center; + padding-bottom: 10px; + } + + .qs-hits { + display: grid; + grid-template-columns: repeat(12, 1fr); + grid-gap: 1em; + clear: both; + } + + .no-hits { + padding: 10px; + margin: 10px; + font-size: 1.2rem; + line-height: 1.5; + font-weight: 400; + font-style: italic; + text-align: center; + background: var(--empty-background-color, #F0CA4D); + } + + + qs-guide { + grid-column: span 4; + margin: 1rem 0rem 1rem 0rem; + + @media screen and (max-width: 1300px) { + grid-column: span 6; + } + + @media screen and (max-width: 768px) { + grid-column: span 12; + margin: 1rem 0rem 1rem 0rem; + } + + @media screen and (max-width: 480px) { + grid-column: span 12; + } + } + `; + + @property({type: String}) private type: string; + @state() private _result: QsResult | undefined; + @state() private _loading = false; + @queryAll('.qs-hit') private _hits: NodeListOfSorry, no ${this.type} matched your search. Please try again.
+