- aggiornato carrello e bottoni sul catalogo

This commit is contained in:
Surya Paolo
2025-06-12 10:08:07 +02:00
parent d99ad47483
commit 2dac04fb16
36 changed files with 707 additions and 745 deletions

4
.env
View File

@@ -1,6 +1,6 @@
VITE_APP_VERSION="1.2.53"
VITE_APP_VERSION="1.2.54"
VITE_LANG_DEFAULT="it"
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
VITE_SERVICE_WORKER_FILE="sw-1.2.53.js"
VITE_SERVICE_WORKER_FILE="sw-1.2.54.js"
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
VITE_VUE_ROUTER_MODE="history"

View File

@@ -10,7 +10,7 @@
<meta name="description" content="<%= productDescription %>">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="version" content="1.2.53">
<meta name="version" content="1.2.54">
<meta name="viewport"
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">

View File

@@ -1,6 +1,6 @@
{
"name": "gruppomacro",
"version": "1.2.53",
"version": "1.2.54",
"description": "Gruppo Macro",
"productName": "Gruppo Macro",
"author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8089 APP_VERSION='1.2.53' quasar dev",
"dev": "PORT=8089 APP_VERSION='1.2.54' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.53' quasar build -m spa",
"buildspa": "APP_VERSION='1.2.54' quasar build -m spa",
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.53' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.53' quasar dev",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.54' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.54' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "cnm",
"version": "1.2.53",
"version": "1.2.54",
"description": "Comunita Nuovo Mondo",
"productName": "ComunitaNuovoMondo",
"author": "Surya",
@@ -9,7 +9,7 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8083 APP_VERSION='1.2.53' quasar dev",
"dev": "PORT=8083 APP_VERSION='1.2.54' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production quasar build -m pwa",
@@ -21,8 +21,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.53' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.53' quasar dev",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.54' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.54' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "freeplanet",
"version": "1.2.53",
"version": "1.2.54",
"description": "freeplanet",
"productName": "freeplanet",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8087 APP_VERSION='1.2.53' quasar dev",
"dev": "PORT=8087 APP_VERSION='1.2.54' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "quasar build -m spa",
@@ -21,8 +21,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.53' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.53' quasar dev",
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.54' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.54' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "gruppomacro",
"version": "1.2.53",
"version": "1.2.54",
"description": "Gruppo Macro",
"productName": "Gruppo Macro",
"author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8089 APP_VERSION='1.2.53' quasar dev",
"dev": "PORT=8089 APP_VERSION='1.2.54' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.53' quasar build -m spa",
"buildspa": "APP_VERSION='1.2.54' quasar build -m spa",
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.53' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.53' quasar dev",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.54' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.54' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "kolibrilab",
"version": "1.2.53",
"version": "1.2.54",
"description": "kolibrilab",
"productName": "kolibrilab",
"author": "Surya Paolo",
@@ -8,11 +8,11 @@
"keywords": [],
"license": "MIT",
"scripts": {
"dev": "PORT=8083 APP_VERSION='1.2.53' quasar dev",
"dev": "PORT=8083 APP_VERSION='1.2.54' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "quasar build -m spa",
@@ -20,8 +20,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.53' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.53' quasar dev",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.54' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.54' quasar dev",
"spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js"

View File

@@ -1,6 +1,6 @@
{
"name": "nutriben",
"version": "1.2.53",
"version": "1.2.54",
"description": "Nutriben",
"productName": "Nutriben",
"author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8093 APP_VERSION='1.2.53' quasar dev",
"dev": "PORT=8093 APP_VERSION='1.2.54' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.53' quasar build -m spa",
"buildspa": "APP_VERSION='1.2.54' quasar build -m spa",
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.53' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.53' quasar dev",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.54' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.54' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "piuchebuono",
"version": "1.2.53",
"version": "1.2.54",
"description": "PiuCheBuono",
"productName": "PiuCheBuono",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8085 APP_VERSION='1.2.53' quasar dev",
"dev": "PORT=8085 APP_VERSION='1.2.54' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "quasar build -m spa",
@@ -21,8 +21,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.53' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.53' quasar dev",
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.54' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.54' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "riso",
"version": "1.2.53",
"version": "1.2.54",
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
"productName": "Riso",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "APP_VERSION='1.2.53' PORT=8084 quasar dev",
"dev": "APP_VERSION='1.2.54' PORT=8084 quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.54' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "quasar build -m spa",
@@ -21,8 +21,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.53' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.53' quasar dev",
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.54' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.54' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -3,7 +3,7 @@
/* global workbox */
/* global cfgenv */
const VITE_APP_VERSION = '1.2.53';
const VITE_APP_VERSION = '1.2.54';
// Costanti di configurazione
const DYNAMIC_CACHE = 'dynamic-cache-v2';

View File

@@ -23,33 +23,3 @@ $heightBtn: 100%;
color: #d9534f; /* Rosso */
font-weight: bold; /* Testo in grassetto */
}
.sconto-label{
font-weight: bold;
margin-left: 5px;
}
.sconto-text{
font-weight: bold;
font-size: 1rem;
}
.table {
margin: auto;
border-collapse: collapse;
}
.table td {
padding: 8px;
text-align: right;
vertical-align: middle;
}
.label {
font-weight: bold;
}
.value {
font-size: 1.2em;
text-align: right;
}

View File

@@ -125,13 +125,6 @@ export default defineComponent({
}
});
const myTotalPriceCalc = computed((): string => {
if (productStore.cart && productStore.cart.totalPriceCalc) {
return productStore.cart.totalPriceCalc.toFixed(2);
} else {
return '0';
}
});
const totalPriceIntero = computed((): string => {
if (productStore.cart && productStore.cart.totalPriceIntero) {
return productStore.cart.totalPriceIntero.toFixed(2);
@@ -402,7 +395,6 @@ export default defineComponent({
completeOrder,
getNumItems,
myTotalPrice,
myTotalPriceCalc,
totalPriceIntero,
getItemsCart,
getNote,

View File

@@ -33,19 +33,19 @@
v-if="totalPriceIntero"
class="q-mr-sm"
>
<table class="table">
<table class="table-price">
<tbody>
<tr>
<td class="label">{{ $t('ecomm.prezzointero') }}:</td>
<td class="label-price">{{ $t('ecomm.prezzointero') }}:</td>
<td
class="value text-subtitle1"
class="value-price text-subtitle1"
:class="{ 'text-strike': myTotalPrice !== totalPriceIntero }"
>
{{ totalPriceIntero }}
</td>
</tr>
<tr v-if="recOrderCart.codice_sconto">
<td class="label">{{ $t('ecomm.sconto_appl') }}:</td>
<td class="label-price">{{ $t('ecomm.sconto_appl') }}:</td>
<td>
<div class="column items-center">
<q-chip
@@ -93,7 +93,7 @@
<tr>
<td class="label">{{ $t('ecomm.totale_scontato') }}:</td>
<td class="ordine_scontato_nuovo"> {{ myTotalPrice }}</td>
<td class="ordine_scontato_nuovo text-center"> {{ myTotalPrice }}</td>
</tr>
</tbody>
</table>

View File

@@ -1,23 +1,29 @@
import {
computed,
provide, defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch,
} from 'vue'
provide,
defineComponent,
onBeforeMount,
onBeforeUnmount,
onMounted,
ref,
toRef,
toRefs,
watch,
} from 'vue';
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 { 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 '@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'
import { CTitlePage } from '@src/components/CTitlePage';
import { CGridTableRec } from '@src/components/CGridTableRec';
import type { ICatalog, IColGridTable, ISearchList } from 'model';
import { useI18n } from 'vue-i18n';
import { toolsext } from '@store/Modules/toolsext';
import { fieldsTable } from '@store/Modules/fieldsTable';
import { useQuasar } from 'quasar';
export default defineComponent({
name: 'CCatalogList',
@@ -70,33 +76,37 @@ export default defineComponent({
},
},
components: {
CMyFieldDb, CGridTableRec, CTitlePage,
CMyFieldDb,
CGridTableRec,
CTitlePage,
},
setup(props, { attrs, slots, emit }) {
const { t } = useI18n()
const $q = useQuasar()
const globalStore = useGlobalStore()
const userStore = useUserStore()
const { t } = useI18n();
const $q = useQuasar();
const globalStore = useGlobalStore();
const userStore = useUserStore();
const table = ref('catalogs')
const table = ref('catalogs');
const arrfilterand: any = ref([])
const filtercustom: any = ref([])
const arrfilterand: any = ref([]);
const filtercustom: any = ref([]);
const search = ref('')
const myrecfiltertoggle = ref(tools.FILTER_ALL)
const search = ref('');
const myrecfiltertoggle = ref(tools.FILTER_ALL);
const prop_colkey = ref('')
const col_title = ref('')
const col_footer = ref('')
const col_tabfooter = ref('')
const prop_colkey = ref('');
const col_title = ref('');
const col_footer = ref('');
const col_tabfooter = ref('');
const strextra = ref('')
const myoptions = ref(<any>[])
const strextra = ref('');
const myoptions = ref(<any>[]);
const newCatalog = ref(<any>{});
const col = ref(<IColGridTable[]>[])
const col = ref(<IColGridTable[]>[]);
const myCatRef = ref(<any>null)
const myCatRef = ref(<any>null);
const showFormAddNewCatalog = ref(false);
/*
const idSectorServizi = computed(() => {
@@ -113,78 +123,100 @@ export default defineComponent({
*/
function updatefilter(value: any) {
//
}
watch(() => myrecfiltertoggle.value, (value: any, oldval: any) => {
updatefilter(value)
},
)
watch(
() => myrecfiltertoggle.value,
(value: any, oldval: any) => {
updatefilter(value);
}
);
const mypagination = computed(() => {
return { sortBy: 'title', descending: false, page: 1, rowsNumber: 0, rowsPerPage: 10 }
})
return {
sortBy: 'title',
descending: false,
page: 1,
rowsNumber: 0,
rowsPerPage: 10,
};
});
const showType = computed(() => {
return costanti.SHOW_MYCARD
})
return costanti.SHOW_MYCARD;
});
const hint = computed(() => {
return 'digita un Argomento o Catalogo da cercare'
})
return 'digita un Argomento o Catalogo da cercare';
});
const visuType = computed(() => {
return false // $q.screen.gt.xs
})
return false; // $q.screen.gt.xs
});
const noMsgRecord = computed(() => {
return 'Nessun dato trovato con i filtri selezionati'
})
return 'Nessun dato trovato con i filtri selezionati';
});
function mounted() {
const obj = tools.getParamsByTable(table.value);
const obj = tools.getParamsByTable(table.value)
prop_colkey.value = obj.prop_colkey;
col_title.value = obj.col_title;
col_footer.value = obj.col_footer;
col_tabfooter.value = obj.col_tabfooter;
filtercustom.value = [];
prop_colkey.value = obj.prop_colkey
col_title.value = obj.col_title
col_footer.value = obj.col_footer
col_tabfooter.value = obj.col_tabfooter
filtercustom.value = []
col.value = fieldsTable.getArrColsByTable(table.value)
col.value = fieldsTable.getArrColsByTable(table.value);
}
function mySortFieldsAvailable() {
if (table.value === toolsext.TABUSER) {
return userStore.getSortFieldsAvailable()
return userStore.getSortFieldsAvailable();
}
return []
return [];
}
function doSearch() {
//
}
function clickButtBar(item: any) {
if (myCatRef.value) {
myCatRef.value.clickButtBar(item)
myCatRef.value.clickButtBar(item);
}
// emit('clickButtBar', item)
}
onMounted(mounted)
function addNewCatalog() {
// Aggiungi un nuovo catalogo
showFormAddNewCatalog.value = true;
}
function addNewCatalogSave() {
// Salva catalogo
}
function checkPathExist() {
const mypageexist = globalStore.mypage.find(
(myrec) => myrec.path.toLowerCase() === newCatalog.path.toLowerCase()
);
if (mypageexist) {
$q.notify({
message: `La pagina ${newCatalog.path} esiste già`,
color: 'red',
position: 'top',
});
return;
}
}
onMounted(mounted);
return {
t,
@@ -211,6 +243,12 @@ export default defineComponent({
clickButtBar,
myCatRef,
table,
}
addNewCatalog,
showFormAddNewCatalog,
addNewCatalogSave,
newCatalog,
checkPathExist,
globalStore,
};
},
})
});

