import { LitElement, html, css } from 'https://cdn.jsdelivr.net/gh/lit/dist@3/core/lit-core.min.js';
const detailsExpanded = !!JSON.parse(localStorage.getItem('details-expanded'));
export class DetailsToggle extends LitElement {
static properties = {
_detailsExpanded: { state: true, type: Boolean },
};
constructor() {
super();
this._detailsExpanded = detailsExpanded;
document.addEventListener('detailstoggled', e => this._detailsExpanded = !!e?.detail?.expanding);
}
static styles = css`
:host {
cursor: pointer;
}
`;
toggleDetails() {
this._detailsExpanded = !this._detailsExpanded;
localStorage.setItem('details-expanded', JSON.stringify(this._detailsExpanded));
if (this._detailsExpanded) {
for (const details of document.getElementsByTagName('details')) {
details.setAttribute('open', 'true');
}
} else {
for (const details of document.getElementsByTagName('details')) {
details.removeAttribute('open');
}
}
document.dispatchEvent(new CustomEvent('detailstoggled', { detail: { expanding: this._detailsExpanded } }));
}
render() {
const icon = this._detailsExpanded ? 'carbon:collapse-categories' : 'carbon:expand-categories';
const title = this._detailsExpanded ? 'Collapse details' : 'Expand details';
return html`
`;
}
}
customElements.define('fsdocs-details-toggle', DetailsToggle);