@simple-reporting/base 0.0.1

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 (483) hide show
  1. package/.github/workflows/npm-publish.yml +25 -0
  2. package/.nvmrc +1 -0
  3. package/.prettierrc +6 -0
  4. package/README.md +23 -0
  5. package/cli.js +114 -0
  6. package/dev/.ddev/config.yaml +279 -0
  7. package/dev/.ddev/nginx_full/custom.conf +12 -0
  8. package/dev/.env +1 -0
  9. package/dev/.env.development +1 -0
  10. package/dev/.eslintrc.cjs +15 -0
  11. package/dev/.nvmrc +1 -0
  12. package/dev/.prettierrc.json +8 -0
  13. package/dev/.vscode/extensions.json +3 -0
  14. package/dev/.vscode/settings.json +4 -0
  15. package/dev/README.md +45 -0
  16. package/dev/env.d.ts +1 -0
  17. package/dev/index.html +17 -0
  18. package/dev/ldd.html +7 -0
  19. package/dev/livingdocs/Media/image/app.scss +25 -0
  20. package/dev/livingdocs/Media/image/general.scss +11 -0
  21. package/dev/livingdocs/Media/image/image.html +46 -0
  22. package/dev/livingdocs/Media/image/ldd.scss +1 -0
  23. package/dev/livingdocs/Media/image/pdf.scss +1 -0
  24. package/dev/livingdocs/Media/image/print.scss +7 -0
  25. package/dev/livingdocs/Media/image/properties.json +41 -0
  26. package/dev/livingdocs/Media/image/web.scss +0 -0
  27. package/dev/livingdocs/Media/image/word.scss +1 -0
  28. package/dev/livingdocs/Properties/grid/app.scss +1 -0
  29. package/dev/livingdocs/Properties/grid/general.scss +95 -0
  30. package/dev/livingdocs/Properties/grid/ldd.scss +1 -0
  31. package/dev/livingdocs/Properties/grid/pdf.scss +1 -0
  32. package/dev/livingdocs/Properties/grid/print.scss +94 -0
  33. package/dev/livingdocs/Properties/grid/properties.json +68 -0
  34. package/dev/livingdocs/Properties/grid/web.scss +98 -0
  35. package/dev/livingdocs/Properties/grid/word.scss +1 -0
  36. package/dev/livingdocs/Text/paragraph/general.scss +9 -0
  37. package/dev/livingdocs/Text/paragraph/paragraph.html +22 -0
  38. package/dev/livingdocs/Titles/title-h1/general.scss +10 -0
  39. package/dev/livingdocs/Titles/title-h1/title-h1.html +16 -0
  40. package/dev/livingdocs/Titles/title-h2/app.scss +1 -0
  41. package/dev/livingdocs/Titles/title-h2/general.scss +13 -0
  42. package/dev/livingdocs/Titles/title-h2/ldd.scss +1 -0
  43. package/dev/livingdocs/Titles/title-h2/pdf.scss +1 -0
  44. package/dev/livingdocs/Titles/title-h2/print.scss +36 -0
  45. package/dev/livingdocs/Titles/title-h2/title-h2.html +24 -0
  46. package/dev/livingdocs/Titles/title-h2/web.scss +27 -0
  47. package/dev/livingdocs/Titles/title-h2/word.scss +1 -0
  48. package/dev/livingdocs/Titles/title-h3/app.scss +1 -0
  49. package/dev/livingdocs/Titles/title-h3/general.scss +13 -0
  50. package/dev/livingdocs/Titles/title-h3/ldd.scss +1 -0
  51. package/dev/livingdocs/Titles/title-h3/pdf.scss +1 -0
  52. package/dev/livingdocs/Titles/title-h3/print.scss +34 -0
  53. package/dev/livingdocs/Titles/title-h3/title-h3.html +24 -0
  54. package/dev/livingdocs/Titles/title-h3/web.scss +27 -0
  55. package/dev/livingdocs/Titles/title-h3/word.scss +1 -0
  56. package/dev/livingdocs/Titles/title-h4/app.scss +1 -0
  57. package/dev/livingdocs/Titles/title-h4/general.scss +13 -0
  58. package/dev/livingdocs/Titles/title-h4/ldd.scss +1 -0
  59. package/dev/livingdocs/Titles/title-h4/pdf.scss +1 -0
  60. package/dev/livingdocs/Titles/title-h4/print.scss +34 -0
  61. package/dev/livingdocs/Titles/title-h4/title-h4.html +24 -0
  62. package/dev/livingdocs/Titles/title-h4/web.scss +27 -0
  63. package/dev/livingdocs/Titles/title-h4/word.scss +1 -0
  64. package/dev/livingdocs/Titles/title-h5/general.scss +10 -0
  65. package/dev/livingdocs/Titles/title-h5/title-h5.html +16 -0
  66. package/dev/livingdocs/Titles/title-h6/general.scss +10 -0
  67. package/dev/livingdocs/Titles/title-h6/title-h6.html +16 -0
  68. package/dev/livingdocs.config.json +376 -0
  69. package/dev/nswow/ArticleAutoloader.ts +100 -0
  70. package/dev/nswow/ArticleLoader.ts +91 -0
  71. package/dev/nswow/colors.scss +3 -0
  72. package/dev/nswow/config.scss +13 -0
  73. package/dev/nswow/core-styles.scss +2 -0
  74. package/dev/nswow/fonts.scss +2 -0
  75. package/dev/nswow/grid.scss +2 -0
  76. package/dev/nswow/helpers.scss +2 -0
  77. package/dev/nswow/index.scss +9 -0
  78. package/dev/nswow/meta.scss +2 -0
  79. package/dev/nswow/spacer.scss +2 -0
  80. package/dev/nswow/system.scss +2 -0
  81. package/dev/nswow/typography.scss +3 -0
  82. package/dev/nswow.config.json +293 -0
  83. package/dev/package.json +61 -0
  84. package/dev/pdf/pdf-configuration-debug.xml +6 -0
  85. package/dev/pdf/pdf-configuration.xml +3 -0
  86. package/dev/pdf.ts +1 -0
  87. package/dev/public/.keep +0 -0
  88. package/dev/src/App.vue +44 -0
  89. package/dev/src/Autoload.ts +6 -0
  90. package/dev/src/assets/fonts/Roboto/roboto-v30-latin-300.woff2 +0 -0
  91. package/dev/src/assets/fonts/Roboto/roboto-v30-latin-700.woff2 +0 -0
  92. package/dev/src/assets/fonts/Roboto/roboto-v30-latin-italic.woff2 +0 -0
  93. package/dev/src/assets/fonts/Roboto/roboto-v30-latin-regular.woff2 +0 -0
  94. package/dev/src/assets/images/mms-logo-black.svg +91 -0
  95. package/dev/src/assets/images/mms-logo-white.svg +105 -0
  96. package/dev/src/assets/scss/app.scss +39 -0
  97. package/dev/src/assets/scss/general.scss +17 -0
  98. package/dev/src/assets/scss/ldd.scss +27 -0
  99. package/dev/src/assets/scss/pdf.scss +2 -0
  100. package/dev/src/assets/scss/print.scss +1 -0
  101. package/dev/src/assets/scss/web.scss +1 -0
  102. package/dev/src/assets/scss/word.scss +2 -0
  103. package/dev/src/components/LanguageSwitch.vue +100 -0
  104. package/dev/src/components/MainNavigation.vue +209 -0
  105. package/dev/src/components/MenuItem/MenuArticle.vue +15 -0
  106. package/dev/src/components/MenuItem/MenuEntry.vue +26 -0
  107. package/dev/src/components/MenuItem/MenuExternal.vue +28 -0
  108. package/dev/src/components/MenuItem/index.ts +5 -0
  109. package/dev/src/components/PageFooter.vue +86 -0
  110. package/dev/src/components/PageHeader.vue +149 -0
  111. package/dev/src/components/PageModal.vue +95 -0
  112. package/dev/src/components/PrevNext.vue +144 -0
  113. package/dev/src/components/ScrollToTop.vue +63 -0
  114. package/dev/src/components/SrlPage/KFCApplication/KFCApplication.vue +715 -0
  115. package/dev/src/components/SrlPage/KFCApplication/KFCDropdownCharts.vue +112 -0
  116. package/dev/src/components/SrlPage/KFCApplication/KFCDropdownPeriod.vue +85 -0
  117. package/dev/src/components/SrlPage/KFCApplication/KFCTable.vue +63 -0
  118. package/dev/src/components/SrlPage/KFCApplication/hooks/kfcData.ts +9 -0
  119. package/dev/src/components/SrlPage/KFCApplication/models/KFCApplication.ts +183 -0
  120. package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-basic.scss +1136 -0
  121. package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-custom.scss +71 -0
  122. package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-general.scss +113 -0
  123. package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison-dropdown.scss +189 -0
  124. package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison.scss +151 -0
  125. package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-loading.scss +40 -0
  126. package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-print.scss +20 -0
  127. package/dev/src/components/SrlPage/KFCApplication/scss/_srl-button-kfc.scss +21 -0
  128. package/dev/src/components/SrlPage/KFCApplication/scss/_variables.scss +10 -0
  129. package/dev/src/components/SrlPage/KFCApplication/services/xlsxParser.ts +194 -0
  130. package/dev/src/components/SrlPage/KFCApplication/theme/SvgColumnView.vue +28 -0
  131. package/dev/src/components/SrlPage/KFCApplication/theme/SvgDownloadChart.vue +26 -0
  132. package/dev/src/components/SrlPage/KFCApplication/theme/SvgDropdown.vue +18 -0
  133. package/dev/src/components/SrlPage/KFCApplication/theme/SvgIndexedValues.vue +18 -0
  134. package/dev/src/components/SrlPage/KFCApplication/theme/SvgLegendSwap.vue +18 -0
  135. package/dev/src/components/SrlPage/KFCApplication/theme/SvgLineView.vue +28 -0
  136. package/dev/src/components/SrlPage/KFCApplication/theme/SvgPDFChart.vue +26 -0
  137. package/dev/src/components/SrlPage/KFCApplication/theme/SvgPrintChart.vue +33 -0
  138. package/dev/src/components/SrlPage/KFCApplication/theme/SvgTableView.vue +67 -0
  139. package/dev/src/components/SrlPage/KFCApplication/utils/XDownloader.js +455 -0
  140. package/dev/src/components/SrlPage/KFCApplication/utils/XDownloaderStyle.js +44 -0
  141. package/dev/src/components/SrlPage/KFCApplication/utils/XTableNamer.js +68 -0
  142. package/dev/src/composables/config.ts +48 -0
  143. package/dev/src/i18n/index.ts +51 -0
  144. package/dev/src/i18n/translation.ts +85 -0
  145. package/dev/src/locales/de.json +15 -0
  146. package/dev/src/locales/en.json +15 -0
  147. package/dev/src/main.ts +16 -0
  148. package/dev/src/router/index.ts +47 -0
  149. package/dev/src/types/nswow.d.ts +73 -0
  150. package/dev/src/utils/variables.ts +13 -0
  151. package/dev/src/views/ArticleView.vue +77 -0
  152. package/dev/src/views/DownloadsView.vue +88 -0
  153. package/dev/src/views/HomeView.vue +35 -0
  154. package/dev/src/views/PageNotFound.vue +73 -0
  155. package/dev/src/views/SearchView.vue +126 -0
  156. package/dev/tsconfig.app.json +16 -0
  157. package/dev/tsconfig.json +14 -0
  158. package/dev/tsconfig.node.json +19 -0
  159. package/dev/tsconfig.vitest.json +11 -0
  160. package/dev/vite.config.ts +27 -0
  161. package/dev/vitest.config.ts +14 -0
  162. package/dev/word.ts +1 -0
  163. package/livingdocs/Buttons/button/app.scss +1 -0
  164. package/livingdocs/Buttons/button/button.html +18 -0
  165. package/livingdocs/Buttons/button/general.scss +33 -0
  166. package/livingdocs/Buttons/button/ldd.scss +1 -0
  167. package/livingdocs/Buttons/button/pdf.scss +1 -0
  168. package/livingdocs/Buttons/button/word.scss +1 -0
  169. package/livingdocs/Buttons/button-container/app.scss +1 -0
  170. package/livingdocs/Buttons/button-container/button-container.html +31 -0
  171. package/livingdocs/Buttons/button-container/general.scss +12 -0
  172. package/livingdocs/Buttons/button-container/ldd.scss +1 -0
  173. package/livingdocs/Buttons/button-container/pdf.scss +3 -0
  174. package/livingdocs/Buttons/button-container/properties.json +19 -0
  175. package/livingdocs/Buttons/button-container/word.scss +3 -0
  176. package/livingdocs/CV/cv-timeline/app.scss +1 -0
  177. package/livingdocs/CV/cv-timeline/cv-timeline.html +19 -0
  178. package/livingdocs/CV/cv-timeline/general.scss +1 -0
  179. package/livingdocs/CV/cv-timeline/ldd.scss +1 -0
  180. package/livingdocs/CV/cv-timeline/pdf.scss +1 -0
  181. package/livingdocs/CV/cv-timeline/print.scss +35 -0
  182. package/livingdocs/CV/cv-timeline/web.scss +27 -0
  183. package/livingdocs/CV/cv-timeline/word.scss +1 -0
  184. package/livingdocs/Container/column-container/column-container.html +44 -0
  185. package/livingdocs/Container/column-container/general.scss +105 -0
  186. package/livingdocs/Container/column-container/properties.json +83 -0
  187. package/livingdocs/Lists/alphanumeric-list-group/alphanumeric-list-group.html +25 -0
  188. package/livingdocs/Lists/alphanumeric-list-group/app.scss +1 -0
  189. package/livingdocs/Lists/alphanumeric-list-group/general.scss +5 -0
  190. package/livingdocs/Lists/alphanumeric-list-group/ldd.scss +1 -0
  191. package/livingdocs/Lists/alphanumeric-list-group/pdf.scss +1 -0
  192. package/livingdocs/Lists/alphanumeric-list-group/print.scss +0 -0
  193. package/livingdocs/Lists/alphanumeric-list-group/web.scss +0 -0
  194. package/livingdocs/Lists/alphanumeric-list-group/word.scss +1 -0
  195. package/livingdocs/Lists/list-item/app.scss +1 -0
  196. package/livingdocs/Lists/list-item/general.scss +4 -0
  197. package/livingdocs/Lists/list-item/ldd.scss +1 -0
  198. package/livingdocs/Lists/list-item/list-item.html +17 -0
  199. package/livingdocs/Lists/list-item/pdf.scss +1 -0
  200. package/livingdocs/Lists/list-item/print.scss +0 -0
  201. package/livingdocs/Lists/list-item/web.scss +0 -0
  202. package/livingdocs/Lists/list-item/word.scss +1 -0
  203. package/livingdocs/Lists/ordered-list-group/app.scss +1 -0
  204. package/livingdocs/Lists/ordered-list-group/general.scss +5 -0
  205. package/livingdocs/Lists/ordered-list-group/ldd.scss +1 -0
  206. package/livingdocs/Lists/ordered-list-group/ordered-list-group.html +25 -0
  207. package/livingdocs/Lists/ordered-list-group/pdf.scss +1 -0
  208. package/livingdocs/Lists/ordered-list-group/print.scss +0 -0
  209. package/livingdocs/Lists/ordered-list-group/web.scss +0 -0
  210. package/livingdocs/Lists/ordered-list-group/word.scss +1 -0
  211. package/livingdocs/Lists/unordered-list-group/app.scss +1 -0
  212. package/livingdocs/Lists/unordered-list-group/general.scss +5 -0
  213. package/livingdocs/Lists/unordered-list-group/ldd.scss +1 -0
  214. package/livingdocs/Lists/unordered-list-group/pdf.scss +1 -0
  215. package/livingdocs/Lists/unordered-list-group/print.scss +0 -0
  216. package/livingdocs/Lists/unordered-list-group/unordered-list-group.html +25 -0
  217. package/livingdocs/Lists/unordered-list-group/web.scss +0 -0
  218. package/livingdocs/Lists/unordered-list-group/word.scss +1 -0
  219. package/livingdocs/Media/chart/app.scss +19 -0
  220. package/livingdocs/Media/chart/chart.html +29 -0
  221. package/livingdocs/Media/chart/general.scss +11 -0
  222. package/livingdocs/Media/chart/ldd.scss +1 -0
  223. package/livingdocs/Media/chart/pdf.scss +9 -0
  224. package/livingdocs/Media/chart/print.scss +0 -0
  225. package/livingdocs/Media/chart/properties.json +41 -0
  226. package/livingdocs/Media/chart/web.scss +0 -0
  227. package/livingdocs/Media/chart/word.scss +1 -0
  228. package/livingdocs/Media/graphic/app.scss +1 -0
  229. package/livingdocs/Media/graphic/general.scss +18 -0
  230. package/livingdocs/Media/graphic/graphic.html +29 -0
  231. package/livingdocs/Media/graphic/ldd.scss +1 -0
  232. package/livingdocs/Media/graphic/pdf.scss +1 -0
  233. package/livingdocs/Media/graphic/print.scss +0 -0
  234. package/livingdocs/Media/graphic/properties.json +36 -0
  235. package/livingdocs/Media/graphic/web.scss +0 -0
  236. package/livingdocs/Media/graphic/word.scss +1 -0
  237. package/livingdocs/Media/image/app.scss +25 -0
  238. package/livingdocs/Media/image/general.scss +11 -0
  239. package/livingdocs/Media/image/image.html +55 -0
  240. package/livingdocs/Media/image/ldd.scss +1 -0
  241. package/livingdocs/Media/image/pdf.scss +1 -0
  242. package/livingdocs/Media/image/print.scss +7 -0
  243. package/livingdocs/Media/image/properties.json +41 -0
  244. package/livingdocs/Media/image/web.scss +0 -0
  245. package/livingdocs/Media/image/word.scss +1 -0
  246. package/livingdocs/Media/nswow-table/app.scss +2 -0
  247. package/livingdocs/Media/nswow-table/app.ts +35 -0
  248. package/livingdocs/Media/nswow-table/general.scss +281 -0
  249. package/livingdocs/Media/nswow-table/ldd.scss +2 -0
  250. package/livingdocs/Media/nswow-table/nswow-table.html +30 -0
  251. package/livingdocs/Media/nswow-table/pdf.scss +8 -0
  252. package/livingdocs/Media/nswow-table/print.scss +0 -0
  253. package/livingdocs/Media/nswow-table/properties.json +66 -0
  254. package/livingdocs/Media/nswow-table/web.scss +23 -0
  255. package/livingdocs/Media/nswow-table/word.scss +2 -0
  256. package/livingdocs/Media/video/app.scss +1 -0
  257. package/livingdocs/Media/video/general.scss +7 -0
  258. package/livingdocs/Media/video/ldd.scss +1 -0
  259. package/livingdocs/Media/video/pdf.scss +1 -0
  260. package/livingdocs/Media/video/print.scss +5 -0
  261. package/livingdocs/Media/video/properties.json +41 -0
  262. package/livingdocs/Media/video/video.html +26 -0
  263. package/livingdocs/Media/video/web.scss +0 -0
  264. package/livingdocs/Media/video/word.scss +1 -0
  265. package/livingdocs/Misc/accordion/accordion.html +56 -0
  266. package/livingdocs/Misc/accordion/app.scss +63 -0
  267. package/livingdocs/Misc/accordion/app.ts +10 -0
  268. package/livingdocs/Misc/accordion/general.scss +44 -0
  269. package/livingdocs/Misc/accordion/ldd.scss +36 -0
  270. package/livingdocs/Misc/accordion/pdf.scss +39 -0
  271. package/livingdocs/Misc/accordion/word.scss +39 -0
  272. package/livingdocs/Misc/anchor/anchor.html +15 -0
  273. package/livingdocs/Misc/anchor/app.scss +10 -0
  274. package/livingdocs/Misc/anchor/app.ts +11 -0
  275. package/livingdocs/Misc/anchor/general.scss +1 -0
  276. package/livingdocs/Misc/anchor/pdf.scss +1 -0
  277. package/livingdocs/Misc/anchor/print.scss +3 -0
  278. package/livingdocs/Misc/anchor/word.scss +1 -0
  279. package/livingdocs/Misc/spacer/app.scss +1 -0
  280. package/livingdocs/Misc/spacer/general.scss +8 -0
  281. package/livingdocs/Misc/spacer/ldd.scss +1 -0
  282. package/livingdocs/Misc/spacer/pdf.scss +1 -0
  283. package/livingdocs/Misc/spacer/print.scss +18 -0
  284. package/livingdocs/Misc/spacer/properties.json +52 -0
  285. package/livingdocs/Misc/spacer/spacer.html +12 -0
  286. package/livingdocs/Misc/spacer/web.scss +18 -0
  287. package/livingdocs/Misc/spacer/word.scss +1 -0
  288. package/livingdocs/PDF_only/pdf-cover/ldd.scss +42 -0
  289. package/livingdocs/PDF_only/pdf-cover/pdf-cover.html +29 -0
  290. package/livingdocs/PDF_only/pdf-cover/pdf.scss +1 -0
  291. package/livingdocs/PDF_only/pdf-cover/print.scss +0 -0
  292. package/livingdocs/PDF_only/pdf-cover/word.scss +1 -0
  293. package/livingdocs/PDF_only/pdf-cover-chapter/ldd.scss +19 -0
  294. package/livingdocs/PDF_only/pdf-cover-chapter/pdf-chapter-cover.html +18 -0
  295. package/livingdocs/PDF_only/pdf-cover-chapter/pdf.scss +1 -0
  296. package/livingdocs/PDF_only/pdf-cover-chapter/print.scss +19 -0
  297. package/livingdocs/PDF_only/pdf-cover-chapter/word.scss +1 -0
  298. package/livingdocs/PDF_only/pdf-pagebreak/general.scss +4 -0
  299. package/livingdocs/PDF_only/pdf-pagebreak/ldd.scss +5 -0
  300. package/livingdocs/PDF_only/pdf-pagebreak/pdf-pagebreak.html +8 -0
  301. package/livingdocs/PDF_only/pdf-publication-title/general.scss +5 -0
  302. package/livingdocs/PDF_only/pdf-publication-title/pdf-publication-title.html +15 -0
  303. package/livingdocs/PDF_only/pdf-toc-item/general.scss +41 -0
  304. package/livingdocs/PDF_only/pdf-toc-item/pdf-toc-item.html +33 -0
  305. package/livingdocs/PDF_only/pdf-toc-item/properties.json +7 -0
  306. package/livingdocs/PDF_only/pdf-toc-item-blank/general.scss +5 -0
  307. package/livingdocs/PDF_only/pdf-toc-item-blank/pdf-toc-item-blank.html +11 -0
  308. package/livingdocs/PDF_only/pdf-toc-item-title/general.scss +5 -0
  309. package/livingdocs/PDF_only/pdf-toc-item-title/pdf-toc-item-title.html +11 -0
  310. package/livingdocs/PDF_only/pdf-toc-page/app.scss +1 -0
  311. package/livingdocs/PDF_only/pdf-toc-page/general.scss +1 -0
  312. package/livingdocs/PDF_only/pdf-toc-page/ldd.scss +1 -0
  313. package/livingdocs/PDF_only/pdf-toc-page/pdf-toc-page.html +33 -0
  314. package/livingdocs/PDF_only/pdf-toc-page/pdf.scss +1 -0
  315. package/livingdocs/PDF_only/pdf-toc-page/properties.json +12 -0
  316. package/livingdocs/PDF_only/pdf-toc-page/word.scss +1 -0
  317. package/livingdocs/PDF_only/pdf-video-link/ldd.scss +16 -0
  318. package/livingdocs/PDF_only/pdf-video-link/pdf-video-link.html +41 -0
  319. package/livingdocs/PDF_only/pdf-video-link/pdf.scss +1 -0
  320. package/livingdocs/PDF_only/pdf-video-link/print.scss +12 -0
  321. package/livingdocs/PDF_only/pdf-video-link/word.scss +1 -0
  322. package/livingdocs/Properties/grid/app.scss +1 -0
  323. package/livingdocs/Properties/grid/general.scss +95 -0
  324. package/livingdocs/Properties/grid/ldd.scss +1 -0
  325. package/livingdocs/Properties/grid/pdf.scss +1 -0
  326. package/livingdocs/Properties/grid/print.scss +94 -0
  327. package/livingdocs/Properties/grid/properties.json +68 -0
  328. package/livingdocs/Properties/grid/web.scss +98 -0
  329. package/livingdocs/Properties/grid/word.scss +1 -0
  330. package/livingdocs/Signatures/signature-container/app.scss +1 -0
  331. package/livingdocs/Signatures/signature-container/general.scss +7 -0
  332. package/livingdocs/Signatures/signature-container/ldd.scss +1 -0
  333. package/livingdocs/Signatures/signature-container/pdf.scss +1 -0
  334. package/livingdocs/Signatures/signature-container/print.scss +0 -0
  335. package/livingdocs/Signatures/signature-container/signature-container.html +30 -0
  336. package/livingdocs/Signatures/signature-container/web.scss +0 -0
  337. package/livingdocs/Signatures/signature-container/word.scss +1 -0
  338. package/livingdocs/Signatures/signature-item/app.scss +1 -0
  339. package/livingdocs/Signatures/signature-item/general.scss +53 -0
  340. package/livingdocs/Signatures/signature-item/ldd.scss +1 -0
  341. package/livingdocs/Signatures/signature-item/pdf.scss +1 -0
  342. package/livingdocs/Signatures/signature-item/print.scss +0 -0
  343. package/livingdocs/Signatures/signature-item/signature-item.html +23 -0
  344. package/livingdocs/Signatures/signature-item/web.scss +0 -0
  345. package/livingdocs/Signatures/signature-item/word.scss +1 -0
  346. package/livingdocs/Text/footnote/app.scss +1 -0
  347. package/livingdocs/Text/footnote/footnote.html +14 -0
  348. package/livingdocs/Text/footnote/general.scss +12 -0
  349. package/livingdocs/Text/footnote/ldd.scss +1 -0
  350. package/livingdocs/Text/footnote/pdf.scss +1 -0
  351. package/livingdocs/Text/footnote/print.scss +36 -0
  352. package/livingdocs/Text/footnote/web.scss +27 -0
  353. package/livingdocs/Text/footnote/word.scss +1 -0
  354. package/livingdocs/Text/lead/general.scss +9 -0
  355. package/livingdocs/Text/lead/lead.html +23 -0
  356. package/livingdocs/Text/paragraph/general.scss +9 -0
  357. package/livingdocs/Text/paragraph/paragraph.html +24 -0
  358. package/livingdocs/Text/quote/general.scss +43 -0
  359. package/livingdocs/Text/quote/properties.json +7 -0
  360. package/livingdocs/Text/quote/quote.html +29 -0
  361. package/livingdocs/Text/quote-with-portrait/general.scss +81 -0
  362. package/livingdocs/Text/quote-with-portrait/properties.json +12 -0
  363. package/livingdocs/Text/quote-with-portrait/quote-with-portrait.html +49 -0
  364. package/livingdocs/Titles/title-h1/general.scss +10 -0
  365. package/livingdocs/Titles/title-h1/title-h1.html +16 -0
  366. package/livingdocs/Titles/title-h2/app.scss +1 -0
  367. package/livingdocs/Titles/title-h2/general.scss +13 -0
  368. package/livingdocs/Titles/title-h2/ldd.scss +1 -0
  369. package/livingdocs/Titles/title-h2/pdf.scss +1 -0
  370. package/livingdocs/Titles/title-h2/print.scss +36 -0
  371. package/livingdocs/Titles/title-h2/title-h2.html +26 -0
  372. package/livingdocs/Titles/title-h2/web.scss +27 -0
  373. package/livingdocs/Titles/title-h2/word.scss +1 -0
  374. package/livingdocs/Titles/title-h3/app.scss +1 -0
  375. package/livingdocs/Titles/title-h3/general.scss +13 -0
  376. package/livingdocs/Titles/title-h3/ldd.scss +1 -0
  377. package/livingdocs/Titles/title-h3/pdf.scss +1 -0
  378. package/livingdocs/Titles/title-h3/print.scss +34 -0
  379. package/livingdocs/Titles/title-h3/title-h3.html +26 -0
  380. package/livingdocs/Titles/title-h3/web.scss +27 -0
  381. package/livingdocs/Titles/title-h3/word.scss +1 -0
  382. package/livingdocs/Titles/title-h4/app.scss +1 -0
  383. package/livingdocs/Titles/title-h4/general.scss +13 -0
  384. package/livingdocs/Titles/title-h4/ldd.scss +1 -0
  385. package/livingdocs/Titles/title-h4/pdf.scss +1 -0
  386. package/livingdocs/Titles/title-h4/print.scss +34 -0
  387. package/livingdocs/Titles/title-h4/title-h4.html +26 -0
  388. package/livingdocs/Titles/title-h4/web.scss +27 -0
  389. package/livingdocs/Titles/title-h4/word.scss +1 -0
  390. package/livingdocs/Titles/title-h5/general.scss +10 -0
  391. package/livingdocs/Titles/title-h5/title-h5.html +16 -0
  392. package/livingdocs/Titles/title-h6/general.scss +10 -0
  393. package/livingdocs/Titles/title-h6/title-h6.html +16 -0
  394. package/package.json +50 -0
  395. package/preparePublish.cjs +95 -0
  396. package/scripts/beaver.d.ts +6 -0
  397. package/scripts/beaver.js +316 -0
  398. package/scripts/build.d.ts +40 -0
  399. package/scripts/build.js +812 -0
  400. package/scripts/colors.d.ts +3 -0
  401. package/scripts/colors.js +27 -0
  402. package/scripts/components.d.ts +43 -0
  403. package/scripts/components.js +566 -0
  404. package/scripts/config.d.ts +1 -0
  405. package/scripts/config.js +1 -0
  406. package/scripts/doPublish.d.ts +1 -0
  407. package/scripts/doPublish.js +43 -0
  408. package/scripts/init.d.ts +9 -0
  409. package/scripts/init.js +45 -0
  410. package/scripts/migrate-livingdocs-build/LICENSE +21 -0
  411. package/scripts/migrate-livingdocs-build/bin/build.d.ts +8 -0
  412. package/scripts/migrate-livingdocs-build/bin/build.js +53 -0
  413. package/scripts/migrate-livingdocs-build/bin/migrate.d.ts +2 -0
  414. package/scripts/migrate-livingdocs-build/bin/migrate.js +43 -0
  415. package/scripts/migrate-livingdocs-build/dev/build/v1.d.ts +9 -0
  416. package/scripts/migrate-livingdocs-build/dev/build/v1.d.ts.map +1 -0
  417. package/scripts/migrate-livingdocs-build/dev/build/v1.js +51 -0
  418. package/scripts/migrate-livingdocs-build/dev/build/v2.d.ts +2 -0
  419. package/scripts/migrate-livingdocs-build/dev/build/v2.d.ts.map +1 -0
  420. package/scripts/migrate-livingdocs-build/dev/build/v2.js +44 -0
  421. package/scripts/migrate-livingdocs-build/dev/build/zip-archive.d.ts +2 -0
  422. package/scripts/migrate-livingdocs-build/dev/build/zip-archive.d.ts.map +1 -0
  423. package/scripts/migrate-livingdocs-build/dev/build/zip-archive.js +39 -0
  424. package/scripts/migrate-livingdocs-build/dev/build.d.ts +9 -0
  425. package/scripts/migrate-livingdocs-build/dev/build.js +7 -0
  426. package/scripts/migrate-livingdocs-build/dev/configuration-defaults.d.ts +20 -0
  427. package/scripts/migrate-livingdocs-build/dev/configuration-defaults.js +18 -0
  428. package/scripts/migrate-livingdocs-build/dev/configuration.d.ts +2 -0
  429. package/scripts/migrate-livingdocs-build/dev/configuration.js +34 -0
  430. package/scripts/migrate-livingdocs-build/dev/lib.d.ts +33 -0
  431. package/scripts/migrate-livingdocs-build/dev/lib.js +251 -0
  432. package/scripts/migrate-livingdocs-build/dev/livingdocs-design.d.ts +9 -0
  433. package/scripts/migrate-livingdocs-build/dev/livingdocs-design.js +80 -0
  434. package/scripts/migrate-livingdocs-build/dev/logger.d.ts +2 -0
  435. package/scripts/migrate-livingdocs-build/dev/logger.js +16 -0
  436. package/scripts/migrate-livingdocs-build/dev/migrate.d.ts +22 -0
  437. package/scripts/migrate-livingdocs-build/dev/migrate.js +241 -0
  438. package/scripts/migrate-livingdocs-build/readme.md +62 -0
  439. package/scripts/preparePublish.d.ts +1 -0
  440. package/scripts/preparePublish.js +88 -0
  441. package/scripts/renamePackage.d.ts +1 -0
  442. package/scripts/renamePackage.js +48 -0
  443. package/scripts/utils.d.ts +49 -0
  444. package/scripts/utils.js +106 -0
  445. package/scripts/vite.d.ts +10 -0
  446. package/scripts/vite.js +58 -0
  447. package/scss/colors/functions.scss +18 -0
  448. package/scss/colors/index.scss +3 -0
  449. package/scss/colors/mixins.scss +45 -0
  450. package/scss/colors/variables.scss +6 -0
  451. package/scss/config.scss +7 -0
  452. package/scss/core-styles.scss +22 -0
  453. package/scss/fonts/functions.scss +21 -0
  454. package/scss/fonts/index.scss +3 -0
  455. package/scss/fonts/mixins.scss +31 -0
  456. package/scss/fonts/variables.scss +8 -0
  457. package/scss/grid/functions.scss +29 -0
  458. package/scss/grid/index.scss +3 -0
  459. package/scss/grid/mixins.scss +388 -0
  460. package/scss/grid/variables.scss +10 -0
  461. package/scss/helpers/functions.scss +0 -0
  462. package/scss/helpers/index.scss +3 -0
  463. package/scss/helpers/mixins.scss +87 -0
  464. package/scss/helpers/variables.scss +7 -0
  465. package/scss/index.scss +8 -0
  466. package/scss/meta/functions.scss +64 -0
  467. package/scss/meta/index.scss +3 -0
  468. package/scss/meta/mixins.scss +6 -0
  469. package/scss/meta/variables.scss +8 -0
  470. package/scss/spacer/functions.scss +9 -0
  471. package/scss/spacer/index.scss +3 -0
  472. package/scss/spacer/mixins.scss +236 -0
  473. package/scss/spacer/variables.scss +6 -0
  474. package/scss/system/functions.scss +77 -0
  475. package/scss/system/index.scss +3 -0
  476. package/scss/system/mixins.scss +27 -0
  477. package/scss/system/root.scss +39 -0
  478. package/scss/system/variables.scss +13 -0
  479. package/scss/typography/functions.scss +63 -0
  480. package/scss/typography/index.scss +3 -0
  481. package/scss/typography/mixins.scss +262 -0
  482. package/scss/typography/variables.scss +11 -0
  483. package/tags.txt +1 -0
