Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 4x 4x 12x 12x 12x 12x 12x 12x | import { Component, h, Prop, Host, State } from "@stencil/core";
@Component({
tag: "ux-w-header",
styleUrl: "header.scss",
shadow: false
})
export class Header {
/** url for the Link next to the title */
@Prop() url: string = "";
/** text for the title attribute of the link */
@Prop() linkTitle: string = "";
/** sets bool wether widget has a menu */
@Prop() hasMenu: boolean = false;
/** wether the widget header menu is visible */
@State() menuVisible: boolean = false;
private openMenu(e) {
e.preventDefault();
const el = e.target;
el.classList.toggle("is-open");
this.menuVisible = !this.menuVisible;
}
render() {
const baseClass = "ux-w-header";
return (
<Host class={baseClass}>
<slot name="headline" />
{this.url !== "" && (
<a href={this.url} title={this.linkTitle}>
<ux-icon name="arrow-small-right" />
</a>
)}
{this.hasMenu && (
<div class={`${baseClass}__menu`}>
<a
href="#"
class={`${baseClass}__menu-link`}
onClick={(e) => this.openMenu(e)}
>
<ux-icon name={"cog"} />
</a>
<div
class={`${baseClass}__menu-content ${
this.menuVisible ? "is-visible" : "is-hidden"
}`}
>
<slot name="menu" />
</div>
</div>
)}
</Host>
);
}
}
|