import { CREATIVE_COMMONS, METHODOLOGY_REPOSITORY, SITE_URL, pagePath } from "#assets/link.assets"; import { METHODOLOGY_AUTHOR, METHODOLOGY_META } from "#configuration/strings/methodology.strings"; import { METHODOLOGY_DESCRIPTION, METHODOLOGY_TITLE } from "#configuration/strings/page.strings"; import { mountTabSwitching, renderTabbedPage } from "#presentation/widgets/tab.widget"; import { METHODOLOGY_PAGE } from "#core/ids/page.ids"; import { METHODOLOGY_TABS } from "#configuration/strings/site.strings"; import { METHODOLOGY_TONE } from "#configuration/constants/tab.constants"; import type { PageDefinition } from "#types/page.types"; import type { SchemaEntity } from "#types/schema.types"; import type { TabbedPage } from "#types/tab.types"; import { renderMethodologyFooter } from "#presentation/renderers/methodology.renderer"; const METHODOLOGY_ENTITY: SchemaEntity = { "@type": "CreativeWork", author: { "@type": "Person", name: METHODOLOGY_AUTHOR }, codeRepository: METHODOLOGY_REPOSITORY, description: METHODOLOGY_DESCRIPTION, license: CREATIVE_COMMONS, name: METHODOLOGY_META.title, sameAs: METHODOLOGY_REPOSITORY, url: SITE_URL + pagePath(METHODOLOGY_PAGE), version: METHODOLOGY_META.version, }; const DEFINITION: TabbedPage = { footer: renderMethodologyFooter, layout: "chapter", meta: METHODOLOGY_META, page: METHODOLOGY_PAGE, tabs: METHODOLOGY_TABS, tone: METHODOLOGY_TONE, }; const renderMethodology = function renderMethodology(): Element { return renderTabbedPage(DEFINITION); }; void mountTabSwitching(DEFINITION); export const PAGE: PageDefinition = { content: { kind: "tabbed", layout: DEFINITION.layout, meta: METHODOLOGY_META, tabs: METHODOLOGY_TABS }, description: METHODOLOGY_DESCRIPTION, entities: [METHODOLOGY_ENTITY], id: METHODOLOGY_PAGE, render: renderMethodology, title: METHODOLOGY_TITLE, };