PASSAGGIO A VITE !

AGG. 1.1.23
This commit is contained in:
Surya Paolo
2025-03-01 14:14:43 +01:00
parent f0098e57b2
commit bc960d38a1
1044 changed files with 5323 additions and 10823777 deletions

View File

@@ -1,7 +1,7 @@
import {
defineComponent, onMounted, ref,
defineComponent, onMounted, ref,
} from 'vue'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useQuasar } from 'quasar'
// PropType,

View File

@@ -1,9 +1,9 @@
import { defineComponent, ref, onMounted, computed } from 'vue'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { tools } from '../../store/Modules/tools'
import { shared_consts } from '@/common/shared_vuejs'
import { shared_consts } from '@src/common/shared_vuejs'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
@@ -99,12 +99,12 @@ export default defineComponent({
model.value = tools.getCookie('AI_MOD', 'deepseek-chat')
max_tokens.value = tools.getCookie('AI_MT', 50, true)
withexplain.value = tools.getCookie('AI_WS', '0') === '1'
outputType.value = tools.getCookie('AI_OT', outputTypeList[0].value)
outputType.value = tools.getCookie('AI_OT', outputTypeList[0].value)
temperatura.value = tools.convstrToNum(tools.getCookie('AI_TEM', '0.3'))
stream.value = tools.getCookie('AI_ST', '0') === '1'
contestsystem.value = tools.getCookie('AI_CON', '')
contestsystem.value = tools.getCookie('AI_CON', '')
inputPrompt.value = tools.getCookie('AI_PRO', '')
}
function getInput() {
@@ -124,11 +124,11 @@ export default defineComponent({
tools.setCookie('AI_MOD', model.value)
tools.setCookie('AI_MT', max_tokens.value.toString())
tools.setCookie('AI_OT', outputType.value)
tools.setCookie('AI_OT', outputType.value)
tools.setCookie('AI_TEM', temperatura.value.toString())
tools.setCookie('AI_ST', stream.value ? '1' : '0')
tools.setCookie('AI_WE', withexplain.value ? '1' : '0')
tools.setCookie('AI_CON', contestsystem.value)
tools.setCookie('AI_ST', stream.value ? '1' : '0')
tools.setCookie('AI_WE', withexplain.value ? '1' : '0')
tools.setCookie('AI_CON', contestsystem.value)
tools.setCookie('AI_PRO', inputPrompt.value)
options.value = {
@@ -161,16 +161,16 @@ export default defineComponent({
const chunk = decoder.decode(value);
console.log('Received chunk:', chunk); // Log del chunk ricevuto
const lines = chunk.split('\n\n').filter((line) => line.trim() !== '');
const lines = chunk.split('\n\n').filter((line) => line.trim() !== '');
for (const line of lines) {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6)); // Rimuovi "data: " e parsifica il JSON
if (data.choice && data.choice.delta && data.choice.delta.content) {
if (data.choice && data.choice.delta && data.choice.delta.content) {
result.value += data.choice.delta.content || ''
outputvisibile.value += data.choice.delta.content || ''
}
}
/*errorMessage.value = data.error;
$q.notify({
color: 'negative',
@@ -189,8 +189,8 @@ export default defineComponent({
}
}
}
} else {
// Modalità non streaming
@@ -227,7 +227,7 @@ export default defineComponent({
});
}
}
const copyToClipboard = () => {
@@ -250,7 +250,7 @@ export default defineComponent({
}
function submitPrompt(event: any) {
if (inputPrompt.value.trim()) { // Controlla che l'input non sia vuoto
handleSubmit(); // Inviare la richiesta
}

View File

@@ -1,10 +1,12 @@
import { defineComponent, ref, PropType, watch, onMounted, computed } from 'vue'
import { useI18n } from '@src/boot/i18n'
import type { PropType} from 'vue';
import { defineComponent, ref, watch, onMounted, computed } from 'vue'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useQuasar } from 'quasar'
import { IAccomodation, IGallery, IImgGallery } from 'model'
import { CMyPage } from '@/components/CMyPage'
import { tools } from '@store/Modules/tools'
import type { IAccomodation} from 'model';
import { IGallery, IImgGallery } from 'model'
import { CMyPage } from '@src/components/CMyPage'
import { tools } from '@tools'
import { shared_consts } from '@src/common/shared_vuejs'
import { useGlobalStore } from '@store/globalStore'
import { costanti } from '@costanti'
@@ -135,8 +137,7 @@ export default defineComponent({
}
}
function deleteRec(rec: any)
{
function deleteRec(rec: any) {
deleted(rec)
}

View File

@@ -2,7 +2,7 @@ import { defineComponent, onMounted, ref, toRef, watch, toRefs } from 'vue'
import { tools } from '@src/store/Modules/tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import JsBarcode from 'jsbarcode'
@@ -49,7 +49,7 @@ export default defineComponent({
required: false,
default: '0',
},
fontsize: {
fontsizeprop: {
type: String,
required: false,
default: '16',

View File

@@ -1,17 +1,19 @@
import { inject, defineComponent, PropType, ref, watch, toRef, onMounted, toRefs, computed } from 'vue'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { tools } from '../../store/Modules/tools'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { shared_consts } from '@/common/shared_vuejs'
import { shared_consts } from '@src/common/shared_vuejs'
import type {
ISearchList
} from 'model';
import {
IColGridTable,
IFilter,
ITableRec,
ISearchList,
IPagination,
IParamDialog,
IMySkill
@@ -33,11 +35,11 @@ import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useQuasar, exportFile } from 'quasar'
import { costanti } from '@costanti'
import translate from '@/globalroutines/util'
import translate from '@src/globalroutines/util'
import { toolsext } from '@store/Modules/toolsext'
import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CMyCardGrpPopup } from '@/components/CMyCardGrpPopup'
import { CMyCardCircuitPopup } from '@/components/CMyCardCircuitPopup'
import { CMyCardPopup } from '@src/components/CMyCardPopup'
import { CMyCardGrpPopup } from '@src/components/CMyCardGrpPopup'
import { CMyCardCircuitPopup } from '@src/components/CMyCardCircuitPopup'
import { useRouter } from 'vue-router'
import { table } from 'console'
import { globals } from 'jest.config'
@@ -136,12 +138,12 @@ export default defineComponent({
})
const myfilter = ref('')
const myfilterand: any = ref([])
let rowsel: any = {}
const rowsel: any = {}
const dark = true
const canEdit = ref(false)
const optionsMainCards = ref()
let returnedCount = 0
const returnedCount = 0
const colVisib: any = ref([])
const colExtra: any = ref([])
const actualDate: any = ref(null as any)

View File

@@ -2,8 +2,8 @@ import { defineComponent, ref, computed, PropType, toRef } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { tools } from '@store/Modules/tools'
import { useI18n } from 'vue-i18n'
import { tools } from '@tools'
export default defineComponent({

View File

@@ -1,5 +1,6 @@
import { defineComponent, ref, computed, PropType, toRef } from 'vue'
import { IOperators } from 'model'
import type { PropType} from 'vue';
import { defineComponent, ref, computed, toRef } from 'vue'
import type { IOperators } from 'model'
export default defineComponent({
name: 'CBook',

View File

@@ -1,12 +1,14 @@
import { defineComponent, ref, computed, PropType, toRef, reactive, watch } from 'vue'
import { IBorder, IOperators, ISize } from 'model'
import type { PropType } from 'vue';
import { defineComponent, ref, computed, toRef, reactive, watch } from 'vue'
import type { IBorder } from 'model';
import { IOperators, ISize } from 'model'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useQuasar } from 'quasar'
import { CMySlider } from '@src/components/CMySlider'
import { shared_consts } from '@/common/shared_vuejs'
import { shared_consts } from '@src/common/shared_vuejs'
export default defineComponent({
name: 'CBorders',

View File

@@ -1,7 +1,8 @@
import { computed, defineComponent, PropType, ref } from 'vue'
import type { PropType} from 'vue';
import { computed, defineComponent, ref } from 'vue'
import { IOperators } from '../../model'
import { tools } from '@store/Modules/tools'
import type { IOperators } from '@model'
import { tools } from '@tools'
export default defineComponent({
name: 'CCard',

View File

@@ -1,12 +1,5 @@
.landing__swirl-bg {
background-repeat: no-repeat !important;
background-position: top;
background-size: contain !important;
background-image: url(/public/images/landing_first_section.png) !important
}
.landing__features {
opacity: .9;
font-size: 1rem;
line-height: 1.5;
}
}

View File

@@ -2,7 +2,7 @@ import { defineComponent, ref } from 'vue'
import { CCardDiscipline } from '../CCardDiscipline'
import { useGlobalStore } from '@store/globalStore'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
export default defineComponent({
name: 'CCardCarousel',

View File

@@ -1,7 +1,8 @@
import { computed, defineComponent, PropType, ref, toRef, watch } from 'vue'
import type { PropType} from 'vue';
import { computed, defineComponent, ref, toRef, watch } from 'vue'
import { tools } from '@store/Modules/tools'
import { IDiscipline, IEvents } from 'model'
import { tools } from '@tools'
import type { IDiscipline, IEvents } from 'model'
import { useCalendarStore } from '@store/CalendarStore'

View File

@@ -1,11 +1,11 @@
import { CCard } from '@/components/CCard'
import { CCard } from '@src/components/CCard'
import MixinOperator from '../../mixins/mixin-operator'
import { defineComponent, ref } from 'vue'
export default defineComponent({
name: 'CCardOperator',
components: { CCard },
props:{
props: {
username: {
type: String,
required: true,

View File

@@ -1,6 +1,6 @@
import { defineComponent } from 'vue'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
export default defineComponent({
name: 'CCardStat',

View File

@@ -1,6 +1,6 @@
import { defineComponent } from 'vue'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
export default defineComponent({
name: 'CCardState',

View File

@@ -1,19 +1,20 @@
import { defineComponent, onMounted, ref, computed, watch } from 'vue'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { useUserStore } from '@store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useProducts } from '@store/Products'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { ICart, IOrder, IOrderCart, IProduct, IShareWithUs } from '@src/model/Products'
import type { ICart, IOrder, IOrderCart, IProduct } from '@src/model/Products';
import { IShareWithUs } from '@src/model/Products'
import { shared_consts } from '@src/common/shared_vuejs'
import { CSingleCart } from '../CSingleCart'
import { CTitleBanner } from '@components'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { CSelectUserActive } from '@src/components/CSelectUserActive'
export default defineComponent({
@@ -54,7 +55,7 @@ export default defineComponent({
watch(() => isfinishLoading.value, (newval: boolean, oldval: boolean) => {
if (isfinishLoading.value) {
load()
}
}
})
const statusnow = computed(() => (): number => {
@@ -75,7 +76,7 @@ export default defineComponent({
} else {
return productStore.getCart()
}
}
function getItemsCart() {
@@ -85,7 +86,7 @@ export default defineComponent({
function getNumItems(): number {
const cart = getOrdersCart()
if (!!cart.items)
if (cart.items)
return cart.items.length || 0
else
return 0
@@ -138,7 +139,7 @@ export default defineComponent({
oldrec.value = myrec.value
note.value = mycart.value.note!
let options = {};
const options = {};
if (mycart.value) {
recOrderCart.value = await productStore.CreateOrdersCart({ cart_id: mycart.value._id, status: 0, note: note.value })
@@ -236,11 +237,11 @@ export default defineComponent({
}
async function insertArticolo() {
let lowerSearchText = search.value.trim();
const lowerSearchText = search.value.trim();
const myprod = productStore.getProductByCode(lowerSearchText);
if (myprod && myprod.active) {
let myorder: IOrder = {
const myorder: IOrder = {
quantity: 1, quantitypreordered: 0,
TotalPriceProduct: 0, TotalPriceProductCalc: 0, price: 0,
idStorehouse: getActualIdStorehouse(myprod),

View File

@@ -3,17 +3,18 @@ import {
provide, defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch,
} from 'vue'
import { tools } from '@store/Modules/tools'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { tools } from '@tools'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { costanti } from '@costanti'
import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore'
import { CTitlePage } from '@/components/CTitlePage'
import { CGridTableRec } from '@/components/CGridTableRec'
import { IColGridTable, IMyBacheca, IMySkill, ISearchList, ISkill } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { useI18n } from '@/boot/i18n'
import { CTitlePage } from '@src/components/CTitlePage'
import { CGridTableRec } from '@src/components/CGridTableRec'
import type { IColGridTable, ISearchList } from 'model';
import { IMyBacheca, IMySkill, ISkill } from 'model'
import { shared_consts } from '@src/common/shared_vuejs'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { useQuasar } from 'quasar'
@@ -145,7 +146,7 @@ export default defineComponent({
function mounted() {
let obj = tools.getParamsByTable(table.value)
const obj = tools.getParamsByTable(table.value)
prop_colkey.value = obj.prop_colkey

View File

@@ -1,7 +1,8 @@
import { PropType, defineComponent, ref, watch } from 'vue'
import type { PropType} from 'vue';
import { defineComponent, ref, watch } from 'vue'
import { Catalogo } from '@src/views/ecommerce/catalogo'
import { IOptCatalogo } from '@src/model'
import type { IOptCatalogo } from '@src/model'
export default defineComponent({
name: 'CCatalogo',

View File

@@ -1,5 +1,6 @@
import { defineComponent, ref, toRef, computed, PropType, watch, onMounted, reactive, onBeforeUnmount } from 'vue'
import { useI18n } from '@src/boot/i18n'
import type { PropType } from 'vue';
import { defineComponent, ref, toRef, computed, watch, onMounted, reactive, onBeforeUnmount } from 'vue'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useQuasar } from 'quasar'
@@ -7,6 +8,7 @@ import { useQuasar } from 'quasar'
import { CTitleBanner } from '../CTitleBanner'
import { CCardState } from '../CCardState'
import { CCopyBtn } from '../CCopyBtn'
import { CViewTable } from '../CViewTable'
import { CMyValueDb } from '../CMyValueDb'
import { CPrice } from '../CPrice'
import { CText } from '../CText'
@@ -16,11 +18,14 @@ import { CBarCode } from '../CBarCode'
import { func_tools, toolsext } from '@store/Modules/toolsext'
import {
IBaseOrder, IOptCatalogo, IGasordine, IMyScheda, IOrder, IOrderCart,
import type {
IOptCatalogo, IGasordine, IMyScheda, IOrder, IOrderCart,
IProduct, IVariazione
} from '@src/model';
import {
IBaseOrder
} from '@src/model'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { useProducts } from '@store/Products'
import { shared_consts } from '@src/common/shared_vuejs'
@@ -81,8 +86,8 @@ export default defineComponent({
},
components: {
CTitleBanner, CCardState, CCopyBtn, CMyValueDb, VuePdfApp, CPrice, CBarCode, CLabel,
CText
},
CText, CViewTable
},
setup(props, { emit }) {
const $q = useQuasar()
const { t } = useI18n()
@@ -92,7 +97,7 @@ export default defineComponent({
const listord = ref(<IOrderCart[]>[])
const sumval = ref(0)
const editOn = ref(false)
const loading = ref(false)
const indvariazSel = ref(-1)
@@ -103,10 +108,24 @@ export default defineComponent({
const fullscreenImage = ref(<any>null)
const apriSchedaPDF = ref(false)
const visufromgm = ref(false)
const updatefromgm = ref(false)
const showQtaDisponibile = ref(false)
const field_updated_fromGM = ref('')
// Crea una copia locale reattiva di modelValue
const optcatalogo = ref<IOptCatalogo>({ ...props.modelValue });
const editOn = computed({
get(): boolean {
return globalStore.editOn ? globalStore.editOn : false
},
set(value: boolean) {
return tools.updateEditOn(value)
}
})
// Watcher per sincronizzare le modifiche di modelValue
watch(() => props.modelValue, (newVal) => {
optcatalogo.value = { ...newVal };
@@ -123,8 +142,8 @@ export default defineComponent({
updateCatalogoPadre()
};
let myorder = reactive(<IOrder>{
idapp: process.env.APP_ID,
const myorder = reactive(<IOrder>{
idapp: tools.getEnv('VITE_APP_ID'),
quantity: 0,
quantitypreordered: 0,
idStorehouse: '',
@@ -157,7 +176,7 @@ export default defineComponent({
return products.replaceKeyWordsByProduct(
optcatalogo.value,
myproduct.value!,
props.scheda!.testo_right!,
props.scheda.testo_right!,
props.idPage,
)
})
@@ -165,7 +184,7 @@ export default defineComponent({
return products.replaceKeyWordsByProduct(
optcatalogo.value,
myproduct.value!,
props.scheda!.testo_right_attaccato!,
props.scheda.testo_right_attaccato!,
props.idPage,
)
})
@@ -182,7 +201,7 @@ export default defineComponent({
return products.replaceKeyWordsByProduct(
optcatalogo.value,
myproduct.value!,
props.scheda!.testo_bottom!,
props.scheda.testo_bottom!,
props.idPage,
)
})
@@ -203,11 +222,7 @@ export default defineComponent({
function iconWhishlist(order: IProduct) {
if (true) {
return 'far fa-heart'
} else {
return 'fas fa-heart'
}
return 'fas fa-heart'
}
async function addtoCart(add: boolean) {
@@ -309,7 +324,7 @@ export default defineComponent({
}
async function updateproductmodif() {
console.log('updateproductmodif')
// console.log('updateproductmodif')
try {
myproduct.value = await products.getProductById(props.id)
@@ -437,7 +452,7 @@ export default defineComponent({
// console.log('Load', myproduct.value.name)
if (!!myproduct.value) {
if (myproduct.value) {
arrordersCart.value = products.getOrdersCartInAttesaByIdProduct(myproduct.value._id)
if (myproduct.value.storehouses && myproduct.value.storehouses.length === 1) {
@@ -575,7 +590,7 @@ export default defineComponent({
emit('opendetail')
}
function escludiArticolo(variazione: IVariazione) {
let hasExcludeProductTypes = !optcatalogo.value.excludeproductTypes || (optcatalogo.value.excludeproductTypes && (optcatalogo.value.excludeproductTypes.includes(variazione.versione!)))
const hasExcludeProductTypes = !optcatalogo.value.excludeproductTypes || (optcatalogo.value.excludeproductTypes && (optcatalogo.value.excludeproductTypes.includes(variazione.versione!)))
return hasExcludeProductTypes
}
@@ -602,7 +617,7 @@ export default defineComponent({
try {
//return myproduct.value!.productInfo.rank1Y! > 0 && (myproduct.value!.productInfo.rank1Y! < props.scheda.etichette?.bestseller?.primiNInClassifica!)
return myproduct.value!.indiceRanking! > 0 && (myproduct.value!.indiceRanking! < props.scheda.etichette?.bestseller?.primiNInClassifica!)
return myproduct.value!.indiceRanking! > 0 && (myproduct.value!.indiceRanking! < props.scheda.etichette?.bestseller?.primiNInClassifica)
} catch (e) {
return false
}
@@ -616,6 +631,20 @@ export default defineComponent({
return optcatalogo.value.areadistampa!.scale
}
async function refreshDataFromGM() {
}
async function refreshFieldFromGM(field: string) {
if (myproduct.value) {
loading.value = true
updatefromgm.value = true
field_updated_fromGM.value = ''
field_updated_fromGM.value = await globalStore.getGM_FieldOf_T_Web_Articoli(myproduct.value.productInfo.sku!, field, shared_consts.CmdQueryMs.GET)
loading.value = false
}
}
onMounted(mounted)
onBeforeUnmount(beforeDestroy)
@@ -683,6 +712,13 @@ export default defineComponent({
getScale,
updateCatalogo,
optcatalogo,
visufromgm,
updatefromgm,
showQtaDisponibile,
field_updated_fromGM,
refreshFieldFromGM,
refreshDataFromGM,
loading,
}
}
})

View File

@@ -118,19 +118,84 @@
@click="click_opendetail()"
/>
</a>
<q-btn
v-if="
(tools.isManager() || tools.isEditor()) &&
!optcatalogo.generazionePDFInCorso &&
globalStore.editOn
"
icon="fas fa-pencil-alt"
color="primary"
@click.stop="modifOn = !modifOn"
dense
style="position: absolute; top: 0px; left: 0px; z-index: 3"
>
</q-btn>
<q-card-actions align="center" class="q-pa-none absolute-top-left">
<div class="row justify-center">
<q-fab
v-if="
(tools.isManager() || tools.isEditor()) &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
color="primary"
icon="fas fa-pencil-alt"
direction="up"
flat
dense
>
<q-fab-action
v-if="
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
icon="fas fa-pencil-alt"
label="Aggiorna da GM"
color="accent"
@click="refreshDataFromGM()"
/>
<q-fab-action
v-if="
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
icon="fas fa-pencil-alt"
label="Visualizza su GM"
color="positive"
@click="
showQtaDisponibile = false;
visufromgm = true;
"
/>
<q-fab-action
v-if="
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
icon="fas fa-eye"
label="Vedi Numero di Pagine (Da GM)"
color="positive"
@click="refreshFieldFromGM('Pagine')"
/>
<q-fab-action
v-if="
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
icon="fas fa-pencil-alt"
label="Visualizza su GM (Tutti i campi)"
color="positive"
@click="
showQtaDisponibile = true;
visufromgm = true;
"
/>
<q-fab-action
v-if="
(tools.isManager() || tools.isEditor()) &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
label="Modifica"
icon="fas fa-pencil-alt"
color="primary"
@click="modifOn = !modifOn"
/>
</q-fab>
</div>
</q-card-actions>
</div>
<!-- Testo sotto all'immagine -->
@@ -172,9 +237,7 @@
<CBarCode
:value="myproduct.productInfo.code"
:format="scheda.barcode.format"
:fontsize="
scheda.barcode.font?.size
"
:fontsizeprop="scheda.barcode.font?.size"
:gap="
tools.adjustSize(optcatalogo, scheda.barcode.size?.gap)
"
@@ -186,7 +249,9 @@
)
)
"
:widthlines="tools.adjustSize(optcatalogo, scheda.barcode.widthlines)"
:widthlines="
tools.adjustSize(optcatalogo, scheda.barcode.widthlines)
"
:height="
tools.adjustSize(
optcatalogo,
@@ -251,9 +316,7 @@
<CBarCode
:value="myproduct.productInfo.code"
:format="scheda.barcode.format"
:fontsize="
scheda.barcode.font?.size
"
:fontsizeprop="scheda.barcode.font?.size"
:gap="
tools.adjustSize(optcatalogo, scheda.barcode.size?.gap)
"
@@ -265,7 +328,9 @@
)
)
"
:widthlines="tools.adjustSize(optcatalogo, scheda.barcode.widthlines)"
:widthlines="
tools.adjustSize(optcatalogo, scheda.barcode.widthlines)
"
:height="
tools.adjustSize(optcatalogo, scheda.barcode.size?.height)
"
@@ -347,7 +412,7 @@
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title>
{{ t('ecomm.listaord') }} - {{ myproduct.productInfo.name }}
{{ t("ecomm.listaord") }} - {{ myproduct.productInfo.name }}
</q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
@@ -652,7 +717,11 @@
</div>
<div class="boxtitleval">
<div class="etichetta">Argomenti:</div>
{{ products.getCatProdsStrByCatProds(myproduct.productInfo.idCatProds) }}
{{
products.getCatProdsStrByCatProds(
myproduct.productInfo.idCatProds
)
}}
</div>
</div>
<div class="row">
@@ -838,6 +907,43 @@
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-if="visufromgm && myproduct" v-model="visufromgm">
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title> Visu </q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
<q-card-section class="q-pa-xs inset-shadow">
<CViewTable
:options="{
nameTable: 'T_Web_Articoli',
campispeciali: true,
numrec: 100,
where: 'T.IdArticolo =' + myproduct.productInfo.sku,
showQtaDisponibile,
outhtml: true,
}"
>
</CViewTable>
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-if="updatefromgm && myproduct" v-model="updatefromgm">
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title> Aggiorna da GM: </q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
<q-card-section class="q-pa-xs inset-shadow">
<q-inner-loading id="spinner" :showing="loading">
<q-spinner-tail color="primary" size="4em"> </q-spinner-tail>
</q-inner-loading>
<br />
Valore: {{ field_updated_fromGM }}
<br />
</q-card-section>
</q-card>
</q-dialog>
</div>
</template>
@@ -845,5 +951,5 @@
</script>
<style lang="scss" scoped>
@import './CCatalogoCard.scss';
@import "./CCatalogoCard.scss";
</style>

View File

@@ -1,371 +0,0 @@
.chart {
height: 400px;
min-width: 360px;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
padding: 3em 0 0;
font-family: Inter, "Helvetica Neue", Arial, sans-serif;
font-weight: 300;
color: #666;
text-align: center;
}
a {
color: inherit;
text-decoration: none;
}
h1 {
margin-bottom: 1em;
font-family: Inter, "Helvetica Neue", Arial, sans-serif;
}
h1,
h2 {
color: #2c3e50;
font-weight: 400;
}
h2 {
margin-top: 2em;
padding-top: 1em;
font-size: 1.2em;
button {
margin-left: 1em;
vertical-align: middle;
}
}
.desc {
margin-bottom: 3em;
color: #7f8c8d;
a {
color: #42b983;
}
}
h2 small {
opacity: 0.7;
}
p small {
font-size: 0.8em;
color: #7f8c8d;
}
p {
line-height: 1.5;
}
pre {
display: inline-block;
padding: 0.8em;
background-color: #f9f9f9;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125);
line-height: 1.1;
color: #2973b7;
}
pre,
code {
font-family: "Roboto Mono", Monaco, courier, monospace;
}
pre code {
font-size: 0.8em;
}
.attr {
color: #e96900;
}
.val {
color: #42b983;
}
footer {
margin: 5em 0 3em;
font-size: 0.5em;
vertical-align: middle;
a {
display: inline-block;
margin: 0 5px;
padding: 3px 0 6px;
color: #7f8c8d;
font-size: 2em;
text-decoration: none;
}
a:hover {
padding-bottom: 3px;
border-bottom: 3px solid #42b983;
}
}
button,
select {
border: 1px solid #4fc08d;
border-radius: 2em;
background-color: #fff;
color: #42b983;
cursor: pointer;
font: inherit;
padding: 0 0.5em;
transition: opacity 0.3s;
-webkit-appearance: none;
transition: all 0.2s;
&:focus {
outline: none;
}
&:focus-visible {
box-shadow: 0 0 1px #4fc08d;
}
&:active {
background: rgba(79, 192, 141, 0.2);
}
&[disabled] {
opacity: 0.5;
cursor: not-allowed;
}
&.round {
width: 1.6em;
height: 1.6em;
position: relative;
&::before,
&::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 9px;
height: 1px;
background-color: #42b983;
}
&::after {
width: 1px;
height: 9px;
}
&.expand::after {
display: none;
}
}
}
label {
display: flex;
align-items: center;
justify-content: center;
}
p {
button + button,
button + select,
select + button,
select + select {
margin-left: 0.5em;
}
}
button,
label,
select {
font-size: 0.75em;
height: 2.4em;
}
figure {
display: inline-block;
position: relative;
margin: 2em auto;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 8px;
box-shadow: 0 0 45px rgba(0, 0, 0, 0.2);
padding: 1.5em 2em;
min-width: calc(40vw + 4em);
.echarts {
width: 100%;
width: 40vw;
min-width: 400px;
height: 300px;
}
}
#logo {
display: inline-block;
width: 128px;
height: 128px;
pointer-events: none;
}
.modal {
display: none;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.2);
z-index: 1;
&.open {
display: block;
}
img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #404a59;
max-width: 80vw;
border: 2px solid #fff;
border-radius: 3px;
box-shadow: 0 0 30px rgba(0, 0, 0, 0.2);
}
}
@media (min-width: 980px) {
figure.half {
padding: 1em 1.5em;
min-width: calc(240px + 3em);
.echarts {
width: 28vw;
min-width: 240px;
height: 180px;
}
&:not(:last-child) {
margin-right: 15px;
}
}
}
@media (max-width: 980px) {
p {
display: flex;
justify-content: center;
select {
text-indent: calc(50% - 1em);
}
select,
label {
border: 1px solid #4fc08d;
border-radius: 2em;
background-color: #fff;
color: #42b983;
cursor: pointer;
transition: opacity 0.3s;
}
button,
input,
select,
label {
flex: 1 0;
margin: 0 0.5em;
padding: 0;
line-height: 2.4em;
max-width: 40vw;
border-radius: 2px;
font-size: 0.8em;
}
select {
-webkit-appearance: none;
}
input[type="checkbox"] {
display: none;
&:checked + label {
background: #42b983;
color: #fff;
}
}
}
figure {
width: 100vw;
margin: 1em auto;
padding: 1em 0;
border: none;
border-radius: 0;
box-shadow: none;
.echarts {
width: 100%;
min-width: 0;
height: 75vw;
}
}
}
.renderer {
position: fixed;
top: 10px;
left: 10px;
font-size: 16px;
text-align: center;
button {
float: left;
position: relative;
width: 64px;
border-radius: 6px;
border-color: #36485e;
color: rgba(54, 72, 94, 0.8);
font-weight: 500;
&:focus-visible {
box-shadow: 0 0 1px #36485e;
}
&:active {
background: rgba(54, 72, 94, 0.2);
}
&.active {
z-index: 1;
background-color: #36485e;
color: #fff;
}
&:first-child {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
&:last-child {
left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
}

View File

@@ -1,269 +0,0 @@
/* eslint-disable no-console */
import qs from 'qs'
// import VChart from '../ECharts'
import VChart, { THEME_KEY } from 'vue-echarts'
import { ref, defineComponent, onMounted } from 'vue'
import {
use,
registerMap,
registerTheme,
connect,
disconnect
} from 'echarts/core'
import {
MapChart,
} from 'echarts/charts'
import {
GeoComponent,
TooltipComponent,
LegendComponent,
TitleComponent,
VisualMapComponent,
DatasetComponent,
ToolboxComponent,
DataZoomComponent
} from 'echarts/components'
import { CanvasRenderer, SVGRenderer } from 'echarts/renderers'
// custom theme
import theme from './theme.json'
// Map of China
// import italyMap from './italy.json'
// import italiaMap from './data/italia.json'
import italiaMap from './data/limits_IT_provinces.json'
import worldMap from './world.json'
import { watch } from 'vue'
use([
MapChart,
GeoComponent,
TooltipComponent,
LegendComponent,
TitleComponent,
VisualMapComponent,
DatasetComponent,
CanvasRenderer,
SVGRenderer,
ToolboxComponent,
DataZoomComponent
])
// registering map data
// @ts-ignore
registerMap('italia', italiaMap)
// registerMap('italy', italyMap)
// @ts-ignore
registerMap('world', worldMap)
require ('./data/Italy.js')
// registering custom theme
registerTheme('ovilia-green', theme)
export default defineComponent({
name: 'CChartMap',
props: {
title: {
type: String,
required: true
},
subtitle: {
type: String,
required: true
},
sublink: {
type: String,
required: false,
default: ''
},
serie1: {
type: String,
required: false,
default: ''
},
},
components: {
VChart
},
setup(props) {
const options = qs.parse(location.search, { ignoreQueryPrefix: true })
const initOptions = {
renderer: options.renderer || 'canvas'
}
const data = ref([
{ name: '海门', value: 9 },
{ name: '鄂尔多斯', value: 12 },
{ name: '招远', value: 12 },
])
const geoCoordMap = {
: [121.15, 31.89],
: [109.781327, 39.608266],
: [120.38, 37.35],
}
const textStyle = {
fontFamily: 'Inter, "Helvetica Neue", Arial, sans-serif'
}
const backgroundColor = '#404a59'
const title = {
text: '',
subtext: 'data from PM25.in',
sublink: 'http://www.pm25.in',
left: 'center',
textStyle: {
color: '#fff'
}
}
const tooltip = {
trigger: 'item'
}
const legend = {
orient: 'vertical',
y: 'bottom',
x: 'right',
data: ['aaa'],
textStyle: {
color: '#fff'
}
}
const geo = {
map: 'italia',
emphasis: {
label: {
show: false
},
itemStyle: {
areaColor: '#2a333d'
}
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
}
}
const series = [
{
name: 'aaa',
type: 'scatter',
coordinateSystem: 'geo',
data: convertData(data.value),
symbolSize: (val: any) => {
return val[2] / 10
},
tooltip: {
formatter: function (val: any) {
return val.name + ': ' + val.value[2]
}
},
itemStyle: {
color: '#ddb926'
}
},
{
name: 'Top 5',
type: 'effectScatter',
coordinateSystem: 'geo',
data: convertData(data.value.sort((a: any, b: any) => b.value - a.value).slice(0, 6)),
symbolSize: (val:any) => val[2] / 10,
showEffectOn: 'render',
rippleEffect: {
brushType: 'stroke'
},
emphasis: {
scale: true
},
tooltip: {
formatter: function (val: any) {
return val.name + ': ' + val.value[2]
}
},
label: {
formatter: '{b}',
position: 'right',
show: true
},
itemStyle: {
color: '#f4e925',
shadowBlur: 10,
shadowColor: '#333'
},
zlevel: 1
}
]
watch(() => initOptions.renderer, (value, oldval) => {
options.renderer = value === 'svg' ? value : undefined
let query = qs.stringify(options)
query = query ? '?' + query : ''
history.pushState(
{},
document.title,
`${location.origin}${location.pathname}${query}${location.hash}`
)
})
function convert() {
/*
const map = $refs.map;
img = {
src: map.getDataURL({
pixelRatio: window.devicePixelRatio || 1
}),
width: map.getWidth(),
height: map.getHeight()
};
open = true;
*/
}
function mounted() {
title.text = props.title
title.subtext = props.subtitle
title.sublink = props.sublink
series[0].name = props.serie1
legend.data[0] = props.serie1
}
function convertData(data: any[]) {
const res = []
for (let i = 0; i < data.length; i++) {
// @ts-ignore
const geoCoord: any = geoCoordMap[data[i].name]
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value)
})
}
}
return res
}
onMounted(mounted)
return {
options,
map: {
series,
textStyle,
backgroundColor,
title,
tooltip,
legend,
geo,
},
expand: {
map: true,
},
initOptions,
}
}
})

View File

@@ -1,39 +0,0 @@
<template>
<div class="chart">
<div>{{ title }}</div>
<figure style="background-color: #404a59">
<v-chart
:option="map"
:init-options="initOptions"
ref="map"
autoresize
/>
</figure>
<aside class="renderer">
<button
:class="{
active: initOptions.renderer === 'canvas'
}"
@click="initOptions.renderer = 'canvas'"
>
Canvas
</button>
<button
:class="{
active: initOptions.renderer === 'svg'
}"
@click="initOptions.renderer = 'svg'"
>SVG
</button>
</aside>
</div>
</template>
<script lang="ts" src="./CChartMap.ts">
</script>
<style lang="scss" scoped>
@import './CChartMap.scss';
</style>

