@@ -13,6 +13,7 @@ import { describeVal, compareBySGroup } from "./Val.js";
13
13
export interface LNDescription extends NamingDescription {
14
14
reports : Record < string , ReportControlDescription > ;
15
15
logControls : Record < string , LogControlDescription > ;
16
+ logs : Record < string , NamingDescription > ;
16
17
inputs ?: InputsDescription ;
17
18
lnType : LNodeTypeDescription ;
18
19
}
@@ -49,6 +50,21 @@ function logControls(element: Element): Record<string, LogControlDescription> {
49
50
return sortRecord ( unsortedLogControls ) ;
50
51
}
51
52
53
+ function logs ( element : Element ) : Record < string , NamingDescription > {
54
+ const unsortedLogs : Record < string , NamingDescription > = { } ;
55
+
56
+ Array . from ( element . children )
57
+ . filter ( ( child ) => child . tagName === "Log" )
58
+ . forEach ( ( log ) => {
59
+ const name = log . getAttribute ( "name" ) ;
60
+ const logDescription = describeNaming ( log ) ;
61
+ if ( name && ! unsortedLogs [ name ] && logDescription )
62
+ unsortedLogs [ name ] = logDescription ;
63
+ } ) ;
64
+
65
+ return sortRecord ( unsortedLogs ) ;
66
+ }
67
+
52
68
/** Returns leaf data attribute (BDA or DA) from
53
69
* LNodeTypeDescription containing vals
54
70
* @param path - parent DOI/SDI/DAI name attributes
@@ -144,6 +160,7 @@ export function LN(element: Element): LNDescription | undefined {
144
160
...describeNaming ( element ) ,
145
161
reports : reportControls ( element ) ,
146
162
logControls : logControls ( element ) ,
163
+ logs : logs ( element ) ,
147
164
lnType,
148
165
} ;
149
166
0 commit comments