import { html, nothing, type TemplateResult } from 'lit' import { customElement, property } from 'lit/decorators.js' import type { IPktFooterColumn } from 'shared-types' import { PktFooterBaseElement } from './footer-base' import type { IPktFooter } from './types' /** * PktFooter — footer med valgfritt custom innhold (grått sekundær-bånd) * stablet oppå den globale (blå) footeren. Uten `columns` rendres kun den * globale footeren. Den globale henter innhold fra Oslo kommunes felles * header/footer-endepunkt (samme som `pkt-header type="global"`). */ export class PktFooter extends PktFooterBaseElement implements IPktFooter { @property({ type: Array }) columns?: IPktFooterColumn[] connectedCallback() { super.connectedCallback() this.classList.add('pkt-footer-host') } private renderColumn(column: IPktFooterColumn): TemplateResult { return html`

${column.title}

${column.text ? html`

${column.text}

` : nothing} ${column.links?.length ? html` ` : nothing}
` } private renderSecondary(): TemplateResult { // Med skipGlobal rendres consent-lenken i sekundær-båndet i stedet // for i den globale footeren. const consentInSecondary = this.skipGlobal && this.includeConsent return html` ` } render() { const hasCustomContent = !!this.columns?.length const consentInSecondary = this.skipGlobal && this.includeConsent return html` ` } } declare global { interface HTMLElementTagNameMap { 'pkt-footer': PktFooter } } try { customElement('pkt-footer')(PktFooter) } catch (e) { console.warn('Forsøker å definere , men den er allerede definert') }