import { customElement, property } from 'lit/decorators.js' import { html, nothing } from 'lit' import { PktElement } from '@/base-elements/element' import '@/components/icon' export interface IBreadcrumbItem { text: string href: string } export interface IPktBreadcrumbs { breadcrumbs: IBreadcrumbItem[] } export class PktBreadcrumbs extends PktElement implements IPktBreadcrumbs { @property({ type: Array }) breadcrumbs: IBreadcrumbItem[] = [] private handleLinkClick(event: MouseEvent, item: IBreadcrumbItem, index: number) { const navigateEvent = new CustomEvent('navigate', { detail: { item, index, originalEvent: event }, bubbles: true, composed: true, cancelable: true, }) const dispatched = this.dispatchEvent(navigateEvent) // dispatchEvent returnerer false når en lytter kaller preventDefault() på navigate-eventet. // Vi viderefører dette til den opprinnelige klikk-eventen for å hindre nettleseren i å navigere. if (!dispatched) { event.preventDefault() } } render() { if (!this.breadcrumbs || this.breadcrumbs.length === 0) return nothing const backLink = this.breadcrumbs[this.breadcrumbs.length - 2] return html` ` } } export default PktBreadcrumbs try { customElement('pkt-breadcrumbs')(PktBreadcrumbs) } catch (e) { console.warn('Forsøker å definere , men den er allerede definert') }