@simple-reporting/base 0.1.112 → 1.0.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 (763) hide show
  1. package/.github/workflows/npm-publish.yml +0 -1
  2. package/cli.js +9 -2
  3. package/dev/index.html +3 -2
  4. package/dev/livingdocs.config.json +6 -228
  5. package/dev/package.json +24 -21
  6. package/dev/pdf/pdf-configuration-debug.xml +3 -0
  7. package/dev/public/downloads/downloads_de.json +1 -0
  8. package/dev/public/downloads/downloads_en.json +1 -0
  9. package/dev/public/favicon.png +0 -0
  10. package/dev/public/html/de/Downloads.html +3 -0
  11. package/dev/public/html/de/Home.html +3 -0
  12. package/dev/public/html/de/Suche.html +3 -0
  13. package/dev/public/html/en/Downloads.html +3 -0
  14. package/dev/public/html/en/Home.html +3 -0
  15. package/dev/public/html/en/Suche.html +3 -0
  16. package/dev/public/json/routing_de.json +86 -0
  17. package/dev/public/json/routing_en.json +86 -0
  18. package/dev/public/json/settings.json +8 -0
  19. package/dev/public/json/translations_hosting.json +1 -0
  20. package/dev/src/App.vue +23 -34
  21. package/dev/src/Autoload.ts +1 -1
  22. package/dev/src/Dialog.vue +99 -0
  23. package/dev/src/assets/fonts/Inter/Inter-Regular.ttf +0 -0
  24. package/dev/src/assets/fonts/Inter/Inter-Regular.woff2 +0 -0
  25. package/dev/src/assets/fonts/Inter/Inter-SemiBold.ttf +0 -0
  26. package/dev/src/assets/fonts/Inter/Inter-SemiBold.woff2 +0 -0
  27. package/dev/src/assets/fonts/Inter/inter.scss +17 -0
  28. package/dev/src/assets/images/next.svg +12 -0
  29. package/dev/src/assets/images/prev.svg +12 -0
  30. package/dev/src/assets/images/toTop.svg +12 -0
  31. package/dev/src/assets/scss/app.scss +1 -1
  32. package/dev/src/assets/scss/{ldd.scss → editor.scss} +6 -6
  33. package/dev/src/assets/scss/general.scss +53 -11
  34. package/dev/src/assets/scss/pdf.scss +137 -1
  35. package/dev/src/assets/scss/placeholders.scss +226 -0
  36. package/dev/src/assets/scss/print.scss +1 -1
  37. package/dev/src/assets/scss/web.scss +32 -1
  38. package/dev/src/assets/scss/word.scss +1 -1
  39. package/dev/src/components/BypassLinks.vue +90 -0
  40. package/dev/src/components/MainNavigation.vue +6 -200
  41. package/dev/src/components/NavLanguages.vue +57 -0
  42. package/dev/src/components/PageFooter.vue +11 -52
  43. package/dev/src/components/PageHeader.vue +27 -135
  44. package/dev/src/components/PageMain.vue +13 -0
  45. package/dev/src/components/PrevNext.vue +130 -106
  46. package/dev/src/components/SrlPage/KFCApplication/hooks/kfcData.ts +2 -2
  47. package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison.scss +21 -21
  48. package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-loading.scss +3 -3
  49. package/dev/src/components/SrlPage/KFCApplication/scss/_srl-button-kfc.scss +2 -2
  50. package/dev/src/components/Svg/Close.vue +14 -0
  51. package/dev/src/entries/main.ts +4 -0
  52. package/dev/src/entries/pdf.ts +2 -0
  53. package/dev/src/i18n/index.ts +12 -42
  54. package/dev/src/i18n/translation.ts +6 -6
  55. package/dev/src/locales/de.json +7 -13
  56. package/dev/src/locales/en.json +7 -13
  57. package/dev/src/router/index.ts +30 -33
  58. package/dev/src/views/ArticleView.vue +6 -71
  59. package/dev/src/views/DevView.vue +861 -0
  60. package/dev/src/views/HomeView.vue +2 -32
  61. package/dev/src/views/PageNotFound.vue +8 -4
  62. package/dev/srl.config.json +754 -0
  63. package/dev/tsconfig.app.json +1 -4
  64. package/dev/tsconfig.node.json +1 -0
  65. package/dev/vite.config.ts +4 -13
  66. package/initTestProject.js +91 -0
  67. package/jest.config.mjs +200 -0
  68. package/livingdocs/010.Titles/010.title-h1/ld-conf.json +5 -0
  69. package/livingdocs/010.Titles/010.title-h1/scss/app.scss +1 -0
  70. package/livingdocs/010.Titles/010.title-h1/scss/editor.scss +1 -0
  71. package/livingdocs/010.Titles/010.title-h1/scss/general.scss +5 -0
  72. package/livingdocs/010.Titles/010.title-h1/scss/xbrl.scss +1 -0
  73. package/livingdocs/010.Titles/010.title-h1/title-h1.html +5 -0
  74. package/livingdocs/010.Titles/020.title-h2/ld-conf.json +10 -0
  75. package/livingdocs/010.Titles/020.title-h2/properties.json +27 -0
  76. package/livingdocs/010.Titles/020.title-h2/scss/app.scss +1 -0
  77. package/livingdocs/010.Titles/020.title-h2/scss/editor.scss +1 -0
  78. package/livingdocs/010.Titles/020.title-h2/scss/general.scss +21 -0
  79. package/livingdocs/010.Titles/020.title-h2/scss/xbrl.scss +1 -0
  80. package/livingdocs/010.Titles/020.title-h2/title-h2.html +22 -0
  81. package/livingdocs/010.Titles/030.title-h3/ld-conf.json +10 -0
  82. package/livingdocs/010.Titles/030.title-h3/properties.json +23 -0
  83. package/livingdocs/010.Titles/030.title-h3/scss/app.scss +1 -0
  84. package/livingdocs/010.Titles/030.title-h3/scss/editor.scss +1 -0
  85. package/livingdocs/010.Titles/030.title-h3/scss/general.scss +21 -0
  86. package/livingdocs/010.Titles/030.title-h3/scss/xbrl.scss +1 -0
  87. package/livingdocs/010.Titles/030.title-h3/title-h3.html +22 -0
  88. package/livingdocs/010.Titles/040.title-h4/ld-conf.json +10 -0
  89. package/livingdocs/010.Titles/040.title-h4/properties.json +19 -0
  90. package/livingdocs/010.Titles/040.title-h4/scss/app.scss +1 -0
  91. package/livingdocs/010.Titles/040.title-h4/scss/editor.scss +1 -0
  92. package/livingdocs/010.Titles/040.title-h4/scss/general.scss +21 -0
  93. package/livingdocs/010.Titles/040.title-h4/scss/xbrl.scss +1 -0
  94. package/livingdocs/010.Titles/040.title-h4/title-h4.html +22 -0
  95. package/livingdocs/010.Titles/050.title-h5/ld-conf.json +5 -0
  96. package/livingdocs/010.Titles/050.title-h5/properties.json +15 -0
  97. package/livingdocs/010.Titles/050.title-h5/scss/app.scss +1 -0
  98. package/livingdocs/010.Titles/050.title-h5/scss/editor.scss +1 -0
  99. package/livingdocs/010.Titles/050.title-h5/scss/general.scss +6 -0
  100. package/livingdocs/010.Titles/050.title-h5/scss/xbrl.scss +1 -0
  101. package/livingdocs/010.Titles/050.title-h5/title-h5.html +5 -0
  102. package/livingdocs/010.Titles/060.title-h6/ld-conf.json +5 -0
  103. package/livingdocs/010.Titles/060.title-h6/scss/app.scss +1 -0
  104. package/livingdocs/010.Titles/060.title-h6/scss/editor.scss +1 -0
  105. package/livingdocs/010.Titles/060.title-h6/scss/general.scss +6 -0
  106. package/livingdocs/010.Titles/060.title-h6/scss/xbrl.scss +1 -0
  107. package/livingdocs/010.Titles/060.title-h6/title-h6.html +5 -0
  108. package/livingdocs/020.Text/010.lead/ld-conf.json +10 -0
  109. package/livingdocs/020.Text/010.lead/lead.html +7 -0
  110. package/livingdocs/020.Text/010.lead/scss/app.scss +1 -0
  111. package/livingdocs/020.Text/010.lead/scss/editor.scss +1 -0
  112. package/livingdocs/020.Text/010.lead/scss/general.scss +6 -0
  113. package/livingdocs/020.Text/010.lead/scss/xbrl.scss +1 -0
  114. package/livingdocs/020.Text/020.paragraph/ld-conf.json +5 -0
  115. package/livingdocs/{Text/paragraph → 020.Text/020.paragraph}/paragraph.html +2 -13
  116. package/livingdocs/020.Text/020.paragraph/scss/app.scss +1 -0
  117. package/livingdocs/020.Text/020.paragraph/scss/editor.scss +1 -0
  118. package/livingdocs/020.Text/020.paragraph/scss/general.scss +6 -0
  119. package/livingdocs/020.Text/020.paragraph/scss/web.scss +0 -0
  120. package/livingdocs/020.Text/020.paragraph/scss/word.scss +0 -0
  121. package/livingdocs/020.Text/020.paragraph/scss/xbrl.scss +1 -0
  122. package/livingdocs/020.Text/030.paragraph-strong/ld-conf.json +5 -0
  123. package/livingdocs/020.Text/030.paragraph-strong/paragraph.html +16 -0
  124. package/livingdocs/020.Text/030.paragraph-strong/scss/app.scss +1 -0
  125. package/livingdocs/020.Text/030.paragraph-strong/scss/editor.scss +0 -0
  126. package/livingdocs/020.Text/030.paragraph-strong/scss/general.scss +5 -0
  127. package/livingdocs/020.Text/030.paragraph-strong/scss/pdf.scss +1 -0
  128. package/livingdocs/020.Text/030.paragraph-strong/scss/web.scss +0 -0
  129. package/livingdocs/020.Text/030.paragraph-strong/scss/word.scss +0 -0
  130. package/livingdocs/020.Text/030.paragraph-strong/scss/xbrl.scss +1 -0
  131. package/livingdocs/020.Text/040.link/ld-conf.json +15 -0
  132. package/livingdocs/020.Text/040.link/link.html +12 -0
  133. package/livingdocs/020.Text/040.link/scss/app.scss +1 -0
  134. package/livingdocs/020.Text/040.link/scss/editor.scss +1 -0
  135. package/livingdocs/020.Text/040.link/scss/general.scss +6 -0
  136. package/livingdocs/020.Text/040.link/scss/pdf.scss +0 -0
  137. package/livingdocs/020.Text/040.link/scss/web.scss +0 -0
  138. package/livingdocs/020.Text/040.link/scss/word.scss +0 -0
  139. package/livingdocs/020.Text/040.link/scss/xbrl.scss +1 -0
  140. package/livingdocs/020.Text/050.quote/ld-conf.json +5 -0
  141. package/livingdocs/020.Text/050.quote/quote.html +15 -0
  142. package/livingdocs/020.Text/050.quote/scss/app.scss +1 -0
  143. package/livingdocs/020.Text/050.quote/scss/editor.scss +1 -0
  144. package/livingdocs/020.Text/050.quote/scss/general.scss +17 -0
  145. package/livingdocs/020.Text/050.quote/scss/pdf.scss +0 -0
  146. package/livingdocs/020.Text/050.quote/scss/web.scss +0 -0
  147. package/livingdocs/020.Text/050.quote/scss/word.scss +0 -0
  148. package/livingdocs/020.Text/050.quote/scss/xbrl.scss +1 -0
  149. package/livingdocs/020.Text/060.quote-with-portrait/ld-conf.json +11 -0
  150. package/livingdocs/020.Text/060.quote-with-portrait/quote-with-portrait.html +18 -0
  151. package/livingdocs/020.Text/060.quote-with-portrait/scss/app.scss +1 -0
  152. package/livingdocs/020.Text/060.quote-with-portrait/scss/editor.scss +1 -0
  153. package/livingdocs/020.Text/060.quote-with-portrait/scss/general.scss +17 -0
  154. package/livingdocs/020.Text/060.quote-with-portrait/scss/pdf.scss +29 -0
  155. package/livingdocs/020.Text/060.quote-with-portrait/scss/web.scss +24 -0
  156. package/livingdocs/020.Text/060.quote-with-portrait/scss/word.scss +0 -0
  157. package/livingdocs/020.Text/060.quote-with-portrait/scss/xbrl.scss +1 -0
  158. package/livingdocs/020.Text/070.footnote-container/footnote-container.html +6 -0
  159. package/livingdocs/020.Text/070.footnote-container/ld-conf.json +18 -0
  160. package/livingdocs/020.Text/070.footnote-container/scss/app.scss +1 -0
  161. package/livingdocs/020.Text/070.footnote-container/scss/editor.scss +1 -0
  162. package/livingdocs/020.Text/070.footnote-container/scss/general.scss +5 -0
  163. package/livingdocs/020.Text/070.footnote-container/scss/pdf.scss +0 -0
  164. package/livingdocs/020.Text/070.footnote-container/scss/web.scss +6 -0
  165. package/livingdocs/020.Text/070.footnote-container/scss/word.scss +0 -0
  166. package/livingdocs/020.Text/070.footnote-container/scss/xbrl.scss +1 -0
  167. package/livingdocs/020.Text/080.footnote-item/footnote-item.html +6 -0
  168. package/livingdocs/020.Text/080.footnote-item/ld-conf.json +5 -0
  169. package/livingdocs/020.Text/080.footnote-item/scss/app.scss +1 -0
  170. package/livingdocs/020.Text/080.footnote-item/scss/editor.scss +1 -0
  171. package/livingdocs/020.Text/080.footnote-item/scss/general.scss +28 -0
  172. package/livingdocs/020.Text/080.footnote-item/scss/pdf.scss +0 -0
  173. package/livingdocs/020.Text/080.footnote-item/scss/web.scss +0 -0
  174. package/livingdocs/020.Text/080.footnote-item/scss/word.scss +0 -0
  175. package/livingdocs/020.Text/080.footnote-item/scss/xbrl.scss +1 -0
  176. package/livingdocs/030.Lists/010.unordered-list/ld-conf.json +18 -0
  177. package/livingdocs/030.Lists/010.unordered-list/scss/app.scss +1 -0
  178. package/livingdocs/030.Lists/010.unordered-list/scss/editor.scss +1 -0
  179. package/livingdocs/030.Lists/010.unordered-list/scss/general.scss +12 -0
  180. package/livingdocs/030.Lists/010.unordered-list/scss/pdf.scss +0 -0
  181. package/livingdocs/030.Lists/010.unordered-list/scss/web.scss +0 -0
  182. package/livingdocs/030.Lists/010.unordered-list/scss/word.scss +0 -0
  183. package/livingdocs/030.Lists/010.unordered-list/scss/xbrl.scss +1 -0
  184. package/livingdocs/030.Lists/010.unordered-list/unordered-list.html +6 -0
  185. package/livingdocs/030.Lists/020.ordered-list/ld-conf.json +18 -0
  186. package/livingdocs/030.Lists/020.ordered-list/ordered-list.html +6 -0
  187. package/livingdocs/030.Lists/020.ordered-list/scss/app.scss +1 -0
  188. package/livingdocs/030.Lists/020.ordered-list/scss/editor.scss +1 -0
  189. package/livingdocs/030.Lists/020.ordered-list/scss/general.scss +9 -0
  190. package/livingdocs/030.Lists/020.ordered-list/scss/pdf.scss +0 -0
  191. package/livingdocs/030.Lists/020.ordered-list/scss/web.scss +0 -0
  192. package/livingdocs/030.Lists/020.ordered-list/scss/word.scss +0 -0
  193. package/livingdocs/030.Lists/020.ordered-list/scss/xbrl.scss +1 -0
  194. package/livingdocs/030.Lists/030.alphanumeric-list/alphanumeric-list.html +6 -0
  195. package/livingdocs/030.Lists/030.alphanumeric-list/ld-conf.json +18 -0
  196. package/livingdocs/030.Lists/030.alphanumeric-list/scss/app.scss +1 -0
  197. package/livingdocs/030.Lists/030.alphanumeric-list/scss/editor.scss +1 -0
  198. package/livingdocs/030.Lists/030.alphanumeric-list/scss/general.scss +9 -0
  199. package/livingdocs/030.Lists/030.alphanumeric-list/scss/pdf.scss +0 -0
  200. package/livingdocs/030.Lists/030.alphanumeric-list/scss/web.scss +0 -0
  201. package/livingdocs/030.Lists/030.alphanumeric-list/scss/word.scss +0 -0
  202. package/livingdocs/030.Lists/030.alphanumeric-list/scss/xbrl.scss +1 -0
  203. package/livingdocs/030.Lists/040.list-item/ld-conf.json +5 -0
  204. package/livingdocs/030.Lists/040.list-item/list-item.html +5 -0
  205. package/livingdocs/030.Lists/040.list-item/scss/app.scss +1 -0
  206. package/livingdocs/030.Lists/040.list-item/scss/editor.scss +1 -0
  207. package/livingdocs/030.Lists/040.list-item/scss/general.scss +35 -0
  208. package/livingdocs/030.Lists/040.list-item/scss/pdf.scss +0 -0
  209. package/livingdocs/030.Lists/040.list-item/scss/web.scss +0 -0
  210. package/livingdocs/030.Lists/040.list-item/scss/word.scss +0 -0
  211. package/livingdocs/030.Lists/040.list-item/scss/xbrl.scss +1 -0
  212. package/livingdocs/040.Media/010.table/ld-conf.json +15 -0
  213. package/livingdocs/040.Media/010.table/properties.json +32 -0
  214. package/livingdocs/040.Media/010.table/scss/app.scss +1 -0
  215. package/livingdocs/040.Media/010.table/scss/editor.scss +1 -0
  216. package/livingdocs/040.Media/010.table/scss/general.scss +328 -0
  217. package/livingdocs/040.Media/010.table/scss/pdf.scss +34 -0
  218. package/livingdocs/040.Media/010.table/scss/web.scss +14 -0
  219. package/livingdocs/040.Media/010.table/scss/word.scss +0 -0
  220. package/livingdocs/040.Media/010.table/scss/xbrl.scss +1 -0
  221. package/livingdocs/040.Media/010.table/table.html +9 -0
  222. package/livingdocs/040.Media/020.image/image.html +40 -0
  223. package/livingdocs/040.Media/020.image/ld-conf.json +25 -0
  224. package/livingdocs/040.Media/020.image/scss/app.scss +1 -0
  225. package/livingdocs/040.Media/020.image/scss/editor.scss +1 -0
  226. package/livingdocs/040.Media/020.image/scss/general.scss +17 -0
  227. package/livingdocs/040.Media/020.image/scss/pdf.scss +26 -0
  228. package/livingdocs/040.Media/020.image/scss/web.scss +1 -0
  229. package/livingdocs/040.Media/020.image/scss/word.scss +0 -0
  230. package/livingdocs/040.Media/020.image/scss/xbrl.scss +5 -0
  231. package/livingdocs/040.Media/030.video/ld-conf.json +19 -0
  232. package/livingdocs/040.Media/030.video/scss/app.scss +1 -0
  233. package/livingdocs/040.Media/030.video/scss/editor.scss +1 -0
  234. package/livingdocs/040.Media/030.video/scss/general.scss +5 -0
  235. package/livingdocs/040.Media/030.video/scss/pdf.scss +0 -0
  236. package/livingdocs/040.Media/030.video/scss/web.scss +12 -0
  237. package/livingdocs/040.Media/030.video/scss/word.scss +0 -0
  238. package/livingdocs/040.Media/030.video/scss/xbrl.scss +5 -0
  239. package/livingdocs/040.Media/030.video/video.html +59 -0
  240. package/livingdocs/040.Media/040.interactive-element/interactive-element.html +27 -0
  241. package/livingdocs/040.Media/040.interactive-element/ld-conf.json +6 -0
  242. package/livingdocs/050.Hero-and-Slider/.gitkeep +0 -0
  243. package/livingdocs/060.Buttons/.gitkeep +0 -0
  244. package/livingdocs/070.Container/010.aside-content-container/aside-content-container.html +10 -0
  245. package/livingdocs/070.Container/010.aside-content-container/ld-conf.json +20 -0
  246. package/livingdocs/070.Container/010.aside-content-container/properties.json +7 -0
  247. package/livingdocs/070.Container/010.aside-content-container/scss/app.scss +1 -0
  248. package/livingdocs/070.Container/010.aside-content-container/scss/editor.scss +1 -0
  249. package/livingdocs/070.Container/010.aside-content-container/scss/general.scss +1 -0
  250. package/livingdocs/070.Container/010.aside-content-container/scss/pdf.scss +3 -0
  251. package/livingdocs/070.Container/010.aside-content-container/scss/web.scss +1 -0
  252. package/livingdocs/070.Container/010.aside-content-container/scss/word.scss +0 -0
  253. package/livingdocs/070.Container/010.aside-content-container/scss/xbrl.scss +1 -0
  254. package/livingdocs/070.Container/020.columns-container/columns-container.html +22 -0
  255. package/livingdocs/070.Container/020.columns-container/ld-conf.json +17 -0
  256. package/livingdocs/080.CV/010.cv/cv.html +40 -0
  257. package/livingdocs/080.CV/010.cv/ld-conf.json +11 -0
  258. package/livingdocs/080.CV/020.cv-time-span/cv-time-span.html +13 -0
  259. package/livingdocs/080.CV/020.cv-time-span/ld-conf.json +4 -0
  260. package/livingdocs/090.Signatures/010.signature-container/ld-conf.json +18 -0
  261. package/livingdocs/090.Signatures/010.signature-container/scss/app.scss +1 -0
  262. package/livingdocs/090.Signatures/010.signature-container/scss/editor.scss +1 -0
  263. package/livingdocs/090.Signatures/010.signature-container/scss/general.scss +5 -0
  264. package/livingdocs/090.Signatures/010.signature-container/scss/pdf.scss +0 -0
  265. package/livingdocs/090.Signatures/010.signature-container/scss/web.scss +6 -0
  266. package/livingdocs/090.Signatures/010.signature-container/scss/word.scss +0 -0
  267. package/livingdocs/090.Signatures/010.signature-container/scss/xbrl.scss +1 -0
  268. package/livingdocs/090.Signatures/010.signature-container/signature-container.html +6 -0
  269. package/livingdocs/090.Signatures/020.signature-item/ld-conf.json +11 -0
  270. package/livingdocs/090.Signatures/020.signature-item/scss/app.scss +1 -0
  271. package/livingdocs/090.Signatures/020.signature-item/scss/editor.scss +1 -0
  272. package/livingdocs/090.Signatures/020.signature-item/scss/general.scss +9 -0
  273. package/livingdocs/090.Signatures/020.signature-item/scss/pdf.scss +0 -0
  274. package/livingdocs/090.Signatures/020.signature-item/scss/web.scss +5 -0
  275. package/livingdocs/090.Signatures/020.signature-item/scss/word.scss +0 -0
  276. package/livingdocs/090.Signatures/020.signature-item/scss/xbrl.scss +1 -0
  277. package/livingdocs/090.Signatures/020.signature-item/signature-item.html +9 -0
  278. package/livingdocs/100.Misc/010.anchor/anchor.html +8 -0
  279. package/livingdocs/100.Misc/010.anchor/ld-conf.json +4 -0
  280. package/livingdocs/100.Misc/020.accordion/accordion.html +8 -0
  281. package/livingdocs/100.Misc/020.accordion/ld-conf.json +26 -0
  282. package/livingdocs/110.PDF/010.pdf-pagebreak/ld-conf.json +4 -0
  283. package/livingdocs/110.PDF/010.pdf-pagebreak/pdf-pagebreak.html +1 -0
  284. package/livingdocs/110.PDF/020.pdf-column-container/ld-conf.json +4 -0
  285. package/livingdocs/110.PDF/020.pdf-column-container/pdf-column-container.html +5 -0
  286. package/livingdocs/110.PDF/030.pdf-publication-title/ld-conf.json +4 -0
  287. package/livingdocs/110.PDF/030.pdf-publication-title/pdf-publication-title.html +7 -0
  288. package/livingdocs/110.PDF/040.pdf-chapter-title/ld-conf.json +4 -0
  289. package/livingdocs/110.PDF/040.pdf-chapter-title/pdf-chapter-title.html +7 -0
  290. package/livingdocs/110.PDF/050.pdf-chapter-navigation-container/ld-conf.json +17 -0
  291. package/livingdocs/110.PDF/050.pdf-chapter-navigation-container/pdf-chapter-navigation.html +10 -0
  292. package/livingdocs/110.PDF/060.pdf-chapter-navigation-item/ld-conf.json +6 -0
  293. package/livingdocs/110.PDF/060.pdf-chapter-navigation-item/pdf-chapter-navigation-item.html +7 -0
  294. package/livingdocs/110.PDF/060.pdf-chapter-navigation-item/properties.json +7 -0
  295. package/livingdocs/110.PDF/070.pdf-cover/ld-conf.json +25 -0
  296. package/livingdocs/110.PDF/070.pdf-cover/pdf-cover.html +26 -0
  297. package/livingdocs/110.PDF/080.pdf-toc-page/ld-conf.json +15 -0
  298. package/livingdocs/110.PDF/080.pdf-toc-page/pdf-toc-page.html +8 -0
  299. package/livingdocs/{PDF_only/pdf-toc-page → 110.PDF/080.pdf-toc-page}/properties.json +11 -3
  300. package/livingdocs/110.PDF/090.pdf-toc-item-title/ld-conf.json +5 -0
  301. package/livingdocs/110.PDF/090.pdf-toc-item-title/pdf-toc-item-title.html +3 -0
  302. package/livingdocs/110.PDF/100.pdf-toc-item/ld-conf.json +14 -0
  303. package/livingdocs/110.PDF/100.pdf-toc-item/pdf-toc-item.html +6 -0
  304. package/livingdocs/110.PDF/110.pdf-toc-item-blank/ld-conf.json +5 -0
  305. package/livingdocs/110.PDF/110.pdf-toc-item-blank/pdf-toc-item-blank.html +4 -0
  306. package/livingdocs/120.Startpage/.gitkeep +0 -0
  307. package/livingdocs/999.Properties/alignment/properties.json +36 -0
  308. package/livingdocs/{Text/quote-with-portrait → 999.Properties/hide-quote-characters}/properties.json +0 -5
  309. package/livingdocs/999.Properties/pdf-spacer/properties.json +43 -0
  310. package/livingdocs/999.Properties/width/properties.json +32 -0
  311. package/package.json +8 -10
  312. package/scripts/beaver.js +16 -15
  313. package/scripts/build.d.ts +4 -7
  314. package/scripts/build.js +345 -320
  315. package/scripts/components.js +62 -64
  316. package/scripts/config.d.ts +8 -0
  317. package/scripts/config.js +52 -1
  318. package/scripts/doPublish.js +12 -0
  319. package/scripts/folders.d.ts +43 -0
  320. package/scripts/folders.js +46 -0
  321. package/scripts/init.js +28 -8
  322. package/scripts/ldd/LivingdocsDesignValidator.d.ts +61 -0
  323. package/scripts/ldd/LivingdocsDesignValidator.js +296 -0
  324. package/scripts/ldd/__tests__/LivingdocsDesignValidation.test.mjs +273 -0
  325. package/scripts/ldd/mapLdd.d.ts +1 -0
  326. package/scripts/ldd/mapLdd.js +204 -0
  327. package/scripts/prepare.d.ts +2 -0
  328. package/scripts/prepare.js +66 -0
  329. package/scripts/preparePublish.d.ts +1 -1
  330. package/scripts/preparePublish.js +34 -1
  331. package/scripts/renamePackage.d.ts +1 -1
  332. package/scripts/utils.d.ts +45 -30
  333. package/scripts/utils.js +112 -55
  334. package/srl/components/Srl/Aria/TabChain.vue +100 -0
  335. package/srl/components/Srl/Article/Autoload.vue +41 -0
  336. package/srl/components/Srl/Article/DialogButton.vue +55 -0
  337. package/srl/components/Srl/Article/Root.vue +76 -0
  338. package/srl/components/Srl/Menu/Item/Content/Image.vue +12 -0
  339. package/srl/components/Srl/Menu/Item/Content/ImageAfter.vue +13 -0
  340. package/srl/components/Srl/Menu/Item/Content/ImageBefore.vue +13 -0
  341. package/srl/components/Srl/Menu/Item/Content/Text.vue +9 -0
  342. package/srl/components/Srl/Menu/Item/Content.vue +23 -0
  343. package/srl/components/Srl/Menu/Item.vue +208 -0
  344. package/srl/components/Srl/Menu/List.vue +184 -0
  345. package/srl/components/Srl/Page/App.vue +65 -0
  346. package/srl/components/Srl/Page/Dialog.vue +71 -0
  347. package/srl/composables/article.ts +24 -0
  348. package/srl/composables/articles.ts +41 -0
  349. package/srl/composables/config.ts +165 -0
  350. package/srl/composables/downloads.ts +46 -0
  351. package/srl/composables/index.ts +34 -0
  352. package/srl/composables/locale.ts +8 -0
  353. package/srl/composables/menu.ts +101 -0
  354. package/srl/composables/root.ts +5 -0
  355. package/srl/composables/search.ts +108 -0
  356. package/srl/composables/settings.ts +9 -0
  357. package/srl/composables/viewPort.ts +78 -0
  358. package/srl/imports/app.scss +0 -0
  359. package/srl/imports/ldd.scss +0 -0
  360. package/srl/imports/pdf.scss +0 -0
  361. package/srl/imports/word.scss +0 -0
  362. package/srl/imports/xbrl.scss +0 -0
  363. package/srl/plugins/asyncLdComponent.ts +2 -0
  364. package/srl/plugins/initProject.ts +19 -0
  365. package/srl/plugins/viteSrlPlugin.ts +214 -0
  366. package/srl/plugins/vueSrlPlugin.ts +23 -0
  367. package/srl/scss/config.scss +7 -0
  368. package/{scss → srl/scss}/core-styles.scss +1 -0
  369. package/{scss → srl/scss}/grid/functions.scss +20 -0
  370. package/{scss → srl/scss}/grid/mixins.scss +10 -152
  371. package/{scss → srl/scss}/grid/variables.scss +1 -0
  372. package/srl/scss/helpers/functions.scss +0 -0
  373. package/{scss → srl/scss}/helpers/mixins.scss +0 -33
  374. package/{scss → srl/scss}/typography/mixins.scss +53 -13
  375. package/srl/scss/xbrl-core-styles.scss +47 -0
  376. package/{dev/nswow → srl/srl}/ArticleAutoloader.ts +22 -22
  377. package/{dev/nswow → srl/srl}/ArticleLoader.ts +25 -18
  378. package/srl/srl/Awesomizr.js +682 -0
  379. package/srl/srl/colors.scss +3 -0
  380. package/srl/srl/config.scss +7 -0
  381. package/srl/srl/core-styles.scss +2 -0
  382. package/srl/srl/fonts.scss +2 -0
  383. package/srl/srl/grid.scss +2 -0
  384. package/srl/srl/helpers.scss +2 -0
  385. package/srl/srl/meta.scss +2 -0
  386. package/srl/srl/pdf.scss +2 -0
  387. package/srl/srl/spacer.scss +2 -0
  388. package/srl/srl/system.scss +2 -0
  389. package/srl/srl/typography.scss +3 -0
  390. package/srl/types/components.d.ts +17 -0
  391. package/srl/types/nswow.d.ts +121 -0
  392. package/srl/utils/camelCase.ts +11 -0
  393. package/srl/utils/html.ts +82 -0
  394. package/srl/utils/index.ts +5 -0
  395. package/srl/utils/uri.ts +52 -0
  396. package/dev/ldd.html +0 -7
  397. package/dev/livingdocs/Media/image/app.scss +0 -25
  398. package/dev/livingdocs/Media/image/general.scss +0 -11
  399. package/dev/livingdocs/Media/image/image.html +0 -46
  400. package/dev/livingdocs/Media/image/ldd.scss +0 -1
  401. package/dev/livingdocs/Media/image/pdf.scss +0 -1
  402. package/dev/livingdocs/Media/image/print.scss +0 -7
  403. package/dev/livingdocs/Media/image/properties.json +0 -41
  404. package/dev/livingdocs/Media/image/word.scss +0 -1
  405. package/dev/livingdocs/Properties/grid/app.scss +0 -1
  406. package/dev/livingdocs/Properties/grid/general.scss +0 -95
  407. package/dev/livingdocs/Properties/grid/ldd.scss +0 -1
  408. package/dev/livingdocs/Properties/grid/pdf.scss +0 -1
  409. package/dev/livingdocs/Properties/grid/print.scss +0 -94
  410. package/dev/livingdocs/Properties/grid/properties.json +0 -68
  411. package/dev/livingdocs/Properties/grid/web.scss +0 -98
  412. package/dev/livingdocs/Properties/grid/word.scss +0 -1
  413. package/dev/livingdocs/Text/paragraph/general.scss +0 -9
  414. package/dev/livingdocs/Text/paragraph/paragraph.html +0 -22
  415. package/dev/livingdocs/Titles/title-h1/general.scss +0 -10
  416. package/dev/livingdocs/Titles/title-h1/title-h1.html +0 -16
  417. package/dev/livingdocs/Titles/title-h2/app.scss +0 -1
  418. package/dev/livingdocs/Titles/title-h2/general.scss +0 -13
  419. package/dev/livingdocs/Titles/title-h2/ldd.scss +0 -1
  420. package/dev/livingdocs/Titles/title-h2/pdf.scss +0 -1
  421. package/dev/livingdocs/Titles/title-h2/print.scss +0 -36
  422. package/dev/livingdocs/Titles/title-h2/title-h2.html +0 -24
  423. package/dev/livingdocs/Titles/title-h2/web.scss +0 -27
  424. package/dev/livingdocs/Titles/title-h2/word.scss +0 -1
  425. package/dev/livingdocs/Titles/title-h3/app.scss +0 -1
  426. package/dev/livingdocs/Titles/title-h3/general.scss +0 -13
  427. package/dev/livingdocs/Titles/title-h3/ldd.scss +0 -1
  428. package/dev/livingdocs/Titles/title-h3/pdf.scss +0 -1
  429. package/dev/livingdocs/Titles/title-h3/print.scss +0 -34
  430. package/dev/livingdocs/Titles/title-h3/title-h3.html +0 -24
  431. package/dev/livingdocs/Titles/title-h3/web.scss +0 -27
  432. package/dev/livingdocs/Titles/title-h3/word.scss +0 -1
  433. package/dev/livingdocs/Titles/title-h4/app.scss +0 -1
  434. package/dev/livingdocs/Titles/title-h4/general.scss +0 -13
  435. package/dev/livingdocs/Titles/title-h4/ldd.scss +0 -1
  436. package/dev/livingdocs/Titles/title-h4/pdf.scss +0 -1
  437. package/dev/livingdocs/Titles/title-h4/print.scss +0 -34
  438. package/dev/livingdocs/Titles/title-h4/title-h4.html +0 -24
  439. package/dev/livingdocs/Titles/title-h4/web.scss +0 -27
  440. package/dev/livingdocs/Titles/title-h4/word.scss +0 -1
  441. package/dev/livingdocs/Titles/title-h5/general.scss +0 -10
  442. package/dev/livingdocs/Titles/title-h5/title-h5.html +0 -16
  443. package/dev/livingdocs/Titles/title-h6/general.scss +0 -10
  444. package/dev/livingdocs/Titles/title-h6/title-h6.html +0 -16
  445. package/dev/nswow/colors.scss +0 -3
  446. package/dev/nswow/config.scss +0 -13
  447. package/dev/nswow/core-styles.scss +0 -2
  448. package/dev/nswow/fonts.scss +0 -2
  449. package/dev/nswow/grid.scss +0 -2
  450. package/dev/nswow/helpers.scss +0 -2
  451. package/dev/nswow/meta.scss +0 -2
  452. package/dev/nswow/spacer.scss +0 -2
  453. package/dev/nswow/system.scss +0 -2
  454. package/dev/nswow/typography.scss +0 -3
  455. package/dev/nswow.config.json +0 -293
  456. package/dev/pdf.ts +0 -1
  457. package/dev/src/components/LanguageSwitch.vue +0 -100
  458. package/dev/src/components/MenuItem/MenuArticle.vue +0 -15
  459. package/dev/src/components/MenuItem/MenuEntry.vue +0 -26
  460. package/dev/src/components/MenuItem/MenuExternal.vue +0 -28
  461. package/dev/src/components/MenuItem/index.ts +0 -5
  462. package/dev/src/components/PageModal.vue +0 -95
  463. package/dev/src/components/ScrollToTop.vue +0 -63
  464. package/dev/src/composables/config.ts +0 -48
  465. package/dev/src/main.ts +0 -16
  466. package/dev/src/types/nswow.d.ts +0 -73
  467. package/dev/src/views/DownloadsView.vue +0 -88
  468. package/dev/src/views/SearchView.vue +0 -126
  469. package/dev/word.ts +0 -1
  470. package/livingdocs/Buttons/button/app.scss +0 -1
  471. package/livingdocs/Buttons/button/button.html +0 -18
  472. package/livingdocs/Buttons/button/general.scss +0 -33
  473. package/livingdocs/Buttons/button/ldd.scss +0 -1
  474. package/livingdocs/Buttons/button/pdf.scss +0 -1
  475. package/livingdocs/Buttons/button/word.scss +0 -1
  476. package/livingdocs/Buttons/button-container/app.scss +0 -1
  477. package/livingdocs/Buttons/button-container/button-container.html +0 -31
  478. package/livingdocs/Buttons/button-container/general.scss +0 -12
  479. package/livingdocs/Buttons/button-container/ldd.scss +0 -1
  480. package/livingdocs/Buttons/button-container/pdf.scss +0 -3
  481. package/livingdocs/Buttons/button-container/properties.json +0 -19
  482. package/livingdocs/Buttons/button-container/word.scss +0 -3
  483. package/livingdocs/CV/cv-timeline/app.scss +0 -1
  484. package/livingdocs/CV/cv-timeline/cv-timeline.html +0 -19
  485. package/livingdocs/CV/cv-timeline/general.scss +0 -1
  486. package/livingdocs/CV/cv-timeline/ldd.scss +0 -1
  487. package/livingdocs/CV/cv-timeline/pdf.scss +0 -1
  488. package/livingdocs/CV/cv-timeline/print.scss +0 -35
  489. package/livingdocs/CV/cv-timeline/web.scss +0 -27
  490. package/livingdocs/CV/cv-timeline/word.scss +0 -1
  491. package/livingdocs/Container/column-container/column-container.html +0 -44
  492. package/livingdocs/Container/column-container/general.scss +0 -105
  493. package/livingdocs/Container/column-container/properties.json +0 -83
  494. package/livingdocs/Lists/alphanumeric-list-group/alphanumeric-list-group.html +0 -25
  495. package/livingdocs/Lists/alphanumeric-list-group/app.scss +0 -1
  496. package/livingdocs/Lists/alphanumeric-list-group/general.scss +0 -5
  497. package/livingdocs/Lists/alphanumeric-list-group/ldd.scss +0 -1
  498. package/livingdocs/Lists/alphanumeric-list-group/pdf.scss +0 -1
  499. package/livingdocs/Lists/alphanumeric-list-group/word.scss +0 -1
  500. package/livingdocs/Lists/list-item/app.scss +0 -1
  501. package/livingdocs/Lists/list-item/general.scss +0 -4
  502. package/livingdocs/Lists/list-item/ldd.scss +0 -1
  503. package/livingdocs/Lists/list-item/list-item.html +0 -17
  504. package/livingdocs/Lists/list-item/pdf.scss +0 -1
  505. package/livingdocs/Lists/list-item/word.scss +0 -1
  506. package/livingdocs/Lists/ordered-list-group/app.scss +0 -1
  507. package/livingdocs/Lists/ordered-list-group/general.scss +0 -5
  508. package/livingdocs/Lists/ordered-list-group/ldd.scss +0 -1
  509. package/livingdocs/Lists/ordered-list-group/ordered-list-group.html +0 -25
  510. package/livingdocs/Lists/ordered-list-group/pdf.scss +0 -1
  511. package/livingdocs/Lists/ordered-list-group/word.scss +0 -1
  512. package/livingdocs/Lists/unordered-list-group/app.scss +0 -1
  513. package/livingdocs/Lists/unordered-list-group/general.scss +0 -5
  514. package/livingdocs/Lists/unordered-list-group/ldd.scss +0 -1
  515. package/livingdocs/Lists/unordered-list-group/pdf.scss +0 -1
  516. package/livingdocs/Lists/unordered-list-group/unordered-list-group.html +0 -25
  517. package/livingdocs/Lists/unordered-list-group/word.scss +0 -1
  518. package/livingdocs/Media/chart/app.scss +0 -19
  519. package/livingdocs/Media/chart/chart.html +0 -29
  520. package/livingdocs/Media/chart/general.scss +0 -11
  521. package/livingdocs/Media/chart/ldd.scss +0 -1
  522. package/livingdocs/Media/chart/pdf.scss +0 -9
  523. package/livingdocs/Media/chart/properties.json +0 -41
  524. package/livingdocs/Media/chart/word.scss +0 -1
  525. package/livingdocs/Media/graphic/app.scss +0 -1
  526. package/livingdocs/Media/graphic/general.scss +0 -18
  527. package/livingdocs/Media/graphic/graphic.html +0 -29
  528. package/livingdocs/Media/graphic/ldd.scss +0 -1
  529. package/livingdocs/Media/graphic/pdf.scss +0 -1
  530. package/livingdocs/Media/graphic/properties.json +0 -36
  531. package/livingdocs/Media/graphic/word.scss +0 -1
  532. package/livingdocs/Media/image/app.scss +0 -25
  533. package/livingdocs/Media/image/general.scss +0 -11
  534. package/livingdocs/Media/image/image.html +0 -55
  535. package/livingdocs/Media/image/ldd.scss +0 -1
  536. package/livingdocs/Media/image/pdf.scss +0 -1
  537. package/livingdocs/Media/image/print.scss +0 -7
  538. package/livingdocs/Media/image/properties.json +0 -41
  539. package/livingdocs/Media/image/word.scss +0 -1
  540. package/livingdocs/Media/nswow-table/app.scss +0 -2
  541. package/livingdocs/Media/nswow-table/app.ts +0 -35
  542. package/livingdocs/Media/nswow-table/general.scss +0 -281
  543. package/livingdocs/Media/nswow-table/ldd.scss +0 -2
  544. package/livingdocs/Media/nswow-table/nswow-table.html +0 -30
  545. package/livingdocs/Media/nswow-table/pdf.scss +0 -8
  546. package/livingdocs/Media/nswow-table/properties.json +0 -66
  547. package/livingdocs/Media/nswow-table/web.scss +0 -23
  548. package/livingdocs/Media/nswow-table/word.scss +0 -2
  549. package/livingdocs/Media/video/app.scss +0 -1
  550. package/livingdocs/Media/video/general.scss +0 -7
  551. package/livingdocs/Media/video/ldd.scss +0 -1
  552. package/livingdocs/Media/video/pdf.scss +0 -1
  553. package/livingdocs/Media/video/print.scss +0 -5
  554. package/livingdocs/Media/video/properties.json +0 -41
  555. package/livingdocs/Media/video/video.html +0 -26
  556. package/livingdocs/Media/video/word.scss +0 -1
  557. package/livingdocs/Misc/accordion/accordion.html +0 -56
  558. package/livingdocs/Misc/accordion/app.scss +0 -63
  559. package/livingdocs/Misc/accordion/app.ts +0 -10
  560. package/livingdocs/Misc/accordion/general.scss +0 -44
  561. package/livingdocs/Misc/accordion/ldd.scss +0 -36
  562. package/livingdocs/Misc/accordion/pdf.scss +0 -39
  563. package/livingdocs/Misc/accordion/word.scss +0 -39
  564. package/livingdocs/Misc/anchor/anchor.html +0 -15
  565. package/livingdocs/Misc/anchor/app.scss +0 -10
  566. package/livingdocs/Misc/anchor/app.ts +0 -11
  567. package/livingdocs/Misc/anchor/general.scss +0 -1
  568. package/livingdocs/Misc/anchor/pdf.scss +0 -1
  569. package/livingdocs/Misc/anchor/print.scss +0 -3
  570. package/livingdocs/Misc/anchor/word.scss +0 -1
  571. package/livingdocs/Misc/spacer/app.scss +0 -1
  572. package/livingdocs/Misc/spacer/general.scss +0 -8
  573. package/livingdocs/Misc/spacer/ldd.scss +0 -1
  574. package/livingdocs/Misc/spacer/pdf.scss +0 -1
  575. package/livingdocs/Misc/spacer/print.scss +0 -18
  576. package/livingdocs/Misc/spacer/properties.json +0 -52
  577. package/livingdocs/Misc/spacer/spacer.html +0 -12
  578. package/livingdocs/Misc/spacer/web.scss +0 -18
  579. package/livingdocs/Misc/spacer/word.scss +0 -1
  580. package/livingdocs/PDF_only/pdf-cover/ldd.scss +0 -42
  581. package/livingdocs/PDF_only/pdf-cover/pdf-cover.html +0 -29
  582. package/livingdocs/PDF_only/pdf-cover/pdf.scss +0 -1
  583. package/livingdocs/PDF_only/pdf-cover/word.scss +0 -1
  584. package/livingdocs/PDF_only/pdf-cover-chapter/ldd.scss +0 -19
  585. package/livingdocs/PDF_only/pdf-cover-chapter/pdf-chapter-cover.html +0 -18
  586. package/livingdocs/PDF_only/pdf-cover-chapter/pdf.scss +0 -1
  587. package/livingdocs/PDF_only/pdf-cover-chapter/print.scss +0 -19
  588. package/livingdocs/PDF_only/pdf-cover-chapter/word.scss +0 -1
  589. package/livingdocs/PDF_only/pdf-pagebreak/general.scss +0 -4
  590. package/livingdocs/PDF_only/pdf-pagebreak/ldd.scss +0 -5
  591. package/livingdocs/PDF_only/pdf-pagebreak/pdf-pagebreak.html +0 -8
  592. package/livingdocs/PDF_only/pdf-publication-title/general.scss +0 -5
  593. package/livingdocs/PDF_only/pdf-publication-title/pdf-publication-title.html +0 -15
  594. package/livingdocs/PDF_only/pdf-toc-item/general.scss +0 -41
  595. package/livingdocs/PDF_only/pdf-toc-item/pdf-toc-item.html +0 -33
  596. package/livingdocs/PDF_only/pdf-toc-item-blank/general.scss +0 -5
  597. package/livingdocs/PDF_only/pdf-toc-item-blank/pdf-toc-item-blank.html +0 -11
  598. package/livingdocs/PDF_only/pdf-toc-item-title/general.scss +0 -5
  599. package/livingdocs/PDF_only/pdf-toc-item-title/pdf-toc-item-title.html +0 -11
  600. package/livingdocs/PDF_only/pdf-toc-page/app.scss +0 -1
  601. package/livingdocs/PDF_only/pdf-toc-page/general.scss +0 -1
  602. package/livingdocs/PDF_only/pdf-toc-page/ldd.scss +0 -1
  603. package/livingdocs/PDF_only/pdf-toc-page/pdf-toc-page.html +0 -33
  604. package/livingdocs/PDF_only/pdf-toc-page/pdf.scss +0 -1
  605. package/livingdocs/PDF_only/pdf-toc-page/word.scss +0 -1
  606. package/livingdocs/PDF_only/pdf-video-link/ldd.scss +0 -16
  607. package/livingdocs/PDF_only/pdf-video-link/pdf-video-link.html +0 -41
  608. package/livingdocs/PDF_only/pdf-video-link/pdf.scss +0 -1
  609. package/livingdocs/PDF_only/pdf-video-link/print.scss +0 -12
  610. package/livingdocs/PDF_only/pdf-video-link/word.scss +0 -1
  611. package/livingdocs/Properties/grid/app.scss +0 -1
  612. package/livingdocs/Properties/grid/general.scss +0 -95
  613. package/livingdocs/Properties/grid/ldd.scss +0 -1
  614. package/livingdocs/Properties/grid/pdf.scss +0 -1
  615. package/livingdocs/Properties/grid/print.scss +0 -94
  616. package/livingdocs/Properties/grid/properties.json +0 -68
  617. package/livingdocs/Properties/grid/web.scss +0 -98
  618. package/livingdocs/Properties/grid/word.scss +0 -1
  619. package/livingdocs/Signatures/signature-container/app.scss +0 -1
  620. package/livingdocs/Signatures/signature-container/general.scss +0 -7
  621. package/livingdocs/Signatures/signature-container/ldd.scss +0 -1
  622. package/livingdocs/Signatures/signature-container/pdf.scss +0 -1
  623. package/livingdocs/Signatures/signature-container/signature-container.html +0 -30
  624. package/livingdocs/Signatures/signature-container/word.scss +0 -1
  625. package/livingdocs/Signatures/signature-item/app.scss +0 -1
  626. package/livingdocs/Signatures/signature-item/general.scss +0 -53
  627. package/livingdocs/Signatures/signature-item/ldd.scss +0 -1
  628. package/livingdocs/Signatures/signature-item/pdf.scss +0 -1
  629. package/livingdocs/Signatures/signature-item/signature-item.html +0 -23
  630. package/livingdocs/Signatures/signature-item/word.scss +0 -1
  631. package/livingdocs/Text/footnote/app.scss +0 -1
  632. package/livingdocs/Text/footnote/footnote.html +0 -14
  633. package/livingdocs/Text/footnote/general.scss +0 -12
  634. package/livingdocs/Text/footnote/ldd.scss +0 -1
  635. package/livingdocs/Text/footnote/pdf.scss +0 -1
  636. package/livingdocs/Text/footnote/print.scss +0 -36
  637. package/livingdocs/Text/footnote/web.scss +0 -27
  638. package/livingdocs/Text/footnote/word.scss +0 -1
  639. package/livingdocs/Text/lead/general.scss +0 -9
  640. package/livingdocs/Text/lead/lead.html +0 -23
  641. package/livingdocs/Text/paragraph/general.scss +0 -9
  642. package/livingdocs/Text/quote/general.scss +0 -43
  643. package/livingdocs/Text/quote/quote.html +0 -29
  644. package/livingdocs/Text/quote-with-portrait/general.scss +0 -81
  645. package/livingdocs/Text/quote-with-portrait/quote-with-portrait.html +0 -49
  646. package/livingdocs/Titles/title-h1/general.scss +0 -10
  647. package/livingdocs/Titles/title-h1/title-h1.html +0 -16
  648. package/livingdocs/Titles/title-h2/app.scss +0 -1
  649. package/livingdocs/Titles/title-h2/general.scss +0 -13
  650. package/livingdocs/Titles/title-h2/ldd.scss +0 -1
  651. package/livingdocs/Titles/title-h2/pdf.scss +0 -1
  652. package/livingdocs/Titles/title-h2/print.scss +0 -36
  653. package/livingdocs/Titles/title-h2/title-h2.html +0 -26
  654. package/livingdocs/Titles/title-h2/web.scss +0 -27
  655. package/livingdocs/Titles/title-h2/word.scss +0 -1
  656. package/livingdocs/Titles/title-h3/app.scss +0 -1
  657. package/livingdocs/Titles/title-h3/general.scss +0 -13
  658. package/livingdocs/Titles/title-h3/ldd.scss +0 -1
  659. package/livingdocs/Titles/title-h3/pdf.scss +0 -1
  660. package/livingdocs/Titles/title-h3/print.scss +0 -34
  661. package/livingdocs/Titles/title-h3/title-h3.html +0 -26
  662. package/livingdocs/Titles/title-h3/web.scss +0 -27
  663. package/livingdocs/Titles/title-h3/word.scss +0 -1
  664. package/livingdocs/Titles/title-h4/app.scss +0 -1
  665. package/livingdocs/Titles/title-h4/general.scss +0 -13
  666. package/livingdocs/Titles/title-h4/ldd.scss +0 -1
  667. package/livingdocs/Titles/title-h4/pdf.scss +0 -1
  668. package/livingdocs/Titles/title-h4/print.scss +0 -34
  669. package/livingdocs/Titles/title-h4/title-h4.html +0 -26
  670. package/livingdocs/Titles/title-h4/web.scss +0 -27
  671. package/livingdocs/Titles/title-h4/word.scss +0 -1
  672. package/livingdocs/Titles/title-h5/general.scss +0 -10
  673. package/livingdocs/Titles/title-h5/title-h5.html +0 -16
  674. package/livingdocs/Titles/title-h6/general.scss +0 -10
  675. package/livingdocs/Titles/title-h6/title-h6.html +0 -16
  676. package/preparePublish.cjs +0 -95
  677. package/scripts/migrate-livingdocs-build/LICENSE +0 -21
  678. package/scripts/migrate-livingdocs-build/bin/build.d.ts +0 -8
  679. package/scripts/migrate-livingdocs-build/bin/build.js +0 -53
  680. package/scripts/migrate-livingdocs-build/bin/migrate.d.ts +0 -2
  681. package/scripts/migrate-livingdocs-build/bin/migrate.js +0 -43
  682. package/scripts/migrate-livingdocs-build/dev/build/v1.d.ts +0 -9
  683. package/scripts/migrate-livingdocs-build/dev/build/v1.d.ts.map +0 -1
  684. package/scripts/migrate-livingdocs-build/dev/build/v1.js +0 -51
  685. package/scripts/migrate-livingdocs-build/dev/build/v2.d.ts +0 -2
  686. package/scripts/migrate-livingdocs-build/dev/build/v2.d.ts.map +0 -1
  687. package/scripts/migrate-livingdocs-build/dev/build/v2.js +0 -44
  688. package/scripts/migrate-livingdocs-build/dev/build/zip-archive.d.ts +0 -2
  689. package/scripts/migrate-livingdocs-build/dev/build/zip-archive.d.ts.map +0 -1
  690. package/scripts/migrate-livingdocs-build/dev/build/zip-archive.js +0 -39
  691. package/scripts/migrate-livingdocs-build/dev/build.d.ts +0 -9
  692. package/scripts/migrate-livingdocs-build/dev/build.js +0 -7
  693. package/scripts/migrate-livingdocs-build/dev/configuration-defaults.d.ts +0 -20
  694. package/scripts/migrate-livingdocs-build/dev/configuration-defaults.js +0 -18
  695. package/scripts/migrate-livingdocs-build/dev/configuration.d.ts +0 -2
  696. package/scripts/migrate-livingdocs-build/dev/configuration.js +0 -34
  697. package/scripts/migrate-livingdocs-build/dev/lib.d.ts +0 -33
  698. package/scripts/migrate-livingdocs-build/dev/lib.js +0 -251
  699. package/scripts/migrate-livingdocs-build/dev/livingdocs-design.d.ts +0 -9
  700. package/scripts/migrate-livingdocs-build/dev/livingdocs-design.js +0 -80
  701. package/scripts/migrate-livingdocs-build/dev/logger.d.ts +0 -2
  702. package/scripts/migrate-livingdocs-build/dev/logger.js +0 -16
  703. package/scripts/migrate-livingdocs-build/dev/migrate.d.ts +0 -22
  704. package/scripts/migrate-livingdocs-build/dev/migrate.js +0 -241
  705. package/scripts/migrate-livingdocs-build/readme.md +0 -62
  706. package/scripts/vite.d.ts +0 -10
  707. package/scripts/vite.js +0 -58
  708. package/scss/config.scss +0 -7
  709. package/tags.txt +0 -1
  710. /package/dev/livingdocs/{Media/image/web.scss → .gitkeep} +0 -0
  711. /package/{dev/public/.keep → livingdocs/010.Titles/010.title-h1/scss/pdf.scss} +0 -0
  712. /package/livingdocs/{Lists/alphanumeric-list-group → 010.Titles/010.title-h1/scss}/web.scss +0 -0
  713. /package/livingdocs/{Lists/alphanumeric-list-group/print.scss → 010.Titles/010.title-h1/scss/word.scss} +0 -0
  714. /package/livingdocs/{Lists/list-item/print.scss → 010.Titles/020.title-h2/scss/pdf.scss} +0 -0
  715. /package/livingdocs/{Lists/list-item → 010.Titles/020.title-h2/scss}/web.scss +0 -0
  716. /package/livingdocs/{Lists/ordered-list-group/print.scss → 010.Titles/020.title-h2/scss/word.scss} +0 -0
  717. /package/livingdocs/{Lists/ordered-list-group/web.scss → 010.Titles/030.title-h3/scss/pdf.scss} +0 -0
  718. /package/livingdocs/{Lists/unordered-list-group → 010.Titles/030.title-h3/scss}/web.scss +0 -0
  719. /package/livingdocs/{Lists/unordered-list-group/print.scss → 010.Titles/030.title-h3/scss/word.scss} +0 -0
  720. /package/livingdocs/{Media/chart/print.scss → 010.Titles/040.title-h4/scss/pdf.scss} +0 -0
  721. /package/livingdocs/{Media/chart → 010.Titles/040.title-h4/scss}/web.scss +0 -0
  722. /package/livingdocs/{Media/graphic/print.scss → 010.Titles/040.title-h4/scss/word.scss} +0 -0
  723. /package/livingdocs/{Media/graphic/web.scss → 010.Titles/050.title-h5/scss/pdf.scss} +0 -0
  724. /package/livingdocs/{Media/image → 010.Titles/050.title-h5/scss}/web.scss +0 -0
  725. /package/livingdocs/{Media/nswow-table/print.scss → 010.Titles/050.title-h5/scss/word.scss} +0 -0
  726. /package/livingdocs/{Media/video/web.scss → 010.Titles/060.title-h6/scss/pdf.scss} +0 -0
  727. /package/livingdocs/{Signatures/signature-container → 010.Titles/060.title-h6/scss}/web.scss +0 -0
  728. /package/livingdocs/{PDF_only/pdf-cover/print.scss → 010.Titles/060.title-h6/scss/word.scss} +0 -0
  729. /package/livingdocs/{Signatures/signature-container/print.scss → 020.Text/010.lead/scss/pdf.scss} +0 -0
  730. /package/livingdocs/{Signatures/signature-item → 020.Text/010.lead/scss}/web.scss +0 -0
  731. /package/livingdocs/{Signatures/signature-item/print.scss → 020.Text/010.lead/scss/word.scss} +0 -0
  732. /package/{scss/helpers/functions.scss → livingdocs/020.Text/020.paragraph/scss/pdf.scss} +0 -0
  733. /package/livingdocs/{Text/quote → 020.Text/050.quote}/properties.json +0 -0
  734. /package/livingdocs/{PDF_only/pdf-toc-item → 110.PDF/100.pdf-toc-item}/properties.json +0 -0
  735. /package/{scss → srl/scss}/colors/functions.scss +0 -0
  736. /package/{scss → srl/scss}/colors/index.scss +0 -0
  737. /package/{scss → srl/scss}/colors/mixins.scss +0 -0
  738. /package/{scss → srl/scss}/colors/variables.scss +0 -0
  739. /package/{scss → srl/scss}/fonts/functions.scss +0 -0
  740. /package/{scss → srl/scss}/fonts/index.scss +0 -0
  741. /package/{scss → srl/scss}/fonts/mixins.scss +0 -0
  742. /package/{scss → srl/scss}/fonts/variables.scss +0 -0
  743. /package/{scss → srl/scss}/grid/index.scss +0 -0
  744. /package/{scss → srl/scss}/helpers/index.scss +0 -0
  745. /package/{scss → srl/scss}/helpers/variables.scss +0 -0
  746. /package/{scss → srl/scss}/index.scss +0 -0
  747. /package/{scss → srl/scss}/meta/functions.scss +0 -0
  748. /package/{scss → srl/scss}/meta/index.scss +0 -0
  749. /package/{scss → srl/scss}/meta/mixins.scss +0 -0
  750. /package/{scss → srl/scss}/meta/variables.scss +0 -0
  751. /package/{scss → srl/scss}/spacer/functions.scss +0 -0
  752. /package/{scss → srl/scss}/spacer/index.scss +0 -0
  753. /package/{scss → srl/scss}/spacer/mixins.scss +0 -0
  754. /package/{scss → srl/scss}/spacer/variables.scss +0 -0
  755. /package/{scss → srl/scss}/system/functions.scss +0 -0
  756. /package/{scss → srl/scss}/system/index.scss +0 -0
  757. /package/{scss → srl/scss}/system/mixins.scss +0 -0
  758. /package/{scss → srl/scss}/system/root.scss +0 -0
  759. /package/{scss → srl/scss}/system/variables.scss +0 -0
  760. /package/{scss → srl/scss}/typography/functions.scss +0 -0
  761. /package/{scss → srl/scss}/typography/index.scss +0 -0
  762. /package/{scss → srl/scss}/typography/variables.scss +0 -0
  763. /package/{dev/nswow → srl/srl}/index.scss +0 -0
