@simple-reporting/base 1.0.15 → 1.0.17

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 (101) hide show
  1. package/dev/eslint.config.js +5 -0
  2. package/dev/package.json +1 -1
  3. package/dev/src/App.vue +2 -7
  4. package/dev/src/assets/scss/components/icons.scss +287 -0
  5. package/dev/src/assets/scss/components/note/accordion.scss +57 -24
  6. package/dev/src/assets/scss/components/round-button.scss +75 -0
  7. package/dev/src/assets/scss/general.scss +2 -0
  8. package/dev/src/assets/scss/placeholders.scss +315 -1
  9. package/dev/src/assets/scss/web.scss +1 -0
  10. package/dev/src/components/{PageHeader.vue → Page/Header.vue} +1 -2
  11. package/dev/src/views/ArticleView.vue +2 -3
  12. package/dev/srl.config.json +23 -8
  13. package/livingdocs/010.Titles/020.title-h2/title-h2.html +5 -6
  14. package/livingdocs/010.Titles/030.title-h3/title-h3.html +4 -5
  15. package/livingdocs/010.Titles/040.title-h4/title-h4.html +4 -5
  16. package/livingdocs/020.Text/060.quote-with-portrait/scss/general.scss +1 -0
  17. package/livingdocs/040.Media/010.table/ld-conf.json +1 -6
  18. package/livingdocs/040.Media/010.table/scss/general.scss +53 -1
  19. package/livingdocs/040.Media/010.table/table.html +11 -9
  20. package/livingdocs/040.Media/010.table/table.vue +0 -1
  21. package/livingdocs/040.Media/030.video/ld-conf.json +3 -0
  22. package/livingdocs/040.Media/030.video/scss/general.scss +4 -0
  23. package/livingdocs/040.Media/030.video/scss/web.scss +23 -32
  24. package/livingdocs/040.Media/030.video/video.html +13 -12
  25. package/livingdocs/040.Media/030.video/video.vue +53 -0
  26. package/livingdocs/060.Buttons/010.button-container/button-container.html +5 -0
  27. package/livingdocs/060.Buttons/010.button-container/ld-conf.json +19 -0
  28. package/livingdocs/060.Buttons/010.button-container/properties.json +1 -0
  29. package/livingdocs/060.Buttons/010.button-container/scss/app.scss +1 -0
  30. package/livingdocs/060.Buttons/010.button-container/scss/editor.scss +1 -0
  31. package/livingdocs/060.Buttons/010.button-container/scss/general.scss +6 -0
  32. package/livingdocs/060.Buttons/010.button-container/scss/pdf.scss +1 -0
  33. package/livingdocs/060.Buttons/010.button-container/scss/web.scss +1 -0
  34. package/livingdocs/060.Buttons/010.button-container/scss/word.scss +1 -0
  35. package/livingdocs/060.Buttons/010.button-container/scss/xbrl.scss +2 -0
  36. package/livingdocs/060.Buttons/020.button/button.html +4 -0
  37. package/livingdocs/060.Buttons/020.button/ld-conf.json +15 -0
  38. package/livingdocs/060.Buttons/020.button/scss/app.scss +1 -0
  39. package/livingdocs/060.Buttons/020.button/scss/editor.scss +1 -0
  40. package/livingdocs/060.Buttons/020.button/scss/general.scss +89 -0
  41. package/livingdocs/060.Buttons/020.button/scss/pdf.scss +1 -0
  42. package/livingdocs/060.Buttons/020.button/scss/web.scss +1 -0
  43. package/livingdocs/060.Buttons/020.button/scss/word.scss +1 -0
  44. package/livingdocs/060.Buttons/020.button/scss/xbrl.scss +3 -0
  45. package/livingdocs/090.Signatures/010.signature-container/scss/web.scss +1 -0
  46. package/livingdocs/110.PDF/040.pdf-chapter-title/scss/editor.scss +0 -6
  47. package/livingdocs/999.Properties/hide-quote-characters/properties.json +1 -1
  48. package/livingdocs/999.Properties/icon/properties.json +19 -0
  49. package/livingdocs/999.Properties/reverse/properties.json +7 -0
  50. package/package.json +1 -1
  51. package/plugins/viteSrlPlugin.d.ts +5 -1
  52. package/plugins/viteSrlPlugin.js +7 -3
  53. package/scripts/build.js +118 -17
  54. package/scripts/ldd/mapLdd.js +2 -2
  55. package/scripts/vue/components.js +14 -15
  56. package/srl/components/Srl/{Note → Category}/Accordion/Content.vue +7 -1
  57. package/srl/components/Srl/{Note → Category}/Accordion.vue +2 -1
  58. package/srl/components/Srl/Menu/Item.vue +7 -3
  59. package/srl/components/Srl/Menu.vue +2 -1
  60. package/srl/composables/config.ts +13 -14
  61. package/srl/composables/cssStyles.ts +1 -1
  62. package/srl/composables/menu.ts +5 -1
  63. package/srl/composables/viewPort.ts +4 -3
  64. package/srl/plugins/initProject.ts +1 -1
  65. package/srl/utils/html.ts +3 -3
  66. package/dev/src/components/SrlPage/KFCApplication/KFCApplication.vue +0 -715
  67. package/dev/src/components/SrlPage/KFCApplication/KFCDropdownCharts.vue +0 -112
  68. package/dev/src/components/SrlPage/KFCApplication/KFCDropdownPeriod.vue +0 -85
  69. package/dev/src/components/SrlPage/KFCApplication/KFCTable.vue +0 -63
  70. package/dev/src/components/SrlPage/KFCApplication/hooks/kfcData.ts +0 -9
  71. package/dev/src/components/SrlPage/KFCApplication/models/KFCApplication.ts +0 -183
  72. package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-basic.scss +0 -1136
  73. package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-custom.scss +0 -71
  74. package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-general.scss +0 -113
  75. package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison-dropdown.scss +0 -189
  76. package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison.scss +0 -151
  77. package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-loading.scss +0 -40
  78. package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-print.scss +0 -20
  79. package/dev/src/components/SrlPage/KFCApplication/scss/_srl-button-kfc.scss +0 -21
  80. package/dev/src/components/SrlPage/KFCApplication/scss/_variables.scss +0 -10
  81. package/dev/src/components/SrlPage/KFCApplication/services/xlsxParser.ts +0 -194
  82. package/dev/src/components/SrlPage/KFCApplication/theme/SvgColumnView.vue +0 -28
  83. package/dev/src/components/SrlPage/KFCApplication/theme/SvgDownloadChart.vue +0 -26
  84. package/dev/src/components/SrlPage/KFCApplication/theme/SvgDropdown.vue +0 -18
  85. package/dev/src/components/SrlPage/KFCApplication/theme/SvgIndexedValues.vue +0 -18
  86. package/dev/src/components/SrlPage/KFCApplication/theme/SvgLegendSwap.vue +0 -18
  87. package/dev/src/components/SrlPage/KFCApplication/theme/SvgLineView.vue +0 -28
  88. package/dev/src/components/SrlPage/KFCApplication/theme/SvgPDFChart.vue +0 -26
  89. package/dev/src/components/SrlPage/KFCApplication/theme/SvgPrintChart.vue +0 -33
  90. package/dev/src/components/SrlPage/KFCApplication/theme/SvgTableView.vue +0 -67
  91. package/dev/src/components/SrlPage/KFCApplication/utils/XDownloader.js +0 -455
  92. package/dev/src/components/SrlPage/KFCApplication/utils/XDownloaderStyle.js +0 -44
  93. package/dev/src/components/SrlPage/KFCApplication/utils/XTableNamer.js +0 -68
  94. /package/dev/src/components/{BypassLinks.vue → Page/BypassLinks.vue} +0 -0
  95. /package/dev/src/components/{PageFooter.vue → Page/Footer.vue} +0 -0
  96. /package/dev/src/components/{PageMain.vue → Page/Main.vue} +0 -0
  97. /package/dev/src/components/{MainNavigation.vue → Page/MainNavigation.vue} +0 -0
  98. /package/dev/src/components/{NavLanguages.vue → Page/NavLanguages.vue} +0 -0
  99. /package/dev/src/components/{PrevNext.vue → Page/PrevNext.vue} +0 -0
  100. /package/srl/{components/App.vue → App.vue} +0 -0
  101. /package/srl/components/Srl/{Note → Category}/Accordion/Toggle.vue +0 -0
