@@ -20,6 +20,7 @@ import { describeVal, compareBySGroup } from "./Val.js";
20
20
export interface LNDescription extends NamingDescription {
21
21
reports : Record < string , ReportControlDescription > ;
22
22
logControls : Record < string , LogControlDescription > ;
23
+ logs : Record < string , NamingDescription > ;
23
24
inputs ?: InputsDescription ;
24
25
lnType : LNodeTypeDescription ;
25
26
}
@@ -90,6 +91,21 @@ function logControls(element: Element): Record<string, LogControlDescription> {
90
91
> ;
91
92
}
92
93
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 ) ;
107
+ }
108
+
93
109
/** Returns leaf data attribute (BDA or DA) from
94
110
* LNodeTypeDescription containing vals
95
111
* @param path - parent DOI/SDI/DAI name attributes
@@ -160,6 +176,7 @@ export function LN(element: Element): LNDescription | undefined {
160
176
...describeNaming ( element ) ,
161
177
reports : reportControls ( element ) ,
162
178
logControls : logControls ( element ) ,
179
+ logs : logs ( element ) ,
163
180
lnType,
164
181
} ;
165
182
0 commit comments