Skip to content
Snippets Groups Projects
cta-liftup-image-text.tsx 2.84 KiB
Newer Older
  • Learn to ignore specific revisions
  • import {Component, ComponentInterface, Prop, h} from '@stencil/core';
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
    import {CtaLinkButtonVariants} from '../../utils/utils';
    
    
    @Component({
      tag: 'hy-cta-liftup-image-text',
      styleUrl: 'cta-liftup-image-text.scss',
    
    })
    export class CtaLiftupImageText implements ComponentInterface {
    
      @Prop() imageAlt: string = '';
    
      @Prop() textTitle?: string;
      @Prop() textDescription: string = null;
    
      @Prop() mainUrl?: string;
      @Prop() mainUrlTitle?: string;
      @Prop() mainUrlAriaLabel?: string;
      @Prop() mainUrlIsExternal: boolean = false;
    
    
      @Prop() mainUrl2?: string;
      @Prop() mainUrlTitle2?: string;
      @Prop() mainUrlAriaLabel2?: string;
      @Prop() mainUrlIsExternal2: boolean = false;
    
        const classAttributes = ['hy-cta-liftup-image-text'].join(' ');
    
          'hy-cta-liftup-image-text__text-container',
    
          'hy-cta-liftup-image-text__text-container--left'
    
        const imageLeftClassAttributes = ['hy-cta-liftup-image-text__image-container'].join(' ');
    
        const aspectRatioWidth = 3;
        const aspectRatioHeight = 2;
        const aspect = (aspectRatioHeight / aspectRatioWidth) * 100;
        const aspectRatio = {
          '--aspectRatio': `${aspect}%` as 'aspectRatio'
        };
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
        const linkVariant = CtaLinkButtonVariants.default;
    
          <div class={classAttributes}>
    
            <div class={imageLeftClassAttributes} style={aspectRatio}>
              <img alt={this.imageAlt} class="hy-image__image" src={this.imageUrl} />
    
            <div class={contentClassAttributes}>
              <div class="hy-cta-liftup-image-text__text-container__info-wrapper">
                <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>
    
              <div class="hy-cta-liftup-image-text__text-container__links-wrapper">
                {this.mainUrl && (
                  <div class="hy-cta-liftup-image-text__text-container__link">
                    <hy-cta-link-button
                      link-content={this.mainUrlTitle}
                      sc-label={this.mainUrlAriaLabel}
                      url={this.mainUrl}
                      is-external={this.mainUrlIsExternal}
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
                      variant={linkVariant}
    
                    />
                  </div>
                )}
                {this.mainUrl2 && (
                  <div class="hy-cta-liftup-image-text__text-container__link">
                    <hy-cta-link-button
                      link-content={this.mainUrlTitle2}
                      sc-label={this.mainUrlAriaLabel2}
                      url={this.mainUrl2}
                      is-external={this.mainUrlIsExternal2}
    
    Ekaterina Kondareva's avatar
    Ekaterina Kondareva committed
                      variant={linkVariant}