View File

@@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 465 750">
<path fill="currentColor" d="M367.855,428.202c-3.674-1.385-7.452-1.966-11.146-1.794c0.659-2.922,0.844-5.85,0.58-8.719 c-0.937-10.407-7.663-19.864-18.063-23.834c-10.697-4.043-22.298-1.168-29.902,6.403c3.015,0.026,6.074,0.594,9.035,1.728 c13.626,5.151,20.465,20.379,15.32,34.004c-1.905,5.02-5.177,9.115-9.22,12.05c-6.951,4.992-16.19,6.536-24.777,3.271 c-13.625-5.137-20.471-20.371-15.32-34.004c0.673-1.768,1.523-3.423,2.526-4.992h-0.014c0,0,0,0,0,0.014 c4.386-6.853,8.145-14.279,11.146-22.187c23.294-61.505-7.689-130.278-69.215-153.579c-61.532-23.293-130.279,7.69-153.579,69.202 c-6.371,16.785-8.679,34.097-7.426,50.901c0.026,0.554,0.079,1.121,0.132,1.688c4.973,57.107,41.767,109.148,98.945,130.793 c58.162,22.008,121.303,6.529,162.839-34.465c7.103-6.893,17.826-9.444,27.679-5.719c11.858,4.491,18.565,16.6,16.719,28.643 c4.438-3.126,8.033-7.564,10.117-13.045C389.751,449.992,382.411,433.709,367.855,428.202z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1008 B

File diff suppressed because one or more lines are too long

View File