View File

@@ -1,5 +1,16 @@
<template>
<div class="q-ma-xs">
<div
v-if="!tools.isUtente()"
class="row justify-center"
>
<q-btn
color="primary"
icon="add"
label="Nuovo Catalogo"
@click="addNewCatalog"
/>
</div>
<CGridTableRec
v-if="col && col.length > 0"
ref="myCatRef"
@@ -29,7 +40,7 @@
:defaultnewrec="tools.getdefaultnewrec(table)"
labelBtnAddRow="NONE"
:prop_SortFieldsAvailable="mySortFieldsAvailable()"
labelBtnAddExtra="Aggiungi Catalogo"
labelBtnAddExtra=""
:extraparams="tools.extraparams(table, { myrecfiltertoggle })"
:prop_showMap="false"
:heightcarousel="heightcarousel"
@@ -39,6 +50,61 @@
>
</CGridTableRec>
</div>
<q-dialog v-model="showFormAddNewCatalog">
<q-card style="width: 700px; max-width: 80vw">
<q-card-section>
<div class="text-h6">Nuovo Catalogo</div>
</q-card-section>
<q-card-section class="q-pt-none">
<q-form
@submit="addNewCatalogSave"
class="q-gutter-md"
>
<q-input
filled
v-model="newCatalog.title"
label="Titolo del catalogo *"
lazy-rules
:rules="[(val) => (val && val.length > 0) || 'Inserire il titolo']"
/>
<q-input
filled
v-model="newCatalog.path"
label="Nome della pagina *"
@update:model-value="checkPathExist"
lazy-rules
:rules="[(val) => (val && val.length > 0) || 'Inserire il nome della pagina']"
/>
<q-select
filled
v-model="newCatalog.template"
:options="globalStore.getMyPagesOptionsTemplate()"
label="Modello *"
emit-value
map-options
:rules="[(val) => (val && val.length > 0) || 'Selezionare un modello']"
/>
<div class="row justify-center">
<q-btn
label="Aggiungi"
type="submit"
color="primary"
/>
<q-btn
label="Annulla"
v-close-popup
color="primary"
flat
class="q-ml-sm"
/>
</div>
</q-form>
</q-card-section>
</q-card>
</q-dialog>
</template>
<script lang="ts" src="./CCatalogList.ts"></script>

View File

@@ -56,7 +56,8 @@
'flex', // Classi comuni
'image-container',
{ 'shadow-2': options.in_3d && !optcatalogo.pdf }, // Classe condizionale
scheda.testo_right_attaccato.font?.posiz_text === costanti.POSIZ_TESTO.IN_BASSO
scheda.testo_right_attaccato.font?.posiz_text ===
costanti.POSIZ_TESTO.IN_BASSO
? ''
: 'flex flex-row', // Layout flessibile
]"
@@ -83,7 +84,7 @@
),
}"
>
<div>
<div style="position: relative">
<a
:href="myproduct.productInfo.link_macro"
target="_blank"
@@ -136,9 +137,34 @@
: undefined,
display: 'block',
}"
@click="click_opendetail()"
/>
@click.stop.prevent="naviga(`/product/` + myproduct._id)"
>
</q-img>
</a>
<div class="row no-wrap q-col-gutter-x-xs items-center semi-transparent" style="position: absolute; bottom: -20px; left: 50%; transform: translateX(-50%); z-index: 10">
<div v-if="!optcatalogo.generazionePDFInCorso">
<q-btn
icon="fas fa-external-link-alt"
color="primary"
class="no-print"
rounded
size="sm"
@click.stop.prevent="tools.openUrl(myproduct.productInfo.link_macro)"
>
</q-btn>
</div>
<div v-if="!optcatalogo.generazionePDFInCorso">
<q-btn
icon-right="fas fa-cart-plus"
color="positive"
class="no-print"
rounded
size="sm"
@click.stop.prevent="addtoCart(true)"
>
</q-btn>
</div>
</div>
<div
v-if="
(tools.isManager() || tools.isEditor()) &&
@@ -229,7 +255,8 @@
</q-item>-->
<q-item
v-if="
!optcatalogo.generazionePDFInCorso && (editOn || options.show_edit_book)
!optcatalogo.generazionePDFInCorso &&
(editOn || options.show_edit_book)
"
clickable
v-close-popup
@@ -332,7 +359,8 @@
</q-item>
<q-item
v-if="
!optcatalogo.generazionePDFInCorso && (editOn || options.show_edit_book)
!optcatalogo.generazionePDFInCorso &&
(editOn || options.show_edit_book)
"
clickable
v-close-popup
@@ -346,7 +374,9 @@
/>
</q-item-section>
<q-item-section>
<q-item-label>Visualizza dati Estrapolati (dal WEB Esterno)</q-item-label>
<q-item-label
>Visualizza dati Estrapolati (dal WEB Esterno)</q-item-label
>
</q-item-section>
</q-item>
@@ -392,7 +422,9 @@
/>
</q-item-section>
<q-item-section>
<q-item-label>Visualizza su GM (con le Quantità in Magazzino)</q-item-label>
<q-item-label
>Visualizza su GM (con le Quantità in Magazzino)</q-item-label
>
</q-item-section>
</q-item>
</q-list>
@@ -410,14 +442,19 @@
:idPage="idPage"
>
<div
v-if="scheda.testo_right_attaccato.font?.posiz_text !== costanti.POSIZ_TESTO.IN_BASSO"
v-if="
scheda.testo_right_attaccato.font?.posiz_text !==
costanti.POSIZ_TESTO.IN_BASSO
"
:style="{
alignSelf:
scheda.testo_right_attaccato.font?.posiz_text === costanti.POSIZ_TESTO.IN_BASSO
scheda.testo_right_attaccato.font?.posiz_text ===
costanti.POSIZ_TESTO.IN_BASSO
? ''
: 'center',
marginTop:
scheda.testo_right_attaccato.font?.posiz_text === costanti.POSIZ_TESTO.IN_BASSO
scheda.testo_right_attaccato.font?.posiz_text ===
costanti.POSIZ_TESTO.IN_BASSO
? 'auto'
: '0',
}"
@@ -436,17 +473,39 @@
:value="myproduct.productInfo.code"
:format="scheda.barcode.format"
:fontsizeprop="scheda.barcode.font?.size"
:gap="tools.adjustSize(optcatalogo, scheda.barcode.size?.gap, scheda, true)"
:gap="
tools.adjustSize(
optcatalogo,
scheda.barcode.size?.gap,
scheda,
true
)
"
:width="
parseInt(
tools.adjustSize(optcatalogo, scheda.barcode.size?.width, scheda, true)
tools.adjustSize(
optcatalogo,
scheda.barcode.size?.width,
scheda,
true
)
)
"
:widthlines="
tools.adjustSize(optcatalogo, scheda.barcode.widthlines, scheda, true)
tools.adjustSize(
optcatalogo,
scheda.barcode.widthlines,
scheda,
true
)
"
:height="
tools.adjustSize(optcatalogo, scheda.barcode.size?.height, scheda, false)
tools.adjustSize(
optcatalogo,
scheda.barcode.size?.height,
scheda,
false
)
"
:show_at_right="scheda.barcode?.show_at_right"
>
@@ -475,7 +534,10 @@
</div>
</CText>
<div
v-if="scheda.testo_right_attaccato.font?.posiz_text === costanti.POSIZ_TESTO.IN_BASSO"
v-if="
scheda.testo_right_attaccato.font?.posiz_text ===
costanti.POSIZ_TESTO.IN_BASSO
"
class="flexible-width"
:style="{
marginTop: 'auto',
@@ -495,17 +557,39 @@
:value="myproduct.productInfo.code"
:format="scheda.barcode.format"
:fontsizeprop="scheda.barcode.font?.size"
:gap="tools.adjustSize(optcatalogo, scheda.barcode.size?.gap, scheda, true)"
:gap="
tools.adjustSize(
optcatalogo,
scheda.barcode.size?.gap,
scheda,
true
)
"
:width="
parseInt(
tools.adjustSize(optcatalogo, scheda.barcode.size?.width, scheda, true)
tools.adjustSize(
optcatalogo,
scheda.barcode.size?.width,
scheda,
true
)
)
"
:widthlines="
tools.adjustSize(optcatalogo, scheda.barcode.widthlines, scheda, true)
tools.adjustSize(
optcatalogo,
scheda.barcode.widthlines,
scheda,
true
)
"
:height="
tools.adjustSize(optcatalogo, scheda.barcode.size?.height, scheda, false)
tools.adjustSize(
optcatalogo,
scheda.barcode.size?.height,
scheda,
false
)
"
:show_at_right="scheda.barcode.show_at_right"
>
@@ -623,7 +707,9 @@
</div>
</td>
<td class="text-center">
<strong>{{ tools.getNomeUtenteEUsernameByRecUser(ordcart.user) }}</strong>
<strong>{{
tools.getNomeUtenteEUsernameByRecUser(ordcart.user)
}}</strong>
</td>
<td class="text-center">
<strong>{{ shared_consts.getStatusStr(ordcart.status) }}</strong>
@@ -635,7 +721,8 @@
>
<span
v-if="
singleord.order.idProduct === myproduct._id && singleord.order.quantity > 0
singleord.order.idProduct === myproduct._id &&
singleord.order.quantity > 0
"
>
{{ singleord.order.quantity }}</span
@@ -670,7 +757,9 @@
</q-dialog>
<q-dialog
v-if="true && myproduct && myproduct.productInfo && myproduct.productInfo.link_scheda"
v-if="
true && myproduct && myproduct.productInfo && myproduct.productInfo.link_scheda
"
v-model="apriSchedaPDF"
maximized
>
@@ -707,7 +796,9 @@
</q-dialog>
<q-dialog
v-if="false && myproduct && myproduct.productInfo && myproduct.productInfo.link_scheda"
v-if="
false && myproduct && myproduct.productInfo && myproduct.productInfo.link_scheda
"
v-model="apriSchedaPDF"
fullscreen
>

