From 70f1e5cbf18d90a9a8375031fb5faf065920b50d Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Fri, 2 May 2025 19:11:29 +0200 Subject: [PATCH] - Aggiungere un campo "Vagliato dall'Editore" e aggiungere anche il campo "chi" e delle Note --- .env.production | 18 +- package.json | 1 + scripts/deploy_on_prod_gruppomacro.app.sh | 6 + scripts/deploy_on_test_gruppomacro.app.sh | 8 +- .../CCatalogoCard/CCatalogoCard.vue | 8 +- src/components/CMyEditElem/CMyEditElem.ts | 127 --------- src/components/CMyEditElem/CMyEditElem.vue | 22 -- src/components/CMyPopupEdit/CMyPopupEdit.ts | 22 ++ src/components/CMyPopupEdit/CMyPopupEdit.vue | 79 +++++- .../CMyRecCatalog/CMyRecCatalog.vue | 51 ++-- src/components/CProductTable/CProductTable.ts | 42 ++- .../CProductTable/CProductTable.vue | 15 +- .../CSchedaProdotto/CSchedaProdotto.ts | 11 + src/model/CatalogStore.ts | 2 + src/model/GlobalStore.ts | 2 +- src/model/Products.ts | 3 +- src/statics/lang/it.js | 8 +- src/store/Modules/costanti.ts | 7 + src/store/Modules/fieldsTable.ts | 1 + src/store/Modules/tools.ts | 12 + src/store/Products.ts | 19 +- src/views/ecommerce/catalogo/catalogo.ts | 186 ++++++++++++- src/views/ecommerce/catalogo/catalogo.vue | 42 ++- yarn.lock | 260 ++++++++++++++++++ 24 files changed, 745 insertions(+), 207 deletions(-) diff --git a/.env.production b/.env.production index 2a577413..806a4a4b 100644 --- a/.env.production +++ b/.env.production @@ -1,11 +1,13 @@ VITE_APP_ID="18" -VITE_APP_URL="https://test.gruppomacro.app" -VITE_MONGODB_HOST="https://testapi.gruppomacro.app" -VITE_LOGO_REG="gruppomacro-logo-full.png" +VITE_APP_URL="https://gruppomacro.app" +VITE_MONGODB_HOST="https://api.gruppomacro.app" +VITE_LOGO_REG='gruppomacro-logo-full.png' VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc" -VITE_DEBUG="1" -VITE_VUE_APP_ISTEST="1" +VITE_DEBUG="0" +VITE_VUE_APP_ISTEST="0" DIRECTORY_LOCAL="myprojplanet_vite" -DIRECTORY_SERVER="/var/www/nodejs_test.piuchebuono_server" -SERVERDIR_WEBSITE="/var/www/test.gruppomacro.app" -SERVERPW_WEBSITE="pwdadmin@1AOK" \ No newline at end of file +DIRECTORY_SERVER="/var/www/nodejs_piuchebuono_server" +SERVERDIR_WEBSITE="/var/www/gruppomacro.app" +SERVERPW_WEBSITE="pwdadmin@1AOK" +PORT_SPA="8089" +PORT_PWA="8099" \ No newline at end of file diff --git a/package.json b/package.json index 8f36f001..9dbf590e 100755 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@cubejs-client/core": "^1.2.26", "@quasar/extras": "^1.16.17", "@quasar/quasar-ui-qcalendar": "^4.1.2", + "@syncfusion/ej2-vue-pdfviewer": "^29.1.40", "@types/jsbarcode": "^3.11.4", "@types/leaflet": "^1.9.17", "@vue/compat": "^3.5.13", diff --git a/scripts/deploy_on_prod_gruppomacro.app.sh b/scripts/deploy_on_prod_gruppomacro.app.sh index 2a9d7d61..6c07024b 100755 --- a/scripts/deploy_on_prod_gruppomacro.app.sh +++ b/scripts/deploy_on_prod_gruppomacro.app.sh @@ -18,8 +18,14 @@ fi if [[ $risposta == "Y" || $risposta == "y" ]]; then + mv public/upload/products ../../ + mv public/upload/profile ../../ + npm run buildpwa + mv ../../products public/upload/ + mv ../../profile public/upload/ + echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..." rsync -e 'ssh -p 8822' -a dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE #rsync -e 'ssh -p 8822' -av --delete dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js diff --git a/scripts/deploy_on_test_gruppomacro.app.sh b/scripts/deploy_on_test_gruppomacro.app.sh index adfbafe3..30294651 100755 --- a/scripts/deploy_on_test_gruppomacro.app.sh +++ b/scripts/deploy_on_test_gruppomacro.app.sh @@ -16,7 +16,13 @@ cp .env.test.gruppomacro .env.production sleep 1 -npm run buildpwatest + mv public/upload/products ../../ + mv public/upload/profile ../../ + + npm run buildpwatest + + mv ../../products public/upload/ + mv ../../profile public/upload/ echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..." rsync -e 'ssh -p 8822' -a --exclude 'upload' dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE diff --git a/src/components/CCatalogoCard/CCatalogoCard.vue b/src/components/CCatalogoCard/CCatalogoCard.vue index 887b57d6..564dfc3f 100755 --- a/src/components/CCatalogoCard/CCatalogoCard.vue +++ b/src/components/CCatalogoCard/CCatalogoCard.vue @@ -134,7 +134,7 @@ /> - Scheda Libro + Scheda - Carica dati del Libro (da GM) + Carica dati (da GM) - Carica dati del Libro (dal DB Locale) + Carica dati (dal DB Locale) diff --git a/src/components/CSchedaProdotto/CSchedaProdotto.ts b/src/components/CSchedaProdotto/CSchedaProdotto.ts index 6a7cc167..9753cd46 100755 --- a/src/components/CSchedaProdotto/CSchedaProdotto.ts +++ b/src/components/CSchedaProdotto/CSchedaProdotto.ts @@ -274,6 +274,17 @@ export default defineComponent({ function getArrListScheda(): IRecFields[] { const arrlist: IRecFields[] = [ + { + editOn: true, + label: "Verifica", + table: "products", + id: myproduct.value._id, + rec: myproduct.value, + mykey: "validaprod", + debounce: "1000", + type: costanti.FieldType.verifica, + dense: true, + }, { editOn: true, label: "Titolo", diff --git a/src/model/CatalogStore.ts b/src/model/CatalogStore.ts index 01857a74..28243f8c 100755 --- a/src/model/CatalogStore.ts +++ b/src/model/CatalogStore.ts @@ -26,6 +26,8 @@ export interface ICatalog { pdf_generato?: string data_generato?: Date + data_lista_generata?: Date + username_lista_generata?: string pdf_online?: string data_online?: Date diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts index bf2c3e2a..5700c1e6 100755 --- a/src/model/GlobalStore.ts +++ b/src/model/GlobalStore.ts @@ -674,7 +674,7 @@ export interface ITimeLineMain { export interface IImgGallery { _id?: string imagefile: string - vers_img: number + vers_img?: number // order?: number alt?: string description?: string diff --git a/src/model/Products.ts b/src/model/Products.ts index b09b949e..b7b359cb 100755 --- a/src/model/Products.ts +++ b/src/model/Products.ts @@ -1,6 +1,6 @@ import type { IUserFields, IUserShort } from './UserStore' -export interface IVerificaProd { +export interface IValidaProd { esito?: number data?: Date username?: string @@ -97,6 +97,7 @@ export interface IVariazione { preOrderDate?: Date addtocart_link?: string eta?: string + validaprod?: IValidaProd } export interface IAuthor { diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js index e94798dc..8ea20776 100755 --- a/src/statics/lang/it.js +++ b/src/statics/lang/it.js @@ -2076,7 +2076,13 @@ const msg_it = { withexplain: 'Con Spiegazione', temperatura: 'Temperatura', outputType: 'Formato di Uscita', - } + }, + + validazione: { + SI: 'Validato', + NO: 'NON Validato', + TO_RESOLV: 'Da Risolvere!', + }, }, }; diff --git a/src/store/Modules/costanti.ts b/src/store/Modules/costanti.ts index c75adb87..d233e46c 100755 --- a/src/store/Modules/costanti.ts +++ b/src/store/Modules/costanti.ts @@ -488,6 +488,7 @@ export const costanti = { arrmenu: 18000, op_andor: 19000, editor_nohtml: 20000, + verifica: 21000, }, @@ -557,6 +558,12 @@ export const costanti = { OP_ANDOR: { OP_OR: 0, OP_AND: 1, + }, + + VALIDATO: { + NO: 0, + SI: 1, + TO_RESOLV: -1, } } diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts index d31838b3..4c5575bc 100755 --- a/src/store/Modules/fieldsTable.ts +++ b/src/store/Modules/fieldsTable.ts @@ -2748,6 +2748,7 @@ export const colTableProducts = [ AddCol({ name: 'canBeShipped', label_trans: 'products.canBeShipped', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'canBeBuyOnline', label_trans: 'products.canBeBuyOnline', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'validaprod', label_trans: 'products.validaprod', fieldtype: costanti.FieldType.verifica }), AddCol(DeleteRec), AddCol(DuplicateRec), ] diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts index 895d5616..0adaeac8 100644 --- a/src/store/Modules/tools.ts +++ b/src/store/Modules/tools.ts @@ -9905,6 +9905,18 @@ export const tools = { } }, + isDateValid(mydate: Date) { + try { + return ( + mydate instanceof Date && + isFinite(mydate.getTime()) && + mydate.toISOString().split("T")[0] !== "1970-01-01" + ) + } catch { + return false + } + }, + // FINE ! diff --git a/src/store/Products.ts b/src/store/Products.ts index 642578ba..d45843ab 100755 --- a/src/store/Products.ts +++ b/src/store/Products.ts @@ -1943,7 +1943,24 @@ export const useProducts = defineStore('Products', { } ) - } + }, + + + getPathByPage(idpag: string) { + + let linkpage = '' + + const globalStore = useGlobalStore() + + if (idpag) { + const mypage = globalStore.getPageById(idpag) + if (mypage) + linkpage = mypage.path! + } + + return linkpage + + }, }, diff --git a/src/views/ecommerce/catalogo/catalogo.ts b/src/views/ecommerce/catalogo/catalogo.ts index 91d1664f..18ad60fd 100755 --- a/src/views/ecommerce/catalogo/catalogo.ts +++ b/src/views/ecommerce/catalogo/catalogo.ts @@ -20,6 +20,10 @@ import { CProductTable } from '@src/components/CProductTable' import { CSearchProduct } from '@src/components/CSearchProduct' import { CContainerCatalogoCard } from '@src/components/CContainerCatalogoCard' import { CSelectUserActive } from '@src/components/CSelectUserActive' + +import html2pdf from 'html2pdf.js' + + import type { IOptCatalogo, IDimensioni, IFilterCatalogo, IMyScheda, IProdView, IProduct, ISchedaSingola, ISearchList, ICatalog, IImg, @@ -96,6 +100,17 @@ export default defineComponent({ const optcatalogo = ref({ ...props.modelValue }); + const getPdfFilename = () => { + let myfilename = (optcatalogo.value.pdf_filename ?? 'catalogo_completo') + + const catalog = getCatalogoByMyPage.value + if (catalog) { + myfilename = productStore.getPathByPage(catalog.idPageAssigned) + } + + return myfilename + } + function updateCatalogoPadre() { console.log('catalogo.ts PADRE') emit('update:modelValue', optcatalogo.value); @@ -461,6 +476,25 @@ export default defineComponent({ return argomenti } + function getidTipoFormatoDaFiltrare(def_idTipoFormato?: number[]) { + let idTipoFormato: number[] = [] + + // Cerca se nella lista cataloghi c'è la Collana di questa Pagina ! + const trovatocatalogo = getCatalogoByMyPage.value + + if (trovatocatalogo) { + idTipoFormato = trovatocatalogo.idTipoFormato! || [] + } else { + if (def_idTipoFormato && def_idTipoFormato.length > 0) { + idTipoFormato = def_idTipoFormato + } else { + idTipoFormato = [] + } + } + + return idTipoFormato + } + function getEditoreDaFiltrare(def_editori?: string[]) { let editore: string[] = [] @@ -546,7 +580,7 @@ export default defineComponent({ if (!(optrigenera.value.visibilitaDisp === costanti.DISP.TUTTI || (optrigenera.value.visibilitaDisp === costanti.DISP.ESAURITI && productStore.isEsaurito(product)) || - (optrigenera.value.visibilitaDisp === costanti.DISP.DISPONIBILI && productStore.isDisponibile(product)))) { + (optrigenera.value.visibilitaDisp === costanti.DISP.DISPONIBILI && (productStore.isDisponibile(product) || productStore.isPrevendita(product))))) { return false; } if (!(optrigenera.value.stato === costanti.STATO.TUTTI || @@ -675,7 +709,7 @@ export default defineComponent({ const filtroProductTypes = optcatalogo.value.productTypes || [0]; const filtroExcludeProductTypes = optcatalogo.value.excludeproductTypes || [0]; const filtroidTipologie = optcatalogo.value.idTipologie || []; - const filtroidTipoFormato = optcatalogo.value.idTipoFormato || []; + const filtroidTipoFormato = getidTipoFormatoDaFiltrare(optcatalogo.value.idTipoFormato); const editore = getEditoreDaFiltrare(optcatalogo.value.editore); const filtroPublishers = editore || []; const idCollane = getIdCollaneDaFiltrare(optcatalogo.value.idCollane); @@ -741,12 +775,31 @@ export default defineComponent({ generatearrProdToViewSorted(!generalista, salva, !optcatalogo.value.showListaArgomenti); loaddata(); + if (generalista) { + const catalog = getCatalogoByMyPage.value + if (catalog) { + catalog.data_lista_generata = tools.getDateNow() + catalog.username_lista_generata = userStore.my.username + await saveCatalog() + } + } + console.log('***** FINE calcArrPROD') generatinglist.value = false rigeneraLibri.value = false } + async function saveCatalog() { + const catalog = getCatalogoByMyPage.value + const mydata = { + table: 'catalogs', + data: catalog + } + + await globalStore.saveTable(mydata) + } + function generaListaLibri() { // chiedi prima "Sei sicuro di rigenerare il catalogo?" let risposta_si = false @@ -815,7 +868,7 @@ export default defineComponent({ const filtroProductTypes = scheda.productTypes || [0]; const filtroExcludeProductTypes = scheda.excludeproductTypes || [0]; const filtroidTipologie = scheda.idTipologie || []; - const filtroidTipoFormato = scheda.idTipoFormato || []; + const filtroidTipoFormato = getidTipoFormatoDaFiltrare(scheda.idTipoFormato); const editore = getEditoreDaFiltrare(scheda.editore); const filtroPublishers = editore || []; const idCollane = getIdCollaneDaFiltrare(scheda.idCollane); @@ -1500,6 +1553,130 @@ export default defineComponent({ addnewProd.value = true } + function toggleDebug() { + optcatalogo.value.indebug = !optcatalogo.value.indebug + } + + const preparePDF = async () => { + optcatalogo.value.generazionePDFInCorso = true + optcatalogo.value.areadistampa!.scale = optcatalogo.value.areadistampa!.scale_printable + } + + const terminaPDF = async () => { + optcatalogo.value.generazionePDFInCorso = false + optcatalogo.value.areadistampa!.scale = 1 + } + + + + + const generatePDF = async () => { + + await nextTick() + + $q.dialog({ + message: 'Generare il PDF ?', + ok: { + label: t('dialog.yes'), + push: true + }, + cancel: { + label: t('dialog.cancel') + }, + title: 'Generazione PDF' + }).onOk(async () => { + + + $q.loading.show({ + message: 'Caricamento immagini e generazione PDF in corso...' + }) + + try { + + let defaultMargin = 0.1 + if (optcatalogo.value.printable) { + defaultMargin = 0 + } else { + defaultMargin = 0 + } + const unit = optcatalogo.value.areadistampa!.unit + + let myformat = { ...optcatalogo.value.areadistampa!.format } + + const scale = tools.getScale(optcatalogo.value) + + const scalecanvas = optcatalogo.value.areadistampa!.scalecanvas + + if (tools.isObject(myformat) && scale > 0) { + } else { + myformat = [210, 297] + } + + + const formatwidth = (myformat[0] * scale) + const formatheight = (myformat[1] * scale) + + let myfile = getPdfFilename() + + myfile += '_' + formatwidth + '_' + formatheight + '_' + unit + '_scale_' + scale + + myfile += '.pdf' + + + const element = document.getElementById('pdf-content') + const opt = { + margin: [ + optcatalogo.value.printable ? (parseFloat(optcatalogo.value.areadistampa!.margini?.top) || defaultMargin) : defaultMargin, + optcatalogo.value.printable ? (parseFloat(optcatalogo.value.areadistampa!.margini?.left) || defaultMargin) : defaultMargin, + optcatalogo.value.printable ? (parseFloat(optcatalogo.value.areadistampa!.margini?.bottom) || defaultMargin) : defaultMargin, + optcatalogo.value.printable ? (parseFloat(optcatalogo.value.areadistampa!.margini?.right) || defaultMargin) : defaultMargin + ], + filename: myfile, + image: { + type: 'jpeg', + quality: 0.98 + }, + html2canvas: { + scale: scalecanvas, + useCORS: true, + letterRendering: true, + }, + jsPDF: { + unit: unit, + format: [formatwidth, formatheight], + orientation: optcatalogo.value.areadistampa!.orientation, + compress: optcatalogo.value.areadistampa!.compress, + }, + enableLinks: true, + pagebreak: { mode: 'avoid-all', before: '.card-page' } + } + + console.log('opt di stampa', opt) + // a4: [595.28, 841.89] + + await html2pdf().set(opt).from(element).save() + + optcatalogo.value.generazionePDFInCorso = false + optcatalogo.value.areadistampa!.scale = 1 + + $q.loading.hide() + $q.notify({ + color: 'positive', + message: 'PDF generato con successo!', + icon: 'check' + }) + } catch (error) { + $q.loading.hide() + $q.notify({ + color: 'negative', + message: 'Errore nella generazione del PDF', + icon: 'error' + }) + console.error('Errore nella generazione del PDF:', error) + } + }) + } + onMounted(mounted) @@ -1571,6 +1748,9 @@ export default defineComponent({ getCatalogoByMyPage, getReferentiCatalogo, reSortList, + preparePDF, terminaPDF, toggleDebug, + generatePDF, + getPdfFilename, } } }) diff --git a/src/views/ecommerce/catalogo/catalogo.vue b/src/views/ecommerce/catalogo/catalogo.vue index eaefa0c0..afebf5c3 100755 --- a/src/views/ecommerce/catalogo/catalogo.vue +++ b/src/views/ecommerce/catalogo/catalogo.vue @@ -141,6 +141,7 @@ +
+ + + + + +
@@ -760,7 +786,6 @@ -
+ - diff --git a/yarn.lock b/yarn.lock index 9f60defc..b3f9ea34 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2704,6 +2704,266 @@ 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"