@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.
- package/dev/eslint.config.js +5 -0
- package/dev/package.json +1 -1
- package/dev/src/App.vue +2 -7
- package/dev/src/assets/scss/components/icons.scss +287 -0
- package/dev/src/assets/scss/components/note/accordion.scss +57 -24
- package/dev/src/assets/scss/components/round-button.scss +75 -0
- package/dev/src/assets/scss/general.scss +2 -0
- package/dev/src/assets/scss/placeholders.scss +315 -1
- package/dev/src/assets/scss/web.scss +1 -0
- package/dev/src/components/{PageHeader.vue → Page/Header.vue} +1 -2
- package/dev/src/views/ArticleView.vue +2 -3
- package/dev/srl.config.json +23 -8
- package/livingdocs/010.Titles/020.title-h2/title-h2.html +5 -6
- package/livingdocs/010.Titles/030.title-h3/title-h3.html +4 -5
- package/livingdocs/010.Titles/040.title-h4/title-h4.html +4 -5
- package/livingdocs/020.Text/060.quote-with-portrait/scss/general.scss +1 -0
- package/livingdocs/040.Media/010.table/ld-conf.json +1 -6
- package/livingdocs/040.Media/010.table/scss/general.scss +53 -1
- package/livingdocs/040.Media/010.table/table.html +11 -9
- package/livingdocs/040.Media/010.table/table.vue +0 -1
- package/livingdocs/040.Media/030.video/ld-conf.json +3 -0
- package/livingdocs/040.Media/030.video/scss/general.scss +4 -0
- package/livingdocs/040.Media/030.video/scss/web.scss +23 -32
- package/livingdocs/040.Media/030.video/video.html +13 -12
- package/livingdocs/040.Media/030.video/video.vue +53 -0
- package/livingdocs/060.Buttons/010.button-container/button-container.html +5 -0
- package/livingdocs/060.Buttons/010.button-container/ld-conf.json +19 -0
- package/livingdocs/060.Buttons/010.button-container/properties.json +1 -0
- package/livingdocs/060.Buttons/010.button-container/scss/app.scss +1 -0
- package/livingdocs/060.Buttons/010.button-container/scss/editor.scss +1 -0
- package/livingdocs/060.Buttons/010.button-container/scss/general.scss +6 -0
- package/livingdocs/060.Buttons/010.button-container/scss/pdf.scss +1 -0
- package/livingdocs/060.Buttons/010.button-container/scss/web.scss +1 -0
- package/livingdocs/060.Buttons/010.button-container/scss/word.scss +1 -0
- package/livingdocs/060.Buttons/010.button-container/scss/xbrl.scss +2 -0
- package/livingdocs/060.Buttons/020.button/button.html +4 -0
- package/livingdocs/060.Buttons/020.button/ld-conf.json +15 -0
- package/livingdocs/060.Buttons/020.button/scss/app.scss +1 -0
- package/livingdocs/060.Buttons/020.button/scss/editor.scss +1 -0
- package/livingdocs/060.Buttons/020.button/scss/general.scss +89 -0
- package/livingdocs/060.Buttons/020.button/scss/pdf.scss +1 -0
- package/livingdocs/060.Buttons/020.button/scss/web.scss +1 -0
- package/livingdocs/060.Buttons/020.button/scss/word.scss +1 -0
- package/livingdocs/060.Buttons/020.button/scss/xbrl.scss +3 -0
- package/livingdocs/090.Signatures/010.signature-container/scss/web.scss +1 -0
- package/livingdocs/110.PDF/040.pdf-chapter-title/scss/editor.scss +0 -6
- package/livingdocs/999.Properties/hide-quote-characters/properties.json +1 -1
- package/livingdocs/999.Properties/icon/properties.json +19 -0
- package/livingdocs/999.Properties/reverse/properties.json +7 -0
- package/package.json +1 -1
- package/plugins/viteSrlPlugin.d.ts +5 -1
- package/plugins/viteSrlPlugin.js +7 -3
- package/scripts/build.js +118 -17
- package/scripts/ldd/mapLdd.js +2 -2
- package/scripts/vue/components.js +14 -15
- package/srl/components/Srl/{Note → Category}/Accordion/Content.vue +7 -1
- package/srl/components/Srl/{Note → Category}/Accordion.vue +2 -1
- package/srl/components/Srl/Menu/Item.vue +7 -3
- package/srl/components/Srl/Menu.vue +2 -1
- package/srl/composables/config.ts +13 -14
- package/srl/composables/cssStyles.ts +1 -1
- package/srl/composables/menu.ts +5 -1
- package/srl/composables/viewPort.ts +4 -3
- package/srl/plugins/initProject.ts +1 -1
- package/srl/utils/html.ts +3 -3
- package/dev/src/components/SrlPage/KFCApplication/KFCApplication.vue +0 -715
- package/dev/src/components/SrlPage/KFCApplication/KFCDropdownCharts.vue +0 -112
- package/dev/src/components/SrlPage/KFCApplication/KFCDropdownPeriod.vue +0 -85
- package/dev/src/components/SrlPage/KFCApplication/KFCTable.vue +0 -63
- package/dev/src/components/SrlPage/KFCApplication/hooks/kfcData.ts +0 -9
- package/dev/src/components/SrlPage/KFCApplication/models/KFCApplication.ts +0 -183
- package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-basic.scss +0 -1136
- package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-custom.scss +0 -71
- package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-general.scss +0 -113
- package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison-dropdown.scss +0 -189
- package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison.scss +0 -151
- package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-loading.scss +0 -40
- package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-print.scss +0 -20
- package/dev/src/components/SrlPage/KFCApplication/scss/_srl-button-kfc.scss +0 -21
- package/dev/src/components/SrlPage/KFCApplication/scss/_variables.scss +0 -10
- package/dev/src/components/SrlPage/KFCApplication/services/xlsxParser.ts +0 -194
- package/dev/src/components/SrlPage/KFCApplication/theme/SvgColumnView.vue +0 -28
- package/dev/src/components/SrlPage/KFCApplication/theme/SvgDownloadChart.vue +0 -26
- package/dev/src/components/SrlPage/KFCApplication/theme/SvgDropdown.vue +0 -18
- package/dev/src/components/SrlPage/KFCApplication/theme/SvgIndexedValues.vue +0 -18
- package/dev/src/components/SrlPage/KFCApplication/theme/SvgLegendSwap.vue +0 -18
- package/dev/src/components/SrlPage/KFCApplication/theme/SvgLineView.vue +0 -28
- package/dev/src/components/SrlPage/KFCApplication/theme/SvgPDFChart.vue +0 -26
- package/dev/src/components/SrlPage/KFCApplication/theme/SvgPrintChart.vue +0 -33
- package/dev/src/components/SrlPage/KFCApplication/theme/SvgTableView.vue +0 -67
- package/dev/src/components/SrlPage/KFCApplication/utils/XDownloader.js +0 -455
- package/dev/src/components/SrlPage/KFCApplication/utils/XDownloaderStyle.js +0 -44
- package/dev/src/components/SrlPage/KFCApplication/utils/XTableNamer.js +0 -68
- /package/dev/src/components/{BypassLinks.vue → Page/BypassLinks.vue} +0 -0
- /package/dev/src/components/{PageFooter.vue → Page/Footer.vue} +0 -0
- /package/dev/src/components/{PageMain.vue → Page/Main.vue} +0 -0
- /package/dev/src/components/{MainNavigation.vue → Page/MainNavigation.vue} +0 -0
- /package/dev/src/components/{NavLanguages.vue → Page/NavLanguages.vue} +0 -0
- /package/dev/src/components/{PrevNext.vue → Page/PrevNext.vue} +0 -0
- /package/srl/{components/App.vue → App.vue} +0 -0
- /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
|
-
}
|