Skip to content
Snippets Groups Projects
cta-liftup-image-text.tsx 3.85 KiB
Newer Older
  • Learn to ignore specific revisions
  • import {Component, ComponentInterface, Prop, h} from '@stencil/core';
    
    
    @Component({
      tag: 'hy-cta-liftup-image-text',
      styleUrl: 'cta-liftup-image-text.scss',
    
    })
    export class CtaLiftupImageText implements ComponentInterface {
    
      @Prop() imageRight: boolean = false;
      @Prop() imageUrl: string = null;
    
      @Prop() imageAlt: string = '';
    
      @Prop() textTitle?: string;
      @Prop() textDescription: string = null;
      @Prop() mainUrl?: string;
      @Prop() mainUrlTitle?: string;
      @Prop() mainUrlAriaLabel?: string;
      @Prop() mainUrlIsExternal: boolean = false;
      @Prop() standaloneUrl?: string;
      @Prop() standaloneUrlTitle?: string;
      @Prop() standaloneUrlAriaLabel?: string;
      @Prop() standaloneUrlIsExternal: boolean = false;
      @Prop() standaloneUrl2?: string;
      @Prop() standaloneUrlTitle2?: string;
      @Prop() standaloneUrlAriaLabel2?: string;
      @Prop() standaloneUrlIsExternal2: boolean = false;
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
        const classAttributes = [
    
          'hy-cta-liftup-image-text',
          this.imageRight ? 'hy-cta-liftup-image-text--right-image' : null
        ].join(' ');
    
          'hy-cta-liftup-image-text__text-container',
          this.imageRight
            ? 'hy-cta-liftup-image-text__text-container--left'
            : 'hy-cta-liftup-image-text__text-container--right'
        ].join(' ');
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
        const imageRightClassAttributes = [
    
          'hy-cta-liftup-image-text__image-container',
          'hy-cta-liftup-image-text__image-container--right'
        ].join(' ');
        const imageLeftClassAttributes = ['hy-cta-liftup-image-text__image-container'].join(' ');
    
    
        const imageLeft = !this.imageRight;
    
        const aspectRatioWidth = 4;
        const aspectRatioHeight = 3;
    
          <div class={classAttributes}>
    
            {imageLeft && (
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
              <div class={imageLeftClassAttributes}>
    
                <hy-image
                  image-url={this.imageUrl}
                  image-alt={this.imageAlt}
                  aspect-ratio-width={aspectRatioWidth}
                  aspect-ratio-height={aspectRatioHeight}
    
                  caption=""
                ></hy-image>
    
            <div class={contentClassAttributes}>
    
              <div class="hy-cta-liftup-image-text__text-container__title">{this.textTitle}</div>
              <div class="hy-cta-liftup-image-text__text-container__description">{this.textDescription}</div>
              {this.mainUrl && (
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
                <div class="hy-cta-liftup-image-text__text-container__link">
    
                  <hy-cta-link-button
                    link-content={this.mainUrlTitle}
    
                    url={this.mainUrl}
                    is-external={this.mainUrlIsExternal}
                  />
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
                </div>
    
              )}
              {this.standaloneUrl && (
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
                <div class="hy-cta-liftup-image-text__text-container__standalonelink">
    
                  <hy-standalone-link
                    link-content={this.standaloneUrlTitle}
    
                    url={this.standaloneUrl}
                    is-external={this.standaloneUrlIsExternal}
                  />
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
                </div>
    
              )}
              {this.standaloneUrl2 && (
    
                <div class="hy-cta-liftup-image-text__text-container__standalonelink">
    
                  <hy-standalone-link
                    link-content={this.standaloneUrlTitle2}
    
                    url={this.standaloneUrl2}
                    is-external={this.standaloneUrlIsExternal2}
                  />
    
            {this.imageRight && (
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
              <div class={imageRightClassAttributes}>
    
                <hy-image
                  image-url={this.imageUrl}
                  image-alt={this.imageAlt}
                  aspect-ratio-width={aspectRatioWidth}
                  aspect-ratio-height={aspectRatioHeight}
    
                  caption=""
                ></hy-image>