Newer
Older
import {Component, ComponentInterface, Prop, h, Host} from '@stencil/core';

Ekaterina Kondareva
committed
tag: 'hy-adjacent-image-text',
styleUrl: 'adjacent-image-text.scss',

Ekaterina Kondareva
committed
export class AdjacentImageText implements ComponentInterface {
Ekaterina Kondareva
committed
@Prop() imageUrl: string = null;
Ekaterina Kondareva
committed
@Prop() textTitle?: string;
@Prop() textDescription: string = null;
Ekaterina Kondareva
committed
Ekaterina Kondareva
committed
@Prop() mainUrl?: string;
@Prop() mainUrlTitle?: string;
@Prop() mainUrlAriaLabel?: string;
@Prop() mainUrlIsExternal: boolean = false;
Ekaterina Kondareva
committed
@Prop() mainUrl2?: string;
@Prop() mainUrlTitle2?: string;
@Prop() mainUrlAriaLabel2?: string;
@Prop() mainUrlIsExternal2: boolean = false;

Ekaterina Kondareva
committed
const classAttributes = ['hy-adjacent-image-text'].join(' ');
Ekaterina Kondareva
committed
const contentClassAttributes = [

Ekaterina Kondareva
committed
'hy-adjacent-image-text__text-container',
'hy-adjacent-image-text__text-container--left',
Ekaterina Kondareva
committed

Ekaterina Kondareva
committed
const imageLeftClassAttributes = ['hy-adjacent-image-text__image-container'].join(' ');
Ekaterina Kondareva
committed
const aspectRatioWidth = 3;
const aspectRatioHeight = 2;
const aspect = (aspectRatioHeight / aspectRatioWidth) * 100;
const aspectRatio = {
'--aspectRatio': `${aspect}%` as 'aspectRatio',
Ekaterina Kondareva
committed
};
<Host>
<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-adjacent-image-text__text-container__info-wrapper">
<div class="hy-adjacent-image-text__text-container__title">{this.textTitle}</div>
<div class="hy-adjacent-image-text__text-container__description">{this.textDescription}</div>
</div>
<div class="hy-adjacent-image-text__text-container__links-wrapper">
{this.mainUrl && (
<div class="hy-adjacent-image-text__text-container__link">
<hy-cta-link
link-content={this.mainUrlTitle}
sc-label={this.mainUrlAriaLabel}
url={this.mainUrl}
is-external={this.mainUrlIsExternal}
/>
</div>
)}
{this.mainUrl2 && (
<div class="hy-adjacent-image-text__text-container__link">
<hy-cta-link
link-content={this.mainUrlTitle2}
sc-label={this.mainUrlAriaLabel2}
url={this.mainUrl2}
is-external={this.mainUrlIsExternal2}
/>
</div>
)}
</div>
Ekaterina Kondareva
committed
</div>
</div>
<hy-box pb="4, 7, 8" />
</Host>