@scania/tegel
Version:
Tegel Design System
31 lines (30 loc) • 1.49 kB
JavaScript
import { h, Host } from "@stencil/core";
import inheritAriaAttributes from "../../../utils/inheritAriaAttributes";
export class TdsSideMenuCloseButton {
static handleClick() {
const hamburgerButton = document.querySelector('tds-header-hamburger');
if (hamburgerButton) {
hamburgerButton.setAttribute('aria-expanded', 'false');
}
}
render() {
// Find the closest side menu to this close button
const sideMenuEl = this.host.closest('tds-side-menu');
const sideMenuId = sideMenuEl ? sideMenuEl.id : '';
const buttonProps = Object.assign(Object.assign(Object.assign({ 'aria-label': 'Close' }, (sideMenuId && { 'aria-controls': sideMenuId })), inheritAriaAttributes(this.host)), { 'onClick': TdsSideMenuCloseButton.handleClick });
return (h(Host, { key: '3f7eef53ce8d066635998152e1684bd8a0034bbb' }, h("button", Object.assign({ key: '71029ead3db82331818f75bc165f4aaa85de4db3' }, buttonProps), h("tds-icon", { key: 'eb93cbf265c4a57f02a1457e65379c872bd442f5', name: "cross", size: "20px", svgTitle: "Cross" }))));
}
static get is() { return "tds-side-menu-close-button"; }
static get encapsulation() { return "shadow"; }
static get originalStyleUrls() {
return {
"$": ["side-menu-close-button.scss"]
};
}
static get styleUrls() {
return {
"$": ["side-menu-close-button.css"]
};
}
static get elementRef() { return "host"; }
}