@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.
- package/.github/workflows/npm-publish.yml +0 -1
- package/cli.js +9 -2
- package/dev/index.html +3 -2
- package/dev/livingdocs.config.json +6 -228
- package/dev/package.json +24 -21
- package/dev/pdf/pdf-configuration-debug.xml +3 -0
- package/dev/public/downloads/downloads_de.json +1 -0
- package/dev/public/downloads/downloads_en.json +1 -0
- package/dev/public/favicon.png +0 -0
- package/dev/public/html/de/Downloads.html +3 -0
- package/dev/public/html/de/Home.html +3 -0
- package/dev/public/html/de/Suche.html +3 -0
- package/dev/public/html/en/Downloads.html +3 -0
- package/dev/public/html/en/Home.html +3 -0
- package/dev/public/html/en/Suche.html +3 -0
- package/dev/public/json/routing_de.json +86 -0
- package/dev/public/json/routing_en.json +86 -0
- package/dev/public/json/settings.json +8 -0
- package/dev/public/json/translations_hosting.json +1 -0
- package/dev/src/App.vue +23 -34
- package/dev/src/Autoload.ts +1 -1
- package/dev/src/Dialog.vue +99 -0
- package/dev/src/assets/fonts/Inter/Inter-Regular.ttf +0 -0
- package/dev/src/assets/fonts/Inter/Inter-Regular.woff2 +0 -0
- package/dev/src/assets/fonts/Inter/Inter-SemiBold.ttf +0 -0
- package/dev/src/assets/fonts/Inter/Inter-SemiBold.woff2 +0 -0
- package/dev/src/assets/fonts/Inter/inter.scss +17 -0
- package/dev/src/assets/images/next.svg +12 -0
- package/dev/src/assets/images/prev.svg +12 -0
- package/dev/src/assets/images/toTop.svg +12 -0
- package/dev/src/assets/scss/app.scss +1 -1
- package/dev/src/assets/scss/{ldd.scss → editor.scss} +6 -6
- package/dev/src/assets/scss/general.scss +53 -11
- package/dev/src/assets/scss/pdf.scss +137 -1
- package/dev/src/assets/scss/placeholders.scss +226 -0
- package/dev/src/assets/scss/print.scss +1 -1
- package/dev/src/assets/scss/web.scss +32 -1
- package/dev/src/assets/scss/word.scss +1 -1
- package/dev/src/components/BypassLinks.vue +90 -0
- package/dev/src/components/MainNavigation.vue +6 -200
- package/dev/src/components/NavLanguages.vue +57 -0
- package/dev/src/components/PageFooter.vue +11 -52
- package/dev/src/components/PageHeader.vue +27 -135
- package/dev/src/components/PageMain.vue +13 -0
- package/dev/src/components/PrevNext.vue +130 -106
- package/dev/src/components/SrlPage/KFCApplication/hooks/kfcData.ts +2 -2
- package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison.scss +21 -21
- package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-loading.scss +3 -3
- package/dev/src/components/SrlPage/KFCApplication/scss/_srl-button-kfc.scss +2 -2
- package/dev/src/components/Svg/Close.vue +14 -0
- package/dev/src/entries/main.ts +4 -0
- package/dev/src/entries/pdf.ts +2 -0
- package/dev/src/i18n/index.ts +12 -42
- package/dev/src/i18n/translation.ts +6 -6
- package/dev/src/locales/de.json +7 -13
- package/dev/src/locales/en.json +7 -13
- package/dev/src/router/index.ts +30 -33
- package/dev/src/views/ArticleView.vue +6 -71
- package/dev/src/views/DevView.vue +861 -0
- package/dev/src/views/HomeView.vue +2 -32
- package/dev/src/views/PageNotFound.vue +8 -4
- package/dev/srl.config.json +754 -0
- package/dev/tsconfig.app.json +1 -4
- package/dev/tsconfig.node.json +1 -0
- package/dev/vite.config.ts +4 -13
- package/initTestProject.js +91 -0
- package/jest.config.mjs +200 -0
- package/livingdocs/010.Titles/010.title-h1/ld-conf.json +5 -0
- package/livingdocs/010.Titles/010.title-h1/scss/app.scss +1 -0
- package/livingdocs/010.Titles/010.title-h1/scss/editor.scss +1 -0
- package/livingdocs/010.Titles/010.title-h1/scss/general.scss +5 -0
- package/livingdocs/010.Titles/010.title-h1/scss/xbrl.scss +1 -0
- package/livingdocs/010.Titles/010.title-h1/title-h1.html +5 -0
- package/livingdocs/010.Titles/020.title-h2/ld-conf.json +10 -0
- package/livingdocs/010.Titles/020.title-h2/properties.json +27 -0
- package/livingdocs/010.Titles/020.title-h2/scss/app.scss +1 -0
- package/livingdocs/010.Titles/020.title-h2/scss/editor.scss +1 -0
- package/livingdocs/010.Titles/020.title-h2/scss/general.scss +21 -0
- package/livingdocs/010.Titles/020.title-h2/scss/xbrl.scss +1 -0
- package/livingdocs/010.Titles/020.title-h2/title-h2.html +22 -0
- package/livingdocs/010.Titles/030.title-h3/ld-conf.json +10 -0
- package/livingdocs/010.Titles/030.title-h3/properties.json +23 -0
- package/livingdocs/010.Titles/030.title-h3/scss/app.scss +1 -0
- package/livingdocs/010.Titles/030.title-h3/scss/editor.scss +1 -0
- package/livingdocs/010.Titles/030.title-h3/scss/general.scss +21 -0
- package/livingdocs/010.Titles/030.title-h3/scss/xbrl.scss +1 -0
- package/livingdocs/010.Titles/030.title-h3/title-h3.html +22 -0
- package/livingdocs/010.Titles/040.title-h4/ld-conf.json +10 -0
- package/livingdocs/010.Titles/040.title-h4/properties.json +19 -0
- package/livingdocs/010.Titles/040.title-h4/scss/app.scss +1 -0
- package/livingdocs/010.Titles/040.title-h4/scss/editor.scss +1 -0
- package/livingdocs/010.Titles/040.title-h4/scss/general.scss +21 -0
- package/livingdocs/010.Titles/040.title-h4/scss/xbrl.scss +1 -0
- package/livingdocs/010.Titles/040.title-h4/title-h4.html +22 -0
- package/livingdocs/010.Titles/050.title-h5/ld-conf.json +5 -0
- package/livingdocs/010.Titles/050.title-h5/properties.json +15 -0
- package/livingdocs/010.Titles/050.title-h5/scss/app.scss +1 -0
- package/livingdocs/010.Titles/050.title-h5/scss/editor.scss +1 -0
- package/livingdocs/010.Titles/050.title-h5/scss/general.scss +6 -0
- package/livingdocs/010.Titles/050.title-h5/scss/xbrl.scss +1 -0
- package/livingdocs/010.Titles/050.title-h5/title-h5.html +5 -0
- package/livingdocs/010.Titles/060.title-h6/ld-conf.json +5 -0
- package/livingdocs/010.Titles/060.title-h6/scss/app.scss +1 -0
- package/livingdocs/010.Titles/060.title-h6/scss/editor.scss +1 -0
- package/livingdocs/010.Titles/060.title-h6/scss/general.scss +6 -0
- package/livingdocs/010.Titles/060.title-h6/scss/xbrl.scss +1 -0
- package/livingdocs/010.Titles/060.title-h6/title-h6.html +5 -0
- package/livingdocs/020.Text/010.lead/ld-conf.json +10 -0
- package/livingdocs/020.Text/010.lead/lead.html +7 -0
- package/livingdocs/020.Text/010.lead/scss/app.scss +1 -0
- package/livingdocs/020.Text/010.lead/scss/editor.scss +1 -0
- package/livingdocs/020.Text/010.lead/scss/general.scss +6 -0
- package/livingdocs/020.Text/010.lead/scss/xbrl.scss +1 -0
- package/livingdocs/020.Text/020.paragraph/ld-conf.json +5 -0
- package/livingdocs/{Text/paragraph → 020.Text/020.paragraph}/paragraph.html +2 -13
- package/livingdocs/020.Text/020.paragraph/scss/app.scss +1 -0
- package/livingdocs/020.Text/020.paragraph/scss/editor.scss +1 -0
- package/livingdocs/020.Text/020.paragraph/scss/general.scss +6 -0
- package/livingdocs/020.Text/020.paragraph/scss/web.scss +0 -0
- package/livingdocs/020.Text/020.paragraph/scss/word.scss +0 -0
- package/livingdocs/020.Text/020.paragraph/scss/xbrl.scss +1 -0
- package/livingdocs/020.Text/030.paragraph-strong/ld-conf.json +5 -0
- package/livingdocs/020.Text/030.paragraph-strong/paragraph.html +16 -0
- package/livingdocs/020.Text/030.paragraph-strong/scss/app.scss +1 -0
- package/livingdocs/020.Text/030.paragraph-strong/scss/editor.scss +0 -0
- package/livingdocs/020.Text/030.paragraph-strong/scss/general.scss +5 -0
- package/livingdocs/020.Text/030.paragraph-strong/scss/pdf.scss +1 -0
- package/livingdocs/020.Text/030.paragraph-strong/scss/web.scss +0 -0
- package/livingdocs/020.Text/030.paragraph-strong/scss/word.scss +0 -0
- package/livingdocs/020.Text/030.paragraph-strong/scss/xbrl.scss +1 -0
- package/livingdocs/020.Text/040.link/ld-conf.json +15 -0
- package/livingdocs/020.Text/040.link/link.html +12 -0
- package/livingdocs/020.Text/040.link/scss/app.scss +1 -0
- package/livingdocs/020.Text/040.link/scss/editor.scss +1 -0
- package/livingdocs/020.Text/040.link/scss/general.scss +6 -0
- package/livingdocs/020.Text/040.link/scss/pdf.scss +0 -0
- package/livingdocs/020.Text/040.link/scss/web.scss +0 -0
- package/livingdocs/020.Text/040.link/scss/word.scss +0 -0
- package/livingdocs/020.Text/040.link/scss/xbrl.scss +1 -0
- package/livingdocs/020.Text/050.quote/ld-conf.json +5 -0
- package/livingdocs/020.Text/050.quote/quote.html +15 -0
- package/livingdocs/020.Text/050.quote/scss/app.scss +1 -0
- package/livingdocs/020.Text/050.quote/scss/editor.scss +1 -0
- package/livingdocs/020.Text/050.quote/scss/general.scss +17 -0
- package/livingdocs/020.Text/050.quote/scss/pdf.scss +0 -0
- package/livingdocs/020.Text/050.quote/scss/web.scss +0 -0
- package/livingdocs/020.Text/050.quote/scss/word.scss +0 -0
- package/livingdocs/020.Text/050.quote/scss/xbrl.scss +1 -0
- package/livingdocs/020.Text/060.quote-with-portrait/ld-conf.json +11 -0
- package/livingdocs/020.Text/060.quote-with-portrait/quote-with-portrait.html +18 -0
- package/livingdocs/020.Text/060.quote-with-portrait/scss/app.scss +1 -0
- package/livingdocs/020.Text/060.quote-with-portrait/scss/editor.scss +1 -0
- package/livingdocs/020.Text/060.quote-with-portrait/scss/general.scss +17 -0
- package/livingdocs/020.Text/060.quote-with-portrait/scss/pdf.scss +29 -0
- package/livingdocs/020.Text/060.quote-with-portrait/scss/web.scss +24 -0
- package/livingdocs/020.Text/060.quote-with-portrait/scss/word.scss +0 -0
- package/livingdocs/020.Text/060.quote-with-portrait/scss/xbrl.scss +1 -0
- package/livingdocs/020.Text/070.footnote-container/footnote-container.html +6 -0
- package/livingdocs/020.Text/070.footnote-container/ld-conf.json +18 -0
- package/livingdocs/020.Text/070.footnote-container/scss/app.scss +1 -0
- package/livingdocs/020.Text/070.footnote-container/scss/editor.scss +1 -0
- package/livingdocs/020.Text/070.footnote-container/scss/general.scss +5 -0
- package/livingdocs/020.Text/070.footnote-container/scss/pdf.scss +0 -0
- package/livingdocs/020.Text/070.footnote-container/scss/web.scss +6 -0
- package/livingdocs/020.Text/070.footnote-container/scss/word.scss +0 -0
- package/livingdocs/020.Text/070.footnote-container/scss/xbrl.scss +1 -0
- package/livingdocs/020.Text/080.footnote-item/footnote-item.html +6 -0
- package/livingdocs/020.Text/080.footnote-item/ld-conf.json +5 -0
- package/livingdocs/020.Text/080.footnote-item/scss/app.scss +1 -0
- package/livingdocs/020.Text/080.footnote-item/scss/editor.scss +1 -0
- package/livingdocs/020.Text/080.footnote-item/scss/general.scss +28 -0
- package/livingdocs/020.Text/080.footnote-item/scss/pdf.scss +0 -0
- package/livingdocs/020.Text/080.footnote-item/scss/web.scss +0 -0
- package/livingdocs/020.Text/080.footnote-item/scss/word.scss +0 -0
- package/livingdocs/020.Text/080.footnote-item/scss/xbrl.scss +1 -0
- package/livingdocs/030.Lists/010.unordered-list/ld-conf.json +18 -0
- package/livingdocs/030.Lists/010.unordered-list/scss/app.scss +1 -0
- package/livingdocs/030.Lists/010.unordered-list/scss/editor.scss +1 -0
- package/livingdocs/030.Lists/010.unordered-list/scss/general.scss +12 -0
- package/livingdocs/030.Lists/010.unordered-list/scss/pdf.scss +0 -0
- package/livingdocs/030.Lists/010.unordered-list/scss/web.scss +0 -0
- package/livingdocs/030.Lists/010.unordered-list/scss/word.scss +0 -0
- package/livingdocs/030.Lists/010.unordered-list/scss/xbrl.scss +1 -0
- package/livingdocs/030.Lists/010.unordered-list/unordered-list.html +6 -0
- package/livingdocs/030.Lists/020.ordered-list/ld-conf.json +18 -0
- package/livingdocs/030.Lists/020.ordered-list/ordered-list.html +6 -0
- package/livingdocs/030.Lists/020.ordered-list/scss/app.scss +1 -0
- package/livingdocs/030.Lists/020.ordered-list/scss/editor.scss +1 -0
- package/livingdocs/030.Lists/020.ordered-list/scss/general.scss +9 -0
- package/livingdocs/030.Lists/020.ordered-list/scss/pdf.scss +0 -0
- package/livingdocs/030.Lists/020.ordered-list/scss/web.scss +0 -0
- package/livingdocs/030.Lists/020.ordered-list/scss/word.scss +0 -0
- package/livingdocs/030.Lists/020.ordered-list/scss/xbrl.scss +1 -0
- package/livingdocs/030.Lists/030.alphanumeric-list/alphanumeric-list.html +6 -0
- package/livingdocs/030.Lists/030.alphanumeric-list/ld-conf.json +18 -0
- package/livingdocs/030.Lists/030.alphanumeric-list/scss/app.scss +1 -0
- package/livingdocs/030.Lists/030.alphanumeric-list/scss/editor.scss +1 -0
- package/livingdocs/030.Lists/030.alphanumeric-list/scss/general.scss +9 -0
- package/livingdocs/030.Lists/030.alphanumeric-list/scss/pdf.scss +0 -0
- package/livingdocs/030.Lists/030.alphanumeric-list/scss/web.scss +0 -0
- package/livingdocs/030.Lists/030.alphanumeric-list/scss/word.scss +0 -0
- package/livingdocs/030.Lists/030.alphanumeric-list/scss/xbrl.scss +1 -0
- package/livingdocs/030.Lists/040.list-item/ld-conf.json +5 -0
- package/livingdocs/030.Lists/040.list-item/list-item.html +5 -0
- package/livingdocs/030.Lists/040.list-item/scss/app.scss +1 -0
- package/livingdocs/030.Lists/040.list-item/scss/editor.scss +1 -0
- package/livingdocs/030.Lists/040.list-item/scss/general.scss +35 -0
- package/livingdocs/030.Lists/040.list-item/scss/pdf.scss +0 -0
- package/livingdocs/030.Lists/040.list-item/scss/web.scss +0 -0
- package/livingdocs/030.Lists/040.list-item/scss/word.scss +0 -0
- package/livingdocs/030.Lists/040.list-item/scss/xbrl.scss +1 -0
- package/livingdocs/040.Media/010.table/ld-conf.json +15 -0
- package/livingdocs/040.Media/010.table/properties.json +32 -0
- package/livingdocs/040.Media/010.table/scss/app.scss +1 -0
- package/livingdocs/040.Media/010.table/scss/editor.scss +1 -0
- package/livingdocs/040.Media/010.table/scss/general.scss +328 -0
- package/livingdocs/040.Media/010.table/scss/pdf.scss +34 -0
- package/livingdocs/040.Media/010.table/scss/web.scss +14 -0
- package/livingdocs/040.Media/010.table/scss/word.scss +0 -0
- package/livingdocs/040.Media/010.table/scss/xbrl.scss +1 -0
- package/livingdocs/040.Media/010.table/table.html +9 -0
- package/livingdocs/040.Media/020.image/image.html +40 -0
- package/livingdocs/040.Media/020.image/ld-conf.json +25 -0
- package/livingdocs/040.Media/020.image/scss/app.scss +1 -0
- package/livingdocs/040.Media/020.image/scss/editor.scss +1 -0
- package/livingdocs/040.Media/020.image/scss/general.scss +17 -0
- package/livingdocs/040.Media/020.image/scss/pdf.scss +26 -0
- package/livingdocs/040.Media/020.image/scss/web.scss +1 -0
- package/livingdocs/040.Media/020.image/scss/word.scss +0 -0
- package/livingdocs/040.Media/020.image/scss/xbrl.scss +5 -0
- package/livingdocs/040.Media/030.video/ld-conf.json +19 -0
- package/livingdocs/040.Media/030.video/scss/app.scss +1 -0
- package/livingdocs/040.Media/030.video/scss/editor.scss +1 -0
- package/livingdocs/040.Media/030.video/scss/general.scss +5 -0
- package/livingdocs/040.Media/030.video/scss/pdf.scss +0 -0
- package/livingdocs/040.Media/030.video/scss/web.scss +12 -0
- package/livingdocs/040.Media/030.video/scss/word.scss +0 -0
- package/livingdocs/040.Media/030.video/scss/xbrl.scss +5 -0
- package/livingdocs/040.Media/030.video/video.html +59 -0
- package/livingdocs/040.Media/040.interactive-element/interactive-element.html +27 -0
- package/livingdocs/040.Media/040.interactive-element/ld-conf.json +6 -0
- package/livingdocs/050.Hero-and-Slider/.gitkeep +0 -0
- package/livingdocs/060.Buttons/.gitkeep +0 -0
- package/livingdocs/070.Container/010.aside-content-container/aside-content-container.html +10 -0
- package/livingdocs/070.Container/010.aside-content-container/ld-conf.json +20 -0
- package/livingdocs/070.Container/010.aside-content-container/properties.json +7 -0
- package/livingdocs/070.Container/010.aside-content-container/scss/app.scss +1 -0
- package/livingdocs/070.Container/010.aside-content-container/scss/editor.scss +1 -0
- package/livingdocs/070.Container/010.aside-content-container/scss/general.scss +1 -0
- package/livingdocs/070.Container/010.aside-content-container/scss/pdf.scss +3 -0
- package/livingdocs/070.Container/010.aside-content-container/scss/web.scss +1 -0
- package/livingdocs/070.Container/010.aside-content-container/scss/word.scss +0 -0
- package/livingdocs/070.Container/010.aside-content-container/scss/xbrl.scss +1 -0
- package/livingdocs/070.Container/020.columns-container/columns-container.html +22 -0
- package/livingdocs/070.Container/020.columns-container/ld-conf.json +17 -0
- package/livingdocs/080.CV/010.cv/cv.html +40 -0
- package/livingdocs/080.CV/010.cv/ld-conf.json +11 -0
- package/livingdocs/080.CV/020.cv-time-span/cv-time-span.html +13 -0
- package/livingdocs/080.CV/020.cv-time-span/ld-conf.json +4 -0
- package/livingdocs/090.Signatures/010.signature-container/ld-conf.json +18 -0
- package/livingdocs/090.Signatures/010.signature-container/scss/app.scss +1 -0
- package/livingdocs/090.Signatures/010.signature-container/scss/editor.scss +1 -0
- package/livingdocs/090.Signatures/010.signature-container/scss/general.scss +5 -0
- package/livingdocs/090.Signatures/010.signature-container/scss/pdf.scss +0 -0
- package/livingdocs/090.Signatures/010.signature-container/scss/web.scss +6 -0
- package/livingdocs/090.Signatures/010.signature-container/scss/word.scss +0 -0
- package/livingdocs/090.Signatures/010.signature-container/scss/xbrl.scss +1 -0
- package/livingdocs/090.Signatures/010.signature-container/signature-container.html +6 -0
- package/livingdocs/090.Signatures/020.signature-item/ld-conf.json +11 -0
- package/livingdocs/090.Signatures/020.signature-item/scss/app.scss +1 -0
- package/livingdocs/090.Signatures/020.signature-item/scss/editor.scss +1 -0
- package/livingdocs/090.Signatures/020.signature-item/scss/general.scss +9 -0
- package/livingdocs/090.Signatures/020.signature-item/scss/pdf.scss +0 -0
- package/livingdocs/090.Signatures/020.signature-item/scss/web.scss +5 -0
- package/livingdocs/090.Signatures/020.signature-item/scss/word.scss +0 -0
- package/livingdocs/090.Signatures/020.signature-item/scss/xbrl.scss +1 -0
- package/livingdocs/090.Signatures/020.signature-item/signature-item.html +9 -0
- package/livingdocs/100.Misc/010.anchor/anchor.html +8 -0
- package/livingdocs/100.Misc/010.anchor/ld-conf.json +4 -0
- package/livingdocs/100.Misc/020.accordion/accordion.html +8 -0
- package/livingdocs/100.Misc/020.accordion/ld-conf.json +26 -0
- package/livingdocs/110.PDF/010.pdf-pagebreak/ld-conf.json +4 -0
- package/livingdocs/110.PDF/010.pdf-pagebreak/pdf-pagebreak.html +1 -0
- package/livingdocs/110.PDF/020.pdf-column-container/ld-conf.json +4 -0
- package/livingdocs/110.PDF/020.pdf-column-container/pdf-column-container.html +5 -0
- package/livingdocs/110.PDF/030.pdf-publication-title/ld-conf.json +4 -0
- package/livingdocs/110.PDF/030.pdf-publication-title/pdf-publication-title.html +7 -0
- package/livingdocs/110.PDF/040.pdf-chapter-title/ld-conf.json +4 -0
- package/livingdocs/110.PDF/040.pdf-chapter-title/pdf-chapter-title.html +7 -0
- package/livingdocs/110.PDF/050.pdf-chapter-navigation-container/ld-conf.json +17 -0
- package/livingdocs/110.PDF/050.pdf-chapter-navigation-container/pdf-chapter-navigation.html +10 -0
- package/livingdocs/110.PDF/060.pdf-chapter-navigation-item/ld-conf.json +6 -0
- package/livingdocs/110.PDF/060.pdf-chapter-navigation-item/pdf-chapter-navigation-item.html +7 -0
- package/livingdocs/110.PDF/060.pdf-chapter-navigation-item/properties.json +7 -0
- package/livingdocs/110.PDF/070.pdf-cover/ld-conf.json +25 -0
- package/livingdocs/110.PDF/070.pdf-cover/pdf-cover.html +26 -0
- package/livingdocs/110.PDF/080.pdf-toc-page/ld-conf.json +15 -0
- package/livingdocs/110.PDF/080.pdf-toc-page/pdf-toc-page.html +8 -0
- package/livingdocs/{PDF_only/pdf-toc-page → 110.PDF/080.pdf-toc-page}/properties.json +11 -3
- package/livingdocs/110.PDF/090.pdf-toc-item-title/ld-conf.json +5 -0
- package/livingdocs/110.PDF/090.pdf-toc-item-title/pdf-toc-item-title.html +3 -0
- package/livingdocs/110.PDF/100.pdf-toc-item/ld-conf.json +14 -0
- package/livingdocs/110.PDF/100.pdf-toc-item/pdf-toc-item.html +6 -0
- package/livingdocs/110.PDF/110.pdf-toc-item-blank/ld-conf.json +5 -0
- package/livingdocs/110.PDF/110.pdf-toc-item-blank/pdf-toc-item-blank.html +4 -0
- package/livingdocs/120.Startpage/.gitkeep +0 -0
- package/livingdocs/999.Properties/alignment/properties.json +36 -0
- package/livingdocs/{Text/quote-with-portrait → 999.Properties/hide-quote-characters}/properties.json +0 -5
- package/livingdocs/999.Properties/pdf-spacer/properties.json +43 -0
- package/livingdocs/999.Properties/width/properties.json +32 -0
- package/package.json +8 -10
- package/scripts/beaver.js +16 -15
- package/scripts/build.d.ts +4 -7
- package/scripts/build.js +345 -320
- package/scripts/components.js +62 -64
- package/scripts/config.d.ts +8 -0
- package/scripts/config.js +52 -1
- package/scripts/doPublish.js +12 -0
- package/scripts/folders.d.ts +43 -0
- package/scripts/folders.js +46 -0
- package/scripts/init.js +28 -8
- package/scripts/ldd/LivingdocsDesignValidator.d.ts +61 -0
- package/scripts/ldd/LivingdocsDesignValidator.js +296 -0
- package/scripts/ldd/__tests__/LivingdocsDesignValidation.test.mjs +273 -0
- package/scripts/ldd/mapLdd.d.ts +1 -0
- package/scripts/ldd/mapLdd.js +204 -0
- package/scripts/prepare.d.ts +2 -0
- package/scripts/prepare.js +66 -0
- package/scripts/preparePublish.d.ts +1 -1
- package/scripts/preparePublish.js +34 -1
- package/scripts/renamePackage.d.ts +1 -1
- package/scripts/utils.d.ts +45 -30
- package/scripts/utils.js +112 -55
- package/srl/components/Srl/Aria/TabChain.vue +100 -0
- package/srl/components/Srl/Article/Autoload.vue +41 -0
- package/srl/components/Srl/Article/DialogButton.vue +55 -0
- package/srl/components/Srl/Article/Root.vue +76 -0
- package/srl/components/Srl/Menu/Item/Content/Image.vue +12 -0
- package/srl/components/Srl/Menu/Item/Content/ImageAfter.vue +13 -0
- package/srl/components/Srl/Menu/Item/Content/ImageBefore.vue +13 -0
- package/srl/components/Srl/Menu/Item/Content/Text.vue +9 -0
- package/srl/components/Srl/Menu/Item/Content.vue +23 -0
- package/srl/components/Srl/Menu/Item.vue +208 -0
- package/srl/components/Srl/Menu/List.vue +184 -0
- package/srl/components/Srl/Page/App.vue +65 -0
- package/srl/components/Srl/Page/Dialog.vue +71 -0
- package/srl/composables/article.ts +24 -0
- package/srl/composables/articles.ts +41 -0
- package/srl/composables/config.ts +165 -0
- package/srl/composables/downloads.ts +46 -0
- package/srl/composables/index.ts +34 -0
- package/srl/composables/locale.ts +8 -0
- package/srl/composables/menu.ts +101 -0
- package/srl/composables/root.ts +5 -0
- package/srl/composables/search.ts +108 -0
- package/srl/composables/settings.ts +9 -0
- package/srl/composables/viewPort.ts +78 -0
- package/srl/imports/app.scss +0 -0
- package/srl/imports/ldd.scss +0 -0
- package/srl/imports/pdf.scss +0 -0
- package/srl/imports/word.scss +0 -0
- package/srl/imports/xbrl.scss +0 -0
- package/srl/plugins/asyncLdComponent.ts +2 -0
- package/srl/plugins/initProject.ts +19 -0
- package/srl/plugins/viteSrlPlugin.ts +214 -0
- package/srl/plugins/vueSrlPlugin.ts +23 -0
- package/srl/scss/config.scss +7 -0
- package/{scss → srl/scss}/core-styles.scss +1 -0
- package/{scss → srl/scss}/grid/functions.scss +20 -0
- package/{scss → srl/scss}/grid/mixins.scss +10 -152
- package/{scss → srl/scss}/grid/variables.scss +1 -0
- package/srl/scss/helpers/functions.scss +0 -0
- package/{scss → srl/scss}/helpers/mixins.scss +0 -33
- package/{scss → srl/scss}/typography/mixins.scss +53 -13
- package/srl/scss/xbrl-core-styles.scss +47 -0
- package/{dev/nswow → srl/srl}/ArticleAutoloader.ts +22 -22
- package/{dev/nswow → srl/srl}/ArticleLoader.ts +25 -18
- package/srl/srl/Awesomizr.js +682 -0
- package/srl/srl/colors.scss +3 -0
- package/srl/srl/config.scss +7 -0
- package/srl/srl/core-styles.scss +2 -0
- package/srl/srl/fonts.scss +2 -0
- package/srl/srl/grid.scss +2 -0
- package/srl/srl/helpers.scss +2 -0
- package/srl/srl/meta.scss +2 -0
- package/srl/srl/pdf.scss +2 -0
- package/srl/srl/spacer.scss +2 -0
- package/srl/srl/system.scss +2 -0
- package/srl/srl/typography.scss +3 -0
- package/srl/types/components.d.ts +17 -0
- package/srl/types/nswow.d.ts +121 -0
- package/srl/utils/camelCase.ts +11 -0
- package/srl/utils/html.ts +82 -0
- package/srl/utils/index.ts +5 -0
- package/srl/utils/uri.ts +52 -0
- package/dev/ldd.html +0 -7
- package/dev/livingdocs/Media/image/app.scss +0 -25
- package/dev/livingdocs/Media/image/general.scss +0 -11
- package/dev/livingdocs/Media/image/image.html +0 -46
- package/dev/livingdocs/Media/image/ldd.scss +0 -1
- package/dev/livingdocs/Media/image/pdf.scss +0 -1
- package/dev/livingdocs/Media/image/print.scss +0 -7
- package/dev/livingdocs/Media/image/properties.json +0 -41
- package/dev/livingdocs/Media/image/word.scss +0 -1
- package/dev/livingdocs/Properties/grid/app.scss +0 -1
- package/dev/livingdocs/Properties/grid/general.scss +0 -95
- package/dev/livingdocs/Properties/grid/ldd.scss +0 -1
- package/dev/livingdocs/Properties/grid/pdf.scss +0 -1
- package/dev/livingdocs/Properties/grid/print.scss +0 -94
- package/dev/livingdocs/Properties/grid/properties.json +0 -68
- package/dev/livingdocs/Properties/grid/web.scss +0 -98
- package/dev/livingdocs/Properties/grid/word.scss +0 -1
- package/dev/livingdocs/Text/paragraph/general.scss +0 -9
- package/dev/livingdocs/Text/paragraph/paragraph.html +0 -22
- package/dev/livingdocs/Titles/title-h1/general.scss +0 -10
- package/dev/livingdocs/Titles/title-h1/title-h1.html +0 -16
- package/dev/livingdocs/Titles/title-h2/app.scss +0 -1
- package/dev/livingdocs/Titles/title-h2/general.scss +0 -13
- package/dev/livingdocs/Titles/title-h2/ldd.scss +0 -1
- package/dev/livingdocs/Titles/title-h2/pdf.scss +0 -1
- package/dev/livingdocs/Titles/title-h2/print.scss +0 -36
- package/dev/livingdocs/Titles/title-h2/title-h2.html +0 -24
- package/dev/livingdocs/Titles/title-h2/web.scss +0 -27
- package/dev/livingdocs/Titles/title-h2/word.scss +0 -1
- package/dev/livingdocs/Titles/title-h3/app.scss +0 -1
- package/dev/livingdocs/Titles/title-h3/general.scss +0 -13
- package/dev/livingdocs/Titles/title-h3/ldd.scss +0 -1
- package/dev/livingdocs/Titles/title-h3/pdf.scss +0 -1
- package/dev/livingdocs/Titles/title-h3/print.scss +0 -34
- package/dev/livingdocs/Titles/title-h3/title-h3.html +0 -24
- package/dev/livingdocs/Titles/title-h3/web.scss +0 -27
- package/dev/livingdocs/Titles/title-h3/word.scss +0 -1
- package/dev/livingdocs/Titles/title-h4/app.scss +0 -1
- package/dev/livingdocs/Titles/title-h4/general.scss +0 -13
- package/dev/livingdocs/Titles/title-h4/ldd.scss +0 -1
- package/dev/livingdocs/Titles/title-h4/pdf.scss +0 -1
- package/dev/livingdocs/Titles/title-h4/print.scss +0 -34
- package/dev/livingdocs/Titles/title-h4/title-h4.html +0 -24
- package/dev/livingdocs/Titles/title-h4/web.scss +0 -27
- package/dev/livingdocs/Titles/title-h4/word.scss +0 -1
- package/dev/livingdocs/Titles/title-h5/general.scss +0 -10
- package/dev/livingdocs/Titles/title-h5/title-h5.html +0 -16
- package/dev/livingdocs/Titles/title-h6/general.scss +0 -10
- package/dev/livingdocs/Titles/title-h6/title-h6.html +0 -16
- package/dev/nswow/colors.scss +0 -3
- package/dev/nswow/config.scss +0 -13
- package/dev/nswow/core-styles.scss +0 -2
- package/dev/nswow/fonts.scss +0 -2
- package/dev/nswow/grid.scss +0 -2
- package/dev/nswow/helpers.scss +0 -2
- package/dev/nswow/meta.scss +0 -2
- package/dev/nswow/spacer.scss +0 -2
- package/dev/nswow/system.scss +0 -2
- package/dev/nswow/typography.scss +0 -3
- package/dev/nswow.config.json +0 -293
- package/dev/pdf.ts +0 -1
- package/dev/src/components/LanguageSwitch.vue +0 -100
- package/dev/src/components/MenuItem/MenuArticle.vue +0 -15
- package/dev/src/components/MenuItem/MenuEntry.vue +0 -26
- package/dev/src/components/MenuItem/MenuExternal.vue +0 -28
- package/dev/src/components/MenuItem/index.ts +0 -5
- package/dev/src/components/PageModal.vue +0 -95
- package/dev/src/components/ScrollToTop.vue +0 -63
- package/dev/src/composables/config.ts +0 -48
- package/dev/src/main.ts +0 -16
- package/dev/src/types/nswow.d.ts +0 -73
- package/dev/src/views/DownloadsView.vue +0 -88
- package/dev/src/views/SearchView.vue +0 -126
- package/dev/word.ts +0 -1
- package/livingdocs/Buttons/button/app.scss +0 -1
- package/livingdocs/Buttons/button/button.html +0 -18
- package/livingdocs/Buttons/button/general.scss +0 -33
- package/livingdocs/Buttons/button/ldd.scss +0 -1
- package/livingdocs/Buttons/button/pdf.scss +0 -1
- package/livingdocs/Buttons/button/word.scss +0 -1
- package/livingdocs/Buttons/button-container/app.scss +0 -1
- package/livingdocs/Buttons/button-container/button-container.html +0 -31
- package/livingdocs/Buttons/button-container/general.scss +0 -12
- package/livingdocs/Buttons/button-container/ldd.scss +0 -1
- package/livingdocs/Buttons/button-container/pdf.scss +0 -3
- package/livingdocs/Buttons/button-container/properties.json +0 -19
- package/livingdocs/Buttons/button-container/word.scss +0 -3
- package/livingdocs/CV/cv-timeline/app.scss +0 -1
- package/livingdocs/CV/cv-timeline/cv-timeline.html +0 -19
- package/livingdocs/CV/cv-timeline/general.scss +0 -1
- package/livingdocs/CV/cv-timeline/ldd.scss +0 -1
- package/livingdocs/CV/cv-timeline/pdf.scss +0 -1
- package/livingdocs/CV/cv-timeline/print.scss +0 -35
- package/livingdocs/CV/cv-timeline/web.scss +0 -27
- package/livingdocs/CV/cv-timeline/word.scss +0 -1
- package/livingdocs/Container/column-container/column-container.html +0 -44
- package/livingdocs/Container/column-container/general.scss +0 -105
- package/livingdocs/Container/column-container/properties.json +0 -83
- package/livingdocs/Lists/alphanumeric-list-group/alphanumeric-list-group.html +0 -25
- package/livingdocs/Lists/alphanumeric-list-group/app.scss +0 -1
- package/livingdocs/Lists/alphanumeric-list-group/general.scss +0 -5
- package/livingdocs/Lists/alphanumeric-list-group/ldd.scss +0 -1
- package/livingdocs/Lists/alphanumeric-list-group/pdf.scss +0 -1
- package/livingdocs/Lists/alphanumeric-list-group/word.scss +0 -1
- package/livingdocs/Lists/list-item/app.scss +0 -1
- package/livingdocs/Lists/list-item/general.scss +0 -4
- package/livingdocs/Lists/list-item/ldd.scss +0 -1
- package/livingdocs/Lists/list-item/list-item.html +0 -17
- package/livingdocs/Lists/list-item/pdf.scss +0 -1
- package/livingdocs/Lists/list-item/word.scss +0 -1
- package/livingdocs/Lists/ordered-list-group/app.scss +0 -1
- package/livingdocs/Lists/ordered-list-group/general.scss +0 -5
- package/livingdocs/Lists/ordered-list-group/ldd.scss +0 -1
- package/livingdocs/Lists/ordered-list-group/ordered-list-group.html +0 -25
- package/livingdocs/Lists/ordered-list-group/pdf.scss +0 -1
- package/livingdocs/Lists/ordered-list-group/word.scss +0 -1
- package/livingdocs/Lists/unordered-list-group/app.scss +0 -1
- package/livingdocs/Lists/unordered-list-group/general.scss +0 -5
- package/livingdocs/Lists/unordered-list-group/ldd.scss +0 -1
- package/livingdocs/Lists/unordered-list-group/pdf.scss +0 -1
- package/livingdocs/Lists/unordered-list-group/unordered-list-group.html +0 -25
- package/livingdocs/Lists/unordered-list-group/word.scss +0 -1
- package/livingdocs/Media/chart/app.scss +0 -19
- package/livingdocs/Media/chart/chart.html +0 -29
- package/livingdocs/Media/chart/general.scss +0 -11
- package/livingdocs/Media/chart/ldd.scss +0 -1
- package/livingdocs/Media/chart/pdf.scss +0 -9
- package/livingdocs/Media/chart/properties.json +0 -41
- package/livingdocs/Media/chart/word.scss +0 -1
- package/livingdocs/Media/graphic/app.scss +0 -1
- package/livingdocs/Media/graphic/general.scss +0 -18
- package/livingdocs/Media/graphic/graphic.html +0 -29
- package/livingdocs/Media/graphic/ldd.scss +0 -1
- package/livingdocs/Media/graphic/pdf.scss +0 -1
- package/livingdocs/Media/graphic/properties.json +0 -36
- package/livingdocs/Media/graphic/word.scss +0 -1
- package/livingdocs/Media/image/app.scss +0 -25
- package/livingdocs/Media/image/general.scss +0 -11
- package/livingdocs/Media/image/image.html +0 -55
- package/livingdocs/Media/image/ldd.scss +0 -1
- package/livingdocs/Media/image/pdf.scss +0 -1
- package/livingdocs/Media/image/print.scss +0 -7
- package/livingdocs/Media/image/properties.json +0 -41
- package/livingdocs/Media/image/word.scss +0 -1
- package/livingdocs/Media/nswow-table/app.scss +0 -2
- package/livingdocs/Media/nswow-table/app.ts +0 -35
- package/livingdocs/Media/nswow-table/general.scss +0 -281
- package/livingdocs/Media/nswow-table/ldd.scss +0 -2
- package/livingdocs/Media/nswow-table/nswow-table.html +0 -30
- package/livingdocs/Media/nswow-table/pdf.scss +0 -8
- package/livingdocs/Media/nswow-table/properties.json +0 -66
- package/livingdocs/Media/nswow-table/web.scss +0 -23
- package/livingdocs/Media/nswow-table/word.scss +0 -2
- package/livingdocs/Media/video/app.scss +0 -1
- package/livingdocs/Media/video/general.scss +0 -7
- package/livingdocs/Media/video/ldd.scss +0 -1
- package/livingdocs/Media/video/pdf.scss +0 -1
- package/livingdocs/Media/video/print.scss +0 -5
- package/livingdocs/Media/video/properties.json +0 -41
- package/livingdocs/Media/video/video.html +0 -26
- package/livingdocs/Media/video/word.scss +0 -1
- package/livingdocs/Misc/accordion/accordion.html +0 -56
- package/livingdocs/Misc/accordion/app.scss +0 -63
- package/livingdocs/Misc/accordion/app.ts +0 -10
- package/livingdocs/Misc/accordion/general.scss +0 -44
- package/livingdocs/Misc/accordion/ldd.scss +0 -36
- package/livingdocs/Misc/accordion/pdf.scss +0 -39
- package/livingdocs/Misc/accordion/word.scss +0 -39
- package/livingdocs/Misc/anchor/anchor.html +0 -15
- package/livingdocs/Misc/anchor/app.scss +0 -10
- package/livingdocs/Misc/anchor/app.ts +0 -11
- package/livingdocs/Misc/anchor/general.scss +0 -1
- package/livingdocs/Misc/anchor/pdf.scss +0 -1
- package/livingdocs/Misc/anchor/print.scss +0 -3
- package/livingdocs/Misc/anchor/word.scss +0 -1
- package/livingdocs/Misc/spacer/app.scss +0 -1
- package/livingdocs/Misc/spacer/general.scss +0 -8
- package/livingdocs/Misc/spacer/ldd.scss +0 -1
- package/livingdocs/Misc/spacer/pdf.scss +0 -1
- package/livingdocs/Misc/spacer/print.scss +0 -18
- package/livingdocs/Misc/spacer/properties.json +0 -52
- package/livingdocs/Misc/spacer/spacer.html +0 -12
- package/livingdocs/Misc/spacer/web.scss +0 -18
- package/livingdocs/Misc/spacer/word.scss +0 -1
- package/livingdocs/PDF_only/pdf-cover/ldd.scss +0 -42
- package/livingdocs/PDF_only/pdf-cover/pdf-cover.html +0 -29
- package/livingdocs/PDF_only/pdf-cover/pdf.scss +0 -1
- package/livingdocs/PDF_only/pdf-cover/word.scss +0 -1
- package/livingdocs/PDF_only/pdf-cover-chapter/ldd.scss +0 -19
- package/livingdocs/PDF_only/pdf-cover-chapter/pdf-chapter-cover.html +0 -18
- package/livingdocs/PDF_only/pdf-cover-chapter/pdf.scss +0 -1
- package/livingdocs/PDF_only/pdf-cover-chapter/print.scss +0 -19
- package/livingdocs/PDF_only/pdf-cover-chapter/word.scss +0 -1
- package/livingdocs/PDF_only/pdf-pagebreak/general.scss +0 -4
- package/livingdocs/PDF_only/pdf-pagebreak/ldd.scss +0 -5
- package/livingdocs/PDF_only/pdf-pagebreak/pdf-pagebreak.html +0 -8
- package/livingdocs/PDF_only/pdf-publication-title/general.scss +0 -5
- package/livingdocs/PDF_only/pdf-publication-title/pdf-publication-title.html +0 -15
- package/livingdocs/PDF_only/pdf-toc-item/general.scss +0 -41
- package/livingdocs/PDF_only/pdf-toc-item/pdf-toc-item.html +0 -33
- package/livingdocs/PDF_only/pdf-toc-item-blank/general.scss +0 -5
- package/livingdocs/PDF_only/pdf-toc-item-blank/pdf-toc-item-blank.html +0 -11
- package/livingdocs/PDF_only/pdf-toc-item-title/general.scss +0 -5
- package/livingdocs/PDF_only/pdf-toc-item-title/pdf-toc-item-title.html +0 -11
- package/livingdocs/PDF_only/pdf-toc-page/app.scss +0 -1
- package/livingdocs/PDF_only/pdf-toc-page/general.scss +0 -1
- package/livingdocs/PDF_only/pdf-toc-page/ldd.scss +0 -1
- package/livingdocs/PDF_only/pdf-toc-page/pdf-toc-page.html +0 -33
- package/livingdocs/PDF_only/pdf-toc-page/pdf.scss +0 -1
- package/livingdocs/PDF_only/pdf-toc-page/word.scss +0 -1
- package/livingdocs/PDF_only/pdf-video-link/ldd.scss +0 -16
- package/livingdocs/PDF_only/pdf-video-link/pdf-video-link.html +0 -41
- package/livingdocs/PDF_only/pdf-video-link/pdf.scss +0 -1
- package/livingdocs/PDF_only/pdf-video-link/print.scss +0 -12
- package/livingdocs/PDF_only/pdf-video-link/word.scss +0 -1
- package/livingdocs/Properties/grid/app.scss +0 -1
- package/livingdocs/Properties/grid/general.scss +0 -95
- package/livingdocs/Properties/grid/ldd.scss +0 -1
- package/livingdocs/Properties/grid/pdf.scss +0 -1
- package/livingdocs/Properties/grid/print.scss +0 -94
- package/livingdocs/Properties/grid/properties.json +0 -68
- package/livingdocs/Properties/grid/web.scss +0 -98
- package/livingdocs/Properties/grid/word.scss +0 -1
- package/livingdocs/Signatures/signature-container/app.scss +0 -1
- package/livingdocs/Signatures/signature-container/general.scss +0 -7
- package/livingdocs/Signatures/signature-container/ldd.scss +0 -1
- package/livingdocs/Signatures/signature-container/pdf.scss +0 -1
- package/livingdocs/Signatures/signature-container/signature-container.html +0 -30
- package/livingdocs/Signatures/signature-container/word.scss +0 -1
- package/livingdocs/Signatures/signature-item/app.scss +0 -1
- package/livingdocs/Signatures/signature-item/general.scss +0 -53
- package/livingdocs/Signatures/signature-item/ldd.scss +0 -1
- package/livingdocs/Signatures/signature-item/pdf.scss +0 -1
- package/livingdocs/Signatures/signature-item/signature-item.html +0 -23
- package/livingdocs/Signatures/signature-item/word.scss +0 -1
- package/livingdocs/Text/footnote/app.scss +0 -1
- package/livingdocs/Text/footnote/footnote.html +0 -14
- package/livingdocs/Text/footnote/general.scss +0 -12
- package/livingdocs/Text/footnote/ldd.scss +0 -1
- package/livingdocs/Text/footnote/pdf.scss +0 -1
- package/livingdocs/Text/footnote/print.scss +0 -36
- package/livingdocs/Text/footnote/web.scss +0 -27
- package/livingdocs/Text/footnote/word.scss +0 -1
- package/livingdocs/Text/lead/general.scss +0 -9
- package/livingdocs/Text/lead/lead.html +0 -23
- package/livingdocs/Text/paragraph/general.scss +0 -9
- package/livingdocs/Text/quote/general.scss +0 -43
- package/livingdocs/Text/quote/quote.html +0 -29
- package/livingdocs/Text/quote-with-portrait/general.scss +0 -81
- package/livingdocs/Text/quote-with-portrait/quote-with-portrait.html +0 -49
- package/livingdocs/Titles/title-h1/general.scss +0 -10
- package/livingdocs/Titles/title-h1/title-h1.html +0 -16
- package/livingdocs/Titles/title-h2/app.scss +0 -1
- package/livingdocs/Titles/title-h2/general.scss +0 -13
- package/livingdocs/Titles/title-h2/ldd.scss +0 -1
- package/livingdocs/Titles/title-h2/pdf.scss +0 -1
- package/livingdocs/Titles/title-h2/print.scss +0 -36
- package/livingdocs/Titles/title-h2/title-h2.html +0 -26
- package/livingdocs/Titles/title-h2/web.scss +0 -27
- package/livingdocs/Titles/title-h2/word.scss +0 -1
- package/livingdocs/Titles/title-h3/app.scss +0 -1
- package/livingdocs/Titles/title-h3/general.scss +0 -13
- package/livingdocs/Titles/title-h3/ldd.scss +0 -1
- package/livingdocs/Titles/title-h3/pdf.scss +0 -1
- package/livingdocs/Titles/title-h3/print.scss +0 -34
- package/livingdocs/Titles/title-h3/title-h3.html +0 -26
- package/livingdocs/Titles/title-h3/web.scss +0 -27
- package/livingdocs/Titles/title-h3/word.scss +0 -1
- package/livingdocs/Titles/title-h4/app.scss +0 -1
- package/livingdocs/Titles/title-h4/general.scss +0 -13
- package/livingdocs/Titles/title-h4/ldd.scss +0 -1
- package/livingdocs/Titles/title-h4/pdf.scss +0 -1
- package/livingdocs/Titles/title-h4/print.scss +0 -34
- package/livingdocs/Titles/title-h4/title-h4.html +0 -26
- package/livingdocs/Titles/title-h4/web.scss +0 -27
- package/livingdocs/Titles/title-h4/word.scss +0 -1
- package/livingdocs/Titles/title-h5/general.scss +0 -10
- package/livingdocs/Titles/title-h5/title-h5.html +0 -16
- package/livingdocs/Titles/title-h6/general.scss +0 -10
- package/livingdocs/Titles/title-h6/title-h6.html +0 -16
- package/preparePublish.cjs +0 -95
- package/scripts/migrate-livingdocs-build/LICENSE +0 -21
- package/scripts/migrate-livingdocs-build/bin/build.d.ts +0 -8
- package/scripts/migrate-livingdocs-build/bin/build.js +0 -53
- package/scripts/migrate-livingdocs-build/bin/migrate.d.ts +0 -2
- package/scripts/migrate-livingdocs-build/bin/migrate.js +0 -43
- package/scripts/migrate-livingdocs-build/dev/build/v1.d.ts +0 -9
- package/scripts/migrate-livingdocs-build/dev/build/v1.d.ts.map +0 -1
- package/scripts/migrate-livingdocs-build/dev/build/v1.js +0 -51
- package/scripts/migrate-livingdocs-build/dev/build/v2.d.ts +0 -2
- package/scripts/migrate-livingdocs-build/dev/build/v2.d.ts.map +0 -1
- package/scripts/migrate-livingdocs-build/dev/build/v2.js +0 -44
- package/scripts/migrate-livingdocs-build/dev/build/zip-archive.d.ts +0 -2
- package/scripts/migrate-livingdocs-build/dev/build/zip-archive.d.ts.map +0 -1
- package/scripts/migrate-livingdocs-build/dev/build/zip-archive.js +0 -39
- package/scripts/migrate-livingdocs-build/dev/build.d.ts +0 -9
- package/scripts/migrate-livingdocs-build/dev/build.js +0 -7
- package/scripts/migrate-livingdocs-build/dev/configuration-defaults.d.ts +0 -20
- package/scripts/migrate-livingdocs-build/dev/configuration-defaults.js +0 -18
- package/scripts/migrate-livingdocs-build/dev/configuration.d.ts +0 -2
- package/scripts/migrate-livingdocs-build/dev/configuration.js +0 -34
- package/scripts/migrate-livingdocs-build/dev/lib.d.ts +0 -33
- package/scripts/migrate-livingdocs-build/dev/lib.js +0 -251
- package/scripts/migrate-livingdocs-build/dev/livingdocs-design.d.ts +0 -9
- package/scripts/migrate-livingdocs-build/dev/livingdocs-design.js +0 -80
- package/scripts/migrate-livingdocs-build/dev/logger.d.ts +0 -2
- package/scripts/migrate-livingdocs-build/dev/logger.js +0 -16
- package/scripts/migrate-livingdocs-build/dev/migrate.d.ts +0 -22
- package/scripts/migrate-livingdocs-build/dev/migrate.js +0 -241
- package/scripts/migrate-livingdocs-build/readme.md +0 -62
- package/scripts/vite.d.ts +0 -10
- package/scripts/vite.js +0 -58
- package/scss/config.scss +0 -7
- package/tags.txt +0 -1
- /package/dev/livingdocs/{Media/image/web.scss → .gitkeep} +0 -0
- /package/{dev/public/.keep → livingdocs/010.Titles/010.title-h1/scss/pdf.scss} +0 -0
- /package/livingdocs/{Lists/alphanumeric-list-group → 010.Titles/010.title-h1/scss}/web.scss +0 -0
- /package/livingdocs/{Lists/alphanumeric-list-group/print.scss → 010.Titles/010.title-h1/scss/word.scss} +0 -0
- /package/livingdocs/{Lists/list-item/print.scss → 010.Titles/020.title-h2/scss/pdf.scss} +0 -0
- /package/livingdocs/{Lists/list-item → 010.Titles/020.title-h2/scss}/web.scss +0 -0
- /package/livingdocs/{Lists/ordered-list-group/print.scss → 010.Titles/020.title-h2/scss/word.scss} +0 -0
- /package/livingdocs/{Lists/ordered-list-group/web.scss → 010.Titles/030.title-h3/scss/pdf.scss} +0 -0
- /package/livingdocs/{Lists/unordered-list-group → 010.Titles/030.title-h3/scss}/web.scss +0 -0
- /package/livingdocs/{Lists/unordered-list-group/print.scss → 010.Titles/030.title-h3/scss/word.scss} +0 -0
- /package/livingdocs/{Media/chart/print.scss → 010.Titles/040.title-h4/scss/pdf.scss} +0 -0
- /package/livingdocs/{Media/chart → 010.Titles/040.title-h4/scss}/web.scss +0 -0
- /package/livingdocs/{Media/graphic/print.scss → 010.Titles/040.title-h4/scss/word.scss} +0 -0
- /package/livingdocs/{Media/graphic/web.scss → 010.Titles/050.title-h5/scss/pdf.scss} +0 -0
- /package/livingdocs/{Media/image → 010.Titles/050.title-h5/scss}/web.scss +0 -0
- /package/livingdocs/{Media/nswow-table/print.scss → 010.Titles/050.title-h5/scss/word.scss} +0 -0
- /package/livingdocs/{Media/video/web.scss → 010.Titles/060.title-h6/scss/pdf.scss} +0 -0
- /package/livingdocs/{Signatures/signature-container → 010.Titles/060.title-h6/scss}/web.scss +0 -0
- /package/livingdocs/{PDF_only/pdf-cover/print.scss → 010.Titles/060.title-h6/scss/word.scss} +0 -0
- /package/livingdocs/{Signatures/signature-container/print.scss → 020.Text/010.lead/scss/pdf.scss} +0 -0
- /package/livingdocs/{Signatures/signature-item → 020.Text/010.lead/scss}/web.scss +0 -0
- /package/livingdocs/{Signatures/signature-item/print.scss → 020.Text/010.lead/scss/word.scss} +0 -0
- /package/{scss/helpers/functions.scss → livingdocs/020.Text/020.paragraph/scss/pdf.scss} +0 -0
- /package/livingdocs/{Text/quote → 020.Text/050.quote}/properties.json +0 -0
- /package/livingdocs/{PDF_only/pdf-toc-item → 110.PDF/100.pdf-toc-item}/properties.json +0 -0
- /package/{scss → srl/scss}/colors/functions.scss +0 -0
- /package/{scss → srl/scss}/colors/index.scss +0 -0
- /package/{scss → srl/scss}/colors/mixins.scss +0 -0
- /package/{scss → srl/scss}/colors/variables.scss +0 -0
- /package/{scss → srl/scss}/fonts/functions.scss +0 -0
- /package/{scss → srl/scss}/fonts/index.scss +0 -0
- /package/{scss → srl/scss}/fonts/mixins.scss +0 -0
- /package/{scss → srl/scss}/fonts/variables.scss +0 -0
- /package/{scss → srl/scss}/grid/index.scss +0 -0
- /package/{scss → srl/scss}/helpers/index.scss +0 -0
- /package/{scss → srl/scss}/helpers/variables.scss +0 -0
- /package/{scss → srl/scss}/index.scss +0 -0
- /package/{scss → srl/scss}/meta/functions.scss +0 -0
- /package/{scss → srl/scss}/meta/index.scss +0 -0
- /package/{scss → srl/scss}/meta/mixins.scss +0 -0
- /package/{scss → srl/scss}/meta/variables.scss +0 -0
- /package/{scss → srl/scss}/spacer/functions.scss +0 -0
- /package/{scss → srl/scss}/spacer/index.scss +0 -0
- /package/{scss → srl/scss}/spacer/mixins.scss +0 -0
- /package/{scss → srl/scss}/spacer/variables.scss +0 -0
- /package/{scss → srl/scss}/system/functions.scss +0 -0
- /package/{scss → srl/scss}/system/index.scss +0 -0
- /package/{scss → srl/scss}/system/mixins.scss +0 -0
- /package/{scss → srl/scss}/system/root.scss +0 -0
- /package/{scss → srl/scss}/system/variables.scss +0 -0
- /package/{scss → srl/scss}/typography/functions.scss +0 -0
- /package/{scss → srl/scss}/typography/index.scss +0 -0
- /package/{scss → srl/scss}/typography/variables.scss +0 -0
- /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
|
+
};
|