Newer
Older
import {Component, Element, h, Host, Prop} from '@stencil/core';
import {HeadingSectionVariants, HeadingVarians} from '../../utils/utils';
styleUrls: {default: 'heading.scss', wide: 'heading-fw.scss'},
/**
* @type {*}
*/
@Prop() heading: HeadingVarians = HeadingVarians.default as any;
/**
* @type {*}
*/
@Prop() section: HeadingSectionVariants = HeadingSectionVariants.default as any;
@Prop() headerstyle: string = 'common';
@Element() el: HTMLElement;
componentDidLoad() {
let hyMainDiv = this.el.closest('.hy-main');
if (hyMainDiv) {
if (!hyMainDiv.classList.contains('with-sidebar')) {
this.headerstyle = 'large';
}
}
}
render() {
const headingInVariants = this.heading in HeadingVarians;
const isHeadingH2 = this.heading == HeadingVarians.h2;
const classAttributes = [
'hy-heading',
this.negative ? 'negative' : '',
this.isSearch ? `hy-heading__search__${this.headerstyle}` : '',
`hy-heading__${this.section}`,
`hy-heading__${this.headerstyle}`,
`hy-heading__${this.section}__${this.headerstyle}`,
];
const sectionClassAttributes = [`hy-heading__${this.section}--divider`].join(' ');
const containerSectionClass = [
'hy-heading__container',
`hy-heading__container__${this.section}`,
`hy-heading__container__${this.headerstyle}`,
].join(' ');
[
<div class={containerSectionClass}>
{isHeadingH2 && (
<div>
<hy-box pt="1.25, 1.25, 1.5, 2.5" />
</div>
)}
<this.heading class={classAttributes.join(' ')}>
<slot />
</this.heading>
<span class={sectionClassAttributes}></span>
</div>,
]
<div class={containerSectionClass}>
<HeadingVarians.default class={classAttributes.join(' ')}>
<span class={sectionClassAttributes}></span>
</div>
)}
</Host>