@@ -1,310 +0,0 @@
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
define(['exports', 'echarts'], factory)
} else if (typeof exports === 'object' && typeof exports.nodeName !==
'string') {factory(exports, require('echarts'))} else {
factory({}, root.echarts)
}
}(this, function (exports, echarts) {
var log = function (msg) {
if (typeof console !== 'undefined') {
console && console.error && console.error(msg)
}
}
if (!echarts) {
log('ECharts is not Loaded')
return
}
if (!echarts.registerMap) {
log('ECharts Map is not loaded')
return
}
echarts.registerMap('ITALY', {
'type': 'FeatureCollection',
'features': [
{
'type': 'Feature',
'properties': { 'name': 'Abruzzo' },
'geometry': {
'type': 'Polygon',
'coordinates': ['@@bE\\KRDHJVH^RTOHLGVHXVNXBXE^D^\\Cp`jXJJjR@TWtGLLbApVHQNIzHZPpPDTRVGLhNl@NFhBtNXLJJtNZ@xNZ@VHV@JCR‘@Kd¡VoVaNOj—€•VSd{hsnoZanil_zyrgZORCHM~kxckœmjORSREASXWFS\\Y\\S~ch]AUNQVKpSl[tW„YØojEF_EKJyI]RS^W\\MrSYcGSZCPIEMYS[IQKaGuu@G]ScaEKDOGamceIQICQ]g@S[UKWUWcAW]KEDM‡eQWeD[AEFRXQfOˆITYBGTOHcZkEC`_KFKKQ]FAN]bETWEUBc^KBQQ]QQSeM[ogIS@eIg]deHYBcLKdAPKMSAS]DE`IBQSEQqGYFMQRUISWQGVO\\ALqAGIYYAesBCOQYqXDYEMIQJO\\IX]@S`]KsHONOA_FQXSGK@QKaNW@ALWJ@VOTQJETUF[UYHSZiN]@UQJU]U[CWS_ESU[L[@{XDNSPM\\kDMH[DW\\sNgPUEI]WCWXEpFVOLLTPJVhKPk\\MGYJGPUVaTSKSFc\\wPQT_Jc@aPaLaVQH‡VQKJUOA]BqNIPEXg^C\\MVNjPXHXpHZTHNTJN`@NKXŒCNIŽi\\PZCTOdK\\[XC`PXHRIjHLT^NGJXNXCTFMRhHX@ORgDUPSTTRKJ_PyDSJOPET]V[JOPKTE€K@oXsfePbZhXJPIVgN]PY^UN_Pd^jHrbMNLvSHSXCZVBTVC`dTATlI^@ROTC`VpANWjF^L`IŽLZVGVLhXND^wNW@[`KF@\\PZ'],
'encodeOffsets': [[13680, 43721]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Aosta Valley' },
'geometry': {
'type': 'Polygon',
'coordinates': ['@@AQJCGSJwNMCQMIEQNIHQWKHeGUVYRMFW^SdK\\CGMTUeoM@M]NK@STGAKNUZKEOmGciAWKEYFaEWJOIUBaK‰k{UYQKAOP_EeDUI}bYDqOGTML}ZWAaKQOQ@qNQ@QI_ACI]WAKmQSCBMiKBE[QYEGLOFQGaAYMwDUG[FKa_IWOKUMISB[T_DYAYJ_QKZLJKj_S@OMW@SUSGDoJyCA\\PDANƒDWFQNJV]\\J^KVBPLJAN]PEHPrEJHNRLLNWP[DKP™MSL@N[JHJGXSKSL]@mRIT[HQ^URRZQLE^BTGXHVNJBVMTTZBJdFPHlSRZNJVIjE`J\\@VZnRd@RNLXEZVNPVnJhY@SZI@If]EER[b@`TDHfNVGEG\\Q`GTJENRTRHBJXFZCNFVGZVLBR`RJPG\\ADIZA^HXGRMdMLBZZRCpXVV\\HbBEXNJbJpHHGj@FJI\\RTz@FULGnCTFdCjNLAZUJQdCVMCY\\W\\BZ`lEPMTENMREhT^Kh@PI'],
'encodeOffsets': [[8053, 47019]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Apulia' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@NEpEEt@¨B¶GPO\\IxE¦D¦J€Hü\\NHdCfKV@LKXA’BœD¤JšJxJTCˆJ NZL\\AJHtK`DnKR@ROXI\\WREnGLWTQfKKICoT_LCESLKAiDQKEESDI]OMCIU_IEM]IOBGO]CY[_GQ_UIi[UEMI_EoWkMYKMIWKm]MiAsFcLel“hmVQxe`OxUfIäbG|_xSR@RGn]jUXG`CUhG^I’edG`UlW^G\\BHIfGBGZ@^I\\UTALInSHKRA|WVB^GVDVEVM~UrGbGPG\\@bYbOlG\\HNU\\BPIfMXC|QxUrEVI`GŠIhQ`I\\O–i`KnGTQ^SBMbMhGLIfSbKteDKTEFKNCXW@E\\c`KlK‚w€[fUHStWxS^GTKbEŽWfCbKœWfSFD^QjSBG^KTM^I^CBKPI‚]¨QŒE\\JXeVE@IQMNGZH\\MDJT@dUB]PSjaGIBUMMDUPOh[RELYJGnYHA`_XK`CNIT@^WbATIVUZG^WV[TIJO‚gCIX[†i^YV]RQn_`MNM@[VGNkRMPeM_FOTQRWDYVYHORBHMPKSO\\c[[WKSQMg@SIOUMwWGk_SEUSiA_K]CeGKJIJWEGB[QwGIBSJMCOimOHaKSHMVeLELmReTsC{HICm\\WBON_JMNm`WJWPOBUPOVm\\af@NKPSHgv\\DPNJbEV[boRTD^\\NjGfKHS^ITcRMAGPY\\QDelCRRdCL_V@^ORSD[ZcX[BIIsRg@IFcDSAmFWH{F}D¥GsCm@ÃIYb‰JQXsJc@_DUNKROAWNICSN_B_NAH]N_@STQ@INOAo\\aBKHVTjDTLR^AT[h`BDGbD\\IZAfJLLJVSTm@eSBKMGGRDRYHQC[UIQSAg@MCSHKR[b_WFXGFaPaFu@[CuKyOyW™qm_kaGKcLqb]\\@\\MVSJƒ@oLaZdnARUDSTRXSTQJDZRhIVZRW^G`bœDVWBeZPTHKbP¡n[ZCWYBHLiTqCXQQVYIIQFK`KF_KKMTGFaI@}zORIG_kaYƒgcGYN[rKJƒ`~{`YRIPWPKVQJWbM€GFK^W\\‘VaGOKIYWMylSFqL[P“ZkJMHI\\ZCf@LD^^RXGZ@ZZJET_Z]PQIexFNMLmALNKVcDGGWDg`MG]`SAIKeKWJSYQ@SMOeSIODYK_\\mDGKQG‡E‰F_NYFUEgDOA_O]_KQCSYB§dAH_EaD[VORYB_RW[[MMAWT]@oRaU]HaTCNSHAJsjMAUNCNBXZPNTLBx^_jAZJHTAXDHVWNOVSHWBIISCIVWDMRcAiE]BO^SJH^cBYRaBWHIZBJMPE^VHRVjFW\\J\\XHIZkAWNeFGLBPYAAVKVaTQTcT[\\uJEHBnPZFVCRHTUjKN`^TXtMNSbM^ADZhLH`LH`@jZVAHJ@RXPbH^NKNYNQDITYZ@PZ@ebJbZNDtOLQZH\\VHRRL\\TLAXIHCPLr'],
['@@TBIYOIQRXP']],
'encodeOffsets': [[[15502, 42935]], [[15859, 43132]]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Basilicata' },
'geometry': {
'type': 'Polygon',
'coordinates': ['@@DTLR^``PPBhCVFZE`MŠEˆFRHHLnC`[ZLPCTJPfTNR@TZXIfLJLTB^_NHh_XCHHdCLUKMnBNKEMfwRJ^O`YFSYI@YHYQW]]KCe@YDJ[NGlI”Y\\OrKTEzkXNJZPLbH’UX[L]HENXaRILUXOJOZQ|_€}„_LI\\qZMdH„hbZ`lJHPQ~yJ@EbSHLN`LLEL_REJJUZRR‚WrDjSGKZADX\\Y¢maOGLOSfYXACUa›H_X]YQJUQgCYRITSQWTSVCBQcmbYpK„@TINU@[^[radKUaŸWUksk…YeY…QUW_[_S_SS‰seXMFUGqJYMUHmMSK]VYDOIQB_PeBcOY`C]UOJUCeFUQOI]MOAOJoM_igCMQQDOGKUIS[VWXIIeWDwvWHkC]JcGYMq@JQ@OG[eLOP{XieMLUEcDYGOK{BGEMbIJ]NAVONO`ZfVFHLETOD]BEMuMURaF]LQBc[YKOZYDSMUXYFqEAIUQY_]KSU@SKaSOIVK@SRA`ENQHERMHIPUHBL]HMR@dYVc@AH~XARMT]FpPz„EJL\\CVILAP`RETbPAHTXRELLRHXP`@PPMHEPDN`PKPBVLDQTIP_FQCEPkFa^HLSFahCdNPBPjQK]lMD[VqROLSZOLBTMBKNSBa\\ER\\RSNDbMFFLMNAPRXKJSCQFEVMF]AKPYAOV[HP`NHDXrRTPDP[DENcDYJILmPMROHQV[BUNDXG^HZPJUXHJBZOEUH\\Z[BYZ[HILvJZIHLEPA^KR[@AVlHRSLAZL~IX@PORAXNILAR‚VVLbDPXRlAHJPhbFZATFPIL@NMHCNJNWTCZMH'],
'encodeOffsets': [[15916, 42042]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Calabria' },
'geometry': {
'type': 'Polygon',
'coordinates': ['@@TPLb@TTV^LZ`VRBJrFZEVWTNZCPYZLd\\RA^KbEVQvNFN^APCFSGKUEYeP_PMBU^MJINaHF|APLZHdCVFNKjf|WPOfKH\\@PIRr@ZNdH^IlDXGxuXCJfWJUXT\\VJHLCPRRDNjhN`IpBPNPJ^RPEVDfIVVPD^Z_dPfA`ORAPJZC^UTLnNVGZNrIVHNEfWoeciG]DSIYTsDiPiVWCMOKMSOGcaaciuSSWaIUIc@mDULUVUnSI©KINS`GlY†]XGpGbA‚BPB’IV@bPfIZWlYTORg\\WnYHIˆ[JIlO`UfMjG€GPENMTmVY\\QzadILIlIf@AMciCSK]aCYBaKoDWHQXYLSXQPOMeS]a…IgCWFWHIPBBMXCIQJcXUtYzMHI_AcaMQI_D]ROWSUIcaWQIMUIMMKTQJOAQJmFUGQUaVO^ULQFoAÃS¹]Ÿ]{Y…aŸu‰aYAkaQ[mmIKSu][Q]DUVUN@JUEmH‹TBcDQAwFoJUHŸWy[]¹§ue‡_K@uO‘YcEUGcU_g[S_g‡‡UU‡‰i_QSEQCqMkEiK_BWk‰@E_qegqmaEUDaCkMQF…DQFWBEH[BEKB­Q_DmGu@_RcFgPc^]HŒSdCThXFVQZHXcTE`AVbVJT@NJNKNJPENWV@ZMHCŒFR„RXPnLVBnA^HRJˆdpl@LXdAZPvZNRRJTCF\\vblZ@CNL\\X\\OJNzTjFbCL]J[TOZKBMRWHSVQJILcNTxVX`PPNTAZNbD\\LpHVP\\`^RjAVHpBLEdEnMjCXLTCdPZ\\\\HRLLP^xVxLtD„@|CjMV]D_PYRSBKJI^MPETOXWPktEhGNIbGjCFG^SlGt@‚EXC†I®M^OŒO\\Orq²WfYZ]XUdo~U@QV[DUJMTMlGJIfMdOVKtMb[PQ‚GHHPEdWˆQ˜SLBTOHZZPBD^QRBPGVo~'],
'encodeOffsets': [[16135, 40881]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Campania' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@Hh\\BlGJCZ@NJNI[[OHWAQMKD]EOH'],
['@@RHBPMXXRPbVELIfG\\FRInINSAQJEBOSOm@WMaHUEWBOEo^'],
['@@Rd^AJHtA\\^HRMXNBRNbBVLXEPNALLR_`KVHLQfPbTJUXDL]PCPtTLEXBVPVH€jHLdAzQHMCMMOJKZCRMDO\\_fJnDZS`GDHUXH^MR_^KNPZCRPDPVPJVV@RNDvq\\GD`NJbC\\DXEXB\\APWzB^S@MXEnY`@WP@VKXHRQdIbBVQV@BSVeXEJKdF|K^ZRCZ[EIdOXJ^VHPdTZEDLGL^DVH`CDGZIlNXB^RBPLPDXVNT@^KHK„[VCVFZ^ZLŒJnLNNnHBT\\BVNbSLUBUZBAOHKfEXMlBJYWGI[X[iEQUUGF]NOAIJYXGbAZQdAG]TIP]^AjFdBNQXCJUTDJJXATGPUXMGUWCSBIGBY`iw]KAMSYOAWDMVMNBtiBITGDMbS^GbVpQ^@XSNB\\NX\\`QZAPQ\\UbC`FBG¨cZANGDYXSIMDMNG@MJKEOBSEYgaIOBGQkOWaCUKUBQJKWMQBOPW@}JYKKBQTkGBU\\@LQB]FOGKYJuIJK\\GZY\\A[YVGPFAYGIVWOIGYH]CWVM\\ARUPGNQnOJKZIdCFM\\CCOSOqQCWMGO_\\GPUZBLO^BNEFURETDLIQWBONMEKNECaTM[QFQb[TALMNAASPKTYPKrQ\\UNC^kRLiAOMODcbgTEGKb]lEFORD`EJORSKCAULO_OCMFONGOO_@WOQGKKQFSWBGaOFS_QBOJKDUK[FIyƒoO^ENSBQ}WYNMPJXKHOIcLKAmJMEq@wMSIWWMUSC]KGKskOYqDcJSGUDeNchQLkCEIYCUNbJBPE\\UfORmPYVefMJoD‹ŒUP]LgGY@gQ_NKCeRCLQ^SRIBQTmFOPSHW@IGSFaXCPFLpTVRFrCZGNJb`JLAVT^FNRD^CZI\\Qdk‚q„c„iˆU^q~_`spyl[RuRQ@WMcGMKQ[UYWAyR_NU@OGQS[GWMWWEFEQKODEPoVS@UGWKMD]GGE[A]QAE•YMKYCAKQG[BEdNJH^FBdt\\MVB`PRDLLB^VBZNN\\VPxJLVIZM\\]deNQE[@ePUVuhm`ALe\\WNZQ@UQEKeDUG_gBOiOQH_hKDe@OFSACPSHeAWIKQTI@WJMSK{DORNbD|M~K`Sne|SZkpQNWZe\\S\\IFGZWtYtŸ²W`_`wp{n'],
['@@TXBRvE_O@MaKIF']],
'encodeOffsets': [
[[14537, 41515]],
[[14184, 41689]],
[[14094, 42214]],
[[14336, 41726]]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Emilia-Romagna' },
'geometry': {
'type': 'Polygon',
'coordinates': ['@@bEtFS`DVhaBQXC\\BFK^@HPnF_^JJCNVHX^WPOBy\\@^~VR`ZJhVHN]hG|U@[NUCgPJNYLL\\LFDVOJ^PZBPPFVVNAXRZBLNNTALJHVJHKLLjIFLPVJHLVPXBARpAFXtBXD\\J\\BZUJULETDZRBLUdERHR\\BRWN]bGbHXTFdTBRMJSE]M_ZKhD^IXSbIRI^LTTTHHRKXC\\FBfKVa\\O`ARGDOA_NCTPFZKTJXRFXCXMVYR@ZRBXk^IVbTrPTMDMKWOG@O\\A^NLLf\\fNXO^ad[@QIKCQvaN_vNF]XSX@NF|PZTXAJUhGdLš_V[VM^F`CN_~QdQL@f^dF\\GRSPi`QfC^MjMfUjAtCjJ–PBN\\XXdVT\\NJRVUAYbZBVZN\\KH[LSKSBG¬QVKHHhKHH^U`HLQNE`HCOxXrCTLAJbDlbTF„E\\@\\E\\\\nKNBnKJMpWvJnB`JfB\\HvKPZb@JLPGZHTMhKLJ`HlGBMfDT@EaFIˆPpDfAr@ZGdYbEVUBOTSjAVDNL„flFtRZ@VFHRGXRR†Jl\\tC¢AnHZE`@ŠXfClGZI„@PMT@PHXKPHHQ^EH]TIBO\\GbNPLPAJOZMhB`EZX`@JPlCZYCMUWH[AaDS\\[ŒGLIFaN[v_hQIGeFBPONYLKNS@MV_^yAGCgcLK\\AKQmwQcK‹CwBYJSJ@@]Rk\\aJkFKBƒDSGSAgDcHQBYFobHIPeR™L_ZsHkRoTgr‰\\Qhkd[–‰fclcp_ZKZEFJpqni‚sŠmvYlIX@JKKICW_cIGFMEKNaOKGQTMMWqEGK[@I[FQOMwFcKcTANTNYBKJD\\[DHPIXmEGYiKMJGPXZOT[AUVaNHNffERMRL\\CTHROB[QmIoYUQaBGIW@DUJEHSKQHUGMNETgNOW@YHMGU`GKQOMC[DCUg@KcUGU[MaEJOC]GMkKKBOQgPOEWBAOQE@QIKSTWLS^_MmKcHQIUAUM[FETOHg@IHQA[LgG[NgNI^cFY@KLDRIJ[IgDKNaCIKPBHYVQFWZsPCDsNUVUFCTNbEPNTaNK@]TV`GLSFaZO@Q^NTRH@NIN\\JXAFNTPDbZ^xlFVRJJbQLqKaAqFEMwaQZyPYAOIMFHP^DBX\\NEZWAYLcCSNUC@MOK]JOCWRMC[X@LOJSCKT[BMPRTETs\\YCeYO]MKaH[@MDeUEWSSaAFIYIIMQH‹AIG_IeD@SfOLKP@ZITOT@FWW@SM[J]EiLmFUJEgS[IIK]FsC@JuDi\\DVTF@ZMB_EHIaMUSDG]gWS_GU[eDNZCNWPaPQBcEQXSPUKaPOP[F_VKT_L‡C_F[AWGSHUAIHOMGOSKFI@]ISLEPWR]JIJmRMVJN]\\iTIPRXUNWDKLMEQDWGMBcRK\\KBsdiHWEuNSRWBUG]OaGc\\M^QLUC]\\KAwlAR]PYDyGQGKLsVEHcLWNYFq\\KXX\\JPSbaCSNAZOF“JYGQHaEiDeEUB]EE]I@g[SWccUMDSWE@QUA]HcQEKTQ|MVgDoZKJYDUKKLkLKUKEUF}IS@iWCXOBGKkA@TNTXHALTdJHCZZE^HCdPZCLHVMVSNLRSL[H]IGTUGSNYHF^IHY@IQSFO[_PU@YMqbQDQXYBBIQQ[HoBRLAROJaAoICDC„PXM^BV'],
'encodeOffsets': [[9422, 45759]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Friuli Venezia Giulia' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@GVcG‹GEH~@LDjFJW'],
['@@KCIOuY@I}JZNDJ^AJNTDdRLK'],
['@@UHGLZJZUUG'],
['@@@J|@\\ANJZ@BISQ[@SJSEGF[HEG'],
['@@\\HJNXF„KRQ^IZFLGGchIZJnEXF„@^MRH~OZFPE^FVK^A`JxB`M´K^MDG\\IbGPDneZPREXHZGXFXKZAnbPEVFTTŠOAUhG`AVFlCNHnJDS\\QxLbCNYXBJJTB€GLI‚SLEfEpDD_YK@aLE_[JWIYYKIDk@KNcIaEc@]QGKG_QUmMIIUDUIcY[@cSiDQECKZgSW]@SOFQW@GKwCJSLDLODaJYNSdQMYOM\\MpHCZZBREbDbGHK˜EbOHSAMPG\\NHEnBDIfPvONSWWBOWcSCUUmWIOaOOQUAcQwaWBOI@S\\KCQWcaIAOLEbiZ@VMFKdCFJhCV`XLxK`JTKS‡JUikQaYGS]NKKEUiCO\\OHWJGAWdIZK€FXANMXGn]rUVObBFKhC^OXc`QNMDSGIDKXKZ_bUfSTE`QWQyYSEEWUGGQWC{C{H…\\kGKV\\JbAtIPK\\L@PcJIfcMMNARTDVNQVObc^kPAP[Rkd…j[\\OCkFiR@KcH]Nk]IOBQKS\\SnMMGY@sWkO[@OLkT[KYTQDcEyVkF@FmJCFyFWCKJWE}HKdmKQNQABSaBCOSBQKMHBL]PCKWIJIUS@KaK@MeSLo\\ATGZ@|RDQq]YYO]MJYJ@L_GCRJJEPS@UNTR[JBlWL@XkUDNLD@N]PPV_`OBG`@PMLHP\\GDJ]HSV@LOXSGAkiGQ\\KMOHOKaF[PPTaPsGDKQKSC@QWIKHARJZU@[T]OMOaYUTIC][OGIO_O[UeTGhaBBPaBQLYGHQQOOTeDKFGTJPQ\\]BCjWJWTRFQTEZMFa@iRFNkNSEOFEPFX@ZD`SXEh]^JBJbVLPXPPLA|ZXPTdJ^EboX_LSTBPIRDVYDuCGHPVONWA[IULUDOPWHEVODE\\P^TD^VCVJJGNbNRLLEvDVZCVRC^PLB^RM`XJZ\\^REVPZ\\V`DEPHPVIx`dC`OnTfENKZDQbob@V\\L@`ZvNRMdRUTFTGHTLGZHNY\\CVJHGLHH']],
'encodeOffsets': [
[[13567, 46805]],
[[13794, 46801]],
[[13768, 46801]],
[[13572, 46810]],
[[13038, 47754]]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Lazio' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@RFRVTEMKaKGB'],
['@@L`VNVVN@NLPMYCUMAYMEPUMWUFFVUB'],
['@@\\FDM_H'],
['@@LTILNPhVLPA\\PJV@bKzRTE EfHGZFJILLZEXMJmF@R[NKCMLDThlAlZD\\GLQXXPET@\\XXCdTKThLXTpBPHRTCXPDpINJdNHVOXaDAVFPIPBR^BNPJhLFHRSP{JFROB_^[FPb`Z@JdGPSbM@RHNAPdH\\PZBŒATMFURQPmNMdAdUZEFWOEK]QKUCIOUGMULGbIOYŒO|YfWHOTL^BhNjANNNCTSPAFPZANFBP`TXI\\U^AVUXMAOdM]cbM@OSYLMBMVERMZ@HWIWO@RYHcTHRETSOSdBPLjSLUpPBHXFAPrDdW_O@W^CEQMDKWPYKKRM`JXE\\LHMOIA[NQPNPDVMhLDoLWXEDJbZjBJHt^^XElPbDb^BLK@SPM@G`CPBjPRVn@PPRDk`Q^bRnBDFl@GVFP‚H`@lVLNˆTTBB\\MTERKHDR`PpUZALXbF‚Ef@VL@VPNPCLSlILB^PpN`XCL^H\\[ZNd\\HbIHHN\\`GbDNVBNG~IT@PGJNHVnBTUlKVWZUdKOY@[LE\\_X@xMC]WMKgHUYUK_J]KiEMXoB_USDQP]@kJBScSD_SUUADYTWTGKuNMqaiGc]`OVMZ]^OhMJUIOgWaYfOtepWL@FLSPO\\I^UFSPOTIzC`OLISQTSVOhCPQW@gGNQSEWDWMHI]MKSiGQJWG_OWD[\\cLSPYD[OjMJ‹DLW@MM_SIGMYSoGGWOWMiNUD[h]FWJOrM^APBIVRLˆURGbUbKbOd@`IRSxOd[TETLbSVUHOZINHl[LOUgOIKSPKEUFoXWXDJ^VFhOtMX[\\CNGlCN[TOCM|W\\@\\KTV`FXT\\D^VIVVR^@jMTYZG\\VVEFSRIPS@UXIBKX@bMRLL@THRW`EPBPMtG^LT_^@JWP[RIDGtUNOZS@ONUDY^aEOHUMAOQN[XCPGEcM@KOdQ]UaCIMWKIOdQYkcBGKiUGUOWAKFsSDO^OCKVWSIOaReGKLU`_KQBKOMWFUKaAQMMANWGQ[]sBIG]BQcE@k\\buSYJCHWHkHWAmUYCUMK_FSXIKKeNSIQPkV]@eZ_@s^UHoX“^wN}J}F[CIMSKgDwCKsUkYUG[SEMWQkCmJW\\DROf_vk|[`{ruby`sV_LiFeCeHc@WO_Pm`s\\]LiHwGaOatcbWhoxijyt‡†‹€[R{l‰l“fyVVaDON@TM`HXO^U|iŠapw|_VaLcH_XuT[^QRmVqJKHS\\MBs`aRk@kEOGOBkIERWTAPILM`OT[NQTQJAZWHYdBJQPANHTe`O\\I^Sb[XWZMVifk^kT…ncR‹^Ãn']],
'encodeOffsets': [
[[13730, 41765]],
[[13253, 41879]],
[[13359, 41953]],
[[11724, 43396]]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Lombardy' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@TZfX\\cvUdBLLTGb[hOF[U[SFIICYOQ[EY[KavALEV@RGHKraVI`FFI@YGQ^_N@V[EMTYJamsLOzR\\GVM\\LTGGUnK\\FR^FVVRCPLVVFXRX`YCC\\_HaVYASHFNUNFNATgLKHnZXTDPCb[T@VPL@LZHjRTAbFDXVT@JaxbPVDXNR@\\flRLRfA\\RB`NZbPD\\ZJ\\AFP@bPZDTRFHPZPEXXPLVMRPNIZYDKVDVJJOVNTETSHiZE``FZTAVHRGJPXpLLFvDdCPJVIISPSXKDKhK\\PB\\TRjPPOAYH_KKBkEIEcLKRqO[dGFG^EHQPGJejk`SJH|W`BZENI`C`Hv\\JKlMXDH\\NHBTQDVVIP\\VjMZQR@LLdF`L^V‚HHC`TtNPQ\\EFNfJX_lYPBFSWQGUhS@QQOHWJC~KrUJeMK@KSK^I\\MTNlHjInNJRr^EXQJEZOV[JAJkTM\\ILFflRCb`RZAPLA\\HFQPQEK`aDQGQDOM[@[NOCMHAP]HGJ^dENONHTInRFFTSdpTFP^RMPbFLPGPLdrKvTRBtTxQRZbLHY^WUSMWJ]PGTLpKRW@Q^G^JVO\\LDNXA„WlPf[`MJi`SHIXDCLEb@TUnSfGBKh]IGFQGKRkDQeY@MQC@]SQC@MIIeDGYL@tQfOCYXOHO]QIMbYRqc[FMSYUMESKMZQX[UUAMOMHGAiO]i]GOQMYGeePKB_COWA]W@[GI@]ˆMBMMWRQ@Q`OHSGUai\\SEOJYGoLM`HZGPMMKO]FOdIX@fLDHfT\\Fl@REXhGR|BbRXIbLT@^IHMTVXB^QˆH^GO_ka—­£¯¹³ƒyDaB›PuJÁHIGOe@@KdLFWLMMKTGDNXH^A~MN[COSSAIQCNSTEUQeIDSNGRBXMAWfMDSI[PIžzxeNOpaAMNSlCXEBG^BNU†IIMAO^WlBrWNSIENoGQ`AXN\\KVFHEMO@O]M@I\\URClUL@fIEZLL`QXAPNH\\ND\\M\\EtQoU@QXE@G[M@_hD^ClWVCfRP@HSO[NCLWxAPG`apSYTGR@\\GPQAMS@eCANkH_GKIgLSNYGOHIKa@OYuL[GeA_ImAuIoXINmLMAmL[[[F[@ƒFSEkaaCBISKqDwWDP_GMFKR_G]VGGgLGGUL«RAHLTKTG\\[LYMAUaYBZUVIQ[MUSWc[WAM•OiIsDiBeViN]NeD_ROjQT[HcEe]K@cR}RM`_D]EUNU\\™`cKgHIVWBYS{OMEW@WTE^uMM`ubDRJL@Rc\\]bWPeMe[KK]M[B@PPHLXCNSNqOaSJUl]AWYQQ@UZWNWDQEIWLSEYSOMDB`CPQH_B[PUbeLEAD[LWGQSGSS]KQJaJWT]JgCYLN`F^ITQNSAEcWSaGaHM^QX[AGQFQVcAKYQSCKFIVYV[A[IWCsAEWoBBQWAUOGKUIKOJEKiLKIGGUKISBMMAKQYBWUMEUOOYA]OPICUKEK[ZKIMhOVD\\MV@H{^gGMgUYIQ_}U@]z[PAXOW]UGDMII`]mEGO]@EL[AWDARgbCUT_sEaFPdKfRTDjiJk^Dpe\\c@UGGH[GGPSL[GU`YNQZVPPFDJMJO`qDWZUDY`GZmZFTJHBTejUBKMc@mnAPFZKtY@IHmG[BWKSOyCNQMMcHBUGIwBFVOHi@OZS@GSUCQHSCWQOJJJMPO@G\\PHERKJFTIZ[DBN[TFPEHHPkHI`MLwNQZDVPPTBBLTBCNkIDGkGKLnJEJeVAP`HCLPJULPLUJCTHTkHHTg@T`PJpPWb@NZFDJ`DZIlHFEpLVGF[hSXcFe\\DVAtTV~`@DP^JHJKNSAm^dLNC^LDRzSfJCJ\\FLC\\HKZUDELFd_@A\\WXSJFJAZELYC]ZeB[JONOZNRSZETA^UP@LPJB\\WHK\\OHWAAVMNFJVELMVNOVWVVNBRyEWD@V\\jANOPa@SFcBUPQ`spGPB^TX\\JVNNbEbYpOXAZplnbƤfZfXNNFVQZIjShDRNP'],
['@@RhTAAkcF']],
'encodeOffsets': [[[8924, 47205]], [[9174, 47068]]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Marche' },
'geometry': {
'type': 'Polygon',
'coordinates': ['@@HND^IPbF\\NHVdV@LVhCDD\\PN€RHLV_NHZGX@MPShbDVHPSNCTFjAHRDVbMVU\\BPSWYHONIjLHZnFJWGO\\CC[LIZASMBMdSdLxEPNERJ\\\\@HLrFNXSNHRPLMbFLENJH`dDXLJIL†GXBˆ_¢gZM`Ay`WŒqZKP@ZShU`S†u„mžwzgVIVQŒot[vYŠ]„SLKhQnQpKjCPFLZRIRRhMNQ^QXYJ]LKVGLBdMLKTEDUKIHoEKFM\\elLOTiRmn£bqVKbƒb{TYJ_jPUVuNSb}B[JqRwZ™PkVsd{NaU@UGY@wMY@sMIIWKsMgAMEk@gMHKQUCSoOYOyGMJGRoUaBKKsHSXQ@IiWI_iDo][]CWFWAUMGWHUGKSP]QUGGIQC[LaFcLYVUXkLSVmAGUIMOHS@}JMHUAAHTTG^\\DRPbBFMRDALNbPPJXMROdC\\WbIYSGQQW@YMODgIKHUZITc`S`VWL]^WKGKWMwFB_IGM_Y@EPDRKN@VPnODgD@P_PINgL[LJXNRgrT`L@FV]XCXJfBVUXCfULWBcEIVMN@NhLLTLHDhHRKbYC[PCZKJCfHNKLYDk\\RRF`GhGRYNQRCTYJ@PQLHNMJLLVBXLLZ_ZJTGPVJSRSAUL]CaaEWMQmHIJ]F[IYAMQOBg`_Jqb]^]ZWXITaXgNMUQDOGKVQJIPWIIF]WW_MBINHHiZiY]HS\\QJNTr@FJnlCPKP@NNPWNMQgAKIW@KWOIIPw@GGeFMHYEWdCPOP[NGL\\VX@bFj^P^bKvXJZB\\GLPPJOBgNMI_`GD\\IZBNh@NKZJBJ]V_\\[`SH]@eT'],
'encodeOffsets': [[12579, 44816]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Molise' },
'geometry': {
'type': 'Polygon',
'coordinates': ['@@NJZF‚CrWRZDPtABfZZHJrBBKP[HUXRJTQVNRZErHFRRTJAF_^CBTNTOLcBKLAdGZcfh^fJT@hJ\\pfNRT^RRRLAd]VAXFFS^aBM^ELREL`LD_lFdYPGHSZAJSP‡ReQWFE\\BfCRXˆfCNLFX^dBVXLX\\V@T^hDRRJfJndHbCPFLdb^T@HvvbHRL\\JZTFNOJYDHTZdZEXQ`O¢erOxMdCzMˆEH[xWLObORS^UXIdK‚IKqDOJGBWSKK[QQUGG[RYPKCsYMIafaY@@OZYJSRCZMLM]MaGWO@QGIUBiY_@KGG_gKCY]BaNMTsNSW_]LMViGSDQEUOYAmFGvI\\[dSRSUM[AASmGMMmK‹IYKY]UEUDƒ\\GL]LS@UMCWKOAO]QWAkMYJCH_DUG]CHKCKYFcSGO]UWIcPFJY\\QD]Y{LcEILWFUfATU@URaAcJQRWGULO@X_@mZWF@N]TyAOX[BWAWF[CaDMIC_[HurMC@QUUOIOUOCDQOYLM`]NQG]VWCG_HYTmCeI[`CPQNYDILNPDNGNyRZlcRJPXLJNbD^VcRLPN@FdOHWDM\\PRNBGVFP]bCZMV@PYTMPsVCH'],
'encodeOffsets': [[14276, 42689]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Piemont' },
'geometry': {
'type': 'Polygon',
'coordinates': ['@@VT@TNX@P`TLiKILY`RZIZB`C\\STANJLVXP`JLb\\EVHxCZNbBRHPEHKZF\\RAFjLANTDnRBL^XDJ`BRJR@rMR@RPbLXB~YNKHSrPZC~aVJfC`FPOLBZR|VŠlbLVAPJXIbFZELFBXdjnHFPYLMVBLSH@TMLN^N@fpSVHN[DcL]TEXQNUZHVGfXLGRMJFRNJDRMNIxHTIDBRRHJLQVNhLNET`L^dVAtD\\CjHTGLJNXV@ANLLELTRTHShCVNPBPJXf@hJPAxNJJF\\TJjFRTITBP^X@LYPCXORG^]HYVCRkHOJtlNBPVdVTAXIhB`LHA\\PDTVNEF\\V\\@FLZLGRTJXCdTZHHbMR]DIHb`hFt^DHZL`AjHPJxJXELONEHOQOFKCQTQIQPMSSJMHcQQHgSKCMSAK_SKLU`[LSOGISlKJWdE`GRIVBVGDQLWZKFMPALMDSbSZCOWbUFW„DXUXGVBROP@dGMOCQTgJiRYEUMMeWeYÅ£maokBYPWZoFaMaUM[ISWA]HOtoR_VOdATEb@POBM[i@UXCzFAQUMXUPUUMKNUFEINMBUXBPGL[XGA[OI@KVOB]FSTYMQPYPM\\IfA^YZDFKBYEITIXWB[`@EcFKVCLY[GKD[EDIeIyTCQ]KMDcKn]TBLMGI]ICO_@U}sSUB[CEfWdgTE\\UHoKEFkGYJ_CCIYE@MXaoOOIS_h@GSlGGSDSVIOKVKOIDK_GBOfUFImILKlHCHlJDMSAAKSAOOCURYxMNKJ_lGGOFGEO\\SAM\\CJYESLIFQOGH[P@NOIIPIXRTDRGVDHTT@PYj@PGEUxAHJAVdGNNMRzDTPXL\\AnHJGZ@LsEYBOnmd@LNVAfiASIGESnYHYZ_VCXYrCP_NICIOEUORYZMV_\\HTKHO\\HHGVHd@f[Col]jICiQSLeOcAUN]OWDƒDCDUCQgEQGkY[AuPUZD`QJS@SRiCaZ@NILQHGTOLYBUIiDSXSCeDSGBO[cuOFOPMXGDM@iNMCIT_OMgGEIWJINkEcJQEGWLKGIeGWWFcHI_IFOgDJ\\M\\BNUZMHCTQLM^URODcCQDMM]PIEYHOI_LOUaMEU`SMQ[CMWYAAOHKwKWTW@UE…AMFGTWKQc]LOAOT_GGQDMkWMW_KMjuFk^U@iJW`OL]SWEKQGWNUYO[D@W\\YAQTSDQOGKQDOYGUOQJQSOIWADQUIR_GQQO_QWWQ_aJCJSAGKSGLI@OV@XYFOQMaORKJYOMIUPKDM\\CLKEOLSaWMOAUGIuCWVgFu[KQ„WIINMUOOL{JIMmK]Ri@MGYBEP]Jk@¡VmVwGUQOBMMDMSOPEHUNSlDQMMAOQEQ]BJlGL}vSFO`PJJRONDNPHFTJ]GBMYe{@_FgKWCQFOOWCSJ]KgI[KQFeBKeSNSAWPsQU@UjCPuCIFcCOBMGQNS@ELUHKVMNMMO@MNSHAJSLKVUGSLUDYI{doJINaHOKKFcKON[BQFWdDNGlYNSGAT_HJ^OPMBQPUHIVBPePaFBJRREpHNI`RA`NJGVDLREL]LULI`[JaVBLULGRMtFL\\NNZŒLCT\\DPHAdLXPDHN@NNFTEBNOFORK^ZZCLJLPA^V‚BLDZCVKZEbBARUf@JUDYHWTQjHPKfOPUJRTLVJHBXWDEZsNU@u^WFSY_OEHiBIF[@SPYDWPoPWXUDKROJSAWJHhHTUDTNR\\CXUNAJ[VXDBPKPHJoL©CARONLLWXJfQ@SHDRKH[fLP`@VNZFP`VAjL`MZCPHjhVCRGtIdQhY`HPJjBQlRTbElLpTATZJMNJJjHNCTTdILBbTR@`]ZFDVNDVRNDJT^EXZIJHfENWRKdMLNTVANFCTRXVDRJCVJXbTALPLGJgLUTaFiN@P[ZEJLR'],
'encodeOffsets': [[7275, 46559]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Sardinia' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@LNjAJICQMEmV'],
['@@TNKJRNANPPJAJSTE`LPE^NJYLChUDcV]_sIaFeUWHSOEMM[@[FBXOFCZKFK`MH]tGvO`'],
['@@VdZANLZDLRRENHZERPHkEIJSEKLMKODcGUQCEKQFQCGJeHMNJHMPJH@NUP_DIJ'],
['@@VHšpVBHQmMuaSLUC'],
['@@RBHSQCGV'],
['@@LfNFPXQBHXAPX@\\LRNBTTPTFD^OPHLRExNFT\\OCQdINQWGEKJOEU[GyHSHmWJGSKU_B[NCLUGWGGsBQHW@'],
['@@hZHQMKUAKF'],
['@@PP^QCM[NMB'],
['@@\\NPABWOA]N'],
['@@tdJZLHERHhRLPbXTBRNX`jEZNJIPBLeXOBCX[P@N\\fLFJVXUbOP@UgR_GKdiLGZYlarY°M„BLCRHbW`OjEbBŽHlH†TvZf\\Pd`TlLjTJLZBl@^LxEjLtdlfvxTVCLJ^VBQTZ@\\P`@@JVDJT`RPTb\\^h\\VNTbF^THBZUl@fLVDXVGPbAdFffIPOFGPBTNXJ`SLSISNNR^EFOXRVH`Er\\VGAK€UZQFYWcLMRfTBFQQO\\IdDXONJKLNTrDBWJYXJJMN@TKbHHCCWWEGK^CRBHOGEVWDWAcRFhfDTMDnP`@RINHGXZBHIAMb[OSDOP@NJTAFMGMFQGSYOUTUeNGKQMGHSESemNEZHFVXPPDbGMQKYNEVLTIFPVL`BJOVMhGZHRSWUeJSLGNSDUWWCKM@MVS]cUQNWYGKJaEIPsKOQJObJLEpNdQNQVEJLRBXZ€@EKsqP@ZIJUZNB_FQTEVRLCRYlEPKQKYBIHSC@MIMPGDOSAQMCMDY`aPGJM^EFGQURSKKFWNS`KX]@sMMAYBQTY@[LOZSN@ZUJu`QHB\\QAWMmSaYu]YUY@eMOBMYWY@iW‰}W]OISagiIQQwLEOHaLYRIDORYAS~uBIbSNCjSJG@YMG@SkwK_@aYaBQE[BW\\[PHPOAOU@SIU[CaBaLUJCFSUQU}IyA_FGJiEmHOMK@IQCCMHSG_OEIYJ_BgJcCSDUCQKQBWOEGMKmC_JMNAASHkMWHIGMMGq¡McG{F[HObWZICMSFQAUMckYqGi@SI]DUZIDOQMC_IWMQMBeIY]JGYQMPJ^KLeJoOMFOIY@@L{\\Y@FTSFAJWLQR[DW^SFUPYBKNcDOCUJ_AUTWD]AeKcQQOIURISOOJIE_\\QTYPeKSKOCUKokUWW_E_IKNgCKDYHA^gTMGcIEUeDGGSFKOGGQMDUGDOQEe_saKM[MSOU[WOYG]SWSWACHWBOZ_@@RYMSFMNJNiL]P_LGJi_WCYQSCEUIEUHKUJGJ[OEOHAZNRIHWAQG]DCPR\\NJGPLTEPQ\\MH_KEVYTA\\ORDZNHFNCRS\\]A_RDJeHyAUBANV`WVGbILQFcGKLEPLPAdqdQEI^@RqT@JOJA^dZbZVV\\JXpCVO^SLFPIJeDMVEXUPXvH@XVRfCb[J]TFN@RJNNFZZx€bvBZT^ARP\\K^YLCbFJG\\RZ[NRlD\\QDF`GDFRIfLFDPLBXWFS`cLO@MREhivFTCDPGLWFOKK@K\\KFYACRLFTXQNnlXnP†FlG\\YLLNM\\UVkN‘GFGSIc_a\\aPSF@`DlB`Qpdh@VFRMTw@@VhNZI^FPNTG^LbZ^\\BXIHJRM`WVYlDjEVTbMTJdbš@^QHSVDTWVaDGP[NYC]HSBHPIHETPDBVJdNRC|EPUdBNIJKpqZWEBRKJARYjIbFXW\\MLCAM]DS_qBYCMRNJLXPDBLS\\WHOCBSKAEO]KJIQKD_QHIRIfDPIdFHbDCJlFRfJb@NPNUNMAYHBNMPYJMVeP'],
['@@DLVPVBBYCISCYJ'],
['@@BTHL^@PQCMUO]P'],
['@@NBJZJHANFXRC@llME‹[U@M\\HFGUG[FCPKDOUQP'],
['@@NPRCDRRP^JBRPHFQRWGiPSgEIFWKWB_NCR']],
'encodeOffsets': [
[[9944, 41851]],
[[8550, 40018]],
[[8417, 40088]],
[[9905, 41874]],
[[8409, 41963]],
[[8406, 41974]],
[[9586, 42286]],
[[9558, 42293]],
[[9559, 42274]],
[[8326, 41711]],
[[9623, 42181]],
[[9557, 42227]],
[[9660, 42178]],
[[9600, 42217]]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Sicily' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@TPT@fGP@ŠEJHNGV@NcJGCMiDMNQKIJgJCJ[B_HQA[L'],
['@@ZNd@JecCSDOX'],
['@@PTXAdTLKFWTETFZIZQRGGUWEc^_AIFkI[FGTML'],
['@@XBjEJW`gDOOCiJSJBHYxID'],
['@@FL^Z@LNHPKQMbYRCZSDWJKCMSGSBm\\WHM`KF'],
['@@DPfFDOPOUUSDS\\'],
['@@hPEOLcEKF_KOMnAXQZ'],
['@@DTPNfNnKDMnMTLj_LM`UF]A_OY]OEIeCgFSNUjMHOAEXQTeZDPCL'],
['@@\\TFChLPZEhPDZxIJSHWnPNLV`fThI\\BNXRFXERVNjbNPVNHXdNTIVFJGxN^NHN`TIHAT^LRCNMVATHjdEHXRk‚DTRNPU„DHOIM@OLMNBV_E]DUZYFSXOT[dUNBHM\\DD[PQP@PIfBˆNlLzV„`RN\\Dt`KX@TIV_bZNf\\DNERNRbR`@lOLFZC@W\\G`B|PbPV\\XF^GFJd\\RJ^FJSPEGQLK^KXBNSB[R_IODOSEfonUXCZB\\G€FdH^LFXlQVkEONKQMJUbURQhK`Ol]^C`UXGVDzKLW\\E`@HIbB’JtNT@‚T|Vf^R\\APHPGT@rJRNTAPQZIVOtBfKhFhRrOVDdIX@bIh@LCdH`IxBrTZBPGbBlNzbZBVMvAŒP^D\\LdXpAPB€\\ZE\\RTPVHbZ¼¸P@jQ`C”T^D^L\\CdJXV^T\\QZIRSd_RE`BfE‚FJMPC@UZIHIZCjFv^lJ`P\\R^^`\\V`VpL`IRHbVYFSGYKMBYjKnAfDlLjDvRtLjTJ@pT€nLD†npH\\GfYnKXGZE\\B`GUKwK}UGQOGQg@QGIAUJCCSUSIOY]S[EUKMWsKMEOWSOYWOa_ISYWmm³½EYYMUYe_OYNKSSO@[YEMPKUKOS_YK[BSZeIUUaMgFQ]aUOFMISBiHUAOSIKYUCM[WG_UBKgeIOAOKQD‡JCUBBcLqNWLDxGRQbUPJpUJVTENYrgJWPEBOSCONQDQKEPSBQSO@JUYYDYHSZUA]LURGVDRNHE]KEMB]l]`ERI^HXCJMFkYWUEMMBSP[RCTRbIP]\\]AKkDSXK@]SKDSIGYKamAaSKFOIEK_QSSGQIIUEIKUkK]ISUMOQM]FkESQEEKBiLMBUX]P]AgLYNGJOC[QA[FQYoWUR]HG`QVqZeBSIcIaBqdkZ_L}BaG]KEIgA[Q]EMPeAMPYDKEgFKEiL@F]`oVSROHS@sNGH]DUFeDaCYLo@_^]`GP_šIHGZUPOdQPWh[dotŠohy^ONoRW@WN—dqL[BsNwJ[BGFyA—[YH[GcHgVSFGRUXgVSD@uJ]TMRcFGHUF[TiNK`cfSJMAUV]ZeJ@JWX]PcDSG[N_E_A[P_CMN_JAJQNUZKHWBMNWPO@UR}LY^aXUDSEK`YhSPKBU^QVSLWBKV]TML]JUB[IUJiJoFgA_Oo@CT]lW\\eZ[Z[LuJ[GIF…L]AwB™C[CMME“QU@YNIRMBuˆQnMN_RWBWT[FYCKGcHAHUPMDKXQH[\\HNGTB\\CZSVIZYdUHOT'],
['@@N`BVNL\\JJEb@ZFFYCUDS`UkCAaLOKY[F@LUZ]Dc^CP'],
['@@N^PFPE@QEKcICJ'],
['@@RTfTjMKWmWaHEN'],
['@@FJPF`ZNBnMAKSSIYSIMB]NQV'],
['@@LR`DJECYGMWAKFET'],
['@@TfZD^@\\GlHJEAUHMOYHY]EODeVG@oPOP'],
['@@PR^C`IJo[FYA[ZEN']],
'encodeOffsets': [
[[12818, 36374]],
[[13157, 36730]],
[[12566, 38846]],
[[12317, 38904]],
[[15295, 39326]],
[[12616, 38913]],
[[12728, 38802]],
[[12213, 37700]],
[[12723, 38710]],
[[15256, 39410]],
[[15416, 39557]],
[[13467, 39630]],
[[15552, 39722]],
[[14684, 39469]],
[[15151, 39489]],
[[14889, 39504]]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Trentino-Alto Adige - Südtirol' },
'geometry': {
'type': 'Polygon',
'coordinates': ['@@™Wys[CUFEMTOBIiIQ@qRiDDKQGsEgNEJYKKM}MOUWCJVE\\WASZWHaGKRWF_PGLsRYPB]IMPUKEEaWIAQMCHMCaUMUeG@ioYToA]IGSYC_JaEYM‡IqQKOMAK_FMXEdDHCzCXODU]icBQEQcJGMWIYFacLGKiCeSRQfIDWzOD[LGQYGSX]fBvPJIC_ROTLdQUq^ODMVSp@@U]SFQ_LagEOSYQKGQ‹OK@‡Q‡AIB_QOTƒC_YOHSAE]P_NCPOEQsASKNQPC[ULCJWX[KICOHMWImB_GKPWDGGaJUESŒ[BSJWDqIcDWGKQ]A]YMG{@ODQEoHIUHYLOASoBFSEQYGLO[@IHWDQPUAKKWGQF[ECYUILOgWTEIikWBWaKIOQMHaRUWEaJN[@UI[HUaYaOOOMcOHk@OGcXG@YVMDWSsAANeKBSOKgQJ\\M@MUW@IUOAaNQPNZ‹bQCuFEDN`ZPDdVRPDDLQV@^VNGN{VYL]H‡G]RWASUGN]JS@aKWJaQ{AHQWgQFk@[EeSCGeKW@cJEPP^NLONYH_GKNHpIZFP[TbjHVGT_P@RQRNXAN‡N@^HJ@\\^XXBDPA`OLffZHRNHPj^P^BjGHPNBNVVW\\YRLNFTVNTZENd\\QraZJN^RGPWPDZePsRK@HZfCJJ@NRD^T‚@RD@NfZCRQlHLERJHg^ALeHmTSVa@KFDWCGJ_TIjNTZFAJNRETZnE`NNSPwdYDmASEQDAROR@bOXRLTbXDHNU^OHŠhPPCXOTUJLTfJT`FPGLRJCLRPELtCHKnC€JFU`FPLXFJLTBlNxDRPRGfENIGSZKX@JS^EhCNWWKOWaIFSrGpLRLTKd_XCNPPBZO^CBKnCJLTCZNTC^D~EZGVAdJNKVbLXNNIHjP`PN@K^IjLFJThlIFDRGLDL\\LAPLHpG`N\\VKLD^TEZN`ALIZLj@^JPNNApL`AVPhOLLZ@bUNSTATG`BtVFPRP`F@NRRdCbIFIbOLO^NR@hNPPT@TLfDPStQHErHVEXBZ[HOfEdHPXXPLE^DXCjHRPNAPNjRZ@DHjZ`J`GTTXEVT”EVJZR„CFPjXfKfP^A†ZVG~KVYAIiK@[WeEQIcLOKYKIMHGJ]PIAaIGLKhKVY_kNOTBPEZATSEE^_lHFP€CVOEK^MBUJYXCAOcYKKTYWYHMrDxKLE`AFYLQFYLODUNKtUHI\\CBG^MFD~GDK'],
'encodeOffsets': [[12778, 47801]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Tuscany' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@HJ\\HMYRIMIY\\'],
['@@JDARLL`BNMNCAOJSIIiKQDMJCZ'],
['@@LFJ|nbTY\\]MceUW[SNS\\'],
['@@JVbACUUGQJ'],
['@@NLVMXDhELNLAPQ@[mE_S]DAJ[ZJNKJ'],
['@@DL@bp^VJŠCXJ\\ILB\\[ZIbDAR\\APJITNBNRTBLIlDVMYOnOTCXFHfLANTddAJNRNFBNNJTK@M\\GRSYkEQDSNMKIHYAM]AGKcEUM^APMBKXCVUDWEOYIKP]C_BONQjSVBLYLkCICNeOIMnW@QKA]_CyXQACQLIMMgFULMAiB]GMDaCaTMTALWR'],
['@@VNVERLNVVQLcOSWF{HIR'],
['@@JJX@A\\LPPITA`mNGGYRIC[OKeN_dIN]DET'],
['@@€d^GVB@RXFCTVNddTXh\\J@F^^FVAfFjCbFRGZH”IPEBYTMbDTaIOW[LWr[ZEXMdKFGtULKRHzHZC^OBQxkLB^[VDRKN]d[bH^PVHXATQvMXFjGtcLAL[dQNAXHRCNFLKXCVMQWJOjS^[IMNUnQJI^IXQFOTK€J@^EJTLHPPNJGVBTGXH\\B`EˆD`KLS`U\\EPObOVLTORWdFRAbOXODMMYfCV\\`HXT^hCHVTbNGJ`FNA@YSECUj[vC@ItD^EJL\\JhT‚FVInEjK^F\\ITNX@EXS@SPYJO@KLeP@TfC`JJHŒBRGJNZJEJbBTTFXfVNC\\@bGNLP^fZZDt[FSQSNO\\ALSTDPI@K\\WNDXQPD^IPL@NVDTMdDZKXBFY[MAW]CGONEPJZBzORYxbFNrEbBrLRKIaQIEUwkY]CaSOEMWB[IJM@MQGMSR]P@bYTEHKU_^SL@bMMSFOMaDSVEVUtMDCtOXYREZUAG‚OJLbDLMhC\\JJICQLKZ@dEJ]hM\\MhH\\KRBJGh@PGFS\\EVNVBRJdGnL`NT]XKTSJL@RRFBPXAPFhOPRLAlLfS^@TG\\_`[^UAIYIMLg@AMJYC[_HJ`MNAhIPOOHKA[IYuWaLO]i]aEW@[UHK\\MPODOSIOMCUQGIQc]IYFEOYUFmGUB[SGW@OLIZEROZI\\ECS[BKGgMGYYSSGiHUUYEQQN]jEfNNEGSAkLK`DLJhOZ_JiAUWUNW\\O\\ALEZAPXCPTTRCLIdQWIGOoQUAWK_YMCgFWKOQaG[P]FQJ]KP_MUDGMYCWQO[GaDcYqOcQIIIaMEPUDWFCLYQSDMPMHYX@DRNJ`ITYS_@[MWUICA]F[YYBMMiJKRBTEDQAYBQ_B[C]emOFQ‹BYA[OcGBOGM@QaNOTcH@I_YOa\\E`]PAEQ|ITOGQKEIgMO]AAQJOEOBUbCPWGUcMMIoJOCDWQSOGoAWSgKLScSWD[WS@OFWWKR[HYCBkgkCSNKLD\\M@QnENIFWKYJKEIHYeGŸFSFyQaLU@OIB[KOgUMOJKKS‰T{NN™LSEUJANWFsAyOIEHicKWcMJWAWMATq`UHMASJUVFVGHbzNAVWTHJGhA^RVdJXHb@vYrkpcCKOaZUdFHSdOBSTNDEReV•^UJ[nOhYdUTiZePqR­ZJwHOC™rBNXBVTP^FXC^ID@R`dBJYfgZ‹`gN‡N‘F™A_ESWKGE]kDWVUF[l@\\DLIXXLTIXVKLBLVNR~NœDAŠI„MˆIZ_†ILsj[PMT@^MVMJAVS\\MbaNOTBP[TIXm`aFYTBTONOxMHMVGZHBCVIXLHCRMXItA`GfYpTJFVKtDHEZFDcÎKd_~@bYfivkrx~udm\\sPIAaT\\lFCxdRZ[`{RU@aWO]UPVLBVWPGbItMHMEqBOCMHoMKHXVbVLVW@MR_AgYMWOTNTPpYZDZINCVcT]HMJQGm\\gVENORUH[DWvUViA']],
'encodeOffsets': [
[[11358, 43267]],
[[10536, 43350]],
[[10027, 44056]],
[[10126, 44468]],
[[12462, 44857]],
[[10345, 43793]],
[[10287, 43606]],
[[11126, 43380]],
[[9920, 45431]]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Umbria' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@XcZFNGfEHHx@JOPJLXX@LJhBNRXMMO@MLODOmkEIq@MSRIT[^GjZjYGGJMNAX`^XJEXJJORILUPHRCNVhMbWJSXW^Y^]ra`Ih_PANRZB\\J^EJInGNRFXbb^DVKTBTQUIHOIS`YKYWKUAKKNIGMRK@OZIDSRQZMHQHgE_QQl[ZCLKGMDeLIDY\\OZDLaGQCgKGKSgK@MNMJUdFXAVKDeVWAUIeDW^WEUK@S_hqMQIW\\KhKJM`O@OhCPCOm@ULMCQFOZ@N`JHA`xEXNHLXL^]XK€UT_d_JSVYLGhJPCZNX@RRTHJZXaD[PcNQIWOOMaBKQCENaAQO[CH]SSBGCMHa[_GMJGGac[YM[\\]GDK_WoM]OKAkJKTODOM@UUKe@FaEKWYBoV_OCQLGFQNSA[SA‡SKMkU_@GEOHUk@CEmAaQR]l_QCOOm@QUiOOA_D@HON@TKL]ACaOaFk]Ws]IGiAaYCIWFKXCpgKUNOCOMMRB\\PJGN[KWF_IQNLLOZLXNCFR]D@X`PcXqCBOWEAGoOKViTOKcAPTSTQFSGGdQZP@JXGXY@QNUFANKNTZ@PaN^dcNBPWNUV]B[VWJ_SAOMEYBEOOBSTMDMMiBgM]ASKGPeX{Z‹PPZaJKHNVVHJPVDRLL^PFEXYFcVcBMNOnQREVSNERnP^f\\D`AARBZCRSFQAILNjANZZE\\B^JDV€NX@\\T`SZ_JMICQW@GZONCNRTKZEDCXOVNFJbJJdRrPdZbC\\HRPDXNZCHNVO`^LRI^E\\ObHPRXLhEND`ZXLVBpRHPXJcRKJQDSSDOOWYBKF[B[PMXXVBVIjY`gPKI_CKLBlHTMFeMiFM^RRZFVVjGTHZTHZhNLH\\ADT[FYJQPYFKJ@PHX\\TVAnHVEPZEFJZd^JRRHDVPNTJ'],
['@@`PXUCMOAILYJ']],
'encodeOffsets': [[[12507, 44658]], [[12706, 44649]]],
},
},
{
'type': 'Feature',
'properties': { 'name': 'Veneto' },
'geometry': {
'type': 'MultiPolygon',
'coordinates': [
['@@UOOZQLBZ^C^]EM'],
['@@ZK|UHMUM@]RUCKOCUQCcYOM_FCvERDŒaMYRObMPBJVX@NVN@I[hRPLATfLBMtBXTNCZUH@dWPHl@PGNdPPbPbZGVJ\\@VM\\bIXFQVGbRNJPbLAXlXJjSFhXKPVJDZ\\FREXHLLVBROXCJG\\@KPZHFRETpABTKPGZJVpGRFPC|@NH^Z^BLRXHdCrJXCTI\\AT‹VFbIHHXCLO`HnAXJGNDPLJW\\IXKD\\VODMRTLtBFROPMDO`F^TBPG`Z„DPS`RJAˆBˆRL@ŒPHRRLTZFPbh`KER^T@Vo@UTCN]PVrcRSKQPD`IJuOeAW^HTRZKHC\\yPCXeJQRfTjDHLdKEbJZNXIHRdRFdA^jCVWPyDGDcCWFENL`NBLPrRˆJZNbF`IZDHT^JpBZSjpH@VfVNDbGNNDBRXJFbLFOVJNA^ZOtQHK`OXELQbHXGTYXBF[IUXDPV~NLNZLFIhMtFRHCLjCrQR@jJAJSPFNVE\\DztšXZGVHxMh]XKTANJxA\\L\\@VS`L„ARIbEJMVOGGHKIGDUZ[GMHYSKHGESVScQQNuM_YK@[@UpaRaYCMLeFmS_PcDw_UJGOFO_C[UOYFU]QY[WIN_]QKA]OQDDUUYuCKFQKaMHMIIDU]USCO]F[PCFUXGPOVCVK\\JXBPMOUHGvDZCCUJQAOTS`KpWFaI]ScWO{YKBOOOWUKIaIA^]FgTWC_@YEWFOPETFlMEMjQb@NEFYRSQEXSXIDi^AR[IOHSLEfCPSRPGRZHRKbAAObAHgfS\\V`PJPPH^\\JDVSbZNP^P\\SV@IYBQLGXJ@RTDRLCLtHbOOS\\ObEPLPGLNR[jHBlTHPW@KTU^GCI[HGONK@OH_PA`_OU^O@MKCCMlV@WXKAk\\ISQVMT@FOIIDQ`H@KZINIMOIw@»MµYIFsceQ}Uƒ[Ÿo‹]qKáu‡_{OsQ¡Y]KcQeaYR[FeYmiaqQYIS@WZEMOUDGM]Q‹DO\\GQIIYRsTO^eK{BYTySNeFLVQ@EYSOFKIOZK`BRIBSRBLI^@RUPGFMg[dU`FP\\RDDLqˆe^CVDx_XCHWg[mgw¯GS[eWQk\\P^A|]JsWJG]OEWTGPSWiVWVANIGQeYgRu`M\\EbKJ‹H[\\CTBbG\\VXDNYZkDIO_@YW_FgAYNIPOBOKaM[HAPSJG^]FGROGWLOGS@ONƒ@YJkHeD‰W_@YFmG¡BsDk[…IQQHWGQUEY@sQkEƒeMKUCiBSTAPUVaFcZYHq@eBoC‡OEJFbBNOR[HQ@SHZoT_bOHwBKXMDP\\GTO@eQUDkX]DgC@`\\N@HWF@RpVsR[F[NMCG[OMWB_RKKFYeJK@kVQD[V@J^N@PNPGFUE[LWM_BHRMpJFMTqXkA]XBPJN…JMV]AAHWFkDMTBNobMPwfyOJJ\\CTeNBXWNQAMHCTfJVRSFMTRDBJTTDPM\\}N]BWGCMSHNLKNEXcK@Lf@HPGJIÂOvAœCb„´¤°˜®lbP`']],
'encodeOffsets': [[[12652, 46148]], [[11102, 46934]]],
},
}],
'UTF8Encoding': true,
})
}))

View File

@@ -1,45 +0,0 @@
function random() {
return Math.round(300 + Math.random() * 700) / 10;
}
export default function getData() {
return {
textStyle: {
fontFamily: 'Inter, "Helvetica Neue", Arial, sans-serif'
},
dataset: {
dimensions: ["Product", "2015", "2016", "2017"],
source: [
{
Product: "Matcha Latte",
2015: random(),
2016: random(),
2017: random()
},
{
Product: "Milk Tea",
2015: random(),
2016: random(),
2017: random()
},
{
Product: "Cheese Cocoa",
2015: random(),
2016: random(),
2017: random()
},
{
Product: "Walnut Brownie",
2015: random(),
2016: random(),
2017: random()
}
]
},
xAxis: { type: "category" },
yAxis: {},
// Declare several bar series, each will be mapped
// to a column of dataset.source by default.
series: [{ type: "bar" }, { type: "bar" }, { type: "bar" }]
};
}

View File

@@ -1,105 +0,0 @@
const data1 = [];
const symbolCount = 6;
for (let i = 0; i < 16; i++) {
data1.push([
Math.random() * 5,
Math.random() * 4,
Math.random() * 12,
Math.round(Math.random() * (symbolCount - 1))
]);
}
export const c1 = {
legend: {
top: 20,
data: ["scatter"]
},
tooltip: {
formatter: "{c}"
},
grid: {
top: "26%",
bottom: "26%"
},
xAxis: {
type: "value",
splitLine: {
show: false
}
},
yAxis: {
type: "value",
splitLine: {
show: false
}
},
visualMap: [
{
realtime: false,
left: "right",
selectedMode: "multiple",
dimension: 2,
selected: [],
min: 0,
max: 18,
precision: 0,
splitNumber: 0,
calculable: true
}
],
series: [
{
name: "scatter",
type: "scatter",
symbolSize: 30,
data: data1
}
]
};
export const c2 = {
legend: {
top: 20,
data: ["scatter"]
},
tooltip: {
formatter: "{c}"
},
grid: {
top: "26%",
bottom: "26%"
},
xAxis: {
type: "value",
splitLine: {
show: false
}
},
yAxis: {
type: "value",
splitLine: {
show: false
}
},
visualMap: [
{
left: "right",
selectedMode: "multiple",
dimension: 2,
selected: [],
min: 0,
max: 18,
precision: 0,
splitNumber: 0,
calculable: true
}
],
series: [
{
name: "scatter",
type: "scatter",
symbolSize: 30,
data: data1
}
]
};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[7.5311279296875,43.78695837311561],[8.3935546875,43.08493742707592],[7.8662109375,42.27730877423709],[7.734374999999999,39.16414104768742],[12.41455078125,37.63163475580643],[14.501953124999998,36.79169061907076],[15.27099609375,37.31775185163688],[15.556640624999998,38.06539235133249],[16.2158203125,37.96152331396614],[17.07275390625,38.75408327579141],[16.50146484375,39.70718665682654],[16.8310546875,40.29628651711716],[18.720703125,39.554883059924016],[18.984375,39.977120098439634],[17.55615234375,41.04621681452063],[14.52392578125,41.983994270935625],[13.0078125,43.67581809328341],[12.3046875,44.38669150215206],[12.32666015625,44.96479793033101],[12.37060546875,45.413876460821086],[13.7548828125,45.644768217751924],[13.77685546875,46.118941506107056],[11.2060546875,46.28622391806706],[9.228515625,46.164614496897094],[7.00927734375,46.042735653846506],[6.734619140625,45.023067895446175],[6.96533203125,44.77793589631623],[6.9927978515625,44.268804788566165],[7.3773193359375,44.1151978766043],[7.673950195312499,44.18614312298759],[7.690429687499999,44.134913443750726],[7.706909179687499,44.07574700247845],[7.673950195312499,44.000717834282774],[7.569580078124999,43.949327348785225],[7.4871826171875,43.854335770789575],[7.5311279296875,43.78695837311561]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,33 +0,0 @@
/* eslint-disable */
import logo from '../assets/Vue-ECharts.svg'
/* eslint-enable */
const d = logo.match(/\bd="([^"]+)"/)[1];
export default {
series: [
{
type: "liquidFill",
data: [0.7, 0.6, 0.55, 0.45],
amplitude: 6,
outline: {
show: false
},
radius: "60%",
color: ["#4fc08d", "#44d64a", "#33c762", "#4acc80"],
backgroundStyle: {
color: "#fff",
borderColor: "#2c3e50",
borderWidth: 1
},
shape: `path://${d}`,
label: {
normal: {
formatter() {
return "";
}
}
}
}
]
};

View File

@@ -1,40 +0,0 @@
export default {
textStyle: {
fontFamily: 'Inter, "Helvetica Neue", Arial, sans-serif'
},
title: {
text: "Traffic Sources",
left: "center"
},
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient: "vertical",
left: "left",
data: ["Direct", "Email", "Ad Networks", "Video Ads", "Search Engines"]
},
series: [
{
name: "Traffic Sources",
type: "pie",
radius: "55%",
center: ["50%", "60%"],
data: [
{ value: 335, name: "Direct" },
{ value: 310, name: "Email" },
{ value: 234, name: "Ad Networks" },
{ value: 135, name: "Video Ads" },
{ value: 1548, name: "Search Engines" }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)"
}
}
}
]
};

View File

@@ -1,45 +0,0 @@
const data = [];
for (let i = 0; i <= 360; i++) {
const t = (i / 180) * Math.PI;
const r = Math.sin(2 * t) * Math.cos(2 * t);
data.push([r, i]);
}
export default {
textStyle: {
fontFamily: 'Inter, "Helvetica Neue", Arial, sans-serif'
},
title: {
text: "Dual Numeric Axis"
},
legend: {
data: ["line"]
},
polar: {
center: ["50%", "54%"]
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "cross"
}
},
angleAxis: {
type: "value",
startAngle: 0
},
radiusAxis: {
min: 0
},
series: [
{
coordinateSystem: "polar",
name: "line",
type: "line",
showSymbol: false,
data: data
}
],
animationDuration: 2000
};

View File

@@ -1,140 +0,0 @@
import { graphic } from "echarts/core";
const data = [
[
[28604, 77, 17096869, "Australia", 1990],
[31163, 77.4, 27662440, "Canada", 1990],
[1516, 68, 1154605773, "China", 1990],
[13670, 74.7, 10582082, "Cuba", 1990],
[28599, 75, 4986705, "Finland", 1990],
[29476, 77.1, 56943299, "France", 1990],
[31476, 75.4, 78958237, "Germany", 1990],
[28666, 78.1, 254830, "Iceland", 1990],
[1777, 57.7, 870601776, "India", 1990],
[29550, 79.1, 122249285, "Japan", 1990],
[2076, 67.9, 20194354, "North Korea", 1990],
[12087, 72, 42972254, "South Korea", 1990],
[24021, 75.4, 3397534, "New Zealand", 1990],
[43296, 76.8, 4240375, "Norway", 1990],
[10088, 70.8, 38195258, "Poland", 1990],
[19349, 69.6, 147568552, "Russia", 1990],
[10670, 67.3, 53994605, "Turkey", 1990],
[26424, 75.7, 57110117, "United Kingdom", 1990],
[37062, 75.4, 252847810, "United States", 1990]
],
[
[44056, 81.8, 23968973, "Australia", 2015],
[43294, 81.7, 35939927, "Canada", 2015],
[13334, 76.9, 1376048943, "China", 2015],
[21291, 78.5, 11389562, "Cuba", 2015],
[38923, 80.8, 5503457, "Finland", 2015],
[37599, 81.9, 64395345, "France", 2015],
[44053, 81.1, 80688545, "Germany", 2015],
[42182, 82.8, 329425, "Iceland", 2015],
[5903, 66.8, 1311050527, "India", 2015],
[36162, 83.5, 126573481, "Japan", 2015],
[1390, 71.4, 25155317, "North Korea", 2015],
[34644, 80.7, 50293439, "South Korea", 2015],
[34186, 80.6, 4528526, "New Zealand", 2015],
[64304, 81.6, 5210967, "Norway", 2015],
[24787, 77.3, 38611794, "Poland", 2015],
[23038, 73.13, 143456918, "Russia", 2015],
[19360, 76.5, 78665830, "Turkey", 2015],
[38225, 81.4, 64715810, "United Kingdom", 2015],
[53354, 79.1, 321773631, "United States", 2015]
]
];
export default {
textStyle: {
fontFamily: 'Inter, "Helvetica Neue", Arial, sans-serif'
},
title: {
text: "Life Expectancy vs. GDP by country"
},
legend: {
right: 10,
data: ["1990", "2015"]
},
xAxis: {
splitLine: {
lineStyle: {
type: "dashed"
}
}
},
yAxis: {
splitLine: {
lineStyle: {
type: "dashed"
}
},
scale: true
},
series: [
{
name: "1990",
data: data[0],
type: "scatter",
symbolSize(data) {
return Math.sqrt(data[2]) / 5e2;
},
emphasis: {
label: {
show: true,
formatter({ data }) {
return data[3];
},
position: "top"
}
},
itemStyle: {
shadowBlur: 10,
shadowColor: "rgba(120, 36, 50, 0.5)",
shadowOffsetY: 5,
color: new graphic.RadialGradient(0.4, 0.3, 1, [
{
offset: 0,
color: "rgb(251, 118, 123)"
},
{
offset: 1,
color: "rgb(204, 46, 72)"
}
])
}
},
{
name: "2015",
data: data[1],
type: "scatter",
symbolSize(data) {
return Math.sqrt(data[2]) / 5e2;
},
emphasis: {
label: {
show: true,
formatter({ data }) {
return data[3];
},
position: "top"
}
},
itemStyle: {
shadowBlur: 10,
shadowColor: "rgba(25, 100, 150, 0.5)",
shadowOffsetY: 5,
color: new graphic.RadialGradient(0.4, 0.3, 1, [
{
offset: 0,
color: "rgb(129, 227, 238)"
},
{
offset: 1,
color: "rgb(25, 183, 207)"
}
])
}
}
]
};

View File

@@ -1 +0,0 @@
export {default as CChartMap} from './CChartMap.vue'

View File

@@ -1,394 +0,0 @@
{
"color": ["#4ea397", "#22c3aa", "#7bd9a5"],
"backgroundColor": "rgba(0,0,0,0)",
"textStyle": {},
"title": {
"textStyle": {
"color": "#666666"
},
"subtextStyle": {
"color": "#999999"
}
},
"line": {
"itemStyle": {
"borderWidth": "2"
},
"lineStyle": {
"width": "3"
},
"symbolSize": "10",
"symbol": "emptyCircle",
"smooth": true
},
"radar": {
"itemStyle": {
"borderWidth": "2"
},
"lineStyle": {
"width": "3"
},
"symbolSize": "10",
"symbol": "emptyCircle",
"smooth": true
},
"bar": {
"itemStyle": {
"barBorderWidth": "0",
"barBorderColor": "#444444"
},
"emphasis": {
"itemStyle": {
"barBorderWidth": "0",
"barBorderColor": "#444444"
}
}
},
"pie": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"scatter": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"boxplot": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"parallel": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"sankey": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"funnel": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"gauge": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"candlestick": {
"itemStyle": {
"color": "#d0648a",
"color0": "#ffffff",
"borderColor": "#d0648a",
"borderColor0": "#22c3aa",
"borderWidth": 1
}
},
"graph": {
"itemStyle": {
"borderWidth": "0",
"borderColor": "#444444"
},
"lineStyle": {
"width": 1,
"color": "#aaa"
},
"symbolSize": "10",
"symbol": "emptyCircle",
"smooth": true,
"color": ["#4ea397", "#22c3aa", "#7bd9a5"],
"label": {
"color": "#ffffff"
}
},
"map": {
"itemStyle": {
"areaColor": "#eeeeee",
"borderColor": "#999999",
"borderWidth": "0.5"
},
"emphasis": {
"itemStyle": {
"areaColor": "rgba(34,195,170,0.25)",
"borderColor": "#22c3aa",
"borderWidth": "0.5"
},
"label": {
"color": "rgb(52,158,142)"
}
},
"label": {
"color": "#28544e"
}
},
"geo": {
"itemStyle": {
"areaColor": "#eeeeee",
"borderColor": "#999999",
"borderWidth": "0.5"
},
"emphasis": {
"itemStyle": {
"areaColor": "rgba(34,195,170,0.25)",
"borderColor": "#22c3aa",
"borderWidth": "0.5"
},
"label": {
"color": "rgb(52,158,142)"
}
},
"label": {
"color": "#28544e"
}
},
"categoryAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"color": "#999999"
},
"splitLine": {
"show": true,
"lineStyle": {
"color": ["#eeeeee"]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
}
}
},
"valueAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"color": "#999999"
},
"splitLine": {
"show": true,
"lineStyle": {
"color": ["#eeeeee"]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
}
}
},
"logAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"color": "#999999"
},
"splitLine": {
"show": true,
"lineStyle": {
"color": ["#eeeeee"]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
}
}
},
"timeAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"color": "#999999"
},
"splitLine": {
"show": true,
"lineStyle": {
"color": ["#eeeeee"]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
}
}
},
"toolbox": {
"iconStyle": {
"borderColor": "#aaaaaa"
},
"emphasis": {
"iconStyle": {
"borderColor": "#666"
}
}
},
"legend": {
"textStyle": {
"color": "#999999"
}
},
"tooltip": {
"axisPointer": {
"lineStyle": {
"color": "#ccc",
"width": 1
},
"crossStyle": {
"color": "#ccc",
"width": 1
}
}
},
"timeline": {
"lineStyle": {
"color": "#349e8e",
"width": 1
},
"itemStyle": {
"color": "#349e8e",
"borderWidth": "1"
},
"emphasis": {
"itemStyle": {
"color": "#57e8d2"
}
},
"controlStyle": {
"color": "#349e8e",
"borderColor": "#349e8e",
"borderWidth": "0"
},
"checkpointStyle": {
"color": "#22c3aa",
"borderColor": "rgba(34,195,170,0.25)"
},
"label": {
"color": "#349e8e"
}
},
"visualMap": {
"color": ["#d0648a", "#22c3aa", "rgba(123,217,165,0.2)"]
},
"dataZoom": {
"backgroundColor": "#fff",
"dataBackgroundColor": "#dedede",
"fillerColor": "rgba(34,195,170,0.25)",
"handleColor": "#dddddd",
"handleSize": "100%",
"textStyle": {
"color": "#999"
}
},
"markPoint": {
"label": {
"color": "#ffffff",
"emphasis": {
"textStyle": {
"color": "#ffffff"
}
}
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -2,10 +2,10 @@ import { defineComponent, ref, computed, PropType, toRef, onMounted } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { tools } from '@store/Modules/tools'
import { useI18n } from 'vue-i18n'
import { tools } from '@tools'
import { costanti, IMainCard } from '@store/Modules/costanti'
import { CBigBtn } from '@/components/CBigBtn'
import { CBigBtn } from '@src/components/CBigBtn'
export default defineComponent({
@@ -19,7 +19,7 @@ export default defineComponent({
const globalStore = useGlobalStore()
const { t } = useI18n()
const isAppRunning = computed(() => globalStore.isAppRunning )
const isAppRunning = computed(() => globalStore.isAppRunning)
const finishLoading = computed(() => globalStore.finishLoading)
@@ -35,14 +35,14 @@ export default defineComponent({
globalStore.deferredPrompt.prompt()
// Wait for the user to respond to the prompt
globalStore.deferredPrompt.userChoice.then((choiceResult: any)=>{
globalStore.deferredPrompt.userChoice.then((choiceResult: any) => {
if (choiceResult.outcome === 'accepted') {
globalStore.deferredPrompt = null;
// console.log('User accepted the A2HS prompt');
} else {
// console.log('User dismissed the A2HS prompt');
// console.log('User dismissed the A2HS prompt');
}
});
});
}
}

View File

@@ -1,11 +1,13 @@
import { defineComponent, ref, computed, PropType, toRef, onMounted } from 'vue'
import type { PropType} from 'vue';
import { defineComponent, ref, computed, toRef, onMounted } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useCircuitStore } from '@store/CircuitStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { tools } from '@store/Modules/tools'
import { IAccount, ICircuit, IMyGroup, IOperators, ISendCoin, ISpecialField, IUserFields } from '../../model'
import { useI18n } from 'vue-i18n'
import { tools } from '@tools'
import type { IMyGroup, IUserFields } from '../../model';
import { IAccount, ICircuit, IOperators, ISendCoin, ISpecialField } from '../../model'
import { useQuasar } from 'quasar'
export default defineComponent({

View File

@@ -2,11 +2,11 @@ import { defineComponent, ref, computed, PropType, toRef } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { tools } from '@store/Modules/tools'
import { useI18n } from 'vue-i18n'
import { tools } from '@tools'
import { costanti } from '@store/Modules/costanti'
import { static_data } from '@src/db/static_data'
import { CRegistration } from '@/components/CRegistration'
import { CRegistration } from '@src/components/CRegistration'
export default defineComponent({
name: 'CCheckIfIsLogged',

View File

@@ -1,13 +1,14 @@
import { tools } from '../../store/Modules/tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { defineComponent, computed, PropType, ref } from 'vue'
import { IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { CLabel } from '@/components/CLabel'
import { CSendCoins } from '@/components/CSendCoins'
import type { PropType} from 'vue';
import { defineComponent, computed, ref } from 'vue'
import type { IUserFields } from 'model'
import { shared_consts } from '@src/common/shared_vuejs'
import { CLabel } from '@src/components/CLabel'
import { CSendCoins } from '@src/components/CSendCoins'
export default defineComponent({
name: 'CContactUser',

View File

@@ -1,7 +1,8 @@
<template>
<div
v-if="
((tools.getLinkUserTelegramByUser(myuser) || (myuser.email && tools.isEmailVerifiedByUser(myuser))) &&
((tools.getLinkUserTelegramByUser(myuser) ||
(myuser.email && tools.isEmailVerifiedByUser(myuser))) &&
tools.isUserOk()) ||
showBtnActivities
"
@@ -28,7 +29,7 @@
<div class="q-pa-xs">
<q-btn
v-if="showBtnRis"
icon-right="img: images/1ris_rosso_100.png"
icon-right="img: /images/1ris_rosso_100.png"
color="green"
size="md"
:label="$t('circuit.sendcoins')"
@@ -46,7 +47,9 @@
size="md"
rounded
:label="$t('dialog.contact')"
:href="tools.isUserOk() ? tools.getLinkUserTelegramByUser(myuser) : null"
:href="
tools.isUserOk() ? tools.getLinkUserTelegramByUser(myuser) : null
"
@click="
!tools.isUserOk() ? (showingtooltip = !showingtooltip) : false
"
@@ -61,7 +64,9 @@
<CLabel
v-bind="$attrs"
:copy="true"
:value="!tools.isUsernameTelegOkByUser(myuser) ? myuser.email : ''"
:value="
!tools.isUsernameTelegOkByUser(myuser) ? myuser.email : ''
"
:label="$t('reg.email')"
/>
</div>
@@ -105,5 +110,5 @@
</script>
<style lang="scss" scoped>
@import './CContactUser.scss';
@import "./CContactUser.scss";
</style>

View File

@@ -1,5 +1,6 @@
import { defineComponent, ref, toRef, computed, PropType, watch, onMounted, reactive, onBeforeUnmount } from 'vue'
import { useI18n } from '@src/boot/i18n'
import type { PropType } from 'vue';
import { defineComponent, ref, toRef, computed, watch, onMounted, reactive, onBeforeUnmount } from 'vue'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useQuasar } from 'quasar'
@@ -8,14 +9,14 @@ import { CCatalogoCard } from '../CCatalogoCard'
import { func_tools, toolsext } from '@store/Modules/toolsext'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { useProducts } from '@store/Products'
import { shared_consts } from '@src/common/shared_vuejs'
import { useRouter } from 'vue-router'
import { costanti } from '@costanti'
import { IOptCatalogo, IMyScheda, IProduct } from '@src/model'
import type { IOptCatalogo, IMyScheda, IProduct } from '@src/model'
export default defineComponent({
@@ -101,7 +102,7 @@ export default defineComponent({
}
function mounted() {
//
//
}
onMounted(mounted)

View File

@@ -1,6 +1,6 @@
import { tools } from '../../store/Modules/tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { defineComponent } from 'vue'
@@ -42,7 +42,7 @@ export default defineComponent({
return {
copytoclip,
tools,
getclass,
getclass,
}
},
})

View File

@@ -1,10 +1,10 @@
import { tools } from '../../store/Modules/tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { defineComponent } from 'vue'
import { shared_consts } from '@/common/shared_vuejs'
import { shared_consts } from '@src/common/shared_vuejs'
export default defineComponent({
name: 'CCopyBtnSmall',

View File

@@ -2,9 +2,9 @@ import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
import { tools } from '@src/store/Modules/tools'
import { date, useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { CCurrencyValue } from '@/components/CCurrencyValue'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { useI18n } from 'vue-i18n'
import { CCurrencyValue } from '@src/components/CCurrencyValue'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { costanti } from '@costanti'

View File

@@ -2,14 +2,14 @@ import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
import { tools } from '@src/store/Modules/tools'
import { date, useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { costanti } from '@costanti'
export default defineComponent({
name: 'CCurrencyValue',
components: { },
emits: ['changedParamValue' ],
components: {},
emits: ['changedParamValue'],
props: {
modelValue: {
type: [String, Number],

View File

@@ -17,13 +17,12 @@
>
<!--<q-icon
v-if="symbol === 'RIS'"
name="img: images/1ris_rosso_100.png"
name="img: /images/1ris_rosso_100.png"
:size="small ? `xs` : `sm`"
/>-->
<div
>
<div>
<q-icon
v-if="myrecparam && myrecparam.fidoConcesso > 0 && !paramTypeAccount"
v-if="myrecparam && myrecparam.fidoConcesso > 0 && !paramTypeAccount"
:color="myrecparam.fidoConcesso > 0 ? 'blue' : 'grey'"
name="fas fa-house-user"
class="vertical-baseline q-ml-xs"
@@ -135,10 +134,14 @@
</div>
<q-icon
v-if="symbol === 'RIS'"
name="img: images/1ris_rosso_100.png"
name="img: /images/1ris_rosso_100.png"
:size="small ? `xs` : `sm`"
/>
<q-icon
v-else
name="img: /images/1ris_rosso_100.png"
:size="small ? `xs` : `sm`"
/>
<q-icon v-else name="img: images/1ris_rosso_100.png" :size="small ? `xs` : `sm`" />
</template>
</q-field>
</div>
@@ -150,5 +153,5 @@
</script>
<style lang="scss" scoped>
@import './CCurrencyValue.scss';
@import "./CCurrencyValue.scss";
</style>

View File

@@ -4,12 +4,13 @@ import { ICalcStat, IOperators } from '../../model'
import { useUserStore } from '../../store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '../../store/globalStore'
import { useI18n } from '../../boot/i18n'
import { useI18n } from 'vue-i18n'
import { shared_consts } from '@src/common/shared_vuejs'
import { costanti, IMainCard } from '@store/Modules/costanti'
import type { IMainCard } from '@store/Modules/costanti';
import { costanti } from '@store/Modules/costanti'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
export default defineComponent({
name: 'CDashGroup',

View File

@@ -1,15 +1,15 @@
import { computed, defineComponent, PropType, ref } from 'vue'
import { computed, defineComponent } from 'vue'
import { ICalcStat, IOperators } from '../../model'
import { useUserStore } from '../../store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '../../store/globalStore'
import { useI18n } from '../../boot/i18n'
import { useI18n } from 'vue-i18n'
import { shared_consts } from '@src/common/shared_vuejs'
import { costanti, IMainCard } from '@store/Modules/costanti'
import type { IMainCard } from '@costanti';
import { costanti } from '@costanti'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
export default defineComponent({
name: 'CDashboard',

View File

@@ -1,9 +1,9 @@
import { defineComponent, ref, toRef, watch } from 'vue'
import { tools } from '@src/store/Modules/tools'
import { useQuasar } from 'quasar'
import { useQuasar } from 'quasar'
import { useCalendarStore } from '@store/CalendarStore'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
export default defineComponent({
@@ -106,7 +106,7 @@ export default defineComponent({
}
}
watch(() => props.value, (value, oldval) => {
watch(() => props.value, (value, oldval) => {
if (value) {
myvalue.value = tools.getstrYYMMDDDateTime(value)
// myvalueDate.value = myvalue.value

View File

@@ -1,6 +1,6 @@
import { tools } from '../../store/Modules/tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { defineComponent } from 'vue'
@@ -31,17 +31,17 @@ export default defineComponent({
// Crea un blob dalla jsonString passata come proprietà
const blob = new Blob([props.testoJson], { type: 'application/json' });
const url = URL.createObjectURL(blob);
// Crea un link temporaneo
const link = document.createElement('a');
link.href = url;
const fileName = `${props.nomefile}-${tools.getDateYYYYMMDD_Today()}.json`;
link.download = fileName; // Nome del file da scaricare
// Aggiungi il link al DOM e clicca per scaricare
document.body.appendChild(link);
link.click();
// Rimuovi il link dal DOM e libera l'oggetto URL
document.body.removeChild(link);
URL.revokeObjectURL(url);

View File

@@ -1,6 +1,6 @@
import { defineComponent } from 'vue'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
export default defineComponent({
name: 'CElemStat',

View File

@@ -1,21 +1,23 @@
import { defineComponent, ref, onMounted, onBeforeMount, computed, PropType, reactive, watch } from 'vue'
import { useI18n } from '@src/boot/i18n'
import type { PropType} from 'vue';
import { defineComponent, ref, onMounted, onBeforeMount, computed, reactive, watch } from 'vue'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useQuasar } from 'quasar'
import { colors, Screen, Platform, date } from 'quasar'
import { EState, IBookedEvent, IBookedEventPage, IEvents, IMessage, IMessagePage, IParamDialog } from '@model'
import type { IBookedEvent, IBookedEventPage, IEvents, IMessage, IMessagePage, IParamDialog } from '@model';
import { EState } from '@model'
import { Logo } from '../logo'
import { LandingFooter } from '../LandingFooter'
import { CTitle } from '../CTitle'
import { CImgText } from '../CImgText'
import { CMyEditor } from '../CMyEditor'
import { CDateTime } from '@/components/CDateTime'
import { CDateTime } from '@src/components/CDateTime'
import { CMyAvatar } from '../CMyAvatar'
import { CMySingleEvent } from '@/components/CMySingleEvent'
import { CMyTeacher } from '@/components/CMyTeacher'
import { CMySingleEvent } from '@src/components/CMySingleEvent'
import { CMyTeacher } from '@src/components/CMyTeacher'
import { CMySelect } from '../CMySelect'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { costanti } from '@costanti'
// import { stop, prevent, stopAndPrevent } from 'quasar/src/utils/event'
@@ -24,9 +26,9 @@ import MixinEvents from '../../mixins/mixin-events'
import { useCalendarStore } from '@store/CalendarStore'
import { func_tools, toolsext } from '@store/Modules/toolsext'
import { useMessageStore } from '@store/MessageStore'
import { static_data } from '@/db/static_data'
import { static_data } from '@src/db/static_data'
import { lists } from '@store/Modules/lists'
import translate from '@/globalroutines/util'
import translate from '@src/globalroutines/util'
import { shared_consts } from '@src/common/shared_vuejs'
export default defineComponent({
@@ -206,7 +208,7 @@ export default defineComponent({
// convert the events into a map of lists keyed by date
function eventsMap() {
// console.log('eventsMap')
const map: {} = {}
const map: any = {}
calendarStore.eventlist.forEach((myevent: IEvents) => {
const myind: string = tools.getstrDateTime(myevent.dateTimeStart)
@@ -775,9 +777,9 @@ export default defineComponent({
// draggedEvent.value.time = day.time
draggedEvent.value.side = void 0
}
// console.log('Start', draggedEvent.value.dateTimeStart, 'End', draggedEvent.value.dateTimeEnd)
// console.log('Start', draggedEvent.value.dateTimeStart, 'End', draggedEvent.value.dateTimeEnd)
// Save Date
// Save Date
UpdateDbByFields($q, {
_id: draggedEvent.value._id,
dateTimeStart: draggedEvent.value.dateTimeStart,
@@ -787,7 +789,7 @@ export default defineComponent({
}
function resetDrag() {
// @ts-ignore
// @ts-ignore
draggedEvent.value = void 0
dragging.value = false
if (Platform.is.desktop) {
@@ -847,12 +849,12 @@ export default defineComponent({
}
function calendarNext() {
// @ts-ignore
// @ts-ignore
calendar.value.next()
}
function calendarPrev() {
// @ts-ignore
// @ts-ignore
calendar.value.prev()
}
@@ -861,18 +863,18 @@ export default defineComponent({
}
function SetToday() {
// root.$emit('calendar:today', formatDate(tools.getDateNow()))
// root.$emit('calendar:today', formatDate(tools.getDateNow()))
}
function onChanged(data: any) {
// uncomment to see data in console
// let { start, end } = data
// console.log('onChanged:', start, end)
// uncomment to see data in console
// let { start, end } = data
// console.log('onChanged:', start, end)
}
function onMoved(moved: any) {
// uncomment to see data in console
// console.log('onMoved:', moved)
// uncomment to see data in console
// console.log('onMoved:', moved)
}
function getEventList() {
@@ -922,8 +924,8 @@ export default defineComponent({
}
}
}
// if (eventsloc.length > 0)
// console.log('eventsloc', eventsloc)
// if (eventsloc.length > 0)
// console.log('eventsloc', eventsloc)
return eventsloc
}

View File

@@ -1,11 +1,11 @@
import { tools } from '../../store/Modules/tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { CDownloadJsonFile } from '@/components/CDownloadJsonFile'
import { CDownloadJsonFile } from '@src/components/CDownloadJsonFile'
import { PropType, defineComponent, onMounted, ref } from 'vue'
import { IMyPage } from '@src/model'
import type { IMyPage } from '@src/model'
export default defineComponent({
name: 'CExportImportPage',
@@ -13,27 +13,27 @@ export default defineComponent({
idPage: {
type: String,
required: true,
},
},
esporta: {
type: Boolean,
required: true,
},
nomefile: {
},
nomefileprop: {
type: String,
required: true,
},
},
},
components: {CDownloadJsonFile},
components: { CDownloadJsonFile },
setup(props) {
const $q = useQuasar()
const { t } = useI18n()
const globalStore = useGlobalStore()
const myrec = ref(<IMyPage | undefined>{})
const nomefile = ref(<string>'')
const testoJson = ref(<any>'')
let fileContent = ref('')
const fileContent = ref('')
const ris = ref('')
@@ -49,14 +49,14 @@ export default defineComponent({
tools.showNotif($q, 'Seleziona un file JSON valido.', { color: 'negative', icon: 'notifications' })
}
}
const importaPagina = async () => {
try {
if (!fileContent.value) {
tools.showNotif($q, 'Nessun file JSON caricato.', { color: 'negative', icon: 'notifications' })
return
}
// Chiama la funzione di importazione passandole il contenuto del file
ris.value = await globalStore.importPage(fileContent.value, $q, t);
@@ -68,15 +68,15 @@ export default defineComponent({
async function esportaPagina() {
if (myrec.value) {
testoJson.value = await globalStore.exportPage(myrec.value.path!, $q, t)
testoJson.value = await globalStore.exportPage(myrec.value.path, $q, t)
}
}
async function mounted() {
nomefile.value = props.nomefile
nomefile.value = props.nomefileprop
myrec.value = globalStore.getPageById(props.idPage)
}
onMounted(mounted)
@@ -90,6 +90,7 @@ export default defineComponent({
nomefile,
onFileChange,
ris,
fileContent,
}
},
})

View File

@@ -1,7 +1,6 @@
<template>
<div v-if="myrec && myrec.path" style="width: 800px;" class="">
<div v-if="myrec && myrec.path" style="width: 800px" class="">
<div v-if="esporta">
<h2>Pagina '{{ myrec.path }}'</h2>
<br />
@@ -31,11 +30,9 @@
<div v-else>
<div class="column">
Importa file JSON:
<input
type="file"
@change="onFileChange">
</input>
fileContent: {{fileContent}}
<input type="file" @change="onFileChange" />
fileContent: {{ fileContent }}
<q-btn
color="primary"
label="Importa file"
@@ -43,13 +40,15 @@
></q-btn>
</div>
</div>
<div class="row">Risultato:<br>
{{ ris }}</div>
<div class="row">
Risultato:<br />
{{ ris }}
</div>
</div>
</template>
<script lang="ts" src="./CExportImportPage.ts"></script>
<style lang="scss" scoped>
@import './CExportImportPage.scss';
@import "./CExportImportPage.scss";
</style>

View File

@@ -1,11 +1,11 @@
import { defineComponent, PropType, onBeforeUpdate, reactive } from 'vue'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useQuasar } from 'quasar'
import MixinBase from '../../mixins/mixin-base'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
export default defineComponent({
name: 'CFacebookFrame',

View File

@@ -1,11 +1,12 @@
import { computed, defineComponent, onMounted, PropType, ref, watch, reactive, toRefs } from 'vue'
import { ICalcStat, IOperators, ISearchList } from '../../model'
import type { ISearchList } from '../../model';
import { ICalcStat, IOperators } from '../../model'
import { useUserStore } from '../../store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '../../store/globalStore'
import { useCircuitStore } from '../../store/CircuitStore'
import { useI18n } from '../../boot/i18n'
import { useI18n } from 'vue-i18n'
import { shared_consts } from '@src/common/shared_vuejs'
import { costanti, IMainCard } from '@store/Modules/costanti'
@@ -18,7 +19,7 @@ import { CCopyBtnSmall } from '../CCopyBtnSmall'
import { CContactUser } from '../CContactUser'
import { CGridTableRec } from '../CGridTableRec'
import { CUserInfoAccount } from '../CUserInfoAccount'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { useQuasar } from 'quasar'
import { colmyUserPeople } from '@store/Modules/fieldsTable'

View File

@@ -3,17 +3,18 @@ import {
provide, defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch,
} from 'vue'
import { tools } from '@store/Modules/tools'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { tools } from '@tools'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { costanti } from '@costanti'
import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore'
import { CTitlePage } from '@/components/CTitlePage'
import { CGridTableRec } from '@/components/CGridTableRec'
import { IColGridTable, IMyBacheca, IMySkill, ISearchList, ISkill } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { useI18n } from '@/boot/i18n'
import { CTitlePage } from '@src/components/CTitlePage'
import { CGridTableRec } from '@src/components/CGridTableRec'
import type { IColGridTable, ISearchList} from 'model';
import { IMyBacheca, IMySkill, ISkill } from 'model'
import { shared_consts } from '@src/common/shared_vuejs'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { useQuasar } from 'quasar'

View File

@@ -1,5 +1,10 @@
<template>
<CTitlePage :ind="ind" :table="table" :showBarSelection="showBarSelection" @clickButtBar="clickButtBar">
<CTitlePage
:ind="ind"
:table="table"
:showBarSelection="showBarSelection"
@clickButtBar="clickButtBar"
>
<div class="bi-border-all">
<div class="q-ma-xs q-gutter-xs">
<div v-if="showFilterPersonal" class="text-center">
@@ -35,16 +40,19 @@
labelElemFind="trovati"
:choose_visutype="visuType"
:butt_modif_new="true && !noButtAdd"
:noresultLabel="t('grid.nosearchfound') + ' ' + (showMap ? t('grid.intheareamap') : '')"
:noresultLabel="
t('grid.nosearchfound') +
' ' +
(showMap ? t('grid.intheareamap') : '')
"
:arrfilters="arrfilterand"
:filtercustom="filtercustom"
:prop_searchList="searchList"
:defaultnewrec="tools.getdefaultnewrec(table)"
labelBtnAddRow="NONE"
:prop_SortFieldsAvailable="mySortFieldsAvailable()"
:labelBtnAddExtra_OFF="noButtAdd ? `` : (ind >= 0) ? `Aggiungi ` + costanti.MAINCARDS[ind].strsingolo : ''"
:labelBtnAddExtra="labelBtnAddExtra"
:extraparams="tools.extraparams(table, {myrecfiltertoggle})"
:extraparams="tools.extraparams(table, { myrecfiltertoggle })"
:prop_showMap="showMap"
@clickButtBar="clickButtBar"
>
@@ -66,5 +74,5 @@
<script lang="ts" src="./CFinder.ts">
</script>
<style lang="scss" scoped>
@import './CFinder.scss';
@import "./CFinder.scss";
</style>

View File

@@ -3,12 +3,12 @@ import {
defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRefs, watch, inject, computed,
} from 'vue'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { shared_consts } from '@src/common/shared_vuejs'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useRouter } from 'vue-router'
import { static_data } from '@/db/static_data'
import { static_data } from '@src/db/static_data'
import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore'
@@ -31,7 +31,7 @@ export default defineComponent({
// mounted
}
function reloadPage(){
function reloadPage() {
$router.go(0)
}

View File

@@ -2,12 +2,6 @@ li {
color: darkgreen !important;
}
.testo-banda {
//background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent));
//background: linear-gradient(180deg, #3144f0, transparent);
//background: rgba(0, 0, 0, .6)
}
$grayshadow: #555;
$textcol: blue;
@@ -26,24 +20,11 @@ h4 {
visibility: hidden;
}
.landing {
}
.landing_background {
background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed;
background-size: cover
}
.landing > section {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
//padding: 0 16px
}
.intro {
display: flex;
justify-content: space-between;
@@ -64,7 +45,7 @@ h4 {
min-width: 350px;
}
&__comeassociarsi{
&__comeassociarsi {
min-width: 350px;
}
}
@@ -77,21 +58,21 @@ h4 {
font-size: 1rem;
}
.landing > section.padding {
.landing>section.padding {
padding: 5.62rem 1rem;
}
.landing > section.padding_testo {
.landing>section.padding_testo {
padding-top: 1.25rem;
padding-bottom: 1rem;
}
.landing > section.padding_gallery {
.landing>section.padding_gallery {
padding-top: 3.125rem;
padding-bottom: 5.625rem;
}
.landing > section > div {
.landing>section>div {
position: relative;
max-width: 1240px;
width: 100%
@@ -144,7 +125,8 @@ h4 {
text-shadow: .25rem .25rem .5rem $grayshadow;
}
.landing__features h4, .landing__features h6 {
.landing__features h4,
.landing__features h6 {
margin: 1rem 0
}
@@ -178,12 +160,6 @@ h4 {
opacity: .8
}
.landing__swirl-bg {
background-repeat: no-repeat !important;
background-position: top;
background-size: contain !important;
background-image: url(../../../public/images/landing_first_section.png) !important
}
.feat-descr {
font-size: 1.15rem;
@@ -199,10 +175,6 @@ h4 {
//margin-left: -48px
}
body.mobile .landing {
//background: unset
}
body.mobile .landing:before {
content: "";
position: fixed;
@@ -275,7 +247,7 @@ body.mobile .landing:before {
font-weight: 700;
}
.text-vers{
.text-vers {
font-size: 0.75rem;
font-weight: 400;
line-height: 1.75rem;
@@ -324,7 +296,8 @@ body.mobile .landing:before {
.mylist {
padding: 0.75rem;
border-radius: 16px; border: 2px solid #00f7ff;
border-radius: 16px;
border: 2px solid #00f7ff;
}
.clgutter {
@@ -346,34 +319,38 @@ body.mobile .landing:before {
.landing__hero {
text-align: center
}
.landing__header {
height: 2vh
}
.clgutter {
margin-top: 0;
padding: 0;
}
.landing__hero .text-h1 {
font-size: 3rem;
line-height: 3.05rem;
margin-bottom: 1.5rem
}
.landing > section.padding {
.landing>section.padding {
padding: 2.5rem 1rem;
}
.landing > section.padding_testo {
.landing>section.padding_testo {
padding-top: 1.25rem;
padding-bottom: 1rem;
}
.landing > section.padding_gallery {
.landing>section.padding_gallery {
padding-top: 3.125rem;
padding-bottom: 5.625rem;
}
.landing__features h4, .landing__features h6 {
.landing__features h4,
.landing__features h6 {
margin: 1.25rem 0
}
@@ -386,9 +363,11 @@ body.mobile .landing:before {
text-align: center;
margin-top: 1.25rem;
}
.landing__hero-content {
padding-bottom: 3.5rem;
}
.landing__hero-btns {
-webkit-box-pack: center;
-ms-flex-pack: center;
@@ -402,7 +381,8 @@ body.mobile .landing:before {
.text-subtitle1 {
font-size: 1.25rem;
}
.text-vers{
.text-vers {
font-size: 0.6rem;
}
@@ -444,6 +424,7 @@ body.mobile .landing:before {
li {
color: white !important;
font-size: 18px;
@media (max-width: 600px) {
font-size: 1rem;
}
@@ -457,7 +438,8 @@ ul li::before {
width: 1em;
margin-left: 20px;
margin-right: 5px;
@media (max-width: 600px) {
margin-left: 5px;
}
}
}

View File

@@ -1,15 +1,15 @@
import { defineComponent, ref, computed, PropType, toRef, onMounted, onBeforeUnmount } from 'vue'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { tools } from '@store/Modules/tools'
import { LandingFooter } from '@/components/LandingFooter'
import { Logo } from '@/components/logo'
import { IMyPage } from 'model'
import { useI18n } from 'vue-i18n'
import { tools } from '@tools'
import { LandingFooter } from '@src/components/LandingFooter'
import { Logo } from '@src/components/logo'
import type { IMyPage } from 'model'
export default defineComponent({
name: 'CFundRaising',
components: {Logo, LandingFooter},
components: { Logo, LandingFooter },
props: {},
setup() {
const { t } = useI18n();

View File

@@ -1,10 +1,12 @@
import { defineComponent, ref, PropType, watch, onMounted, computed } from 'vue'
import { useI18n } from '@src/boot/i18n'
import type { PropType } from 'vue';
import { defineComponent, ref, watch, onMounted, computed } from 'vue'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useQuasar } from 'quasar'
import { IGallery, IImgGallery } from 'model'
import { CMyPage } from '@/components/CMyPage'
import { tools } from '@store/Modules/tools'
import type { IImgGallery } from 'model';
import { IGallery } from 'model'
import { CMyPage } from '@src/components/CMyPage'
import { tools } from '@tools'
import { useGlobalStore } from '@store/globalStore'
import { costanti } from '@costanti'
@@ -277,7 +279,7 @@ export default defineComponent({
function getfullname(rec: any) {
if (rec) {
return costanti.DIR_UPLOAD + props.directory + '/' + rec.imagefile
return tools.getDirUpload() + props.directory + '/' + rec.imagefile
} else {
return props.imagebak
}

View File

@@ -1,10 +1,12 @@
import { defineComponent, ref, PropType, watch, onMounted, computed } from 'vue'
import { useI18n } from '@src/boot/i18n'
import type { PropType } from 'vue';
import { defineComponent, ref, watch, onMounted, computed } from 'vue'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useQuasar } from 'quasar'
import { IGallery, IImgGallery } from 'model'
import { CMyPage } from '@/components/CMyPage'
import { tools } from '@store/Modules/tools'
import type { IImgGallery } from 'model';
import { IGallery } from 'model'
import { CMyPage } from '@src/components/CMyPage'
import { tools } from '@tools'
import { useGlobalStore } from '@store/globalStore'
import { costanti } from '@costanti'

View File

@@ -3,17 +3,18 @@ import {
provide, defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch,
} from 'vue'
import { tools } from '@store/Modules/tools'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { tools } from '@tools'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { costanti } from '@costanti'
import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore'
import { CTitlePage } from '@/components/CTitlePage'
import { CGridTableRec } from '@/components/CGridTableRec'
import { IColGridTable, IMyBacheca, IMySkill, ISearchList, ISkill, TipoVisu } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { useI18n } from '@/boot/i18n'
import { CTitlePage } from '@src/components/CTitlePage'
import { CGridTableRec } from '@src/components/CGridTableRec'
import type { IColGridTable, ISearchList } from 'model';
import { IMyBacheca, IMySkill, ISkill, TipoVisu } from 'model'
import { shared_consts } from '@src/common/shared_vuejs'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { useQuasar } from 'quasar'
@@ -261,7 +262,7 @@ export default defineComponent({
function mounted() {
let obj = tools.getParamsByTable(props.table)
const obj = tools.getParamsByTable(props.table)
if (props.ind >= 0) {
strextra.value = costanti.MAINCARDS[props.ind].strsingolo!
@@ -289,8 +290,8 @@ export default defineComponent({
{ label: '👤 Circuiti che Gestisci', value: tools.FILTER_MYREC },
// {label: 'Seguo', value: tools.FILTER_MYFOLLOW},
]
}
}
} else {
/*
@@ -388,7 +389,7 @@ export default defineComponent({
table: 'cities',
key: 'idCity',
type: costanti.FieldType.select_by_server,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'cities', costanti.FILTER_TUTTI),
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'cities', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
useinput: true,
@@ -413,7 +414,7 @@ export default defineComponent({
label: 'Settore',
table: toolsext.TABSECTORS,
key: 'idSector',
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORS, 0, true),
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORS, 0, true),
arrvalue: [],
type: costanti.FieldType.select,
filter: null,
@@ -439,7 +440,7 @@ export default defineComponent({
label: 'Offro/Cerco',
table: 'adtypes',
key: 'adType',
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'adtypes', costanti.FILTER_TUTTI, true),
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'adtypes', costanti.FILTER_TUTTI, true),
arrvalue: [],
addall: true,
type: costanti.FieldType.select,
@@ -485,7 +486,7 @@ export default defineComponent({
table: 'statusSkills',
key: 'idStatusSkill',
value: 0,
arrvalue: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'statusSkills', []),
arrvalue: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'statusSkills', []),
type: costanti.FieldType.multiselect,
filter: null,
useinput: false,
@@ -545,7 +546,7 @@ export default defineComponent({
table: 'regions',
key: 'idReg',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'regions', costanti.FILTER_TUTTI),
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'regions', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: null,
@@ -645,7 +646,7 @@ export default defineComponent({
]
searchList_Cataloghi.value = tools.getsearchList_Cataloghi()
searchList_Hosp.value = [
{
visible: true,
@@ -696,7 +697,7 @@ export default defineComponent({
label: 'Offro/Cerco',
table: 'adtypes',
key: 'adType',
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'adtypes', costanti.FILTER_TUTTI, true),
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'adtypes', costanti.FILTER_TUTTI, true),
arrvalue: [],
addall: true,
type: costanti.FieldType.select,

View File

@@ -1,13 +1,14 @@
import { defineComponent, PropType, ref, watch, toRef, onMounted, onBeforeUnmount, toRefs, computed, inject, onUnmounted, nextTick } from 'vue'
import { useI18n } from '@src/boot/i18n'
import type { PropType } from 'vue';
import { defineComponent, ref, watch, toRef, onMounted, onBeforeUnmount, toRefs, computed, inject, onUnmounted, nextTick } from 'vue'
import { useI18n } from 'vue-i18n'
import { tools } from '../../store/Modules/tools'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { shared_consts } from '@/common/shared_vuejs'
import { shared_consts } from '@src/common/shared_vuejs'
import {
import type {
IColGridTable,
IFilter,
ITableRec,
@@ -15,12 +16,14 @@ import {
IPagination,
IParamDialog,
IMySkill,
ICoordLatLng,
ICoordGPS,
IOptGrid
} from 'model';
import {
ICoordLatLng,
ICoordGPS
} from 'model'
import { lists } from '@store/Modules/lists'
import { IParamsQuery } from 'model'
import type { IParamsQuery } from 'model'
import { CMyPopupEdit } from '../CMyPopupEdit'
import { CMyFriends } from '../CMyFriends'
import { CNotifSettings } from '../CNotifSettings'
@@ -39,13 +42,13 @@ import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useQuasar, exportFile } from 'quasar'
import { costanti } from '@costanti'
import translate from '@/globalroutines/util'
import translate from '@src/globalroutines/util'
import { toolsext } from '@store/Modules/toolsext'
import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CMyCardService } from '@/components/CMyCardService'
import { CSingleMovement } from '@/components/CSingleMovement'
import { CMyCardGrpPopup } from '@/components/CMyCardGrpPopup'
import { CMyCardCircuitPopup } from '@/components/CMyCardCircuitPopup'
import { CMyCardPopup } from '@src/components/CMyCardPopup'
import { CMyCardService } from '@src/components/CMyCardService'
import { CSingleMovement } from '@src/components/CSingleMovement'
import { CMyCardGrpPopup } from '@src/components/CMyCardGrpPopup'
import { CMyCardCircuitPopup } from '@src/components/CMyCardCircuitPopup'
import { onBeforeRouteLeave, onBeforeRouteUpdate, useRouter } from 'vue-router'
import { useRoute } from 'vue-router'
import { NavigationGuardNext, RouteLocationNormalized } from 'vue-router'
@@ -65,7 +68,8 @@ export default defineComponent({
},
prop_mytitlenew: {
type: String,
required: true,
required: false,
default: '',
},
subtitle: {
type: String,
@@ -212,7 +216,9 @@ export default defineComponent({
opt: {
type: Object as PropType<IOptGrid>,
required: false,
default: {},
default: () => {
return {}
},
},
filterdef: {
type: Array,
@@ -251,6 +257,7 @@ export default defineComponent({
default: 0,
},
heightcarousel: {
type: Number,
required: false,
default: 0,
},
@@ -276,7 +283,9 @@ export default defineComponent({
defaultnewrec: {
type: Object,
required: false,
default: {},
default: () => {
return {}
},
},
col_title: {
type: String,
@@ -416,7 +425,7 @@ export default defineComponent({
const editOn = computed({
get: () => globalStore.editOn,
set: val => {
tools.updateEditOn(val!)
tools.updateEditOn(val)
},
})
@@ -789,19 +798,19 @@ export default defineComponent({
}
function getObjSort(sortBy: any, descending: any) {
let myobj: any = {}
const myobj: any = {}
if (tools.isObject(sortBy)) {
// console.log('sortBy', sortBy)
return sortBy
} else if (sortBy) {
sortBy = sortBy + ''
// descending = descending + ''
let arrsort = (sortBy && sortBy.indexOf(',') > 0) ? sortBy.split(',') : [];
let arrdescending = (descending && descending.length > 1 && descending.indexOf(',') > 0) ? descending.split(',') : [];
const arrsort = (sortBy && sortBy.indexOf(',') > 0) ? sortBy.split(',') : [];
const arrdescending = (descending && descending.length > 1 && descending.indexOf(',') > 0) ? descending.split(',') : [];
if (arrsort.length > 0) {
for (let i = 0; i < arrsort.length; i++) {
let field = arrsort[i].trim()
let risdesc = (tools.isArray(arrdescending) && (arrdescending.length > i)) ? parseInt(arrdescending[i].trim()) : 1;
const field = arrsort[i].trim()
const risdesc = (tools.isArray(arrdescending) && (arrdescending.length > i)) ? parseInt(arrdescending[i].trim()) : 1;
myobj[field] = getOrderByField(field, risdesc)
}
} else {
@@ -931,7 +940,7 @@ export default defineComponent({
let nomecircuito = item.value
if (tools.isObject(item.value))
nomecircuito = item.value.name
filtersearch3and.push({ "profile.mycircuits.circuitname": nomecircuito })
}
}
@@ -961,7 +970,7 @@ export default defineComponent({
});
} else if (myitemsingle === shared_consts.FILTER_USER_ONLINE_6_MESI) {
const numgiorni_attivi = 30 * 6
let daytocheck = new Date();
const daytocheck = new Date();
daytocheck.setDate(daytocheck.getDate() - numgiorni_attivi);
daytocheck.setHours(0, 0, 0, 0)
@@ -1012,7 +1021,7 @@ export default defineComponent({
} else if (item.table === 'cities') {
if (item.value && item.value.hasOwnProperty('_id')) {
if (tools.existProp(item.value, '_id')) {
const myfield = tools.getFieldSearchByTable(mytable.value, item.table, 'idCity')
if (myfield) {
obj[myfield] = item.value._id
@@ -1042,7 +1051,7 @@ export default defineComponent({
objitem[item.key] = item.value
filter_gte.push(objitem)
} else if (item.table === 'lista_editori') {
if (item.value !== costanti.FILTER_TUTTI) {
@@ -1473,7 +1482,7 @@ export default defineComponent({
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + toolsext.TABPROVINCE, filtroProv.value)
}
}
/*const filtroCircuito = searchList.value.find((myrec) => myrec.table === 'circuits')
/*const filtroCircuito = searchList.value.find((myrec) => myrec.table === 'circuits')
if (filtroCircuito && filtroCircuito.value !== costanti.FILTER_TUTTI) {
const filtroProv = searchList.value.find((myrec) => myrec.table === toolsext.TABPROVINCE) // check if exist
if (filtroProv && filtroRegioni) {
@@ -1563,14 +1572,14 @@ export default defineComponent({
if (col.jointable === toolsext.TABSECTORS) {
// Sbianca la select della Categoria
if (item && item.hasOwnProperty('idSkill')) {
if (tools.existProp(item, 'idSkill')) {
item.idSkill = costanti.FILTER_NESSUNO
newRecord.value.idSkill = item.idSkill
}
} else if (col.jointable === toolsext.TABSECTORGOODS) {
// Sbianca la select della Categoria Beni
if (item && item.hasOwnProperty('idGood')) {
if (tools.existProp(item, 'idGood')) {
item.idGood = costanti.FILTER_NESSUNO
newRecord.value.idGood = item.idGood
console.log('newRecord', newRecord)
@@ -1742,7 +1751,7 @@ export default defineComponent({
newRecord.value = {}
}
newRecord.value.userId = userStore.my._id
newRecord.value.idapp = process.env.APP_ID
newRecord.value.idapp = tools.getEnv('VITE_APP_ID')
// globalStore.saveTable(mydata).then(ris => console.log('RISULT', ris))
newRecordBool.value = true
@@ -1855,7 +1864,7 @@ export default defineComponent({
// console.log('props.filtercustom', props.filtercustom)
if (!!props.tablesList) {
if (props.tablesList) {
canEdit.value = tools.getCookie(tools.CAN_EDIT, canEdit) === 'true'
tablesel.value = tools.getCookie('tablesel', tablesel.value)
}
@@ -1865,7 +1874,7 @@ export default defineComponent({
// console.log('tablesel', tablesel)
if (tablesel.value === '') {
if (!!props.tablesList)
if (props.tablesList)
tablesel.value = props.tablesList[0].value
else
tablesel.value = mytable.value
@@ -1874,17 +1883,17 @@ export default defineComponent({
if (!shared_consts.TABLES_ORDER_DATE_UPDATED.includes(tablesel.value) &&
!shared_consts.TABLES_ORDER_DESCR.includes(tablesel.value)) {
// console.log('get cookie)')
let v1 = tools.getCookie('s_ordinamnew_' + tablesel.value, null)
const v1 = tools.getCookie('s_ordinamnew_' + tablesel.value, null)
if (v1)
ordinam.value = v1
let v2 = tools.getCookie('s_ordinamnew_des_' + tablesel.value, null)
const v2 = tools.getCookie('s_ordinamnew_des_' + tablesel.value, null)
if (v2)
ordinam_desc.value = v2
}
// console.log('2) tablesel', tablesel.value)
changeTable(tablesel.value, true)
changeTable(tablesel.value)
nextTick(() => {
checkScrollPosition()
@@ -2027,7 +2036,7 @@ export default defineComponent({
function changeCol(newval: any) {
// console.log('changecol', mytable.value)
if (!!mytable.value) {
if (mytable.value) {
const arrcol = []
let col: IColGridTable = { name: '', sortable: false }
for (col of mycolumns.value) {
@@ -2048,7 +2057,7 @@ export default defineComponent({
}
}
function changeTable(mysel: any, mounted: boolean) {
function changeTable(mysel: any) {
// console.log('changeTable', tablesel.value)
changetable.value = true
if (tablesel.value === undefined || tablesel.value === '')
@@ -2086,7 +2095,7 @@ export default defineComponent({
// console.log('tablesList:')
// console.table(tablesList)
if (!!mycolumns.value) {
if (mycolumns.value) {
mycolumns.value.forEach((rec: IColGridTable) => {
if (rec.label_trans)
rec.label = t(rec.label_trans)
@@ -2097,13 +2106,13 @@ export default defineComponent({
mytable.value = mytab.value
}
if (!!props.tablesList) {
if (props.tablesList) {
tools.setCookie('tablesel', tablesel.value)
}
updatedcol()
if (!!mytable.value) {
if (mytable.value) {
// Leggi la lista delle colonne visibili:
const myselcol = tools.getCookie(mytable.value + '_', '')
@@ -2278,7 +2287,7 @@ export default defineComponent({
return false
}
} catch (e) {
}
return ok
@@ -2331,11 +2340,11 @@ export default defineComponent({
// Add the column
if (col.field_toduplicate_nospace) {
//
let trovato = tools.removespecial_chars(myobj[col.name])
const trovato = tools.removespecial_chars(myobj[col.name])
if (myobj[col.field_toduplicate_nospace] === '') {
myobj[col.field_toduplicate_nospace] = trovato
}
let attuale = tools.removespecial_chars(myobj[col.field_toduplicate_nospace])
const attuale = tools.removespecial_chars(myobj[col.field_toduplicate_nospace])
myobj[col.field_toduplicate_nospace] = attuale
// console.log('trovato', trovato, 'name', myobj[col.name], 'duplicate:', myobj[col.field_toduplicate_nospace], 'orig', myobj[col.name])
}
@@ -2345,7 +2354,7 @@ export default defineComponent({
const data = await globalStore.saveTable(mydata)
.then((ris) => {
if (ris.hasOwnProperty('code')) {
if (tools.existProp(ris, 'code')) {
tools.checkErrors($q, ris.code, '')
} else {
if (ris) {
@@ -2693,7 +2702,7 @@ export default defineComponent({
mapInitialized.value = true
boundariesMap.value = { ne, sw }
// Verifica se boundariesMap è variato da precedente valore,
// Verifica se boundariesMap è variato da precedente valore,
// ma solo se ci sono nuovi pezzi delle mappa in più mostrati, quindi se è stato fatto un zoom in, non includerlo
const percrange = 0.15 //15%

View File

@@ -2,7 +2,11 @@
<div v-if="tools.isDebugOn()"></div>
<div :class="$q.screen.lt.sm ? `` : `q-pa-xs`" v-if="isfinishLoading">
<q-toggle
v-if="(tools.isManager() || tools.isEditor() || tools.isGrafico()) && !showMap && editOn"
v-if="
(tools.isManager() || tools.isEditor() || tools.isGrafico()) &&
!showMap &&
editOn
"
v-model="editOn"
color="green"
icon="fas fa-pencil-alt"
@@ -25,7 +29,7 @@
</div>
<div
v-if="(butt_modif_new || mytitle)"
v-if="butt_modif_new || mytitle"
:class="$q.screen.lt.sm ? `` : `q-ma-xs` + ` `"
>
<q-toolbar v-if="mytitle" class="bg-primary text-white">
@@ -108,7 +112,11 @@
:icon="
!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'
"
:label="!showfilteradv ? $t('grid.advanced_filters') : $t('grid.hide_advanced_filters')"
:label="
!showfilteradv
? $t('grid.advanced_filters')
: $t('grid.hide_advanced_filters')
"
@click="showfilteradv = !showfilteradv"
></q-btn>
</div>
@@ -390,7 +398,7 @@
<CMapByTable
ref="myMapComp"
mytable=""
:arrcord="serverData"
:arrcordprop="serverData"
@clickMarker="clickMarker"
@updateMapBoundaries="updateMapBoundaries"
@updateMapZoomOut="updateMapZoomOut"
@@ -678,7 +686,7 @@
!(
myvertical === costanti.VISUTABLE_SCHEDA_USER ||
myvertical === 2 ||
myvertical === costanti.VISUTABLE_SCHEDA_GROUP
myvertical === costanti.VISUTABLE_SCHEDA_GROUP
)
"
v-slot:header="props"
@@ -734,7 +742,7 @@
:options="tablesList"
:display-value="mytitle"
emit-value
@update:model-value="changeTable"
@update:model-value="changeTable(tablesel)"
>
</q-select>
@@ -782,7 +790,11 @@
:icon="
!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'
"
:label="!showfilteradv ? $t('grid.advanced_filters') : $t('grid.hide_advanced_filters')"
:label="
!showfilteradv
? $t('grid.advanced_filters')
: $t('grid.hide_advanced_filters')
"
@click="showfilteradv = !showfilteradv"
></q-btn>
</div>
@@ -1099,8 +1111,8 @@
{{
fieldsTable.getValByTabAndId(
tablesel,
'adType',
props.row['adType']
"adType",
props.row["adType"]
)
}}
<!--<q-icon
@@ -1409,7 +1421,7 @@
>
<q-card class="dialog_card">
<q-bar dense class="bg-primary text-white">
{{ t('dialog.insert') }} {{ mytitlenew }}:
{{ t("dialog.insert") }} {{ mytitlenew }}:
<q-space />
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-bar>
@@ -1429,7 +1441,11 @@
dense
rounded
:icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"
:label="showfilteradv ? $t('grid.hide_campi_avanzati') : $t('grid.show_campi_avanzati')"
:label="
showfilteradv
? $t('grid.hide_campi_avanzati')
: $t('grid.show_campi_avanzati')
"
:class="{ 'q-btn--active': showfilteradv }"
:aria-expanded="showfilteradv.toString()"
@click="showfilteradv = !showfilteradv"
@@ -1510,7 +1526,11 @@
size="md"
dense
:icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"
:label="!showfilteradv ? $t('grid.show_campi_avanzati') : $t('grid.hide_campi_avanzati')"
:label="
!showfilteradv
? $t('grid.show_campi_avanzati')
: $t('grid.hide_campi_avanzati')
"
@click="showfilteradv = !showfilteradv"
></q-btn>
</div>
@@ -1582,5 +1602,5 @@
</script>
<style lang="scss">
@import './CGridTableRec.scss';
@import "./CGridTableRec.scss";
</style>

View File

@@ -1,25 +1,28 @@
import { defineComponent, PropType, ref, watch, toRef, onMounted, toRefs, computed, inject } from 'vue'
import { useI18n } from '@src/boot/i18n'
import type { PropType } from 'vue';
import { defineComponent, ref, watch, toRef, onMounted, toRefs, computed, inject } from 'vue'
import { useI18n } from 'vue-i18n'
import { tools } from '../../store/Modules/tools'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { shared_consts } from '@/common/shared_vuejs'
import { shared_consts } from '@src/common/shared_vuejs'
import {
import type {
IColGridTable,
IFilter,
ITableRec,
ISearchList,
IPagination,
IParamDialog,
IMySkill,
IMySkill
} from 'model';
import {
ICoordLatLng,
ICoordGPS
} from 'model'
import { lists } from '@store/Modules/lists'
import { IParamsQuery } from 'model'
import type { IParamsQuery } from 'model'
import { CMyPopupEdit } from '../CMyPopupEdit'
import { CMyFriends } from '../CMyFriends'
import { CNotifSettings } from '../CNotifSettings'
@@ -35,7 +38,7 @@ import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useQuasar, exportFile } from 'quasar'
import { costanti } from '@costanti'
import translate from '@/globalroutines/util'
import translate from '@src/globalroutines/util'
import { toolsext } from '@store/Modules/toolsext'
import { useRouter } from 'vue-router'
import { useRoute } from 'vue-router'
@@ -650,19 +653,19 @@ export default defineComponent({
}
function getObjSort(sortBy: any, descending: any) {
let myobj: any = {}
const myobj: any = {}
if (tools.isObject(sortBy)) {
// console.log('sortBy', sortBy)
return sortBy
} else if (sortBy) {
sortBy = sortBy + ''
// descending = descending + ''
let arrsort = (sortBy && sortBy.indexOf(',') > 0) ? sortBy.split(',') : [];
let arrdescending = (descending && descending.length > 1 && descending.indexOf(',') > 0) ? descending.split(',') : [];
const arrsort = (sortBy && sortBy.indexOf(',') > 0) ? sortBy.split(',') : [];
const arrdescending = (descending && descending.length > 1 && descending.indexOf(',') > 0) ? descending.split(',') : [];
if (arrsort.length > 0) {
for (let i = 0; i < arrsort.length; i++) {
let field = arrsort[i].trim()
let risdesc = (tools.isArray(arrdescending) && (arrdescending.length > i)) ? parseInt(arrdescending[i].trim()) : 1;
const field = arrsort[i].trim()
const risdesc = (tools.isArray(arrdescending) && (arrdescending.length > i)) ? parseInt(arrdescending[i].trim()) : 1;
myobj[field] = getOrderByField(field, risdesc)
}
} else {
@@ -794,7 +797,7 @@ export default defineComponent({
} else if (item.table === 'cities') {
if (item.value && item.value.hasOwnProperty('_id')) {
if (tools.existProp(item.value, '_id')) {
const myfield = tools.getFieldSearchByTable(mytable.value, item.table, 'idCity')
if (myfield) {
obj[myfield] = item.value._id
@@ -1298,14 +1301,14 @@ export default defineComponent({
if (col.jointable === toolsext.TABSECTORS) {
// Sbianca la select della Categoria
if (item && item.hasOwnProperty('idSkill')) {
if (tools.existProp(item, 'idSkill')) {
item.idSkill = costanti.FILTER_NESSUNO
newRecord.value.idSkill = item.idSkill
}
} else if (col.jointable === toolsext.TABSECTORGOODS) {
// Sbianca la select della Categoria Beni
if (item && item.hasOwnProperty('idGood')) {
if (tools.existProp(item, 'idGood')) {
item.idGood = costanti.FILTER_NESSUNO
newRecord.value.idGood = item.idGood
console.log('newRecord', newRecord)
@@ -1478,7 +1481,7 @@ export default defineComponent({
newRecord.value = {}
}
newRecord.value.userId = userStore.my._id
newRecord.value.idapp = process.env.APP_ID
newRecord.value.idapp = tools.getEnv('VITE_APP_ID')
// globalStore.saveTable(mydata).then(ris => console.log('RISULT', ris))
newRecordBool.value = true
@@ -1536,7 +1539,7 @@ export default defineComponent({
// console.log('props.filtercustom', props.filtercustom)
if (!!props.tablesList) {
if (props.tablesList) {
canEdit.value = tools.getCookie(tools.CAN_EDIT, canEdit) === 'true'
tablesel.value = tools.getCookie('tablesel', tablesel.value)
}
@@ -1546,7 +1549,7 @@ export default defineComponent({
// console.log('tablesel', tablesel)
if (tablesel.value === '') {
if (!!props.tablesList)
if (props.tablesList)
tablesel.value = props.tablesList[0].value
else
tablesel.value = mytable.value
@@ -1555,10 +1558,10 @@ export default defineComponent({
if (!shared_consts.TABLES_ORDER_DATE_UPDATED.includes(tablesel.value) &&
!shared_consts.TABLES_ORDER_DESCR.includes(tablesel.value)) {
// console.log('get cookie)')
let v1 = tools.getCookie('s_ordinamnew_' + tablesel.value, null)
const v1 = tools.getCookie('s_ordinamnew_' + tablesel.value, null)
if (v1)
ordinam.value = v1
let v2 = tools.getCookie('s_ordinamnew_des_' + tablesel.value, null)
const v2 = tools.getCookie('s_ordinamnew_des_' + tablesel.value, null)
if (v2)
ordinam_desc.value = v2
}
@@ -1692,7 +1695,7 @@ export default defineComponent({
function changeCol(newval: any) {
// console.log('changecol', mytable.value)
if (!!mytable.value) {
if (mytable.value) {
const arrcol = []
let col: IColGridTable = { name: '', sortable: false }
for (col of mycolumns.value) {
@@ -1751,7 +1754,7 @@ export default defineComponent({
// console.log('tablesList:')
// console.table(tablesList)
if (!!mycolumns.value) {
if (mycolumns.value) {
mycolumns.value.forEach((rec: IColGridTable) => {
if (rec.label_trans)
rec.label = t(rec.label_trans)
@@ -1762,13 +1765,13 @@ export default defineComponent({
mytable.value = mytab.value
}
if (!!props.tablesList) {
if (props.tablesList) {
tools.setCookie('tablesel', tablesel.value)
}
updatedcol()
if (!!mytable.value) {
if (mytable.value) {
// Leggi la lista delle colonne visibili:
const myselcol = tools.getCookie(mytable.value + '_', '')
@@ -1991,11 +1994,11 @@ export default defineComponent({
// Add the column
if (col.field_toduplicate_nospace) {
//
let trovato = tools.removespecial_chars(myobj[col.name])
const trovato = tools.removespecial_chars(myobj[col.name])
if (myobj[col.field_toduplicate_nospace] === '') {
myobj[col.field_toduplicate_nospace] = trovato
}
let attuale = tools.removespecial_chars(myobj[col.field_toduplicate_nospace])
const attuale = tools.removespecial_chars(myobj[col.field_toduplicate_nospace])
myobj[col.field_toduplicate_nospace] = attuale
// console.log('trovato', trovato, 'name', myobj[col.name], 'duplicate:', myobj[col.field_toduplicate_nospace], 'orig', myobj[col.name])
}
@@ -2005,7 +2008,7 @@ export default defineComponent({
const data = await globalStore.saveTable(mydata)
.then((ris) => {
if (ris.hasOwnProperty('code')) {
if (tools.existProp(ris, 'code')) {
tools.checkErrors($q, ris.code, '')
} else {
if (ris) {
@@ -2114,7 +2117,7 @@ export default defineComponent({
function showColCheck(col: IColGridTable, tipovis: number, visulabel: boolean, value: any = '', record: any = null) {
if (col.isadvanced_field && !showfilteradv.value)
return false
return false
const check = tools.checkIfShowField(col, tipovis, visulabel, value)

View File

@@ -2,12 +2,12 @@ import { colTableHours } from '@src/store/Modules/fieldsTable'
import { shared_consts } from '@src/common/shared_vuejs'
import { defineComponent, ref } from 'vue'
import { IPagination } from 'model'
import { CImgText } from '@/components/CImgText'
import type { IPagination } from 'model'
import { CImgText } from '@src/components/CImgText'
import { CCard } from '../CCard'
import { CMyPage } from '@/components/CMyPage'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CGridTableRec } from '@/components/CGridTableRec'
import { CMyPage } from '@src/components/CMyPage'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { CGridTableRec } from '@src/components/CGridTableRec'
import { useUserStore } from '@store/UserStore'
@@ -20,10 +20,10 @@ export default defineComponent({
required: true,
},
},
setup(props){
setup(props) {
const userStore = useUserStore()
const pagination = ref(<IPagination> {
const pagination = ref(<IPagination>{
sortBy: 'descr',
descending: false,
page: 2,

View File

@@ -1,8 +1,10 @@
import { defineComponent, PropType, ref } from 'vue'
import type { PropType} from 'vue';
import { defineComponent, ref } from 'vue'
import { tools } from '@src/store/Modules/tools'
import { shared_consts } from '@src/common/shared_vuejs'
import { IAnim, IElemText } from '@src/model'
import type { IAnim} from '@src/model';
import { IElemText } from '@src/model'
export default defineComponent({
name: 'CImgPoster',

View File

@@ -1,24 +1,26 @@
import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
import type { PropType} from 'vue';
import { defineComponent, onMounted, ref, watch } from 'vue'
import { useUserStore } from '@store/UserStore'
import { IMyGroup, IImgGallery, IUserFields, IUserProfile, IFriends, ICircuit, IAccount } from 'model'
import type { IMyGroup, ICircuit, IAccount } from 'model';
import { IImgGallery, IUserFields, IUserProfile, IFriends } from 'model'
import { costanti } from '@costanti'
import { shared_consts } from '@/common/shared_vuejs'
import { tools } from '@store/Modules/tools'
import { shared_consts } from '@src/common/shared_vuejs'
import { tools } from '@tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useRoute, useRouter } from 'vue-router'
import { CUserNonVerif } from '@/components/CUserNonVerif'
import { CUserNonVerif } from '@src/components/CUserNonVerif'
import { toolsext } from '@store/Modules/toolsext'
import { CSaldo } from '@/components/CSaldo'
import { CSendCoins } from '@/components/CSendCoins'
import { CCurrencyValue } from '@/components/CCurrencyValue'
import { CCurrencyV2 } from '@/components/CCurrencyV2'
import { CSaldo } from '@src/components/CSaldo'
import { CSendCoins } from '@src/components/CSendCoins'
import { CCurrencyValue } from '@src/components/CCurrencyValue'
import { CCurrencyV2 } from '@src/components/CCurrencyV2'
import { useCircuitStore } from '@store/CircuitStore'
export default defineComponent({
name: 'CInfoAccount',
emits: ['setCmd'],
components: {CUserNonVerif, CSaldo, CSendCoins, CCurrencyValue, CCurrencyV2 },
components: { CUserNonVerif, CSaldo, CSendCoins, CCurrencyValue, CCurrencyV2 },
props: {
grp: {
type: Object as PropType<IMyGroup>,
@@ -48,7 +50,7 @@ export default defineComponent({
const { t } = useI18n()
const $router = useRouter()
const myaccount = ref(<IAccount|undefined>undefined)
const myaccount = ref(<IAccount | undefined>undefined)
const circuitStore = useCircuitStore()

View File

@@ -1,11 +1,11 @@
import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
import { useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useGlobalStore } from '@store/globalStore'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { costanti } from '@costanti'
import { CDateTime } from '@/components/CDateTime'
import { CDateTime } from '@src/components/CDateTime'
export default defineComponent({
@@ -16,7 +16,7 @@ export default defineComponent({
required: true,
},
myvalue: {
type: [String, Number ],
type: [String, Number],
required: false,
default: '',
},

View File

@@ -1,8 +1,8 @@
import { defineComponent, ref, toRef, watch } from 'vue'
import { tools } from '@src/store/Modules/tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { useQuasar } from 'quasar'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
export default defineComponent({

View File

@@ -4,10 +4,11 @@ import { tools } from '../../store/Modules/tools'
import { useUserStore } from '@store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useQuasar } from 'quasar'
import { Chart, BarController, BarElement, LineController, LinearScale, CategoryScale, PointElement, LineElement, Title, ChartItem, ChartConfiguration } from 'chart.js';
import type { ChartItem, ChartConfiguration } from 'chart.js';
import { Chart, BarController, BarElement, LineController, LinearScale, CategoryScale, PointElement, LineElement, Title } from 'chart.js';
export default defineComponent({
@@ -68,7 +69,7 @@ export default defineComponent({
}
function mounted() {
Chart.register(BarController, BarElement,
Chart.register(BarController, BarElement,
LineController, LinearScale, CategoryScale, PointElement, LineElement, Title);
myarrdata.value = []
@@ -87,30 +88,30 @@ export default defineComponent({
let num = 1
let mostraggtutti = true
const mostraggtutti = true
if (mostraggtutti) {
let num = 1;
let strstartDate: any = props.mydata[0]
const strstartDate: any = props.mydata[0]
let startDate = new Date(strstartDate._id); // Data di inizio da props
let endDate = new Date(); // Data di fine da props
let currentDate = new Date(startDate);
const startDate = new Date(strstartDate._id); // Data di inizio da props
const endDate = new Date(); // Data di fine da props
const currentDate = new Date(startDate);
// console.log('startDate', startDate, 'endDate', endDate)
while (currentDate <= endDate) {
let dataPresente = getRecordByDate(props.mydata, currentDate)
const dataPresente = getRecordByDate(props.mydata, currentDate)
let count = dataPresente ? dataPresente.count : 0;
const count = dataPresente ? dataPresente.count : 0;
let day = currentDate.toISOString().split('T')[0].split('-');
let mydate = day[2] + '/' + day[1];
const day = currentDate.toISOString().split('T')[0].split('-');
const mydate = day[2] + '/' + day[1];
myarrlabel.value.push(mydate);
myarrdata.value.push(count);
let media = calcolaMedia(myarrdata.value, 30);
const media = calcolaMedia(myarrdata.value, 30);
myarrdataLine.value.push(media ? media : undefined);
if (currentDate === endDate) {
@@ -134,13 +135,13 @@ export default defineComponent({
somma = rec.count
}
let day = rec._id.split('-')
const day = rec._id.split('-')
ind = day[2] + '/' + day[1]
//myarrlabel.value.push(rec._id)
myarrlabel.value.push(ind)
myarrdata.value.push(rec.count)
let media = calcolaMedia(myarrdata.value, 14)
const media = calcolaMedia(myarrdata.value, 14)
myarrdataLine.value.push(media ? media : undefined)
if (num === props.mydata.length) {
myarrbg.value.push(tools.colourNameToHex('green'))

View File

@@ -2,10 +2,11 @@ import { defineComponent, ref, computed, PropType, toRef } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { tools } from '@store/Modules/tools'
import { costanti, IMainCard } from '@store/Modules/costanti'
import { CBigBtn } from '@/components/CBigBtn'
import { useI18n } from 'vue-i18n'
import { tools } from '@tools'
import type { IMainCard } from '@store/Modules/costanti';
import { costanti } from '@store/Modules/costanti'
import { CBigBtn } from '@src/components/CBigBtn'
export default defineComponent({

View File

@@ -1,6 +1,7 @@
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { useQuasar } from 'quasar'
import { PropType, defineComponent, onMounted, ref, toRaw, computed, toRef, watch, shallowRef } from 'vue'
import type { PropType } from 'vue';
import { defineComponent, onMounted, ref, toRaw, computed, toRef, watch, shallowRef } from 'vue'
import 'leaflet/dist/leaflet.css'
// @ts-ignore
@@ -12,7 +13,7 @@ import 'leaflet.markercluster'
import { useUserStore } from '@src/store/UserStore'
import { useGlobalStore } from '@src/store/globalStore'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { ICoordGPS } from '@src/model'
export default defineComponent({
@@ -23,7 +24,7 @@ export default defineComponent({
type: String,
required: true,
},
arrcord: {
arrcordprop: {
type: Array as PropType<any[]>,
required: false,
default: () => { return [] }
@@ -51,7 +52,7 @@ export default defineComponent({
const currentMarkerPositionGPS = shallowRef<L.Marker | null>(null)
const centerCoordinates = ref<{ lat: number; lng: number }>({ lat: 0, lng: 0 }); //
const centerCoordinates = ref<{ lat: number; lng: number }>({ lat: 0, lng: 0 }); //
const arrMarkers = ref(<any>[])
@@ -107,7 +108,7 @@ export default defineComponent({
});
const arrcord = toRef(props, 'arrcord')
const arrcord = toRef(props, 'arrcordprop')
const precZoomLevel = ref(0)
@@ -166,7 +167,7 @@ export default defineComponent({
};
}
watch(arrcord, () => {
watch(arrcord.value, () => {
updateMap()
})
@@ -193,7 +194,7 @@ export default defineComponent({
const myarrSectors = myrec.sector
if (!myarrSectors) return 'mdi-map-marker-outline'
let sectId = myarrSectors[0]._id
const sectId = myarrSectors[0]._id
return globalStore.getIconBySector(sectId)
}
@@ -320,7 +321,7 @@ export default defineComponent({
<img src="images/icon.png" class="marker-icon" alt="" />
<div class="marker-circle"></div>
<div class="marker-mini-icon ${getIconName(rec)}"></div>
</div>`;
@@ -336,7 +337,7 @@ export default defineComponent({
});
// @ts-ignore
let each_marker = new L.marker(
const each_marker = new L.marker(
[rec.coordinate_gps.coordinates[1], rec.coordinate_gps.coordinates[0]],
{
icon: markerIcon
@@ -344,8 +345,8 @@ export default defineComponent({
}
)
.bindPopup(() => {
let container = L.DomUtil.create('div');
let strHTML = `<span class="fake-link">${rec.descr}</span>`
const container = L.DomUtil.create('div');
const strHTML = `<span class="fake-link">${rec.descr}</span>`
if (debug.value) {
// strHTML += `<br> Lat: ${rec.coordinate_gps.coordinates[1]} <br> Lng: ${rec.coordinate_gps.coordinates[0]}`;
@@ -353,7 +354,7 @@ export default defineComponent({
container.innerHTML = strHTML
let fakeLink: any = container.querySelector('.fake-link');
const fakeLink: any = container.querySelector('.fake-link');
L.DomEvent.on(fakeLink, 'click', (e) => {
L.DomEvent.stopPropagation(e);
ApriScheda(rec._id);
@@ -566,7 +567,7 @@ export default defineComponent({
if (markerShowed.value) {
//console.log('openPopup markerShowed', markerShowed.value)
if (markerShowed.value.closePopup) {
markerShowed.value.openPopup(); // Mostra il popup
markerShowed.value.openPopup(); // Mostra il popup
}
}
});

View File

@@ -1,4 +1,4 @@
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { useQuasar } from 'quasar'
import { PropType, defineComponent, onMounted, ref, computed, nextTick, shallowRef } from 'vue'
@@ -130,7 +130,7 @@ export default defineComponent({
comuniData.value = [{
"type": "Feature", "properties":
{
"cartodb_id": 7668,
"cartodb_id": 7668,
"comune": "Bellaria-Igea Marina",
"ISTAT": 99001
},
@@ -214,7 +214,7 @@ export default defineComponent({
onAdd: function (map: any) {
// Crea un container DOM per il tuo controllo
const container = L.DomUtil.create('div', 'leaflet-bar leaflet-control leaflet-control-custom');
// Puoi configurare il tuo container come preferisci, incluso il suo aspetto
container.style.backgroundColor = 'white';
// container.style.backgroundImage = 'url('path_to_your_icon.png')"; // Optional: uso di un'icona personalizzata

View File

@@ -1,6 +1,7 @@
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { useQuasar } from 'quasar'
import { defineComponent, onMounted, onBeforeUnmount, ref, watch, computed, PropType, nextTick, shallowRef } from 'vue'
import type { PropType} from 'vue';
import { defineComponent, onMounted, onBeforeUnmount, ref, watch, computed, nextTick, shallowRef } from 'vue'
import 'leaflet/dist/leaflet.css'
import * as L from 'leaflet'
@@ -14,7 +15,7 @@ import { useUserStore } from '@src/store/UserStore'
// Importa le immagini dei marker
import icon from 'leaflet/dist/images/marker-icon.png'
import iconShadow from 'leaflet/dist/images/marker-shadow.png'
import { ICoordGPS, ICoordLatLng } from '@src/model'
import type { ICoordGPS, ICoordLatLng } from '@src/model'
export default defineComponent({
name: 'CMapEditAddressByCoord',
@@ -202,7 +203,7 @@ export default defineComponent({
}
function updateMap() {
map.value?.setView([localCoordinates.value.lat, localCoordinates.value.lng], zoomLevel.value)
}
@@ -223,6 +224,7 @@ export default defineComponent({
}
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
const getAddressSuggestions = async (val: string, update: Function) => {
try {
if (val.length === 0) {
@@ -302,7 +304,7 @@ export default defineComponent({
localAddress.value = ''
localAddressObj.value = { label: '', value: '' }
} else {
localAddressObj.value = { label: props.modelValue.address, value: props.modelAddress }
localAddressObj.value = { label: props.modelValue.address, value: props.modelValue.address }
}
if (!props.modelValue.coordinates) {
localCoordinates.value = { lat: 0, lng: 0 }
@@ -388,4 +390,4 @@ export default defineComponent({
fineLoad,
}
}
})
})

View File

@@ -1,4 +1,4 @@
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { useQuasar } from 'quasar'
import { defineComponent, onMounted, ref, shallowRef, watch, computed } from 'vue'
@@ -116,6 +116,7 @@ export default defineComponent({
}
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
const getAddressSuggestions = async (val: string, update: Function) => {
try {
if (val.length === 0) {
@@ -168,4 +169,4 @@ export default defineComponent({
getAddressSuggestions,
}
}
})
})

View File

@@ -1,4 +1,4 @@
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { useQuasar } from 'quasar'
import { PropType, defineComponent, onMounted, ref, shallowRef, computed } from 'vue'
@@ -70,7 +70,7 @@ export default defineComponent({
d > 10 ? '#FED976' :
'#FFEDA0';
}
function style(feature: any) {
return {
fillColor: getColor(feature.properties.density),

View File

@@ -1,4 +1,3 @@
/* eslint-disable no-console */
import qs from 'qs'
// import VChart from '../ECharts'
import VChart, { THEME_KEY } from 'vue-echarts';

View File

@@ -1,6 +1,4 @@
/* eslint-disable */
import logo from '../assets/Vue-ECharts.svg'
/* eslint-enable */
const d = logo.match(/\bd="([^"]+)"/)[1];

View File

@@ -1,14 +1,14 @@
import { computed, defineComponent, onMounted, PropType, ref, toRef, watch } from 'vue'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { shared_consts } from '@/common/shared_vuejs'
import { shared_consts } from '@src/common/shared_vuejs'
import { IColGridTable, IOperators } from 'model'
import { tools } from '@store/Modules/tools'
import { static_data } from '@/db/static_data'
import { tools } from '@tools'
import { static_data } from '@src/db/static_data'
export default defineComponent({
name: 'CMenuItem',

View File

@@ -2,13 +2,14 @@ import { defineComponent, ref, computed, PropType, toRef, onMounted } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { CMyImgUser } from '@/components/CMyImgUser'
import { CSingleMovement } from '@/components/CSingleMovement'
import { CCurrencyValue } from '@/components/CCurrencyValue'
import { tools } from '@store/Modules/tools'
import { IMovQuery, IMovVisu, IMovement } from '@src/model'
import { CMyImgUser } from '@src/components/CMyImgUser'
import { CSingleMovement } from '@src/components/CSingleMovement'
import { CCurrencyValue } from '@src/components/CCurrencyValue'
import { tools } from '@tools'
import type { IMovQuery, IMovVisu} from '@src/model';
import { IMovement } from '@src/model'
import { shared_consts } from '@src/common/shared_vuejs'
@@ -50,20 +51,25 @@ export default defineComponent({
const mylist = computed(() => {
if (globalStore.datastat || userStore.my.profile) {
let arrtransaz: any = []
let transaz = -1
if (props.username) {
numtransaz.value = userStore.my.profile.last_my_transactions!.length
arrtransaz = userStore.my.profile.last_my_transactions
transaz = arrtransaz.length
} else {
if (globalStore.datastat) {
numtransaz.value = globalStore.datastat.last_transactions!.length
arrtransaz = globalStore.datastat.last_transactions
transaz = arrtransaz!.length
}
}
if (transaz >= 0) {
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
numtransaz.value = transaz
}
if (prectransaz.value !== numtransaz.value) {
emit('loaded', { numtransaz: numtransaz.value })
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
prectransaz.value = numtransaz.value
}
@@ -79,11 +85,12 @@ export default defineComponent({
})
return list
}
return []
})
const getRicevuti = computed(() => {
if (props.username && mylist.value) {
const list = mylist.value.filter((rec: IMovVisu) => {
const list = mylist.value.filter((rec: IMovVisu) => {
return (props.username && (rec.userto && (rec.userto.username === props.username)))
})
return list

View File

@@ -1,35 +1,36 @@
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { CMyFieldRec } from '@/components/CMyFieldRec'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CProfile } from '@/components/CProfile'
import { CLabel } from '@/components/CLabel'
import { CCopyBtn } from '@/components/CCopyBtn'
import { CSkill } from '@/components/CSkill'
import { CDateTime } from '@/components/CDateTime'
import { CMyGroup } from '@/components/CMyGroup'
import { CMyCircuit } from '@/components/CMyCircuit'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { CMyFieldRec } from '@src/components/CMyFieldRec'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { CProfile } from '@src/components/CProfile'
import { CLabel } from '@src/components/CLabel'
import { CCopyBtn } from '@src/components/CCopyBtn'
import { CSkill } from '@src/components/CSkill'
import { CDateTime } from '@src/components/CDateTime'
import { CMyGroup } from '@src/components/CMyGroup'
import { CMyCircuit } from '@src/components/CMyCircuit'
import { CContactUser } from '@src/components/CContactUser'
import { CNotifAtTop } from '@src/components/CNotifAtTop'
import { CTimeAgo } from '@src/components/CTimeAgo'
import { CSendCoins } from '@/components/CSendCoins'
import { CMyUser } from '@/components/CMyUser'
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
import { CUserNonVerif } from '@/components/CUserNonVerif'
import { tools } from '@store/Modules/tools'
import { CSendCoins } from '@src/components/CSendCoins'
import { CMyUser } from '@src/components/CMyUser'
import { CCheckIfIsLogged } from '@src/components/CCheckIfIsLogged'
import { CUserNonVerif } from '@src/components/CUserNonVerif'
import { tools } from '@tools'
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useRoute, useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { IBookmark, IReaction, ICircuit, IFavorite, IMyCircuit, IMyGroup, IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { static_data } from '@/db/static_data'
import type { IReaction, IMyCircuit, IMyGroup, IUserFields } from 'model';
import { IBookmark, ICircuit, IFavorite } from 'model'
import { shared_consts } from '@src/common/shared_vuejs'
import { static_data } from '@src/db/static_data'
import { fieldsTable } from '@store/Modules/fieldsTable'
import { useNotifStore } from '@store/NotifStore'
import MixinUsers from '@/mixins/mixin-users'
import MixinUsers from '@src/mixins/mixin-users'
import { useCircuitStore } from '@src/store/CircuitStore'
@@ -44,7 +45,7 @@ export default defineComponent({
username_prop: {
type: String,
required: true,
default : '',
default: '',
},
introUser: {
type: Boolean,
@@ -104,7 +105,7 @@ export default defineComponent({
async function loadProfile() {
console.log('loadProfile...', username.value)
try {
let today = new Date();
const today = new Date();
today.setHours(0, 0, 0, 0);
@@ -116,7 +117,7 @@ export default defineComponent({
if (myuser.value) {
// filtro_eventi.value = [{ userId: myuser.value._id }, { dateTimeStart: { $gte: today } }]
let mydate = tools.addDays(tools.getDateNow(), -1)
let mydateend = tools.addDays(mydate, 180)
const mydateend = tools.addDays(mydate, 180)
mydate = tools.getstrYYMMDDDate(mydate)
filtro_eventi.value = [{ userId: myuser.value._id }, { dateTimeStart: { $gte: mydate, $lte: mydateend } }]
filtroutente.value = [{ userId: myuser.value._id }]
@@ -140,7 +141,7 @@ export default defineComponent({
listcircuitsfiltered.value = allcirc.value.slice(0, 5)
if (circnaz) {
if (listcircuitsfiltered.value.findIndex((circ: IMyCircuit) => circ._id === circnaz._id) < 0) {
// includi anche il circuito nazionale
// includi anche il circuito nazionale
listcircuitsfiltered.value.unshift(circnaz)
}
}
@@ -213,7 +214,7 @@ export default defineComponent({
function filtrofavorite(table: string) {
const tab = tools.getNumTabByTable(table)
if (myuser.value && myuser.value.profile.reaction) {
let arrfav = myuser.value.profile.reaction.filter((rec: IReaction) => rec.tab === tab && (rec.fav! === true))
const arrfav = myuser.value.profile.reaction.filter((rec: IReaction) => rec.tab === tab && (rec.fav! === true))
if (arrfav)
return myuser.value.profile.reaction ? [{ _id: { $in: arrfav.map((rec: any) => rec.idrec) } }] : []
}
@@ -222,7 +223,7 @@ export default defineComponent({
function filtrobookmark(table: string) {
const tab = tools.getNumTabByTable(table)
if (myuser.value && myuser.value.profile.reaction) {
let arrfav = myuser.value.profile.reaction.filter((rec: IReaction) => rec.tab === tab && rec.book === true);
const arrfav = myuser.value.profile.reaction.filter((rec: IReaction) => rec.tab === tab && rec.book === true);
if (arrfav)
return myuser.value.profile.reaction ? [{ _id: { $in: arrfav.map((rec: any) => rec.idrec) } }] : []
}

View File

@@ -1,21 +1,23 @@
import { computed, defineComponent, onMounted, PropType, ref, watch } from 'vue'
import type { PropType} from 'vue';
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CProfile } from '@/components/CProfile'
import { CDateTime } from '@/components/CDateTime'
import { CMyPage } from '@/components/CMyPage'
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
import { CMyFieldRec } from '@/components/CMyFieldRec'
import { tools } from '@store/Modules/tools'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { CProfile } from '@src/components/CProfile'
import { CDateTime } from '@src/components/CDateTime'
import { CMyPage } from '@src/components/CMyPage'
import { CCheckIfIsLogged } from '@src/components/CCheckIfIsLogged'
import { CMyFieldRec } from '@src/components/CMyFieldRec'
import { tools } from '@tools'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { IColGridTable, ICircuit, IImgGallery, IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import type { IColGridTable, ICircuit} from 'model';
import { IImgGallery, IUserFields } from 'model'
import { shared_consts } from '@src/common/shared_vuejs'
import { colCitys, fieldsTable } from '@store/Modules/fieldsTable'
import { useRoute } from 'vue-router'
import { useNotifStore } from '@store/NotifStore'

View File

@@ -1,21 +1,23 @@
import { computed, defineComponent, onMounted, PropType, ref, watch } from 'vue'
import type { PropType} from 'vue';
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CProfile } from '@/components/CProfile'
import { CDateTime } from '@/components/CDateTime'
import { CMyPage } from '@/components/CMyPage'
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
import { CMyFieldRec } from '@/components/CMyFieldRec'
import { tools } from '@store/Modules/tools'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { CProfile } from '@src/components/CProfile'
import { CDateTime } from '@src/components/CDateTime'
import { CMyPage } from '@src/components/CMyPage'
import { CCheckIfIsLogged } from '@src/components/CCheckIfIsLogged'
import { CMyFieldRec } from '@src/components/CMyFieldRec'
import { tools } from '@tools'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { IColGridTable, IImgGallery, IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import type { IColGridTable} from 'model';
import { IImgGallery, IUserFields } from 'model'
import { shared_consts } from '@src/common/shared_vuejs'
import { colCitys, fieldsTable } from '@store/Modules/fieldsTable'
import { useRoute } from 'vue-router'
import { useNotifStore } from '@store/NotifStore'

View File

@@ -1,21 +1,23 @@
import { computed, defineComponent, onMounted, PropType, ref, watch } from 'vue'
import type { PropType } from 'vue';
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CProfile } from '@/components/CProfile'
import { CDateTime } from '@/components/CDateTime'
import { CMyPage } from '@/components/CMyPage'
import { CMyFieldRec } from '@/components/CMyFieldRec'
import { CAccomodation } from '@/components/CAccomodation'
import { tools } from '@store/Modules/tools'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { CProfile } from '@src/components/CProfile'
import { CDateTime } from '@src/components/CDateTime'
import { CMyPage } from '@src/components/CMyPage'
import { CMyFieldRec } from '@src/components/CMyFieldRec'
import { CAccomodation } from '@src/components/CAccomodation'
import { tools } from '@tools'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { IColGridTable, IImgGallery, IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import type { IColGridTable } from 'model';
import { IImgGallery, IUserFields } from 'model'
import { shared_consts } from '@src/common/shared_vuejs'
import { colCitys, fieldsTable } from '@store/Modules/fieldsTable'
import { useRoute } from 'vue-router'
import { useNotifStore } from '@store/NotifStore'
@@ -94,7 +96,7 @@ export default defineComponent({
const mystr = getlinkpage()
tools.copyStringToClipboard($q, mystr, true)
tools.sendMsgTelegramCmd($q, t, shared_consts.MsgTeleg.SHARE_TEXT, false, mystr)
return true
}

View File

@@ -1,33 +1,35 @@
import { computed, defineComponent, onMounted, PropType, ref, watch, nextTick } from 'vue'
import type { PropType } from 'vue';
import { computed, defineComponent, onMounted, ref, watch, nextTick } from 'vue'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CProfile } from '@/components/CProfile'
import { CDateTime } from '@/components/CDateTime'
import { CMyPage } from '@/components/CMyPage'
import { CMyGroup } from '@/components/CMyGroup'
import { CMyChipList } from '@/components/CMyChipList'
import { CGridTableUser } from '@/components/CGridTableUser'
import { CMyFieldRec } from '@/components/CMyFieldRec'
import { CMyUser } from '@/components/CMyUser'
import { CLabel } from '@/components/CLabel'
import { CGalleryImages } from '@/components/CGalleryImages'
import { CAccomodation } from '@/components/CAccomodation'
import { tools } from '@store/Modules/tools'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { CProfile } from '@src/components/CProfile'
import { CDateTime } from '@src/components/CDateTime'
import { CMyPage } from '@src/components/CMyPage'
import { CMyGroup } from '@src/components/CMyGroup'
import { CMyChipList } from '@src/components/CMyChipList'
import { CGridTableUser } from '@src/components/CGridTableUser'
import { CMyFieldRec } from '@src/components/CMyFieldRec'
import { CMyUser } from '@src/components/CMyUser'
import { CLabel } from '@src/components/CLabel'
import { CGalleryImages } from '@src/components/CGalleryImages'
import { CAccomodation } from '@src/components/CAccomodation'
import { tools } from '@tools'
import { useUserStore } from '@store/UserStore'
import { useCalendarStore } from '@store/CalendarStore'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { EState, IReaction, IBookedEventPage, IColGridTable, IBookedEvent, IEvents, IMessage, IMessagePage, IParamDialog, ISearchList } from '@model'
import { shared_consts } from '@/common/shared_vuejs'
import type { IReaction, IBookedEventPage, IColGridTable, IBookedEvent, IEvents, IMessage, IMessagePage, IParamDialog, ISearchList } from '@model';
import { EState } from '@model'
import { shared_consts } from '@src/common/shared_vuejs'
import { colCitys, fieldsTable } from '@store/Modules/fieldsTable'
import { useRoute, useRouter } from 'vue-router'
import { useNotifStore } from '@store/NotifStore'
import { lists } from '@store/Modules/lists'
import translate from '@/globalroutines/util'
import translate from '@src/globalroutines/util'
import { useMessageStore } from '@src/store/MessageStore'
import mixinEvents from '@src/mixins/mixin-events'
@@ -50,9 +52,9 @@ export default defineComponent({
default: null,
},
idRec: {
type: Number,
type: String,
required: false,
default: 0
default: ''
},
nopopup: {
type: Boolean,
@@ -176,7 +178,7 @@ export default defineComponent({
}
return [{
idapp: process.env.APP_ID,
idapp: tools.getEnv('VITE_APP_ID'),
tab: tools.getNumTabByTable(props.table),
idrec: myrec.value._id,
...queryreact,

View File

@@ -9,7 +9,7 @@
:class="'items-start ' + (!isSmall ? ' q-gutter-xs full-height ' : '')"
>
<div class="row">
<q-toolbar class="bg-white text-black riempi">
<q-toolbar v-if="!nopopup" class="bg-white text-black riempi">
<q-toolbar-title> </q-toolbar-title>
<q-btn
v-if="!isSmall && showAnteprima"
@@ -34,7 +34,8 @@
v-if="myrec.photos.length > 0"
:imgGallery="myrec.photos"
:directory="
costanti.DIR_UPLOAD + tools.getDirectoryGall(myrec, table, '')
tools.getDirUpload() +
tools.getDirectoryGall(myrec, table, '')
"
>
</CGalleryImages>
@@ -63,7 +64,7 @@
<q-icon color="blue" name="fas fa-share" />
</q-item-section>
<q-item-section>
{{ $t('reaction.condividi') }}
{{ $t("reaction.condividi") }}
</q-item-section>
</q-item>
<q-item
@@ -85,13 +86,15 @@
)
"
target="_blank"
>{{ $t('dialog.telegram') }} -
>{{ $t("dialog.telegram") }} -
{{ tools.getNomeUtenteByRecUser(myrec) }}</a
>
</q-item-section>
</q-item>
<q-item
v-else-if="myrec.profile && !myrec.profile.username_telegram"
v-else-if="
myrec.profile && !myrec.profile.username_telegram
"
clickable
v-close-popup
>
@@ -100,12 +103,14 @@
</q-item-section>
<q-item-section>
<a
v-if="
myrec.email
v-if="myrec.email"
:href="
tools.isUserOk()
? tools.getemailto(myrec.email)
: null
"
:href="tools.isUserOk() ? tools.getemailto(myrec.email) : null"
target="_blank"
>{{ $t('msgs.write_email') }} -
>{{ $t("msgs.write_email") }} -
{{ tools.getNomeUtenteByRecUser(myrec) }}</a
>
</q-item-section>
@@ -122,7 +127,7 @@
<q-icon color="blue" name="fas fa-globe" />
</q-item-section>
<q-item-section>
{{ $t('event.openpage') }}
{{ $t("event.openpage") }}
</q-item-section>
</q-item>
<q-separator />
@@ -145,7 +150,7 @@
</q-item-section>
<q-item-section>
{{
$t('cmd.seen', {
$t("cmd.seen", {
num: myrec.numseen ? myrec.numseen : 0,
})
}}
@@ -170,7 +175,7 @@
</q-item-section>
<q-item-section>
{{
$t('cmd.favorite', {
$t("cmd.favorite", {
num: myrec.numfav ? myrec.numfav : 0,
})
}}
@@ -199,7 +204,7 @@
</q-item-section>
<q-item-section>
{{
$t('cmd.attend', {
$t("cmd.attend", {
num: calendarStore.getNumParticipants(
myrec,
true,
@@ -228,7 +233,7 @@
</q-item-section>
<q-item-section>
{{
$t('cmd.bookmark', {
$t("cmd.bookmark", {
num: myrec.numbook ? myrec.numbook : 0,
})
}}
@@ -369,7 +374,7 @@
>{{
fieldsTable.getValByTabAndId(
table,
'adType',
"adType",
myrec.adType
)
}}
@@ -391,8 +396,14 @@
</q-item>
<q-item v-if="myrec.descr">
<q-item-section>
<q-item-label v-if="table === shared_consts.TABLES_MYBACHECAS" class="text-h6 text-bold">{{ myrec.descr }}</q-item-label>
<q-item-label v-else class="text-h7">{{ myrec.descr }}</q-item-label>
<q-item-label
v-if="table === shared_consts.TABLES_MYBACHECAS"
class="text-h6 text-bold"
>{{ myrec.descr }}</q-item-label
>
<q-item-label v-else class="text-h7">{{
myrec.descr
}}</q-item-label>
</q-item-section>
</q-item>
<q-item
@@ -450,7 +461,7 @@
</q-item-label>
</q-item-section>
</q-item>
<q-item v-if="getSectorByRec(myrec)">
<q-item-section avatar>
<q-icon color="blue" name="category" />
@@ -499,7 +510,7 @@
<span class="accom_maxosp">{{
myrec.numMaxPeopleHosp
}}</span
>{{ t('hosps.numMaxPeopleHosp') }}
>{{ t("hosps.numMaxPeopleHosp") }}
</q-item-label>
</q-item-section>
</q-item>
@@ -594,15 +605,12 @@
<q-item-section>
<q-item-label lines="1">
{{ $t('event.organisedBy') }}: {{ myrec.organisedBy }}
{{ $t("event.organisedBy") }}: {{ myrec.organisedBy }}
</q-item-label>
</q-item-section>
</q-item>
<q-card
v-if="
myrec.mygrp &&
myrec.mygrp.groupname
"
v-if="myrec.mygrp && myrec.mygrp.groupname"
class="my-card clBorderUser"
bordered
@click="naviga(tools.getPathByGroup(myrec.mygrp))"
@@ -655,12 +663,8 @@
<q-item-section>
<q-item-label lines="1">
{{$t('event.contact_email')}}:
<span
v-html="
tools.getlinkEmailTo(
myrec.contact_email)
"
{{ $t("event.contact_email") }}:
<span v-html="tools.getlinkEmailTo(myrec.contact_email)"
/></q-item-label>
</q-item-section>
</q-item>
@@ -674,13 +678,11 @@
<q-item-section>
<q-item-label lines="1">
{{ $t('msgs.telegrammsg') }}:
{{ $t("msgs.telegrammsg") }}:
<a
:href="tools.getHttpForTelegram(myrec.contact_telegram)"
target="_blank"
>@{{
myrec.contact_telegram
}}
>@{{ myrec.contact_telegram }}
</a>
</q-item-label>
</q-item-section>
@@ -747,7 +749,9 @@
v-html="
tools.getlinkhref(
myrec.website,
t('services.visit_website', {link: tools.getMainLink(myrec.website)})
t('services.visit_website', {
link: tools.getMainLink(myrec.website),
})
)
"
/></q-item-label>
@@ -819,11 +823,13 @@
<q-item-section>
<q-item-label lines="1">
<span style="display: none">{{ part = calendarStore.getNumParticipants(
myrec,
true,
tools.peopleWhere.participants
)}}</span>
<span style="display: none">{{
(part = calendarStore.getNumParticipants(
myrec,
true,
tools.peopleWhere.participants
))
}}</span>
<q-btn
rounded
color="primary"
@@ -864,11 +870,11 @@
<q-item-section>
<q-item-label lines="1">
<span v-if="myrec.min_partecip"
>{{ $t('event.min_partecip') }}:
>{{ $t("event.min_partecip") }}:
{{ myrec.min_partecip }}</span
><br />
<span v-if="myrec.max_partecip"
>{{ $t('event.max_partecip') }}:
>{{ $t("event.max_partecip") }}:
{{ myrec.max_partecip }}</span
>
</q-item-label>
@@ -908,7 +914,7 @@
<q-item-section>
<q-item-label>
{{ $t('reg.pub_updated') }}
{{ $t("reg.pub_updated") }}
<span v-if="myrec.date_updated">{{
tools.getstrDateMonthLong(myrec.date_updated)
}}</span
@@ -916,7 +922,7 @@
tools.getstrDateMonthLong(myrec.date_created)
}}</span>
<span v-if="myrec.organisedBy || myrec.groupname"
><br />{{ $t('reg.who_updated') }}
><br />{{ $t("reg.who_updated") }}
<span class="text-bold"
><a :href="'my/' + myrec.username">{{
tools.getNomeUtenteByRecUser(myrec)
@@ -924,7 +930,7 @@
></span
>
<span v-if="myrec.createdBy"
><br />{{ $t('services.createdBy') }}
><br />{{ $t("services.createdBy") }}
<span class="text-bold"
><a :href="'my/' + createdBy">{{
createdBy
@@ -1020,7 +1026,8 @@
/>
<q-btn
v-else-if="
(myrec.profile && !myrec.profile.username_telegram) &&
myrec.profile &&
!myrec.profile.username_telegram &&
!myrec.contact_telegram
"
class="q-mx-xxs q-my-xs"
@@ -1030,11 +1037,7 @@
color="white"
icon="mail"
target="_blank"
@click="
tools.openUrl(
tools.getemailto(myrec.email)
)
"
@click="tools.openUrl(tools.getemailto(myrec.email))"
/>
<q-btn
v-if="table === shared_consts.TABLES_MYBACHECAS"
@@ -1172,7 +1175,7 @@
</CMyUser>
<div>
{{ tools.getstrshortDateTime(eventbook.datebooked) }}
<span v-if="eventbook.msgbooking">{{ $t('sendmsg.write') }}: </span>
<span v-if="eventbook.msgbooking">{{ $t("sendmsg.write") }}: </span>
<q-separator />
</div>
@@ -1224,7 +1227,7 @@
<q-card v-if="askInfopage.show" class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title>
{{ $t('cal.booking') }}
{{ $t("cal.booking") }}
</q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
@@ -1236,7 +1239,7 @@
</q-chip>
<div v-if="myrec.dateTimeStart" class="cal__when">
<span class="cal__where-title"
>{{ $t('cal.when') }}:
>{{ $t("cal.when") }}:
<span v-html="tools.getstrDateTimeEvent($t, myrec, true)"></span>
</span>
</div>
@@ -1277,7 +1280,7 @@
<q-card v-if="bookEventpage.show" class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title>
{{ $t('cal.booking') }}
{{ $t("cal.booking") }}
</q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
@@ -1285,7 +1288,7 @@
<div class="q-pa-xs">
<q-card class="windowcol" style="display: block">
<q-card-section class="q-pa-xs">
<div>{{ $t('cal.infoprenota') }}</div>
<div>{{ $t("cal.infoprenota") }}</div>
<br />
<div style="display: inline-flex" class="q-px-xs centermydiv">
<q-checkbox
@@ -1368,6 +1371,6 @@
</script>
<style lang="scss" scoped>
@import './CMyCardService.scss';
@import "./CMyCardService.scss";
</style>

View File

@@ -4,11 +4,11 @@ import { CCardState } from '../CCardState'
import { computed, defineComponent } from 'vue'
import { useGlobalStore } from '@store/globalStore'
import { useProducts } from '@store/Products'
import { CCopyBtn } from '@/components/CCopyBtn'
import { CSingleCart } from '@/components/CSingleCart'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CCopyBtn } from '@src/components/CCopyBtn'
import { CSingleCart } from '@src/components/CSingleCart'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import MixinUsers from '../../mixins/mixin-users'

View File

@@ -1,7 +1,7 @@
import { defineComponent, ref, watch, toRef, onMounted } from 'vue'
import { useI18n } from '@src/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useQuasar } from 'quasar'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { costanti } from '@costanti'
export default defineComponent({

View File

@@ -1,24 +1,26 @@
import { computed, defineComponent, onMounted, PropType, ref, watch } from 'vue'
import type { PropType } from 'vue';
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useCircuitStore } from '@store/CircuitStore'
import { ICircuit, IImgGallery, IUserFields, IUserProfile, IFriends, IAccount, IMyCircuit, IMyGroup } from 'model'
import type { ICircuit, IMyCircuit, IMyGroup } from 'model';
import { IImgGallery, IUserFields, IUserProfile, IFriends, IAccount } from 'model'
import { costanti } from '@costanti'
import { shared_consts } from '@/common/shared_vuejs'
import { tools } from '@store/Modules/tools'
import { shared_consts } from '@src/common/shared_vuejs'
import { tools } from '@tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useRoute, useRouter } from 'vue-router'
import { CUserNonVerif } from '@/components/CUserNonVerif'
import { CSaldo } from '@/components/CSaldo'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CUserNonVerif } from '@src/components/CUserNonVerif'
import { CSaldo } from '@src/components/CSaldo'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { toolsext } from '@store/Modules/toolsext'
import { useGlobalStore } from '@store/globalStore'
export default defineComponent({
name: 'CMyCircuit',
emits: ['setCmd'],
components: {CUserNonVerif, CSaldo, CTitleBanner},
components: { CUserNonVerif, CSaldo, CTitleBanner },
props: {
mycircuit: {
type: Object as PropType<ICircuit | null>,
@@ -63,7 +65,7 @@ export default defineComponent({
const globalStore = useGlobalStore()
const circuit = ref(<IMyCircuit | ICircuit | null>null)
const account = computed(() => circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null )
const account = computed(() => circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null)
const qtarem = computed(() => account.value ? circuitStore.getRemainingCoinsToSend(account.value) : 0)
const saldo_pend = computed(() => account.value ? account.value.saldo_pend : 0)
@@ -80,6 +82,18 @@ export default defineComponent({
mounted()
})
function getNameCircuit() {
if (circuit.value) {
if (tools.existProp(circuit.value, 'name')) {
return tools.getProp(circuit.value, 'name')
} else if (tools.existProp(circuit.value, 'circuitname')) {
return tools.getProp(circuit.value, 'circuitname')
}
}
return ''
}
function mounted() {
groupnameSel.value = props.prop_groupnameSel
if (!props.mycircuit) {
@@ -91,9 +105,8 @@ export default defineComponent({
circuit.value = props.mycircuit
}
}
if (circuit.value && circuit.value.hasOwnProperty('circuitname')) {
// @ts-ignore
const rectofind = circuitStore.listcircuits.find((circ: ICircuit) => circ.name === circuit.value.circuitname!)
if (circuit.value) {
const rectofind = circuitStore.listcircuits.find((circ: ICircuit) => circ.name === getNameCircuit())
if (rectofind) {
// console.log('rectofind', rectofind)
circuit.value = rectofind
@@ -118,14 +131,10 @@ export default defineComponent({
}
function getRegulation(reg: string) {
let strreg = reg + ''
const strreg = reg + ''
if (!reg) {
let name = ''
if (circuit.value!.hasOwnProperty('name')) {
// @ts-ignore
name = circuit.value!.name
}
const mystringa = t('circuit.regolamento', {nomecircuito: name})
let name = getNameCircuit()
const mystringa = t('circuit.regolamento', { nomecircuito: name })
return mystringa
} else {
return reg

View File

@@ -1,18 +1,20 @@
import { CMyCircuit } from '@/components/CMyCircuit'
import { computed, defineComponent, onMounted, PropType, ref, toRef, watch } from 'vue'
import { CMyCircuit } from '@src/components/CMyCircuit'
import type { PropType } from 'vue';
import { computed, defineComponent, onMounted, ref, toRef, watch } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useCircuitStore } from '@store/CircuitStore'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { ICircuit, ISearchList, IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { tools } from '@store/Modules/tools'
import { CUserNonVerif } from '@/components/CUserNonVerif'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CMovements } from '@/components/CMovements'
import { CSendRISTo } from '@/components/CSendRISTo'
import type { ICircuit } from 'model';
import { ISearchList, IUserFields } from 'model'
import { shared_consts } from '@src/common/shared_vuejs'
import { tools } from '@tools'
import { CUserNonVerif } from '@src/components/CUserNonVerif'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { CMovements } from '@src/components/CMovements'
import { CSendRISTo } from '@src/components/CSendRISTo'
export default defineComponent({
@@ -49,11 +51,6 @@ export default defineComponent({
required: false,
default: null,
},
visu: {
type: Number,
required: false,
default: 0,
},
},
setup(props, { emit }) {
const userStore = useUserStore()
@@ -67,10 +64,10 @@ export default defineComponent({
const finishloading = ref(false)
const loadingvalues = ref(false)
const mytab = ref('circuiti')
const mytab = ref('circuiti')
const init = ref(false)
const globalStore = useGlobalStore()
const isfinishLoadingSite = computed(() => globalStore.finishLoading)
@@ -191,9 +188,9 @@ export default defineComponent({
}
function mounted() {
async function mounted() {
if (globalStore.finishLoading) {
load()
await load()
}
}

View File

@@ -1,18 +1,20 @@
import { defineComponent, ref, computed, PropType, toRef, reactive, watch } from 'vue'
import { IColGridTable, IDimensioni, IOperators, ISize } from 'model'
import type { PropType } from 'vue';
import { defineComponent, ref, computed, toRef, reactive, watch } from 'vue'
import type { IColGridTable, IDimensioni } from 'model';
import { IOperators, ISize } from 'model'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { useQuasar } from 'quasar'
import { CMySize } from '@src/components/CMySize'
import { CBorders } from '@src/components/CBorders'
import { CMyFieldRec } from '@src/components/CMyFieldRec'
import { tools } from '@store/Modules/tools'
import { tools } from '@tools'
import { costanti } from '@costanti'
import { shared_consts } from '@/common/shared_vuejs'
import { shared_consts } from '@src/common/shared_vuejs'
export default defineComponent({
name: 'CMyDimensioni',
@@ -79,7 +81,7 @@ export default defineComponent({
// console.log('saveFielDim', rec, 'newval', newval, 'col', col)
if (col.fieldtype === costanti.FieldType.image) {
if (!rec[col.name]) {
rec[col.name] = {}
}

View File

@@ -1,9 +1,3 @@
.testo-banda {
//background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent));
//background: linear-gradient(180deg, #3144f0, transparent);
//background: rgba(0, 0, 0, .6)
}
$grayshadow: #555;
$textcol: blue;
@@ -22,8 +16,6 @@ h4 {
visibility: hidden;
}
.landing {}
.landing_background {
background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed;
background-size: cover
@@ -177,13 +169,6 @@ h4 {
opacity: .8
}
.landing__swirl-bg {
background-repeat: no-repeat !important;
background-position: top;
background-size: contain !important;
background-image: url(../../../public/images/landing_first_section.png) !important
}
.feat-descr {
font-size: 1.15rem;
}
@@ -198,10 +183,6 @@ h4 {
//margin-left: -48px
}
body.mobile .landing {
//background: unset
}
body.mobile .landing:before {
content: "";
position: fixed;

View File

@@ -1,17 +1,19 @@
import type { PropType } from 'vue';
import {
defineComponent, onMounted, PropType, computed, ref, toRef, watch,
defineComponent, onMounted, computed, ref, toRef, watch,
nextTick,
} from 'vue'
import { IOptCatalogo, IColGridTable, IElemText, IElementiScheda, IImgGallery, ILabelValue, IMyCard, IMyElem, IMyPage, IMyScheda, IOperators, ISchedaSingola } from '@src/model'
import type { IOptCatalogo, IColGridTable, IElemText, IElementiScheda, IMyCard, IMyElem, IMyScheda, ISchedaSingola, IText } from '@src/model';
import { IImgGallery, ILabelValue, IMyPage, IOperators } from '@src/model'
import { useGlobalStore } from '@store/globalStore'
import { CImgTitle } from '@/components/CImgTitle'
import { CImgPoster } from '@/components/CImgPoster'
import { CTitle } from '@/components/CTitle/index'
import { tools } from '@store/Modules/tools'
import { shared_consts } from '@/common/shared_vuejs'
import { LandingFooter } from '@/components/LandingFooter'
import { CImgTitle } from '@src/components/CImgTitle'
import { CImgPoster } from '@src/components/CImgPoster'
import { CTitle } from '@src/components/CTitle/index'
import { tools } from '@tools'
import { shared_consts } from '@src/common/shared_vuejs'
import { LandingFooter } from '@src/components/LandingFooter'
import { COpenStreetMap } from '@src/components/COpenStreetMap'
import { CCardCarousel } from '@src/components/CCardCarousel'
import { CMyPage } from '@src/components/CMyPage'
@@ -29,10 +31,10 @@ import { CBorders } from '@src/components/CBorders'
import { CMyDimensioni } from '@src/components/CMyDimensioni'
import { CMyText } from '@src/components/CMyText'
import MixinMetaTags from '@/mixins/mixin-metatags'
import MixinBase from '@/mixins/mixin-base'
import MixinMetaTags from '@src/mixins/mixin-metatags'
import MixinBase from '@src/mixins/mixin-base'
import { useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n'
import { useI18n } from 'vue-i18n'
import { emitKeypressEvents } from 'readline'
import { costanti } from '@costanti'
import objectId from '@src/js/objectId'
@@ -138,11 +140,11 @@ export default defineComponent({
}
function getNewOrderByThisElem() {
let myelem = props.myelem
const myelem = props.myelem
let neword = 0
if (myelem) {
neword = myelem.order!
const recfound = globalStore.getMyElemNextThisElemId(props.idPage, myelem._id!)
const recfound = globalStore.getMyElemNextThisElemId(props.idPage, myelem._id)
if (recfound) {
neword = Math.round((recfound.order! + myelem.order!) / 2)
@@ -172,7 +174,7 @@ export default defineComponent({
neword = Math.round((recfound.order + elemsel.order) / 2)
}
let newrec = await globalStore.prepareAddNewElem(neword, $q, t, props.myelem, newtype.value)
const newrec = await globalStore.prepareAddNewElem(neword, $q, t, props.myelem, newtype.value)
emit('selElemClick', newrec)
@@ -265,11 +267,11 @@ export default defineComponent({
}
if (myel.value.catalogo && myel.value.catalogo?.arrSchede) {
for (const recscheda of myel.value.catalogo?.arrSchede) {
for (const recscheda of myel.value.catalogo!.arrSchede) {
if (recscheda.scheda) {
recscheda.scheda.testo_right_attaccato = tools.resetIText(recscheda.scheda?.testo_right_attaccato!)
recscheda.scheda.testo_right = tools.resetIText(recscheda.scheda?.testo_right!)
recscheda.scheda.testo_bottom = tools.resetIText(recscheda.scheda?.testo_bottom!)
recscheda.scheda.testo_right_attaccato = tools.resetIText(recscheda.scheda?.testo_right_attaccato)
recscheda.scheda.testo_right = tools.resetIText(recscheda.scheda?.testo_right)
recscheda.scheda.testo_bottom = tools.resetIText(recscheda.scheda?.testo_bottom)
if ((!recscheda.scheda?.dimensioni.pagina)) {
recscheda.scheda.dimensioni.pagina = tools.resetRecIPagina(recscheda.scheda?.dimensioni.pagina)
@@ -364,12 +366,16 @@ export default defineComponent({
let maxorder = 0
myel.value.catalogo!.arrSchede?.forEach(scheda => {
if (scheda?.order! > maxorder) {
if (scheda?.order > maxorder) {
maxorder = scheda.order
}
})
let defaultDimensioniPag = tools.resetRecIDimensioni(null)
let testodef: IText = {}
testodef = tools.resetIText(testodef)
const defaultDimensioniPag = tools.resetRecIDimensioni(null)
defaultDimensioniPag.size = {
width: '800px',
height: '600px',
@@ -387,7 +393,7 @@ export default defineComponent({
right: '0px',
}
let defaultDimensioniRiga = tools.resetRecIDimensioni(null)
const defaultDimensioniRiga = tools.resetRecIDimensioni(null)
defaultDimensioniRiga.size = {
width: '800px',
@@ -406,7 +412,7 @@ export default defineComponent({
right: '0px',
}
let defaultSchedaProdotto = tools.resetRecIDimensioni(null)
const defaultSchedaProdotto = tools.resetRecIDimensioni(null)
defaultSchedaProdotto.size = {
width: '360px',
@@ -427,8 +433,8 @@ export default defineComponent({
right: '0px',
}
let dimensioni: IElementiScheda = {
pagina: defaultDimensioniPag,
const dimensioni: IElementiScheda = {
pagina: { dimensioni: defaultDimensioniPag, testo_down: testodef, testo_up: testodef },
riga: defaultDimensioniRiga,
scheda_prodotto: defaultSchedaProdotto,
immagine_prodotto: {
@@ -451,7 +457,7 @@ export default defineComponent({
},
}
let newscheda: IMyScheda = {
const newscheda: IMyScheda = {
_id: objectId(),
idapp: tools.appid()!,
isTemplate: false,
@@ -536,7 +542,7 @@ export default defineComponent({
if (myschedatocopy) {
let newscheda = myschedatocopy.scheda!.name
const newscheda = myschedatocopy.scheda!.name
const msg = 'Sostituisci questa scheda (' + schedadest.scheda?.name + ') con "' + newscheda + '" ?'
@@ -552,7 +558,7 @@ export default defineComponent({
persistent: false,
}).onOk(async () => {
const myschedadest: ISchedaSingola = myel.value.catalogo!.arrSchede![indscheda]
myschedadest.scheda = tools.jsonCopy(myschedatocopy.scheda!)
myschedadest.scheda = tools.jsonCopy(myschedatocopy.scheda)
myschedadest.scheda!._id = objectId()
myschedadest.order = 20
@@ -570,12 +576,12 @@ export default defineComponent({
const myfindscheda = myel.value.catalogo!.arrSchede.find((scheda: ISchedaSingola) => scheda._id === id)
if (myfindscheda) {
let myscheda = tools.jsonCopy(myfindscheda)
const myscheda = tools.jsonCopy(myfindscheda)
delete myscheda._id
delete myscheda.scheda!._id
myscheda.numPagineMax = 0
myscheda.order = myscheda.order + 10,
myscheda._id = objectId()
myscheda.order = myscheda.order + 10
myscheda._id = objectId()
myscheda.scheda!._id = objectId()
myscheda.scheda!.name = myscheda.scheda!.name + '_copia'
myscheda.scheda!.isTemplate = false
@@ -596,7 +602,7 @@ export default defineComponent({
const myfindcard = myel.value.listcards[tabCard.value]
if (myfindcard) {
let mycard = tools.jsonCopy(myfindcard)
const mycard = tools.jsonCopy(myfindcard)
delete mycard._id
mycard._id = objectId()
@@ -678,9 +684,9 @@ export default defineComponent({
function saveFieldElem(rec: any, newval: any, col: IColGridTable) {
//console.log('saveFieldElem', rec, 'newval', newval, 'col', col)
let iscatalogo = costanti.CATALOGO_FIELDS.includes(col.name)
let isscheda = costanti.SCHEDA_FIELDS.includes(col.name)
let isIImg = costanti.IMG_FIELDS.includes(col.name) && (col.fieldtype === costanti.FieldType.image)
const iscatalogo = costanti.CATALOGO_FIELDS.includes(col.name)
const isscheda = costanti.SCHEDA_FIELDS.includes(col.name)
const isIImg = costanti.IMG_FIELDS.includes(col.name) && (col.fieldtype === costanti.FieldType.image)
if (col.fieldtype === costanti.FieldType.image) {
if (iscatalogo) {
@@ -739,9 +745,6 @@ export default defineComponent({
myel.value.image = myval
myel.value.vers_img = tools.getGenerateVersionImage()
} else if (props.myelem.type === shared_consts.ELEMTYPE.IMAGE) {
myel.value.image = myval
}
modifElem()
@@ -782,15 +785,10 @@ export default defineComponent({
myel.value.widthimg = value; // Aggiorna widthimg con il nuovo valore
modifElem()
}
function updateCatalogoSizeWidth(value: any) {
// Gestisce l'input dell'utente per un nuovo valore
myel.value.catalogo!.width = value // Aggiorna widthimg con il nuovo valore
modifElem()
}
function updateSizeHeight(value: any) {
if (value)
myel.value.heightimg = value; // Aggiorna widthimg con il nuovo valore
else
else
myel.value.heightimg = ''
modifElem()
}
@@ -822,16 +820,16 @@ export default defineComponent({
}
async function moveElem(direz: any) {
let myelem = props.myelem
const myelem = props.myelem
const elemprec = globalStore.getMyElemPrecThisElemId(props.idPage, myelem._id!)
const elemnext = globalStore.getMyElemNextThisElemId(props.idPage, myelem._id!)
const elemprec = globalStore.getMyElemPrecThisElemId(props.idPage, myelem._id)
const elemnext = globalStore.getMyElemNextThisElemId(props.idPage, myelem._id)
if (!elemprec || !elemnext)
return false
let neworder = 0
let oldorder = myelem.order!
const oldorder = myelem.order!
if (direz === -1) {
// UP
@@ -839,7 +837,7 @@ export default defineComponent({
elemprec.order = oldorder
if (oldorder === elemprec.order!) {
const elemprec2 = globalStore.getMyElemPrecThisElemId(props.idPage, elemprec._id!)
const elemprec2 = globalStore.getMyElemPrecThisElemId(props.idPage, elemprec._id)
neworder = (elemprec2.order! + elemprec.order) / 2
elemprec.order = Math.round((oldorder + neworder) / 2)
@@ -853,7 +851,7 @@ export default defineComponent({
elemnext.order = oldorder
if (oldorder === elemnext.order!) {
const elemnext2 = globalStore.getMyElemNextThisElemId(props.idPage, elemnext._id!)
const elemnext2 = globalStore.getMyElemNextThisElemId(props.idPage, elemnext._id)
neworder = (elemnext2.order! + elemnext.order) / 2
elemnext.order = Math.round((oldorder + neworder) / 2)
@@ -941,9 +939,9 @@ export default defineComponent({
let myformat = { ...optcatalogo.areadistampa!.format }
let scale = tools.getScale(optcatalogo)
const scale = tools.getScale(optcatalogo)
let scalecanvas = optcatalogo.areadistampa!.scalecanvas
const scalecanvas = optcatalogo.areadistampa!.scalecanvas
if (tools.isObject(myformat) && scale > 0) {
} else {
@@ -1071,7 +1069,6 @@ export default defineComponent({
selectedClasses,
classiImmagineOptions,
saveFieldElem,
updateCatalogoSizeWidth,
dupPage,
tabScheda,
addNewScheda,

Some files were not shown because too many files have changed in this diff Show More