View File

@@ -1,17 +1,16 @@
import { ref, onMounted, onBeforeMount, PropType, reactive, watch } from 'vue'
import { CCardState } from '../CCardState'
import { ref, onMounted, onBeforeMount, PropType, reactive, watch } from 'vue';
import { CCardState } from '../CCardState';
import { computed, defineComponent } from 'vue'
import { useGlobalStore } from '@store/globalStore'
import { useProducts } from '@store/Products'
import { CCopyBtn } from '@src/components/CCopyBtn'
import { CSingleCart } from '@src/components/CSingleCart'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { computed, defineComponent } from 'vue';
import { useGlobalStore } from '@store/globalStore';
import { useProducts } from '@store/Products';
import { CCopyBtn } from '@src/components/CCopyBtn';
import { CSingleCart } from '@src/components/CSingleCart';
import { CTitleBanner } from '@src/components/CTitleBanner';
import { useI18n } from 'vue-i18n'
import MixinUsers from '../../mixins/mixin-users'
import { useI18n } from 'vue-i18n';
import MixinUsers from '../../mixins/mixin-users';
export default defineComponent({
name: 'CMyCart',
@@ -19,55 +18,63 @@ export default defineComponent({
components: { CTitleBanner, CCardState, CCopyBtn, CSingleCart },
setup() {
const globalStore = useGlobalStore()
const products = useProducts()
const { t } = useI18n()
const globalStore = useGlobalStore();
const productStore = useProducts();
const { t } = useI18n();
const { getnumItemsCart } = MixinUsers()
const { getnumItemsCart } = MixinUsers();
const myCart = computed(() => products.cart)
const myCart = computed(() => productStore.cart);
const myTotalPrice = computed(() => {
if (products.cart) {
return products.cart.totalPrice
if (productStore.cart) {
return productStore.cart.totalPrice.toFixed(2);
} else {
return 0
return 0;
}
})
});
const totalPriceIntero = computed((): string => {
if (productStore.cart && productStore.cart.totalPriceIntero) {
return productStore.cart.totalPriceIntero.toFixed(2);
} else {
return '0';
}
});
const ordersCart = computed(() => {
if (!!products.cart) {
return products.cart.items
if (!!productStore.cart) {
return productStore.cart.items;
} else {
return null
return null;
}
})
});
const numOrders = computed(() => {
if (!!products.cart && products.cart.items) {
return products.cart.items.length
if (!!productStore.cart && productStore.cart.items) {
return productStore.cart.items.length;
} else {
return 0
return 0;
}
})
});
function closecart() {
globalStore.rightCartOpen = false
globalStore.rightCartOpen = false;
}
function mounted() {
products.loadOrders()
productStore.loadOrders();
}
function existsOrders() {
return products.getNumOrders() > 0
return productStore.getNumOrders() > 0;
}
onMounted(mounted)
onMounted(mounted);
return {
myCart,
myTotalPrice,
totalPriceIntero,
ordersCart,
numOrders,
closecart,
@@ -75,6 +82,6 @@ export default defineComponent({
existsOrders,
globalStore,
t,
}
};
},
})
});

View File

@@ -3,7 +3,13 @@
<div id="mycontainer">
<div class="myheader row justify-between">
<div class="col-6">
<q-btn class="q-mx-xs" round dense flat icon="fas fa-shopping-cart">
<!--<q-btn
class="q-mx-xs"
round
dense
flat
icon="fas fa-shopping-cart"
>
<q-badge
v-if="getnumItemsCart() > 0"
color="red"
@@ -12,25 +18,96 @@
>
{{ getnumItemsCart() }}
</q-badge>
</q-btn>
</q-btn>-->
</div>
<div class="col-6" style="text-align: right">
<span v-if="myTotalPrice" class="text-grey q-mr-xs">Totale:</span>
<span class="text-subtitle1 q-mr-sm"
> {{ myTotalPrice ? myTotalPrice.toFixed(2) : 0 }}</span
<div
v-if="totalPriceIntero"
class="q-mr-sm"
>
<table class="table">
<tbody>
<tr>
<td class="label">{{ $t('ecomm.prezzointero') }}:</td>
<td
class="value text-subtitle1 text-right"
:class="{ 'text-strike': myTotalPrice !== totalPriceIntero }"
>
{{ totalPriceIntero }}
</td>
</tr>
<tr v-if="myCart.codice_sconto">
<td class="label">{{ $t('ecomm.sconto_appl') }}:</td>
<td>
<div class="column items-center">
<q-chip
square
color="orange"
text-color="white"
size="md"
icon="fas fa-tag"
>
<span class="sconto-text">{{ myCart.descr_sconto }}</span>
</q-chip>
</div>
</td>
</tr>
<tr v-if="!myCart.codice_sconto">
<td class="label">{{ $t('ecomm.codice_sconto') }}:</td>
<td>
<q-input
v-model="codice_sconto"
:label="$t('ecomm.codice_sconto')"
style="width: 200px"
filled
dense
@keyup.enter="confermaCodiceSconto"
/>
<q-btn
:disabled="!codice_sconto || codice_sconto.trim() === ''"
:label="$t('ecomm.applica_sconto')"
icon="fas fa-check-circle"
color="primary"
class="q-mt-sm self-center"
@click="confermaCodiceSconto"
/>
</td>
</tr>
<tr>
<td class="label">{{ $t('ecomm.totale_scontato') }}:</td>
<td class="ordine_scontato_nuovo text-right"> {{ myTotalPrice }}</td>
</tr>
</tbody>
</table>
</div>
</div>
<q-separator></q-separator>
<div id="mybody">
<div v-for="(rec, index) in ordersCart" :key="index" class="col">
<CSingleCart :order="rec.order" :showall="false" :idOrdersCart="ordersCart ? ordersCart._id: ''"> </CSingleCart>
<div
v-for="(rec, index) in ordersCart"
:key="index"
class="col"
>
<CSingleCart
:order="rec.order"
:showall="false"
:idOrdersCart="ordersCart ? ordersCart._id : ''"
>
</CSingleCart>
</div>
</div>
<div v-if="numOrders === 0" style="text-align: center" class="text-grey">
<div
v-if="numOrders === 0"
style="text-align: center"
class="text-grey"
>
{{ $t('ecomm.carrello_vuoto') }}
</div>
<div v-else style="text-align: center">
<div
v-else
style="text-align: center"
>
<div class="text-center">
<q-btn
rounded
@@ -50,7 +127,7 @@
rounded
outline
icon="fas fa-clipboard-list"
style="color: green;"
style="color: green"
:label="t('ecomm.btn_ordini')"
class="q-mb-sm"
@click="globalStore.rightCartOpen = false"
@@ -62,8 +139,7 @@
</div>
</template>
<script lang="ts" src="./CMyCart.ts">
</script>
<script lang="ts" src="./CMyCart.ts"></script>
<style lang="scss" scoped>
@import './CMyCart.scss';

