@xpack/doxygen2docusaurus 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -1
  3. package/bin/doxygen2docusaurus.js +5 -5
  4. package/dist/cli/main.d.ts +0 -14
  5. package/dist/cli/main.d.ts.map +1 -1
  6. package/dist/cli/main.js +0 -34
  7. package/dist/cli/main.js.map +1 -1
  8. package/dist/docusaurus/cli-options.d.ts +3 -292
  9. package/dist/docusaurus/cli-options.d.ts.map +1 -1
  10. package/dist/docusaurus/cli-options.js +6 -290
  11. package/dist/docusaurus/cli-options.js.map +1 -1
  12. package/dist/docusaurus/generator.d.ts +0 -172
  13. package/dist/docusaurus/generator.d.ts.map +1 -1
  14. package/dist/docusaurus/generator.js +20 -280
  15. package/dist/docusaurus/generator.js.map +1 -1
  16. package/dist/docusaurus/renderers/conceptparts.d.ts +9 -0
  17. package/dist/docusaurus/renderers/conceptparts.d.ts.map +1 -0
  18. package/dist/docusaurus/renderers/conceptparts.js +21 -0
  19. package/dist/docusaurus/renderers/conceptparts.js.map +1 -0
  20. package/dist/docusaurus/renderers/descriptiontype.d.ts +0 -417
  21. package/dist/docusaurus/renderers/descriptiontype.d.ts.map +1 -1
  22. package/dist/docusaurus/renderers/descriptiontype.js +11 -555
  23. package/dist/docusaurus/renderers/descriptiontype.js.map +1 -1
  24. package/dist/docusaurus/renderers/docinternalstype.d.ts +0 -132
  25. package/dist/docusaurus/renderers/docinternalstype.d.ts.map +1 -1
  26. package/dist/docusaurus/renderers/docinternalstype.js +0 -156
  27. package/dist/docusaurus/renderers/docinternalstype.js.map +1 -1
  28. package/dist/docusaurus/renderers/doclisttype.d.ts +0 -22
  29. package/dist/docusaurus/renderers/doclisttype.d.ts.map +1 -1
  30. package/dist/docusaurus/renderers/doclisttype.js +0 -42
  31. package/dist/docusaurus/renderers/doclisttype.js.map +1 -1
  32. package/dist/docusaurus/renderers/doctabletype.d.ts +0 -88
  33. package/dist/docusaurus/renderers/doctabletype.d.ts.map +1 -1
  34. package/dist/docusaurus/renderers/doctabletype.js +1 -113
  35. package/dist/docusaurus/renderers/doctabletype.js.map +1 -1
  36. package/dist/docusaurus/renderers/doctitletype.d.ts +0 -22
  37. package/dist/docusaurus/renderers/doctitletype.d.ts.map +1 -1
  38. package/dist/docusaurus/renderers/doctitletype.js +0 -42
  39. package/dist/docusaurus/renderers/doctitletype.js.map +1 -1
  40. package/dist/docusaurus/renderers/docvariablelisttype.d.ts +0 -44
  41. package/dist/docusaurus/renderers/docvariablelisttype.d.ts.map +1 -1
  42. package/dist/docusaurus/renderers/docvariablelisttype.js +1 -69
  43. package/dist/docusaurus/renderers/docvariablelisttype.js.map +1 -1
  44. package/dist/docusaurus/renderers/docxrefsecttype.d.ts +0 -22
  45. package/dist/docusaurus/renderers/docxrefsecttype.d.ts.map +1 -1
  46. package/dist/docusaurus/renderers/docxrefsecttype.js +0 -38
  47. package/dist/docusaurus/renderers/docxrefsecttype.js.map +1 -1
  48. package/dist/docusaurus/renderers/element-renderer-base.d.ts +0 -74
  49. package/dist/docusaurus/renderers/element-renderer-base.d.ts.map +1 -1
  50. package/dist/docusaurus/renderers/element-renderer-base.js +0 -64
  51. package/dist/docusaurus/renderers/element-renderer-base.js.map +1 -1
  52. package/dist/docusaurus/renderers/inctype.d.ts +0 -23
  53. package/dist/docusaurus/renderers/inctype.d.ts.map +1 -1
  54. package/dist/docusaurus/renderers/inctype.js +0 -41
  55. package/dist/docusaurus/renderers/inctype.js.map +1 -1
  56. package/dist/docusaurus/renderers/linkedtexttype.d.ts +0 -22
  57. package/dist/docusaurus/renderers/linkedtexttype.d.ts.map +1 -1
  58. package/dist/docusaurus/renderers/linkedtexttype.js +0 -45
  59. package/dist/docusaurus/renderers/linkedtexttype.js.map +1 -1
  60. package/dist/docusaurus/renderers/listingtype.d.ts +0 -52
  61. package/dist/docusaurus/renderers/listingtype.d.ts.map +1 -1
  62. package/dist/docusaurus/renderers/listingtype.js +1 -88
  63. package/dist/docusaurus/renderers/listingtype.js.map +1 -1
  64. package/dist/docusaurus/renderers/paramtype.d.ts +0 -22
  65. package/dist/docusaurus/renderers/paramtype.d.ts.map +1 -1
  66. package/dist/docusaurus/renderers/paramtype.js +2 -51
  67. package/dist/docusaurus/renderers/paramtype.js.map +1 -1
  68. package/dist/docusaurus/renderers/referencetype.d.ts +0 -23
  69. package/dist/docusaurus/renderers/referencetype.d.ts.map +1 -1
  70. package/dist/docusaurus/renderers/referencetype.js +0 -38
  71. package/dist/docusaurus/renderers/referencetype.js.map +1 -1
  72. package/dist/docusaurus/renderers/reftexttype.d.ts +0 -22
  73. package/dist/docusaurus/renderers/reftexttype.d.ts.map +1 -1
  74. package/dist/docusaurus/renderers/reftexttype.js +0 -38
  75. package/dist/docusaurus/renderers/reftexttype.js.map +1 -1
  76. package/dist/docusaurus/renderers/reftype.d.ts +0 -22
  77. package/dist/docusaurus/renderers/reftype.d.ts.map +1 -1
  78. package/dist/docusaurus/renderers/reftype.js +0 -38
  79. package/dist/docusaurus/renderers/reftype.js.map +1 -1
  80. package/dist/docusaurus/renderers/renderers.d.ts +0 -151
  81. package/dist/docusaurus/renderers/renderers.d.ts.map +1 -1
  82. package/dist/docusaurus/renderers/renderers.js +15 -186
  83. package/dist/docusaurus/renderers/renderers.js.map +1 -1
  84. package/dist/docusaurus/renderers/substringtype.d.ts +0 -22
  85. package/dist/docusaurus/renderers/substringtype.d.ts.map +1 -1
  86. package/dist/docusaurus/renderers/substringtype.js +0 -39
  87. package/dist/docusaurus/renderers/substringtype.js.map +1 -1
  88. package/dist/docusaurus/renderers/tableofcontentstype.d.ts +0 -22
  89. package/dist/docusaurus/renderers/tableofcontentstype.d.ts.map +1 -1
  90. package/dist/docusaurus/renderers/tableofcontentstype.js +0 -39
  91. package/dist/docusaurus/renderers/tableofcontentstype.js.map +1 -1
  92. package/dist/docusaurus/types.d.ts +0 -110
  93. package/dist/docusaurus/types.d.ts.map +1 -1
  94. package/dist/docusaurus/types.js +0 -11
  95. package/dist/docusaurus/types.js.map +1 -1
  96. package/dist/docusaurus/utils.d.ts +0 -214
  97. package/dist/docusaurus/utils.d.ts.map +1 -1
  98. package/dist/docusaurus/utils.js +0 -296
  99. package/dist/docusaurus/utils.js.map +1 -1
  100. package/dist/docusaurus/view-model/classes-vm.d.ts +0 -137
  101. package/dist/docusaurus/view-model/classes-vm.d.ts.map +1 -1
  102. package/dist/docusaurus/view-model/classes-vm.js +9 -225
  103. package/dist/docusaurus/view-model/classes-vm.js.map +1 -1
  104. package/dist/docusaurus/view-model/collection-base.d.ts +0 -120
  105. package/dist/docusaurus/view-model/collection-base.d.ts.map +1 -1
  106. package/dist/docusaurus/view-model/collection-base.js +11 -101
  107. package/dist/docusaurus/view-model/collection-base.js.map +1 -1
  108. package/dist/docusaurus/view-model/compound-base-vm.d.ts +2 -147
  109. package/dist/docusaurus/view-model/compound-base-vm.d.ts.map +1 -1
  110. package/dist/docusaurus/view-model/compound-base-vm.js +47 -225
  111. package/dist/docusaurus/view-model/compound-base-vm.js.map +1 -1
  112. package/dist/docusaurus/view-model/concepts-vm.d.ts +27 -0
  113. package/dist/docusaurus/view-model/concepts-vm.d.ts.map +1 -0
  114. package/dist/docusaurus/view-model/concepts-vm.js +337 -0
  115. package/dist/docusaurus/view-model/concepts-vm.js.map +1 -0
  116. package/dist/docusaurus/view-model/description-anchors.d.ts +0 -58
  117. package/dist/docusaurus/view-model/description-anchors.d.ts.map +1 -1
  118. package/dist/docusaurus/view-model/description-anchors.js +0 -71
  119. package/dist/docusaurus/view-model/description-anchors.js.map +1 -1
  120. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts +0 -247
  121. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts.map +1 -1
  122. package/dist/docusaurus/view-model/files-and-folders-vm.js +61 -353
  123. package/dist/docusaurus/view-model/files-and-folders-vm.js.map +1 -1
  124. package/dist/docusaurus/view-model/groups-vm.d.ts +0 -148
  125. package/dist/docusaurus/view-model/groups-vm.d.ts.map +1 -1
  126. package/dist/docusaurus/view-model/groups-vm.js +2 -223
  127. package/dist/docusaurus/view-model/groups-vm.js.map +1 -1
  128. package/dist/docusaurus/view-model/members-vm.d.ts +0 -552
  129. package/dist/docusaurus/view-model/members-vm.d.ts.map +1 -1
  130. package/dist/docusaurus/view-model/members-vm.js +17 -702
  131. package/dist/docusaurus/view-model/members-vm.js.map +1 -1
  132. package/dist/docusaurus/view-model/namespaces-vm.d.ts +5 -199
  133. package/dist/docusaurus/view-model/namespaces-vm.d.ts.map +1 -1
  134. package/dist/docusaurus/view-model/namespaces-vm.js +85 -284
  135. package/dist/docusaurus/view-model/namespaces-vm.js.map +1 -1
  136. package/dist/docusaurus/view-model/options.d.ts +0 -43
  137. package/dist/docusaurus/view-model/options.d.ts.map +1 -1
  138. package/dist/docusaurus/view-model/options.js +0 -57
  139. package/dist/docusaurus/view-model/options.js.map +1 -1
  140. package/dist/docusaurus/view-model/pages-vm.d.ts +0 -115
  141. package/dist/docusaurus/view-model/pages-vm.d.ts.map +1 -1
  142. package/dist/docusaurus/view-model/pages-vm.js +39 -162
  143. package/dist/docusaurus/view-model/pages-vm.js.map +1 -1
  144. package/dist/docusaurus/view-model/tree-entries-vm.d.ts +8 -142
  145. package/dist/docusaurus/view-model/tree-entries-vm.d.ts.map +1 -1
  146. package/dist/docusaurus/view-model/tree-entries-vm.js +54 -174
  147. package/dist/docusaurus/view-model/tree-entries-vm.js.map +1 -1
  148. package/dist/docusaurus/view-model/view-model.d.ts +0 -125
  149. package/dist/docusaurus/view-model/view-model.d.ts.map +1 -1
  150. package/dist/docusaurus/view-model/view-model.js +20 -182
  151. package/dist/docusaurus/view-model/view-model.js.map +1 -1
  152. package/dist/docusaurus/workspace.d.ts +1 -126
  153. package/dist/docusaurus/workspace.d.ts.map +1 -1
  154. package/dist/docusaurus/workspace.js +8 -221
  155. package/dist/docusaurus/workspace.js.map +1 -1
  156. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts +7 -492
  157. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts.map +1 -1
  158. package/dist/doxygen/data-model/compounds/compounddef-dm.js +28 -672
  159. package/dist/doxygen/data-model/compounds/compounddef-dm.js.map +1 -1
  160. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts +0 -129
  161. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts.map +1 -1
  162. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js +1 -145
  163. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js.map +1 -1
  164. package/dist/doxygen/data-model/compounds/concepts-dm.d.ts +23 -0
  165. package/dist/doxygen/data-model/compounds/concepts-dm.d.ts.map +1 -0
  166. package/dist/doxygen/data-model/compounds/concepts-dm.js +94 -0
  167. package/dist/doxygen/data-model/compounds/concepts-dm.js.map +1 -0
  168. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts +104 -2848
  169. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts.map +1 -1
  170. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js +73 -3975
  171. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js.map +1 -1
  172. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts +0 -165
  173. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts.map +1 -1
  174. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js +0 -229
  175. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js.map +1 -1
  176. package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts +0 -70
  177. package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts.map +1 -1
  178. package/dist/doxygen/data-model/compounds/doxygentype-dm.js +0 -105
  179. package/dist/doxygen/data-model/compounds/doxygentype-dm.js.map +1 -1
  180. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts +0 -84
  181. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts.map +1 -1
  182. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js +1 -122
  183. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js.map +1 -1
  184. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts +0 -116
  185. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts.map +1 -1
  186. package/dist/doxygen/data-model/compounds/inctype-dm.js +3 -155
  187. package/dist/doxygen/data-model/compounds/inctype-dm.js.map +1 -1
  188. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts +3 -138
  189. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts.map +1 -1
  190. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js +5 -180
  191. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js.map +1 -1
  192. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts +0 -76
  193. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts.map +1 -1
  194. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js +0 -107
  195. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js.map +1 -1
  196. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts +0 -162
  197. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts.map +1 -1
  198. package/dist/doxygen/data-model/compounds/locationtype-dm.js +4 -203
  199. package/dist/doxygen/data-model/compounds/locationtype-dm.js.map +1 -1
  200. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts +2 -443
  201. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts.map +1 -1
  202. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js +19 -475
  203. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js.map +1 -1
  204. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts +0 -141
  205. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts.map +1 -1
  206. package/dist/doxygen/data-model/compounds/memberreftype-dm.js +0 -176
  207. package/dist/doxygen/data-model/compounds/memberreftype-dm.js.map +1 -1
  208. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts +0 -101
  209. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts.map +1 -1
  210. package/dist/doxygen/data-model/compounds/membertype-dm.js +0 -115
  211. package/dist/doxygen/data-model/compounds/membertype-dm.js.map +1 -1
  212. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts +0 -164
  213. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts.map +1 -1
  214. package/dist/doxygen/data-model/compounds/paramtype-dm.js +0 -208
  215. package/dist/doxygen/data-model/compounds/paramtype-dm.js.map +1 -1
  216. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts +0 -139
  217. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts.map +1 -1
  218. package/dist/doxygen/data-model/compounds/referencetype-dm.js +2 -175
  219. package/dist/doxygen/data-model/compounds/referencetype-dm.js.map +1 -1
  220. package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts +0 -120
  221. package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts.map +1 -1
  222. package/dist/doxygen/data-model/compounds/reftexttype-dm.js +2 -141
  223. package/dist/doxygen/data-model/compounds/reftexttype-dm.js.map +1 -1
  224. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts +0 -268
  225. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts.map +1 -1
  226. package/dist/doxygen/data-model/compounds/reftype-dm.js +4 -326
  227. package/dist/doxygen/data-model/compounds/reftype-dm.js.map +1 -1
  228. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts +0 -105
  229. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts.map +1 -1
  230. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js +1 -139
  231. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js.map +1 -1
  232. package/dist/doxygen/data-model/compounds/requirements-dm.d.ts +2 -0
  233. package/dist/doxygen/data-model/compounds/requirements-dm.d.ts.map +1 -0
  234. package/dist/doxygen/data-model/compounds/requirements-dm.js +2 -0
  235. package/dist/doxygen/data-model/compounds/requirements-dm.js.map +1 -0
  236. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts +0 -168
  237. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts.map +1 -1
  238. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js +0 -209
  239. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js.map +1 -1
  240. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts +0 -267
  241. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts.map +1 -1
  242. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js +0 -354
  243. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js.map +1 -1
  244. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts +0 -66
  245. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts.map +1 -1
  246. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js +0 -97
  247. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js.map +1 -1
  248. package/dist/doxygen/data-model/data-model.d.ts +0 -149
  249. package/dist/doxygen/data-model/data-model.d.ts.map +1 -1
  250. package/dist/doxygen/data-model/data-model.js +8 -200
  251. package/dist/doxygen/data-model/data-model.js.map +1 -1
  252. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts +0 -115
  253. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts.map +1 -1
  254. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js +4 -129
  255. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js.map +1 -1
  256. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts +0 -87
  257. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts.map +1 -1
  258. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js +0 -118
  259. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js.map +1 -1
  260. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts +0 -253
  261. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts.map +1 -1
  262. package/dist/doxygen/data-model/doxygen-xml-parser.js +0 -291
  263. package/dist/doxygen/data-model/doxygen-xml-parser.js.map +1 -1
  264. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts +0 -98
  265. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts.map +1 -1
  266. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js +2 -122
  267. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js.map +1 -1
  268. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts +0 -82
  269. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts.map +1 -1
  270. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js +0 -114
  271. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js.map +1 -1
  272. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts +0 -85
  273. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts.map +1 -1
  274. package/dist/doxygen/data-model/index/indexmembertype-dm.js +1 -107
  275. package/dist/doxygen/data-model/index/indexmembertype-dm.js.map +1 -1
  276. package/dist/doxygen/data-model/types.d.ts +0 -104
  277. package/dist/doxygen/data-model/types.d.ts.map +1 -1
  278. package/dist/doxygen/data-model/types.js +0 -52
  279. package/dist/doxygen/data-model/types.js.map +1 -1
  280. package/dist/index.d.ts +5 -16
  281. package/dist/index.d.ts.map +1 -1
  282. package/dist/index.js +5 -42
  283. package/dist/index.js.map +1 -1
  284. package/package.json +49 -52
  285. package/src/cli/main.ts +122 -0
  286. package/src/docusaurus/cli-options.ts +560 -0
  287. package/src/docusaurus/generator.ts +788 -0
  288. package/src/docusaurus/renderers/conceptparts.ts +119 -0
  289. package/src/docusaurus/renderers/descriptiontype.ts +1299 -0
  290. package/src/docusaurus/renderers/docinternalstype.ts +354 -0
  291. package/src/docusaurus/renderers/doclisttype.ts +134 -0
  292. package/src/docusaurus/renderers/doctabletype.ts +220 -0
  293. package/src/docusaurus/renderers/doctitletype.ts +77 -0
  294. package/src/docusaurus/renderers/docvariablelisttype.ts +123 -0
  295. package/src/docusaurus/renderers/docxrefsecttype.ts +84 -0
  296. package/src/docusaurus/renderers/element-renderer-base.ts +112 -0
  297. package/src/docusaurus/renderers/inctype.ts +75 -0
  298. package/src/docusaurus/renderers/linkedtexttype.ts +64 -0
  299. package/src/docusaurus/renderers/listingtype.ts +235 -0
  300. package/src/docusaurus/renderers/paramtype.ts +116 -0
  301. package/src/docusaurus/renderers/referencetype.ts +83 -0
  302. package/src/docusaurus/renderers/reftexttype.ts +81 -0
  303. package/src/docusaurus/renderers/reftype.ts +77 -0
  304. package/src/docusaurus/renderers/renderers.ts +812 -0
  305. package/src/docusaurus/renderers/substringtype.ts +53 -0
  306. package/src/docusaurus/renderers/tableofcontentstype.ts +74 -0
  307. package/src/docusaurus/types.ts +187 -0
  308. package/src/docusaurus/utils.ts +409 -0
  309. package/src/docusaurus/view-model/README.md +12 -0
  310. package/src/docusaurus/view-model/classes-vm.ts +1088 -0
  311. package/src/docusaurus/view-model/collection-base.ts +352 -0
  312. package/src/docusaurus/view-model/compound-base-vm.ts +1340 -0
  313. package/src/docusaurus/view-model/concepts-vm.ts +749 -0
  314. package/src/docusaurus/view-model/description-anchors.ts +107 -0
  315. package/src/docusaurus/view-model/files-and-folders-vm.ts +1293 -0
  316. package/src/docusaurus/view-model/groups-vm.ts +548 -0
  317. package/src/docusaurus/view-model/members-vm.ts +1943 -0
  318. package/src/docusaurus/view-model/namespaces-vm.ts +1037 -0
  319. package/src/docusaurus/view-model/options.ts +95 -0
  320. package/src/docusaurus/view-model/pages-vm.ts +389 -0
  321. package/src/docusaurus/view-model/tree-entries-vm.ts +376 -0
  322. package/src/docusaurus/view-model/view-model.ts +513 -0
  323. package/src/docusaurus/workspace.ts +588 -0
  324. package/src/doxygen/data-model/README.md +13 -0
  325. package/src/doxygen/data-model/compounds/compounddef-dm.ts +1230 -0
  326. package/src/doxygen/data-model/compounds/compoundreftype-dm.ts +266 -0
  327. package/src/doxygen/data-model/compounds/concepts-dm.ts +362 -0
  328. package/src/doxygen/data-model/compounds/descriptiontype-dm.ts +10114 -0
  329. package/src/doxygen/data-model/compounds/docvarlistentrytype-dm.ts +354 -0
  330. package/src/doxygen/data-model/compounds/doxygentype-dm.ts +187 -0
  331. package/src/doxygen/data-model/compounds/enumvaluetype-dm.ts +218 -0
  332. package/src/doxygen/data-model/compounds/inctype-dm.ts +217 -0
  333. package/src/doxygen/data-model/compounds/linkedtexttype-dm.ts +288 -0
  334. package/src/doxygen/data-model/compounds/listofallmemberstype-dm.ts +160 -0
  335. package/src/doxygen/data-model/compounds/locationtype-dm.ts +284 -0
  336. package/src/doxygen/data-model/compounds/memberdeftype-dm.ts +881 -0
  337. package/src/doxygen/data-model/compounds/memberreftype-dm.ts +270 -0
  338. package/src/doxygen/data-model/compounds/membertype-dm.ts +239 -0
  339. package/src/doxygen/data-model/compounds/paramtype-dm.ts +302 -0
  340. package/src/doxygen/data-model/compounds/referencetype-dm.ts +248 -0
  341. package/src/doxygen/data-model/compounds/reftexttype-dm.ts +234 -0
  342. package/src/doxygen/data-model/compounds/reftype-dm.ts +430 -0
  343. package/src/doxygen/data-model/compounds/reimplementtype-dm.ts +201 -0
  344. package/src/doxygen/data-model/compounds/requirements-dm.ts +50 -0
  345. package/src/doxygen/data-model/compounds/sectiondeftype-dm.ts +330 -0
  346. package/src/doxygen/data-model/compounds/tableofcontentstype-dm.ts +564 -0
  347. package/src/doxygen/data-model/compounds/templateparamlisttype-dm.ts +150 -0
  348. package/src/doxygen/data-model/data-model.ts +378 -0
  349. package/src/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.ts +271 -0
  350. package/src/doxygen/data-model/doxyfile/doxyfiletype-dm.ts +200 -0
  351. package/src/doxygen/data-model/doxygen-xml-parser.ts +522 -0
  352. package/src/doxygen/data-model/index/indexcompoundtype-dm.ts +256 -0
  353. package/src/doxygen/data-model/index/indexdoxygentype-dm.ts +196 -0
  354. package/src/doxygen/data-model/index/indexmembertype-dm.ts +230 -0
  355. package/src/doxygen/data-model/types.ts +175 -0
  356. package/src/doxygen/data-model/xsds/README.md +6 -0
  357. package/src/doxygen/data-model/xsds/compound.xsd +1788 -0
  358. package/src/doxygen/data-model/xsds/doxyfile.xsd +365 -0
  359. package/src/doxygen/data-model/xsds/index.xsd +74 -0
  360. package/src/doxygen/data-model/xsds/xml.xsd +23 -0
  361. package/src/index.ts +267 -0
  362. package/src/tsconfig.json +12 -0
  363. package/dist/doxygen2docusaurus.d.ts +0 -4774
  364. package/dist/tsconfig.tsbuildinfo +0 -1
  365. package/dist/tsdoc-metadata.json +0 -11