@@ -1,112 +0,0 @@
1
- <script setup>
2
- import { ref } from 'vue'
3
- import SvgDropdown from './theme/SvgDropdown.vue'
4
- import { useI18n } from 'vue-i18n'
5
-
6
- const props = defineProps({
7
- charts: Array,
8
- activeSeries: Array,
9
- activeChart: String,
10
- updateSeries: Function,
11
- changeChart: Function
12
- })
13
-
14
- const open = ref(false)
15
- const { locale } = useI18n()
16
-
17
- function toggleSeries(seriesIndex) {
18
- if (props.activeSeries.includes(seriesIndex)) {
19
- props.updateSeries(props.activeSeries.filter((ac) => ac !== null && ac != seriesIndex))
20
- } else {
21
- props.updateSeries(
22
- [...props.activeSeries, seriesIndex].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0))
23
- )
24
- }
25
- }
26
-
27
- function selectChart(chart) {
28
- if (chart.id !== props.activeChart) props.changeChart(chart)
29
- }
30
-
31
- function toggleState() {
32
- open.value = !open.value
33
- }
34
-
35
- function closeDropdown() {
36
- open.value = false
37
- }
38
-
39
- function getLabel(series) {
40
- return series[locale.value]
41
- }
42
- </script>
43
-
44
- <template>
45
- <div
46
- class="iz-kfc-dropdown iz-kfc-dropdown--charts"
47
- :class="{ open: open }"
48
- @blur="closeDropdown()"
49
- tabindex="-1"
50
- >
51
- <div class="iz-kfc-dropdown__title srl-typo-headline3" @click="toggleState()">
52
- <span>{{ $t('kfc-dropdown.chart.title') }}</span>
53
- <SvgDropdown></SvgDropdown>
54
- </div>
55
- <div class="iz-kfc-dropdown__list" id="dropdown-content-charts" v-if="open">
56
- <div
57
- class="iz-kfc-dropdown__item iz-kfc-dropdown__item--charts"
58
- v-for="(chart, chartIndex) in charts"
59
- v-bind:key="chartIndex"
60
- >
61
- <div
62
- class="iz-kfc-dropdown__item-chart iz-kfc-dropdown__item-chart--charts"
63
- :class="{ active: activeChart == chart.id }"
64
- >
65
- <span @click="selectChart(chart)">{{ getLabel(chart.title) }}</span>
66
- </div>
67
- <template v-if="activeChart == chart.id">
68
- <div
69
- class="iz-kfc-dropdown__item-serie iz-kfc-dropdown__item-serie--charts"
70
- :class="{ active: props.activeSeries.includes(seriesIndex) }"
71
- v-for="(series, seriesIndex) in chart.series"
72
- @click="toggleSeries(seriesIndex)"
73
- v-bind:key="seriesIndex"
74
- >
75
- <span class="indicator">
76
- <svg
77
- version="1.1"
78
- id="select-x"
79
- xmlns="http://www.w3.org/2000/svg"
80
- x="0"
81
- y="0"
82
- viewBox="0 0 13 13"
83
- style="enable-background: new 0 0 13 13"
84
- xml:space="preserve"
85
- >
86
- <g id="Desktop">
87
- <g id="Desktop_Mehrjahresvergleich_Menu_1" transform="translate(-329 -980)">
88
- <g id="Group-5-Copy-5" transform="translate(330 981)">
89
- <path
90
- id="Stroke-1"
91
- class="st0"
92
- style="fill: none; stroke: #000; stroke-width: 0.9231"
93
- d="m-.5-.5 12 12"
94
- />
95
- <path
96
- id="Stroke-3"
97
- style="fill: none; stroke: #000; stroke-width: 0.9231"
98
- class="st0"
99
- d="m11.5-.5-12 12"
100
- />
101
- </g>
102
- </g>
103
- </g>
104
- </svg>
105
- </span>
106
- <span v-html="getLabel(series.label)"></span>
107
- </div>
108
- </template>
109
- </div>
110
- </div>
111
- </div>
112
- </template>
@@ -1,85 +0,0 @@
1
- <script setup>
2
- import { ref } from 'vue'
3
- import SvgDropdown from './theme/SvgDropdown.vue'
4
-
5
- const props = defineProps({
6
- categories: Array,
7
- activeCategories: Array,
8
- updateCategories: Function
9
- })
10
-
11
- const open = ref(false)
12
-
13
- function toggleCategory(index) {
14
- if (props.activeCategories.includes(index)) {
15
- props.updateCategories(props.activeCategories.filter((ac) => ac !== null && ac != index))
16
- } else {
17
- props.updateCategories(
18
- [...props.activeCategories, index].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0))
19
- )
20
- }
21
- }
22
-
23
- function toggleState() {
24
- open.value = !open.value
25
- }
26
-
27
- function closeDropdown() {
28
- open.value = false
29
- }
30
- </script>
31
- <template>
32
- <div
33
- class="iz-kfc-dropdown iz-kfc-dropdown--periods"
34
- :class="{ open: open }"
35
- @blur="closeDropdown()"
36
- tabindex="-1"
37
- >
38
- <div class="iz-kfc-dropdown__title srl-typo-headline3" @click="toggleState()">
39
- <span>{{ $t('kfc-dropdown.periods.title') }}</span>
40
- <SvgDropdown></SvgDropdown>
41
- </div>
42
- <div class="iz-kfc-dropdown__list" id="dropdown-content-timeperiods" v-if="open">
43
- <div
44
- class="iz-kfc-dropdown__item iz-kfc-dropdown__item--period"
45
- v-for="(category, index) in props.categories"
46
- :class="{ active: props.activeCategories.includes(index) }"
47
- @click="toggleCategory(index)"
48
- v-bind:key="index"
49
- >
50
- <span class="indicator">
51
- <svg
52
- version="1.1"
53
- id="select-x"
54
- xmlns="http://www.w3.org/2000/svg"
55
- x="0"
56
- y="0"
57
- viewBox="0 0 13 13"
58
- style="enable-background: new 0 0 13 13"
59
- xml:space="preserve"
60
- >
61
- <g id="Desktop">
62
- <g id="Desktop_Mehrjahresvergleich_Menu_1" transform="translate(-329 -980)">
63
- <g id="Group-5-Copy-5" transform="translate(330 981)">
64
- <path
65
- id="Stroke-1"
66
- class="st0"
67
- style="fill: none; stroke: #000; stroke-width: 0.9231"
68
- d="m-.5-.5 12 12"
69
- />
70
- <path
71
- id="Stroke-3"
72
- style="fill: none; stroke: #000; stroke-width: 0.9231"
73
- class="st0"
74
- d="m11.5-.5-12 12"
75
- />
76
- </g>
77
- </g>
78
- </g>
79
- </svg>
80
- </span>
81
- <span>{{ category }}</span>
82
- </div>
83
- </div>
84
- </div>
85
- </template>
@@ -1,63 +0,0 @@
1
- <script setup>
2
- import Highcharts from 'highcharts'
3
- import { useI18n } from 'vue-i18n'
4
-
5
- const props = defineProps({
6
- categories: Array,
7
- series: Array,
8
- currentChart: Object,
9
- footnotes: Array
10
- })
11
-
12
- const { locale } = useI18n()
13
-
14
- function getAxisLabel(serie) {
15
- const label =
16
- props.currentChart.value[serie.yAxis == 0 ? 'yAxisLabel0' : 'yAxisLabel1'][locale.value]
17
- if (label && label.trim().length > 0) return ` (${label})`
18
- return ''
19
- }
20
- </script>
21
-
22
- <template>
23
- <div class="kfc-table-wrapper">
24
- <table data-tableid="kfc">
25
- <tbody>
26
- <tr class="head">
27
- <td class="head"></td>
28
- <td class="srl-horizontal-left ns-horizontal-left head noline"> </td>
29
- <td
30
- class="ns-horizontal-right line_bold head"
31
- :class="{ 'srl-background-05': categoryIndex == props.categories.length - 1 }"
32
- v-for="(category, categoryIndex) in props.categories"
33
- >
34
- {{ category }}
35
- </td>
36
- </tr>
37
- <tr v-for="serie in props.series">
38
- <td
39
- class="ns-horizontal-left line"
40
- v-html="serie.label[locale] + getAxisLabel(serie)"
41
- ></td>
42
- <td class="srl-horizontal-left ns-horizontal-left noline"> </td>
43
- <td
44
- class="ns-horizontal-right nowrap"
45
- :class="{ 'srl-background-05': dataIndex == serie.data.length - 1 }"
46
- v-for="(data, dataIndex) in serie.data"
47
- >
48
- {{ Highcharts.numberFormat(data, 1) }}
49
- </td>
50
- </tr>
51
- <tr class="konturu">
52
- <td class="ns-horizontal-left line konturu"></td>
53
- <td class="srl-horizontal-left ns-horizontal-left noline"> </td>
54
- <td
55
- class="ns-horizontal-right nowrap"
56
- :class="{ 'srl-background-05': index === props.series[0]?.data.length - 1 }"
57
- v-for="(_, index) in props.series[0]?.data.length"
58
- ></td>
59
- </tr>
60
- </tbody>
61
- </table>
62
- </div>
63
- </template>
@@ -1,9 +0,0 @@
1
- import useConfig from 'srl/composables/config'
2
- import generateKFCJson from '@/components/SrlPage/KFCApplication/services/xlsxParser'
3
-
4
- export default async function useKfcData() {
5
- const config = useConfig()
6
- /** @todo überprüfen warum die daten nicht korrekt mit config.value.settings.languages generiert werden */
7
- //return await generateKFCJson(config.value.settings.languages);
8
- return await generateKFCJson(['de', 'en', 'fr', 'it'])
9
- }
@@ -1,183 +0,0 @@
1
- import { ref } from 'vue'
2
- import useKfcData from '@/components/SrlPage/KFCApplication/hooks/kfcData'
3
-
4
- export class KFCApplication {
5
- currentChart
6
- jsonData = ref({})
7
- searchQueryConfiguration = ref({
8
- activeChart: '',
9
- chartType: 'column',
10
- swapLabels: false,
11
- activeCategories: [],
12
- activeSeries: [],
13
- indexedView: false
14
- })
15
-
16
- constructor(locale) {
17
- this.currentChart = ref({})
18
- this.currentLang = ref('de')
19
- this.dataLoaded = ref(false)
20
- this.currentLang.value = locale
21
-
22
- this.loadApplicationData().then((data) => {
23
- this.jsonData.value = data
24
- this.currentChart.value = this.getCharts()[0]
25
- this.dataLoaded.value = true
26
- })
27
- }
28
-
29
- async loadApplicationData() {
30
- return await useKfcData()
31
- }
32
-
33
- readQuery() {
34
- const queryString = window.location.search
35
- const searchParams = new URLSearchParams(queryString)
36
-
37
- this.currentChart.value = this.getCharts().find(
38
- (chart) => chart.id == searchParams.get('activeChart')
39
- )
40
- if (!this.currentChart.value) this.currentChart.value = this.getCharts()[0]
41
-
42
- this.searchQueryConfiguration.value = {
43
- activeChart: this.currentChart.value.id,
44
- chartType: searchParams.get('chartType'),
45
- swapLabels: searchParams.get('swapLabels') == '1',
46
- activeCategories: searchParams
47
- .get('activeCategories')
48
- .split(',')
49
- .map((n) => parseInt(n)),
50
- activeSeries: searchParams
51
- .get('activeSeries')
52
- .split(',')
53
- .map((n) => parseInt(n)),
54
- indexedView: searchParams.get('indexed') == '1'
55
- }
56
- }
57
-
58
- writeDefaultQuery() {
59
- if (this.currentChart.value) {
60
- this.searchQueryConfiguration.value = {
61
- activeChart: this.currentChart.value.id,
62
- chartType: 'column',
63
- swapLabels: false,
64
- activeCategories: this.currentChart.value.defaultActiveCategories.map((a, i) => i),
65
- activeSeries: this.currentChart.value.defaultActiveSeries.map((a, i) => i),
66
- indexedView: false
67
- }
68
- this.writeQuery()
69
- }
70
- }
71
-
72
- getCharts() {
73
- if (this.jsonData.value) {
74
- return this.jsonData.value || []
75
- }
76
- return []
77
- }
78
-
79
- set activeSeries(newSeries) {
80
- this.searchQueryConfiguration.value.activeSeries = newSeries
81
- if (!this.canSwapLabels()) {
82
- this.swapLabels = false
83
-
84
- return
85
- }
86
- }
87
-
88
- get activeChart() {
89
- return this.searchQueryConfiguration.value.activeChart
90
- }
91
-
92
- get activeSeries() {
93
- return this.searchQueryConfiguration.value.activeSeries
94
- }
95
-
96
- set activeCategories(newCategories) {
97
- this.searchQueryConfiguration.value.activeCategories = newCategories
98
- }
99
-
100
- get activeCategories() {
101
- return this.searchQueryConfiguration.value.activeCategories
102
- }
103
-
104
- set swapLabels(newSwapLabel) {
105
- this.searchQueryConfiguration.value.swapLabels = newSwapLabel
106
- }
107
-
108
- get swapLabels() {
109
- return this.searchQueryConfiguration.value.swapLabels
110
- }
111
-
112
- set indexed(newIndexed) {
113
- this.searchQueryConfiguration.value.indexedView = newIndexed
114
- }
115
-
116
- get indexed() {
117
- return this.searchQueryConfiguration.value.indexedView
118
- }
119
-
120
- get chartType() {
121
- return this.searchQueryConfiguration.value.chartType
122
- }
123
-
124
- set chartType(newChartType) {
125
- this.searchQueryConfiguration.value.chartType = newChartType
126
- }
127
-
128
- updateActiveChart(newChart) {
129
- this.currentChart.value = newChart
130
-
131
- this.searchQueryConfiguration.value.activeChart = newChart.id
132
- this.searchQueryConfiguration.value.activeCategories = newChart.defaultActiveCategories
133
- this.searchQueryConfiguration.value.activeSeries = newChart.defaultActiveSeries
134
- this.searchQueryConfiguration.value.swapLabels = false
135
- }
136
-
137
- changeChartType(newChartType) {
138
- this.searchQueryConfiguration.value.chartType = newChartType
139
- this.searchQueryConfiguration.value.swapLabels = false
140
- }
141
-
142
- loadChartCSV() {}
143
-
144
- processChartCSV() {
145
- return {
146
- series: [],
147
- categories: [],
148
- defaultActiveCategories: [],
149
- defaultActiveSeries: [],
150
- defaultActiveChartType: 'column'
151
- }
152
- }
153
-
154
- canSwapLabels() {
155
- let can = true
156
- if (this.currentChart.value.series) {
157
- this.currentChart.value.series
158
- .filter((s, si) => this.activeSeries.includes(si))
159
- .forEach((series) => {
160
- can = can && series.type == 'column'
161
- })
162
- }
163
- return can
164
- }
165
-
166
- writeQuery() {
167
- const url = new URL(window.location.toString())
168
- const query = {
169
- activeChart: this.searchQueryConfiguration.value.activeChart,
170
- chartType: this.searchQueryConfiguration.value.chartType,
171
- swapLabels: this.searchQueryConfiguration.value.swapLabels && this.canSwapLabels() ? 1 : 0,
172
- activeSeries: this.searchQueryConfiguration.value.activeSeries.join(','),
173
- activeCategories: this.searchQueryConfiguration.value.activeCategories.join(','),
174
- indexed: this.searchQueryConfiguration.value.indexedView ? 1 : 0
175
- }
176
-
177
- Object.keys(query).forEach((key) => {
178
- url.searchParams.set(key, query[key])
179
- })
180
-
181
- window.history.pushState(null, '', url)
182
- }
183
- }