@@ -46,59 +46,110 @@ export class Section extends CacheableObject {
4646
4747}
4848
49+ /**
50+ * Base interface for all section component configurations returned by the REST API.
51+ */
4952export interface SectionComponent {
53+ /** The type discriminator identifying which component to render. */
5054 componentType : string ;
55+ /** CSS classes applied to the section container (e.g., Bootstrap grid classes). */
5156 style : string ;
5257}
5358
59+ /**
60+ * Configuration for a browse section that displays links to browse indices.
61+ */
5462export interface BrowseSection extends SectionComponent {
63+ /** List of browse index names to render as navigation links. */
5564 browseNames : string [ ] ;
5665 componentType : 'browse' ;
5766}
5867
68+ /**
69+ * Configuration for a top section that displays the most recent/popular items
70+ * from a discovery configuration.
71+ */
5972export interface TopSection extends SectionComponent {
73+ /** Name of the discovery configuration to query. */
6074 discoveryConfigurationName : string ;
75+ /** Metadata field to sort results by. */
6176 sortField : string ;
77+ /** Sort direction ('ASC' or 'DESC'). */
6278 order : string ;
79+ /** i18n key for the section title. */
6380 titleKey : string ;
6481 componentType : 'top' ;
82+ /** Maximum number of items to display. */
6583 numberOfItems : number ;
84+ /** Whether to show item thumbnails. */
6685 showThumbnails : boolean ;
86+ /** Template type to use for rendering the items. */
6787 template : TopSectionTemplateType ;
6888}
6989
90+ /**
91+ * Configuration for an advanced search section with multiple query statements and filter fields.
92+ */
7093export interface SearchSection extends SectionComponent {
94+ /** Name of the discovery configuration providing available filters. */
7195 discoveryConfigurationName : string ;
7296 componentType : 'search' ;
97+ /** Type of search interface to render. */
7398 searchType : string ;
99+ /** Number of query statement rows to display initially. */
74100 initialStatements : number ;
101+ /** Whether to display the section title. */
75102 displayTitle : boolean ;
76103}
77104
105+ /**
106+ * Configuration for a section displaying search facets from a discovery configuration.
107+ */
78108export interface FacetSection extends SectionComponent {
109+ /** Name of the discovery configuration to fetch facet values from. */
79110 discoveryConfigurationName : string ;
80111 componentType : 'facet' ;
112+ /** Number of facet boxes to display per row in the grid. */
81113 facetsPerRow : number ;
82114}
83115
116+ /**
117+ * Configuration for a text content section that renders static or metadata-based content.
118+ */
84119export interface TextRowSection extends SectionComponent {
120+ /** The content string (can be a metadata key or raw content depending on contentType). */
85121 content : string ;
122+ /** The type of content: e.g., 'text-metadata' for metadata lookups or 'text-raw' for static content. */
86123 contentType : string ;
87124 componentType : 'text-row' ;
88125}
89126
127+ /**
128+ * Configuration for a table-like section showing top items with multiple metadata columns.
129+ */
90130export interface MultiColumnTopSection extends SectionComponent {
131+ /** Name of the discovery configuration to query. */
91132 discoveryConfigurationName : string ;
133+ /** Metadata field to sort results by. */
92134 sortField : string ;
135+ /** Sort direction ('ASC' or 'DESC'). */
93136 order : string ;
137+ /** i18n key for the section title. */
94138 titleKey : string ;
139+ /** List of column definitions specifying which metadata fields to display. */
95140 columnList : TopSectionColumn [ ] ;
96141 componentType : 'multi-column-top' ;
97142}
98143
144+ /**
145+ * Column configuration for {@link MultiColumnTopSection} defining which metadata to display.
146+ */
99147export interface TopSectionColumn {
148+ /** CSS classes for column width styling. */
100149 style : string ;
150+ /** Metadata field to extract the column value from. */
101151 metadataField : string ;
152+ /** i18n key for the column header. */
102153 titleKey : string ;
103154}
104155
0 commit comments