@tekkare/auriga 0.2.95 → 0.2.97

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/dist/module.json CHANGED
@@ -4,5 +4,5 @@
4
4
  "compatibility": {
5
5
  "nuxt": "^3.0.0"
6
6
  },
7
- "version": "0.2.95"
7
+ "version": "0.2.97"
8
8
  }
@@ -52,7 +52,6 @@
52
52
  class="my-4"
53
53
  />
54
54
  <arg-sub-menu sidebar-open :label="item.linkName">
55
- {{ item.subLinks.map((a) => a.newTab) }}
56
55
  <arg-menu-item
57
56
  v-for="(subLink, subIndex) in item.subLinks"
58
57
  :key="subIndex"
@@ -0,0 +1,235 @@
1
+ <template>
2
+ <div
3
+ class="oip_table_card map_card-container"
4
+ :id="`container_map-${title}-${uniqueID}`"
5
+ >
6
+ <div class="p-24">
7
+ <slot name="customTitle" v-if="haveCustomTitle" />
8
+ <div v-else class="oip_subtitle">
9
+ {{ title ? title : "Your map title" }}
10
+ </div>
11
+ <ArgSourceContainer @click="openSource">
12
+ {{ source ? source : "Your source" }}
13
+ </ArgSourceContainer>
14
+ </div>
15
+ <div
16
+ v-if="hoveredRegion !== null"
17
+ :id="`tooltip_map-${title}`"
18
+ class="tooltip_container"
19
+ :style="{
20
+ top: tooltipPosition.y + 'px',
21
+ left: tooltipPosition.x + 'px',
22
+ width: tooltipPosition.width + 'px',
23
+ }"
24
+ >
25
+ <div class="tooltip">
26
+ <p class="card_title">{{ hoveredRegion }}</p>
27
+ <div class="card_text">
28
+ <slot
29
+ name="Tooltip"
30
+ v-bind:value="{
31
+ name: hoveredRegion,
32
+ value: data.find((x) => x.name == hoveredRegion)?.value,
33
+ }"
34
+ />
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <div class="p24">
39
+ <svg
40
+ class="map"
41
+ width="auto"
42
+ height="500"
43
+ viewBox="0 0 400 850"
44
+ fill="none"
45
+ xmlns="http://www.w3.org/2000/svg"
46
+ >
47
+ <OneRegionDe
48
+ v-for="region in RegionsDe"
49
+ :key="region"
50
+ :data="{
51
+ color: getColor(data.find((x) => x.name == region)?.value),
52
+ value: data.find((x) => x.name == region)?.value,
53
+ }"
54
+ :current-region="region"
55
+ :title="title"
56
+ :hoveredRegion="hoveredRegion"
57
+ @hover="handleHover(region)"
58
+ @mouseleave="handleMouseLeave"
59
+ />
60
+ </svg>
61
+ <div class="legend">
62
+ <div class="scale" />
63
+ <div class="legend-text">
64
+ <p v-for="value in scale" :key="value">
65
+ {{ Math.ceil(value)?.toLocaleString("fr-FR") }}
66
+ </p>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ <slot name="Subcontent" />
71
+ </div>
72
+ </template>
73
+
74
+ <script>
75
+ import { onMounted, ref, watch, defineComponent, nextTick } from "vue";
76
+ import { RegionsDe } from "./maps/interfaces";
77
+ import ArgSourceContainer from "./argSourceContainer.vue";
78
+ import OneRegionDe from "./oneRegionDe.vue";
79
+ export default defineComponent({
80
+ name: "argMapsGermany",
81
+ components: { OneRegionDe, ArgSourceContainer },
82
+ props: {
83
+ data: {
84
+ type: Array,
85
+ default: null,
86
+ required: true
87
+ },
88
+ title: {
89
+ type: [String, null],
90
+ default: null,
91
+ required: false
92
+ },
93
+ source: {
94
+ type: [String, null],
95
+ default: null
96
+ },
97
+ haveCustomTitle: {
98
+ type: [String, null],
99
+ default: null,
100
+ required: false
101
+ },
102
+ uniqueID: {
103
+ type: [String, null],
104
+ default: null,
105
+ required: false
106
+ },
107
+ lang: {
108
+ type: String,
109
+ default: "en",
110
+ required: false
111
+ }
112
+ },
113
+ emits: ["openSource"],
114
+ setup(props, { emit }) {
115
+ const minimalValue = ref(null);
116
+ const maximalValue = ref(null);
117
+ const hoveredRegion = ref(null);
118
+ const tooltipPosition = ref({ x: 0, y: 0, width: 0 });
119
+ const scale = ref([]);
120
+ function getColor(value) {
121
+ if (!value)
122
+ return "var(--lightest)";
123
+ if (value >= scale.value[9]) {
124
+ return "#3F1151";
125
+ } else if (value >= scale.value[8]) {
126
+ return "#432974";
127
+ } else if (value >= scale.value[7]) {
128
+ return "#404A85";
129
+ } else if (value >= scale.value[6]) {
130
+ return "#3F668A";
131
+ } else if (value >= scale.value[5]) {
132
+ return "#43808C";
133
+ } else if (value >= scale.value[4]) {
134
+ return "#4C9C8A";
135
+ } else if (value >= scale.value[3]) {
136
+ return "#5FB57E";
137
+ } else if (value >= scale.value[2]) {
138
+ return "#85CB68";
139
+ } else if (value >= scale.value[1]) {
140
+ return "#BDDD51";
141
+ } else if (value >= scale.value[0]) {
142
+ return "#F9E855";
143
+ }
144
+ }
145
+ function handleHover(region) {
146
+ hoveredRegion.value = region;
147
+ }
148
+ function handleMouseLeave() {
149
+ hoveredRegion.value = null;
150
+ }
151
+ function openSource() {
152
+ emit("openSource");
153
+ }
154
+ function setupScale() {
155
+ minimalValue.value = Math.floor(
156
+ Math.min(...props.data.map((x) => x.value))
157
+ );
158
+ maximalValue.value = Math.ceil(
159
+ Math.max(...props.data.map((x) => x.value))
160
+ );
161
+ const step = (maximalValue.value - minimalValue.value) / 10;
162
+ if (minimalValue.value !== null) {
163
+ scale.value = Array.from(
164
+ { length: 10 },
165
+ (_, i) => (minimalValue.value !== null ? minimalValue.value : 0) + i * step
166
+ );
167
+ }
168
+ }
169
+ onMounted(() => {
170
+ setupScale();
171
+ });
172
+ watch(
173
+ () => props.data,
174
+ () => {
175
+ setupScale();
176
+ }
177
+ );
178
+ watch(
179
+ () => hoveredRegion.value,
180
+ () => {
181
+ if (hoveredRegion.value) {
182
+ const selectedRegion = document.getElementById(
183
+ `interactiveMap-${props.title}-${hoveredRegion.value}`
184
+ )?.getBoundingClientRect();
185
+ const containerPosition = document.getElementById(`container_map-${props.title}-${props.uniqueID}`)?.getBoundingClientRect();
186
+ if (!selectedRegion || !containerPosition)
187
+ return;
188
+ tooltipPosition.value = {
189
+ x: selectedRegion?.x - containerPosition?.x,
190
+ y: selectedRegion?.top - containerPosition?.top - 60,
191
+ width: selectedRegion?.width
192
+ };
193
+ }
194
+ }
195
+ );
196
+ watch(
197
+ () => hoveredRegion.value,
198
+ async () => {
199
+ if (hoveredRegion.value) {
200
+ await nextTick();
201
+ const selectedRegion = document.getElementById(
202
+ `interactiveMap-${props.title}-${hoveredRegion.value}`
203
+ )?.getBoundingClientRect();
204
+ const containerPosition = document.getElementById(`container_map-${props.title}`)?.getBoundingClientRect();
205
+ const tooltipElement = document.getElementById(
206
+ `tooltip_map-${props.title}`
207
+ );
208
+ const tooltipHeight = tooltipElement ? tooltipElement.getBoundingClientRect().height : 60;
209
+ if (!selectedRegion || !containerPosition)
210
+ return;
211
+ tooltipPosition.value = {
212
+ x: selectedRegion?.x - containerPosition?.x,
213
+ y: selectedRegion?.top - containerPosition?.top - tooltipHeight,
214
+ width: selectedRegion?.width
215
+ };
216
+ }
217
+ }
218
+ );
219
+ return {
220
+ getColor,
221
+ handleHover,
222
+ handleMouseLeave,
223
+ RegionsDe,
224
+ hoveredRegion,
225
+ tooltipPosition,
226
+ scale,
227
+ openSource
228
+ };
229
+ }
230
+ });
231
+ </script>
232
+
233
+ <style scoped>
234
+ .map{margin-top:24px;width:100%}.p24{padding:24px}.map path{stroke-width:2px;stroke:rgba(0,0,0,.2);max-height:400px;position:relative}.map path:hover{transition:all .2s}.map_card-container{display:flex;flex-direction:column;gap:8px;min-width:400px;position:relative;width:100%}.test{margin-bottom:200px}.tooltip_container{align-items:center;display:flex;flex-direction:column;justify-content:center;left:0;min-width:-moz-fit-content;min-width:fit-content;position:absolute;top:0;z-index:96}.tooltip{background:#fff;border:1px solid var(--light);border-radius:4px;box-shadow:var(--medium-shadow);color:var(--darkest);font-size:12px}.card_title{background-color:var(--light);border-radius:4px 4px 0 0;font-size:14px;font-weight:600;padding:2px 8px;width:calc(100% - 15px)}.card_text{color:var(--dark);font-size:12px;font-weight:400;line-height:160%;padding:8px;width:100%}.legend{display:flex;flex-direction:column;gap:8px;margin:auto;width:50%}.scale{background:linear-gradient(45deg,#3f1151,#432974,#404a85,#3f668a,#43808c,#4c9c8a,#5fb57e,#85cb68,#bddd51,#f9e855);height:10px;transform:rotate(180deg)}.legend-text{align-items:center;color:var(--dark);display:flex;font-size:12px;font-weight:400;justify-content:space-between;line-height:160%}.p-24{padding:0 24px}
235
+ </style>
@@ -0,0 +1,90 @@
1
+ import type { PropType } from "vue";
2
+ import { RegionsDe } from "./maps/interfaces";
3
+ type dataRegion = {
4
+ name: RegionsDe;
5
+ value: number;
6
+ };
7
+ declare const _default: import("vue").DefineComponent<{
8
+ data: {
9
+ type: PropType<dataRegion[]>;
10
+ default: null;
11
+ required: true;
12
+ };
13
+ title: {
14
+ type: PropType<string | null>;
15
+ default: null;
16
+ required: false;
17
+ };
18
+ source: {
19
+ type: PropType<string | null>;
20
+ default: null;
21
+ };
22
+ haveCustomTitle: {
23
+ type: PropType<string | null>;
24
+ default: null;
25
+ required: false;
26
+ };
27
+ uniqueID: {
28
+ type: PropType<string | null>;
29
+ default: null;
30
+ required: false;
31
+ };
32
+ lang: {
33
+ type: StringConstructor;
34
+ default: string;
35
+ required: false;
36
+ };
37
+ }, {
38
+ getColor: (value?: number) => "var(--lightest)" | "#3F1151" | "#432974" | "#404A85" | "#3F668A" | "#43808C" | "#4C9C8A" | "#5FB57E" | "#85CB68" | "#BDDD51" | "#F9E855" | undefined;
39
+ handleHover: (region: RegionsDe) => void;
40
+ handleMouseLeave: () => void;
41
+ RegionsDe: typeof RegionsDe;
42
+ hoveredRegion: import("vue").Ref<RegionsDe | null>;
43
+ tooltipPosition: import("vue").Ref<{
44
+ x: number;
45
+ y: number;
46
+ width: number;
47
+ }>;
48
+ scale: import("vue").Ref<number[]>;
49
+ openSource: () => void;
50
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "openSource"[], "openSource", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
51
+ data: {
52
+ type: PropType<dataRegion[]>;
53
+ default: null;
54
+ required: true;
55
+ };
56
+ title: {
57
+ type: PropType<string | null>;
58
+ default: null;
59
+ required: false;
60
+ };
61
+ source: {
62
+ type: PropType<string | null>;
63
+ default: null;
64
+ };
65
+ haveCustomTitle: {
66
+ type: PropType<string | null>;
67
+ default: null;
68
+ required: false;
69
+ };
70
+ uniqueID: {
71
+ type: PropType<string | null>;
72
+ default: null;
73
+ required: false;
74
+ };
75
+ lang: {
76
+ type: StringConstructor;
77
+ default: string;
78
+ required: false;
79
+ };
80
+ }>> & {
81
+ onOpenSource?: ((...args: any[]) => any) | undefined;
82
+ }, {
83
+ lang: string;
84
+ data: dataRegion[];
85
+ source: string | null;
86
+ title: string | null;
87
+ haveCustomTitle: string | null;
88
+ uniqueID: string | null;
89
+ }, {}>;
90
+ export default _default;
@@ -175,8 +175,6 @@ export default defineComponent({
175
175
  function openSource() {
176
176
  emit("openSource");
177
177
  }
178
- onMounted(() => {
179
- });
180
178
  function setupScale() {
181
179
  minimalValue.value = Math.floor(
182
180
  Math.min(...props.data.map((x) => x.value))
@@ -0,0 +1,235 @@
1
+ <template>
2
+ <div
3
+ class="oip_table_card map_card-container"
4
+ :id="`container_map-${title}-${uniqueID}`"
5
+ >
6
+ <div class="p-24">
7
+ <slot name="customTitle" v-if="haveCustomTitle" />
8
+ <div v-else class="oip_subtitle">
9
+ {{ title ? title : "Your map title" }}
10
+ </div>
11
+ <ArgSourceContainer @click="openSource">
12
+ {{ source ? source : "Your source" }}
13
+ </ArgSourceContainer>
14
+ </div>
15
+ <div
16
+ v-if="hoveredRegion !== null"
17
+ :id="`tooltip_map-${title}`"
18
+ class="tooltip_container"
19
+ :style="{
20
+ top: tooltipPosition.y + 'px',
21
+ left: tooltipPosition.x + 'px',
22
+ width: tooltipPosition.width + 'px',
23
+ }"
24
+ >
25
+ <div class="tooltip">
26
+ <p class="card_title">{{ hoveredRegion }}</p>
27
+ <div class="card_text">
28
+ <slot
29
+ name="Tooltip"
30
+ v-bind:value="{
31
+ name: hoveredRegion,
32
+ value: data.find((x) => x.name == hoveredRegion)?.value,
33
+ }"
34
+ />
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <div class="p24">
39
+ <svg
40
+ class="map"
41
+ width="auto"
42
+ height="500"
43
+ viewBox="0 60 300 750"
44
+ fill="none"
45
+ xmlns="http://www.w3.org/2000/svg"
46
+ >
47
+ <oneRegionNo
48
+ v-for="region in RegionsNo"
49
+ :key="region"
50
+ :data="{
51
+ color: getColor(data.find((x) => x.name == region)?.value),
52
+ value: data.find((x) => x.name == region)?.value,
53
+ }"
54
+ :current-region="region"
55
+ :title="title"
56
+ :hoveredRegion="hoveredRegion"
57
+ @hover="handleHover(region)"
58
+ @mouseleave="handleMouseLeave"
59
+ />
60
+ </svg>
61
+ <div class="legend">
62
+ <div class="scale" />
63
+ <div class="legend-text">
64
+ <p v-for="value in scale" :key="value">
65
+ {{ Math.ceil(value)?.toLocaleString("fr-FR") }}
66
+ </p>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ <slot name="Subcontent" />
71
+ </div>
72
+ </template>
73
+
74
+ <script>
75
+ import { onMounted, ref, watch, defineComponent, nextTick } from "vue";
76
+ import { RegionsNo } from "./maps/interfaces";
77
+ import oneRegionNo from "./oneRegionNo.vue";
78
+ import ArgSourceContainer from "./argSourceContainer.vue";
79
+ export default defineComponent({
80
+ name: "argMapsNorway",
81
+ components: { oneRegionNo, ArgSourceContainer },
82
+ props: {
83
+ data: {
84
+ type: Array,
85
+ default: null,
86
+ required: true
87
+ },
88
+ title: {
89
+ type: [String, null],
90
+ default: null,
91
+ required: false
92
+ },
93
+ source: {
94
+ type: [String, null],
95
+ default: null
96
+ },
97
+ haveCustomTitle: {
98
+ type: [String, null],
99
+ default: null,
100
+ required: false
101
+ },
102
+ uniqueID: {
103
+ type: [String, null],
104
+ default: null,
105
+ required: false
106
+ },
107
+ lang: {
108
+ type: String,
109
+ default: "en",
110
+ required: false
111
+ }
112
+ },
113
+ emits: ["openSource"],
114
+ setup(props, { emit }) {
115
+ const minimalValue = ref(null);
116
+ const maximalValue = ref(null);
117
+ const hoveredRegion = ref(null);
118
+ const tooltipPosition = ref({ x: 0, y: 0, width: 0 });
119
+ const scale = ref([]);
120
+ function getColor(value) {
121
+ if (!value)
122
+ return "var(--lightest)";
123
+ if (value >= scale.value[9]) {
124
+ return "#3F1151";
125
+ } else if (value >= scale.value[8]) {
126
+ return "#432974";
127
+ } else if (value >= scale.value[7]) {
128
+ return "#404A85";
129
+ } else if (value >= scale.value[6]) {
130
+ return "#3F668A";
131
+ } else if (value >= scale.value[5]) {
132
+ return "#43808C";
133
+ } else if (value >= scale.value[4]) {
134
+ return "#4C9C8A";
135
+ } else if (value >= scale.value[3]) {
136
+ return "#5FB57E";
137
+ } else if (value >= scale.value[2]) {
138
+ return "#85CB68";
139
+ } else if (value >= scale.value[1]) {
140
+ return "#BDDD51";
141
+ } else if (value >= scale.value[0]) {
142
+ return "#F9E855";
143
+ }
144
+ }
145
+ function handleHover(region) {
146
+ hoveredRegion.value = region;
147
+ }
148
+ function handleMouseLeave() {
149
+ hoveredRegion.value = null;
150
+ }
151
+ function openSource() {
152
+ emit("openSource");
153
+ }
154
+ function setupScale() {
155
+ minimalValue.value = Math.floor(
156
+ Math.min(...props.data.map((x) => x.value))
157
+ );
158
+ maximalValue.value = Math.ceil(
159
+ Math.max(...props.data.map((x) => x.value))
160
+ );
161
+ const step = (maximalValue.value - minimalValue.value) / 10;
162
+ if (minimalValue.value !== null) {
163
+ scale.value = Array.from(
164
+ { length: 10 },
165
+ (_, i) => (minimalValue.value !== null ? minimalValue.value : 0) + i * step
166
+ );
167
+ }
168
+ }
169
+ onMounted(() => {
170
+ setupScale();
171
+ });
172
+ watch(
173
+ () => props.data,
174
+ () => {
175
+ setupScale();
176
+ }
177
+ );
178
+ watch(
179
+ () => hoveredRegion.value,
180
+ () => {
181
+ if (hoveredRegion.value) {
182
+ const selectedRegion = document.getElementById(
183
+ `interactiveMap-${props.title}-${hoveredRegion.value}`
184
+ )?.getBoundingClientRect();
185
+ const containerPosition = document.getElementById(`container_map-${props.title}-${props.uniqueID}`)?.getBoundingClientRect();
186
+ if (!selectedRegion || !containerPosition)
187
+ return;
188
+ tooltipPosition.value = {
189
+ x: selectedRegion?.x - containerPosition?.x,
190
+ y: selectedRegion?.top - containerPosition?.top - 60,
191
+ width: selectedRegion?.width
192
+ };
193
+ }
194
+ }
195
+ );
196
+ watch(
197
+ () => hoveredRegion.value,
198
+ async () => {
199
+ if (hoveredRegion.value) {
200
+ await nextTick();
201
+ const selectedRegion = document.getElementById(
202
+ `interactiveMap-${props.title}-${hoveredRegion.value}`
203
+ )?.getBoundingClientRect();
204
+ const containerPosition = document.getElementById(`container_map-${props.title}`)?.getBoundingClientRect();
205
+ const tooltipElement = document.getElementById(
206
+ `tooltip_map-${props.title}`
207
+ );
208
+ const tooltipHeight = tooltipElement ? tooltipElement.getBoundingClientRect().height : 60;
209
+ if (!selectedRegion || !containerPosition)
210
+ return;
211
+ tooltipPosition.value = {
212
+ x: selectedRegion?.x - containerPosition?.x,
213
+ y: selectedRegion?.top - containerPosition?.top - tooltipHeight,
214
+ width: selectedRegion?.width
215
+ };
216
+ }
217
+ }
218
+ );
219
+ return {
220
+ getColor,
221
+ handleHover,
222
+ handleMouseLeave,
223
+ RegionsNo,
224
+ hoveredRegion,
225
+ tooltipPosition,
226
+ scale,
227
+ openSource
228
+ };
229
+ }
230
+ });
231
+ </script>
232
+
233
+ <style scoped>
234
+ .map{margin-top:24px;width:100%}.p24{padding:24px}.map path{stroke-width:2px;stroke:rgba(0,0,0,.2);max-height:400px;position:relative}.map path:hover{transition:all .2s}.map_card-container{display:flex;flex-direction:column;gap:8px;min-width:400px;position:relative;width:100%}.test{margin-bottom:200px}.tooltip_container{align-items:center;display:flex;flex-direction:column;justify-content:center;left:0;min-width:-moz-fit-content;min-width:fit-content;position:absolute;top:0;z-index:96}.tooltip{background:#fff;border:1px solid var(--light);border-radius:4px;box-shadow:var(--medium-shadow);color:var(--darkest);font-size:12px}.card_title{background-color:var(--light);border-radius:4px 4px 0 0;font-size:14px;font-weight:600;padding:2px 8px;width:calc(100% - 15px)}.card_text{color:var(--dark);font-size:12px;font-weight:400;line-height:160%;padding:8px;width:100%}.legend{display:flex;flex-direction:column;gap:8px;margin:auto;width:50%}.scale{background:linear-gradient(45deg,#3f1151,#432974,#404a85,#3f668a,#43808c,#4c9c8a,#5fb57e,#85cb68,#bddd51,#f9e855);height:10px;transform:rotate(180deg)}.legend-text{align-items:center;color:var(--dark);display:flex;font-size:12px;font-weight:400;justify-content:space-between;line-height:160%}.p-24{padding:0 24px}
235
+ </style>
@@ -0,0 +1,90 @@
1
+ import type { PropType } from "vue";
2
+ import { RegionsNo } from "./maps/interfaces";
3
+ type dataRegion = {
4
+ name: RegionsNo;
5
+ value: number;
6
+ };
7
+ declare const _default: import("vue").DefineComponent<{
8
+ data: {
9
+ type: PropType<dataRegion[]>;
10
+ default: null;
11
+ required: true;
12
+ };
13
+ title: {
14
+ type: PropType<string | null>;
15
+ default: null;
16
+ required: false;
17
+ };
18
+ source: {
19
+ type: PropType<string | null>;
20
+ default: null;
21
+ };
22
+ haveCustomTitle: {
23
+ type: PropType<string | null>;
24
+ default: null;
25
+ required: false;
26
+ };
27
+ uniqueID: {
28
+ type: PropType<string | null>;
29
+ default: null;
30
+ required: false;
31
+ };
32
+ lang: {
33
+ type: StringConstructor;
34
+ default: string;
35
+ required: false;
36
+ };
37
+ }, {
38
+ getColor: (value?: number) => "var(--lightest)" | "#3F1151" | "#432974" | "#404A85" | "#3F668A" | "#43808C" | "#4C9C8A" | "#5FB57E" | "#85CB68" | "#BDDD51" | "#F9E855" | undefined;
39
+ handleHover: (region: RegionsNo) => void;
40
+ handleMouseLeave: () => void;
41
+ RegionsNo: typeof RegionsNo;
42
+ hoveredRegion: import("vue").Ref<RegionsNo | null>;
43
+ tooltipPosition: import("vue").Ref<{
44
+ x: number;
45
+ y: number;
46
+ width: number;
47
+ }>;
48
+ scale: import("vue").Ref<number[]>;
49
+ openSource: () => void;
50
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "openSource"[], "openSource", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
51
+ data: {
52
+ type: PropType<dataRegion[]>;
53
+ default: null;
54
+ required: true;
55
+ };
56
+ title: {
57
+ type: PropType<string | null>;
58
+ default: null;
59
+ required: false;
60
+ };
61
+ source: {
62
+ type: PropType<string | null>;
63
+ default: null;
64
+ };
65
+ haveCustomTitle: {
66
+ type: PropType<string | null>;
67
+ default: null;
68
+ required: false;
69
+ };
70
+ uniqueID: {
71
+ type: PropType<string | null>;
72
+ default: null;
73
+ required: false;
74
+ };
75
+ lang: {
76
+ type: StringConstructor;
77
+ default: string;
78
+ required: false;
79
+ };
80
+ }>> & {
81
+ onOpenSource?: ((...args: any[]) => any) | undefined;
82
+ }, {
83
+ lang: string;
84
+ data: dataRegion[];
85
+ source: string | null;
86
+ title: string | null;
87
+ haveCustomTitle: string | null;
88
+ uniqueID: string | null;
89
+ }, {}>;
90
+ export default _default;