@@ -0,0 +1,184 @@
1
+ <script setup lang="ts">
2
+ /**
3
+ * `SrlMenu.vue`
4
+ *
5
+ * This Vue 3 component implements a hierarchical menu system with various navigation capabilities.
6
+ * It manages a list of menu items with support for opening/closing items, keyboard navigation,
7
+ * and parent-child menu relationships.
8
+ *
9
+ * ## Props
10
+ * - `name`: String - Identifier for the menu
11
+ * - `menu`: Array<NsWowNavigationItem> - Menu items data structure
12
+ * - `disableTab`: Boolean - Disables tab navigation when true (default: false)
13
+ * - `disableTabIndex`: Boolean - Disables tabindex attributes when true (default: false)
14
+ * - `initOpen`: Number - Initial depth level that should be open (default: 0)
15
+ * - `singleOpen`: Boolean - Only allows one menu item to be open at a time (default: true)
16
+ * - `depth`: Number - Current depth level of this menu (default: 0)
17
+ *
18
+ * ## Emits
19
+ * - `close`: When the menu is closed
20
+ * - `closeSub`: When a submenu is closed
21
+ * - `link`: When a link item is activated
22
+ * - `routerChange`: When navigation occurs via router
23
+ * - `nextExceeded`, `prevExceeded`: When navigation exceeds boundaries
24
+ * - `tab`: When tab navigation occurs
25
+ * - `back`: When back navigation is triggered
26
+ *
27
+ * ## Reactive Variables
28
+ * - `items`: Reference array to MenuItem components
29
+ * - `opened`: v-model for the open/closed state of the menu
30
+ * - `$el`: Reference to the root <ul> element
31
+ *
32
+ * ## Methods
33
+ * - `open(event)`: Opens a menu item, closing others if singleOpen is true
34
+ * - `close()`: Closes the current menu or emits close events based on depth
35
+ * - `next(event)`: Focuses the next menu item with circular navigation
36
+ * - `prev(event)`: Focuses the previous menu item with circular navigation
37
+ * - `closeAll(keep?)`: Closes all menu items except the one specified by index
38
+ *
39
+ * ## Exposed API
40
+ * - `closeAll`: Method to close all menu items except one (optional)
41
+ * - `$el`: Reference to the root element
42
+ * - `items`: Array of menu item components
43
+ *
44
+ * ## Usage Example
45
+ * ```vue
46
+ * <SrlMenuList
47
+ * name="main-nav"
48
+ * :menu="navigationItems"
49
+ * :singleOpen="true"
50
+ * @link="handleNavigation"
51
+ * />
52
+ */
53
+ import { ref } from 'vue';
54
+ import MenuItem from './Item.vue';
55
+
56
+ const props = withDefaults(
57
+ defineProps<{
58
+ name: string;
59
+ menu: NsWowNavigationItem[];
60
+ disableTab?: boolean;
61
+ disableTabIndex?: boolean;
62
+ initOpen?: number;
63
+ singleOpen?: boolean;
64
+ depth?: number;
65
+ }>(),
66
+ {
67
+ disableTab: false,
68
+ disableTabIndex: false,
69
+ initOpen: 0,
70
+ singleOpen: true,
71
+ depth: 0,
72
+ },
73
+ );
74
+
75
+ const emit = defineEmits([
76
+ 'close',
77
+ 'closeSub',
78
+ 'link',
79
+ 'routerChange',
80
+ 'nextExceeded',
81
+ 'prevExceeded',
82
+ 'tab',
83
+ 'back',
84
+ ]);
85
+ const items = ref<Array<typeof MenuItem>>([]);
86
+
87
+ const opened = defineModel('opened', { type: Boolean, default: true });
88
+
89
+ function open(event: { index: number }) {
90
+ if (props.singleOpen) {
91
+ closeAll(event.index);
92
+ }
93
+ }
94
+
95
+ function close() {
96
+ if (props.initOpen < props.depth) {
97
+ opened.value = false;
98
+ emit('closeSub');
99
+ } else {
100
+ emit('close');
101
+ }
102
+ }
103
+
104
+ function next(event: { index: number }) {
105
+ let newIndex = event.index + 1;
106
+ let exceeded = false;
107
+ if (newIndex >= items.value.length) {
108
+ exceeded = true;
109
+ newIndex = 0;
110
+ }
111
+ const item = items.value[newIndex].$el;
112
+ item.$el ? item.$el.focus() : item.focus();
113
+ !exceeded || emit('nextExceeded');
114
+ }
115
+
116
+ function prev(event: { index: number }) {
117
+ let newIndex = event.index - 1;
118
+ let exceeded = false;
119
+ if (newIndex < 0) {
120
+ exceeded = true;
121
+ newIndex = items.value.length - 1;
122
+ }
123
+ const item = items.value[newIndex].$el;
124
+ item.$el ? item.$el.focus() : item.focus();
125
+ !exceeded || emit('prevExceeded');
126
+ }
127
+
128
+ function tab() {
129
+ emit('tab');
130
+ }
131
+
132
+ function back() {
133
+ emit('back');
134
+ }
135
+
136
+ function link() {
137
+ emit('link');
138
+ }
139
+
140
+ function routerChange() {
141
+ emit('routerChange');
142
+ }
143
+
144
+ function closeAll(keep?: number | string) {
145
+ items.value.forEach((item: typeof MenuItem, index: number) => {
146
+ if (keep !== index) item.closeItem();
147
+ });
148
+ }
149
+
150
+ const $el = ref<HTMLUListElement>();
151
+
152
+ defineExpose({
153
+ closeAll,
154
+ $el,
155
+ items,
156
+ });
157
+ </script>
158
+
159
+ <template>
160
+ <ul ref="$el" :hidden="!opened">
161
+ <template v-for="(item, index) in props.menu" :key="index">
162
+ <MenuItem
163
+ ref="items"
164
+ :item="item"
165
+ :name="props.name"
166
+ :index="index"
167
+ :disableTab="props.disableTab"
168
+ :disableTabIndex="props.disableTabIndex"
169
+ :initOpen="props.initOpen"
170
+ :depth="props.depth"
171
+ @open="open"
172
+ @close="close"
173
+ @next="next"
174
+ @prev="prev"
175
+ @tab="tab"
176
+ @back="back"
177
+ @link="link"
178
+ @routerChange="routerChange"
179
+ />
180
+ </template>
181
+ </ul>
182
+ </template>
183
+
184
+ <style scoped lang="scss"></style>
@@ -0,0 +1,65 @@
1
+ <script setup lang="ts">
2
+ /**
3
+ * `SrlPageApp.vue`
4
+ *
5
+ * This Vue 3 component serves as the primary layout orchestrator for the application.
6
+ * It coordinates the loading and rendering of main application components within
7
+ * Suspense boundaries to handle asynchronous loading states.
8
+ *
9
+ * ## Imports
10
+ * - `App`: Main application component
11
+ * - `SrlPageData`: Component responsible for loading and preparing page content
12
+ * - `SrlPageModal`: Modal dialog component for displaying dynamic content
13
+ * - `ref`: Vue reactivity utility for creating mutable references
14
+ *
15
+ * ## Reactive State
16
+ * - `modal`: Reference to the SrlPageModal component instance
17
+ *
18
+ * ## Methods
19
+ * - `modalContent(html)`: Asynchronous method to set the content of the modal dialog
20
+ * - Delegates to the modal component's setContent method
21
+ * - Takes HTML string as input for display in the modal
22
+ *
23
+ * ## Exposed API
24
+ * - The component exposes the modal reference and modalContent function
25
+ * for parent components to access and control the modal dialog
26
+ *
27
+ * ## Template Structure
28
+ * - Uses three Suspense components to handle asynchronous loading:
29
+ * 1. SrlPageData: Loads and prepares page content based on current route
30
+ * 2. App: Main application component with primary UI elements
31
+ * 3. SrlPageModal: Modal dialog component for overlay content
32
+ *
33
+ * ## Usage Context
34
+ * This component acts as the structural foundation of the application,
35
+ * managing the loading sequence of content and providing modal functionality
36
+ * to other components in the application.
37
+ */
38
+ import App from '@/App.vue';
39
+ import { ref, watch } from 'vue';
40
+
41
+ const styleElement = document.createElement('style');
42
+ document.head.appendChild(styleElement);
43
+
44
+ const styleContent = ref<string[]>([]);
45
+ function addCssStyles(styles: string) {
46
+ styleContent.value.includes(styles) || styleContent.value.push(styles);
47
+ }
48
+ watch(
49
+ styleContent.value,
50
+ (newStyles) => {
51
+ styleElement.innerHTML = newStyles.join('');
52
+ },
53
+ { immediate: true },
54
+ );
55
+
56
+ defineExpose({
57
+ addCssStyles,
58
+ });
59
+ </script>
60
+
61
+ <template>
62
+ <suspense>
63
+ <App />
64
+ </suspense>
65
+ </template>
@@ -0,0 +1,71 @@
1
+ <script setup lang="ts">
2
+ import { ref } from 'vue';
3
+ import SrlPageCustomDialog from '@//Dialog.vue';
4
+ import Autoload from '@/Autoload.ts';
5
+
6
+ const props = withDefaults(
7
+ defineProps<{
8
+ header?: string;
9
+ content?: string;
10
+ }>(),
11
+ {
12
+ header: '',
13
+ content: '',
14
+ },
15
+ );
16
+
17
+ const $el = ref<HTMLDialogElement | null>(null);
18
+ const dialogState = ref<boolean>(false);
19
+
20
+ const header = ref<string>(props.header);
21
+ const content = ref<string>(props.content);
22
+
23
+ function setDialogContent(template: string) {
24
+ content.value = template;
25
+ }
26
+
27
+ function setDialogContentAndOpen(template: string) {
28
+ setDialogContent(template);
29
+ open();
30
+ }
31
+
32
+ function open() {
33
+ $el.value?.showModal();
34
+ dialogState.value = true;
35
+ $el.value?.querySelector('.srl-dialog__main')?.focus();
36
+ Autoload.init($el.value);
37
+ }
38
+
39
+ function close() {
40
+ $el.value?.close();
41
+ dialogState.value = false;
42
+ }
43
+
44
+ function clearContent() {
45
+ header.value = '';
46
+ content.value = '';
47
+ }
48
+
49
+ defineExpose({
50
+ $el,
51
+ dialogState,
52
+ setDialogContent,
53
+ setDialogContentAndOpen,
54
+ open,
55
+ close,
56
+ });
57
+ </script>
58
+
59
+ <template>
60
+ <dialog
61
+ ref="$el"
62
+ id="srl-page__dialog"
63
+ class="srl-page__dialog"
64
+ aria-modal="true"
65
+ @click.stop="close"
66
+ >
67
+ <SrlAriaTabChain @click.stop>
68
+ <SrlPageCustomDialog :header="header" :content="content" @close="close" />
69
+ </SrlAriaTabChain>
70
+ </dialog>
71
+ </template>
@@ -0,0 +1,24 @@
1
+ import { computed, type ComputedRef } from 'vue';
2
+ import { useRoute } from 'vue-router';
3
+ import useArticles from './articles';
4
+
5
+ const articles = useArticles();
6
+
7
+ export default function useArticle(): ComputedRef<NsWowArticle | undefined> {
8
+ const route = useRoute();
9
+ return computed<NsWowArticle | undefined>(() => {
10
+ const slug = route.params.slug
11
+ ? (route.params.slug[0] as string)
12
+ : undefined;
13
+ const article = !slug
14
+ ? articles.value.find((article) => article.index)
15
+ : articles.value.find((article) => article.slug === slug);
16
+
17
+ if (!article) {
18
+ console.error(`Article not found for slug: ${route.path}`);
19
+ return undefined;
20
+ }
21
+
22
+ return article;
23
+ });
24
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * `articles.ts`
3
+ *
4
+ * This Vue 3 composable provides access to localized article data.
5
+ * It implements a singleton pattern to ensure only one computed reference
6
+ * is created and reused across the application.
7
+ *
8
+ * ## Imports
9
+ * - `useConfig`: Composable for accessing application configuration
10
+ * - `computed`, `ComputedRef`: Vue reactivity utilities
11
+ *
12
+ * ## Variables
13
+ * - `computedStorage`: Singleton storage for the computed article reference
14
+ *
15
+ * ## Function: useArticles
16
+ * - Asynchronous function that returns a computed reference to articles
17
+ * - Only initializes the computed reference on first call
18
+ * - Returns the same reference on subsequent calls
19
+ * - Articles are filtered by the current locale from the configuration
20
+ *
21
+ * ## Return Value
22
+ * - ComputedRef<NsWowArticle[]>: A computed reference to an array of articles
23
+ * in the current locale
24
+ *
25
+ * ## Usage Example
26
+ * ```typescript
27
+ * const articles = await useArticles()
28
+ * console.log(articles.value) // Array of articles in the current locale
29
+ */
30
+ import { computed, type ComputedRef } from 'vue';
31
+ import useConfig from './config.ts';
32
+
33
+ const config = useConfig();
34
+
35
+ const articles = computed<NsWowArticle[]>(
36
+ () => config.value?.articles[config.value.locale],
37
+ );
38
+
39
+ export default function useArticles(): ComputedRef<NsWowArticle[]> {
40
+ return articles;
41
+ }
@@ -0,0 +1,165 @@
1
+ /**
2
+ * `src/composables/config.ts`
3
+ *
4
+ * A Vue 3 composable that manages the application configuration.
5
+ * Handles loading and accessing various configuration aspects including
6
+ * settings, translations, article data, and menu structures.
7
+ *
8
+ * ## Core Functionality
9
+ * - Loads configuration from multiple JSON files
10
+ * - Manages application settings and supported languages
11
+ * - Handles internationalization with translations
12
+ * - Provides routing information for different locales
13
+ * - Manages downloadable content references
14
+ * - Offers environment detection helpers
15
+ *
16
+ * ## Data Structure
17
+ * - `NsWowConfig`: Main configuration object containing:
18
+ * - `locale`: Current active locale
19
+ * - `settings`: Application settings
20
+ * - `articles`: Article data by language
21
+ * - `menus`: Menu structures by language
22
+ * - `translations`: Translation strings by language
23
+ * - `downloads`: Download data by language
24
+ *
25
+ * ## Main Functions
26
+ * - `setConfig()`: Initializes the full configuration by loading all data files
27
+ * - `loadSettings()`: Loads application settings from JSON
28
+ * - `loadTranslations()`: Loads translation data
29
+ * - `loadRouting(locale)`: Loads routing information for specified locale
30
+ * - `loadDownloads(locale)`: Loads download data for specified locale
31
+ * - `useConfig()`: Returns the reactive configuration reference
32
+ *
33
+ * ## Environment Helpers
34
+ * - `isPreview()`: Checks if application is running in preview mode
35
+ * - `isDevelopment()`: Checks if application is running in development mode
36
+ * - `isWorkboxEnabled()`: Determines if service worker functionality is enabled
37
+ *
38
+ * ## Usage
39
+ * const config = useConfig()
40
+ */
41
+ import { ref, type Ref } from 'vue';
42
+
43
+ const config = ref<NsWowConfig>({
44
+ locale: 'de',
45
+ settings: {
46
+ languages: ['de', 'en'],
47
+ defaultLanguage: 'de',
48
+ shortBreadcrumb: false,
49
+ search: {
50
+ boldTheWord: true,
51
+ },
52
+ categories: [],
53
+ },
54
+ articles: {},
55
+ menus: {},
56
+ translations: {},
57
+ downloads: {},
58
+ });
59
+
60
+ async function setConfig(): Promise<Ref<NsWowConfig>> {
61
+ await loadSettings();
62
+ await loadTranslations();
63
+
64
+ const defaultMessages = import.meta.glob('@/locales/*.json', {
65
+ eager: true,
66
+ import: 'default',
67
+ });
68
+
69
+ for (const locale of config.value.settings.languages) {
70
+ await loadRouting(locale);
71
+ await loadDownloads(locale);
72
+
73
+ config.value.translations[locale] = config.value.translations[locale] || {};
74
+
75
+ const defaultMessages = import.meta.glob('@/locales/*.json', {
76
+ eager: true,
77
+ import: 'default',
78
+ });
79
+
80
+ const path = `/src/locales/${locale}.json`;
81
+ if (defaultMessages[path]) {
82
+ config.value.translations[locale] = Object.assign(
83
+ defaultMessages[path],
84
+ config.value.translations[locale],
85
+ );
86
+ }
87
+ }
88
+ return config;
89
+ }
90
+
91
+ async function loadSettings() {
92
+ const file = `./json/settings.json`;
93
+ try {
94
+ const response: Response = await fetch(file);
95
+ const data: NsWowSettings = await response.json();
96
+ config.value.settings = Object.assign(config.value.settings, data);
97
+ config.value.locale = data.defaultLanguage;
98
+ document.documentElement.lang = data.defaultLanguage;
99
+ } catch (e) {
100
+ errorLog(`"${file}" could not be loaded.`, e);
101
+ }
102
+ }
103
+
104
+ async function loadTranslations() {
105
+ const file = `./json/translations_hosting.json`;
106
+ try {
107
+ const response: Response = await fetch(file);
108
+ const data: NsWowTranslations = await response.json();
109
+ config.value.translations = data;
110
+ } catch (e) {
111
+ errorLog(`"${file}" could not be loaded.`, e);
112
+ }
113
+ }
114
+
115
+ async function loadRouting(locale: string) {
116
+ const file: string = `./json/routing_${locale}.json`;
117
+ try {
118
+ const response: Response = await fetch(file);
119
+ const routing: NsWowResponseRouting = await response.json();
120
+ config.value.articles[locale] = routing.pages;
121
+ config.value.menus[locale] = routing.menu;
122
+ } catch (e) {
123
+ errorLog(`"${file}" could not be loaded.`, e);
124
+ }
125
+ }
126
+
127
+ async function loadDownloads(locale: string) {
128
+ config.value.downloads[locale] = {};
129
+ const file: string = `./downloads/downloads_${locale}.json`;
130
+ try {
131
+ const response: Response = await fetch(file);
132
+ const data = await response.json();
133
+ config.value.downloads[locale] = data;
134
+ } catch (e) {
135
+ errorLog(`"${file}" could not be loaded.`, e);
136
+ }
137
+ }
138
+
139
+ function useConfig(): Ref<NsWowConfig> {
140
+ return config;
141
+ }
142
+
143
+ function isPreview(): boolean {
144
+ return window.location.pathname.includes('/preview/');
145
+ }
146
+
147
+ function isDevelopment(): boolean {
148
+ return import.meta.env.DEV;
149
+ }
150
+
151
+ function isWorkboxEnabled(): boolean {
152
+ return (
153
+ (!isPreview() && !isDevelopment()) ||
154
+ (isDevelopment() && import.meta.env.VITE_WORKBOX === 'true')
155
+ );
156
+ }
157
+
158
+ function errorLog(message: string, error: Error): void {
159
+ isDevelopment() || isPreview()
160
+ ? console.error(`Error: ${message}`, error)
161
+ : null;
162
+ }
163
+
164
+ export default useConfig;
165
+ export { setConfig, useConfig, isPreview, isDevelopment };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * `downloads.ts`
3
+ *
4
+ * This Vue 3 composable provides access to localized download data.
5
+ * It loads download information from JSON files for each supported language
6
+ * and returns a computed reference to the data in the current locale.
7
+ *
8
+ * ## Imports
9
+ * - `computed`, `ref`, `ComputedRef`: Vue reactivity utilities
10
+ * - `useConfig`: Composable for accessing application configuration
11
+ *
12
+ * ## Reactive Variables
13
+ * - `downloads`: Reference object storing download data for all languages
14
+ * - `computedDownloads`: Singleton computed reference for current locale's download data
15
+ *
16
+ * ## Function: useDownloads
17
+ * - Asynchronous function that returns a computed reference to download data
18
+ * - Loads download data JSON files for all configured languages on first call
19
+ * - Initializes the computed reference if not already created
20
+ * - Returns the same computed reference on subsequent calls
21
+ * - Download data is filtered by the current locale from the configuration
22
+ *
23
+ * ## Return Value
24
+ * - ComputedRef<NsWowDownloads>: A computed reference to download data
25
+ * in the current locale
26
+ *
27
+ * ## Usage Example
28
+ * ```typescript
29
+ * const downloads = await useDownloads()
30
+ * console.log(downloads.value.structure) // Array of download structure items
31
+ */
32
+ import { computed, type ComputedRef } from 'vue';
33
+ import useConfig from './config';
34
+
35
+ const config = useConfig();
36
+
37
+ const downloads = computed<NsWowDownload[]>(() => {
38
+ if (!config.value.downloads[config.value.locale]) {
39
+ return [];
40
+ }
41
+ return config.value.downloads[config.value.locale].structure;
42
+ });
43
+
44
+ export default function useDownloads(): ComputedRef<NsWowDownload[]> {
45
+ return downloads;
46
+ }
@@ -0,0 +1,34 @@
1
+ import _useArticle from './article';
2
+ import _useArticles from './articles';
3
+ import _useConfig from './config';
4
+ import _useDownloads from './downloads';
5
+ import _useLocale from './locale';
6
+ import _useMenu from './menu';
7
+ import _useRoot from './root';
8
+ import _useSearch from './search';
9
+ import _useSettings from './settings';
10
+ import _useViewPort from './viewPort';
11
+
12
+ export const useArticle = _useArticle;
13
+ export const useArticles = _useArticles;
14
+ export const useConfig = _useConfig;
15
+ export const useDownloads = _useDownloads;
16
+ export const useLocale = _useLocale;
17
+ export const useMenu = _useMenu;
18
+ export const useRoot = _useRoot;
19
+ export const useSearch = _useSearch;
20
+ export const useSettings = _useSettings;
21
+ export const useViewPort = _useViewPort;
22
+
23
+ export default {
24
+ useArticle,
25
+ useArticles,
26
+ useConfig,
27
+ useDownloads,
28
+ useLocale,
29
+ useMenu,
30
+ useRoot,
31
+ useSearch,
32
+ useSettings,
33
+ useViewPort,
34
+ };
@@ -0,0 +1,8 @@
1
+ import useConfig from './config';
2
+ import { computed, type ComputedRef } from 'vue';
3
+
4
+ const config = useConfig();
5
+ const locale = computed<string>(() => config.value.locale);
6
+ export default function useLocale(): ComputedRef<string> {
7
+ return locale;
8
+ }