@@ -0,0 +1,28 @@
1
+ <script setup lang="ts">
2
+ const props = defineProps<{
3
+ label: string
4
+ url: string
5
+ }>()
6
+ </script>
7
+
8
+ <template>
9
+ <span>
10
+ <a :href="props.url" target="_blank" :title="props.label">{{ props.label }}</a>
11
+ <svg
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ width="16"
14
+ height="16"
15
+ fill="currentColor"
16
+ viewBox="0 0 16 16"
17
+ >
18
+ <path
19
+ fill-rule="evenodd"
20
+ d="M6.364 13.5a.5.5 0 0 0 .5.5H13.5a1.5 1.5 0 0 0 1.5-1.5v-10A1.5 1.5 0 0 0 13.5 1h-10A1.5 1.5 0 0 0 2 2.5v6.636a.5.5 0 1 0 1 0V2.5a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 .5.5v10a.5.5 0 0 1-.5.5H6.864a.5.5 0 0 0-.5.5z"
21
+ />
22
+ <path
23
+ fill-rule="evenodd"
24
+ d="M11 5.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793l-8.147 8.146a.5.5 0 0 0 .708.708L10 6.707V10.5a.5.5 0 0 0 1 0v-5z"
25
+ />
26
+ </svg>
27
+ </span>
28
+ </template>
@@ -0,0 +1,5 @@
1
+ import MenuArticle from '@/components/MenuItem/MenuArticle.vue'
2
+ import MenuEntry from '@/components/MenuItem/MenuEntry.vue'
3
+ import MenuExternal from '@/components/MenuItem/MenuExternal.vue'
4
+
5
+ export { MenuExternal, MenuArticle, MenuEntry }
@@ -0,0 +1,86 @@
1
+ <script lang="ts" setup>
2
+ import { MenuArticle, MenuExternal, MenuEntry } from '@/components/MenuItem'
3
+ import { computed, ref } from 'vue'
4
+ import useConfig from '@/composables/config'
5
+ import { useI18n } from 'vue-i18n'
6
+
7
+ const { locale } = useI18n()
8
+ const config = await useConfig()
9
+ const navigation = ref<NsWowMenu[]>([])
10
+
11
+ const currentMenus = computed<NsWowMenus>(() => {
12
+ return config.value.menus[locale.value] ?? {}
13
+ })
14
+
15
+ function getLinkByPage(page: string): string {
16
+ return `/${locale.value}/${page}`
17
+ }
18
+
19
+ if (currentMenus.value?.footer) {
20
+ navigation.value = currentMenus.value.footer
21
+ }
22
+ </script>
23
+
24
+ <template>
25
+ <footer class="srl-bg-secondary-light srl-color-on-secondary-light">
26
+ <div class="srl-footer__inner">
27
+ <div class="srl-footer__inner-navigation">
28
+ <h2>Footernavigation</h2>
29
+ <ul>
30
+ <li v-for="(item, index) in navigation" :key="index">
31
+ <MenuArticle
32
+ v-if="item.type === 'Article'"
33
+ :label="item.label"
34
+ :page="getLinkByPage(<string>item.page)"
35
+ />
36
+ <MenuEntry v-if="item.type === 'MenuEntry'" :label="item.label" />
37
+ <MenuExternal
38
+ v-if="item.type === 'ExternalLink'"
39
+ :label="item.label"
40
+ :url="<string>item.url"
41
+ />
42
+ </li>
43
+ </ul>
44
+ </div>
45
+ <div class="srl-footer__inner-imprint">
46
+ <p>
47
+ Made by<br /><a href="https://mmssolutions.io/" target="_blank">mms solutions</a> x
48
+ <a href="https://www.multivisio.de/" target="_blank">MULTIVISIO</a>
49
+ </p>
50
+ </div>
51
+ </div>
52
+ </footer>
53
+ </template>
54
+
55
+ <style scoped lang="scss">
56
+ @use 'nswow';
57
+
58
+ footer {
59
+ min-height: nswow.system-size-unit(60);
60
+ padding: nswow.system-size-unit(20) 0;
61
+
62
+ .srl-footer {
63
+ &__inner {
64
+ margin: 0 auto;
65
+ @include nswow.grid-container();
66
+
67
+ &-imprint {
68
+ text-align: center;
69
+ }
70
+
71
+ &-navigation {
72
+ ul {
73
+ list-style-type: none;
74
+ padding: 0 0 0 0;
75
+ display: flex;
76
+ gap: nswow.system-size-unit(10);
77
+ }
78
+ }
79
+ }
80
+ }
81
+
82
+ @include nswow.grid-media(print) {
83
+ display: none;
84
+ }
85
+ }
86
+ </style>
@@ -0,0 +1,149 @@
1
+ <script lang="ts" setup>
2
+ import { RouterLink } from 'vue-router'
3
+ import { ref } from 'vue'
4
+ import { useI18n } from 'vue-i18n'
5
+ import LanguageSwitch from '@/components/LanguageSwitch.vue'
6
+
7
+ const { locale } = useI18n()
8
+ const srlSearch = ref()
9
+ let searchValue = ref('')
10
+
11
+ function toggleSearchVisible() {
12
+ srlSearch.value.classList.toggle('visible')
13
+ }
14
+
15
+ function search() {
16
+ $router.push(`/${locale}/search?searchValue=${searchValue.value}`)
17
+ toggleSearchVisible()
18
+ }
19
+ </script>
20
+
21
+ <template>
22
+ <header class="srl-bg-primary srl-color-light">
23
+ <div class="srl-header__inner">
24
+ <router-link class="srl-header__inner-logo" :to="{ path: `/${locale}` }">
25
+ <img :src="`@/assets/images/mms-logo-white.svg`" alt="logo" />
26
+ </router-link>
27
+ <div class="srl-header__inner-content">
28
+ <div class="srl-header__inner-languages">
29
+ <router-link :to="{ path: `/${locale}/downloads` }">
30
+ <button class="srl-color-light">
31
+ <svg
32
+ xmlns="http://www.w3.org/2000/svg"
33
+ width="16"
34
+ height="16"
35
+ fill="currentColor"
36
+ class="bi bi-download"
37
+ viewBox="0 0 16 16"
38
+ >
39
+ <path
40
+ d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z"
41
+ />
42
+ <path
43
+ d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z"
44
+ />
45
+ </svg>
46
+ </button>
47
+ </router-link>
48
+ <button class="srl-color-light" @click="toggleSearchVisible">
49
+ <svg
50
+ xmlns="http://www.w3.org/2000/svg"
51
+ width="16"
52
+ height="16"
53
+ fill="currentColor"
54
+ class="bi bi-search"
55
+ viewBox="0 0 16 16"
56
+ >
57
+ <path
58
+ d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"
59
+ />
60
+ </svg>
61
+ </button>
62
+ <suspense>
63
+ <LanguageSwitch />
64
+ </suspense>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ <div ref="srlSearch" class="srl-header__search">
69
+ <input type="search" placeholder="Search ..." v-model="searchValue" @keyup.enter="search" />
70
+ </div>
71
+ </header>
72
+ </template>
73
+
74
+ <style scoped lang="scss">
75
+ @use 'nswow';
76
+
77
+ header {
78
+ min-height: nswow.system-size-unit(60);
79
+ padding: nswow.system-size-unit(10) 0;
80
+
81
+ .srl-header {
82
+ &__inner {
83
+ margin: 0 auto;
84
+ @include nswow.grid-container();
85
+ @include nswow.grid-row();
86
+
87
+ &-logo {
88
+ height: nswow.system-size-unit(60);
89
+ width: 100%;
90
+ display: block;
91
+ @include nswow.grid-col(4, phone);
92
+ @include nswow.grid-col(3, portrait);
93
+ @include nswow.grid-col(2, landscape);
94
+ @include nswow.grid-col(2, desktop);
95
+
96
+ img {
97
+ height: 100%;
98
+ max-width: 150px;
99
+ }
100
+ }
101
+
102
+ &-languages {
103
+ display: flex;
104
+ justify-content: flex-end;
105
+ min-height: nswow.system-size-unit(5);
106
+
107
+ button {
108
+ background: transparent;
109
+ border: none;
110
+ cursor: pointer;
111
+ outline: none;
112
+ }
113
+ }
114
+
115
+ &-content {
116
+ @include nswow.grid-col(8, phone);
117
+ @include nswow.grid-col(9, portrait);
118
+ @include nswow.grid-col(10, landscape);
119
+ @include nswow.grid-col(10, desktop);
120
+ }
121
+ }
122
+
123
+ &__search {
124
+ margin: 0 auto;
125
+ height: 0;
126
+ opacity: 0;
127
+ overflow: hidden;
128
+ transition: height 100ms linear;
129
+ @include nswow.grid-container();
130
+
131
+ &.visible {
132
+ min-height: nswow.system-size-unit(40);
133
+ opacity: 1;
134
+ }
135
+
136
+ input {
137
+ width: 100%;
138
+ height: 100%;
139
+ border: nswow.system-size-unit(1) solid nswow.colors-light();
140
+ padding: nswow.system-size-unit(5) nswow.system-size-unit(10);
141
+ }
142
+ }
143
+ }
144
+
145
+ @include nswow.grid-media(print) {
146
+ display: none;
147
+ }
148
+ }
149
+ </style>
@@ -0,0 +1,95 @@
1
+ <script setup lang="ts">
2
+ import { nextTick, ref } from 'vue'
3
+
4
+ const content = ref<string | null>(null)
5
+ const state = ref<boolean>(false)
6
+
7
+ async function setContent(html: string) {
8
+ content.value = html
9
+ nextTick(open())
10
+ }
11
+
12
+ async function open() {
13
+ state.value = true
14
+ }
15
+
16
+ function close() {
17
+ state.value = false
18
+ }
19
+
20
+ defineExpose({
21
+ setContent,
22
+ open,
23
+ close
24
+ })
25
+ </script>
26
+
27
+ <template>
28
+ <div class="modal" :class="{ open: state }">
29
+ <div class="background srl-bg-shade-200" @click="close" />
30
+ <div class="content srl-bg-light srl-color-dark" @click.stop>
31
+ <header>
32
+ <button title="$t('buttons.close')" @click="close">
33
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
34
+ <!--!Font Awesome Pro 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2024 Fonticons, Inc.-->
35
+ <path
36
+ d="M64 64C46.3 64 32 78.3 32 96V416c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H64zM0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm180.7 84.7c6.2-6.2 16.4-6.2 22.6 0L256 233.4l52.7-52.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L278.6 256l52.7 52.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L256 278.6l-52.7 52.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L233.4 256l-52.7-52.7c-6.2-6.2-6.2-16.4 0-22.6z"
37
+ />
38
+ </svg>
39
+ </button>
40
+ </header>
41
+ <main v-html="content" />
42
+ </div>
43
+ </div>
44
+ </template>
45
+
46
+ <style scoped lang="scss">
47
+ @use 'nswow';
48
+
49
+ .modal {
50
+ position: fixed;
51
+ inset: 0;
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ opacity: 0;
56
+ transition: opacity ease-out 0.5s;
57
+ pointer-events: none;
58
+
59
+ &.open {
60
+ pointer-events: all;
61
+ opacity: 1;
62
+ }
63
+ }
64
+
65
+ header {
66
+ button {
67
+ width: 50px;
68
+ height: 50px;
69
+ position: absolute;
70
+ top: 0;
71
+ right: 0;
72
+ svg {
73
+ width: 100%;
74
+ height: 100%;
75
+ }
76
+ }
77
+ }
78
+
79
+ .background {
80
+ position: fixed;
81
+ inset: 0;
82
+ z-index: 900;
83
+ }
84
+
85
+ .content {
86
+ position: relative;
87
+ width: 80%;
88
+ min-height: 80%;
89
+ max-height: 80%;
90
+ border-radius: 20px;
91
+ overflow: hidden;
92
+ padding: 40px;
93
+ z-index: 901;
94
+ }
95
+ </style>
@@ -0,0 +1,144 @@
1
+ <script lang="ts" setup>
2
+ import ScrollToTop from '@/components/ScrollToTop.vue'
3
+ import { computed } from 'vue'
4
+ import { useRoute } from 'vue-router'
5
+ import useConfig from '@/composables/config'
6
+ import { ArrayToString } from '@/utils/variables'
7
+
8
+ const config = await useConfig()
9
+ const route = useRoute()
10
+
11
+ const locale = computed<string>(() => {
12
+ return ArrayToString(route.params.locale)
13
+ })
14
+
15
+ const articles = computed<NsWowArticle[]>(() => {
16
+ const a = config.value.articles[locale.value]
17
+ const res = []
18
+ if (a) {
19
+ for (let i = 0; i < a.length; i++) {
20
+ if (a[i].originalLanguageOfArticle) {
21
+ res.push(a[i])
22
+ }
23
+ }
24
+ }
25
+ return res
26
+ })
27
+
28
+ const activeArticle = computed<number>(() => {
29
+ return articles.value.findIndex((i) => i.slug === ArrayToString(route.params.slug))
30
+ })
31
+
32
+ const nextRoute = computed(() => {
33
+ if (activeArticle.value === -1) {
34
+ return null
35
+ }
36
+ let nextIndex: number = activeArticle.value + 1
37
+ if (nextIndex >= articles.value.length) {
38
+ nextIndex = 0
39
+ }
40
+ return {
41
+ params: {
42
+ locale: locale.value,
43
+ slug: articles.value[nextIndex].slug.split('/')
44
+ }
45
+ }
46
+ })
47
+
48
+ const prevRoute = computed(() => {
49
+ if (activeArticle.value === -1) {
50
+ return null
51
+ }
52
+ let prevIndex: number = activeArticle.value - 1
53
+ if (prevIndex < 0) {
54
+ prevIndex = articles.value.length - 1
55
+ }
56
+ return {
57
+ params: {
58
+ locale: locale.value,
59
+ slug: articles.value[prevIndex].slug.split('/')
60
+ }
61
+ }
62
+ })
63
+ </script>
64
+ <template>
65
+ <div class="srl-nav-holder">
66
+ <router-link
67
+ v-if="prevRoute"
68
+ :to="prevRoute"
69
+ class="srl-nav-holder__nav-btn srl-bg-primary srl-color-light srl-typo-headline3"
70
+ >
71
+ <svg
72
+ xmlns="http://www.w3.org/2000/svg"
73
+ width="16"
74
+ height="16"
75
+ fill="currentColor"
76
+ class="bi bi-chevron-left left"
77
+ viewBox="0 0 16 16"
78
+ >
79
+ <path
80
+ fill-rule="evenodd"
81
+ d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"
82
+ />
83
+ </svg>
84
+ {{ $t('page.prev') }}
85
+ </router-link>
86
+ <ScrollToTop />
87
+ <router-link
88
+ v-if="nextRoute"
89
+ :to="nextRoute"
90
+ class="srl-nav-holder__nav-btn srl-bg-primary srl-color-light srl-typo-headline3"
91
+ >
92
+ {{ $t('page.next') }}
93
+ <svg
94
+ xmlns="http://www.w3.org/2000/svg"
95
+ width="16"
96
+ height="16"
97
+ fill="currentColor"
98
+ class="bi bi-chevron-right right"
99
+ viewBox="0 0 16 16"
100
+ >
101
+ <path
102
+ fill-rule="evenodd"
103
+ d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"
104
+ />
105
+ </svg>
106
+ </router-link>
107
+ </div>
108
+ </template>
109
+
110
+ <style scoped lang="scss">
111
+ @use 'nswow';
112
+
113
+ .srl-nav-holder {
114
+ display: flex;
115
+ width: 100%;
116
+ justify-content: space-between;
117
+ position: sticky;
118
+ bottom: 0;
119
+ margin-bottom: nswow.system-size-unit(10);
120
+
121
+ &__nav-btn {
122
+ display: flex;
123
+ cursor: pointer;
124
+ align-items: center;
125
+ padding: nswow.system-size-unit(10) nswow.system-size-unit(15);
126
+
127
+ svg {
128
+ transition: all 200ms ease;
129
+
130
+ &.left {
131
+ margin-right: nswow.system-size-unit(10);
132
+ }
133
+
134
+ &.right {
135
+ margin-left: nswow.system-size-unit(10);
136
+ }
137
+ }
138
+ }
139
+
140
+ @include nswow.grid-media(print) {
141
+ display: none;
142
+ }
143
+ }
144
+ </style>
@@ -0,0 +1,63 @@
1
+ <script lang="ts" setup>
2
+ function toTheTop() {
3
+ window.scrollTo({ top: 0, behavior: 'smooth' })
4
+ }
5
+ </script>
6
+ <template>
7
+ <div class="srl-scrollToTop srl-bg-primary srl-color-light" @click="toTheTop">
8
+ <svg
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ width="16"
11
+ height="16"
12
+ fill="currentColor"
13
+ class="bi bi-chevron-up"
14
+ viewBox="0 0 16 16"
15
+ >
16
+ <path
17
+ fill-rule="evenodd"
18
+ d="M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708l6-6z"
19
+ />
20
+ </svg>
21
+ <span>{{ $t('scrollToTop') }}</span>
22
+ </div>
23
+ </template>
24
+
25
+ <style scoped lang="scss">
26
+ @use 'nswow';
27
+
28
+ .srl-scrollToTop {
29
+ position: absolute;
30
+ margin: auto;
31
+ display: flex;
32
+ justify-content: center;
33
+ align-items: center;
34
+ cursor: pointer;
35
+ bottom: nswow.system-size-unit(10);
36
+ right: 0;
37
+ left: 0;
38
+ z-index: 999;
39
+ width: nswow.system-size-unit(40);
40
+ height: nswow.system-size-unit(40);
41
+
42
+ span {
43
+ display: none;
44
+ }
45
+
46
+ &:hover {
47
+ width: nswow.system-size-unit(180);
48
+
49
+ span {
50
+ display: block;
51
+ margin: 0 auto;
52
+ }
53
+
54
+ svg {
55
+ display: none;
56
+ }
57
+ }
58
+
59
+ @include nswow.grid-media(print) {
60
+ display: none;
61
+ }
62
+ }
63
+ </style>