Show database links & improve generation of codes
This commit is contained in:
parent
0dd6d392cd
commit
a50e1361e7
9 changed files with 734 additions and 493 deletions
|
@ -24,13 +24,13 @@
|
||||||
|
|
||||||
<div class="ml-4">
|
<div class="ml-4">
|
||||||
{#if showArticles}
|
{#if showArticles}
|
||||||
{#each [...iterArrayOrSingleton(sectionTa.STRUCTURE_TA.LIEN_ART)] as lienArt}
|
{#each [...iterArrayOrSingleton(sectionTa.STRUCTURE_TA?.LIEN_ART)] as lienArt}
|
||||||
{@const article = data.article?.[lienArt["@id"]]}
|
{@const article = data.article?.[lienArt["@id"]]}
|
||||||
{#if article !== undefined}
|
{#if article !== undefined}
|
||||||
<ArticleView {article} {data} level={level + 1} />
|
<ArticleView {article} {data} level={level + 1} />
|
||||||
{/if}
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
{:else if sectionTa.STRUCTURE_TA.LIEN_ART !== undefined}
|
{:else if sectionTa.STRUCTURE_TA?.LIEN_ART !== undefined}
|
||||||
<ul class="inline">
|
<ul class="inline">
|
||||||
{#each [...iterArrayOrSingleton(sectionTa.STRUCTURE_TA.LIEN_ART)] as lienArt}
|
{#each [...iterArrayOrSingleton(sectionTa.STRUCTURE_TA.LIEN_ART)] as lienArt}
|
||||||
<li class="inline after:content-[',_'] after:last:content-['']">
|
<li class="inline after:content-[',_'] after:last:content-['']">
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#each [...iterArrayOrSingleton(sectionTa.STRUCTURE_TA.LIEN_SECTION_TA)] as lienSectionTa}
|
{#each [...iterArrayOrSingleton(sectionTa.STRUCTURE_TA?.LIEN_SECTION_TA)] as lienSectionTa}
|
||||||
{@const sectionTa = data.section_ta?.[lienSectionTa["@id"]]}
|
{@const sectionTa = data.section_ta?.[lienSectionTa["@id"]]}
|
||||||
{#if sectionTa !== undefined}
|
{#if sectionTa !== undefined}
|
||||||
<svelte:self {data} level={level + 1} {sectionTa} {showArticles} />
|
<svelte:self {data} level={level + 1} {sectionTa} {showArticles} />
|
||||||
|
|
|
@ -418,7 +418,7 @@ export interface SectionTa {
|
||||||
ID: string
|
ID: string
|
||||||
CONTEXTE: Contexte
|
CONTEXTE: Contexte
|
||||||
TITRE_TA: string
|
TITRE_TA: string
|
||||||
STRUCTURE_TA: {
|
STRUCTURE_TA?: {
|
||||||
LIEN_ART?: LienArt | LienArt[]
|
LIEN_ART?: LienArt | LienArt[]
|
||||||
LIEN_SECTION_TA?: LienSectionTa | LienSectionTa[]
|
LIEN_SECTION_TA?: LienSectionTa | LienSectionTa[]
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ export class Aggregator {
|
||||||
|
|
||||||
if (this.follow.has("STRUCTURE_TA.LIEN_ART.@id")) {
|
if (this.follow.has("STRUCTURE_TA.LIEN_ART.@id")) {
|
||||||
for (const lien of iterArrayOrSingleton(
|
for (const lien of iterArrayOrSingleton(
|
||||||
sectionTa.STRUCTURE_TA.LIEN_ART,
|
sectionTa.STRUCTURE_TA?.LIEN_ART,
|
||||||
)) {
|
)) {
|
||||||
this.requestId(lien["@id"])
|
this.requestId(lien["@id"])
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ export class Aggregator {
|
||||||
|
|
||||||
if (this.follow.has("STRUCTURE_TA.LIEN_SECTION_TA.@id")) {
|
if (this.follow.has("STRUCTURE_TA.LIEN_SECTION_TA.@id")) {
|
||||||
for (const lien of iterArrayOrSingleton(
|
for (const lien of iterArrayOrSingleton(
|
||||||
sectionTa.STRUCTURE_TA.LIEN_SECTION_TA,
|
sectionTa.STRUCTURE_TA?.LIEN_SECTION_TA,
|
||||||
)) {
|
)) {
|
||||||
this.requestId(lien["@id"])
|
this.requestId(lien["@id"])
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ import {
|
||||||
type TmLienTxt,
|
type TmLienTxt,
|
||||||
type VersionsWrapper,
|
type VersionsWrapper,
|
||||||
} from "$lib/legal"
|
} from "$lib/legal"
|
||||||
|
import type { ArticleLienDb, TexteVersionLienDb } from "$lib/legal/shared"
|
||||||
|
|
||||||
export const summarizeAggregateProperties: Summarizer = (access, value) => {
|
export const summarizeAggregateProperties: Summarizer = (access, value) => {
|
||||||
for (const summarizer of [
|
for (const summarizer of [
|
||||||
|
@ -49,6 +50,69 @@ export const summarizeAggregateProperties: Summarizer = (access, value) => {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const summarizeArticleLienDb: Summarizer = (access, value) => {
|
||||||
|
const articleLien = value as ArticleLienDb | undefined
|
||||||
|
if (articleLien === undefined) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
content: `Article ${articleLien.article_id}`,
|
||||||
|
href: pathnameFromLegalId(articleLien.article_id) as string,
|
||||||
|
type: "link",
|
||||||
|
},
|
||||||
|
` ${articleLien.typelien} ${articleLien.cible ? "CIBLE" : "SOURCE"} `,
|
||||||
|
articleLien.cidtexte === null
|
||||||
|
? `cidtexte : null`
|
||||||
|
: {
|
||||||
|
content: `cidtexte : ${articleLien.cidtexte}`,
|
||||||
|
href: pathnameFromLegalId(articleLien.cidtexte) as string,
|
||||||
|
type: "link",
|
||||||
|
},
|
||||||
|
", id : ",
|
||||||
|
{
|
||||||
|
content: articleLien.id,
|
||||||
|
href: pathnameFromLegalId(articleLien.id) as string,
|
||||||
|
type: "link",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
type: "concatenation",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const summarizeArticleLienDbProperties: Summarizer = (access, value) => {
|
||||||
|
if (
|
||||||
|
access?.key === "article_lien" &&
|
||||||
|
(value === undefined ||
|
||||||
|
// Ensure that value is not a dictionary of article by id.
|
||||||
|
Object.keys(value as { [key: string]: unknown }).some(
|
||||||
|
(key) => key.match(/^[A-Z]{8}\d{12}$/) === null,
|
||||||
|
))
|
||||||
|
) {
|
||||||
|
return summarizeArticleLienDb(access, value)
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
access?.access?.key === "article_lien" &&
|
||||||
|
(Array.isArray(access.parent) ||
|
||||||
|
(typeof access?.key === "string" &&
|
||||||
|
access.key.match(/^[A-Z]{8}\d{12}$/) !== null))
|
||||||
|
) {
|
||||||
|
return summarizeArticleLienDb(access, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (access?.key === "article_id") {
|
||||||
|
return summarizeLegalIdToLink(access, value)
|
||||||
|
}
|
||||||
|
if (access?.key === "cidtexte") {
|
||||||
|
return summarizeLegalIdToLink(access, value)
|
||||||
|
}
|
||||||
|
if (access?.key === "id") {
|
||||||
|
return summarizeLegalIdToLink(access, value)
|
||||||
|
}
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
export const summarizeArticleProperties: Summarizer = (access, value) => {
|
export const summarizeArticleProperties: Summarizer = (access, value) => {
|
||||||
if (
|
if (
|
||||||
access?.key === "article" &&
|
access?.key === "article" &&
|
||||||
|
@ -317,7 +381,7 @@ export function summarizeLegalIdToValueArrowLink(
|
||||||
content: JSON.stringify(value),
|
content: JSON.stringify(value),
|
||||||
type: "raw_data",
|
type: "raw_data",
|
||||||
},
|
},
|
||||||
{ class: "mx-1 mt-1", icon: arrowRight, inline: true, type: "icon" },
|
{ class: "mr-1 mt-0.5 w-3 flex-none", icon: MoveRight, type: "icon" },
|
||||||
uidLinkSummary,
|
uidLinkSummary,
|
||||||
],
|
],
|
||||||
type: "concatenation",
|
type: "concatenation",
|
||||||
|
@ -472,7 +536,7 @@ export const summarizeLienArtId: Summarizer = (access, value) => {
|
||||||
content: JSON.stringify(lienArt["@id"]),
|
content: JSON.stringify(lienArt["@id"]),
|
||||||
type: "raw_data",
|
type: "raw_data",
|
||||||
},
|
},
|
||||||
{ class: "mt-1 mx-1", icon: arrowRight, inline: true, type: "icon" },
|
{ class: "mr-1 mt-0.5 w-3 flex-none", icon: MoveRight, type: "icon" },
|
||||||
summarizeLienArt(access, lienArt) as Summary,
|
summarizeLienArt(access, lienArt) as Summary,
|
||||||
],
|
],
|
||||||
type: "concatenation",
|
type: "concatenation",
|
||||||
|
@ -494,7 +558,7 @@ export const summarizeLienId: Summarizer = (access, value) => {
|
||||||
content: JSON.stringify(lien["@id"]),
|
content: JSON.stringify(lien["@id"]),
|
||||||
type: "raw_data",
|
type: "raw_data",
|
||||||
},
|
},
|
||||||
{ class: "mt-1 mx-1", icon: arrowRight, inline: true, type: "icon" },
|
{ class: "mr-1 mt-0.5 w-3 flex-none", icon: MoveRight, type: "icon" },
|
||||||
{
|
{
|
||||||
content: lien["#text"],
|
content: lien["#text"],
|
||||||
href: pathname,
|
href: pathname,
|
||||||
|
@ -528,7 +592,7 @@ export const summarizeLienSectionTaId: Summarizer = (access, value) => {
|
||||||
content: JSON.stringify(lienSectionTa["@id"]),
|
content: JSON.stringify(lienSectionTa["@id"]),
|
||||||
type: "raw_data",
|
type: "raw_data",
|
||||||
},
|
},
|
||||||
{ class: "mt-1 mx-1", icon: arrowRight, inline: true, type: "icon" },
|
{ class: "mr-1 mt-0.5 w-3 flex-none", icon: MoveRight, type: "icon" },
|
||||||
summarizeLienSectionTa(access, lienSectionTa) as Summary,
|
summarizeLienSectionTa(access, lienSectionTa) as Summary,
|
||||||
],
|
],
|
||||||
type: "concatenation",
|
type: "concatenation",
|
||||||
|
@ -708,6 +772,72 @@ export const summarizeTextelrProperties: Summarizer = (access, value) => {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const summarizeTexteVersionLienDb: Summarizer = (access, value) => {
|
||||||
|
const texteVersionLien = value as TexteVersionLienDb | undefined
|
||||||
|
if (texteVersionLien === undefined) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
content: `TexteVersion ${texteVersionLien.texte_version_id}`,
|
||||||
|
href: pathnameFromLegalId(texteVersionLien.texte_version_id) as string,
|
||||||
|
type: "link",
|
||||||
|
},
|
||||||
|
` ${texteVersionLien.typelien} ${texteVersionLien.cible ? "CIBLE" : "SOURCE"} `,
|
||||||
|
texteVersionLien.cidtexte === null
|
||||||
|
? `cidtexte : null`
|
||||||
|
: {
|
||||||
|
content: `cidtexte : ${texteVersionLien.cidtexte}`,
|
||||||
|
href: pathnameFromLegalId(texteVersionLien.cidtexte) as string,
|
||||||
|
type: "link",
|
||||||
|
},
|
||||||
|
", id : ",
|
||||||
|
{
|
||||||
|
content: texteVersionLien.id,
|
||||||
|
href: pathnameFromLegalId(texteVersionLien.id) as string,
|
||||||
|
type: "link",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
type: "concatenation",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const summarizeTexteVersionLienDbProperties: Summarizer = (
|
||||||
|
access,
|
||||||
|
value,
|
||||||
|
) => {
|
||||||
|
if (
|
||||||
|
access?.key === "texte_version_lien" &&
|
||||||
|
(value === undefined ||
|
||||||
|
// Ensure that value is not a dictionary of TexteVersion by id.
|
||||||
|
Object.keys(value as { [key: string]: unknown }).some(
|
||||||
|
(key) => key.match(/^[A-Z]{8}\d{12}$/) === null,
|
||||||
|
))
|
||||||
|
) {
|
||||||
|
return summarizeTexteVersionLienDb(access, value)
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
access?.access?.key === "texte_version_lien" &&
|
||||||
|
(Array.isArray(access.parent) ||
|
||||||
|
(typeof access?.key === "string" &&
|
||||||
|
access.key.match(/^[A-Z]{8}\d{12}$/) !== null))
|
||||||
|
) {
|
||||||
|
return summarizeTexteVersionLienDb(access, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (access?.key === "texte_version_id") {
|
||||||
|
return summarizeLegalIdToLink(access, value)
|
||||||
|
}
|
||||||
|
if (access?.key === "cidtexte") {
|
||||||
|
return summarizeLegalIdToLink(access, value)
|
||||||
|
}
|
||||||
|
if (access?.key === "id") {
|
||||||
|
return summarizeLegalIdToLink(access, value)
|
||||||
|
}
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
export const summarizeTexteVersionProperties: Summarizer = (access, value) => {
|
export const summarizeTexteVersionProperties: Summarizer = (access, value) => {
|
||||||
if (
|
if (
|
||||||
access?.key === "texte_version" &&
|
access?.key === "texte_version" &&
|
||||||
|
@ -754,7 +884,7 @@ export const summarizeTitreTmId: Summarizer = (access, value) => {
|
||||||
content: JSON.stringify(titreTm["@id"]),
|
content: JSON.stringify(titreTm["@id"]),
|
||||||
type: "raw_data",
|
type: "raw_data",
|
||||||
},
|
},
|
||||||
{ class: "mt-1 mx-1", icon: arrowRight, inline: true, type: "icon" },
|
{ class: "mr-1 mt-0.5 w-3 flex-none", icon: MoveRight, type: "icon" },
|
||||||
{
|
{
|
||||||
content: titreTm["#text"],
|
content: titreTm["#text"],
|
||||||
href: pathname,
|
href: pathname,
|
||||||
|
@ -780,7 +910,7 @@ export const summarizeTitreTxtIdTxt: Summarizer = (access, value) => {
|
||||||
content: JSON.stringify(titreTxt["@id_txt"]),
|
content: JSON.stringify(titreTxt["@id_txt"]),
|
||||||
type: "raw_data",
|
type: "raw_data",
|
||||||
},
|
},
|
||||||
{ class: "mt-1 mx-1", icon: arrowRight, inline: true, type: "icon" },
|
{ class: "mr-1 mt-0.5 w-3 flex-none", icon: MoveRight, type: "icon" },
|
||||||
{
|
{
|
||||||
content: titreTxt["#text"],
|
content: titreTxt["#text"],
|
||||||
href: pathname,
|
href: pathname,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { error } from "@sveltejs/kit"
|
import { error } from "@sveltejs/kit"
|
||||||
|
|
||||||
import type { Article } from "$lib/legal"
|
import type { Article } from "$lib/legal"
|
||||||
|
import type { ArticleLienDb, TexteVersionLienDb } from "$lib/legal/shared"
|
||||||
import { db } from "$lib/server/databases"
|
import { db } from "$lib/server/databases"
|
||||||
|
|
||||||
import type { PageServerLoad } from "./$types"
|
import type { PageServerLoad } from "./$types"
|
||||||
|
@ -16,5 +17,17 @@ export const load: PageServerLoad = async ({ params }) => {
|
||||||
if (article === undefined) {
|
if (article === undefined) {
|
||||||
error(404, `Article ${params.id} non trouvé`)
|
error(404, `Article ${params.id} non trouvé`)
|
||||||
}
|
}
|
||||||
return { article }
|
|
||||||
|
const articleLienDbArray = await db<ArticleLienDb[]>`
|
||||||
|
SELECT * FROM article_lien WHERE id = ${params.id}
|
||||||
|
`
|
||||||
|
const texteVersionLienDbArray = await db<TexteVersionLienDb[]>`
|
||||||
|
SELECT * FROM texte_version_lien WHERE id = ${params.id}
|
||||||
|
`
|
||||||
|
|
||||||
|
return {
|
||||||
|
article,
|
||||||
|
article_lien: articleLienDbArray,
|
||||||
|
texte_version_lien: texteVersionLienDbArray,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,20 +2,26 @@
|
||||||
import { TreeView, SummaryView } from "augmented-data-viewer"
|
import { TreeView, SummaryView } from "augmented-data-viewer"
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
summarizeArticleLienDbProperties,
|
||||||
summarizeArticleProperties,
|
summarizeArticleProperties,
|
||||||
summarizeLegalObject,
|
summarizeLegalObject,
|
||||||
|
summarizeTexteVersionLienDbProperties,
|
||||||
} from "$lib/summaries"
|
} from "$lib/summaries"
|
||||||
|
|
||||||
import type { PageData } from "./$types"
|
import type { PageData } from "./$types"
|
||||||
|
|
||||||
export let data: PageData
|
export let data: PageData
|
||||||
|
|
||||||
$: ({ article } = data)
|
$: ({
|
||||||
|
article,
|
||||||
|
article_lien: articleLienDbArray,
|
||||||
|
texte_version_lien: texteVersionLienDbArray,
|
||||||
|
} = data)
|
||||||
|
|
||||||
$: summary = summarizeLegalObject({ key: "article" }, "article", article)
|
$: summary = summarizeLegalObject({ key: "article" }, "article", article)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<header class="prose my-6 max-w-full">
|
<header class="my-6 max-w-full">
|
||||||
<h2
|
<h2
|
||||||
class="scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0"
|
class="scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0"
|
||||||
>
|
>
|
||||||
|
@ -35,3 +41,35 @@
|
||||||
summarize={summarizeArticleProperties}
|
summarize={summarizeArticleProperties}
|
||||||
value={article}
|
value={article}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<section class="mt-4">
|
||||||
|
<h2
|
||||||
|
class="scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0"
|
||||||
|
>
|
||||||
|
Articles pointant sur l'article
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<TreeView
|
||||||
|
access={{ key: "article_lien" }}
|
||||||
|
frame={false}
|
||||||
|
open
|
||||||
|
summarize={summarizeArticleLienDbProperties}
|
||||||
|
value={articleLienDbArray}
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="mt-4">
|
||||||
|
<h2
|
||||||
|
class="scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0"
|
||||||
|
>
|
||||||
|
Textes pointant sur l'article
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<TreeView
|
||||||
|
access={{ key: "texte_version_lien" }}
|
||||||
|
frame={false}
|
||||||
|
open
|
||||||
|
summarize={summarizeTexteVersionLienDbProperties}
|
||||||
|
value={texteVersionLienDbArray}
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { error } from "@sveltejs/kit"
|
import { error } from "@sveltejs/kit"
|
||||||
|
|
||||||
import type { SectionTa } from "$lib/legal"
|
import type { SectionTa } from "$lib/legal"
|
||||||
|
import type { ArticleLienDb, TexteVersionLienDb } from "$lib/legal/shared"
|
||||||
import { db } from "$lib/server/databases"
|
import { db } from "$lib/server/databases"
|
||||||
|
|
||||||
import type { PageServerLoad } from "./$types"
|
import type { PageServerLoad } from "./$types"
|
||||||
|
@ -16,5 +17,17 @@ export const load: PageServerLoad = async ({ params }) => {
|
||||||
if (sectionTa === undefined) {
|
if (sectionTa === undefined) {
|
||||||
error(404, `SECTION_TA ${params.id} non trouvé`)
|
error(404, `SECTION_TA ${params.id} non trouvé`)
|
||||||
}
|
}
|
||||||
return { section_ta: sectionTa }
|
|
||||||
|
const articleLienDbArray = await db<ArticleLienDb[]>`
|
||||||
|
SELECT * FROM article_lien WHERE id = ${params.id}
|
||||||
|
`
|
||||||
|
const texteVersionLienDbArray = await db<TexteVersionLienDb[]>`
|
||||||
|
SELECT * FROM texte_version_lien WHERE id = ${params.id}
|
||||||
|
`
|
||||||
|
|
||||||
|
return {
|
||||||
|
article_lien: articleLienDbArray,
|
||||||
|
section_ta: sectionTa,
|
||||||
|
texte_version_lien: texteVersionLienDbArray,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,15 +2,21 @@
|
||||||
import { TreeView, SummaryView } from "augmented-data-viewer"
|
import { TreeView, SummaryView } from "augmented-data-viewer"
|
||||||
|
|
||||||
import {
|
import {
|
||||||
summarizeSectionTaProperties,
|
summarizeArticleLienDbProperties,
|
||||||
summarizeLegalObject,
|
summarizeLegalObject,
|
||||||
|
summarizeSectionTaProperties,
|
||||||
|
summarizeTexteVersionLienDbProperties,
|
||||||
} from "$lib/summaries"
|
} from "$lib/summaries"
|
||||||
|
|
||||||
import type { PageData } from "./$types"
|
import type { PageData } from "./$types"
|
||||||
|
|
||||||
export let data: PageData
|
export let data: PageData
|
||||||
|
|
||||||
$: ({ section_ta: sectionTa } = data)
|
$: ({
|
||||||
|
article_lien: articleLienDbArray,
|
||||||
|
section_ta: sectionTa,
|
||||||
|
texte_version_lien: texteVersionLienDbArray,
|
||||||
|
} = data)
|
||||||
|
|
||||||
$: summary = summarizeLegalObject(
|
$: summary = summarizeLegalObject(
|
||||||
{ key: "section_ta" },
|
{ key: "section_ta" },
|
||||||
|
@ -19,7 +25,7 @@
|
||||||
)
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<header class="prose my-6 max-w-full">
|
<header class="my-6 max-w-full">
|
||||||
<h2
|
<h2
|
||||||
class="scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0"
|
class="scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0"
|
||||||
>
|
>
|
||||||
|
@ -39,3 +45,35 @@
|
||||||
summarize={summarizeSectionTaProperties}
|
summarize={summarizeSectionTaProperties}
|
||||||
value={sectionTa}
|
value={sectionTa}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<section class="mt-4">
|
||||||
|
<h2
|
||||||
|
class="scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0"
|
||||||
|
>
|
||||||
|
Articles pointant sur la SECTION_TA
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<TreeView
|
||||||
|
access={{ key: "article_lien" }}
|
||||||
|
frame={false}
|
||||||
|
open
|
||||||
|
summarize={summarizeArticleLienDbProperties}
|
||||||
|
value={articleLienDbArray}
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="mt-4">
|
||||||
|
<h2
|
||||||
|
class="scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0"
|
||||||
|
>
|
||||||
|
Textes pointant sur la SECTION_TA
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<TreeView
|
||||||
|
access={{ key: "texte_version_lien" }}
|
||||||
|
frame={false}
|
||||||
|
open
|
||||||
|
summarize={summarizeTexteVersionLienDbProperties}
|
||||||
|
value={texteVersionLienDbArray}
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue