UNPKG

@progressive-development/pd-page

Version:

Progressive development page helper, teaser, menu, footer.

221 lines (205 loc) 6.36 kB
import { css, LitElement, html } from 'lit'; import { localized, msg } from '@lit/localize'; import { property } from 'lit/decorators.js'; import '@progressive-development/pd-forms/pd-panel-button'; import '@progressive-development/pd-forms/pd-form-container'; import '@progressive-development/pd-forms/pd-form-row'; import '@progressive-development/pd-forms/pd-input'; import '@progressive-development/pd-forms/pd-input-area'; import '@progressive-development/pd-contact/pd-contact'; import { pdIcons } from '@progressive-development/pd-icon'; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __decorateClass = (decorators, target, key, kind) => { var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result; if (kind && result) __defProp(target, key, result); return result; }; let PdContactUs = class extends LitElement { constructor() { super(...arguments); this.contact = {}; } render() { return html` <div class="content-block"> <h2>${msg("Kontakt", { id: "pd.contactus.title" })}</h2> <div class="contact-block"> <div class="left-content"> <pd-contact class="company-contact" .contact="${this.contact}" addressTitle="${msg("Adresse", { id: "pd.contactus.address.title" })}" summary ></pd-contact> </div> <div class="right-content"> <pd-form-container id="contactFormId"> <pd-form-row> <pd-input id="nameInputId" class="quarter3" minlength="3" maxlength="100" placeHolder="${msg("Name", { id: "pd.contactus.address.name" })}" valueName="name" autoCompleteName="full-name" required ></pd-input> </pd-form-row> <pd-form-row> <pd-input id="mailInputId" class="quarter3" placeHolder="${msg("Email", { id: "pd.contactus.address.email" })}" valueName="email" autoCompleteName="email" name="email" fieldType="mail" required ></pd-input> </pd-form-row> <pd-form-row> <pd-input id="phoneInputId" class="quarter3" placeHolder="${msg("Telefon", { id: "pd.contactus.address.phone" })}" valueName="phone" fieldType="phone" autoCompleteName="tel" required ></pd-input> </pd-form-row> <pd-form-row> <pd-input-area id="msgInputId" class="quarter3-area" minlength="6" maxlength="500" placeHolder="${msg("Nachricht", { id: "pd.contactus.address.message" })}" rows="8" required valueName="msg1" ></pd-input-area> </pd-form-row> <pd-form-row> <pd-panel-button class="quarter3" pdButtonIcon="${pdIcons.ICON_MAIL}" buttonText="${msg("Absenden", { id: "pd.contactus.address.send" })}" @click="${this._sendMail}" primary ></pd-panel-button> </pd-form-row> </pd-form-container> </div> </div> </div> `; } clear() { this.shadowRoot?.getElementById("nameInputId")?.["clear"]?.(); this.shadowRoot?.getElementById("mailInputId")?.["clear"]?.(); this.shadowRoot?.getElementById("phoneInputId")?.["clear"]?.(); this.shadowRoot?.getElementById("msgInputId")?.["clear"]?.(); } _sendMail() { const form = this.shadowRoot?.getElementById( "contactFormId" ); form.triggerValidate().then((result) => { if (result) { this.dispatchEvent( new CustomEvent("send-contact-request", { detail: { msgObj: form.getValues().origin } }) ); form.reset(); } }); } }; PdContactUs.styles = [ css` :host { display: flex; flex-flow: row; background-color: var(--pd-contactus-bg-col, var(--pd-default-col)); background-image: var(--pd-contactus-bg-image); background-repeat: no-repeat; min-height: 500px; width: 100%; } h2 { font-family: var(--pd-default-font-title-family); font-style: normal; color: var(--pd-contactus-font-col, var(--pd-default-bg-col)); margin-top: 1.4em; margin-bottom: 2.5rem; font-size: var(--pd-contactus-font-h2-size, 2.5rem); } .content-block { overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; flex-grow: 1; max-width: 1170px; margin: 0 auto; padding-left: 30px; } .contact-block { display: flex; flex-wrap: wrap; padding-bottom: 50px; } .left-content { width: 35%; min-width: 230px; } .right-content { width: 65%; } .company-contact { --app-font-content-col: var( --pd-contactus-font-col, var(--pd-default-bg-col) ); --app-font-title-col: var( --pd-contactus-font-col, var(--pd-default-bg-col) ); } @media (max-width: 440px) { .item { display: none; } ul { justify-content: flex-start; } } ` ]; __decorateClass([ property({ type: Object }) ], PdContactUs.prototype, "contact", 2); PdContactUs = __decorateClass([ localized() ], PdContactUs); export { PdContactUs };