@@ -0,0 +1,564 @@
1
+ /*
2
+ * This file is part of the xPack project (http://xpack.github.io).
3
+ * Copyright (c) 2025-2026 Liviu Ionescu. All rights reserved.
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose is hereby granted, under the terms of the MIT license.
7
+ *
8
+ * If a copy of the license was not distributed with this file, it can be
9
+ * obtained from https://opensource.org/licenses/mit.
10
+ */
11
+
12
+ // ----------------------------------------------------------------------------
13
+
14
+ import assert from 'node:assert'
15
+ import * as util from 'node:util'
16
+
17
+ import { DoxygenXmlParser } from '../doxygen-xml-parser.js'
18
+ import { AbstractDataModelBase } from '../types.js'
19
+ import { parseDocTitleCmdGroup } from './descriptiontype-dm.js'
20
+
21
+ // ----------------------------------------------------------------------------
22
+
23
+ // <xsd:complexType name="tableofcontentsType">
24
+ // <xsd:sequence>
25
+ // <xsd:choice>
26
+ // <xsd:element name="tocsect" type="tableofcontentsKindType" minOccurs="1" maxOccurs="unbounded" />
27
+ // <xsd:element name="tableofcontents" type="tableofcontentsType" minOccurs="0" maxOccurs="unbounded" />
28
+ // </xsd:choice>
29
+ // </xsd:sequence>
30
+ // </xsd:complexType>
31
+
32
+ /**
33
+ * Abstract base class for table of contents type data models.
34
+ *
35
+ * @remarks
36
+ * Represents table of contents elements within Doxygen XML structures,
37
+ * corresponding to the tableofcontentsType complex type in the XML schema.
38
+ * This class handles the parsing of table of contents structures with
39
+ * mutually exclusive content choices: either table of contents sections
40
+ * or nested table of contents elements. All concrete table of contents
41
+ * data model classes should extend this abstract base to ensure consistent
42
+ * parsing and data representation.
43
+ *
44
+ * @public
45
+ */
46
+ // eslint-disable-next-line max-len
47
+ export abstract class AbstractTableOfContentsType extends AbstractDataModelBase {
48
+ /**
49
+ * Collection of table of contents section data models.
50
+ *
51
+ * @remarks
52
+ * Optional array containing table of contents section elements, part
53
+ * of an exclusive choice with tableOfContents. Each section represents
54
+ * a specific part of the documentation structure with its own name,
55
+ * reference, and potentially nested content.
56
+ */
57
+ tocSect: TocSectDataModel[] | undefined
58
+
59
+ /**
60
+ * Collection of nested table of contents data models.
61
+ *
62
+ * @remarks
63
+ * Optional array containing nested table of contents elements, part
64
+ * of an exclusive choice with tocSect. This allows for recursive
65
+ * table of contents structures to represent complex documentation
66
+ * hierarchies.
67
+ */
68
+ tableOfContents: TableOfContentsDataModel[] | undefined
69
+
70
+ /**
71
+ * Constructs a new AbstractTableOfContentsType instance from XML data.
72
+ *
73
+ * @param xml - The Doxygen XML parser instance for processing XML elements
74
+ * @param element - The XML element containing the table of contents data
75
+ * @param elementName - The name of the XML element being processed
76
+ *
77
+ * @remarks
78
+ * Parses the provided XML element to extract table of contents information
79
+ * following the exclusive choice pattern defined in the XML schema. The
80
+ * constructor processes either table of contents sections or nested table
81
+ * of contents elements, but not both, maintaining the mutually exclusive
82
+ * relationship. This element type has no attributes as per the schema.
83
+ */
84
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
85
+ super(elementName)
86
+
87
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
88
+
89
+ // ------------------------------------------------------------------------
90
+ // Process elements.
91
+
92
+ const innerElements = xml.getInnerElements(element, elementName)
93
+ assert(innerElements.length > 0)
94
+
95
+ for (const innerElement of innerElements) {
96
+ if (xml.hasInnerText(innerElement)) {
97
+ // Ignore texts.
98
+ } else if (xml.hasInnerElement(innerElement, 'tocsect')) {
99
+ // console.log(util.inspect(item))
100
+ this.tocSect ??= []
101
+ this.tocSect.push(new TocSectDataModel(xml, innerElement))
102
+ } else if (xml.hasInnerElement(innerElement, 'tableofcontents')) {
103
+ // console.log(util.inspect(item))
104
+ this.tableOfContents ??= []
105
+ this.tableOfContents.push(
106
+ new TableOfContentsDataModel(xml, innerElement)
107
+ )
108
+ } else {
109
+ console.error(
110
+ `${elementName} element:`,
111
+ Object.keys(innerElement),
112
+ 'not implemented yet in',
113
+ this.constructor.name
114
+ )
115
+ }
116
+ }
117
+ // ------------------------------------------------------------------------
118
+ // Process attributes.
119
+
120
+ assert(!xml.hasAttributes(element))
121
+
122
+ // ------------------------------------------------------------------------
123
+
124
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
125
+ }
126
+ }
127
+
128
+ // ----------------------------------------------------------------------------
129
+
130
+ // <xsd:element name="tableofcontents" type="tableofcontentsType" minOccurs="0" maxOccurs="1" />
131
+
132
+ /**
133
+ * Concrete data model class for table of contents elements.
134
+ *
135
+ * @remarks
136
+ * Represents individual table of contents elements found within Doxygen
137
+ * compound XML structures. This class extends the abstract base to provide
138
+ * specific handling for 'tableofcontents' elements, which define the
139
+ * structural navigation and organisation of documentation content. Each
140
+ * table of contents provides hierarchical access to documentation sections
141
+ * and subsections.
142
+ *
143
+ * @public
144
+ */
145
+ export class TableOfContentsDataModel extends AbstractTableOfContentsType {
146
+ /**
147
+ * Constructs a new TableOfContentsDataModel instance from XML data.
148
+ *
149
+ * @param xml - The Doxygen XML parser instance for processing XML elements
150
+ * @param element - The XML element containing the table of contents data
151
+ *
152
+ * @remarks
153
+ * Initialises the table of contents data model by parsing the provided
154
+ * XML element as a 'tableofcontents' element type. The constructor
155
+ * delegates to the parent class for common table of contents processing
156
+ * whilst specifying the element name for proper XML structure handling.
157
+ */
158
+ constructor(xml: DoxygenXmlParser, element: object) {
159
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
160
+ super(xml, element, 'tableofcontents')
161
+ }
162
+ }
163
+
164
+ // ----------------------------------------------------------------------------
165
+
166
+ // <xsd:complexType name="tableofcontentsKindType">
167
+ // <xsd:sequence>
168
+ // <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/> <!-- obsolete, use docs instead! -->
169
+ // <xsd:element name="docs" type="tableofcontentsNameType" minOccurs="1" maxOccurs="1"/>
170
+ // <xsd:element name="reference" type="xsd:string" minOccurs="1" maxOccurs="1"/>
171
+ // <xsd:element name="tableofcontents" type="tableofcontentsType" minOccurs="0" maxOccurs="unbounded" />
172
+ // </xsd:sequence>
173
+ // </xsd:complexType>
174
+
175
+ /**
176
+ * Abstract base class for table of contents kind type data models.
177
+ *
178
+ * @remarks
179
+ * Represents table of contents kind elements within Doxygen XML structures,
180
+ * corresponding to the tableofcontentsKindType complex type in the XML
181
+ * schema. This class handles the parsing of named table of contents sections
182
+ * with references and optional nested table of contents structures. All
183
+ * concrete table of contents kind data model classes should extend this
184
+ * abstract base to ensure consistent parsing and data representation.
185
+ *
186
+ * @public
187
+ */
188
+ // eslint-disable-next-line max-len
189
+ export abstract class AbstractTableOfContentsKindType extends AbstractDataModelBase {
190
+ /**
191
+ * The name of the table of contents section.
192
+ *
193
+ * @remarks
194
+ * Mandatory element extracted from the XML structure that provides
195
+ * the display name or title for this table of contents section.
196
+ * This name is used for navigation and presentation purposes.
197
+ */
198
+ name = ''
199
+
200
+ /**
201
+ * The reference identifier for this table of contents section.
202
+ *
203
+ * @remarks
204
+ * Mandatory element that provides a reference or link target for
205
+ * this table of contents section. This reference is used to create
206
+ * navigation links and cross-references within the documentation.
207
+ */
208
+ reference = ''
209
+
210
+ /**
211
+ * Collection of nested table of contents data models.
212
+ *
213
+ * @remarks
214
+ * Optional array containing nested table of contents elements that
215
+ * create hierarchical documentation structures. This allows for
216
+ * multi-level table of contents organisation with subsections and
217
+ * sub-subsections as needed.
218
+ */
219
+ tableOfContents: TableOfContentsDataModel[] | undefined
220
+
221
+ /**
222
+ * Constructs a new AbstractTableOfContentsKindType instance from XML data.
223
+ *
224
+ * @param xml - The Doxygen XML parser instance for processing XML elements
225
+ * @param element - The XML element containing the table of contents kind data
226
+ * @param elementName - The name of the XML element being processed
227
+ *
228
+ * @remarks
229
+ * Parses the provided XML element to extract table of contents kind
230
+ * information including mandatory name and reference elements, along with
231
+ * optional nested table of contents structures. The constructor handles
232
+ * unknown 'docs' elements that may appear but are not defined in the DTD.
233
+ * This element type has no attributes as per the XML schema.
234
+ */
235
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
236
+ super(elementName)
237
+
238
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
239
+
240
+ // ------------------------------------------------------------------------
241
+ // Process elements.
242
+
243
+ const innerElements = xml.getInnerElements(element, elementName)
244
+ assert(innerElements.length > 0)
245
+
246
+ for (const innerElement of innerElements) {
247
+ if (xml.hasInnerText(innerElement)) {
248
+ // Ignore texts.
249
+ } else if (xml.isInnerElementText(innerElement, 'name')) {
250
+ this.name = xml.getInnerElementText(innerElement, 'name')
251
+ } else if (xml.isInnerElementText(innerElement, 'reference')) {
252
+ this.reference = xml.getInnerElementText(innerElement, 'reference')
253
+ } else if (xml.hasInnerElement(innerElement, 'docs')) {
254
+ // WARNING not in dtd, type unknown.
255
+ } else if (xml.hasInnerElement(innerElement, 'tableofcontents')) {
256
+ // console.log(util.inspect(item))
257
+ this.tableOfContents ??= []
258
+ this.tableOfContents.push(
259
+ new TableOfContentsDataModel(xml, innerElement)
260
+ )
261
+ } else {
262
+ console.error(
263
+ `${elementName} element:`,
264
+ Object.keys(innerElement),
265
+ 'not implemented yet in',
266
+ this.constructor.name
267
+ )
268
+ }
269
+ }
270
+ // ------------------------------------------------------------------------
271
+ // Process attributes.
272
+
273
+ assert(!xml.hasAttributes(element))
274
+
275
+ // ------------------------------------------------------------------------
276
+
277
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
278
+ }
279
+ }
280
+
281
+ // ----------------------------------------------------------------------------
282
+
283
+ // <xsd:element name="tocsect" type="tableofcontentsKindType" minOccurs="1" maxOccurs="unbounded" />
284
+
285
+ /**
286
+ * Concrete data model class for table of contents section elements.
287
+ *
288
+ * @remarks
289
+ * Represents individual table of contents section elements found within
290
+ * Doxygen XML structures. This class extends the abstract base to provide
291
+ * specific handling for 'tocsect' elements, which define named sections
292
+ * within the table of contents hierarchy. Each section includes a name,
293
+ * reference, and potentially nested subsections for comprehensive
294
+ * documentation navigation.
295
+ *
296
+ * @public
297
+ */
298
+ export class TocSectDataModel extends AbstractTableOfContentsKindType {
299
+ /**
300
+ * Constructs a new TocSectDataModel instance from XML data.
301
+ *
302
+ * @param xml - The Doxygen XML parser instance for processing XML elements
303
+ * @param element - The XML element containing the table of contents section
304
+ * data
305
+ *
306
+ * @remarks
307
+ * Initialises the table of contents section data model by parsing the
308
+ * provided XML element as a 'tocsect' element type. The constructor
309
+ * delegates to the parent class for common section processing whilst
310
+ * specifying the element name for proper XML structure handling.
311
+ */
312
+ constructor(xml: DoxygenXmlParser, element: object) {
313
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
314
+ super(xml, element, 'tocsect')
315
+ }
316
+ }
317
+
318
+ // ----------------------------------------------------------------------------
319
+
320
+ // <xsd:complexType name="docTocItemType" mixed="true">
321
+ // <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
322
+ // <xsd:attribute name="id" type="xsd:string" />
323
+ // </xsd:complexType>
324
+
325
+ /**
326
+ * Abstract base class for document table of contents item type data models.
327
+ *
328
+ * @remarks
329
+ * Represents table of contents item elements within Doxygen XML structures,
330
+ * corresponding to the docTocItemType complex type in the XML schema. This
331
+ * class handles the parsing of mixed content including text and document
332
+ * title command groups, along with mandatory identifier attributes. All
333
+ * concrete table of contents item data model classes should extend this
334
+ * abstract base to ensure consistent parsing and data representation.
335
+ *
336
+ * @public
337
+ */
338
+ export abstract class AbstractTocDocItemType extends AbstractDataModelBase {
339
+ /**
340
+ * The unique identifier for this table of contents item.
341
+ *
342
+ * @remarks
343
+ * Mandatory attribute that provides a unique identifier for referencing
344
+ * this table of contents item within the documentation structure. This
345
+ * identifier is used for cross-referencing and navigation purposes.
346
+ */
347
+ id = ''
348
+
349
+ /**
350
+ * Constructs a new AbstractTocDocItemType instance from XML data.
351
+ *
352
+ * @param xml - The Doxygen XML parser instance for processing XML elements
353
+ * @param element - The XML element containing the table of contents item data
354
+ * @param elementName - The name of the XML element being processed
355
+ *
356
+ * @remarks
357
+ * Parses the provided XML element to extract table of contents item
358
+ * information including mixed content (text and document title command
359
+ * groups) and the mandatory identifier attribute. The constructor processes
360
+ * the mixed content model defined in the XML schema, handling both text
361
+ * nodes and structured command groups.
362
+ */
363
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
364
+ super(elementName)
365
+
366
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
367
+
368
+ // ------------------------------------------------------------------------
369
+ // Process elements.
370
+
371
+ const innerElements = xml.getInnerElements(element, elementName)
372
+ assert(innerElements.length > 0)
373
+
374
+ this.children = []
375
+
376
+ for (const innerElement of innerElements) {
377
+ if (xml.hasInnerText(innerElement)) {
378
+ this.children.push(xml.getInnerText(innerElement))
379
+ } else {
380
+ this.children.push(
381
+ ...parseDocTitleCmdGroup(xml, innerElement, elementName)
382
+ )
383
+ }
384
+ }
385
+
386
+ // ------------------------------------------------------------------------
387
+ // Process attributes.
388
+
389
+ assert(xml.hasAttributes(element))
390
+
391
+ const attributesNames = xml.getAttributesNames(element)
392
+ for (const attributeName of attributesNames) {
393
+ if (attributeName === '@_id') {
394
+ assert(this.id.length === 0)
395
+ this.id = xml.getAttributeStringValue(element, '@_id')
396
+ } else {
397
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
398
+ console.error(
399
+ `${elementName} attribute:`,
400
+ attributeName,
401
+ 'not implemented yet in',
402
+ this.constructor.name
403
+ )
404
+ }
405
+ }
406
+
407
+ assert(this.id.length > 0)
408
+
409
+ // ------------------------------------------------------------------------
410
+
411
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
412
+ }
413
+ }
414
+
415
+ // <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
416
+
417
+ /**
418
+ * Concrete data model class for table of contents item elements.
419
+ *
420
+ * @remarks
421
+ * Represents individual table of contents item elements found within
422
+ * Doxygen XML structures. This class extends the abstract base to provide
423
+ * specific handling for 'tocitem' elements, which define individual entries
424
+ * within table of contents lists. Each item includes mixed content and
425
+ * a unique identifier for navigation and cross-referencing purposes.
426
+ *
427
+ * @public
428
+ */
429
+ export class TocItemDataModel extends AbstractTocDocItemType {
430
+ /**
431
+ * Constructs a new TocItemDataModel instance from XML data.
432
+ *
433
+ * @param xml - The Doxygen XML parser instance for processing XML elements
434
+ * @param element - The XML element containing the table of contents item data
435
+ *
436
+ * @remarks
437
+ * Initialises the table of contents item data model by parsing the provided
438
+ * XML element as a 'tocitem' element type. The constructor delegates to
439
+ * the parent class for common item processing whilst specifying the element
440
+ * name for proper XML structure handling.
441
+ */
442
+ constructor(xml: DoxygenXmlParser, element: object) {
443
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
444
+ super(xml, element, 'tocitem')
445
+ }
446
+ }
447
+
448
+ // ----------------------------------------------------------------------------
449
+
450
+ // <xsd:complexType name="docTocListType">
451
+ // <xsd:sequence>
452
+ // <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
453
+ // </xsd:sequence>
454
+ // </xsd:complexType>
455
+
456
+ /**
457
+ * Abstract base class for document table of contents list type data models.
458
+ *
459
+ * @remarks
460
+ * Represents table of contents list elements within Doxygen XML structures,
461
+ * corresponding to the docTocListType complex type in the XML schema. This
462
+ * class handles the parsing of collections of table of contents items that
463
+ * form structured lists for documentation navigation. All concrete table
464
+ * of contents list data model classes should extend this abstract base to
465
+ * ensure consistent parsing and data representation.
466
+ *
467
+ * @public
468
+ */
469
+ export abstract class AbstractDocTocListType extends AbstractDataModelBase {
470
+ /**
471
+ * Collection of table of contents item data models.
472
+ *
473
+ * @remarks
474
+ * Optional array containing table of contents item elements that comprise
475
+ * the list structure. Each item represents an individual entry within the
476
+ * table of contents with its own content and identifier. The array supports
477
+ * zero to many items as per the XML schema.
478
+ */
479
+ tocItems?: TocItemDataModel[] | undefined
480
+
481
+ /**
482
+ * Constructs a new AbstractDocTocListType instance from XML data.
483
+ *
484
+ * @param xml - The Doxygen XML parser instance for processing XML elements
485
+ * @param element - The XML element containing the table of contents list data
486
+ * @param elementName - The name of the XML element being processed
487
+ *
488
+ * @remarks
489
+ * Parses the provided XML element to extract table of contents list
490
+ * information including collections of table of contents items. The
491
+ * constructor processes item elements into TocItemDataModel instances
492
+ * when present. This element type has no attributes as per the XML schema.
493
+ */
494
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
495
+ super(elementName)
496
+
497
+ const innerElements = xml.getInnerElements(element, elementName)
498
+ assert(innerElements.length > 0)
499
+
500
+ for (const innerElement of innerElements) {
501
+ if (xml.hasInnerText(innerElement)) {
502
+ // Ignore texts.
503
+ } else if (xml.hasInnerElement(innerElement, 'tocitem')) {
504
+ // console.log(util.inspect(item))
505
+ this.tocItems ??= []
506
+ this.tocItems.push(new TocItemDataModel(xml, innerElement))
507
+ } else {
508
+ console.error(
509
+ `${elementName} element:`,
510
+ Object.keys(innerElement),
511
+ 'not implemented yet in',
512
+ this.constructor.name
513
+ )
514
+ }
515
+ }
516
+
517
+ // ------------------------------------------------------------------------
518
+ // Process attributes.
519
+
520
+ // If the object has no attributes.
521
+ assert(!xml.hasAttributes(element))
522
+
523
+ // ------------------------------------------------------------------------
524
+
525
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
526
+ }
527
+ }
528
+
529
+ // ----------------------------------------------------------------------------
530
+
531
+ // <xsd:element name="toclist" type="docTocListType" />
532
+
533
+ /**
534
+ * Concrete data model class for table of contents list elements.
535
+ *
536
+ * @remarks
537
+ * Represents individual table of contents list elements found within
538
+ * Doxygen XML structures. This class extends the abstract base to provide
539
+ * specific handling for 'toclist' elements, which define structured lists
540
+ * of table of contents items for documentation navigation. Each list
541
+ * contains multiple items that collectively form a navigational structure.
542
+ *
543
+ * @public
544
+ */
545
+ export class TocListDataModel extends AbstractDocTocListType {
546
+ /**
547
+ * Constructs a new TocListDataModel instance from XML data.
548
+ *
549
+ * @param xml - The Doxygen XML parser instance for processing XML elements
550
+ * @param element - The XML element containing the table of contents list data
551
+ *
552
+ * @remarks
553
+ * Initialises the table of contents list data model by parsing the provided
554
+ * XML element as a 'toclist' element type. The constructor delegates to
555
+ * the parent class for common list processing whilst specifying the element
556
+ * name for proper XML structure handling.
557
+ */
558
+ constructor(xml: DoxygenXmlParser, element: object) {
559
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
560
+ super(xml, element, 'toclist')
561
+ }
562
+ }
563
+
564
+ // ----------------------------------------------------------------------------