@tekkare/auriga 0.2.222 → 0.2.223
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 +1 -1
- package/dist/module.mjs +4 -0
- package/dist/runtime/components/argDirectusSources.vue +265 -0
- package/dist/runtime/components/argDirectusSources.vue.d.ts +97 -0
- package/dist/runtime/components/argMapsItaly.vue +240 -0
- package/dist/runtime/components/argMapsItaly.vue.d.ts +110 -0
- package/dist/runtime/components/argSourceCollapse.vue.d.ts +1 -1
- package/dist/runtime/components/argSourcesElastic.vue +2 -2
- package/dist/runtime/components/argSourcesElastic.vue.d.ts +1 -1
- package/dist/runtime/components/maps/interfaces.d.ts +22 -0
- package/dist/runtime/components/maps/interfaces.mjs +23 -0
- package/dist/runtime/components/maps/regionsPathIt.json +62 -0
- package/dist/runtime/components/oneRegionIt.vue +62 -0
- package/dist/runtime/components/oneRegionIt.vue.d.ts +54 -0
- package/package.json +1 -1
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -17,6 +17,10 @@ const module = defineNuxtModule({
|
|
|
17
17
|
path: resolve(runtimeDir, "components"),
|
|
18
18
|
watch: false
|
|
19
19
|
});
|
|
20
|
+
nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {};
|
|
21
|
+
const pub = nuxt.options.runtimeConfig.public;
|
|
22
|
+
pub.aurigaDirectusToken = pub.aurigaDirectusToken ?? "";
|
|
23
|
+
pub.aurigaDirectusUrl = pub.aurigaDirectusUrl ?? "https://metadata.rcd.lensuscloud.com/graphql";
|
|
20
24
|
}
|
|
21
25
|
});
|
|
22
26
|
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="!isLoadingQuery && sourceResults"
|
|
4
|
+
class="oip_body oip_list gap-12"
|
|
5
|
+
:key="reloadKey"
|
|
6
|
+
>
|
|
7
|
+
<template v-for="(uuid, index) in reorderedUuids" :key="index">
|
|
8
|
+
<ArgSourceCollapse
|
|
9
|
+
v-if="
|
|
10
|
+
sourceResults?.find((x) =>
|
|
11
|
+
x?.sources?.some((y) => y?.source_uuid === uuid)
|
|
12
|
+
) ||
|
|
13
|
+
sourceResults?.find((x) => x?.provider_uuid === uuid)
|
|
14
|
+
"
|
|
15
|
+
:source-country="findProviderAndSource(uuid).provider?.provider_country"
|
|
16
|
+
:without-country="!showCountry"
|
|
17
|
+
:source-id="uuid"
|
|
18
|
+
:source-title="constructTitle(uuid)"
|
|
19
|
+
:default-open="sourceToOpen && sourceToOpen == uuid"
|
|
20
|
+
:lang="lang"
|
|
21
|
+
>
|
|
22
|
+
<div class="oip_list gap-24">
|
|
23
|
+
<div class="oip_row v-center gap-24">
|
|
24
|
+
<div>
|
|
25
|
+
<p class="oip_filter_label">{{ labels.lastUpdate }} :</p>
|
|
26
|
+
{{ getLastUpdate(uuid)?.update }}
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div>
|
|
30
|
+
<p class="oip_filter_label">{{ labels.frequency }} :</p>
|
|
31
|
+
{{ getLastUpdate(uuid)?.frequency }}
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="oip_list gap-8">
|
|
35
|
+
<p class="small_heading">{{ labels.aboutProvider }}</p>
|
|
36
|
+
<p v-html="getDescriptions(uuid).provider" />
|
|
37
|
+
</div>
|
|
38
|
+
<div class="oip_list gap-8">
|
|
39
|
+
<p class="small_heading">{{ labels.aboutSource }}</p>
|
|
40
|
+
<p v-html="getDescriptions(uuid).source" />
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</ArgSourceCollapse>
|
|
44
|
+
</template>
|
|
45
|
+
</div>
|
|
46
|
+
<div v-else class="oip_body oip_list gap-12">
|
|
47
|
+
<div v-for="i in 3" :key="i" class="oneLoader" />
|
|
48
|
+
</div>
|
|
49
|
+
</template>
|
|
50
|
+
|
|
51
|
+
<script>
|
|
52
|
+
import { onMounted, ref, watch, defineComponent, computed } from "vue";
|
|
53
|
+
import { useRuntimeConfig } from "#app";
|
|
54
|
+
import ArgSourceCollapse from "./argSourceCollapse.vue";
|
|
55
|
+
export default defineComponent({
|
|
56
|
+
name: "argDirectusSources",
|
|
57
|
+
components: { ArgSourceCollapse },
|
|
58
|
+
props: {
|
|
59
|
+
uuids: { type: Array, default: () => [] },
|
|
60
|
+
collection: { type: String, default: "DataProvider" },
|
|
61
|
+
// Optional overrides. By default, both are read from runtimeConfig.public
|
|
62
|
+
// (which is populated from .env via NUXT_PUBLIC_AURIGA_DIRECTUS_TOKEN / _URL).
|
|
63
|
+
directusUrl: { type: String, default: null },
|
|
64
|
+
directusToken: { type: String, default: null },
|
|
65
|
+
showCountry: { type: Boolean, default: true },
|
|
66
|
+
sourceToOpen: { type: String, default: null },
|
|
67
|
+
lang: { type: String, default: "en" }
|
|
68
|
+
},
|
|
69
|
+
emits: ["updateSources"],
|
|
70
|
+
setup(props, { emit }) {
|
|
71
|
+
const runtimeConfig = useRuntimeConfig();
|
|
72
|
+
const resolvedToken = computed(
|
|
73
|
+
() => props.directusToken || runtimeConfig?.public?.aurigaDirectusToken || ""
|
|
74
|
+
);
|
|
75
|
+
const resolvedUrl = computed(
|
|
76
|
+
() => props.directusUrl || runtimeConfig?.public?.aurigaDirectusUrl || "https://metadata.rcd.lensuscloud.com/graphql"
|
|
77
|
+
);
|
|
78
|
+
const sourceResults = ref([]);
|
|
79
|
+
const isLoadingQuery = ref(false);
|
|
80
|
+
const reloadKey = ref(0);
|
|
81
|
+
const reorderedUuids = computed(() => {
|
|
82
|
+
const uuids = Array.isArray(props.uuids) ? props.uuids : [];
|
|
83
|
+
if (props?.sourceToOpen && uuids.includes(props.sourceToOpen)) {
|
|
84
|
+
return [
|
|
85
|
+
props.sourceToOpen,
|
|
86
|
+
...uuids.filter((x) => x !== props.sourceToOpen)
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
return uuids;
|
|
90
|
+
});
|
|
91
|
+
function getTranslated(provider, source) {
|
|
92
|
+
const langCode = props.lang;
|
|
93
|
+
const providerTrans = provider?.translations?.find(
|
|
94
|
+
(t) => (t?.languages_code?.code || t?.languages_code)?.startsWith(langCode)
|
|
95
|
+
);
|
|
96
|
+
const sourceTrans = source?.translations?.find(
|
|
97
|
+
(t) => (t?.languages_code?.code || t?.languages_code)?.startsWith(langCode)
|
|
98
|
+
);
|
|
99
|
+
return {
|
|
100
|
+
providerName: providerTrans?.provider_name || provider?.provider_title || "",
|
|
101
|
+
providerDescription: providerTrans?.provider_description || provider?.provider_description || "",
|
|
102
|
+
sourceName: sourceTrans?.source_name || source?.source_title || "",
|
|
103
|
+
sourceDescription: sourceTrans?.source_description || source?.source_description || ""
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function findProviderAndSource(uuid) {
|
|
107
|
+
const provider = sourceResults.value.find(
|
|
108
|
+
(x) => x?.provider_uuid === uuid || x?.sources?.some((y) => y?.source_uuid === uuid)
|
|
109
|
+
);
|
|
110
|
+
const source = provider?.sources?.find(
|
|
111
|
+
(x) => x?.source_uuid === uuid
|
|
112
|
+
);
|
|
113
|
+
return { provider, source };
|
|
114
|
+
}
|
|
115
|
+
function constructTitle(uuid) {
|
|
116
|
+
const { provider, source } = findProviderAndSource(uuid);
|
|
117
|
+
const translated = getTranslated(provider, source);
|
|
118
|
+
return `${translated.providerName} - ${translated.sourceName}`;
|
|
119
|
+
}
|
|
120
|
+
function getDescriptions(uuid) {
|
|
121
|
+
const { provider, source } = findProviderAndSource(uuid);
|
|
122
|
+
const translated = getTranslated(provider, source);
|
|
123
|
+
return {
|
|
124
|
+
provider: translated.providerDescription,
|
|
125
|
+
source: translated.sourceDescription
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
const dateLocale = computed(() => {
|
|
129
|
+
const map = {
|
|
130
|
+
fr: "fr-FR",
|
|
131
|
+
en: "en-GB",
|
|
132
|
+
es: "es-ES",
|
|
133
|
+
jp: "ja-JP",
|
|
134
|
+
kr: "ko-KR"
|
|
135
|
+
};
|
|
136
|
+
return map[props.lang] || "en-GB";
|
|
137
|
+
});
|
|
138
|
+
const labels = computed(() => {
|
|
139
|
+
const isEn = props.lang === "en";
|
|
140
|
+
return {
|
|
141
|
+
lastUpdate: isEn ? "Last Update" : "Derni\xE8re mise \xE0 jour",
|
|
142
|
+
frequency: isEn ? "Update Frequency" : "Fr\xE9quence de mise \xE0 jour",
|
|
143
|
+
aboutProvider: isEn ? "About the provider" : "\xC0 propos du fournisseur",
|
|
144
|
+
aboutSource: isEn ? "About the source" : "\xC0 propos de la source"
|
|
145
|
+
};
|
|
146
|
+
});
|
|
147
|
+
function getLastUpdate(uuid) {
|
|
148
|
+
const { provider, source } = findProviderAndSource(uuid);
|
|
149
|
+
const dateOpts = {
|
|
150
|
+
day: "numeric",
|
|
151
|
+
month: "long",
|
|
152
|
+
year: "numeric"
|
|
153
|
+
};
|
|
154
|
+
return {
|
|
155
|
+
update: source?.last_download_date ? new Date(source.last_download_date).toLocaleDateString(
|
|
156
|
+
dateLocale.value,
|
|
157
|
+
dateOpts
|
|
158
|
+
) : provider?.date_updated ? new Date(provider.date_updated).toLocaleDateString(
|
|
159
|
+
dateLocale.value,
|
|
160
|
+
dateOpts
|
|
161
|
+
) : "-",
|
|
162
|
+
visit: source?.source_last_visit ? new Date(source.source_last_visit).toLocaleDateString(
|
|
163
|
+
dateLocale.value,
|
|
164
|
+
dateOpts
|
|
165
|
+
) : "-",
|
|
166
|
+
frequency: source?.update_frequency ?? "-"
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
async function queryDirectus() {
|
|
170
|
+
const uuids = Array.isArray(props.uuids) ? props.uuids : [];
|
|
171
|
+
const uuidsLiteral = uuids.map((u) => `"${u}"`).join(", ");
|
|
172
|
+
const graphqlQuery = `
|
|
173
|
+
query {
|
|
174
|
+
${props.collection}(
|
|
175
|
+
filter: {
|
|
176
|
+
_or: [
|
|
177
|
+
{ provider_uuid: { _in: [${uuidsLiteral}] } },
|
|
178
|
+
{ sources: { source_uuid: { _in: [${uuidsLiteral}] } } }
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
) {
|
|
182
|
+
provider_uuid
|
|
183
|
+
provider_country
|
|
184
|
+
date_updated
|
|
185
|
+
translations {
|
|
186
|
+
provider_name
|
|
187
|
+
provider_description
|
|
188
|
+
languages_code {
|
|
189
|
+
code
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
sources {
|
|
193
|
+
source_uuid
|
|
194
|
+
last_download_date
|
|
195
|
+
source_last_visit
|
|
196
|
+
update_frequency
|
|
197
|
+
translations {
|
|
198
|
+
source_name
|
|
199
|
+
source_description
|
|
200
|
+
languages_code {
|
|
201
|
+
code
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
`;
|
|
208
|
+
try {
|
|
209
|
+
const response = await fetch(resolvedUrl.value, {
|
|
210
|
+
method: "POST",
|
|
211
|
+
headers: {
|
|
212
|
+
Authorization: `Bearer ${resolvedToken.value}`,
|
|
213
|
+
"Content-Type": "application/json"
|
|
214
|
+
},
|
|
215
|
+
body: JSON.stringify({ query: graphqlQuery })
|
|
216
|
+
});
|
|
217
|
+
if (!response.ok) {
|
|
218
|
+
const errorText = await response.text();
|
|
219
|
+
console.log(`Error: ${response.status}. ${errorText}`);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const responseData = await response.json();
|
|
223
|
+
const items = responseData?.data?.[props.collection] ?? [];
|
|
224
|
+
sourceResults.value = items;
|
|
225
|
+
emit("updateSources", sourceResults.value);
|
|
226
|
+
} catch (err) {
|
|
227
|
+
console.log(`Request failed: ${err.message}`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
async function runQuery() {
|
|
231
|
+
if (!resolvedToken.value) {
|
|
232
|
+
throw new Error(
|
|
233
|
+
"Missing Directus token. Pass `directus-token` as a prop or set NUXT_PUBLIC_AURIGA_DIRECTUS_TOKEN in your .env."
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
isLoadingQuery.value = true;
|
|
237
|
+
await queryDirectus();
|
|
238
|
+
isLoadingQuery.value = false;
|
|
239
|
+
reloadKey.value += 1;
|
|
240
|
+
}
|
|
241
|
+
onMounted(runQuery);
|
|
242
|
+
watch(
|
|
243
|
+
() => props.uuids,
|
|
244
|
+
async () => {
|
|
245
|
+
await runQuery();
|
|
246
|
+
}
|
|
247
|
+
);
|
|
248
|
+
return {
|
|
249
|
+
sourceResults,
|
|
250
|
+
constructTitle,
|
|
251
|
+
getDescriptions,
|
|
252
|
+
getLastUpdate,
|
|
253
|
+
findProviderAndSource,
|
|
254
|
+
isLoadingQuery,
|
|
255
|
+
reorderedUuids,
|
|
256
|
+
reloadKey,
|
|
257
|
+
labels
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
</script>
|
|
262
|
+
|
|
263
|
+
<style scoped>
|
|
264
|
+
.small_heading{font-size:14px;font-weight:800;text-decoration:underline}.oneLoader{background:var(--white);border:1px solid var(--light);border-radius:8px;overflow:hidden;position:relative}.oneLoader,.oneLoader:after{height:70px;width:calc(100% - 2px)}.oneLoader:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,rgba(219,222,240,0),rgba(219,222,240,.6) 50%,rgba(219,222,240,0));content:"";left:-2px;position:absolute;top:0}@keyframes shimmer{0%{left:-100%}to{left:100%}}
|
|
265
|
+
</style>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
uuids: {
|
|
3
|
+
type: () => string[];
|
|
4
|
+
default: () => never[];
|
|
5
|
+
};
|
|
6
|
+
collection: {
|
|
7
|
+
type: StringConstructor;
|
|
8
|
+
default: string;
|
|
9
|
+
};
|
|
10
|
+
directusUrl: {
|
|
11
|
+
type: StringConstructor;
|
|
12
|
+
default: null;
|
|
13
|
+
};
|
|
14
|
+
directusToken: {
|
|
15
|
+
type: StringConstructor;
|
|
16
|
+
default: null;
|
|
17
|
+
};
|
|
18
|
+
showCountry: {
|
|
19
|
+
type: BooleanConstructor;
|
|
20
|
+
default: boolean;
|
|
21
|
+
};
|
|
22
|
+
sourceToOpen: {
|
|
23
|
+
type: StringConstructor;
|
|
24
|
+
default: null;
|
|
25
|
+
};
|
|
26
|
+
lang: {
|
|
27
|
+
type: StringConstructor;
|
|
28
|
+
default: string;
|
|
29
|
+
};
|
|
30
|
+
}>, {
|
|
31
|
+
sourceResults: import("vue").Ref<any[], any[]>;
|
|
32
|
+
constructTitle: (uuid: string) => string;
|
|
33
|
+
getDescriptions: (uuid: string) => {
|
|
34
|
+
provider: any;
|
|
35
|
+
source: any;
|
|
36
|
+
};
|
|
37
|
+
getLastUpdate: (uuid: string) => {
|
|
38
|
+
update: string;
|
|
39
|
+
visit: string;
|
|
40
|
+
frequency: any;
|
|
41
|
+
};
|
|
42
|
+
findProviderAndSource: (uuid: string) => {
|
|
43
|
+
provider: any;
|
|
44
|
+
source: any;
|
|
45
|
+
};
|
|
46
|
+
isLoadingQuery: import("vue").Ref<boolean, boolean>;
|
|
47
|
+
reorderedUuids: import("vue").ComputedRef<string[]>;
|
|
48
|
+
reloadKey: import("vue").Ref<number, number>;
|
|
49
|
+
labels: import("vue").ComputedRef<{
|
|
50
|
+
lastUpdate: string;
|
|
51
|
+
frequency: string;
|
|
52
|
+
aboutProvider: string;
|
|
53
|
+
aboutSource: string;
|
|
54
|
+
}>;
|
|
55
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "updateSources"[], "updateSources", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
56
|
+
uuids: {
|
|
57
|
+
type: () => string[];
|
|
58
|
+
default: () => never[];
|
|
59
|
+
};
|
|
60
|
+
collection: {
|
|
61
|
+
type: StringConstructor;
|
|
62
|
+
default: string;
|
|
63
|
+
};
|
|
64
|
+
directusUrl: {
|
|
65
|
+
type: StringConstructor;
|
|
66
|
+
default: null;
|
|
67
|
+
};
|
|
68
|
+
directusToken: {
|
|
69
|
+
type: StringConstructor;
|
|
70
|
+
default: null;
|
|
71
|
+
};
|
|
72
|
+
showCountry: {
|
|
73
|
+
type: BooleanConstructor;
|
|
74
|
+
default: boolean;
|
|
75
|
+
};
|
|
76
|
+
sourceToOpen: {
|
|
77
|
+
type: StringConstructor;
|
|
78
|
+
default: null;
|
|
79
|
+
};
|
|
80
|
+
lang: {
|
|
81
|
+
type: StringConstructor;
|
|
82
|
+
default: string;
|
|
83
|
+
};
|
|
84
|
+
}>> & Readonly<{
|
|
85
|
+
onUpdateSources?: ((...args: any[]) => any) | undefined;
|
|
86
|
+
}>, {
|
|
87
|
+
lang: string;
|
|
88
|
+
uuids: string[];
|
|
89
|
+
collection: string;
|
|
90
|
+
directusUrl: string;
|
|
91
|
+
directusToken: string;
|
|
92
|
+
showCountry: boolean;
|
|
93
|
+
sourceToOpen: string;
|
|
94
|
+
}, {}, {
|
|
95
|
+
ArgSourceCollapse: any;
|
|
96
|
+
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
97
|
+
export default _default;
|
|
@@ -0,0 +1,240 @@
|
|
|
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 v-if="source !== null" @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="109.9 -2 740.2 964"
|
|
44
|
+
fill="none"
|
|
45
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
46
|
+
>
|
|
47
|
+
<OneRegionIt
|
|
48
|
+
v-for="region in RegionsIt"
|
|
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="reverseColors ? 'reverse_scale' : '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 { RegionsIt } from "./maps/interfaces";
|
|
77
|
+
import ArgSourceContainer from "./argSourceContainer.vue";
|
|
78
|
+
import OneRegionIt from "./oneRegionIt.vue";
|
|
79
|
+
export default defineComponent({
|
|
80
|
+
name: "argMapsItaly",
|
|
81
|
+
components: { OneRegionIt, 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
|
+
reverseColors: {
|
|
113
|
+
type: Boolean,
|
|
114
|
+
default: false
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
emits: ["openSource"],
|
|
118
|
+
setup(props, { emit }) {
|
|
119
|
+
const minimalValue = ref(null);
|
|
120
|
+
const maximalValue = ref(null);
|
|
121
|
+
const hoveredRegion = ref(null);
|
|
122
|
+
const tooltipPosition = ref({ x: 0, y: 0, width: 0 });
|
|
123
|
+
const scale = ref([]);
|
|
124
|
+
function getColor(value) {
|
|
125
|
+
if (!value) return "var(--lightest)";
|
|
126
|
+
if (props.reverseColors ? value <= scale.value[0] : value >= scale.value[9]) {
|
|
127
|
+
return "#3F1151";
|
|
128
|
+
} else if (props.reverseColors ? value <= scale.value[1] : value >= scale.value[8]) {
|
|
129
|
+
return "#432974";
|
|
130
|
+
} else if (props.reverseColors ? value <= scale.value[2] : value >= scale.value[7]) {
|
|
131
|
+
return "#404A85";
|
|
132
|
+
} else if (props.reverseColors ? value <= scale.value[3] : value >= scale.value[6]) {
|
|
133
|
+
return "#3F668A";
|
|
134
|
+
} else if (props.reverseColors ? value <= scale.value[4] : value >= scale.value[5]) {
|
|
135
|
+
return "#43808C";
|
|
136
|
+
} else if (props.reverseColors ? value <= scale.value[5] : value >= scale.value[4]) {
|
|
137
|
+
return "#4C9C8A";
|
|
138
|
+
} else if (props.reverseColors ? value <= scale.value[6] : value >= scale.value[3]) {
|
|
139
|
+
return "#5FB57E";
|
|
140
|
+
} else if (props.reverseColors ? value <= scale.value[7] : value >= scale.value[2]) {
|
|
141
|
+
return "#85CB68";
|
|
142
|
+
} else if (props.reverseColors ? value <= scale.value[8] : value >= scale.value[1]) {
|
|
143
|
+
return "#BDDD51";
|
|
144
|
+
} else if (props.reverseColors ? value > scale.value[8] : value >= scale.value[0]) {
|
|
145
|
+
return "#F9E855";
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function handleHover(region) {
|
|
149
|
+
hoveredRegion.value = region;
|
|
150
|
+
}
|
|
151
|
+
function handleMouseLeave() {
|
|
152
|
+
hoveredRegion.value = null;
|
|
153
|
+
}
|
|
154
|
+
function openSource() {
|
|
155
|
+
emit("openSource");
|
|
156
|
+
}
|
|
157
|
+
function setupScale() {
|
|
158
|
+
minimalValue.value = Math.floor(
|
|
159
|
+
Math.min(
|
|
160
|
+
...props.data.filter((f) => f.value !== null).map((x) => x.value)
|
|
161
|
+
)
|
|
162
|
+
);
|
|
163
|
+
maximalValue.value = Math.ceil(
|
|
164
|
+
Math.max(
|
|
165
|
+
...props.data.filter((f) => f.value !== null).map((x) => x.value)
|
|
166
|
+
)
|
|
167
|
+
);
|
|
168
|
+
const step = (maximalValue.value - minimalValue.value) / 10;
|
|
169
|
+
if (minimalValue.value !== null) {
|
|
170
|
+
scale.value = Array.from(
|
|
171
|
+
{ length: 10 },
|
|
172
|
+
(_, i) => (minimalValue.value !== null ? minimalValue.value : 0) + i * step
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
onMounted(() => {
|
|
177
|
+
setupScale();
|
|
178
|
+
});
|
|
179
|
+
watch(
|
|
180
|
+
() => props.data,
|
|
181
|
+
() => {
|
|
182
|
+
setupScale();
|
|
183
|
+
}
|
|
184
|
+
);
|
|
185
|
+
watch(
|
|
186
|
+
() => hoveredRegion.value,
|
|
187
|
+
() => {
|
|
188
|
+
if (hoveredRegion.value) {
|
|
189
|
+
const selectedRegion = document.getElementById(
|
|
190
|
+
`interactiveMap-${props.title}-${hoveredRegion.value}`
|
|
191
|
+
)?.getBoundingClientRect();
|
|
192
|
+
const containerPosition = document.getElementById(`container_map-${props.title}-${props.uniqueID}`)?.getBoundingClientRect();
|
|
193
|
+
if (!selectedRegion || !containerPosition) return;
|
|
194
|
+
tooltipPosition.value = {
|
|
195
|
+
x: selectedRegion?.x - containerPosition?.x,
|
|
196
|
+
y: selectedRegion?.top - containerPosition?.top - 60,
|
|
197
|
+
width: selectedRegion?.width
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
);
|
|
202
|
+
watch(
|
|
203
|
+
() => hoveredRegion.value,
|
|
204
|
+
async () => {
|
|
205
|
+
if (hoveredRegion.value) {
|
|
206
|
+
await nextTick();
|
|
207
|
+
const selectedRegion = document.getElementById(
|
|
208
|
+
`interactiveMap-${props.title}-${hoveredRegion.value}`
|
|
209
|
+
)?.getBoundingClientRect();
|
|
210
|
+
const containerPosition = document.getElementById(`container_map-${props.title}`)?.getBoundingClientRect();
|
|
211
|
+
const tooltipElement = document.getElementById(
|
|
212
|
+
`tooltip_map-${props.title}`
|
|
213
|
+
);
|
|
214
|
+
const tooltipHeight = tooltipElement ? tooltipElement.getBoundingClientRect().height : 60;
|
|
215
|
+
if (!selectedRegion || !containerPosition) return;
|
|
216
|
+
tooltipPosition.value = {
|
|
217
|
+
x: selectedRegion?.x - containerPosition?.x,
|
|
218
|
+
y: selectedRegion?.top - containerPosition?.top - tooltipHeight,
|
|
219
|
+
width: selectedRegion?.width
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
);
|
|
224
|
+
return {
|
|
225
|
+
getColor,
|
|
226
|
+
handleHover,
|
|
227
|
+
handleMouseLeave,
|
|
228
|
+
RegionsIt,
|
|
229
|
+
hoveredRegion,
|
|
230
|
+
tooltipPosition,
|
|
231
|
+
scale,
|
|
232
|
+
openSource
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
</script>
|
|
237
|
+
|
|
238
|
+
<style scoped>
|
|
239
|
+
.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)}.reverse_scale,.scale{height:10px;transform:rotate(180deg)}.reverse_scale{background:linear-gradient(45deg,#f9e855,#bddd51,#85cb68,#5fb57e,#4c9c8a,#43808c,#3f668a,#404a85,#432974,#3f1151)}.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}
|
|
240
|
+
</style>
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { PropType } from "vue";
|
|
2
|
+
import { RegionsIt } from "./maps/interfaces";
|
|
3
|
+
type dataRegion = {
|
|
4
|
+
name: RegionsIt;
|
|
5
|
+
value: number;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
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
|
+
reverseColors: {
|
|
38
|
+
type: BooleanConstructor;
|
|
39
|
+
default: boolean;
|
|
40
|
+
};
|
|
41
|
+
}>, {
|
|
42
|
+
getColor: (value?: number) => "var(--lightest)" | "#3F1151" | "#432974" | "#404A85" | "#3F668A" | "#43808C" | "#4C9C8A" | "#5FB57E" | "#85CB68" | "#BDDD51" | "#F9E855" | undefined;
|
|
43
|
+
handleHover: (region: RegionsIt) => void;
|
|
44
|
+
handleMouseLeave: () => void;
|
|
45
|
+
RegionsIt: typeof RegionsIt;
|
|
46
|
+
hoveredRegion: import("vue").Ref<RegionsIt | null, RegionsIt | null>;
|
|
47
|
+
tooltipPosition: import("vue").Ref<{
|
|
48
|
+
x: number;
|
|
49
|
+
y: number;
|
|
50
|
+
width: number;
|
|
51
|
+
}, {
|
|
52
|
+
x: number;
|
|
53
|
+
y: number;
|
|
54
|
+
width: number;
|
|
55
|
+
} | {
|
|
56
|
+
x: number;
|
|
57
|
+
y: number;
|
|
58
|
+
width: number;
|
|
59
|
+
}>;
|
|
60
|
+
scale: import("vue").Ref<number[], number[]>;
|
|
61
|
+
openSource: () => void;
|
|
62
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "openSource"[], "openSource", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
63
|
+
data: {
|
|
64
|
+
type: PropType<dataRegion[]>;
|
|
65
|
+
default: null;
|
|
66
|
+
required: true;
|
|
67
|
+
};
|
|
68
|
+
title: {
|
|
69
|
+
type: PropType<string | null>;
|
|
70
|
+
default: null;
|
|
71
|
+
required: false;
|
|
72
|
+
};
|
|
73
|
+
source: {
|
|
74
|
+
type: PropType<string | null>;
|
|
75
|
+
default: null;
|
|
76
|
+
};
|
|
77
|
+
haveCustomTitle: {
|
|
78
|
+
type: PropType<string | null>;
|
|
79
|
+
default: null;
|
|
80
|
+
required: false;
|
|
81
|
+
};
|
|
82
|
+
uniqueID: {
|
|
83
|
+
type: PropType<string | null>;
|
|
84
|
+
default: null;
|
|
85
|
+
required: false;
|
|
86
|
+
};
|
|
87
|
+
lang: {
|
|
88
|
+
type: StringConstructor;
|
|
89
|
+
default: string;
|
|
90
|
+
required: false;
|
|
91
|
+
};
|
|
92
|
+
reverseColors: {
|
|
93
|
+
type: BooleanConstructor;
|
|
94
|
+
default: boolean;
|
|
95
|
+
};
|
|
96
|
+
}>> & Readonly<{
|
|
97
|
+
onOpenSource?: ((...args: any[]) => any) | undefined;
|
|
98
|
+
}>, {
|
|
99
|
+
data: dataRegion[];
|
|
100
|
+
lang: string;
|
|
101
|
+
source: string | null;
|
|
102
|
+
title: string | null;
|
|
103
|
+
haveCustomTitle: string | null;
|
|
104
|
+
uniqueID: string | null;
|
|
105
|
+
reverseColors: boolean;
|
|
106
|
+
}, {}, {
|
|
107
|
+
OneRegionIt: any;
|
|
108
|
+
ArgSourceContainer: any;
|
|
109
|
+
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
110
|
+
export default _default;
|
|
@@ -97,12 +97,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
97
97
|
onCopyTitle?: ((...args: any[]) => any) | undefined;
|
|
98
98
|
}>, {
|
|
99
99
|
lang: string;
|
|
100
|
+
directusToken: string;
|
|
100
101
|
sourceTitle: string;
|
|
101
102
|
sourceCountry: string;
|
|
102
103
|
sourceSector: string;
|
|
103
104
|
defaultOpen: boolean;
|
|
104
105
|
withoutCountry: boolean;
|
|
105
|
-
directusToken: string;
|
|
106
106
|
providerId: string;
|
|
107
107
|
sourceId: string;
|
|
108
108
|
}, {}, {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
>
|
|
25
25
|
<div class="oip_list gap-24">
|
|
26
26
|
<div class="oip_row v-center gap-24">
|
|
27
|
-
<div>
|
|
27
|
+
<div v-if="getLastUpdate(uuid)?.update">
|
|
28
28
|
<p class="oip_filter_label">{{ labels.lastUpdate }} :</p>
|
|
29
29
|
{{ getLastUpdate(uuid)?.update }}
|
|
30
30
|
</div>
|
|
@@ -133,7 +133,7 @@ export default defineComponent({
|
|
|
133
133
|
const { provider, source } = findProviderAndSource(uuid);
|
|
134
134
|
const dateOpts = { day: "numeric", month: "long", year: "numeric" };
|
|
135
135
|
return {
|
|
136
|
-
update: source?.last_download_date ? new Date(source?.last_download_date)?.toLocaleDateString(dateLocale.value, dateOpts) :
|
|
136
|
+
update: source?.last_download_date ? new Date(source?.last_download_date)?.toLocaleDateString(dateLocale.value, dateOpts) : null,
|
|
137
137
|
visit: source?.source_last_visit ? new Date(source?.source_last_visit)?.toLocaleDateString(dateLocale.value, dateOpts) : "-",
|
|
138
138
|
frequency: source?.update_frequency ?? "-"
|
|
139
139
|
};
|
|
@@ -54,6 +54,28 @@ export declare enum RegionsDe {
|
|
|
54
54
|
SchleswigHolstein = "Schleswig-Holstein",
|
|
55
55
|
Thuringia = "Thuringia"
|
|
56
56
|
}
|
|
57
|
+
export declare enum RegionsIt {
|
|
58
|
+
Piemonte = "Piemonte",
|
|
59
|
+
ValleDAosta = "Valle d'Aosta",
|
|
60
|
+
Lombardia = "Lombardia",
|
|
61
|
+
TrentinoAltoAdige = "Trentino-Alto Adige",
|
|
62
|
+
Veneto = "Veneto",
|
|
63
|
+
FriuliVeneziaGiulia = "Friuli-Venezia Giulia",
|
|
64
|
+
Liguria = "Liguria",
|
|
65
|
+
EmiliaRomagna = "Emilia-Romagna",
|
|
66
|
+
Toscana = "Toscana",
|
|
67
|
+
Umbria = "Umbria",
|
|
68
|
+
Marche = "Marche",
|
|
69
|
+
Lazio = "Lazio",
|
|
70
|
+
Abruzzo = "Abruzzo",
|
|
71
|
+
Molise = "Molise",
|
|
72
|
+
Campania = "Campania",
|
|
73
|
+
Puglia = "Puglia",
|
|
74
|
+
Basilicata = "Basilicata",
|
|
75
|
+
Calabria = "Calabria",
|
|
76
|
+
Sicilia = "Sicilia",
|
|
77
|
+
Sardegna = "Sardegna"
|
|
78
|
+
}
|
|
57
79
|
export declare enum RegionsNo {
|
|
58
80
|
Akershus = "Akershus",
|
|
59
81
|
AustAgder = "Aust-Agder",
|
|
@@ -57,6 +57,29 @@ export var RegionsDe = /* @__PURE__ */ ((RegionsDe2) => {
|
|
|
57
57
|
RegionsDe2["Thuringia"] = "Thuringia";
|
|
58
58
|
return RegionsDe2;
|
|
59
59
|
})(RegionsDe || {});
|
|
60
|
+
export var RegionsIt = /* @__PURE__ */ ((RegionsIt2) => {
|
|
61
|
+
RegionsIt2["Piemonte"] = "Piemonte";
|
|
62
|
+
RegionsIt2["ValleDAosta"] = "Valle d'Aosta";
|
|
63
|
+
RegionsIt2["Lombardia"] = "Lombardia";
|
|
64
|
+
RegionsIt2["TrentinoAltoAdige"] = "Trentino-Alto Adige";
|
|
65
|
+
RegionsIt2["Veneto"] = "Veneto";
|
|
66
|
+
RegionsIt2["FriuliVeneziaGiulia"] = "Friuli-Venezia Giulia";
|
|
67
|
+
RegionsIt2["Liguria"] = "Liguria";
|
|
68
|
+
RegionsIt2["EmiliaRomagna"] = "Emilia-Romagna";
|
|
69
|
+
RegionsIt2["Toscana"] = "Toscana";
|
|
70
|
+
RegionsIt2["Umbria"] = "Umbria";
|
|
71
|
+
RegionsIt2["Marche"] = "Marche";
|
|
72
|
+
RegionsIt2["Lazio"] = "Lazio";
|
|
73
|
+
RegionsIt2["Abruzzo"] = "Abruzzo";
|
|
74
|
+
RegionsIt2["Molise"] = "Molise";
|
|
75
|
+
RegionsIt2["Campania"] = "Campania";
|
|
76
|
+
RegionsIt2["Puglia"] = "Puglia";
|
|
77
|
+
RegionsIt2["Basilicata"] = "Basilicata";
|
|
78
|
+
RegionsIt2["Calabria"] = "Calabria";
|
|
79
|
+
RegionsIt2["Sicilia"] = "Sicilia";
|
|
80
|
+
RegionsIt2["Sardegna"] = "Sardegna";
|
|
81
|
+
return RegionsIt2;
|
|
82
|
+
})(RegionsIt || {});
|
|
60
83
|
export var RegionsNo = /* @__PURE__ */ ((RegionsNo2) => {
|
|
61
84
|
RegionsNo2["Akershus"] = "Akershus";
|
|
62
85
|
RegionsNo2["AustAgder"] = "Aust-Agder";
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Piemonte": {
|
|
3
|
+
"path": "M241.36,89.14L240.6,91.09L241.82,96.6L232.1,107.22L233.65,113.22L231.14,116.07L231.07,117.88L233.51,122.51L237.19,123.61L236.52,126.83L238.52,128.53L239.5,130.76L238.05,131.91L240.38,133.9L239.85,135.97L241.4,141.92L245.64,144.11L247.03,148.84L248.1,148.77L249.23,152.15L246.65,153.46L244.75,152.94L243.34,153.9L244.13,156.37L241.86,157.82L241.18,160.37L238.08,161.21L237.49,158.12L236.13,156.12L232.78,156.26L231.35,155.05L229.54,156.72L230.26,158.89L228.63,159.44L227.75,161.25L230.18,162.51L231.35,165.73L229.38,167.45L230.88,168.87L230.51,171.81L232.9,173.54L234.54,177.29L236.26,178.86L236.6,183.13L240.61,185.45L243,184.53L247.04,184.49L249,182.53L252.51,182.25L252.86,186.13L254.42,188.26L256.01,187.51L257.45,189.61L257.16,191.7L259.03,194.79L261.06,196.59L262.29,196.45L263.17,198.86L262.03,200.08L265.58,203.75L268.86,202.84L269.43,206.39L272.17,208.42L271.42,210.84L271.87,214.29L271.3,220.22L271.38,221.98L267.13,223.76L265.17,222.3L265.23,220.5L263.46,219.47L261.73,219.83L259.8,215.67L257.04,215.97L256.17,214.74L254.23,215.02L253.46,217.03L251.57,218.56L253.31,220.45L253.67,224.96L251.94,225.9L250.88,224.47L248.13,224.82L248.16,226.61L246.06,228.38L246.5,230.17L244.96,230.74L244.5,228.07L241.65,223.46L235.41,222.93L233.92,225.27L234.88,226.37L231.57,230.04L230.36,229.14L226.49,229.29L224.7,230.32L221.96,229.51L221.28,232.18L219.7,233.04L215.98,229.88L213.75,229.65L212.56,227.8L210.69,229.31L210.74,231.61L209.07,232.15L210.73,236.12L209.83,238.46L205.98,240.6L206.26,243.01L205.07,244.97L203.52,244.78L203.16,247.41L201.4,246.62L200.88,248.49L202.42,250.08L200.91,251.58L201.95,252.91L201.06,254.97L202.82,256.52L202.88,258.87L201.45,260.74L199.74,261.33L197.89,260.1L195.67,261.94L197.26,262.68L197.4,264.63L195.03,263.79L193.06,264.85L182.19,261.37L179.85,262.67L179.28,264.54L180.39,266.28L179.13,267.95L179.2,266.15L176.26,262.16L177.33,258.39L174.34,258.27L173.29,260.58L169.78,260L163.52,262.66L161.65,262.24L157.07,263.52L156.21,260.88L152.27,261.34L150.07,258.66L148.47,258.93L146.6,256.12L143.86,256.21L140.18,253.71L136.95,254.19L135.42,253.15L134.67,249.31L132.32,247.94L132.54,246.7L130.51,244.82L130.24,243.2L128.04,242.19L128.37,237.07L131.82,236.39L127.46,231.99L126.11,227.59L127.48,225.53L129.41,225.32L130.83,223.92L131.9,220.07L131.83,217.06L132.69,214.96L134.25,213.78L139.78,214.13L139.21,211.84L136.97,210.53L136.3,206.62L135.03,205.22L136.43,202.23L135.39,200.85L131.06,198.85L129.49,200.43L126.6,199.87L122.88,197.34L122.68,196.25L119.63,195.06L120.47,190.25L118.78,187.6L119.21,185.53L114.83,185.04L114.07,180.49L112.96,180.18L111.9,177.53L114.78,175.73L115.25,174.42L119.09,174.64L120.67,172.75L125.59,174.83L128.43,174.76L128.45,171.97L131.7,171.85L132.2,170.02L135.11,167.45L138.15,166.82L139.32,168.18L141.91,165L142.79,165.13L143.43,161.93L141.9,157.97L143.57,155.88L145.17,155.04L145.18,153.27L146.67,151.08L142.17,148.65L141.42,145.68L143.55,141.37L145.08,144L148.78,145.3L151.66,141.65L155.04,141.56L157.31,140.48L158.47,141.3L162.76,137.85L163.88,135.96L167.59,136.05L170.1,134.68L172.54,136.2L174.39,136.45L176.77,138.03L179.57,137.57L180.39,138.3L186.3,134.1L189.49,133.86L190.71,134.64L191.59,130.97L193.03,130.67L190.84,126.16L192.84,122.73L192.41,121.27L190.45,120.54L188.39,116.79L189.24,110.67L188.39,105.75L189.26,104.92L189.38,100.52L191.15,98.62L196.16,98.76L197.51,97.33L197.65,95.5L199.06,94.49L198.24,91.94L198.89,89.52L203.38,88.47L204.07,86.73L206.37,85.53L207.17,82.34L205.53,78.36L203.74,76.17L201.68,75.21L205.54,71.36L207.28,71.9L209.93,70.84L210.83,68.5L213.14,67.47L213.18,65.84L216.06,64.65L216.63,62.82L214.87,61.97L219.42,58.06L224.14,56.78L226.01,58.68L225.26,60.52L226.15,62.91L225.71,68.65L223.36,71.74L225.17,74.76L224.38,76.18L226.09,77.72L229.77,78.94L232.43,83.77L234.22,84.54L234.76,87.49L236.95,87.42L239.39,89.3Z"
|
|
4
|
+
},
|
|
5
|
+
"Valle d'Aosta": {
|
|
6
|
+
"path": "M188.39,105.75L189.24,110.67L188.39,116.79L190.45,120.54L192.41,121.27L192.84,122.73L190.84,126.16L193.03,130.67L191.59,130.97L190.71,134.64L189.49,133.86L186.3,134.1L180.39,138.3L179.57,137.57L176.77,138.03L174.39,136.45L172.54,136.2L170.1,134.68L167.59,136.05L163.88,135.96L162.76,137.85L158.47,141.3L157.31,140.48L155.04,141.56L151.66,141.65L148.78,145.3L145.08,144L143.55,141.37L141.42,145.68L138.12,145.21L138.46,143.23L135.09,142.31L134.8,136.18L133.66,134.97L135.07,130.38L132.98,129.11L129.83,129.33L129.2,127.57L126.24,126.45L123.2,122.93L123.64,121.48L122.73,117.9L123.95,112.88L126.58,113.25L127.47,111.81L129.63,112.55L132.07,110.74L134.86,109.75L135.24,107.26L137.73,105.15L141.54,110.97L144.65,109.09L146.9,110.91L148.39,108.35L150.96,108.29L153.18,105.35L158.87,107.58L164.25,104.18L165.83,101.72L168.51,102.22L168.88,99.64L170.78,99.56L171.48,100.97L176.09,100.32L177.19,102.11L178.79,102.77L179.56,105.1L181.49,103.71L184.47,105.66L185.89,104.87Z"
|
|
7
|
+
},
|
|
8
|
+
"Lombardia": {
|
|
9
|
+
"path": "M349.01,50.75L350.39,54.02L354.94,54.38L358.13,56.53L359.37,58.17L359.09,60.83L360.11,62.51L358.31,64.4L355.93,64.54L352.81,67.62L356,69.16L356.72,71.6L357.25,76.3L354.5,81.33L355.79,83.26L354.66,88.62L350.64,93.55L351.07,95.85L349.63,97L349,100.43L351.11,100.82L350.91,103.28L352.48,105.69L351.38,108.23L352.01,113.46L354.72,114.61L353.88,116.3L355.98,117.51L358.57,115.89L360.96,115.81L361.53,113.21L366.38,112.23L373.17,113.31L359.78,133.29L361.15,147.53L362.51,149.17L365.49,150.54L363.92,155.74L365.12,157.54L364.3,159.86L366.71,161.52L369.62,159.09L371.99,161.42L373.34,164.27L376.53,164.99L378.87,166.39L378.75,167.97L382.21,169.54L383.17,171.02L382.71,173.09L385.7,173.37L384.55,175.64L387.34,178L390.73,177.62L391.85,175.59L395.47,176.95L393.94,178.19L393.72,181.37L397.5,182.77L399.22,181.74L399.22,184.72L408.86,189.91L409.13,191.17L401.61,190.05L399.6,191.98L397.38,191.51L392.68,191.88L390.55,190.8L387.35,190.02L386.22,190.97L382.46,190.66L377.74,193.23L374.6,193.82L372.54,192.15L367.21,191.29L366.04,187.51L363.86,190.02L363.33,188.06L359.88,193.05L358.13,194.08L353.36,194.29L347.84,191.58L346.07,188.04L343.11,189.66L339.69,186.91L337.75,186.86L334.13,183.99L331.45,184.07L330.81,182.94L326.79,184.84L325.83,182.73L322.11,180.19L322.64,178.39L320.37,175.42L319.3,175.31L315.82,177.99L316.28,175.33L315.39,174.6L313.22,176.37L314.59,178.3L313.29,180.18L312.07,178.38L310.85,178.34L309.29,179.98L305.91,178.61L303.35,181.55L298.31,179.39L298.49,176.36L295.06,177.81L293.12,175.21L293.01,178.66L291.64,179.91L289.75,177.66L286.33,178.53L282.11,182.33L282.25,184.98L280.28,187.1L278.63,192L275.84,195.73L277.96,197.68L280.01,198.19L281.29,202.13L276.64,206.83L277.01,208.17L279.11,209.29L278.22,212.03L279.08,213.72L275.18,214.75L271.87,214.29L271.42,210.84L272.17,208.42L269.43,206.39L268.86,202.84L265.58,203.75L262.03,200.08L263.17,198.86L262.29,196.45L261.06,196.59L259.03,194.79L257.16,191.7L257.45,189.61L256.01,187.51L254.42,188.26L252.86,186.13L252.51,182.25L249,182.53L247.04,184.49L243,184.53L240.61,185.45L236.6,183.13L236.26,178.86L234.54,177.29L232.9,173.54L230.51,171.81L230.88,168.87L229.38,167.45L231.35,165.73L230.18,162.51L227.75,161.25L228.63,159.44L230.26,158.89L229.54,156.72L231.35,155.05L232.78,156.26L236.13,156.12L237.49,158.12L238.08,161.21L241.18,160.37L241.86,157.82L244.13,156.37L243.34,153.9L244.75,152.94L246.65,153.46L249.23,152.15L248.1,148.77L247.03,148.84L245.64,144.11L241.4,141.92L239.85,135.97L240.38,133.9L238.05,131.91L239.5,130.76L238.52,128.53L236.52,126.83L237.19,123.61L233.51,122.51L231.07,117.88L231.14,116.07L233.65,113.22L232.1,107.22L241.82,96.6L240.6,91.09L241.36,89.14L242.82,87.53L245.36,90.01L246.82,89.39L249.67,91.72L245.44,99.21L248.36,99.37L250.7,101.84L252.41,102.24L252.46,104.27L255.44,110.18L256.13,112.31L261.06,114.57L261.96,110.13L263.53,107.38L262.54,105.44L260.05,104.79L259.74,102.06L258.27,101.21L260.55,99.12L259.18,95.16L259.84,93.89L263.5,92.57L264.21,90.6L263.26,87.67L266.18,86.22L268.76,83.27L270.03,83.18L272.48,77.49L274.24,77.31L274.45,74.42L277.28,69.12L277.14,66.64L275.83,65.18L276.16,61.26L274.15,58.74L275.77,57.35L275.99,53.86L281.3,52.66L282.04,54.83L284.31,56.42L285.83,53.51L287.58,52.64L287.49,64.7L289.77,65.46L290.99,69.11L293.37,70.85L298.05,72.74L300.63,71.27L302.81,72.2L304.51,67.01L307.05,68.33L315.05,64.24L316.21,65.58L317.89,64.37L320.62,66.85L319.68,69.45L320.94,70.26L320.8,72.91L324.32,74.71L323.68,77.81L325.15,78.84L326.48,77.91L328.44,78.26L331.77,75.39L330.46,72.22L327.36,68.6L327.53,66.78L328.83,65.95L329.46,63.8L330.9,63.51L331.15,61.67L329.62,59.92L325.86,60.59L323.32,58.49L324.17,56.65L323.48,55.39L324.21,51.74L323.6,49.94L327.07,46.17L327.19,43.54L328.89,44L332.55,42.13L334.12,42.9L335.61,41.4L336.89,43.56L336.1,46.66L338.6,47.12L339.18,49L341.89,49.71L342.69,48.49L345.37,49.55L346.7,48.96Z"
|
|
10
|
+
},
|
|
11
|
+
"Trentino-Alto Adige": {
|
|
12
|
+
"path": "M474.27,37.45L471.29,38.56L468.06,42.75L465.64,41.74L462.03,42.88L460.57,41.96L456.54,45.17L456.41,42.43L453.54,41.6L448.78,37.88L449.15,40.7L447.32,43.96L447.53,45.75L444.55,50.5L442.45,49.65L441.04,51.08L439.14,50.68L433.25,53.66L433.11,55.66L436.82,56.16L437.54,57.85L434.77,61.14L433.46,64.67L430.61,66.41L434.13,69.36L434.83,71.07L434.01,73.36L434.97,74.21L437.58,73.6L440.34,76.17L439.39,78.56L442.32,81.25L440.26,82.66L438.19,87.44L433.14,89.21L428.74,88.93L425.43,89.98L425.42,92.43L426.54,94.29L424.06,95.02L424.06,96.83L425.44,99.28L424.34,101.54L419.26,101.17L418.61,97.77L416.33,97.05L413.73,97.41L410.42,100.15L406.05,99.87L406.5,103.32L404.95,103.52L404.13,105.39L398.57,105.45L397.53,111.39L394.69,114.82L395.42,117.69L393.55,117.5L393.71,121.87L390.69,125.94L388.76,125.69L386.43,123.46L381.69,126.32L379.29,127.1L377.49,125.98L378.27,124.61L375.79,123.37L373.16,123.36L375.79,118.48L374.86,116.65L376.4,115.32L373.17,113.31L366.38,112.23L361.53,113.21L360.96,115.81L358.57,115.89L355.98,117.51L353.88,116.3L354.72,114.61L352.01,113.46L351.38,108.23L352.48,105.69L350.91,103.28L351.11,100.82L349,100.43L349.63,97L351.07,95.85L350.64,93.55L354.66,88.62L355.79,83.26L354.5,81.33L357.25,76.3L356.72,71.6L356,69.16L352.81,67.62L355.93,64.54L358.31,64.4L360.11,62.51L359.09,60.83L359.37,58.17L358.13,56.53L354.94,54.38L350.39,54.02L349.01,50.75L350.22,49.68L351.29,43.53L348.54,41.02L345.77,41.4L344.77,36.98L346.62,34.66L345.71,32.53L348.36,30.43L346.89,27.31L348.62,26.35L350.39,21.33L351.74,22.42L354.67,23.25L362.03,19.81L363.66,21.96L367.49,23.53L368.04,24.51L365.92,27.71L367.54,27.99L369.51,26.99L371.19,28.83L372.62,28.23L375.62,30L377.63,28.94L383.96,29.62L385.1,26.15L387.86,24.7L387.11,21.75L388.84,18.57L388.66,16.39L389.75,14.82L392.77,13.96L392.93,11.61L395.55,11.9L402.52,9.19L404.84,9.33L407.73,11.69L409.98,10.74L412.4,7.43L415.93,10L421.01,7.3L423.76,9.13L426.66,9.21L428.96,11.28L431.11,9.28L434.47,9.12L439.33,5.37L441.27,5.27L443,3.88L445.69,4.11L446.9,2.77L449.11,3.01L450.49,1.26L451.78,1.73L455.86,0L459.26,2.18L457.86,3.17L457.21,5.81L453.63,6.18L452.04,7.71L453.06,12.31L455,14.16L453.42,16.48L456.16,17.01L457.9,19.82L459.56,18.52L461.68,19.02L463.59,22.92L462.22,25.16L462.15,27.97L466.53,28.76L468.18,33.92Z"
|
|
13
|
+
},
|
|
14
|
+
"Veneto": {
|
|
15
|
+
"path": "M489.77,41.46L489.53,43.64L490.71,45.65L489.87,48.41L483.68,52.52L485.01,54.63L482.04,56.74L479.81,55.78L477.41,56.77L475.62,59.24L475.28,61.36L472.86,63.5L473.25,65.18L470.53,66.71L470.14,69.16L467.84,68.83L466.58,69.85L466.63,72.26L464.45,74.54L467.01,78L469.51,77.98L469.83,79.89L472.05,79.78L472.41,82.35L475.33,84.71L474.79,89.05L471.29,91.42L469.15,94.83L470.26,95.8L471.12,98.95L471.15,103.15L472.87,103.2L474.14,105.03L475.93,105.04L477.45,110.53L479.13,112.05L478.87,113.51L481.29,114.78L482.1,112.84L485.09,115.35L485.15,117.31L489.83,112.96L490.64,113.78L493.03,111.24L495.31,113.08L497.93,111.76L499.73,114.57L504.02,114.15L505.32,114.88L504.79,117.06L507.24,119.41L510.38,128.87L512.72,130.2L512.04,131.13L506.11,131.53L500.92,132.31L499.77,133.87L492.21,138.61L472.99,147.59L471.14,149.98L469.13,148.96L466.81,152.08L465.07,155.48L462.75,165.61L463.78,170.48L465.33,172.24L464.98,178.66L466.71,180.14L468.01,183.49L467.04,184.64L468.88,185.9L470.17,185.69L470.23,183.58L475.43,190.09L474.63,195.51L473.33,196.7L473.38,200.15L471.45,199.49L471.87,196.02L469.52,195.95L468.62,198.04L469.67,199.35L469.28,204.57L466.37,202.25L465.65,199.62L463.25,199L462.47,197.84L462.08,194.34L462.84,192.84L460.53,191.53L458.77,193.1L456.17,192.9L455.19,191.62L453.41,192.79L450.64,189.06L442.55,187.76L439.88,188.71L432.31,188.61L428.79,190.26L427.9,192.94L424.05,194.02L421.62,196.33L419.26,196.18L418.74,194.23L416.21,192.51L409.32,192.97L409.13,191.17L408.86,189.91L399.22,184.72L399.22,181.74L397.5,182.77L393.72,181.37L393.94,178.19L395.47,176.95L391.85,175.59L390.73,177.62L387.34,178L384.55,175.64L385.7,173.37L382.71,173.09L383.17,171.02L382.21,169.54L378.75,167.97L378.87,166.39L376.53,164.99L373.34,164.27L371.99,161.42L369.62,159.09L366.71,161.52L364.3,159.86L365.12,157.54L363.92,155.74L365.49,150.54L362.51,149.17L361.15,147.53L359.78,133.29L373.17,113.31L376.4,115.32L374.86,116.65L375.79,118.48L373.16,123.36L375.79,123.37L378.27,124.61L377.49,125.98L379.29,127.1L381.69,126.32L386.43,123.46L388.76,125.69L390.69,125.94L393.71,121.87L393.55,117.5L395.42,117.69L394.69,114.82L397.53,111.39L398.57,105.45L404.13,105.39L404.95,103.52L406.5,103.32L406.05,99.87L410.42,100.15L413.73,97.41L416.33,97.05L418.61,97.77L419.26,101.17L424.34,101.54L425.44,99.28L424.06,96.83L424.06,95.02L426.54,94.29L425.42,92.43L425.43,89.98L428.74,88.93L433.14,89.21L438.19,87.44L440.26,82.66L442.32,81.25L439.39,78.56L440.34,76.17L437.58,73.6L434.97,74.21L434.01,73.36L434.83,71.07L434.13,69.36L430.61,66.41L433.46,64.67L434.77,61.14L437.54,57.85L436.82,56.16L433.11,55.66L433.25,53.66L439.14,50.68L441.04,51.08L442.45,49.65L444.55,50.5L447.53,45.75L447.32,43.96L449.15,40.7L448.78,37.88L453.54,41.6L456.41,42.43L456.54,45.17L460.57,41.96L462.03,42.88L465.64,41.74L468.06,42.75L471.29,38.56L474.27,37.45L476.09,37.55L479.51,39.92L486.2,39.24L488.7,40.13Z"
|
|
16
|
+
},
|
|
17
|
+
"Friuli-Venezia Giulia": {
|
|
18
|
+
"path": "M512.72,130.2L510.38,128.87L507.24,119.41L504.79,117.06L505.32,114.88L504.02,114.15L499.73,114.57L497.93,111.76L495.31,113.08L493.03,111.24L490.64,113.78L489.83,112.96L485.15,117.31L485.09,115.35L482.1,112.84L481.29,114.78L478.87,113.51L479.13,112.05L477.45,110.53L475.93,105.04L474.14,105.03L472.87,103.2L471.15,103.15L471.12,98.95L470.26,95.8L469.15,94.83L471.29,91.42L474.79,89.05L475.33,84.71L472.41,82.35L472.05,79.78L469.83,79.89L469.51,77.98L467.01,78L464.45,74.54L466.63,72.26L466.58,69.85L467.84,68.83L470.14,69.16L470.53,66.71L473.25,65.18L472.86,63.5L475.28,61.36L475.62,59.24L477.41,56.77L479.81,55.78L482.04,56.74L485.01,54.63L483.68,52.52L489.87,48.41L490.71,45.65L489.53,43.64L489.77,41.46L491.76,40.35L496.24,41.97L497.09,44.15L502.04,43.79L509.47,45.24L511.81,44.58L516.84,45.81L521.26,49.15L523.31,48.3L526.39,49.16L529.56,46.69L531.78,47.32L532.82,48.66L537.54,47.81L538.46,49.56L541.13,49.15L541.85,50.39L544.75,50.04L550.76,51.94L548.94,59.33L546.65,58.54L543.13,59.44L541.47,62.89L535.57,66.23L533.68,66.32L533.7,69.54L529.65,72.06L532.63,77.6L531.93,79.67L536.25,78.41L539.17,78.98L541.09,80.25L541.86,82.04L545.73,81.43L547.43,82.42L546.19,86.32L541.88,90.5L537.33,93.4L537.68,96.16L535.79,98.11L539.47,101.57L541.45,101.29L543.05,99.48L546.17,99.89L545.83,104.1L542.04,111.45L543.3,115.4L544.91,116.47L547.78,116.01L552.59,120.09L555.64,120.91L559.98,128.52L563.36,130.98L558.38,135.44L555.77,135.61L552.95,126.74L545.53,118.75L540.46,117.35L538.81,119.14L538.58,121.16L540.71,122.88L536.65,124.84L535.68,124.51L533.13,127.01L530.2,127.28L524,123.94L521.3,123.49L516.2,124.84Z"
|
|
19
|
+
},
|
|
20
|
+
"Liguria": {
|
|
21
|
+
"path": "M179.13,267.95L180.39,266.28L179.28,264.54L179.85,262.67L182.19,261.37L193.06,264.85L195.03,263.79L197.4,264.63L197.26,262.68L195.67,261.94L197.89,260.1L199.74,261.33L201.45,260.74L202.88,258.87L202.82,256.52L201.06,254.97L201.95,252.91L200.91,251.58L202.42,250.08L200.88,248.49L201.4,246.62L203.16,247.41L203.52,244.78L205.07,244.97L206.26,243.01L205.98,240.6L209.83,238.46L210.73,236.12L209.07,232.15L210.74,231.61L210.69,229.31L212.56,227.8L213.75,229.65L215.98,229.88L219.7,233.04L221.28,232.18L221.96,229.51L224.7,230.32L226.49,229.29L230.36,229.14L231.57,230.04L234.88,226.37L233.92,225.27L235.41,222.93L241.65,223.46L244.5,228.07L244.96,230.74L246.5,230.17L246.06,228.38L248.16,226.61L248.13,224.82L250.88,224.47L251.94,225.9L253.67,224.96L253.31,220.45L251.57,218.56L253.46,217.03L254.23,215.02L256.17,214.74L257.04,215.97L259.8,215.67L261.73,219.83L263.46,219.47L265.23,220.5L265.17,222.3L267.13,223.76L271.38,221.98L271.3,220.22L274.03,219.69L274.34,221.47L276.87,221.9L277.4,220.63L281.2,223.72L284.15,221.56L285.1,223.65L289,225L290.03,227.53L289.45,231.68L287.86,231.93L286,237.39L287.99,236.92L294.94,236.54L296.21,235.75L299.46,238.16L301.18,242.19L302.77,241.96L303.99,245.08L308.85,248.87L311.99,250.15L312.1,253.26L313.08,254.11L312.56,257.42L315.07,255.3L315.94,256.61L314.44,259.01L319.18,258.85L319.42,261.7L320.55,263.39L322.11,263.06L324.97,264.83L324.64,266.51L321.95,269.59L320.04,269.26L318.6,270.32L313.47,266.52L311.06,264.1L309.51,265.06L311.7,267.58L310.43,269.28L304.69,265.52L302.39,262.53L299.44,260.98L298.08,261.97L296.45,258.87L293.99,257.77L292.89,255.72L290.33,254.75L289.21,253.03L286.35,252.93L283.86,251.74L281.89,248.36L273.4,243.57L272.08,244.82L272.22,247.74L267.83,245.69L268.45,243.53L267.62,242.36L254.73,239.09L253.73,239.14L248.25,237.65L243.52,236.85L241.03,237.82L239.18,239.6L236.97,240.02L235.19,241.89L228.02,245.55L227.93,246.6L224.3,249.93L225.23,251.16L222.91,254.25L223.37,256.72L213.72,261.57L211.31,265.76L210.99,269.81L207.2,274.08L206.93,275.8L207.82,277.44L202.64,280.94L201.54,282.96L198.75,283.56L193.68,286.89L188.32,287.98L186.57,289.45L184.71,288.89L180.69,291.27L178.5,290.91L176.65,292.83L170.99,291.54L168.26,292.5L165.66,286.24L166.67,283.23L169.63,282.32L170.09,278.48L175.37,275.7L176.32,273.59L176.02,271.01L178.64,269.88Z"
|
|
22
|
+
},
|
|
23
|
+
"Emilia-Romagna": {
|
|
24
|
+
"path": "M491.09,276.13L489.67,279.87L489.95,284.87L486.9,286.07L486.25,288.61L482.72,288.18L481.15,283.49L477.86,284.86L477.86,282.26L475.12,280.66L476.48,278.77L476.1,274.23L471.63,277.23L469.62,277.28L470.01,281.77L469.07,283.33L466.67,284.29L465.45,288.49L462.31,291.03L462.07,293.66L462.02,293.62L460.04,294.7L457.58,294.25L456.57,296.64L454.7,293.84L452.96,294.81L451.25,294.62L449.17,295.71L447.83,294.17L444.95,293.39L443.67,293.9L439.81,291.24L439.19,289.67L433.55,289.42L431.14,286.5L426.81,284.08L427.14,280.37L424.94,278.89L425.34,276.91L422.71,274.39L423.58,271.79L425.6,271.01L426.12,268.6L428.57,265.95L428.99,262.69L422.38,264.02L419.18,263.58L420.93,261.04L420.69,259.78L417.56,259.14L416.31,260.35L414.86,260.04L412.77,257.65L411.09,257.19L410.68,254.59L409.07,253.13L406.1,256.03L403.09,256.34L402.85,257.63L400.09,260.14L395.28,260.32L395.15,261.45L398.69,263.52L398.98,264.83L395.92,265.02L392.19,263.94L388.16,265.7L384.83,265.31L382.96,263.91L383.22,261.55L377.35,268.17L376.13,265.56L373.38,264.95L367.37,260.06L360.65,259.91L359.44,261.4L359.53,263.03L357.51,263.54L353.38,259.85L353.09,257.97L350.99,256.03L351.06,254.36L349.58,253.55L347.56,253.9L344,250.22L342.07,250.18L339.42,248.69L336.54,250.13L329.75,242.92L326.79,243.54L321.63,239.97L320.27,238.44L320.92,235.26L319.04,233.5L316.1,232.45L309.65,233.16L305.52,239.66L301.18,242.19L299.46,238.16L296.21,235.75L294.94,236.54L287.99,236.92L286,237.39L287.86,231.93L289.45,231.68L290.03,227.53L289,225L285.1,223.65L284.15,221.56L281.2,223.72L277.4,220.63L276.87,221.9L274.34,221.47L274.03,219.69L271.3,220.22L271.87,214.29L275.18,214.75L279.08,213.72L278.22,212.03L279.11,209.29L277.01,208.17L276.64,206.83L281.29,202.13L280.01,198.19L277.96,197.68L275.84,195.73L278.63,192L280.28,187.1L282.25,184.98L282.11,182.33L286.33,178.53L289.75,177.66L291.64,179.91L293.01,178.66L293.12,175.21L295.06,177.81L298.49,176.36L298.31,179.39L303.35,181.55L305.91,178.61L309.29,179.98L310.85,178.34L312.07,178.38L313.29,180.18L314.59,178.3L313.22,176.37L315.39,174.6L316.28,175.33L315.82,177.99L319.3,175.31L320.37,175.42L322.64,178.39L322.11,180.19L325.83,182.73L326.79,184.84L330.81,182.94L331.45,184.07L334.13,183.99L337.75,186.86L339.69,186.91L343.11,189.66L346.07,188.04L347.84,191.58L353.36,194.29L358.13,194.08L359.88,193.05L363.33,188.06L363.86,190.02L366.04,187.51L367.21,191.29L372.54,192.15L374.6,193.82L377.74,193.23L382.46,190.66L386.22,190.97L387.35,190.02L390.55,190.8L392.68,191.88L397.38,191.51L399.6,191.98L401.61,190.05L409.13,191.17L409.32,192.97L416.21,192.51L418.74,194.23L419.26,196.18L421.62,196.33L424.05,194.02L427.9,192.94L428.79,190.26L432.31,188.61L439.88,188.71L442.55,187.76L450.64,189.06L453.41,192.79L455.19,191.62L456.17,192.9L458.77,193.1L460.53,191.53L462.84,192.84L462.08,194.34L462.47,197.84L463.25,199L465.65,199.62L466.37,202.25L464.15,200.23L462.71,199.79L460.15,207.24L459.43,213.27L460.01,217.28L462.38,221.92L462.25,232.63L464.39,238.4L464.63,242.5L467.11,251.16L469.23,255.44L477.33,264.91L480.37,266.96L487.58,274.76ZM459.17,290.43L458.91,289.87L455.57,289.84L455.24,291.21L456.9,293.13L459.53,291.77Z"
|
|
25
|
+
},
|
|
26
|
+
"Toscana": {
|
|
27
|
+
"path": "M340.29,413.47L341.32,415.65L339.18,416.33L338.98,413.72ZM459.17,290.43L459.53,291.77L456.9,293.13L455.24,291.21L455.57,289.84L458.91,289.87ZM310.43,353.29L311.26,355.69L309.05,358.62L307.94,357L308.56,354.21ZM301.18,242.19L305.52,239.66L309.65,233.16L316.1,232.45L319.04,233.5L320.92,235.26L320.27,238.44L321.63,239.97L326.79,243.54L329.75,242.92L336.54,250.13L339.42,248.69L342.07,250.18L344,250.22L347.56,253.9L349.58,253.55L351.06,254.36L350.99,256.03L353.09,257.97L353.38,259.85L357.51,263.54L359.53,263.03L359.44,261.4L360.65,259.91L367.37,260.06L373.38,264.95L376.13,265.56L377.35,268.17L383.22,261.55L382.96,263.91L384.83,265.31L388.16,265.7L392.19,263.94L395.92,265.02L398.98,264.83L398.69,263.52L395.15,261.45L395.28,260.32L400.09,260.14L402.85,257.63L403.09,256.34L406.1,256.03L409.07,253.13L410.68,254.59L411.09,257.19L412.77,257.65L414.86,260.04L416.31,260.35L417.56,259.14L420.69,259.78L420.93,261.04L419.18,263.58L422.38,264.02L428.99,262.69L428.57,265.95L426.12,268.6L425.6,271.01L423.58,271.79L422.71,274.39L425.34,276.91L424.94,278.89L427.14,280.37L426.81,284.08L431.14,286.5L433.55,289.42L439.19,289.67L439.81,291.24L443.67,293.9L444.95,293.39L447.83,294.17L449.17,295.71L451.25,294.62L452.96,294.81L454.7,293.84L456.57,296.64L457.58,294.25L460.04,294.7L462.02,293.62L462.22,293.78L464.81,294.81L467.58,298.54L465.05,298.57L465.41,301.2L463.04,300.41L460.04,301.85L458.9,303.11L456.11,304.11L457.86,306.82L454.87,310.61L453.93,313.75L451.28,313.52L450.4,316.34L453.55,318.13L450.87,319.9L449.64,321.95L448.33,321.54L446.27,323.65L446.66,324.87L449.25,324.6L449.39,327.82L451.11,327.17L453.11,330.68L452.87,333.84L455.57,334.86L456.65,332.16L458.51,333.69L450.45,338.75L447.8,337.27L446.21,342.63L439.95,346.32L439.36,347.92L440.42,350.87L440.02,352.36L441.98,352.99L443.51,354.64L440.58,366.58L441.9,367.49L442.09,369.68L440.55,369.77L438.19,372.61L435.2,372.44L431.79,374.57L430.33,374L428.93,376.96L433.5,380.55L432.24,383.41L430.76,383.39L431.26,386.57L432.62,388.46L430.93,389.57L429.27,389.34L428.17,391.93L426.62,391.63L424.8,392.97L424.56,394.28L420.67,396.15L419.08,397.4L417.43,399.75L420.8,402.07L420.9,406.23L412.69,406.32L410.45,411.35L400.34,408.98L398.93,407.84L395.63,408.71L395.78,410.5L394.3,412.56L392.1,412.74L390.46,410.68L388.5,410.06L387.98,406.93L392.89,406.25L394.11,403.75L394.48,399.97L392.39,395.65L390.26,396.08L388,390.11L382.99,387.97L381.87,383.46L379.2,380.68L373.86,378.52L369.76,378.04L366.04,375.6L368.27,374.22L368.44,369.8L369.51,368.23L368.71,366.45L366.54,364.83L362.68,363.03L359.23,362.64L354.73,363.35L354.26,365.49L351.46,364.54L350.75,359.76L352.8,358.79L354.14,351.26L353.35,337.79L351.93,334.27L349.33,331.53L347.11,324.92L345.81,324.79L344.42,320.96L341.25,318.57L339.29,313.32L339.68,310.46L337.43,301.1L338.15,300.03L337.85,295.17L335.63,284.6L329.54,275.27L324.57,270.85L321.95,269.59L324.64,266.51L324.97,264.83L322.11,263.06L320.55,263.39L319.42,261.7L319.18,258.85L314.44,259.01L315.94,256.61L315.07,255.3L312.56,257.42L313.08,254.11L312.1,253.26L311.99,250.15L308.85,248.87L303.99,245.08L302.77,241.96ZM375.71,410.13L378.1,412.6L377.83,416.26L375.45,413.3ZM346.76,369.96L348.37,371.66L347.43,374.25L347.82,377.48L344.77,379.13L347.73,381.19L347.07,383.46L344.08,382.49L342.98,379.19L339.58,379.11L338.59,381.13L335.89,379.92L335.62,381.92L332.34,381.02L330.35,381.34L328.39,380.63L327.15,378.51L327.27,376.6L329.48,374.89L332.92,374.8L335.99,376.68L337.84,374.14L341.48,374.17L342.85,375.76L346.07,369.68Z"
|
|
28
|
+
},
|
|
29
|
+
"Umbria": {
|
|
30
|
+
"path": "M457.86,306.82L458.72,308.24L462.45,308.18L465.38,306.83L467.04,307.64L467.61,309.38L464.08,312.65L465.72,314.38L467.45,313.5L468.98,315.59L470.69,313.05L472.89,314.94L475.46,314.46L483.14,323.29L485.71,321.72L488.41,322.71L490,319.45L492.51,320.13L492.06,322.57L493.15,323.58L490.98,325.63L491.03,326.64L493.77,330.22L494.23,333.76L493.47,334.61L495.74,336.23L496.55,340.38L498.23,341.22L498.05,344.73L496.1,346.61L496.9,348.47L499.4,348.98L500.09,351.06L499.8,354.42L500.7,356.97L499.65,357.78L500.78,360.14L500.11,361.94L504.94,365.1L505.08,369.99L509.81,365.52L513.45,368.31L516.46,373.08L519.69,372.34L521.2,370.13L522.9,374.52L522.6,376.72L521.03,378.08L518.72,379.03L518.41,381.46L517.51,386.86L515.9,388.4L513.89,388.57L510.5,390.66L508.02,389.35L507.16,391.2L503.24,391.15L502.28,392.33L499.85,391.13L499.14,392.55L499.89,395.64L497.37,396.44L495.14,398.42L492.67,398.29L492.46,399.91L488.76,400.97L490.41,403.45L486.8,405.83L485.34,405.89L484.27,403.64L482.83,403.73L482.56,408.44L477.33,412.51L476.28,411.3L476.34,409.26L471.95,409.9L473.12,408.18L470.36,407.22L470.6,401.36L468.82,401.17L466.41,403.13L464.93,401.6L461.66,400.33L461.56,396.12L459.55,395.18L458.89,389.76L456.87,387.26L454.91,386.43L452.28,388.52L451.06,387.23L446.61,388.82L441.62,385.72L440.06,383.16L442.29,381.89L443.51,379.49L440.15,377.32L438.19,372.61L440.55,369.77L442.09,369.68L441.9,367.49L440.58,366.58L443.51,354.64L441.98,352.99L440.02,352.36L440.42,350.87L439.36,347.92L439.95,346.32L446.21,342.63L447.8,337.27L450.45,338.75L458.51,333.69L456.65,332.16L455.57,334.86L452.87,333.84L453.11,330.68L451.11,327.17L449.39,327.82L449.25,324.6L446.66,324.87L446.27,323.65L448.33,321.54L449.64,321.95L450.87,319.9L453.55,318.13L450.4,316.34L451.28,313.52L453.93,313.75L454.87,310.61Z"
|
|
31
|
+
},
|
|
32
|
+
"Marche": {
|
|
33
|
+
"path": "M563.17,367.76L557.15,369.06L554.59,370.77L550.41,371.45L549.85,374.13L545.8,375.48L544.99,374.33L542.14,375.68L539.62,374.3L539.32,376.06L537.72,377.86L537.35,380.87L534.48,381.35L533.08,383.67L530.81,385.28L528.79,384.69L524.35,380.87L522.37,382.42L518.41,381.46L518.72,379.03L521.03,378.08L522.6,376.72L522.9,374.52L521.2,370.13L519.69,372.34L516.46,373.08L513.45,368.31L509.81,365.52L505.08,369.99L504.94,365.1L500.11,361.94L500.78,360.14L499.65,357.78L500.7,356.97L499.8,354.42L500.09,351.06L499.4,348.98L496.9,348.47L496.1,346.61L498.05,344.73L498.23,341.22L496.55,340.38L495.74,336.23L493.47,334.61L494.23,333.76L493.77,330.22L491.03,326.64L490.98,325.63L493.15,323.58L492.06,322.57L492.51,320.13L490,319.45L488.41,322.71L485.71,321.72L483.14,323.29L475.46,314.46L472.89,314.94L470.69,313.05L468.98,315.59L467.45,313.5L465.72,314.38L464.08,312.65L467.61,309.38L467.04,307.64L465.38,306.83L462.45,308.18L458.72,308.24L457.86,306.82L456.11,304.11L458.9,303.11L460.04,301.85L463.04,300.41L465.41,301.2L465.05,298.57L467.58,298.54L464.81,294.81L462.22,293.78L462.07,293.66L462.31,291.03L465.45,288.49L466.67,284.29L469.07,283.33L470.01,281.77L474.63,282.3L475.12,280.66L477.86,282.26L477.86,284.86L481.15,283.49L482.72,288.18L486.25,288.61L486.9,286.07L489.95,284.87L489.67,279.87L491.09,276.13L494.03,276.42L500.66,279.94L525.4,301.72L534.53,306.82L537.02,307.12L538.02,305.29L540.54,307.38L541.97,310.19L545.32,312.15L545.06,315.96L558.65,349.79L560.52,359.64Z"
|
|
34
|
+
},
|
|
35
|
+
"Lazio": {
|
|
36
|
+
"path": "M567.06,487.33L566.15,487.29L562.48,490.64L559.88,491.08L561.48,493.78L560.5,495.6L561.75,501.01L557.99,502.37L558.05,504.83L554.42,505.54L553.76,507.14L550.36,504.69L548.89,505.42L545.49,504.03L541.93,506.04L542.07,507.81L540.69,508.61L529.88,502.3L524.65,501.04L522.67,502.25L519.87,502.1L516.34,503.23L512.34,507.04L509.42,506.81L505.89,498.65L501.46,493.93L497.12,491.52L493.04,491.11L492.06,491.88L486.23,487.96L482.96,488.71L478.95,481.61L470.4,471.37L465.96,467.59L458.46,464.15L457.33,457L453.55,450.02L447.72,446.59L446.16,444.24L443.06,443.05L442.37,441.58L439.54,439.79L434.38,440.55L432.37,435.83L428.7,430.97L428.48,428.69L425.92,423.51L423.21,419.68L416.64,414.31L410.45,411.35L412.69,406.32L420.9,406.23L420.8,402.07L417.43,399.75L419.08,397.4L420.67,396.15L424.56,394.28L424.8,392.97L426.62,391.63L428.17,391.93L429.27,389.34L430.93,389.57L432.62,388.46L431.26,386.57L430.76,383.39L432.24,383.41L433.5,380.55L428.93,376.96L430.33,374L431.79,374.57L435.2,372.44L438.19,372.61L440.15,377.32L443.51,379.49L442.29,381.89L440.06,383.16L441.62,385.72L446.61,388.82L451.06,387.23L452.28,388.52L454.91,386.43L456.87,387.26L458.89,389.76L459.55,395.18L461.56,396.12L461.66,400.33L464.93,401.6L466.41,403.13L468.82,401.17L470.6,401.36L470.36,407.22L473.12,408.18L471.95,409.9L476.34,409.26L476.28,411.3L477.33,412.51L482.56,408.44L482.83,403.73L484.27,403.64L485.34,405.89L486.8,405.83L490.41,403.45L488.76,400.97L492.46,399.91L492.67,398.29L495.14,398.42L497.37,396.44L499.89,395.64L499.14,392.55L499.85,391.13L502.28,392.33L503.24,391.15L507.16,391.2L508.02,389.35L510.5,390.66L513.89,388.57L515.9,388.4L517.51,386.86L518.41,381.46L522.37,382.42L524.35,380.87L528.79,384.69L528.14,386.74L529.54,388.39L531.94,389.15L531.02,393.32L529.39,394.74L526.66,394.35L524.85,395.28L524.15,394.11L521.78,394.98L518.46,393.73L517.54,397.07L516.3,397.77L517.5,400.02L517.63,402.91L513.79,405.85L518.61,410.38L516.09,413.21L520.61,416.21L521.4,420.19L524.52,423.27L527.44,424.28L527.93,428.14L525.47,432.05L523.43,431.3L521.93,432.23L514.01,427.95L511.91,428.11L511.86,431.01L509.34,433.17L508.41,432.73L508.22,438.7L509.92,441.42L512.8,442.2L512.83,440.69L515.27,441.56L524.52,447.01L525.59,446.56L527.99,449.32L529.22,449.1L530.42,450.81L528.87,453.59L530.08,457.99L531.77,456.34L533.86,457.19L535.64,458.92L537.86,459.45L538.76,461.64L540.54,462.77L545.42,461.13L546.71,458.59L548.85,459.19L550.15,460.62L551.75,459.74L553.86,463.75L555.46,464.24L556.7,463.44L559.61,465.16L561.97,464.93L564.98,468.89L567.39,470.97L569.07,475.33L568.37,477.75L570.03,479.58L570.22,482.23L566.77,484.72L567.99,485.76ZM472.96,450.61L472.5,450.56L472.27,450.95L472.73,451.1Z"
|
|
37
|
+
},
|
|
38
|
+
"Abruzzo": {
|
|
39
|
+
"path": "M617.05,437.04L615.64,439.27L616.74,440.3L613.3,442.66L610.53,446.11L609.54,449.86L606.68,451.89L604.62,456.4L598.87,462.62L597.35,461.4L596.06,456.19L591.79,452.93L589.83,454.26L588.65,451.61L587.15,451.78L586.02,450.25L582.5,453.12L580.78,455.82L578.1,456L577.59,457.1L579.1,461.39L580.93,462.47L580.43,463.72L575.89,463.91L572.77,464.71L571.71,467.61L570.11,467.67L569.77,469.45L567.51,468.25L564.98,468.89L561.97,464.93L559.61,465.16L556.7,463.44L555.46,464.24L553.86,463.75L551.75,459.74L550.15,460.62L548.85,459.19L546.71,458.59L545.42,461.13L540.54,462.77L538.76,461.64L537.86,459.45L535.64,458.92L533.86,457.19L531.77,456.34L530.08,457.99L528.87,453.59L530.42,450.81L529.22,449.1L527.99,449.32L525.59,446.56L524.52,447.01L515.27,441.56L512.83,440.69L512.8,442.2L509.92,441.42L508.22,438.7L508.41,432.73L509.34,433.17L511.86,431.01L511.91,428.11L514.01,427.95L521.93,432.23L523.43,431.3L525.47,432.05L527.93,428.14L527.44,424.28L524.52,423.27L521.4,420.19L520.61,416.21L516.09,413.21L518.61,410.38L513.79,405.85L517.63,402.91L517.5,400.02L516.3,397.77L517.54,397.07L518.46,393.73L521.78,394.98L524.15,394.11L524.85,395.28L526.66,394.35L529.39,394.74L531.02,393.32L531.94,389.15L529.54,388.39L528.14,386.74L528.79,384.69L530.81,385.28L533.08,383.67L534.48,381.35L537.35,380.87L537.72,377.86L539.32,376.06L539.62,374.3L542.14,375.68L544.99,374.33L545.8,375.48L549.85,374.13L550.41,371.45L554.59,370.77L557.15,369.06L563.17,367.76L563.5,368.06L565.14,375.74L567.84,382.42L575.42,395.97L583.87,405.31L593.83,412.76L594.89,415.59L599.31,419.86L599.71,421.5L606.42,425.98L612.65,428.21L612.91,434.08Z"
|
|
40
|
+
},
|
|
41
|
+
"Molise": {
|
|
42
|
+
"path": "M638.8,448.88L639.06,452.85L636.49,456.57L637.48,460.12L636.31,462.05L636.62,464.15L637.82,465.97L640.07,466.99L637.59,468.23L636.77,470.05L633.28,471.22L631.68,474.14L627.77,472.33L626.26,474.17L627.37,475.14L626.5,481.91L628.39,482.72L630.79,485.5L627.19,488.05L623.99,488.31L622.09,490.24L617.25,488.18L615.17,491.69L612.89,492.39L611.76,491.49L609.38,491.78L605.51,495.36L604.05,493.23L600.01,493.86L598.57,492.75L598.11,490.83L588.44,488L586,486.67L585.67,485.44L583.28,484.41L579.12,484.34L578.65,486.01L575.89,483.69L573.23,488.57L574.89,490.6L573.65,492.49L571.05,493.07L568.57,490.1L568.9,488.26L567.06,487.33L567.99,485.76L566.77,484.72L570.22,482.23L570.03,479.58L568.37,477.75L569.07,475.33L567.39,470.97L564.98,468.89L567.51,468.25L569.77,469.45L570.11,467.67L571.71,467.61L572.77,464.71L575.89,463.91L580.43,463.72L580.93,462.47L579.1,461.39L577.59,457.1L578.1,456L580.78,455.82L582.5,453.12L586.02,450.25L587.15,451.78L588.65,451.61L589.83,454.26L591.79,452.93L596.06,456.19L597.35,461.4L598.87,462.62L604.62,456.4L606.68,451.89L609.54,449.86L610.53,446.11L613.3,442.66L616.74,440.3L615.64,439.27L617.05,437.04L624.16,441.01L630.19,442.14L634.99,447.4Z"
|
|
43
|
+
},
|
|
44
|
+
"Campania": {
|
|
45
|
+
"path": "M582.42,561.44L584.01,562.85L580.47,563.34L580.63,561.37ZM567.06,487.33L568.9,488.26L568.57,490.1L571.05,493.07L573.65,492.49L574.89,490.6L573.23,488.57L575.89,483.69L578.65,486.01L579.12,484.34L583.28,484.41L585.67,485.44L586,486.67L588.44,488L598.11,490.83L598.57,492.75L600.01,493.86L604.05,493.23L605.51,495.36L609.38,491.78L611.76,491.49L612.89,492.39L615.17,491.69L617.25,488.18L622.09,490.24L623.99,488.31L627.19,488.05L630.79,485.5L632.98,488.94L636.43,489.9L635.03,493.49L634.02,494.91L634.77,498.09L638.36,499.37L638.61,502L642.75,501.84L644,503.63L645.96,503.25L647.48,504.98L645.54,506.22L646.56,509.1L644.12,510.56L643.14,512.97L645.03,513.89L645.91,516.19L648.34,517.94L649.67,516.84L653.08,518.28L655.13,516.72L657.66,518.91L659.57,518.73L663.92,520.92L665.58,525.73L662.85,532.84L659.27,534.41L658.78,536.24L652.99,534.92L653.7,536.35L653.5,540.68L654.24,542.19L654.03,548.07L661.19,552.74L661.12,553.72L659.12,554.94L658.24,557.39L663.49,560.58L662.65,561.57L664.28,565.46L663.42,566.77L666.03,568.85L666.62,570.95L669.1,572.2L671.03,574.79L673.57,575.71L673.62,578.81L675.61,580.64L675.78,582.24L679.31,583.27L680.1,586.4L678.98,587.4L679.6,588.89L675.41,590.68L675.58,591.89L673.63,593.89L674.01,597.42L672.13,600L672.21,602.08L670.16,603.3L669.12,600.92L665.76,600.46L661.43,601.6L656.32,607.5L652.22,606.81L649.77,604.41L647.91,603.52L647.07,600.81L643.08,596.96L641.29,596.69L638.26,593.02L632.61,593.09L629.42,589.09L624.97,587.71L624.22,586.43L626.61,584.61L626.73,579.75L629.89,577.93L629.9,574.37L622.59,559.15L616.16,552.36L612.86,552.87L611.22,555.45L607.19,554.28L603.92,557.18L601.08,557.68L598.14,556.06L588.4,560.76L589.35,555.79L593.17,555.02L593.69,553.24L598.01,550.26L596.71,546.42L592.97,545.23L588.69,540.51L585.36,538.28L582.15,539.63L579.93,542.51L578.23,540.54L574.19,539.38L572.87,540.32L573.89,543.59L571.16,542.67L571.16,537.19L569.81,532.42L566.53,527.11L563.61,523.95L561.91,518.09L557.61,511.03L553.76,507.14L554.42,505.54L558.05,504.83L557.99,502.37L561.75,501.01L560.5,495.6L561.48,493.78L559.88,491.08L562.48,490.64L566.15,487.29ZM560.3,545.12L565.63,546.57L566.27,547.5L565.43,550.02L562.03,550.05L559.26,549.51L559.22,547.24Z"
|
|
46
|
+
},
|
|
47
|
+
"Puglia": {
|
|
48
|
+
"path": "M745.46,575.85L744.52,573.6L742.41,571.82L741.97,569.86L739.83,568.55L737.78,569.08L736.74,567.93L737.9,565.41L735.86,562.15L736.38,558.64L737.15,558.09L736.03,555.59L737.12,551.21L736.89,548.88L733.36,546.19L732.72,547.09L727.84,544.93L725.5,545.74L723.12,545.04L718.91,549.93L717.06,549.43L716.13,547.31L708.2,539.99L704.65,532.15L702.23,531.37L699.66,533.74L697.73,531.91L690.98,529.02L694.23,525.5L693.86,523.62L694.63,522.35L692.41,520.54L690.93,518.2L689.13,516.59L687.02,516.23L684.24,514.22L679.93,517.49L677.9,518.6L676.14,517.32L673.11,518.41L667.49,517.47L665.14,517.93L663.51,519.42L663.92,520.92L659.57,518.73L657.66,518.91L655.13,516.72L653.08,518.28L649.67,516.84L648.34,517.94L645.91,516.19L645.03,513.89L643.14,512.97L644.12,510.56L646.56,509.1L645.54,506.22L647.48,504.98L645.96,503.25L644,503.63L642.75,501.84L638.61,502L638.36,499.37L634.77,498.09L634.02,494.91L635.03,493.49L636.43,489.9L632.98,488.94L630.79,485.5L628.39,482.72L626.5,481.91L627.37,475.14L626.26,474.17L627.77,472.33L631.68,474.14L633.28,471.22L636.77,470.05L637.59,468.23L640.07,466.99L637.82,465.97L636.62,464.15L636.31,462.05L637.48,460.12L636.49,456.57L639.06,452.85L638.8,448.88L651.39,449.66L652.9,450.89L656.76,451.04L668.75,448.8L672.81,449.95L677.8,449.69L693.27,447.02L697.92,447.93L703.85,452.46L703.04,454.33L704.55,457.22L703.98,461.55L702.34,463.2L696.63,467.03L696.28,468.34L686.15,474.71L686.33,481.6L689.35,487.34L693.52,490.37L704.84,495.64L708.43,498.48L718.22,502.18L728.4,508.34L740.4,512.17L742.4,513.9L744.57,513.96L746.54,515.25L751.59,517.45L759.87,520.16L771.52,527.82L775.9,533.19L778.31,534.3L783.82,539.5L798.09,545.24L805.57,550.45L812.35,551.26L813.7,553.5L813.11,554.54L817.44,554.69L817.05,556.01L818.93,558.35L818.28,560.82L820.99,564.18L823.86,566.81L830.96,570.79L842.29,582.99L844.7,588.4L844.42,590.53L848.1,598.55L846.03,600.46L845.43,603.34L843.02,605.01L841.29,608.85L840.23,614.37L840.26,621.65L838.91,623.54L837.45,623.93L832.82,620.34L826.67,619.04L818.9,612.7L815.62,606.95L817.07,606.35L816.86,603.98L814.35,602.62L816.18,601.27L816.66,598.23L811.1,591.28L811.5,588.97L810.27,586.31L807.22,583.77L796.27,582.17L785.67,583L781.87,580.23L778.61,579.87L768.13,573.78L767.14,572.72L769.45,571.69L769.72,569.9L768.09,567.91L765.33,568.04L764.63,566.07L761.18,564.77L756.57,565.46L752.34,567.76L748.03,571.6Z"
|
|
49
|
+
},
|
|
50
|
+
"Basilicata": {
|
|
51
|
+
"path": "M663.92,520.92L663.51,519.42L665.14,517.93L667.49,517.47L673.11,518.41L676.14,517.32L677.9,518.6L679.93,517.49L684.24,514.22L687.02,516.23L689.13,516.59L690.93,518.2L692.41,520.54L694.63,522.35L693.86,523.62L694.23,525.5L690.98,529.02L697.73,531.91L699.66,533.74L702.23,531.37L704.65,532.15L708.2,539.99L716.13,547.31L717.06,549.43L718.91,549.93L723.12,545.04L725.5,545.74L727.84,544.93L732.72,547.09L733.36,546.19L736.89,548.88L737.12,551.21L736.03,555.59L737.15,558.09L736.38,558.64L735.86,562.15L737.9,565.41L736.74,567.93L737.78,569.08L739.83,568.55L741.97,569.86L742.41,571.82L744.52,573.6L745.46,575.85L740.69,582.7L734.89,595.25L732.13,597.28L728.84,596.13L725.07,597.3L721.35,596.06L717.49,596.95L717.75,600.39L716.51,603.08L716.83,605.51L713.14,612.1L714.48,613.49L713.95,615.08L711.37,612.19L708.95,611.98L705.41,612.77L705.39,614.89L702.03,613.36L700.78,614.66L694.98,614.98L693.11,612.86L692.53,610.17L694.02,607.47L692.62,607.09L690.83,608.11L689.99,606.95L687.75,606.59L686.02,608.07L684.16,607.61L683.07,606.48L681.05,606.7L678.21,609.76L677.05,612.92L674.9,608.62L672.36,606.28L672.19,604.49L670.16,603.3L672.21,602.08L672.13,600L674.01,597.42L673.63,593.89L675.58,591.89L675.41,590.68L679.6,588.89L678.98,587.4L680.1,586.4L679.31,583.27L675.78,582.24L675.61,580.64L673.62,578.81L673.57,575.71L671.03,574.79L669.1,572.2L666.62,570.95L666.03,568.85L663.42,566.77L664.28,565.46L662.65,561.57L663.49,560.58L658.24,557.39L659.12,554.94L661.12,553.72L661.19,552.74L654.03,548.07L654.24,542.19L653.5,540.68L653.7,536.35L652.99,534.92L658.78,536.24L659.27,534.41L662.85,532.84L665.58,525.73Z"
|
|
52
|
+
},
|
|
53
|
+
"Calabria": {
|
|
54
|
+
"path": "M677.05,612.92L678.21,609.76L681.05,606.7L683.07,606.48L684.16,607.61L686.02,608.07L687.75,606.59L689.99,606.95L690.83,608.11L692.62,607.09L694.02,607.47L692.53,610.17L693.11,612.86L694.98,614.98L700.78,614.66L702.03,613.36L705.39,614.89L705.41,612.77L708.95,611.98L711.37,612.19L713.95,615.08L714.48,613.49L713.14,612.1L716.83,605.51L716.51,603.08L717.75,600.39L717.49,596.95L721.35,596.06L725.07,597.3L728.84,596.13L732.13,597.28L729.82,600.24L729.41,603.43L731.05,610.44L725.49,617.51L722.47,623.12L722.52,626.67L724.94,629.48L724.27,633.68L730.4,637.33L740.12,637.48L745.82,643.94L751.48,647.43L755.66,648.5L756.61,651L759.2,653.49L763.93,655.12L761.09,662.26L760.79,666.73L763.41,670.58L761.05,678.52L762.79,680.79L763.28,683.32L766.97,685.09L764.36,687.47L764.66,690.86L760.05,695.71L759.72,694.39L758.01,693.76L755.47,694.69L752.89,692.05L747.23,692.95L740.33,695.53L729.76,702.1L725.35,710.04L726.73,712.52L728.31,729.08L727.76,732.51L720.94,739.64L712.19,743.35L702.53,755.61L701.31,763.84L698.24,769.69L696.21,772.24L692.17,772.9L687.31,771.76L677.41,772.69L672.29,769.76L669.66,764.83L670.95,762.98L669.41,758.87L670.94,755.35L669.58,751.28L669.64,747.97L674.58,745.94L676.86,745.86L679.98,744.1L681.49,741.47L682.04,737.61L683.43,736.35L684.4,733.02L686.17,731.39L687.05,729.04L687.96,723.14L681.53,717.37L682.11,715.16L684.29,713.07L689.39,711.38L691.48,709.16L694.46,708.8L698.59,710.04L700.68,709.43L703.59,707.12L705.98,699.27L705.64,693.06L701.9,691.25L698.25,684.49L696.29,675.67L695.35,662.98L692.02,651.99L687.61,645.08L684.42,642.78L681.86,633.87L680.76,632.96L679.07,622.31L677.91,620.26L679.29,617.91Z"
|
|
55
|
+
},
|
|
56
|
+
"Sicilia": {
|
|
57
|
+
"path": "M441.89,856.71L444.71,858.17L445.44,857.72L447.86,859.78L448.01,862.64L446.3,864.66L444.03,864.5L440.03,859.56L440.14,857.66ZM644.32,702.2L645.39,702.99L643.54,705.31L641.96,703.73ZM463.75,769.83L464.7,771.64L466.07,771.14L467.38,772.09L462.38,772.8L461.37,771.11ZM472.32,778.51L471.18,774.53L472.78,773.67ZM602.38,720.04L604.09,720.38L605.16,722.39L602.7,722.15ZM619.28,720.21L622.38,720.36L622.35,723.84L621.39,724.05L617.69,721.92ZM628.01,725.07L627.45,731.57L623.96,727.88L624.96,725.23ZM627.88,733.22L630.16,734.98L630.52,737.05L629.27,737.27L627.21,735.94L626.53,733.72ZM664.93,742.62L667.85,744.58L667.82,746.3L666,747.82L666.08,751.12L661.11,760.33L649.33,775.76L649.28,777.76L647.28,779.12L647.52,780.24L643.54,785.41L643.08,786.77L643.96,788.85L642.74,793.19L641.25,795.09L641.33,799.36L637.56,802.94L635.69,806.42L636.4,819.28L640.44,821.79L642.26,822.25L643.07,821.44L646.26,825.35L645.59,826.27L643.66,825.22L642.26,825.7L641.86,829.59L643.07,832.42L644.81,835.12L646.53,836.09L648.64,836L648.76,839.71L651.11,844.01L648.94,843.04L647.38,843.67L646.5,846.29L643.27,847.07L639.77,850.93L636.2,859.78L638.99,868.62L637.46,869.41L635.31,871.45L631.44,867.34L627.71,868.01L625,865.68L622.75,865.1L616.77,867.17L614.44,865.89L611.14,865.88L607.9,862.79L604.85,861.58L598.97,860.81L596.82,858.5L595.83,854.28L591.95,847.28L584.68,839.89L578.66,837.04L572.74,835.72L566.38,835.86L562.51,836.89L560.69,836.37L557.43,833.03L552.97,832.63L547.38,829.17L546.23,826.6L540.84,822.14L539,822.61L538.08,821.59L534.34,821.48L531.43,818.43L526.5,815.98L524.91,814.07L523.37,813.96L522.09,811.06L516.74,805.84L511.23,804.92L507.72,805.76L504.14,800.36L501.36,799.4L492.83,799.1L486.35,800.71L482.21,794.4L479.59,792.73L476.79,792.91L474.11,789.8L473.88,786.29L470.92,781.84L473.28,780.48L474.66,776.1L472.94,773.48L475.43,769.97L475.18,767.53L476.68,766.86L474.89,764.92L476.72,764.46L479.93,760.8L481.97,761.17L484.14,760.3L485.6,758.84L485.45,757.49L488.57,757.61L490.2,755.25L488.85,752.6L492.15,752.13L492.21,754.32L493.51,755.61L493.46,757.55L494.83,759.98L500.34,764.26L505.77,762.76L511.29,759.31L509.75,755.31L510.93,755.04L511.24,752.69L513.19,751.03L518.34,752.86L520.88,751.82L521.42,750.16L523.53,750.48L526.16,748.54L526.96,750.58L529.22,751.94L529.83,754.55L528.94,755.94L530.21,757.71L534.18,758.82L536.89,758.16L537.97,756.81L539.76,757.32L539.8,760.96L541.67,763.12L550.65,768L554.02,768.52L559.96,766.9L565.18,763.8L569.84,762.88L572.55,764.68L575.17,764.96L577.46,763.8L586.16,765.55L591.45,764.85L594.78,762.98L598.06,763.47L607.99,760.28L614.75,753.03L617.36,754.13L623.54,752.49L625.02,750.96L628.52,754.06L633.08,754.07L634.1,755.98L636.47,756.47L641.16,753.87L645.41,749.03L648.12,749.79L655.05,747.9L662.65,742.74ZM448.64,766.87L450.24,770.33L447.24,769.42L446.4,766.8ZM477.42,957.35L483.34,957.97L483.73,960L476.5,958.05Z"
|
|
58
|
+
},
|
|
59
|
+
"Sardegna": {
|
|
60
|
+
"path": "M288.21,505.6L289.25,507.45L287.76,509.97L286.02,510.67L287.33,505.43ZM219.93,678.04L220.59,679.2L223.32,678.41L225.88,682.73L224.51,689.55L222.62,690.63L219.24,684.15L218.56,680.69ZM216.08,672.54L215.92,679.17L213.96,679.63L212.33,678.48L212.39,676.42L210.53,675.32L213.48,672.6ZM216.92,515.7L217.85,518.97L217.65,521.35L214.35,519.81L212.51,523.26L213.5,525.22L212.93,526.88L210.15,526.52L211.35,523.53L210.78,522.07L212.56,521.31L213.61,519.37L214.11,516.88ZM273.23,504.26L276.28,506.77L275.37,509.05L276.64,510.4L279.6,510.19L279.93,508.65L281.44,508.47L282.09,510.68L285.17,510.89L286.59,514.36L287.84,513.76L292.83,514.53L294.43,517.3L292.42,520.52L291.43,521.16L291.64,523.08L293.77,522.44L293.13,525.17L294.73,525.24L295.84,523.64L300.13,525.87L299.28,526.77L296.66,525.42L294.99,526.86L295.7,528.12L294.15,530.22L291.25,530.86L291.24,531.92L293.79,531.97L295.54,534.28L297.33,531.79L298.86,532.08L297.07,534.36L299.77,535.7L303.68,538.65L301.59,538.89L300.54,543.08L303.39,545.92L303.2,549.21L305.62,552.25L304.87,555.35L305.65,558.45L307.87,560.52L308.2,562.72L310.21,563.99L306.42,575.1L301.65,579.17L297.74,585.89L297.74,590.04L299.4,594.95L301.83,598.24L304.32,599.7L304.29,601.7L301.43,608.76L301.62,611.33L303.36,612.61L301.15,614.86L302.04,618.7L300.39,624.36L300.93,630.01L298.95,634.9L299.59,641.58L298.08,646.95L298.96,650.2L295.98,659.3L296.25,663.94L294.96,665.93L293.74,671.54L294.76,673.09L293.46,676.7L291.11,678.07L288.91,676.43L285.99,677.42L277.24,670.19L271.87,669.06L269.3,670.63L268.73,672.7L265.64,670.2L263.06,671.33L259.99,675.16L259.94,680.19L261.71,682.67L260.2,688.41L258.66,688.18L250.1,696.84L246.59,696.23L245.04,693.76L241.68,691.83L241.47,693.1L238.13,693.92L238.49,695.18L234.6,695.51L235.48,691.5L232.42,688.7L231.9,683.54L229.91,682.38L226.38,682.3L226.94,680.05L225.31,677.44L223.98,678.15L223.94,674.62L219.73,670.1L219.62,668.91L223.23,665.51L223.87,663.84L222.93,660.56L221.26,659.96L221.02,657.89L220.02,657.06L222.41,653.26L222.35,651.84L220.55,650.65L220.8,649.44L224.93,643.33L226.03,638.87L224.71,636.26L225.23,633.8L224.48,632.43L225.1,630.48L224.49,626.44L225.31,625.43L227.47,629.15L228.41,629.08L228.82,626.57L230.78,623.23L231.25,618.04L229.42,614.68L226.51,614.5L224.2,616.88L221.56,614.37L221.26,608.92L222.5,605.34L220.3,604.06L225.05,602.8L227.27,600.42L227.36,598.59L225.23,592.62L226.83,583.73L225.4,580.99L223.01,579.6L220.66,579.47L220.43,577.73L221.81,573.65L220.09,567.13L217.9,566.35L215.55,559.02L212.28,559.68L212.11,560.79L209.64,560.85L209.2,556.7L207.01,560.15L206.33,559.93L205.98,556.31L208.45,555.17L209.75,551.31L207.87,550.5L205.27,547.52L207.38,544.67L207.04,542.32L208.69,540.89L210.91,534.75L208.01,530.7L209.69,527.79L211.77,529.29L211.47,532.76L216.45,538.13L220.14,538.88L222.88,538.42L225.23,540.14L231.8,539.18L240.05,532.49L246.1,531.59L251.1,525.88L250.97,524.29L254.68,522.04L259.64,515.28L261.63,514.2L262.41,515.08L265.54,514.47L266.28,512.78L268.31,512.69L269.3,511.58L268.38,509.26L269.08,506.06L270.88,506.24ZM284.93,503.45L286.69,506.31L286.18,507.7L282.6,508.25L282.06,506.72L284.52,504.93Z"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<path
|
|
3
|
+
:class="
|
|
4
|
+
hoveredRegion && hoveredRegion !== currentRegion && data.value
|
|
5
|
+
? 'hovered'
|
|
6
|
+
: 'hover'
|
|
7
|
+
"
|
|
8
|
+
:id="`interactiveMap-${title}-${currentRegion}`"
|
|
9
|
+
:d="regionsPathIt[currentRegion]?.path"
|
|
10
|
+
:fill="data.color"
|
|
11
|
+
:stroke="data.color"
|
|
12
|
+
stroke-width="1"
|
|
13
|
+
@mouseover="onMouseOver"
|
|
14
|
+
@mouseleave="onMouseLeave"
|
|
15
|
+
/>
|
|
16
|
+
</template>
|
|
17
|
+
|
|
18
|
+
<script>
|
|
19
|
+
import regionsPathIt from "./maps/regionsPathIt.json";
|
|
20
|
+
import { defineComponent } from "vue";
|
|
21
|
+
export default defineComponent({
|
|
22
|
+
name: "oneRegionIt",
|
|
23
|
+
props: {
|
|
24
|
+
data: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: () => {
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
hoveredRegion: {
|
|
30
|
+
type: [String, null],
|
|
31
|
+
required: false,
|
|
32
|
+
default: null
|
|
33
|
+
},
|
|
34
|
+
title: {
|
|
35
|
+
type: [String, null],
|
|
36
|
+
required: true
|
|
37
|
+
},
|
|
38
|
+
currentRegion: {
|
|
39
|
+
type: String,
|
|
40
|
+
required: true
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
emits: ["hover", "mouseleave"],
|
|
44
|
+
setup(props, { emit }) {
|
|
45
|
+
function onMouseOver() {
|
|
46
|
+
emit("hover");
|
|
47
|
+
}
|
|
48
|
+
function onMouseLeave() {
|
|
49
|
+
emit("mouseleave");
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
regionsPathIt,
|
|
53
|
+
onMouseOver,
|
|
54
|
+
onMouseLeave
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
</script>
|
|
59
|
+
|
|
60
|
+
<style scoped>
|
|
61
|
+
.hovered{opacity:.5;transition:all .2s ease-in-out}.hover{cursor:pointer}
|
|
62
|
+
</style>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { RegionsIt } from "./maps/interfaces";
|
|
2
|
+
import type { PropType } from "vue";
|
|
3
|
+
type CurrentData = {
|
|
4
|
+
color?: string;
|
|
5
|
+
value?: number;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
8
|
+
data: {
|
|
9
|
+
type: PropType<CurrentData>;
|
|
10
|
+
default: () => void;
|
|
11
|
+
};
|
|
12
|
+
hoveredRegion: {
|
|
13
|
+
type: PropType<RegionsIt | null>;
|
|
14
|
+
required: false;
|
|
15
|
+
default: null;
|
|
16
|
+
};
|
|
17
|
+
title: {
|
|
18
|
+
type: PropType<string | null>;
|
|
19
|
+
required: true;
|
|
20
|
+
};
|
|
21
|
+
currentRegion: {
|
|
22
|
+
type: PropType<RegionsIt>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
}>, {
|
|
26
|
+
regionsPathIt: any;
|
|
27
|
+
onMouseOver: () => void;
|
|
28
|
+
onMouseLeave: () => void;
|
|
29
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("mouseleave" | "hover")[], "mouseleave" | "hover", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
30
|
+
data: {
|
|
31
|
+
type: PropType<CurrentData>;
|
|
32
|
+
default: () => void;
|
|
33
|
+
};
|
|
34
|
+
hoveredRegion: {
|
|
35
|
+
type: PropType<RegionsIt | null>;
|
|
36
|
+
required: false;
|
|
37
|
+
default: null;
|
|
38
|
+
};
|
|
39
|
+
title: {
|
|
40
|
+
type: PropType<string | null>;
|
|
41
|
+
required: true;
|
|
42
|
+
};
|
|
43
|
+
currentRegion: {
|
|
44
|
+
type: PropType<RegionsIt>;
|
|
45
|
+
required: true;
|
|
46
|
+
};
|
|
47
|
+
}>> & Readonly<{
|
|
48
|
+
onMouseleave?: ((...args: any[]) => any) | undefined;
|
|
49
|
+
onHover?: ((...args: any[]) => any) | undefined;
|
|
50
|
+
}>, {
|
|
51
|
+
data: CurrentData;
|
|
52
|
+
hoveredRegion: RegionsIt | null;
|
|
53
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
54
|
+
export default _default;
|