View File

@@ -349,7 +349,7 @@
<div v-if="editOn" class="elemEdit">Cataloghi</div>
<q-tabs v-if="tools.isEditor() || tools.isGrafico()" v-model="tabcatalogo" dense class="bg-green text-white">
<q-tab name="griglia" icon="fas fa-eye" label="Griglia"> </q-tab>
<q-tab name="statistiche" icon="fas fa-chart-pie" label="Statistiche"> </q-tab>
<!--<q-tab name="statistiche" icon="fas fa-chart-pie" label="Statistiche"> </q-tab>-->
<q-tab name="lista" icon="fas fa-list" label="Lista"> </q-tab>
<q-tab name="tutorial" icon="fas fa-info" label="Tutorial"> </q-tab>
</q-tabs>

View File

@@ -208,7 +208,7 @@
icon="fas fa-trash-alt"
/>
<q-fab-action
v-if="tools.canModifyThisRec(myrec, table) || tools.isManager() || editOn"
v-if="tools.isAdmin()"
@click="cmdExt(costanti.CMD_CLONE, myrec._id, null)"
color="accent"
:label="$t('event.duplicate')"

View File

@@ -133,6 +133,10 @@ export default defineComponent({
() => props.lista_prodotti,
(newVal) => {
internalProducts.value = [...newVal];
internalProducts.value.forEach((p: IProduct) => {
p.myorder = ProductStore.createMyOrder();
});
}
),
{ deep: true };

View File

@@ -8,6 +8,7 @@ import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { costanti } from '@costanti'
import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore'
import { useRoute, useRouter } from 'vue-router'
import { CTitlePage } from '@src/components/CTitlePage'
import { CGridTableRec } from '@src/components/CGridTableRec'
@@ -72,6 +73,7 @@ export default defineComponent({
const $q = useQuasar()
const globalStore = useGlobalStore()
const userStore = useUserStore()
const $router = useRouter()
const table = ref('raccoltacataloghis')

View File

@@ -15,10 +15,6 @@
width: 50px;
}
.ordine_scontato{
color: gray;
font-size: 0.85rem;
}
.barrato {
text-decoration: line-through;
}

View File

@@ -54,6 +54,7 @@ export default defineComponent({
const orderQuantityPreordered = ref(<number | undefined>undefined);
const orderTotalPriceProduct = ref(<number | undefined>undefined);
const showPointer = ref(false);
const enableQty = ref(false);
const endload = ref(false);
const enableQtyPreordered = ref(false);
@@ -241,6 +242,28 @@ export default defineComponent({
enableChangeTotalPrice.value = true;
}
const copyToClipboard = (text) => {
navigator.clipboard
.writeText(text)
.then(() => {
$q.notify({
message: 'Codice copiato negli appunti!',
color: 'positive',
icon: 'check',
position: 'top',
});
})
.catch((err) => {
console.error('Errore durante la copia:', err);
$q.notify({
message: 'Errore nella copia',
color: 'negative',
icon: 'error',
position: 'top',
});
});
};
onMounted(mounted);
return {
@@ -264,6 +287,8 @@ export default defineComponent({
endload,
qtyInCart,
getRispPerc,
copyToClipboard,
showPointer,
};
},
});

View File

@@ -44,7 +44,24 @@
</span>
</q-item-label>
<q-item-label>
<q-chip
dense
outline
icon="fas fa-barcode"
color="primary"
text-color="white"
>
<span
style="cursor: pointer"
@mouseenter="showPointer = true"
@mouseleave="showPointer = false"
@click="copyToClipboard(order.product.productInfo.code)"
>
<span :style="showPointer ? 'background-color: rgba(0,0,255,0.1)' : ''">
{{ order.product.productInfo.code }}
</span>
</span>
</q-chip>
</q-item-label>
<q-item-label caption>
@@ -200,7 +217,7 @@
{{ order.TotalPriceProduct ? order.TotalPriceProduct.toFixed(2) : 0 }}
</span>
<span v-if="isApplicatoSconto">
<span v-if="isApplicatoSconto && showall">
&nbsp;<span class="ordine_scontato"
>(<span class="barrato"
>€
@@ -214,7 +231,7 @@
>&nbsp;
</span>
<div
v-if="isApplicatoSconto && !editmode"
v-if="isApplicatoSconto && !editmode && showall"
class="ordine_scritta_sconto"
v-html="
$t('ecomm.sconto_applicato', {
@@ -222,8 +239,7 @@
perc: getRispPerc,
})
"
>
</div>
></div>
</div>
</q-item-label>
</q-item-section>

View File

@@ -145,7 +145,9 @@
<CSelectUserActive></CSelectUserActive>
<div v-if="tools.isLogged()" class="text-weight-bold text-cart">
<div v-if="tools.isLogged()" class="bg-primary text-white q-pa-sm q-mb-md" style="border-radius: 0px">
<q-icon name="fas fa-shopping-cart" class="q-mr-sm" />
{{ $t("ecomm.carrello_di", { user: products.userActive.username }) }}
</div>
<CMyCart v-if="isfinishLoading"></CMyCart>

View File

@@ -2631,20 +2631,21 @@ body.body--dark {
font-size: 1.1rem;
font-weight: bold;
color: green;
background-color: #fff5ee; /* seashell color background */
padding: 10px;
background-image: linear-gradient(to right, #d5ffd5, #dfff06);
/* gradiente di sfondo che va bene con il colore green per il testo */
padding: 6px;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
text-align: center;
}
.ordine_scritta_sconto {
font-size: 1.1rem;
color:red;
background-color: #fff5ee; /* seashell color background */
padding: 4px;
font-size: 1rem;
color: red;
background-color: #fff5ee;
/* seashell color background */
padding: 2px;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
text-align: center;
}
@@ -2652,3 +2653,38 @@ body.body--dark {
display: flex;
justify-content: center;
}
.sconto-label {
font-weight: bold;
margin-left: 5px;
}
.sconto-text {
font-weight: bold;
font-size: 1rem;
}
.table-price {
margin: auto;
border-collapse: collapse;
}
.table-price td {
padding: 8px;
text-align: right;
vertical-align: middle;
}
.label-price {
font-weight: bold;
}
.value-price {
font-size: 1.2em;
text-align: right;
}
.ordine_scontato{
color: gray;
font-size: 0.85rem;
}

View File

@@ -231,6 +231,7 @@ export interface IMyPage {
content4?: string
active?: boolean
inmenu?: boolean
isTemplate?: boolean
color?: string
elemsText?: IElemText[]
onlyif_logged?: boolean

View File

@@ -135,7 +135,7 @@ const msg_it = {
description: 'Descrizione',
perc_sconto: 'Sconto %',
price: 'Prezzo',
qta: 'Quantita',
qta: 'Quantita Minima',
comulativo: 'Cumulativo',
applica: 'Applica',
},
@@ -1258,6 +1258,7 @@ const msg_it = {
date_updated: 'Ult. Aggiornamento',
},
mypages: {
isTemplate: 'E\' un modello',
catAI: 'Categorie AI',
toolsAI: 'Strumenti AI',
aitools: 'Ricerca',

View File

@@ -175,7 +175,7 @@ export const colTableRaccoltaCataloghi = [
export const colTableCatalogList = [
AddCol({ name: 'active', label_trans: 'myelems.pubblica_online', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'title', label_trans: 'gallery.title' }),
AddCol({ name: 'title', label_trans: 'gallery.title', dont_clone: true}),
AddCol({
name: 'foto_collana',
label_trans: 'cataloglist.foto_collana',
@@ -544,6 +544,7 @@ export const colmypage = [
AddCol({ name: 'order', label_trans: 'pages.order', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'active', label_trans: 'pages.active', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'inmenu', label_trans: 'pages.inmenu', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'isTemplate', label_trans: 'pages.isTemplate', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'title', label_trans: 'pages.title' }),
AddCol({ name: 'subtitle', label_trans: 'pages.subtitle' }),
AddCol({ name: 'mainMenu', label_trans: 'pages.mainMenu', fieldtype: costanti.FieldType.boolean }),
@@ -902,9 +903,9 @@ export const colTableScontistica = [
AddCol({ name: 'description', label_trans: 'scontistica.description' }),
AddCol({ name: 'qta', label_trans: 'scontistica.qta', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'perc_sconto', label_trans: 'scontistica.perc_sconto', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'price', label_trans: 'products.price', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'applica', label_trans: 'products.applica', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'comulativo', label_trans: 'products.comulativo', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'price', label_trans: 'scontistica.price', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'applica', label_trans: 'scontistica.applica', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'comulativo', label_trans: 'scontistica.comulativo', fieldtype: costanti.FieldType.boolean }),
AddCol(DeleteRec),
AddCol(DuplicateRec),
]

View File

@@ -61,7 +61,7 @@ function getRecordOrdersCartEmpty(): IOrderCart {
ricevuto: false,
note: '',
note_per_gestore: '',
codice_sconto:'',
codice_sconto: '',
descr_sconto: '',
note_per_admin: '',
note_ordine_gas: '',
@@ -1518,14 +1518,10 @@ export const useProducts = defineStore('Products', {
let ris = null;
ris = await Api.SendReq(
'/cart/' + this.userActive._id + '/app_sc',
'POST',
{
ris = await Api.SendReq('/cart/' + this.userActive._id + '/app_sc', 'POST', {
cart_id,
code: codice_sconto,
}
)
})
.then((res) => {
this.updateDataProduct(res);
@@ -1545,7 +1541,6 @@ export const useProducts = defineStore('Products', {
return ris;
},
async addtoCartBase({
$q,
t,
@@ -1690,11 +1685,12 @@ export const useProducts = defineStore('Products', {
},
enableSubQty(myorder: IOrder): boolean {
let qty = myorder.quantity + myorder.quantitypreordered;
let qty = myorder?.quantity + myorder?.quantitypreordered;
return qty ? qty > 0 : false;
},
CanDeleteIfSub(myorder: IOrder): boolean {
if (!myorder) return false;
let qty = myorder.quantity + myorder.quantitypreordered;
qty = qty - this.qtaNextSub(myorder, myorder.product!);
@@ -1702,33 +1698,30 @@ export const useProducts = defineStore('Products', {
},
enableAddQty(myorder: IOrder, myproduct: IProduct): boolean {
if (!myorder) return false;
const globalStore = useGlobalStore();
if (globalStore.site.ecomm && globalStore.site.ecomm.enablePreOrders) {
return (
(this.getQtyBookableAvailable(myproduct) > 0 &&
(myproduct.maxBookableSinglePersQty === 0 ||
myorder.quantitypreordered + 1 < myproduct.maxBookableSinglePersQty)) ||
(this.getQtyAvailable(myproduct) > 0 &&
(myproduct.maxBookableSinglePersQty === 0 ||
!myproduct.maxBookableSinglePersQty ||
myorder.quantity + 1 < myproduct.maxBookableSinglePersQty))
);
} else {
return (
this.getQtyAvailable(myproduct) > 0 &&
(myproduct.maxBookableSinglePersQty === 0 ||
!myproduct.maxBookableSinglePersQty ||
myorder.quantity + 1 < myproduct.maxBookableSinglePersQty)
);
}
const maxAllowed = myproduct.maxBookableSinglePersQty || 0;
const qtyAvailable = this.getQtyAvailable(myproduct);
const qtyBookableAvailable = this.getQtyBookableAvailable(myproduct);
const canOrder =
qtyAvailable > 0 &&
((myorder.quantity + 1 <= maxAllowed && maxAllowed > 0) || maxAllowed === 0);
const canPreOrder =
globalStore.site.ecomm?.enablePreOrders &&
qtyBookableAvailable > 0 &&
myorder.quantitypreordered + 1 <= maxAllowed;
return canOrder || canPreOrder;
},
qtaNextAdd(myorder: IOrder, myproduct: IProduct): number {
let step = myproduct.minStepQty || 1;
if (this.getQtyAvailable(myproduct) > 0) {
if (myorder.quantity === 0) step = myproduct.minBuyQty;
if (myorder?.quantity === 0) step = myproduct.minBuyQty;
} else {
if (myorder.quantitypreordered === 0) step = myproduct.minBuyQty;
if (myorder?.quantitypreordered === 0) step = myproduct.minBuyQty;
}
if (step === 0) {
@@ -1742,9 +1735,9 @@ export const useProducts = defineStore('Products', {
let step = myproduct.minStepQty;
let minqta = myproduct.minBuyQty;
if (this.getQtyAvailable(myproduct) > 0) {
if (myorder.quantity === minqta) step = minqta;
if (myorder?.quantity === minqta) step = minqta;
} else {
if (myorder.quantitypreordered === minqta) step = minqta;
if (myorder?.quantitypreordered === minqta) step = minqta;
}
return step;
@@ -2596,8 +2589,9 @@ export const useProducts = defineStore('Products', {
getFilePathByLinkIdTemplate(linkidTemplate: string) {
try {
const globalStore = useGlobalStore();
const myelem = globalStore.myschedas.find((recscheda: IMyScheda) =>
(recscheda: ISchedaSingola) => recscheda.scheda._id === linkidTemplate
const myelem = globalStore.myschedas.find(
(recscheda: IMyScheda) => (recscheda: ISchedaSingola) =>
recscheda.scheda._id === linkidTemplate
);
if (myelem) {
const idPage = myelem.idPageOrig;
@@ -2631,7 +2625,12 @@ export const useProducts = defineStore('Products', {
myorder.idGasordine = '';
},
setMyOrder(myorder: IOrder, myproduct: IProduct, storeSelected: any = null, options: any = {setstore: false}) {
setMyOrder(
myorder: IOrder,
myproduct: IProduct,
storeSelected: any = null,
options: any = { setstore: false }
) {
if (myproduct.storehouses && myproduct.storehouses.length === 1) {
// Se solo 1 presente, metto fisso l'unico negozio !
myorder.idStorehouse = myproduct.storehouses[0]._id;
@@ -2653,8 +2652,6 @@ export const useProducts = defineStore('Products', {
storeSelected = ord.idStorehouse;
}
}
}
},
},
});

View File

@@ -388,6 +388,16 @@ export const useGlobalStore = defineStore('GlobalStore', {
const mypage = state.mypage.find((page) => `${page._id}` === idpage);
return mypage;
},
getMyPagesOptionsTemplate: (state: IGlobalState) => (): any[] => {
return state.mypage
.filter((page: IMyPage) => page.isTemplate === true)
.map((page: IMyPage) => ({
label: page.title,
value: page._id,
}));
},
getPathByIdPage:
(state: IGlobalState) =>
(idpage: string): string => {
@@ -2595,7 +2605,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
}
}
console.log('getServerHost', myserv);
// console.log('getServerHost', myserv);
return myserv;
} catch (e) {

View File

@@ -2322,13 +2322,13 @@ export default defineComponent({
router.push(path);
}
function updateProducts(arr: any) {
function updateProducts(arr: any, aggiorna?: boolean) {
if (myCatalog.value) {
if (
myCatalog.value.lista_prodotti.length !== arr.length ||
!myCatalog.value.lista_prodotti.every(
(prod, index) => prod._id === arr[index]._id
)
) || aggiorna
) {
myCatalog.value.lista_prodotti = [...arr];
@@ -2352,7 +2352,7 @@ export default defineComponent({
if (where === shared_consts.WHERE_INSERT.ONTOP) arr.unshift(element);
else if (where === shared_consts.WHERE_INSERT.ONBOTTOM) arr.push(element);
updateProducts(arr);
updateProducts(arr, true);
addnewProd.value = false;
}

View File

@@ -1,20 +1,23 @@
{
"compilerOptions": {
"esModuleInterop": true,
"moduleResolution": "node",
"module": "ESNext",
"target": "ESNext",
"jsx": "react-jsx",
"strict": true,
"baseUrl": "./",
"skipLibCheck": true,
"target": "esnext",
"allowJs": true,
"resolveJsonModule": true,
"moduleDetection": "force",
"isolatedModules": true,
"module": "ESNext",
"noEmit": true,
"lib": [
"esnext",
"dom",
"dom.iterable"
],
"strict": false,
"strictNullChecks": false,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
@@ -22,157 +25,154 @@
// "exactOptionalPropertyTypes": true,
"noUncheckedIndexedAccess": true,
"paths": {
"app": [
"./"
],
"app/*": [
"./*"
"*"
],
"src": [
"./src"
"src"
],
"src/*": [
"./src/*"
"src/*"
],
"components": [
"./src/components"
"src/components"
],
"components/*": [
"./src/components/*"
"src/components/*"
],
"layouts": [
"./src/layouts"
"src/layouts"
],
"layouts/*": [
"./src/layouts/*"
"src/layouts/*"
],
"pages": [
"./src/pages"
"src/pages"
],
"pages/*": [
"./src/pages/*"
"src/pages/*"
],
"assets": [
"./src/assets"
"src/assets"
],
"assets/*": [
"./src/assets/*"
"src/assets/*"
],
"boot": [
"./src/boot"
"src/boot"
],
"boot/*": [
"./src/boot/*"
"src/boot/*"
],
"@costanti": [
"./src/store/Modules/costanti.ts"
"src/store/Modules/costanti.ts"
],
"@components": [
"./src/compoments/index.ts"
"src/compoments/index.ts"
],
"@components/*": [
"./src/compoments/*"
"src/compoments/*"
],
"@boot": [
"./src/boot/*"
"src/boot/*"
],
"@views": [
"./src/views/*"
"src/views/*"
],
"@src/*": [
"./src/*"
"src/*"
],
"@css": [
"./src/css/variables.scss"
"src/css/variables.scss"
],
"@icons": [
"./src/public/myicons/*"
"src/public/myicons/*"
],
"@images": [
"./src/public/images/*"
"src/public/images/*"
],
"@maps": [
"./src/public/maps/*"
"src/public/maps/*"
],
"@classes": [
"./src/classes/index.ts"
"src/classes/index.ts"
],
"@utils": [
"./src/utils/index.ts"
"src/utils/index.ts"
],
"@router": [
"./src/router/index.ts"
"src/router/index.ts"
],
"@validators": [
"./src/utils/validators.ts"
"src/utils/validators.ts"
],
"@methods": [
"./src/utils/methods.ts"
"src/utils/methods.ts"
],
"@api": [
"./src/store/Api/index.ts"
"src/store/Api/index.ts"
],
"@api/*": [
"./src/store/Api/*"
"src/store/Api/*"
],
"@paths": [
"./src/store/Api/ApiRoutes.ts"
"src/store/Api/ApiRoutes.ts"
],
"@tools": [
"./src/store/Modules/tools.ts"
"src/store/Modules/tools.ts"
],
"@store": [
"./src/store"
"src/store"
],
"@store/*": [
"./src/store/*"
"src/store/*"
],
"@modules": [
"./src/store/Modules/index.ts"
"src/store/Modules/index.ts"
],
"@model": [
"./src/model/index.ts"
"src/model/index.ts"
],
"@model/*": [
"./src/model/*"
"src/model/*"
],
"model": [
"./src/model/index.ts"
"src/model/index.ts"
],
"enums": [
"./src/enums/*"
"src/enums/*"
],
"crypto": [
"./node_modules/bcryptjs"
"node_modules/bcryptjs"
],
"#q-app/bex/background": [
"./../node_modules/@quasar/app-vite/types/bex/entrypoints/background.d.ts"
"../node_modules/@quasar/app-vite/types/bex/entrypoints/background.d.ts"
],
"#q-app/bex/content": [
"./../node_modules/@quasar/app-vite/types/bex/entrypoints/content.d.ts"
"../node_modules/@quasar/app-vite/types/bex/entrypoints/content.d.ts"
],
"#q-app/bex/private/bex-bridge": [
"./../node_modules/@quasar/app-vite/types/bex/bex-bridge.d.ts"
"../node_modules/@quasar/app-vite/types/bex/bex-bridge.d.ts"
]
}
},
"include": [
"./**/*.d.ts",
"./**/*",
"**/*.d.ts",
"**/*",
".eslintrc.js",
"src/**/*",
],
"exclude": [
"./dist",
"./node_modules",
"./src-capacitor",
"./src-cordova",
"./public/js",
"./scripts",
"./docs",
"./statics",
"./upload",
"./quasar.config.ts",
"./quasar.config.*.temporary.compiled*"
"dist",
"node_modules",
"src-capacitor",
"src-cordova",
"public/js",
"scripts",
"docs",
"statics",
"upload",
"quasar.config.ts",
"quasar.config.*.temporary.compiled*"
]
}

373
yarn.lock
View File

@@ -874,11 +874,6 @@
dependencies:
regenerator-runtime "^0.14.0"
"@babel/runtime@^7.26.7":
version "7.27.1"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.1.tgz#9fce313d12c9a77507f264de74626e87fd0dc541"
integrity sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==
"@babel/template@^7.25.9", "@babel/template@^7.26.9", "@babel/template@^7.3.3":
version "7.26.9"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.26.9.tgz#4577ad3ddf43d194528cff4e1fa6b232fa609bb2"
@@ -2335,20 +2330,6 @@
"@parcel/utils" "2.14.1"
nullthrows "^1.1.1"
"@pdf-lib/standard-fonts@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz#8ba691c4421f71662ed07c9a0294b44528af2d7f"
integrity sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==
dependencies:
pako "^1.0.6"
"@pdf-lib/upng@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@pdf-lib/upng/-/upng-1.0.1.tgz#7dc9c636271aca007a9df4deaf2dd7e7960280cb"
integrity sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==
dependencies:
pako "^1.0.10"
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
@@ -2750,266 +2731,6 @@
dependencies:
"@swc/counter" "^0.1.3"
"@syncfusion/ej2-base@~29.1.33", "@syncfusion/ej2-base@~29.1.36":
version "29.1.36"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-base/-/ej2-base-29.1.36.tgz#3c467967d4ed05c89c252d852940e9ff3e780519"
integrity sha512-XVRrymlbywtzNnxiaf/ByudElO3p7gieJuN2IHcs6FxsQNI60d3A5RdBqEF0znAH/KM0iSiWDFaaP2pqQltiEQ==
dependencies:
"@syncfusion/ej2-icons" "~29.1.33"
"@syncfusion/ej2-buttons@~29.1.33", "@syncfusion/ej2-buttons@~29.1.34":
version "29.1.34"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-buttons/-/ej2-buttons-29.1.34.tgz#bf401f5390ab942c8b6d2445d37aeda1aa01a18c"
integrity sha512-zCePhsc7w2OtRwifEzsWFvFgik2ISM03vwGrHbT3IZP5lbs9asrXOJUdxmhvqqH2/Jhv5LT0/oEILx2LclzQtw==
dependencies:
"@syncfusion/ej2-base" "~29.1.33"
"@syncfusion/ej2-calendars@~29.1.33", "@syncfusion/ej2-calendars@~29.1.40":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-calendars/-/ej2-calendars-29.1.40.tgz#1df4559a856f4361e9ae36daefbac098248b548d"
integrity sha512-zYGGBGd1miZtYJysyQO+yoDN4mXxJ9PTKYhDGIR/5IeWVerDSXk5IPkVE0iAR3KmSnLvYYfA0nj6xbIFPOB4hQ==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-buttons" "~29.1.34"
"@syncfusion/ej2-inputs" "~29.1.39"
"@syncfusion/ej2-lists" "~29.1.40"
"@syncfusion/ej2-popups" "~29.1.37"
"@syncfusion/ej2-compression@~29.1.33":
version "29.1.33"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-compression/-/ej2-compression-29.1.33.tgz#d8d11460ae91656fda4f17f462bef992accdc7df"
integrity sha512-NVVW988jmjMCuDl07jUyN7fO62Ak34dBZnLkew8/PzC1KqXj4abFvHmNJ+crUDaNq3kPvjR8YrhWDfLzLZGaZA==
dependencies:
"@syncfusion/ej2-file-utils" "~29.1.33"
"@syncfusion/ej2-data@~29.1.33":
version "29.1.33"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-data/-/ej2-data-29.1.33.tgz#73ea1b1943f3d35cf8a131447f0805cda3e9fedc"
integrity sha512-dqXJtljDm8fPmLl7kuO3GYuoF8xHtnUE7qwvFWE3VZTvJYWLyG68auf5gNCK47hckMp9zvgWXboTMXMBXpAkrA==
dependencies:
"@syncfusion/ej2-base" "~29.1.33"
"@syncfusion/ej2-drawings@~29.1.40":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-drawings/-/ej2-drawings-29.1.40.tgz#d26c09a26673e65ae34268e21001af5365b32e9c"
integrity sha512-skfA1R5zqxhZNFr2ErmLqp2CBg3BJGLThpBDmdKR9+eIwJgVlJMwOdKWEE85Hl+HMVMo08BimoqX23RZDQfvgQ==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-data" "~29.1.33"
"@syncfusion/ej2-dropdowns@~29.1.33", "@syncfusion/ej2-dropdowns@~29.1.40":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-dropdowns/-/ej2-dropdowns-29.1.40.tgz#3db43f382eed81b68e5c5564f3c31e7424426d5b"
integrity sha512-ai1IWL82TlBSGYVEKyItxxeXVqSB1VagAvU4f7yA9j1k1BEvzUpo79U+Pt32rjW5EPacWaWHZsmUeMgfBrp+IA==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-data" "~29.1.33"
"@syncfusion/ej2-inputs" "~29.1.39"
"@syncfusion/ej2-lists" "~29.1.40"
"@syncfusion/ej2-navigations" "~29.1.40"
"@syncfusion/ej2-notifications" "~29.1.33"
"@syncfusion/ej2-popups" "~29.1.37"
"@syncfusion/ej2-excel-export@~29.1.33":
version "29.1.33"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-excel-export/-/ej2-excel-export-29.1.33.tgz#b68c6702b86296b3dd2f062c1ed2bc1d10ca76cc"
integrity sha512-UOkX00nb45eTii+Y8kwsCn0Jkn+UBRwznF7l9d9MN9aIJ4zCg+AJ88V/SqASA7Y4+qtGR7I1f4b69Wr0uau0Zw==
dependencies:
"@syncfusion/ej2-base" "~29.1.33"
"@syncfusion/ej2-compression" "~29.1.33"
"@syncfusion/ej2-file-utils@~29.1.33":
version "29.1.33"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-file-utils/-/ej2-file-utils-29.1.33.tgz#821398f346e0bdf148fc6cd5ae5e2cdec9583158"
integrity sha512-RxHWK1Xk3Q1TP9XE93pWxwjheIygeeu6TkGvih8H7MQZUdr+igRYG65ii2OhFBAT26BndU7gtl3Jv5l+eZBNfA==
"@syncfusion/ej2-filemanager@~29.1.39":
version "29.1.39"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-filemanager/-/ej2-filemanager-29.1.39.tgz#f6b8d841941d784c9ad9dd284ca104784fee1c64"
integrity sha512-vpZoKCmMwjyhI/hLLV+79bDoYT2B6FeleBGwhZc4jjEtZKK7Ddbs0aqNJ2WBjgET8Da1mZdT7bK5AaU1R8scsQ==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-buttons" "~29.1.34"
"@syncfusion/ej2-data" "~29.1.33"
"@syncfusion/ej2-grids" "~29.1.39"
"@syncfusion/ej2-inputs" "~29.1.39"
"@syncfusion/ej2-layouts" "~29.1.39"
"@syncfusion/ej2-lists" "~29.1.34"
"@syncfusion/ej2-navigations" "~29.1.38"
"@syncfusion/ej2-popups" "~29.1.37"
"@syncfusion/ej2-splitbuttons" "~29.1.33"
"@syncfusion/ej2-grids@~29.1.39":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-grids/-/ej2-grids-29.1.40.tgz#e8f1ae106883474c5eadd046c0a818fe8d8df63c"
integrity sha512-zv6StTIP3Q66gjnY9/Oz5vPcknHXCCVaevKPfM350LMfqhFvfTOrE8mUi5bPOphx7XY+oizug7bm1EfIRUZaDA==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-buttons" "~29.1.34"
"@syncfusion/ej2-calendars" "~29.1.40"
"@syncfusion/ej2-compression" "~29.1.33"
"@syncfusion/ej2-data" "~29.1.33"
"@syncfusion/ej2-dropdowns" "~29.1.40"
"@syncfusion/ej2-excel-export" "~29.1.33"
"@syncfusion/ej2-file-utils" "~29.1.33"
"@syncfusion/ej2-inputs" "~29.1.39"
"@syncfusion/ej2-lists" "~29.1.40"
"@syncfusion/ej2-navigations" "~29.1.40"
"@syncfusion/ej2-notifications" "~29.1.33"
"@syncfusion/ej2-pdf-export" "~29.1.40"
"@syncfusion/ej2-popups" "~29.1.37"
"@syncfusion/ej2-splitbuttons" "~29.1.33"
"@syncfusion/ej2-icons@~29.1.33":
version "29.1.33"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-icons/-/ej2-icons-29.1.33.tgz#8ac6fc04dc31dbb20a2f20f753dada2e9ee2d6e5"
integrity sha512-kfhXGZ5QQAIkvqGdPXOnZCkPqKnyw0ieK74vfoFXv3UlJKLiSIAbkBxr8xOWn7k+FtlADDkGnOTAtIKUpyHBfQ==
"@syncfusion/ej2-inplace-editor@~29.1.33":
version "29.1.33"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-inplace-editor/-/ej2-inplace-editor-29.1.33.tgz#95be3631efdf7a527c5a4105fa9eeecd48722fd0"
integrity sha512-Tl9fvHg1OMW4KwVkfLDLP3sCHKRRa9RvrK3VyVFCOIMvwcu3iHYn6NyHR3t2FvB5kSpKcxJ0OtUGIXMGP2RmhQ==
dependencies:
"@syncfusion/ej2-base" "~29.1.33"
"@syncfusion/ej2-buttons" "~29.1.33"
"@syncfusion/ej2-calendars" "~29.1.33"
"@syncfusion/ej2-data" "~29.1.33"
"@syncfusion/ej2-dropdowns" "~29.1.33"
"@syncfusion/ej2-inputs" "~29.1.33"
"@syncfusion/ej2-lists" "~29.1.33"
"@syncfusion/ej2-navigations" "~29.1.33"
"@syncfusion/ej2-notifications" "~29.1.33"
"@syncfusion/ej2-popups" "~29.1.33"
"@syncfusion/ej2-richtexteditor" "~29.1.33"
"@syncfusion/ej2-splitbuttons" "~29.1.33"
"@syncfusion/ej2-inputs@~29.1.33", "@syncfusion/ej2-inputs@~29.1.39":
version "29.1.39"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-inputs/-/ej2-inputs-29.1.39.tgz#a5c1a8a5fed9da88a3f9224a951c0ce3c2e4bddc"
integrity sha512-W9jPqWsms1IyhhRx4Z9nyT1GfZx58D7W4C4eiwgUiGTS3+D+ahdFcy/z3VqI0q56+Hekn2cfinnQxBttsgwy+w==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-buttons" "~29.1.34"
"@syncfusion/ej2-popups" "~29.1.37"
"@syncfusion/ej2-splitbuttons" "~29.1.33"
"@syncfusion/ej2-layouts@~29.1.39":
version "29.1.39"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-layouts/-/ej2-layouts-29.1.39.tgz#73478a212e9f912397a6ed522dfc2b89ef267fc1"
integrity sha512-32IlwaZ2UVbvCzO2JW7zibICbIRF7DVjkeyysxihl1N7RMo1+ahFKb8pAOx24qzj95A4sDcrnhYga/hw7E9tAg==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-lists@~29.1.33", "@syncfusion/ej2-lists@~29.1.34", "@syncfusion/ej2-lists@~29.1.40":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-lists/-/ej2-lists-29.1.40.tgz#49c419db6d6757659df0c46d80b65d5cfa7a3be0"
integrity sha512-2fYtWa/HqPeaquP6aF4p/fghvOHTKwXv4t9JCCd/sNFpSdUmfVkVBIvXSyAVEiSRgofMg7cHlVgxKfjpSH++Fg==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-buttons" "~29.1.34"
"@syncfusion/ej2-data" "~29.1.33"
"@syncfusion/ej2-popups" "~29.1.37"
"@syncfusion/ej2-navigations@~29.1.33", "@syncfusion/ej2-navigations@~29.1.38", "@syncfusion/ej2-navigations@~29.1.40":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-navigations/-/ej2-navigations-29.1.40.tgz#4af9a223ee1dd25d8bf305bc1128d4e7db1f4785"
integrity sha512-AJfd1BHYi4USjgR+69CsIcj2ulRhGV0tfZ0kcuLhf+NLUTMhPB5ttKJHUKx1ABWAaDBt7Dt7Bd6zAqsC/cv/lA==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-buttons" "~29.1.34"
"@syncfusion/ej2-data" "~29.1.33"
"@syncfusion/ej2-inputs" "~29.1.39"
"@syncfusion/ej2-lists" "~29.1.40"
"@syncfusion/ej2-popups" "~29.1.37"
"@syncfusion/ej2-notifications@~29.1.33":
version "29.1.33"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-notifications/-/ej2-notifications-29.1.33.tgz#8f32f21148d7c66139349745311e89690f4f83f2"
integrity sha512-MNKwBHXlDeuvjn+BDeIc77Ei2PGm7egiKnIZoP4A93fxZCetaiqLLUbGOHHJYmvOPuL4OOifNXcKSrhMA6RcrQ==
dependencies:
"@syncfusion/ej2-base" "~29.1.33"
"@syncfusion/ej2-buttons" "~29.1.33"
"@syncfusion/ej2-popups" "~29.1.33"
"@syncfusion/ej2-pdf-export@~29.1.40":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-pdf-export/-/ej2-pdf-export-29.1.40.tgz#3580a0ce520a90534230f83c5901f622b8ffacd1"
integrity sha512-LCfbVuQOhw1JDLEjpWA4Ez//5pei5g36X0Wq4xiMgdWGYf1TloU0LtfbgTc56nXZhCKYJ3a3yhyD9s/SJ6DJwg==
dependencies:
"@syncfusion/ej2-compression" "~29.1.33"
"@syncfusion/ej2-pdf@~29.1.40":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-pdf/-/ej2-pdf-29.1.40.tgz#f7ec7612f536851b3a895b485ea5d7e767840984"
integrity sha512-cHdHA3yodqtSJs97Bernth3zcQoT3x79roV+dVBUI9wip80IFjpq28zARmbjcCkrIvBfvN9/Ushg3rgybRWEgw==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-compression" "~29.1.33"
"@syncfusion/ej2-pdfviewer@29.1.40":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-pdfviewer/-/ej2-pdfviewer-29.1.40.tgz#1a2624ee65d6de7619ea49e1602ced0cceb4b872"
integrity sha512-IGNKUi+V8hEMDfnbOq0QkFtbx4rQIgv4wrvp04QARtyvx4PDOxi9xsiAIaQOEBQT3Sku5oJHXX1sDde9yZRfYw==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-buttons" "~29.1.34"
"@syncfusion/ej2-data" "~29.1.33"
"@syncfusion/ej2-drawings" "~29.1.40"
"@syncfusion/ej2-dropdowns" "~29.1.40"
"@syncfusion/ej2-inplace-editor" "~29.1.33"
"@syncfusion/ej2-inputs" "~29.1.39"
"@syncfusion/ej2-lists" "~29.1.40"
"@syncfusion/ej2-navigations" "~29.1.40"
"@syncfusion/ej2-notifications" "~29.1.33"
"@syncfusion/ej2-pdf" "~29.1.40"
"@syncfusion/ej2-popups" "~29.1.37"
"@syncfusion/ej2-popups@~29.1.33", "@syncfusion/ej2-popups@~29.1.37":
version "29.1.37"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-popups/-/ej2-popups-29.1.37.tgz#965f3888b36345afb953c824f21b994017111e8f"
integrity sha512-0LAqQeYVu+eOu21ZXWkjycej4gOgfuR9A2Zm+GsgF+jskvL6ev47hCHg60zjlt9dowHPGJimz2ksKLDulyP64A==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-buttons" "~29.1.34"
"@syncfusion/ej2-richtexteditor@~29.1.33":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-29.1.40.tgz#7f12a65253c36725cbbd743c52ee4b56e27bef1e"
integrity sha512-hm/TL8tiowQ0GDjb7RR3BBxX3ChM6ygtb2Him0wyunEx8hQVnI9wzmC1b+p/MBywF22x6KSzhtXPxZIYzgRe8w==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-buttons" "~29.1.34"
"@syncfusion/ej2-dropdowns" "~29.1.40"
"@syncfusion/ej2-filemanager" "~29.1.39"
"@syncfusion/ej2-inputs" "~29.1.39"
"@syncfusion/ej2-navigations" "~29.1.40"
"@syncfusion/ej2-popups" "~29.1.37"
"@syncfusion/ej2-splitbuttons" "~29.1.33"
"@syncfusion/ej2-splitbuttons@~29.1.33":
version "29.1.33"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-splitbuttons/-/ej2-splitbuttons-29.1.33.tgz#595b9ef4de78462e1d9c609b1e91b700a050bbcd"
integrity sha512-ScZpb7fiBOd/55AkpFZPvcFrTs6MiEkUFtH8vtqrV1G9cmgCJ8zl+6QbJjAtCOsWYEWPA70Qh5JKppMXJWkhGw==
dependencies:
"@syncfusion/ej2-base" "~29.1.33"
"@syncfusion/ej2-popups" "~29.1.33"
"@syncfusion/ej2-vue-base@~29.1.33":
version "29.1.33"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-vue-base/-/ej2-vue-base-29.1.33.tgz#e75be00a529eed5f2fdc888fba100a53e43f40ea"
integrity sha512-XnvgVioEejFL8aHJ1V0/kYd7ikE5tCHHcQSkiu38vyPRylg2ZwmidXWJT61d3LIjHc/f817mkQQUqfK8kbwVoQ==
dependencies:
"@syncfusion/ej2-base" "~29.1.33"
"@syncfusion/ej2-vue-pdfviewer@^29.1.40":
version "29.1.40"
resolved "https://registry.yarnpkg.com/@syncfusion/ej2-vue-pdfviewer/-/ej2-vue-pdfviewer-29.1.40.tgz#9db58414836c30366b65e21723e93557d7ebe820"
integrity sha512-QHOmuxEzQD1P2LYFpFODne2zfjejFx2k1KI9HfnRWMXj99X96zf4+0DK6fjlP5B9mWo+MuGqsHJ/7Vv3ArMOAw==
dependencies:
"@syncfusion/ej2-base" "~29.1.36"
"@syncfusion/ej2-pdfviewer" "29.1.40"
"@syncfusion/ej2-vue-base" "~29.1.33"
"@szmarczak/http-timer@^4.0.5":
version "4.0.6"
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807"
@@ -4623,20 +4344,6 @@ caniuse-lite@^1.0.30001702:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz#977cb4920598c158f491ecf4f4f2cfed9e354718"
integrity sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==
canvg@^3.0.11:
version "3.0.11"
resolved "https://registry.yarnpkg.com/canvg/-/canvg-3.0.11.tgz#4b4290a6c7fa36871fac2b14e432eff33b33cf2b"
integrity sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==
dependencies:
"@babel/runtime" "^7.12.5"
"@types/raf" "^3.4.0"
core-js "^3.8.3"
raf "^3.4.1"
regenerator-runtime "^0.13.7"
rgbcolor "^1.0.1"
stackblur-canvas "^2.0.0"
svg-pathdata "^6.0.3"
canvg@^3.0.6:
version "3.0.10"
resolved "https://registry.yarnpkg.com/canvg/-/canvg-3.0.10.tgz#8e52a2d088b6ffa23ac78970b2a9eebfae0ef4b3"
@@ -6365,11 +6072,6 @@ file-loader@^6.2.0:
loader-utils "^2.0.0"
schema-utils "^3.0.0"
file-saver@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38"
integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
filelist@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
@@ -6743,18 +6445,6 @@ graphemer@^1.4.0:
resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
graphql-tag@^2.12.6:
version "2.12.6"
resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1"
integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==
dependencies:
tslib "^2.1.0"
graphql@^16.10.0:
version "16.10.0"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.10.0.tgz#24c01ae0af6b11ea87bf55694429198aaa8e220c"
integrity sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==
gsap@^3.12.7:
version "3.12.7"
resolved "https://registry.yarnpkg.com/gsap/-/gsap-3.12.7.tgz#1b690def901ac9b21d4909f39c2b52418154463d"
@@ -6912,7 +6602,7 @@ html-minifier-terser@^7.2.0:
relateurl "^0.2.7"
terser "^5.15.1"
html2canvas@^1.0.0, html2canvas@^1.0.0-rc.5, html2canvas@^1.4.1:
html2canvas@^1.0.0, html2canvas@^1.0.0-rc.5:
version "1.4.1"
resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-1.4.1.tgz#7cef1888311b5011d507794a066041b14669a543"
integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==
@@ -8078,21 +7768,6 @@ jspdf@^3.0.0:
dompurify "^3.2.4"
html2canvas "^1.0.0-rc.5"
jspdf@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-3.0.1.tgz#d81e1964f354f60412516eb2449ea2cccd4d2a3b"
integrity sha512-qaGIxqxetdoNnFQQXxTKUD9/Z7AloLaw94fFsOiJMxbfYdBbrBuhWmbzI8TVjrw7s3jBY1PFHofBKMV/wZPapg==
dependencies:
"@babel/runtime" "^7.26.7"
atob "^2.1.2"
btoa "^1.2.1"
fflate "^0.8.1"
optionalDependencies:
canvg "^3.0.11"
core-js "^3.6.0"
dompurify "^3.2.4"
html2canvas "^1.0.0-rc.5"
jsqr@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/jsqr/-/jsqr-1.4.0.tgz#8efb8d0a7cc6863cb6d95116b9069123ce9eb2d1"
@@ -8970,11 +8645,6 @@ package-json-from-dist@^1.0.0:
resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
pako@^1.0.10, pako@^1.0.11, pako@^1.0.6:
version "1.0.11"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
param-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
@@ -9115,16 +8785,6 @@ pbkdf2@^3.1.2:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
pdf-lib@^1.17.1:
version "1.17.1"
resolved "https://registry.yarnpkg.com/pdf-lib/-/pdf-lib-1.17.1.tgz#9e7dd21261a0c1fb17992580885b39e7d08f451f"
integrity sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==
dependencies:
"@pdf-lib/standard-fonts" "^1.0.0"
"@pdf-lib/upng" "^1.0.1"
pako "^1.0.11"
tslib "^1.11.1"
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -9616,18 +9276,6 @@ q@^1.1.2:
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
qrcode-generator@^1.4.4:
version "1.4.4"
resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7"
integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==
qrcode-vue3@^1.7.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/qrcode-vue3/-/qrcode-vue3-1.7.1.tgz#d2cf627f9ffefd48d7ffb1dc0402a831781890df"
integrity sha512-Xa82NslFJUqsnQbLtc1qO+xPEOeFaTRxktg3ugRd2Pk116kta1X+7GLSEPQj9gor8jWVyfmLmhYZHuANnRZoLQ==
dependencies:
qrcode-generator "^1.4.4"
qs@6.13.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
@@ -11066,11 +10714,6 @@ tslib@2.3.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
tslib@^1.11.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.0.3, tslib@^2.1.0, tslib@^2.6.2, tslib@^2.8.0:
version "2.8.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
@@ -11490,13 +11133,6 @@ vue-idb@^0.2.0:
vue "^2.5.3"
vuex "^3.0.1"
vue-image-zoomer@^2.4.4:
version "2.4.4"
resolved "https://registry.yarnpkg.com/vue-image-zoomer/-/vue-image-zoomer-2.4.4.tgz#781355c07ad249973d6907784dfb1214ba73976a"
integrity sha512-hCDgBEitR/8m4/yDcgTWi5elR40Si2TATaYcpSh0395NpQ1LoHCFXizeXxp2MoYHzO3BpO3T4Q8+SNco/UITlg==
dependencies:
vue "^3.2.25"
vue-property-decorator@^10.0.0-rc.3:
version "10.0.0-rc.3"
resolved "https://registry.yarnpkg.com/vue-property-decorator/-/vue-property-decorator-10.0.0-rc.3.tgz#bb0cb2c7c31dc41149eb432f2104fb82dc3d95be"
@@ -11574,11 +11210,6 @@ vue3-apexcharts@^1.8.0:
resolved "https://registry.yarnpkg.com/vue3-apexcharts/-/vue3-apexcharts-1.8.0.tgz#1984648d966aa91bc4dc3e87fa847f5289f7f1cf"
integrity sha512-5tSD4mXTBbIJ9ir+58qHE6oNtIe0RNgqIRYMKpcsIaxkKtwUww4JhvPkpUFlmiW4OJbbdklgjleXq1lfcM4gdA==
vue3-pdf-app@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/vue3-pdf-app/-/vue3-pdf-app-1.0.3.tgz#2f4ad738d7d86e8082a1aacbe498c5a08cb4d226"
integrity sha512-qegWTIF4wYKiocZ3KreB70wRXhqSdXWbdERDyyKzT7d5PbjKbS9tD6vaKkCqh3PzTM84NyKPYrQ3iuwJb60YPQ==
vue3-qr-reader@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/vue3-qr-reader/-/vue3-qr-reader-1.0.0.tgz#a43c0f9badd39af611f37a92a8dd18e2150f41c5"
@@ -11594,7 +11225,7 @@ vue@^2.0.0, vue@^2.5.3, vue@^2.7.15:
"@vue/compiler-sfc" "2.7.16"
csstype "^3.1.0"
vue@^3.2.25, vue@^3.4, vue@^3.5.13:
vue@^3.4, vue@^3.5.13:
version "3.5.13"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a"
integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==