@@ -20,6 +20,7 @@ import { describeVal, compareBySGroup } from "./Val.js";
2020export interface LNDescription extends NamingDescription {
2121 reports : Record < string , ReportControlDescription > ;
2222 logControls : Record < string , LogControlDescription > ;
23+ logs : Record < string , NamingDescription > ;
2324 inputs ?: InputsDescription ;
2425 lnType : LNodeTypeDescription ;
2526}
@@ -90,6 +91,21 @@ function logControls(element: Element): Record<string, LogControlDescription> {
9091 > ;
9192}
9293
94+ function logs ( element : Element ) : Record < string , NamingDescription > {
95+ const unsortedLogs : Record < string , NamingDescription > = { } ;
96+
97+ Array . from ( element . children )
98+ . filter ( ( child ) => child . tagName === "Log" )
99+ . forEach ( ( log ) => {
100+ const name = log . getAttribute ( "name" ) ;
101+ const logDescription = describeNaming ( log ) ;
102+ if ( name && ! unsortedLogs [ name ] && logDescription )
103+ unsortedLogs [ name ] = logDescription ;
104+ } ) ;
105+
106+ return sortRecord ( unsortedLogs ) as Record < string , NamingDescription > ;
107+ }
108+
93109/** Returns leaf data attribute (BDA or DA) from
94110 * LNodeTypeDescription containing vals
95111 * @param path - parent DOI/SDI/DAI name attributes
@@ -160,6 +176,7 @@ export function LN(element: Element): LNDescription | undefined {
160176 ...describeNaming ( element ) ,
161177 reports : reportControls ( element ) ,
162178 logControls : logControls ( element ) ,
179+ logs : logs ( element ) ,
163180 lnType,
164181 } ;
165182
0 commit comments