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')
}