{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/views/v2/Gestione/Cimitero.vue?55f3","webpack:///./src/components/aldilapp/shop/shopItem.vue?315a","webpack:///./src/components/aldilapp/shop/shopItem.vue?006e","webpack:///./src/components/aldilapp/shop/shopItem.vue","webpack:///./src/store/index.ts","webpack:///./src/components/aldilapp/detail/simplecontent.vue?1e64","webpack:///./src/services/localfs.service.ts","webpack:///./src/views/TabInfo.vue?7c8d","webpack:///./src/services/data.service.ts","webpack:///./src/services/azure.blobstorage.service.ts","webpack:///./public/assets/logo/logo_app_neg.png","webpack:///./src/views/v2/Gestione/Area.vue?dc56","webpack:///./src/components/aldilapp/shared/ald-logo.vue?cf78","webpack:///./src/components/aldilapp/shared/ald-logo.vue?2ed6","webpack:///./src/components/aldilapp/shared/ald-logo.vue","webpack:///./src/services/utils.service.ts","webpack:///./src/services/api.service.ts","webpack:///./src/views/v2/Gestione/Posto.vue?2809","webpack:///./public/assets/logo/logo-aldilapp-social-512x512.png","webpack:///./src/views/v2/Shop.vue?1bb7","webpack:///./node_modules/@stencil/core/internal/client lazy ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack:///./src/App.vue?3be8","webpack:///./src/components/Modal.vue","webpack:///./src/components/Modal.vue?b73c","webpack:///./src/App.vue?47b3","webpack:///./src/App.vue","webpack:///./src/views/Tabs.vue?951c","webpack:///./src/views/Tabs.vue?cf8d","webpack:///./src/views/Tabs.vue","webpack:///./src/views/v2/Shop.vue?8c7e","webpack:///./src/views/v2/Shop.vue?e220","webpack:///./src/views/v2/Shop.vue","webpack:///./src/views/TabInfo.vue?4200","webpack:///./src/views/TabInfo.vue?b7e0","webpack:///./src/views/TabInfo.vue","webpack:///./src/views/v2/Gestione/Posto.vue?34c3","webpack:///./src/views/v2/Gestione/Posto.vue?e3f5","webpack:///./src/views/v2/Gestione/Posto.vue","webpack:///./src/views/v2/Gestione/Cimitero.vue?9867","webpack:///./src/views/v2/Gestione/Cimitero.vue?194b","webpack:///./src/views/v2/Gestione/Cimitero.vue","webpack:///./src/views/v2/Gestione/Area.vue?9c66","webpack:///./src/components/aldilapp/detail/simplecontent.vue","webpack:///./src/components/aldilapp/detail/simplecontent.vue?3486","webpack:///./src/views/v2/Gestione/Area.vue?fc71","webpack:///./src/views/v2/Gestione/Area.vue","webpack:///./src/router/index.ts","webpack:///./src/main.ts","webpack:///./src/services/imagekit.service.ts","webpack:///./src/components/Modal.vue?50dc","webpack:///./src/components/aldilapp/shared/ald-logo.vue?bde1","webpack:///./src/components/aldilapp/shop/shopItem.vue?2afa","webpack:///./src/services/storage.service.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_hoisted_1","_hoisted_2","class","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","render","_ctx","_cache","$props","$setup","$data","$options","_component_ion_text","_resolveComponent","_component_ion_icon","_component_ion_button","_component_ion_card_content","_component_ion_card","_openBlock","_createBlock","default","_withCtx","_createElementVNode","props","imageUrl","_createVNode","_toDisplayString","title","color","price","_","_createTextVNode","supplierName","onClick","$event","onCheckout","icon","cartOutline","slot","defineComponent","components","IonCard","IonCardHeader","IonCardSubtitle","IonCardTitle","IonContent","IonCardContent","IonIcon","IonButton","IonText","id","Number","require","String","description","supplierLogoImageUrl","setup","store","useStore","router","useRouter","currentDefuntoId","computed","_store$state$current","state","current","anagrafica","cart","lang","onDetail","route","PresentAlertError","async","msg","buttons","alert","alertController","cssClass","header","subHeader","present","role","onDidDismiss","log","isAuth","auth","user","isAnonymous","orderItem","itemId","defuntoId","expirationDate","qty","sellingPrice","loading","loadingController","dispatch","dismiss","_lang$value$Detail$Ca","_lang$value","_lang$value$Detail$Lo","_lang$value2","_lang$value$Detail$Wa","_lang$value3","_lang$value$Detail$Wa2","_lang$value4","text","Detail","CancelButton","handler","LoginButton","WarnAnonimoTitle","WarnAnonimoText","__exports__","axiosRequestConfig","headers","AuthMode","createStore","nominativo","photoURL","errorMsg","SignIn","dbUserId","email","roles","Array","requestUpdateApp","routeAfterSignIn","cimiteri","filter","featuredDefunti","results","currentContentInfo","currentRelatedDefunti","mieiDefunti","items","pageSetting","page","pageSize","otherItemsAvailable","currentSearchText","searchSuccess","searchResultsCount","searchResultMessage","langs","currentLang","appSettings","shop","initAppCompleted","personalInfo","province","subscriptions","locationInterests","gestione","currentCemetery","currentArea","currentPosto","currenPosizioneDefunto","previousPosto","getters","allCimiteri","uid","StorageService","getUserId","currUser","FirebaseAuthentication","getCurrentUser","actions","storedUser","getUser","firebaseUser","signInData","username","password","ApiService","init","process","signIn","platformObj","appVerNumber","appVerCode","os","isPlatform","getPlatforms","join","platform","authResult","_this$state$auth$erro","_this$state$auth","saveUserId","saveUser","Utils","this","baseError","_this$state$auth$erro2","_this$state$auth2","GenerateRandomUniquiId","emailVerified","providerData","phoneNumber","providerId","metadata","refreshToken","tenantId","displayName","commit","unmount401Interceptor","removeHeader","signOut","removeUserId","removeUser","removeAccountView","payload","postData","tel","photoUrl","providerRegistrazione","firebaseUid","response","DataService","addLoginData","setFailAuth","setFilter","birthDate","setHours","dieDate","setResults","setCurrentItem","setRouteAfterSignIn","getDetail","status","info","hasOtherResults","lastContents","ex","addDefunto","appUserId","removeDefunto","search","newState","filterDTO","provinceLocationId","cityLocationId","cemeteryId","surname","firstName","fullName","birthYear","dieYear","favoriteForAppUserId","groupId","pagingDTO","pagedFilter","paging","getPagedDefuntiByFilter","pagesize","totalCount","concat","pagedResult","axios","resp","catch","currentPosition","getAllShopItemsForCemetery","shopState","selectedDefunto","shopItems","orderItems","defunto","newOrder","createdFromAppUserId","order","createCart","createOrder","newContent","publishDate","contentType","fromDescription","content","addContent","getProvicesByCountry","getPersonalInfo","editPersonalInfo","otp","ret","verifyPhone","phoneVerified","deleteAccount","file","uploadUserProfileImage","editAccount","events","getEventSubscriptions","editEventSubscriptions","contentId","deleteContent","originContentInfo","newContens","loadOtherContents","defunti","getReleatedDefunti","city","getFeaturedDefunti","getUserLocationInterests","editUserLocationInterest","cemetery","getCemeteryById","areaId","netStatus","Network","getStatus","connected","area","getCemeteryAreaById","aree","filterdAree","area1","area2","zona1","zona2","latitudine","longitudine","cimiteroId","areaName","isGeolocated","defuntiCount","tipoSepoltura","progressivoIniziale","posizioneProgressivoIniziale","direzioneCensimento","tipoCambioLinea","noteSopralluogo","posti","checkPoints","occupationInfo","resetIndexPerLine","posizionePrimaFila","editCemeteryArea","FileSync","saveAreaItem","deleteAreaItem","deleteArea","postoId","filterdPosti","posto","getCemeteryPostoById","deleteItem","deletePosizioneDefunto","deletePosto","fVoice","editCemeteryPosto","isVuoto","censimentoVoiceUrl","startsWith","audioFile","Filesystem","readFile","path","directory","Directory","Data","base64","mimeType","endsWith","folderpath","index","lastIndexOf","filename","substring","url","AzureBlobStorageClient","uploadBase64","censimentoImageUrl","arr","split","matchs","match","mime","ext","pop","tags","fila","progressivo","Math","floor","Date","now","ImageKitClient","uploadImage","editPosizioneDefunto","deleteFile","_posto$id","_posto$denominazione","_defunto$postoId","_defunto$tipoSepoltur","_defunto$giornoNascit","_defunto$giornoMorte","saveItem","prov","denominazione","colonna","tipoPosto","statoLampadaVotiva","statoIdentificazione","note","posizioneDefunti","currentPostoFilter","_i$fila","_posto$fila","_i$colonna","_posto$colonna","map","indexOf","provDefunto","aeaId","positionName","userRegistrante","registrationDate","cognome","nome","dataNascita","annoNascita","meseNascita","giornoNascita","dataMorte","annoMorte","meseMorte","giornoMorte","hasInnacurateDates","_posto$id2","_posto$denominazione2","_defunto$postoId2","_defunto$tipoSepoltur2","_defunto$giornoNascit2","_defunto$giornoMorte2","_i$fila2","_posto$fila2","_i$colonna2","_posto$colonna2","resetCart","updateCheckoutData","selectLang","resetUser","updateInitAppCompleted","mutations","setAuth","setUserInfo","appUser","completeName","setRequestUpdate","update","reduce","sum","setSearchError","setMieiDefunti","setLang","currentPosizioneDefunto","setAppSetting","lastIosVerCode","lastVerCodeIos","lastIosVerNum","lastVerNumIos","lastAndroidVerCode","lastVerCodeAndroid","lastAndroidVerNum","lastVerNumAndroid","iosAppId","appleAppId","androidAppId","forceUpdete","setShopStatus","setCart","setCheckoutData","forEach","oi","expireDate","fromContent","unshift","addCandle","activeCandlesCount","availsableServices","addCandleAvailable","setMieiDefuntiState","setInitAppCompleted","resetState","userLocationInterests","setProvinces","setPersonalInfo","setSubscriptions","removeContent","resetContents","setCurrentContentInfo","addContents","setCurrentRelatedDefunti","setFeaturedDefunti","setUserLocationInterests","setGestioneCurrentCemetery","setGestioneCurrentCemeteryArea","setGestioneCurrentCemeteryPosto","pushCemeteryPostoDTO","filterd","_i$fila3","_payload$fila","_i$colonna3","_payload$colonna","removePosto","removeArea","a","removePosizioneDefunto","postoFilter","AldilappFileSyncService","filepath","getPostoBasePath","getAreaBasePath","writeFile","recursive","uri","encoding","Encoding","UTF8","basepath","obj","json","JSON","stringify","saveJsonFile","rmdir","makeDir","readdir","files","mkdir","getFileExtension","nKO","fData","fileData","parse","fImage","res","remoteFolder","lastResult","country","endpoint","toLowerCase","provinceName","locationName","address","requestData","method","customRequest","positionId","cartData","orderData","relation","loginData","phone","formData","FormData","append","config","bio","toString","subject","lcationName","dotenv","AzureBlobStorageService","constructor","_defineProperty","connectionString","blobServiceClient","BlobServiceClient","folder","containerName","containerClient","getContainerClient","blobName","blobClient","getBlockBlobClient","buffer","Buffer","from","byteLength","blockResponse","upload","blobHTTPHeaders","blobContentType","_component_ion_img","alt","image","IonImg","random","ApiError","super","_requestInterceptor","_401interceptor","_400interceptor","baseURL","defaults","setHeader","token","getToken","common","Username","Password","Email","errors","filteredErrors","signup","saveToken","saveRefreshToken","mount401Interceptor","signupData","Token","RefreshToken","getRefreshToken","resource","post","put","delete","mountRequestInterceptor","interceptors","use","mount400Interceptor","includes","eject","unmount400Interceptor","webpackEmptyAsyncContext","req","keys","_component_ion_title","_component_ion_toolbar","_component_ion_header","_component_ion_thumbnail","_component_ion_item","_component_ion_label","_component_ion_menu_toggle","_component_ion_select_option","_component_ion_select","_component_ion_list","_component_ion_content","_component_ion_menu","_component_ion_router_outlet","_component_ion_split_pane","_component_ion_app","when","side","menuId","Side","Title","lines","referrerpolicy","routerDirection","openAccount","personOutline","_createCommentVNode","openNotifications","notificationsOutline","languageOutline","Lingua","onIonChange","onLangChange","modelValue","it","en","es","openPrivacyModal","documentLockOutline","button","logout","logOutOutline","Logout","LoginOrRegister","translucent","_component_ion_buttons","innerHTML","IonHeader","IonToolbar","IonButtons","methods","modalController","IonApp","IonRouterOutlet","IonTitle","IonItem","IonList","IonMenu","IonThumbnail","IonLabel","IonSelect","IonSelectOption","IonMenuToggle","IonSplitPane","Modal","useRoute","privacyPolicyContent","ref","getCurrentUserId","_store$state$auth$rou","_store$state$auth","isAdmin","currLang","getLang","saveLang","addListners","FirebaseMessaging","checkPermissions","receive","removeAllListeners","addListener","notification","initApp","SplashScreen","hide","vernum","vercode","replaceAll","lastVerCode","appName","App","AggiornaButton","NativeMarket","openStoreListing","appId","AggiornaTitle","AggiornaText","fecthPrivacyPolicy","feedUrl","rendered","modal","component","swipeToClose","showBackdrop","componentProps","admin","home","onMounted","_store$state$auth$nom","_store$state$auth2","Auth","Anonimo","_store$state$auth$pho","_store$state$auth3","_store$state$auth$ema","_store$state$auth4","cogOutline","homeOutline","allLangs","currentUser","_component_ion_tab_button","_component_ion_tab_bar","_component_ion_tabs","_component_ion_page","tab","Tabs","TitleTab1","openTab","heart","TitleTab2","TitleTabAccount","informationCircleOutline","TitleTab4","IonTabs","IonTabBar","IonTabButton","IonPage","forceReload","newUrl","ellipse","square","triangle","roseOutline","_component_ion_back_button","_component_ion_menu_button","_component_ald_logo","_component_ion_loading","_component_ShopItem","isLoading","InCaricamento","_createElementBlock","_Fragment","_renderList","supplier","IonMenuButton","IonBackButton","IonLoading","aldLogo","IonAvatar","ShopItem","_store$state$shop$sho","_store$state$shop","setIsLoading","loadShopItems","_withScopeId","_pushScopeId","_popScopeId","_component_ion_card_title","_component_ion_card_header","fullscreen","Info","Html1","version","style","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_62","_hoisted_63","_hoisted_64","_hoisted_65","_hoisted_66","_hoisted_67","_hoisted_68","_hoisted_69","_component_router_view","_component_ion_toggle","_component_ion_col","_component_ion_row","_component_InputNumber","_component_ion_input","_component_SelectButton","_component_Marker","_component_GoogleMap","_component_ion_textarea","_component_ion_toast","_component_ion_footer","routerKey","_ctx$area","cimitero","autoMode","areaLines","areaColumns","_ctx$posti$filter$0$p","_normalizeClass","parseInt","x","nomeCompleto","size","inputId","showButtons","buttonLayout","step","min","inputClass","decrementButtonClass","incrementButtonClass","incrementButtonIcon","decrementButtonIcon","incrementButtonProps","decrementButtonProps","currentColonna","interface","options","indetificazioneOptions","optionLabel","optionValue","lampadaOptions","recorderEnable","recording","startRecording","micOutline","stopRecording","micOffOutline","globeSharp","displayOnlyName","plaing","fill","play","playFile","deletingAudio","trashOutline","deleteAudioFile","onChangePhoto","cameraOutline","autocomplete","calculateRandomString","position","enterkeyhint","locationSharp","disabled","localizing","geoErr","mapVisible","mapApiKey","zoom","streetViewControl","markerPosition","visible","markerVisible","draggable","onDragend","dragend","startGeo","expand","endGeo","pencilSharp","label","maxlength","counter","isToastOpen","toastMessage","duration","toastColor","toastHeader","setIsToastOpen","changed","ending","editMode","end","chevronBack","back","saving","next","chevronForward","deleting","IonChip","IonToast","IonTextarea","Textarea","Button","RouterView","IonModal","IonInput","InputNumber","IonFooter","IonToggle","IonCol","IonRow","IonNote","SelectButton","InputMask","GoogleMap","Marker","currentUserId","devId","filaRef","colonnaRef","initialImage","positionOpts","enableHighAccuracy","maxTimeWatch","mapRef","markRef","lat","lng","api","ultimaFilaMax","ultimaColonnaMax","_area$value","item","max","sort","b","_area$value2","colonne","initGeo","Geolocation","location","requestPermissions","watch","newValue","oldValue","f","_posto$value","_posto$value2","_posto$value3","initPosto","verifyChekPoints","initWatch","_posto$value$fila","_posto$value4","_posto$value5","_mapRef$value","ready","_mapRef$value2","_mapRef$value3","_posto$value6","_posto$value7","center","setCenter","setMapTypeId","MapTypeId","SATELLITE","_posto$value$fila2","makeId","characters","charactersLength","charAt","makeFileId","today","toISOString","date","time","initAudioRecorder","VoiceRecorder","canDeviceVoiceRecord","requestAudioRecordingPermission","recordDataBase64","recordData","extension","saveAudioFile","audio","Audio","oncanplaythrough","onended","load","watchId","watchPosition","coords","latitude","longitude","accuracy","marker","setPosition","setVisible","panTo","clearOptions","clearWatch","latLng","calcolaPosizioneIniziale","ultimo","filaInvertita","colonnaInvertita","onIonViewDidEnter","_area$value$tipoSepol","_defunto$value$censim","_defunto$value$censim2","params","_posto$value8","_posto$value9","dfilter","_d$hasInnacurateDates","_d$hasInnacurateDates2","_d$hasInnacurateDates3","_d$hasInnacurateDates4","getFullYear","getMonth","getDate","_area$value3","_area$value4","anchor","querySelector","scrollIntoView","_id$value","onBeforeUnmount","saveCurrent","timestamp","getTime","replace","_area$value5","_area$value6","_posto$value10","_defunto$value","_area$value7","filaChange","blur","colonnaChange","_foto$dataUrl","permissions","Camera","camera","photos","foto","getPhoto","quality","allowEditing","resultType","CameraResultType","DataUrl","saveToGallery","source","CameraSource","dataUrl","chars","randomString","heartOutline","locateOutline","closeCircle","_component_ion_searchbar","arrowBackSharp","_ctx$cimitero","itemsToSync","isConnected","startSync","_ctx$cimitero$aree","addNuovo","placeholder","searchText","onlyToGeo","toUpperCase","_ctx$cimitero$aree2","detail","gotoDetailArea","saveEnable","saveAnagrafica","IonSearchbar","loadCimitero","refreshItemsToSync","getNumAreeToSync","syncCemetery","_hoisted_70","_hoisted_71","_hoisted_72","_hoisted_73","_hoisted_74","_hoisted_75","_hoisted_76","_hoisted_77","_hoisted_78","_hoisted_79","_hoisted_80","_hoisted_81","_hoisted_82","_hoisted_83","_hoisted_84","_hoisted_85","_hoisted_86","_hoisted_87","_hoisted_88","_hoisted_89","_hoisted_90","_hoisted_91","_hoisted_92","_hoisted_93","_hoisted_94","_hoisted_95","_hoisted_96","_hoisted_97","_hoisted_98","_hoisted_99","_hoisted_100","_component_ion_modal","calcNewName","inputmode","ultimoprog","_ctx$area$progressivo","_ctx$area$progressivo2","_c$fila","deleteCheckpoint","trashSharp","editCheckpoint","chevronForwardSharp","addNewCheckpoint","addSharp","startCensimento","filterFila","filterColonna","postiToShow","displayData","playSharp","idPostoPlaing","stopAudio","stopSharp","flameSharp","languageSharp","isOpenModal","breakpoints","newCheckpoint","shape","saveCheckpoint","createdFrom","SimpleContent","Set","_item$fila$toString","_item$fila","_item$colonna","_a$fila","_b$fila","_area$value$area","_area$value$area2","_area$value$zona","_area$value$zona2","getNumFileToSyncInArea","isInnacurate","toLocaleDateString","_area$value$posizione","param","rewriteLinkedDefuntiAreaFields","_newCheckpoint$value$","filtered","_area$value8","syncArea","goPosto","onplay","onpause","pause","guard2","to","fullPath","routes","redirect","children","beforeEnter","alias","Shop","TabInfo","GestioneCimitero","GestioneArea","GestionePosto","createRouter","history","createWebHistory","pagePath","firebaseConfig","apiKey","authDomain","projectId","storageBucket","messagingSenderId","measurementId","firebaseApp","initializeApp","db","getFirestore","getAuth","languageCode","app","createApp","IonicVue","PrimeVue","locale","contains","notContains","equals","notEquals","noFilter","lt","lte","gt","gte","dateIs","dateIsNot","dateBefore","dateAfter","clear","matchAll","matchAny","addRule","removeRule","accept","choose","cancel","dayNames","dayNamesShort","dayNamesMin","monthNames","monthNamesShort","weekHeader","firstDayOfWeek","dateFormat","weak","medium","strong","passwordPrompt","emptyFilterMessage","emptyMessage","isReady","mount","ImageKitService","_process$env$VUE_APP_","client","ImageKit","publicKey","urlEndpoint","authenticationEndpoint","fileName","useUniqueFileName","LANG","USER_ID","USER_OBJ","TOKEN_KEY","REFRESH_TOKEN_KEY","ACCOUNT_VIEW","localStorage","getItem","userid","setItem","removeItem","accessToken","removeToken","removeRefreshToken","getAccountView","saveAccountView"],"mappings":"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","file":"js/app.a94fd183.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-10a07d28\":\"ba69fb8a\",\"chunk-466ceb3a\":\"069d2585\",\"chunk-2d0a4885\":\"a86f5b87\",\"chunk-2d0abc10\":\"72cf49f6\",\"chunk-2d0afaaa\":\"7ecb4f6b\",\"chunk-2d0b33bc\":\"bf74bc2b\",\"chunk-2d0bd598\":\"dc058744\",\"chunk-2d0c8871\":\"ef9bec4d\",\"chunk-2d0d3c84\":\"942fedd8\",\"chunk-2d0d5fb5\":\"aefe9ad3\",\"chunk-2d0d6d65\":\"4bc2dcbf\",\"chunk-2d0d78b2\":\"9af03cdb\",\"chunk-2d0e9381\":\"00aadc45\",\"chunk-2d2080c7\":\"dc4cec7f\",\"chunk-2d208e4e\":\"07eef6b7\",\"chunk-2d212be3\":\"2b736999\",\"chunk-2d216786\":\"558bb5ce\",\"chunk-2d21d677\":\"dedfb7ae\",\"chunk-2d222064\":\"5d02d5c6\",\"chunk-2d230c96\":\"6b372129\",\"chunk-2d238653\":\"d8552ee6\",\"chunk-2ffd9c8d\":\"73fc0b27\",\"chunk-34549569\":\"99c6aefc\",\"chunk-52316775\":\"e2a8ba12\",\"chunk-5b23a5be\":\"60f29d92\",\"chunk-63e72e09\":\"e7b7a461\",\"chunk-6ac2c655\":\"a106411b\",\"chunk-29da3972\":\"a756408c\",\"chunk-878f2efe\":\"ed9d4953\",\"chunk-b3dd7bf8\":\"a91641fc\",\"chunk-1ec52acf\":\"a55b7698\",\"chunk-22324899\":\"d6af0ee2\",\"chunk-3b8285c8\":\"07f7bf41\",\"chunk-a5352d82\":\"b916832f\",\"chunk-a953c646\":\"d976a269\",\"chunk-b5da73e8\":\"bf51e62f\",\"chunk-cfff1dc2\":\"f26277f9\",\"chunk-2d0cb6d4\":\"cf22014e\",\"chunk-2d0f0050\":\"bca2fe4f\",\"chunk-2d0c1783\":\"040d33fa\",\"chunk-c8bcab9a\":\"a4e250dd\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-466ceb3a\":1,\"chunk-2ffd9c8d\":1,\"chunk-34549569\":1,\"chunk-52316775\":1,\"chunk-5b23a5be\":1,\"chunk-63e72e09\":1,\"chunk-29da3972\":1,\"chunk-878f2efe\":1,\"chunk-b3dd7bf8\":1,\"chunk-22324899\":1,\"chunk-3b8285c8\":1,\"chunk-a5352d82\":1,\"chunk-a953c646\":1,\"chunk-cfff1dc2\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-10a07d28\":\"31d6cfe0\",\"chunk-466ceb3a\":\"0c246b63\",\"chunk-2d0a4885\":\"31d6cfe0\",\"chunk-2d0abc10\":\"31d6cfe0\",\"chunk-2d0afaaa\":\"31d6cfe0\",\"chunk-2d0b33bc\":\"31d6cfe0\",\"chunk-2d0bd598\":\"31d6cfe0\",\"chunk-2d0c8871\":\"31d6cfe0\",\"chunk-2d0d3c84\":\"31d6cfe0\",\"chunk-2d0d5fb5\":\"31d6cfe0\",\"chunk-2d0d6d65\":\"31d6cfe0\",\"chunk-2d0d78b2\":\"31d6cfe0\",\"chunk-2d0e9381\":\"31d6cfe0\",\"chunk-2d2080c7\":\"31d6cfe0\",\"chunk-2d208e4e\":\"31d6cfe0\",\"chunk-2d212be3\":\"31d6cfe0\",\"chunk-2d216786\":\"31d6cfe0\",\"chunk-2d21d677\":\"31d6cfe0\",\"chunk-2d222064\":\"31d6cfe0\",\"chunk-2d230c96\":\"31d6cfe0\",\"chunk-2d238653\":\"31d6cfe0\",\"chunk-2ffd9c8d\":\"93d1dbc9\",\"chunk-34549569\":\"5c1fd0b6\",\"chunk-52316775\":\"eb4d8785\",\"chunk-5b23a5be\":\"2d406641\",\"chunk-63e72e09\":\"ed23133d\",\"chunk-6ac2c655\":\"31d6cfe0\",\"chunk-29da3972\":\"c615f600\",\"chunk-878f2efe\":\"4516b5b7\",\"chunk-b3dd7bf8\":\"ed23133d\",\"chunk-1ec52acf\":\"31d6cfe0\",\"chunk-22324899\":\"8dc5bf29\",\"chunk-3b8285c8\":\"f7e2d399\",\"chunk-a5352d82\":\"4516b5b7\",\"chunk-a953c646\":\"ed23133d\",\"chunk-b5da73e8\":\"31d6cfe0\",\"chunk-cfff1dc2\":\"2ca0cd92\",\"chunk-2d0cb6d4\":\"31d6cfe0\",\"chunk-2d0f0050\":\"31d6cfe0\",\"chunk-2d0c1783\":\"31d6cfe0\",\"chunk-c8bcab9a\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Cimitero.vue?vue&type=style&index=0&id=67b73e72&scoped=true&lang=css\"","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"src\"]\nconst _hoisted_2 = { class: \"row\" }\nconst _hoisted_3 = { class: \"col\" }\nconst _hoisted_4 = { class: \"title\" }\nconst _hoisted_5 = { class: \"col-auto\" }\nconst _hoisted_6 = { class: \"price text-end\" }\nconst _hoisted_7 = { class: \"supplier\" }\nconst _hoisted_8 = { class: \"py-2 text-center\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ion_text = _resolveComponent(\"ion-text\")!\n const _component_ion_icon = _resolveComponent(\"ion-icon\")!\n const _component_ion_button = _resolveComponent(\"ion-button\")!\n const _component_ion_card_content = _resolveComponent(\"ion-card-content\")!\n const _component_ion_card = _resolveComponent(\"ion-card\")!\n\n return (_openBlock(), _createBlock(_component_ion_card, { class: \"my-card\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n src: _ctx.props.imageUrl\n }, null, 8, _hoisted_1),\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.props.title), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, [\n _createVNode(_component_ion_text, { color: \"primary\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", null, _toDisplayString(_ctx.props.price) + \" €\", 1)\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createTextVNode(\" Fornito da \"),\n _createElementVNode(\"b\", null, _toDisplayString(_ctx.props.supplierName), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_ion_button, {\n color: \"primary\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onCheckout()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n icon: _ctx.cartOutline,\n slot: \"start\"\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" SELEZIONA \")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}","\r\nimport { useRouter } from \"vue-router\";\r\nimport { computed, defineComponent, } from \"vue\";\r\nimport {\r\n IonCard,\r\n IonCardHeader,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonContent,\r\n IonIcon,\r\n IonCardContent,\r\n IonButton,\r\n IonText, alertController\r\n} from \"@ionic/vue\";\r\nimport { cartOutline } from \"ionicons/icons\";\r\nimport { useStore } from \"vuex\";\r\nimport { key } from \"@/store\";\r\nimport { NewOrderItemDTO } from \"@/models\";\r\nimport {\r\n loadingController\r\n } from \"@ionic/vue\";\r\n\r\nexport default defineComponent({\r\n name: \"ShopItem\",\r\n components: {\r\n IonCard,\r\n IonCardHeader,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonContent,\r\n IonCardContent,\r\n IonIcon,\r\n IonButton,\r\n IonText\r\n },\r\n props: {\r\n id: {\r\n type: Number,\r\n require: true\r\n },\r\n imageUrl: {\r\n type: String,\r\n default: null,\r\n },\r\n title: {\r\n type: String,\r\n default: null,\r\n },\r\n description: {\r\n type: String,\r\n default: null,\r\n },\r\n supplierName: {\r\n type: String,\r\n default: \"\",\r\n },\r\n supplierLogoImageUrl: {\r\n type: String,\r\n default: null,\r\n },\r\n price: {\r\n type: Number,\r\n require: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore(key);\r\n const router = useRouter();\r\n const currentDefuntoId = computed(() => store.state.current?.anagrafica.id );\r\n const cart = computed(() => store.state.cart );\r\n const lang = computed(() => store.state.lang);\r\n \r\n const onDetail = () => {\r\n const route = \"/tabs/shop/item/\" + props.id;\r\n router.push(route);\r\n };\r\n\r\n const PresentAlertError = async (\r\n title: string,\r\n msg: string,\r\n buttons: Array\r\n ) => {\r\n const alert = await alertController.create({\r\n cssClass: \"my-alert-class\",\r\n header: title,\r\n subHeader: \"\",\r\n message: msg,\r\n buttons,\r\n });\r\n await alert.present();\r\n const { role } = await alert.onDidDismiss();\r\n console.log(\"onDidDismiss resolved with role\", role);\r\n };\r\n\r\n const isAuth = computed(() => {\r\n return (\r\n store.state.auth &&\r\n store.state.auth.user &&\r\n !store.state.auth.user.isAnonymous\r\n );\r\n });\r\n\r\n const onCheckout = async () => {\r\n console.log('Click Acquista');\r\n if (isAuth.value){\r\n const orderItem: NewOrderItemDTO = { \r\n itemId: props.id!,\r\n defuntoId: currentDefuntoId.value!,\r\n expirationDate: null,\r\n qty: 1,\r\n sellingPrice: props.price! \r\n }\r\n const loading = await loadingController.create({\r\n message:'Aggiornamento..'\r\n });\r\n await loading.present();\r\n await store.dispatch('addItemToCart', orderItem); \r\n await loading.dismiss();\r\n console.log('Cart:', cart.value);\r\n const route = \"/tabs/shop/checkout\";\r\n router.push(route);\r\n }\r\n else{\r\n const buttons: Array = [\r\n {\r\n text: lang.value?.Detail.CancelButton ?? \"Annulla\",\r\n role: \"cancel\",\r\n handler: () => {\r\n console.log(\"Cancel clicked\");\r\n },\r\n },\r\n {\r\n text: lang.value?.Detail.LoginButton ?? \"Accedi\",\r\n handler: () => {\r\n router.push(\"/login\");\r\n },\r\n },\r\n ];\r\n PresentAlertError(\r\n lang.value?.Detail.WarnAnonimoTitle ?? \"ATTENZIONE!\",\r\n lang.value?.Detail.WarnAnonimoText ??\r\n \"Questa funzione è abilitata solo per gli utenti registrati.\",\r\n buttons\r\n );\r\n }\r\n };\r\n\r\n return {\r\n props,\r\n onDetail,\r\n onCheckout,\r\n cartOutline\r\n };\r\n }\r\n})\r\n","import { render } from \"./shopItem.vue?vue&type=template&id=64712e3f&ts=true\"\nimport script from \"./shopItem.vue?vue&type=script&lang=ts\"\nexport * from \"./shopItem.vue?vue&type=script&lang=ts\"\n\nimport \"./shopItem.vue?vue&type=style&index=0&id=64712e3f&lang=css\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { getCurrentInstance, InjectionKey, toHandlerKey, toRef } from 'vue';\r\nimport { createStore, Store } from 'vuex';\r\nimport router from '@/router';\r\nimport axios, { AxiosRequestConfig } from 'axios';\r\nimport firebase from 'firebase/compat/app';\r\nimport 'firebase/compat/auth';\r\nimport { CemeteryDTO, LocationDTO, DetailItemDTO, ShopItemDTO, NewOrderItemDTO, NewOrderDTO, OrderDTO, OrderItemDTO, NewContetDTO, ContentDTO, NewRelationAppUserDefuntoDTO, RemoveRelationAppUserDefuntoDTO, AppUserLoginDTO, UserDTO, CemeteryAreaEditCommandDTO,CemeteryPostoDTO,\r\n SearchFilterDTO, SearchResultItemDTO, PagingSettingDTO, PagedSearchFilterDTO, PagedResultDTO, AppUserPersonalInfoDTO, EditAppUserPersonalInfoDTO, UserSubscriptionDTO, EditSubscriptionsDTO, UserLoginRequestDTO, AppUserLocationInterestDTO, CemeteryAreaDTO, PosizioneDefuntoDTO, CemeteryPostoEditCommandDTO, EditPosizioneDefuntoDTO } from '@/models';\r\nimport { DataService } from '@/services/data.service';\r\nimport Utils from '@/services/utils.service';\r\nimport {ApiService} from '@/services/api.service';\r\nimport {StorageService} from '@/services/storage.service';\r\nimport { LocalDB } from '@/services/localdb.service'\r\nimport { User } from \"firebase/auth\";\r\nimport {\r\n isPlatform, getPlatforms, IonFab\r\n } from \"@ionic/vue\";\r\n//import { FirebaseAuthentication } from '@robingenz/capacitor-firebase-authentication';\r\nimport { FirebaseAuthentication } from '@capacitor-firebase/authentication';\r\nimport { State } from '@ionic/core/dist/types/stencil-public-runtime';\r\nimport { ImageKitClient } from '@/services/imagekit.service';\r\nimport { Filesystem, Directory, Encoding } from '@capacitor/filesystem';\r\nimport { Network } from '@capacitor/network';\r\nimport { FileSync } from '@/services/localfs.service';\r\nimport {AzureBlobStorageClient} from '@/services/azure.blobstorage.service';\r\n\r\nconst axiosRequestConfig: AxiosRequestConfig = {\r\n headers: { \"Access-Control-Allow-Origin\": \"*\" }\r\n};\r\n// define your typings for the store state\r\nexport enum AuthMode {\r\n SignIn,\r\n SignUp,\r\n}\r\n\r\nexport interface Authentication {\r\n user: firebase.User | null;\r\n nominativo: string | null;\r\n photoURL: string | null;\r\n isAuth: boolean;\r\n errorMsg: string;\r\n mode: AuthMode;\r\n dbUserId: number | null;\r\n roles: string[];\r\n email: string | null;\r\n requestUpdateApp: boolean;\r\n routeAfterSignIn: string | null;\r\n}\r\n\r\nexport interface SearchFilter {\r\n name: string | null;\r\n surname: string | null;\r\n fullname: string | null;\r\n province: LocationDTO | null;\r\n city: LocationDTO | null;\r\n cemetery: CemeteryDTO | null;\r\n dieDate: Date | null;\r\n birthDate: Date | null;\r\n dieYear: number | null;\r\n birthYear: number | null;\r\n group: number | null;\r\n}\r\n\r\nexport interface DefuntoItem {\r\n id: number;\r\n defuntoName: string;\r\n defuntoSurname: string;\r\n dataNascita: Date;\r\n dataMorte: Date;\r\n tipoManufatto: string;\r\n posizioneAttuale: Posizione;\r\n}\r\n\r\nexport interface Posizione {\r\n cimiteroId: number;\r\n cimiteroNome: string;\r\n cimiteroComune: string;\r\n cimiteroAddress: string;\r\n cimiteroProvince: string;\r\n area1: string;\r\n area2: string;\r\n zona1: string;\r\n zona2: string;\r\n zona3: string;\r\n latitudine: number;\r\n longitudine: number;\r\n tipoPosizione: string;\r\n}\r\n\r\nexport interface ResultItem {\r\n cimiteroNome: string;\r\n defunti: Array;\r\n}\r\n\r\nexport interface CurrentContentInfo\r\n{\r\n page: number;\r\n pageSize: number;\r\n hasOtherResults: boolean; \r\n}\r\n\r\nexport interface GestioneState{\r\n currentCemetery: CemeteryDTO | null;\r\n currentArea: CemeteryAreaDTO | null;\r\n currentPosto: CemeteryPostoDTO | null;\r\n currenPosizioneDefunto: PosizioneDefuntoDTO | null;\r\n previousPosto: CemeteryPostoDTO | null;\r\n}\r\n\r\nexport interface State {\r\n auth: Authentication | null;\r\n filter: SearchFilter | null;\r\n featuredDefunti: SearchResultItemDTO[];\r\n results: Array;\r\n searchSuccess: boolean;\r\n searchResultsCount: number;\r\n searchResultMessage: string;\r\n current: DetailItemDTO | null;\r\n currentContentInfo: CurrentContentInfo | null;\r\n currentRelatedDefunti: SearchResultItemDTO[];\r\n mieiDefunti: MieiDefuntiTabStatus;\r\n cimiteri: Array;\r\n currentLang: string;\r\n langs: Array;\r\n lang: any;\r\n appSettings: AppSetting | null;\r\n shop: ShopState | null;\r\n cart: OrderDTO | null;\r\n initAppCompleted: boolean | null;\r\n personalInfo: AppUserPersonalInfoDTO | null;\r\n province: Array | null;\r\n subscriptions: Array | null;\r\n locationInterests: Array;\r\n gestione: GestioneState;\r\n}\r\n\r\nexport interface Platform {\r\n os: string;\r\n appVerNumber: string;\r\n appVerCode: string;\r\n}\r\n\r\nexport interface AppSetting {\r\n lastIosVerCode: string;\r\n lastIosVerNum: string;\r\n lastAndroidVerCode: string;\r\n lastAndroidVerNum: string;\r\n iosAppId: string;\r\n androidAppId: string;\r\n forceUpdete: boolean;\r\n}\r\n\r\n\r\nexport interface ShopState {\r\n selectedDefunto: DetailItemDTO | null;\r\n shopItems: ShopItemDTO[];\r\n}\r\n\r\nexport interface MieiDefuntiTabStatus {\r\n items: SearchResultItemDTO[];\r\n otherItemsAvailable: boolean;\r\n pageSetting: PagingSettingDTO;\r\n currentSearchText: string | null;\r\n}\r\n\r\n\r\n\r\n// define injection key\r\nexport const key: InjectionKey> = Symbol()\r\n\r\nexport const store = createStore({\r\n state: {\r\n auth: {\r\n user: null,\r\n nominativo: null,\r\n photoURL: null,\r\n isAuth: false,\r\n errorMsg: '',\r\n mode: AuthMode.SignIn,\r\n dbUserId: null,\r\n email:null,\r\n roles: new Array(),\r\n requestUpdateApp: false,\r\n routeAfterSignIn: null\r\n },\r\n cimiteri: [],\r\n filter: null,\r\n featuredDefunti: [],\r\n results: [],\r\n current: null,\r\n currentContentInfo: null,\r\n currentRelatedDefunti: [],\r\n mieiDefunti: {\r\n items: new Array(),\r\n pageSetting: { \r\n page:0, \r\n pageSize:30 \r\n },\r\n otherItemsAvailable: true,\r\n currentSearchText: null\r\n },\r\n searchSuccess: false,\r\n searchResultsCount: 0,\r\n searchResultMessage: \"\",\r\n langs: [\"it\", \"en\"],\r\n currentLang: \"it\",\r\n lang: null,\r\n appSettings: null,\r\n shop:null,\r\n cart:null,\r\n initAppCompleted: null,\r\n personalInfo: null,\r\n province: null,\r\n subscriptions: null,\r\n locationInterests: new Array(),\r\n gestione: {\r\n currentCemetery: null,\r\n currentArea: null,\r\n currentPosto: null,\r\n currenPosizioneDefunto: null,\r\n previousPosto: null\r\n }\r\n },\r\n\r\n getters: {\r\n allCimiteri(state) {\r\n return state.cimiteri;\r\n },\r\n async getCurrentUserId(state) {\r\n const uid = StorageService.getUserId();\r\n if (!uid)\r\n return null;\r\n return uid;\r\n },\r\n async getCurrentUser(state) {\r\n const currUser = await FirebaseAuthentication.getCurrentUser();\r\n if (!currUser || !currUser.user)\r\n return null; \r\n\r\n return currUser.user;\r\n }\r\n },\r\n // ACTIONS (asynchronous)\r\n actions: {\r\n async executeLogin ({dispatch}, user: User | undefined) { \r\n //api signin \r\n try\r\n {\r\n console.log('executeLogin', user);\r\n\r\n const storedUser: User | undefined = await StorageService.getUser(); \r\n console.log('Stored user:', storedUser);\r\n if (storedUser === undefined && user === undefined){\r\n dispatch(\"executeLogout\");\r\n return;\r\n }\r\n const firebaseUser = user != undefined ? user! : storedUser!;\r\n\r\n const signInData: UserLoginRequestDTO = {username: firebaseUser.uid, password: firebaseUser.uid, email: firebaseUser.email};\r\n ApiService.init(process.env.VUE_APP_ROOT_API);\r\n await ApiService.signIn(signInData);\r\n console.log('API Login concluso con successo');\r\n\r\n const platformObj: Platform = {\r\n appVerNumber: process.env.VUE_APP_VERNUM!,\r\n appVerCode: process.env.VUE_APP_VERCODE!,\r\n os: isPlatform('ios') ? \"ios\" : isPlatform('android') ? \"android\" : getPlatforms().join()\r\n };\r\n\r\n /*const authResult = await dispatch(\"setAuth\", { user: firebaseUser, platform: platformObj }); \r\n if (!authResult)\r\n Utils.PresentAlertError(\"Errore di autenticazione\",this.state.auth?.errorMsg ?? 'Registrazione login fallita', [\"OK\"] );\r\n console.log('Registrazione login ok');\r\n\r\n StorageService.saveUserId(firebaseUser.uid);\r\n StorageService.saveUser(firebaseUser);\r\n\r\n //operazioni successive all'autenticazione\r\n await dispatch('loadUserLocationInterests');*/\r\n dispatch(\"setAuth\", { user: firebaseUser, platform: platformObj }).then(authResult => {\r\n if (!authResult)\r\n {\r\n Utils.PresentAlertError(\"Errore di autenticazione\",this.state.auth?.errorMsg ?? 'Registrazione login fallita', [\"OK\"] );\r\n return;\r\n }\r\n console.log('Registrazione login ok');\r\n StorageService.saveUserId(firebaseUser.uid);\r\n StorageService.saveUser(firebaseUser);\r\n dispatch('loadUserLocationInterests').then(() => console.log('LocationInterest caricati con sucesso'));\r\n });\r\n } \r\n catch(err: any){\r\n console.log('API Login fallito', err.baseError); \r\n Utils.PresentAlertError(\"Errore di autenticazione\",err.baseError, [\"OK\"] );\r\n } \r\n },\r\n\r\n async executeAnonymousLogin ( {dispatch}) \r\n { \r\n //api signin \r\n try { \r\n let storedUser: any | undefined = await StorageService.getUser(); \r\n let uid = StorageService.getUserId();\r\n \r\n if (uid && !storedUser){\r\n dispatch(\"executeLogout\");\r\n return;\r\n }\r\n \r\n if (!storedUser){\r\n console.log('executeAnonymousLogin storedUser vuoto!');\r\n uid = \"user\" + Utils.GenerateRandomUniquiId(); \r\n storedUser = {\r\n emailVerified: false, \r\n email: null, \r\n isAnonymous:true, \r\n providerData: [], \r\n photoURL:null, \r\n phoneNumber:null, \r\n providerId:'aldilapp', \r\n metadata:{}, \r\n refreshToken:'', \r\n tenantId:null, \r\n uid:uid, \r\n displayName:'Anonimo', \r\n };\r\n console.log('executeAnonymousLogin creato nuovo storedUser:', storedUser)\r\n }\r\n \r\n\r\n const signInData = {username: storedUser.uid, password: storedUser.uid, email: storedUser.email};\r\n ApiService.init(process.env.VUE_APP_ROOT_API);\r\n await ApiService.signIn(signInData);\r\n console.log('API Login concluso con successo');\r\n\r\n const platformObj: Platform = {\r\n appVerNumber: process.env.VUE_APP_VERNUM!,\r\n appVerCode: process.env.VUE_APP_VERCODE!,\r\n os: isPlatform('ios') ? \"ios\" : isPlatform('android') ? \"android\" : getPlatforms().join()\r\n };\r\n \r\n const authResult = await dispatch(\"setAuth\", { user: storedUser, platform: platformObj }); \r\n if (!authResult)\r\n Utils.PresentAlertError(\"Errore di autenticazione\",this.state.auth?.errorMsg ?? 'Registrazione login fallita', [\"OK\"] );\r\n console.log('Registrazione login ok');\r\n\r\n StorageService.saveUserId(storedUser.uid);\r\n StorageService.saveUser(storedUser);\r\n } \r\n catch(err: any)\r\n {\r\n console.log('API Login fallito', err.baseError); \r\n Utils.PresentAlertError(\"Errore di autenticazione\",err.baseError, [\"OK\"] );\r\n } \r\n },\r\n\r\n async executeLogout ( {commit}) { \r\n ApiService.unmount401Interceptor();\r\n ApiService.removeHeader();\r\n try{\r\n await FirebaseAuthentication.signOut();\r\n }\r\n catch{\r\n }\r\n StorageService.removeUserId();\r\n StorageService.removeUser();\r\n StorageService.removeAccountView();\r\n commit(\"resetState\");\r\n console.log(\"User logged out\");\r\n },\r\n\r\n async setAuth({ commit }, payload: any): Promise {\r\n try {\r\n console.log('setAuth parameter:,', payload);\r\n commit(\"setAuth\", payload.user);\r\n\r\n if (!payload.user.isAnonymous) {\r\n\r\n const postData: AppUserLoginDTO = {\r\n nominativo: payload.user.displayName,\r\n email: payload.user.email,\r\n tel: payload.user.phoneNumber,\r\n photoUrl: payload.user.photoUrl,\r\n providerRegistrazione: payload.user.providerId,\r\n firebaseUid: payload.user.uid,\r\n platform: payload.platform.os,\r\n appVerNumber: payload.platform.appVerNumber,\r\n appVerCode: payload.platform.appVerCode\r\n };\r\n \r\n const response = await DataService.addLoginData(postData);\r\n \r\n console.log('Response:', response);\r\n if (response) {\r\n console.log('User da db:', response.id);\r\n commit(\"setUserInfo\", response);\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n catch (err: any) {\r\n console.log('setAuthError',err);\r\n commit(\"setFailAuth\", err.message);\r\n return false;\r\n }\r\n },\r\n setFailAuth({ commit }, payload: string) {\r\n commit(\"setFailAuth\", payload);\r\n },\r\n setFilter({ commit }, payload: SearchFilter) {\r\n if (payload.birthDate) {\r\n payload.birthDate.setHours(0, 0, 0, 0);\r\n }\r\n if (payload.dieDate) {\r\n payload.dieDate.setHours(0, 0, 0, 0);\r\n }\r\n commit(\"setFilter\", payload);\r\n },\r\n setResults({ commit }, payload: Array) {\r\n commit(\"setResults\", payload);\r\n },\r\n setCurrentItem({ commit }, payload: DetailItemDTO) {\r\n commit(\"setCurrentItem\", payload);\r\n },\r\n setRouteAfterSignIn({ commit }, payload: string) {\r\n commit(\"setRouteAfterSignIn\", payload);\r\n },\r\n\r\n async selectDetail({ commit }, payload: number): Promise {\r\n try {\r\n /*const response = await axios.get(\r\n \"https://dev.aldilapp.it/api/defunti/\" + payload, axiosRequestConfig\r\n );*/\r\n const response = await DataService.getDetail(payload); \r\n if (response.status == 200) {\r\n const data: DetailItemDTO = response.data;\r\n commit(\"setCurrentItem\", data);\r\n \r\n const info: CurrentContentInfo = {page: 1, pageSize: 10, hasOtherResults: data.lastContents.length === 10 }\r\n commit('setCurrentContentInfo', info);\r\n\r\n return true;\r\n }\r\n else {\r\n console.log(\"Defunto non trovato, ID: \", payload);\r\n return false;\r\n }\r\n }\r\n catch (ex) {\r\n commit(\"setSearchError\", \"Fallita APi filter \" + ex);\r\n return false;\r\n }\r\n },\r\n\r\n async addDefunto({ dispatch }, payload: NewRelationAppUserDefuntoDTO): Promise {\r\n try {\r\n if (this.state.current == null){\r\n throw new Error('Defunto non caricato sulla pagina di dettaglio.'); \r\n }\r\n if (this.state.auth == null || this.state.auth.dbUserId == null){\r\n throw new Error('Utente non autenticato. Fai il login') \r\n }\r\n \r\n \r\n await DataService.addDefunto(payload);\r\n await dispatch('loadMieiDefuntiNextPage', null);\r\n return true;\r\n }\r\n catch (err: any)\r\n {\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n return false; \r\n } \r\n },\r\n\r\n async removeDefunto({ dispatch }): Promise {\r\n try {\r\n if (this.state.current == null){\r\n throw new Error('Defunto non caricato sulla pagina di dettaglio.'); \r\n }\r\n if (this.state.auth == null || this.state.auth.dbUserId == null){\r\n throw new Error('Utente non autenticato. Fai il login') \r\n }\r\n const dbUserId = this.state.auth.dbUserId;\r\n \r\n const data: RemoveRelationAppUserDefuntoDTO = {\r\n defuntoId: this.state.current.anagrafica.id,\r\n appUserId: dbUserId\r\n };\r\n await DataService.removeDefunto(data);\r\n \r\n await dispatch('loadMieiDefuntiNextPage', null);\r\n return true;\r\n }\r\n catch (err: any)\r\n {\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n return false; \r\n } \r\n },\r\n\r\n async loadMieiDefuntiNextPage({ commit }, search: string | null = null): Promise {\r\n try {\r\n\r\n if (this.state.auth == null || this.state.auth.dbUserId == null)\r\n {\r\n throw new Error('Utente non autenticato. Fai il login') \r\n }\r\n\r\n const newState = this.state.mieiDefunti;\r\n if (search != this.state.mieiDefunti.currentSearchText || search == \"\" || !search)\r\n {\r\n newState.currentSearchText = search;\r\n newState.pageSetting.page = 1;\r\n newState.pageSetting.pageSize = 30;\r\n newState.items = new Array()\r\n }\r\n else\r\n {\r\n newState.pageSetting.page = newState.pageSetting.page + 1;\r\n }\r\n \r\n const filterDTO: SearchFilterDTO = {\r\n provinceLocationId: null,\r\n cityLocationId: null,\r\n cemeteryId: null,\r\n surname: null,\r\n firstName: null,\r\n fullName: search,\r\n birthDate: null,\r\n dieDate: null,\r\n birthYear: null,\r\n dieYear: null,\r\n favoriteForAppUserId: this.state.auth.dbUserId,\r\n groupId:null\r\n }; \r\n\r\n const pagingDTO: PagingSettingDTO = {\r\n page: newState.pageSetting.page,\r\n pageSize: newState.pageSetting.pageSize\r\n }\r\n\r\n const pagedFilter: PagedSearchFilterDTO = { filter: filterDTO, paging: pagingDTO};\r\n const result: PagedResultDTO = await DataService.getPagedDefuntiByFilter(pagedFilter);\r\n console.log('loadMieiDefuntiNextPage',result);\r\n newState.otherItemsAvailable = (result && result.page * result.pagesize < result.totalCount);\r\n newState.items = newState.items.concat(result.pagedResult);\r\n commit('setMieiDefuntiState', newState);\r\n return true;\r\n }\r\n catch (err: any)\r\n {\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n return false; \r\n } \r\n },\r\n\r\n async loadAppSettings({ commit }): Promise {\r\n await axios.get(\r\n \"https://dev.aldilapp.it/api/AppSettings\",\r\n axiosRequestConfig\r\n ).then((resp) => {\r\n if (resp.status == 200 || resp.status == 201) {\r\n commit(\"setAppSetting\", resp.data);\r\n }\r\n }).catch((err) => {\r\n console.log(err);\r\n });\r\n },\r\n\r\n async setShopForCurrentDefunto({commit}): Promise\r\n {\r\n if (this.state.current && this.state.current.anagrafica && this.state.current.anagrafica.currentPosition){\r\n //console.log('Cimitero selezionato:',this.state.current.anagrafica.currentPosition.cemeteryId )\r\n const items = await DataService.getAllShopItemsForCemetery(this.state.current.anagrafica.currentPosition.cemeteryId);\r\n //console.log('Items restituiti: ', items);\r\n const shopState: ShopState = {\r\n selectedDefunto: this.state.current,\r\n shopItems: items\r\n };\r\n\r\n commit('setShopStatus', shopState);\r\n return true;\r\n }\r\n else{\r\n console.log('setShopForCurrentDefunto: Manca qualcosa')\r\n } \r\n return false;\r\n },\r\n\r\n async addItemToCart({commit}, payload: NewOrderItemDTO): Promise\r\n {\r\n try{\r\n if (this.state.auth == null || this.state.auth.dbUserId == null)\r\n throw Error(\"Utente non autenticato\");\r\n if (this.state.current == null)\r\n throw Error(\"Nessun defunto selezionato!\");\r\n if (this.state.current.anagrafica == null)\r\n throw Error(\"Anagrafica defunto non caricata!\");\r\n \r\n \r\n //se non esiste l'oggetto carrello oppure si riferisce a un defunto diverso creo un nuovo ordine\r\n if (!this.state.cart || !this.state.cart.orderItems || this.state.cart.orderItems[0].defunto.id != this.state.current.anagrafica.id){\r\n //crea carrello \r\n const newOrder: NewOrderDTO = {\r\n createdFromAppUserId: this.state.auth.dbUserId,\r\n orderItems: [ payload ]\r\n };\r\n const order = await DataService.createCart(newOrder);\r\n commit('setCart', order);\r\n }\r\n else{\r\n //modifica carrello\r\n \r\n //... per il momento ricreo un nuovo carrello con solo l'ultimo elemento\r\n const newOrder: NewOrderDTO = {\r\n createdFromAppUserId: this.state.auth.dbUserId,\r\n orderItems: [ payload ]\r\n };\r\n const order = await DataService.createCart(newOrder);\r\n commit('setCart', order);\r\n\r\n //commit ShopCart\r\n }\r\n return true;\r\n } \r\n catch (err: any)\r\n {\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n return false; \r\n } \r\n },\r\n\r\n async createOrder({commit}): Promise\r\n {\r\n try{\r\n if (this.state.auth == null || this.state.auth.dbUserId == null)\r\n throw Error(\"Utente non autenticato\");\r\n if (this.state.cart == null)\r\n throw Error(\"Carrello vuoto\");\r\n \r\n \r\n const order = await DataService.createOrder(this.state.cart);\r\n commit('setCart', order);\r\n \r\n \r\n return true;\r\n } \r\n catch (err: any)\r\n {\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n return false; \r\n } \r\n },\r\n\r\n async addMessageContent({commit}, payload: string): Promise\r\n {\r\n try{\r\n if (this.state.auth == null || this.state.auth.dbUserId == null)\r\n throw Error(\"Utente non autenticato\");\r\n if (this.state.current == null)\r\n throw Error(\"Defunto non selezionato\");\r\n \r\n console.log('Message:', payload);\r\n\r\n const newContent: NewContetDTO = {\r\n defuntoId: this.state.current.anagrafica.id,\r\n createdFromAppUserId: this.state.auth.dbUserId,\r\n title: '',\r\n text: payload,\r\n publishDate: null,\r\n imageUrl: null,\r\n contentType: 'Message',\r\n fromDescription: null \r\n };\r\n const content = await DataService.addContent(newContent);\r\n commit('addContent', content); \r\n return true;\r\n } \r\n catch (err: any)\r\n {\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n return false; \r\n } \r\n },\r\n\r\n async addCandle({commit}): Promise\r\n {\r\n try{\r\n if (this.state.auth == null || this.state.auth.dbUserId == null)\r\n throw Error(\"Utente non autenticato\");\r\n if (this.state.current == null)\r\n throw Error(\"Defunto non selezionato\");\r\n \r\n const newContent: NewContetDTO = {\r\n defuntoId: this.state.current.anagrafica.id,\r\n createdFromAppUserId: this.state.auth.dbUserId,\r\n title: '',\r\n text: '',\r\n publishDate: null,\r\n imageUrl: null,\r\n contentType: 'Candle',\r\n fromDescription: null, \r\n };\r\n const content = await DataService.addContent(newContent);\r\n commit('addCandle'); \r\n return true;\r\n } \r\n catch (err: any)\r\n {\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n return false; \r\n } \r\n },\r\n\r\n async loadProvicesByCountry({commit}): Promise {\r\n const result: Array = await DataService.getProvicesByCountry(\"it\");\r\n commit('setProvinces', result) ;\r\n },\r\n\r\n \r\n\r\n async loadPersonalInfo({commit}): Promise {\r\n const result: AppUserPersonalInfoDTO = await DataService.getPersonalInfo();\r\n if (result)\r\n commit('setPersonalInfo', result) ;\r\n },\r\n\r\n async editPersonalInfo({commit}, payload: EditAppUserPersonalInfoDTO): Promise {\r\n await DataService.editPersonalInfo(payload); \r\n },\r\n\r\n async verifyPhoneNumer({commit}, otp: string): Promise {\r\n var ret = await DataService.verifyPhone(this.state.personalInfo!.phoneNumber, otp); \r\n if (ret){\r\n const info = this.state.personalInfo!;\r\n info.phoneVerified = true;\r\n commit('setPersonalInfo', info) ;\r\n }\r\n return ret; \r\n },\r\n\r\n async deleteAccount(): Promise {\r\n await DataService.deleteAccount(); \r\n },\r\n\r\n async editUserProfilePhotoUrl({commit},file: File): Promise {\r\n const user = await DataService.uploadUserProfileImage(file);\r\n if (user) \r\n commit('setUserInfo',user);\r\n else \r\n throw new Error(\"Errore invio file immagine\");\r\n \r\n },\r\n\r\n async editUserAccount({commit},payload: UserDTO): Promise {\r\n const user = await DataService.editAccount(payload);\r\n if (user) \r\n commit('setUserInfo',user);\r\n else \r\n throw new Error(\"Errore invio file immagine\"); \r\n },\r\n\r\n async loadEventSubscriptions({commit}): Promise {\r\n const events = await DataService.getEventSubscriptions();\r\n commit(\"setSubscriptions\", events); \r\n },\r\n\r\n async editEventSubscriptions({commit}, payload: EditSubscriptionsDTO ): Promise {\r\n await DataService.editEventSubscriptions(payload);\r\n \r\n },\r\n\r\n async removeContent({commit, dispatch }, contentId: number ): Promise {\r\n try{\r\n await DataService.deleteContent(contentId);\r\n\r\n commit('resetContents');\r\n await dispatch('loadOtherContents');\r\n //commit('removeContent', contentId);\r\n }\r\n catch (err: any)\r\n {\r\n console.log('Errore removeContent: ', err);\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n } \r\n },\r\n\r\n async loadOtherContents({state, commit}): Promise {\r\n try{\r\n if (!state.current)\r\n throw new Error(\"Defunto non selezionato\");\r\n if (!state.currentContentInfo)\r\n throw new Error(\"Info contenuti non inizializzato\");\r\n \r\n \r\n const originContentInfo: CurrentContentInfo = state.currentContentInfo!;\r\n const newContens: ContentDTO[] = await DataService.loadOtherContents(state.current.anagrafica.id, originContentInfo.page+1);\r\n \r\n commit('addContents', newContens);\r\n\r\n const currentContentInfo: CurrentContentInfo = {page: originContentInfo.page + 1, pageSize: originContentInfo.pageSize, hasOtherResults: newContens.length==10}; \r\n commit('setCurrentContentInfo', currentContentInfo);\r\n }\r\n catch (err: any)\r\n {\r\n console.log('Errore loadOtherContents: ', err);\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n } \r\n },\r\n\r\n async loadCurrentRelatedDefunti({state, commit}): Promise{\r\n try{\r\n if (state.current)\r\n {\r\n const defunti: SearchResultItemDTO[] = await DataService.getReleatedDefunti(state.current.anagrafica.id);\r\n commit('setCurrentRelatedDefunti', defunti);\r\n }\r\n\r\n }\r\n catch (err: any)\r\n {\r\n console.log('Errore loadCurrentRelatedDefunti: ', err);\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n } \r\n },\r\n\r\n async loadFeaturedDefunti({state, commit}): Promise{\r\n try{\r\n if (state.filter && state.filter.city){\r\n const defunti: SearchResultItemDTO[] = await DataService.getFeaturedDefunti(state.filter.city.id);\r\n commit('setFeaturedDefunti', defunti);\r\n }\r\n }\r\n catch (err: any)\r\n {\r\n console.log('Errore loadCurrentRelatedDefunti: ', err);\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n } \r\n },\r\n\r\n async loadUserLocationInterests({state, commit}): Promise{\r\n try{\r\n const locationInterests = await DataService.getUserLocationInterests();\r\n commit('setUserLocationInterests', locationInterests)\r\n }\r\n catch (err: any)\r\n {\r\n console.log('Errore loadUserLocationInterests: ', err);\r\n Utils.PresentAlertError(\"Errore\",err.message, [\"Ok\"]);\r\n } \r\n },\r\n\r\n async editUserLocationInterest({dispatch}, payload: AppUserLocationInterestDTO ): Promise {\r\n await DataService.editUserLocationInterest(payload);\r\n await dispatch('loadUserLocationInterests');\r\n },\r\n\r\n async loadGestioneCemetery({commit}, cemeteryId: number): Promise{\r\n const cemetery = await DataService.getCemeteryById(cemeteryId);\r\n commit('setGestioneCurrentCemetery', cemetery);\r\n },\r\n\r\n async loadCemeteryArea({state,commit}, areaId: number): Promise\r\n {\r\n const cemetery = state.gestione.currentCemetery;\r\n const currentArea = state.gestione.currentArea;\r\n if (areaId > 0)\r\n {\r\n const netStatus = await Network.getStatus();\r\n if (netStatus.connected){\r\n const area: CemeteryAreaDTO = await DataService.getCemeteryAreaById(areaId);\r\n commit('setGestioneCurrentCemeteryArea', area);\r\n }\r\n if (currentArea && currentArea.id !== areaId && cemetery && cemetery.aree){\r\n const filterdAree = cemetery.aree.filter( (i:CemeteryAreaDTO) => {return i.id === areaId;}); \r\n if (filterdAree && filterdAree.length > 0){\r\n const area = filterdAree[0];\r\n commit('setGestioneCurrentCemeteryArea', area);\r\n }\r\n }\r\n }\r\n else {\r\n const area: CemeteryAreaDTO = { \r\n id:0, \r\n area1:\"\", \r\n area2:\"\", \r\n zona1:\"\", \r\n zona2:\"\", \r\n latitudine:null, longitudine:null, \r\n cimiteroId: ''+cemetery!.id, areaName:'', isGeolocated:false, \r\n defuntiCount:0, tipoSepoltura:\"\", progressivoIniziale:\"1\", posizioneProgressivoIniziale:\"dw\", direzioneCensimento:null, tipoCambioLinea:null, noteSopralluogo:\"\", \r\n posti: [], checkPoints: [],\r\n occupationInfo: null,\r\n resetIndexPerLine: false,\r\n posizionePrimaFila: null\r\n };\r\n commit('setGestioneCurrentCemeteryArea', area);\r\n }\r\n /*if (cemetery && cemetery.aree && areaId > 0)\r\n {\r\n const filterdAree = cemetery.aree.filter( (i:CemeteryAreaDTO) => {return i.id === areaId;}); \r\n if (filterdAree && filterdAree.length > 0){\r\n const area = filterdAree[0];\r\n commit('setGestioneCurrentCemeteryArea', area);\r\n }\r\n }\r\n else {\r\n const area: CemeteryAreaDTO = { id:0, area1:\"\", area2:\"\", zona1:\"\", zona2:\"\", latitudine:null, longitudine:null, cimiteroId: ''+cemetery!.id, areaName:'', isGeolocated:false, defuntiCount:0, tipoSepoltura:\"\", progressivoIniziale:1, posti: [] };\r\n commit('setGestioneCurrentCemeteryArea', area);\r\n }*/\r\n },\r\n\r\n async editCimiteroArea({state, commit, dispatch}, payload: CemeteryAreaEditCommandDTO): Promise\r\n {\r\n const currentArea = state.gestione.currentArea;\r\n const cemetery = state.gestione.currentCemetery;\r\n if (!cemetery)\r\n throw new Error(\"Cimitero non selezionato\");\r\n const netStatus = await Network.getStatus();\r\n\r\n if (netStatus.connected){\r\n const cemetery = await DataService.editCemeteryArea(payload);\r\n commit('setGestioneCurrentCemetery', cemetery);\r\n\r\n if (currentArea && currentArea.id){\r\n dispatch('loadCemeteryArea', currentArea.id);\r\n }\r\n }\r\n else{\r\n //siamo senza rete salvo le modifiche su un json\r\n const result = await FileSync.saveAreaItem(cemetery.id, payload);\r\n if (!result)\r\n throw new Error('Rete assente e Accesso alla memoria non consentivo. Impossibile salvare i dati.');\r\n \r\n }\r\n }, \r\n\r\n async deleteCemeteryArea({commit, state}): Promise\r\n {\r\n const cemetery = state.gestione.currentCemetery;\r\n const area = state.gestione.currentArea;\r\n if (!cemetery)\r\n throw new Error(\"Cimitero non selezionato\");\r\n if (!area)\r\n throw new Error(\"Area non selezionata\");\r\n console.log('deleteCemeteryArea parram',area.id);\r\n \r\n await FileSync.deleteAreaItem(cemetery.id, area.id);\r\n await DataService.deleteArea(area.id);\r\n commit('removeArea',area.id)\r\n },\r\n\r\n\r\n async loadCemeteryPosto({state,commit}, postoId: number ): Promise\r\n {\r\n console.log('Inizializzazione nuovo posto', postoId);\r\n\r\n const cemetery = state.gestione.currentCemetery;\r\n const area = state.gestione.currentArea;\r\n if (!cemetery)\r\n throw new Error(\"Cimitero non selezionato\");\r\n /*if (!area)\r\n throw new Error(\"Area non selezionata\");*/\r\n if (postoId)\r\n {\r\n console.log('Caricamento del posto dallo stato')\r\n if (area){\r\n const filterdPosti = area.posti.filter( (i:CemeteryPostoDTO) => {return i.id === postoId}) \r\n if (filterdPosti && filterdPosti.length > 0){\r\n const posto = filterdPosti[0];\r\n commit('setGestioneCurrentCemeteryPosto', posto);\r\n }\r\n else\r\n throw new Error('Errore recupero dati posto');\r\n }\r\n else {\r\n console.log('Eseguo chiamata getCemeteryPostoById')\r\n const posto = await DataService.getCemeteryPostoById(postoId);\r\n console.log('Risultato:', posto);\r\n commit('setGestioneCurrentCemeteryPosto', posto); \r\n }\r\n }\r\n else {\r\n /*console.log('Inserimento nuovo posto')\r\n const progressivo = prog ? prog :\r\n area.posti && area.posti.length > 0 ? area.posti[area.posti.length-1].progressivo + 1 :\r\n area.progressivoIniziale ? area.progressivoIniziale : 1;\r\n const posto: EditCemeteryPostoDTO = {\r\n postoId: null,\r\n posizioneDefuntoId: null,\r\n areaId: area.id,\r\n posto: progressivo,\r\n fila: null,\r\n colonna: \"\",\r\n tipoPosto: area.tipoSepoltura,\r\n tipoSepoltura: \"Normale\",\r\n isVuoto: false,\r\n statoIdentificazione: 0,\r\n statoLampadaVotiva: null,\r\n note: \"\",\r\n censimentoImageUrl: \"\",\r\n censimentoInvoiceUrl: \"\",\r\n cognome: \"\",\r\n nome: \"\",\r\n dataNascita:null,\r\n dataMorte: null,\r\n annoMorte:null,\r\n meseMorte:null,\r\n giornoMorte:null,\r\n annoNascita:null,\r\n meseNascita:null,\r\n giornoNascita:null\r\n };\r\n \r\n commit('setGestioneCurrentCemeteryPosto', posto);*/\r\n }\r\n },\r\n\r\n async deleteCemeteryPosto({commit, state}, payload: any): Promise\r\n {\r\n console.log('deleteCemeteryPosto parram',payload);\r\n const cemetery = state.gestione.currentCemetery;\r\n const area = state.gestione.currentArea;\r\n if (!cemetery)\r\n throw new Error(\"Cimitero non selezionato\");\r\n if (!area)\r\n throw new Error(\"Area non selezionata\");\r\n\r\n const postoId: number = payload.postoId;\r\n const defunto: EditPosizioneDefuntoDTO | null = payload.defunto;\r\n await FileSync.deleteItem(cemetery.id, area.id, postoId, defunto);\r\n if (defunto && defunto.id)\r\n {\r\n if (defunto.id > 0)\r\n await DataService.deletePosizioneDefunto(defunto.id);\r\n commit('removePosizioneDefunto', {postoId, defuntoId: defunto? defunto.id : null})\r\n }\r\n else\r\n {\r\n if (postoId > 0)\r\n await DataService.deletePosto(postoId);\r\n commit('removePosto', postoId)\r\n }\r\n },\r\n\r\n async saveCemeteryPosto({commit, state}, payload: any): Promise\r\n {\r\n console.log('saveCemeteryPosto parram',payload);\r\n const posto: CemeteryPostoEditCommandDTO = payload.posto;\r\n const defunto: EditPosizioneDefuntoDTO = payload.defunto;\r\n const cemetery = state.gestione.currentCemetery;\r\n const area = state.gestione.currentArea;\r\n if (!cemetery)\r\n throw new Error(\"Cimitero non selezionato\");\r\n //if (!area)\r\n // throw new Error(\"Area non selezionata\");\r\n\r\n const netStatus = await Network.getStatus();\r\n let fVoice = \"\";\r\n if (netStatus.connected)\r\n {\r\n try\r\n {\r\n //salvataggio dei dati relativi al posto\r\n let r: CemeteryPostoDTO = await DataService.editCemeteryPosto(posto);\r\n if (!r)\r\n throw new Error(\"Errore nel salvaggio dati sul server\");\r\n \r\n if (defunto && !posto.isVuoto){\r\n //assegno l'ide del posto appena salvato al defunto\r\n defunto.postoId = r.id; \r\n\r\n //invio file audio a imagekit\r\n if (defunto.censimentoVoiceUrl && !defunto.censimentoVoiceUrl.startsWith('http'))\r\n {\r\n fVoice = defunto.censimentoVoiceUrl;\r\n const audioFile = await Filesystem.readFile({\r\n path: defunto.censimentoVoiceUrl,\r\n directory: Directory.Data\r\n });\r\n const base64 = audioFile.data;\r\n\r\n let mimeType = \"\";\r\n if (defunto.censimentoVoiceUrl.endsWith(\".aac\"))\r\n mimeType = \"audio/aac\";\r\n else if (defunto.censimentoVoiceUrl.endsWith(\".webm\"))\r\n mimeType = \"audio/webm;codecs=opus\";\r\n else if (defunto.censimentoVoiceUrl.endsWith(\".mp4\"))\r\n mimeType = \"audio/mp4\";\r\n else \r\n mimeType = \"audio/wav\";\r\n \r\n console.log('Mimetype from extension:', mimeType);\r\n \r\n const folderpath = \"c\"+cemetery.id+\"/a\"+posto.areaId;\r\n const index = defunto.censimentoVoiceUrl.lastIndexOf('/');\r\n const filename = defunto.censimentoVoiceUrl.substring(index+1);\r\n \r\n \r\n const url = await AzureBlobStorageClient.uploadBase64(base64,mimeType, filename,folderpath);\r\n \r\n console.log('File audio caricato:', url);\r\n if (!url)\r\n throw new Error(\"Problema upload audio\");\r\n defunto.censimentoVoiceUrl = url;\r\n }\r\n\r\n if (defunto.censimentoImageUrl && !defunto.censimentoImageUrl.startsWith('http')){\r\n \r\n //recupero estensione \r\n const arr = defunto.censimentoImageUrl.split(',');\r\n const matchs = arr[0].match(/:(.*?);/);\r\n if (!matchs)\r\n return;\r\n const mime = matchs[1];\r\n const ext = mime.split('/').pop();\r\n\r\n const folderpath = \"aldilapp/censimento/c\"+cemetery.id+\"/a\"+posto.areaId;\r\n const tags = [cemetery.city, cemetery.name]; \r\n const filename = (posto.fila ? 'f'+posto.fila : '') + 'p' + posto.progressivo + '_photo'+ (Math.floor(Date.now() / 1000))+'.'+ext; \r\n const url = await ImageKitClient.uploadImage(defunto.censimentoImageUrl,filename,folderpath,tags);\r\n console.log('File foto caricato:', url);\r\n if (!url)\r\n throw new Error(\"Problema upload photo\");\r\n defunto.censimentoImageUrl = url;\r\n\r\n } \r\n \r\n r = await DataService.editPosizioneDefunto(defunto); \r\n //se il salvataggio va a buon fine elimino i file dal dispositivo\r\n if (r && fVoice){\r\n await FileSync.deleteFile(fVoice);\r\n console.log('Eliminato file voce locale')\r\n }\r\n }\r\n\r\n //aggiugere il risulto ai posti ... \r\n commit('pushCemeteryPostoDTO', r);\r\n }\r\n catch(err: any)\r\n {\r\n if (area)\r\n {\r\n console.log(err);\r\n const result = await FileSync.saveItem(posto, defunto, cemetery.id);\r\n if (!result)\r\n throw new Error('Dati non salvati.');\r\n \r\n let prov: CemeteryPostoDTO = {\r\n id: posto.id ?? 0,\r\n areaId: posto.areaId,\r\n areaName: area.areaName,\r\n progressivo: posto.progressivo,\r\n denominazione: posto.denominazione ?? ''+posto.progressivo,\r\n fila : posto.fila,\r\n colonna: posto.colonna ? ''+posto.colonna : null,\r\n tipoPosto: posto.tipoPosto,\r\n isVuoto: posto.isVuoto,\r\n statoLampadaVotiva: posto.statoLampadaVotiva,\r\n statoIdentificazione: posto.statoIdentificazione,\r\n note: posto.note,\r\n latitudine: posto.latitudine,\r\n longitudine: posto.longitudine,\r\n posizioneDefunti: new Array()\r\n };\r\n const currentPostoFilter: Array =area.posti.filter(i => i.progressivo == posto.progressivo && (i.fila ?? 0) == (posto.fila ?? 0) && (i.colonna ?? '') == (posto.colonna ?? ''));\r\n if (currentPostoFilter && currentPostoFilter.length > 0)\r\n prov = currentPostoFilter[0];\r\n \r\n const defuntoId = defunto.id ? defunto.id : (prov.posizioneDefunti!.length + 1) * (-1);\r\n \r\n const index = prov.posizioneDefunti!.map(i => { return i.id}).indexOf(defuntoId);\r\n \r\n const provDefunto: PosizioneDefuntoDTO = {\r\n id: defuntoId,\r\n postoId: defunto.postoId ?? prov.id, \r\n aeaId: area.id,\r\n defuntoId: 0,\r\n censimentoImageUrl: defunto.censimentoImageUrl,\r\n censimentoVoiceUrl: defunto.censimentoVoiceUrl,\r\n tipoSepoltura: defunto.tipoSepoltura ?? \"\",\r\n areaName: area.areaName,\r\n positionName: '',\r\n userRegistrante: '',\r\n registrationDate: new Date(), \r\n cognome: defunto.cognome, \r\n nome: defunto.nome,\r\n dataNascita: defunto.annoNascita ? new Date(defunto.annoNascita, defunto.meseNascita ? defunto.meseNascita - 1 : 1, defunto.giornoNascita ?? 1) : null, \r\n dataMorte: defunto.annoMorte ? new Date(defunto.annoMorte, defunto.meseMorte ? defunto.meseMorte - 1 : 1, defunto.giornoMorte ?? 1) : null,\r\n hasInnacurateDates : !defunto.meseNascita || !defunto.giornoNascita || !defunto.meseMorte || !defunto.giornoMorte \r\n }\r\n\r\n if (index > 0){\r\n const defunti = prov.posizioneDefunti!.filter(i=> i.id !== defuntoId);\r\n //inserisco il defunto nello stesso indice in cui era presente precedentemente\r\n defunti.splice(index, 0, provDefunto);\r\n prov.posizioneDefunti = defunti;\r\n }\r\n else\r\n {\r\n prov.posizioneDefunti!.push(provDefunto);\r\n }\r\n \r\n \r\n commit('pushCemeteryPostoDTO', prov);\r\n }\r\n } \r\n }\r\n else\r\n {\r\n console.log('Rete assente');\r\n if (area)\r\n {\r\n const result = await FileSync.saveItem(posto, defunto, cemetery.id);\r\n if (!result)\r\n throw new Error('Rete assente e Accesso all memoria non consentivo. Impossibile salvare i dati.');\r\n \r\n let prov: CemeteryPostoDTO = {\r\n id: posto.id ?? 0,\r\n areaId: posto.areaId,\r\n areaName: area.areaName,\r\n progressivo: posto.progressivo,\r\n denominazione: posto.denominazione ?? ''+posto.progressivo,\r\n fila : posto.fila,\r\n colonna: posto.colonna ? ''+posto.colonna : null,\r\n tipoPosto: posto.tipoPosto,\r\n isVuoto: posto.isVuoto,\r\n statoLampadaVotiva: posto.statoLampadaVotiva,\r\n statoIdentificazione: posto.statoIdentificazione,\r\n note: posto.note,\r\n latitudine: posto.latitudine,\r\n longitudine: posto.longitudine,\r\n posizioneDefunti: new Array()\r\n };\r\n const currentPostoFilter: Array =area.posti.filter(i => i.progressivo == posto.progressivo && (i.fila ?? 0) == (posto.fila ?? 0) && (i.colonna ?? '') == (posto.colonna ?? ''));\r\n if (currentPostoFilter && currentPostoFilter.length > 0)\r\n prov = currentPostoFilter[0];\r\n \r\n //ATTENZIONE: defuntoId contiene in realtà l'Id di PosizioneDefunto\r\n const defuntoId = defunto.id ? defunto.id : (prov.posizioneDefunti!.length + 1) * (-1);\r\n const index = prov.posizioneDefunti!.map(i => { return i.id}).indexOf(defuntoId);\r\n const provDefunto: PosizioneDefuntoDTO = {\r\n id: defuntoId,\r\n postoId: defunto.postoId ?? prov.id, \r\n aeaId: area.id,\r\n defuntoId: 0,\r\n censimentoImageUrl: defunto.censimentoImageUrl,\r\n censimentoVoiceUrl: defunto.censimentoVoiceUrl,\r\n tipoSepoltura: defunto.tipoSepoltura ?? \"\",\r\n areaName: area.areaName,\r\n positionName: '',\r\n userRegistrante: '',\r\n registrationDate: new Date(), \r\n cognome: defunto.cognome, \r\n nome: defunto.nome,\r\n dataNascita: defunto.annoNascita ? new Date(defunto.annoNascita, defunto.meseNascita ? defunto.meseNascita - 1 : 1, defunto.giornoNascita ?? 1) : null, \r\n dataMorte: defunto.annoMorte ? new Date(defunto.annoMorte, defunto.meseMorte ? defunto.meseMorte - 1 : 1, defunto.giornoMorte ?? 1) : null,\r\n hasInnacurateDates : !defunto.meseNascita || !defunto.giornoNascita || !defunto.meseMorte || !defunto.giornoMorte \r\n };\r\n\r\n if (index > 0){\r\n const defunti = prov.posizioneDefunti!.filter(i=> i.id !== defuntoId);\r\n //inserisco il defunto nello stesso indice in cui era presente precedentemente\r\n defunti.splice(index, 0, provDefunto);\r\n prov.posizioneDefunti = defunti;\r\n }\r\n else\r\n {\r\n prov.posizioneDefunti!.push(provDefunto);\r\n }\r\n \r\n commit('pushCemeteryPostoDTO', prov);\r\n //commit('setGestioneCurrentCemeteryPosto', prov);\r\n }\r\n }\r\n \r\n },\r\n\r\n resetCart({commit}): void {\r\n commit('setCart', null);\r\n },\r\n\r\n /*\r\n updateExpireDate({commit}, payload: string): void {\r\n const parts = payload.split(\"/\");\r\n const date = new Date( Number.parseInt(parts[2]), Number.parseInt(parts[1])-1, Number.parseInt(parts[0]) );\r\n commit(\"setExpireDate\", date);\r\n },\r\n */\r\n\r\n updateCheckoutData({commit}, payload: any): void {\r\n \r\n commit(\"setCheckoutData\", payload);\r\n },\r\n\r\n selectLang({ commit }, payload: string): void {\r\n commit(\"setLang\", payload);\r\n },\r\n\r\n resetUser({ commit }): void {\r\n commit(\"resetUser\");\r\n },\r\n\r\n updateInitAppCompleted({commit}, value: boolean){\r\n commit('setInitAppCompleted', value);\r\n },\r\n\r\n },\r\n\r\n // MUTATIONS ( set the state )\r\n mutations: {\r\n setAuth(state: any, user: any) {\r\n state.auth.user = user;\r\n state.auth.isAuth = true;\r\n state.auth.errorMsg = \"\";\r\n state.auth.mode = AuthMode.SignIn;\r\n },\r\n setUserInfo(state: any, appUser: UserDTO) {\r\n state.auth.dbUserId = appUser.id;\r\n state.auth.photoURL = appUser.imageUrl;\r\n state.auth.nominativo = appUser.completeName;\r\n state.auth.email = appUser.email;\r\n state.auth.roles = appUser.roles;\r\n },\r\n setRequestUpdate(state: any, update: boolean) {\r\n state.auth.requestUpdateApp = update;\r\n },\r\n setFailAuth(state: any, error: string) {\r\n state.auth.user = null;\r\n state.auth.isAuth = false;\r\n state.auth.errorMsg = error;\r\n state.auth.dbUserId = null;\r\n },\r\n setFilter(state: any, filter: SearchFilter) {\r\n state.filter = filter;\r\n },\r\n setResults(state: any, results: Array) {\r\n state.results = results;\r\n state.searchSuccess = true;\r\n state.searchResultsCount = results.reduce((sum, current) => sum + current.defunti.length, 0);\r\n state.searchResultMessage = \"\";\r\n },\r\n setSearchError(state: any, error: string) {\r\n state.results = [];\r\n state.searchSuccess = false;\r\n state.searchResultsCount = state.results.length;\r\n state.searchResultMessage = error;\r\n },\r\n\r\n setCurrentItem(state: any, current: DetailItemDTO) {\r\n state.current = current;\r\n },\r\n\r\n setMieiDefunti(state: any, payload: Array) {\r\n state.mieiDefunti = payload;\r\n },\r\n\r\n setLang(state: any, payload: string) {\r\n state.currentLang = payload;\r\n if (payload === \"it\") {\r\n state.lang = require('/public/assets/lang/it.json');\r\n }\r\n else if (payload === \"es\") {\r\n state.lang = require('/public/assets/lang/es.json');\r\n }\r\n else {\r\n state.lang = require('/public/assets/lang/en.json');\r\n }\r\n },\r\n\r\n resetUser(state: any) {\r\n state.auth = {\r\n user: null,\r\n isAuth: false,\r\n nominativo: null,\r\n photoURL: null,\r\n errorMsg: '',\r\n mode: AuthMode.SignIn,\r\n dbUserId: null,\r\n roles: [],\r\n routeAfterSignIn: null\r\n };\r\n state.mieiDefunti = {\r\n items: new Array(),\r\n pageSetting: { \r\n page:0, \r\n pagesize:30 \r\n },\r\n otherItemsAvailable: true,\r\n currentSearchText: null\r\n };\r\n state.subscriptions = null;\r\n state.locationInterests= new Array();\r\n state.gestione = {\r\n currentCemetery: null,\r\n currentArea: null,\r\n currentPosto: null,\r\n currentPosizioneDefunto: null\r\n };\r\n },\r\n\r\n setRouteAfterSignIn(state: any, payload: string) {\r\n state.auth.routeAfterSignIn = payload;\r\n },\r\n\r\n setAppSetting(state: any, payload: any) {\r\n state.appSettings = {\r\n lastIosVerCode: payload.lastVerCodeIos,\r\n lastIosVerNum: payload.lastVerNumIos,\r\n lastAndroidVerCode: payload.lastVerCodeAndroid,\r\n lastAndroidVerNum: payload.lastVerNumAndroid,\r\n iosAppId: payload.appleAppId,\r\n androidAppId: payload.androidAppId,\r\n forceUpdete: false,\r\n }\r\n },\r\n\r\n setShopStatus(state:any, payload: ShopState){\r\n state.shop = payload;\r\n },\r\n\r\n setCart(state:any, payload: OrderDTO | null){\r\n state.cart = payload;\r\n },\r\n\r\n /*setExpireDate(state:any, payload: Date){\r\n state.cart.orderItems.forEach( (oi: OrderItemDTO) => {\r\n oi.expirationDate = payload;\r\n }); \r\n },*/\r\n\r\n setCheckoutData(state:any, payload: any){\r\n //const parts = payload.expireDate.split(\"/\");\r\n //const date = new Date( Number.parseInt(parts[2]), Number.parseInt(parts[1])-1, Number.parseInt(parts[0]) );\r\n state.cart.orderItems.forEach( (oi: OrderItemDTO) => {\r\n oi.expirationDate = payload.expireDate;\r\n }); \r\n state.cart.fromDescription = payload.fromDescription;\r\n state.cart.fromContent = payload.fromContent;\r\n },\r\n\r\n addContent(state:any, payload: ContentDTO){\r\n state.current.lastContents.unshift(payload);\r\n },\r\n\r\n addCandle(state:any){\r\n state.current.anagrafica.activeCandlesCount = state.current.anagrafica.activeCandlesCount +1;\r\n state.current.availsableServices.addCandleAvailable = false;\r\n },\r\n\r\n setMieiDefuntiState(state:any, payload: MieiDefuntiTabStatus)\r\n {\r\n state.mieiDefunti = payload;\r\n },\r\n\r\n setInitAppCompleted(state:any, value: boolean)\r\n {\r\n state.initAppCompleted = value;\r\n },\r\n\r\n resetState(state: any){\r\n state.auth = {\r\n user: null,\r\n nominativo: null,\r\n photoURL: null,\r\n isAuth: false,\r\n errorMsg: '',\r\n mode: AuthMode.SignIn,\r\n dbUserId: null,\r\n email:null,\r\n requestUpdateApp: false,\r\n routeAfterSignIn: null\r\n };\r\n state.cimiteri = [];\r\n state.filter = null;\r\n state.results = [];\r\n state.current = null,\r\n state.currentContentInfo = null,\r\n state.currentRelatedDefunti = [];\r\n state.mieiDefunti = {\r\n items: new Array(),\r\n pageSetting: { \r\n page:0, \r\n pagesize:10 \r\n },\r\n otherItemsAvailable: true,\r\n currentSearchText: null\r\n };\r\n state.searchSuccess = false;\r\n state.searchResultsCount= 0;\r\n state.searchResultMessage= \"\";\r\n state.shop=null;\r\n state.cart=null; \r\n state.personalInfo= null;\r\n state.province= null; \r\n state.subscriptions= null;\r\n state.userLocationInterests = new Array();\r\n state.gestione = {\r\n currentCemetery: null,\r\n currentArea: null,\r\n currentPosto: null,\r\n currentPosizioneDefunto: null\r\n };\r\n },\r\n\r\n setProvinces(state: any, value: Array)\r\n {\r\n state.province = value;\r\n },\r\n\r\n setPersonalInfo(state: any, value: Array)\r\n {\r\n state.personalInfo = value;\r\n },\r\n\r\n setSubscriptions(state: any, value: Array)\r\n {\r\n state.subscriptions = value;\r\n },\r\n\r\n removeContent(state: any, value: number){\r\n state.current.lastContents = state.current.lastContents.filter( (c: ContentDTO) => c.id != value);\r\n },\r\n\r\n resetContents(state: any)\r\n {\r\n state.current.lastContents = new Array();\r\n\r\n const currentContentInfo: CurrentContentInfo = {page: 0, pageSize: 10, hasOtherResults: false}; \r\n state.currentContentInfo = currentContentInfo;\r\n\r\n },\r\n\r\n setCurrentContentInfo(state: any, payload: CurrentContentInfo ){\r\n state.currentContentInfo = payload;\r\n },\r\n\r\n addContents(state: any, payload: ContentDTO[]){\r\n state.current.lastContents = state.current.lastContents.concat(payload);\r\n },\r\n\r\n setCurrentRelatedDefunti(state: any, payload: SearchFilterDTO[]){\r\n state.currentRelatedDefunti = payload;\r\n },\r\n\r\n setFeaturedDefunti(state: any, payload: SearchFilterDTO[]){\r\n state.featuredDefunti = payload;\r\n },\r\n\r\n setUserLocationInterests(state: any, payload: AppUserLocationInterestDTO[]){\r\n state.locationInterests = payload;\r\n },\r\n\r\n setGestioneCurrentCemetery(state: State, payload: CemeteryDTO){\r\n state.gestione.currentCemetery = payload;\r\n state.gestione.currentArea = null;\r\n state.gestione.currenPosizioneDefunto = null;\r\n state.gestione.currentPosto = null;\r\n state.gestione.previousPosto = null;\r\n },\r\n\r\n setGestioneCurrentCemeteryArea(state: State, payload: CemeteryAreaDTO){\r\n state.gestione.currentArea = payload;\r\n state.gestione.currenPosizioneDefunto = null;\r\n state.gestione.currentPosto = null;\r\n \r\n },\r\n\r\n setGestioneCurrentCemeteryPosto(state: State, payload: CemeteryPostoDTO)\r\n {\r\n state.gestione.currentPosto = payload;\r\n },\r\n\r\n \r\n\r\n pushCemeteryPostoDTO (state: State, payload:CemeteryPostoDTO){\r\n if (state.gestione && state.gestione.currentArea){\r\n state.gestione.previousPosto = payload;\r\n const filterd = state.gestione.currentArea.posti.filter(i=> i.denominazione !== payload.denominazione || (i.fila ?? 0) !== (payload.fila ?? 0) || (i.colonna ?? '') !== (payload.colonna ?? '') );\r\n filterd.push(payload);\r\n //state.gestione.currentArea.posti = filterd.sort((a,b)=> (a.fila ?? 0) - (b.fila ?? 0) );\r\n \r\n //l'ordinamento viene gestito dal template Area\r\n state.gestione.currentArea.posti = filterd;\r\n }\r\n },\r\n\r\n removePosto(state:State, payload: number)\r\n {\r\n if (state.gestione && state.gestione.currentArea)\r\n state.gestione.currentArea.posti = state.gestione.currentArea.posti.filter(p=> p.id !== payload);\r\n },\r\n\r\n removeArea(state:State, payload: number)\r\n {\r\n if (state.gestione && state.gestione.currentCemetery && state.gestione.currentCemetery.aree)\r\n state.gestione.currentCemetery.aree = state.gestione.currentCemetery.aree.filter(a=> a.id !== payload);\r\n },\r\n\r\n removePosizioneDefunto(state: State, payload:any){\r\n if (state.gestione && state.gestione.currentArea)\r\n {\r\n const postoId: number = payload.postoId;\r\n const defuntoId: number | null = payload.defuntoId;\r\n const postoFilter = state.gestione.currentArea.posti.filter(i => i.id == postoId);\r\n if (postoFilter && postoFilter.length > 0)\r\n {\r\n const posto = postoFilter[0];\r\n if (defuntoId && posto.posizioneDefunti)\r\n posto.posizioneDefunti = posto.posizioneDefunti!.filter(i=> i.id !== defuntoId)\r\n \r\n //se non ci sono altri defunti nel posto cancello anche il posto\r\n if (!posto.posizioneDefunti || posto.posizioneDefunti.length == 0)\r\n state.gestione.currentArea.posti = state.gestione.currentArea.posti.filter(p=> p.id !== postoId);\r\n }\r\n }\r\n },\r\n //commit('removePosizioneDefunto', {postoId, defuntoId: defunto? defunto.id : null})\r\n\r\n \r\n }\r\n});\r\n//\r\n// @see https://github.com/vuejs/vuex/tree/v4.0.0-rc.1\r\n//\r\n\r\n\r\nexport default store;","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./simplecontent.vue?vue&type=style&index=0&id=4ed42616&lang=css\"","import { CemeteryAreaEditCommandDTO, CemeteryPostoDTO, CemeteryPostoEditCommandDTO, EditPosizioneDefuntoDTO } from '@/models';\r\nimport { Filesystem, Directory, Encoding, ReadFileResult } from '@capacitor/filesystem';\r\nimport { jsonEval } from '@firebase/util';\r\nimport { IonMenuToggle } from '@ionic/vue';\r\nimport { connectFirestoreEmulator } from 'firebase/firestore';\r\nimport { DataService } from './data.service';\r\nimport { ImageKitClient } from './imagekit.service';\r\nimport {AzureBlobStorageClient} from '@/services/azure.blobstorage.service';\r\n\r\nexport class AldilappFileSyncService {\r\n \r\n async deleteFile (filepath: string) : Promise {\r\n try{\r\n if (!filepath.startsWith('http'))\r\n {\r\n console.log('Deleting file', filepath);\r\n await Filesystem.deleteFile({\r\n path: filepath,\r\n directory: Directory.Data\r\n });\r\n return true;\r\n }\r\n else {\r\n //cancello file dallo storage online\r\n return true;\r\n }\r\n }\r\n catch(error: any) \r\n {\r\n console.log('Errore rimozione',error); \r\n return false;\r\n }\r\n }\r\n\r\n private getPostoBasePath(cemeteryId: number, areaId: number) : string {\r\n return 'sync-pd/c'+cemeteryId+'/a'+areaId;\r\n }\r\n\r\n private getAreaBasePath(cemeteryId: number) : string {\r\n return 'sync-pd/c'+cemeteryId;\r\n }\r\n \r\n\r\n async saveAudioFile (cemeteryId: number, areaId: number, filename: string, base64: string ) : Promise {\r\n const filepath = this.getPostoBasePath(cemeteryId,areaId) + '/audio/'+filename;\r\n const result = await Filesystem.writeFile({\r\n path: filepath, \r\n directory: Directory.Data, \r\n data: base64,\r\n recursive: true\r\n });\r\n if (result && result.uri)\r\n //return result.uri.startsWith('/'+Directory.Data+'/') ? result.uri.replace('/'+Directory.Data+'/',\"\") : result.uri;\r\n return filepath;\r\n return null;\r\n }\r\n\r\n async savePhotoFile (cemeteryId: number, areaId: number, filename: string, base64: string ) : Promise {\r\n const filepath = this.getPostoBasePath(cemeteryId,areaId) + '/photo/'+filename;\r\n const result = await Filesystem.writeFile({\r\n path: filepath, \r\n directory: Directory.Data, \r\n data: base64,\r\n recursive: true\r\n });\r\n if (result && result.uri)\r\n return filepath;\r\n\r\n return null;\r\n }\r\n\r\n private async saveJsonFile (filepath: string, data: string ) : Promise {\r\n console.log('Save json in ',filepath);\r\n //await this.makeDir(filepath);\r\n const result = await Filesystem.writeFile({\r\n path: filepath, \r\n directory: Directory.Data, \r\n data: data,\r\n encoding: Encoding.UTF8,\r\n recursive: true,\r\n \r\n });\r\n if (result && result.uri)\r\n return true;\r\n return false;\r\n }\r\n \r\n \r\n async saveItem(posto: CemeteryPostoEditCommandDTO, defunto: EditPosizioneDefuntoDTO, cemeteryId: number ) : Promise {\r\n const basepath = this.getPostoBasePath(cemeteryId,posto.areaId) + '/json/';\r\n //const filename = 'p'+ posto.progressivo+'_'+ new Date().getTime() +\".json\"; \r\n let filename = 'p'+ posto.id;\r\n if (defunto && !posto.isVuoto)\r\n filename += '.d'+defunto.id;\r\n filename += \".json\";\r\n const filepath = basepath+filename;\r\n \r\n const obj = {posto: posto, defunto: defunto};\r\n const json = JSON.stringify(obj);\r\n return await this.saveJsonFile(filepath, json);\r\n }\r\n\r\n async deleteItem (cemeteryId:number, areaId:number, postoId: number, defunto: EditPosizioneDefuntoDTO | null) : Promise {\r\n try{\r\n if (defunto && defunto.censimentoVoiceUrl)\r\n this.deleteFile(defunto.censimentoVoiceUrl);\r\n \r\n const basepath = this.getPostoBasePath(cemeteryId,areaId) + '/json/';\r\n let filename = 'p'+ postoId;\r\n if (defunto)\r\n filename += '.d'+defunto.id;\r\n filename += \".json\";\r\n const filepath = basepath+filename;\r\n\r\n this.deleteFile(filepath);\r\n return true;\r\n }\r\n catch(error: any) \r\n {\r\n console.log('Errore rimozione',error); \r\n return false;\r\n }\r\n }\r\n\r\n\r\n async saveAreaItem(cemeteryId: number, area: CemeteryAreaEditCommandDTO) : Promise {\r\n const basepath = this.getAreaBasePath(cemeteryId) + '/json/';\r\n const filename = 'area'+ area.id; \r\n const filepath = basepath+filename;\r\n const json = JSON.stringify(area);\r\n return await this.saveJsonFile(filepath, json);\r\n }\r\n\r\n async deleteAreaItem (cemeteryId:number, areaId:number) : Promise {\r\n try\r\n {\r\n let basepath = this.getAreaBasePath(cemeteryId) + '/json/';\r\n let filename = 'area'+ areaId; \r\n let filepath = basepath+filename;\r\n this.deleteFile(filepath);\r\n\r\n //cancello la directory associata all'area\r\n basepath = this.getPostoBasePath(cemeteryId,areaId);\r\n await Filesystem.rmdir({\r\n path: basepath,\r\n directory: Directory.Data,\r\n recursive: true\r\n });\r\n return true;\r\n }\r\n catch(error: any) \r\n {\r\n console.log('Errore rimozione',error); \r\n return false;\r\n }\r\n }\r\n\r\n \r\n\r\n \r\n async getNumFileToSyncInArea(cemeteryId: number, areaId: number) : Promise {\r\n const basepath = this.getPostoBasePath(cemeteryId,areaId) + '/json/';\r\n const ret = await this.makeDir(basepath);\r\n //if (ret) return 0; // dir appena creata quindi 0\r\n const result = await Filesystem.readdir({\r\n path: basepath, \r\n directory: Directory.Data, \r\n });\r\n console.log('files', result.files)\r\n return result.files.length;\r\n }\r\n\r\n async getNumAreeToSync(cemeteryId: number) : Promise {\r\n console.log('getNumAreeToSync');\r\n const basepath = this.getAreaBasePath(cemeteryId) + '/json/';\r\n const ret = await this.makeDir(basepath);\r\n //if (ret) return 0; // dir appena creata quindi 0\r\n console.log('basepath', basepath);\r\n const result = await Filesystem.readdir({\r\n path: basepath, \r\n directory: Directory.Data, \r\n });\r\n console.log('files', result.files)\r\n return result.files.length;\r\n }\r\n\r\n private async makeDir (path: string) : Promise{\r\n try {\r\n const ret = await Filesystem.mkdir({\r\n path: path,\r\n directory: Directory.Data,\r\n recursive: true,\r\n });\r\n return true;\r\n } catch (e) {\r\n //console.log(\"Unable to make directory\", e);\r\n\r\n return false;\r\n }\r\n }\r\n\r\n private getFileExtension(data: string) {\r\n const arr = data.split(',');\r\n const matchs = arr[0].match(/:(.*?);/);\r\n if (!matchs)\r\n return;\r\n const mime = matchs[1];\r\n const ext = mime.split('/').pop();\r\n return ext;\r\n }\r\n\r\n async syncCemetery(cemeteryId: number) : Promise {\r\n const basepath = this.getAreaBasePath(cemeteryId) + '/json/';\r\n const result = await Filesystem.readdir({\r\n path: basepath, \r\n directory: Directory.Data, \r\n });\r\n let nKO = 0;\r\n let fData = \"\";\r\n let file: ReadFileResult | null = null;\r\n let fileData: string | null = null;\r\n let obj = null;\r\n let cemetery = null;\r\n for (const filename of result.files ){\r\n try\r\n {\r\n console.log('Sync File:',filename);\r\n fData = basepath+filename;\r\n console.log('Sync Path:',fData);\r\n file = await Filesystem.readFile({\r\n path: fData,\r\n directory: Directory.Data,\r\n encoding: Encoding.UTF8\r\n });\r\n fileData = file.data;\r\n //console.log('filedata',fileData);\r\n obj = JSON.parse(fileData);\r\n cemetery = await DataService.editCemeteryArea(obj);\r\n if (cemetery){\r\n await FileSync.deleteFile(basepath+filename);\r\n console.log('Eliminato file json locale');\r\n }\r\n }\r\n catch (error: any){\r\n console.log('Errore sync file: '+filename, error);\r\n nKO++;\r\n } \r\n }\r\n return (nKO == 0);\r\n }\r\n\r\n async syncArea(cemeteryId: number, areaId: number) : Promise {\r\n const basepath = this.getPostoBasePath(cemeteryId, areaId)+'/json/';\r\n const result = await Filesystem.readdir({\r\n path: basepath, \r\n directory: Directory.Data, \r\n });\r\n\r\n let file: ReadFileResult | null = null;\r\n let fileData: string | null = null;\r\n let obj = null;\r\n let posto: CemeteryPostoEditCommandDTO | null = null;\r\n let defunto: EditPosizioneDefuntoDTO | null = null;\r\n let nKO = 0;\r\n let fVoice = \"\";\r\n let fImage = \"\";\r\n let fData = \"\";\r\n let res: CemeteryPostoDTO | null = null;\r\n const remoteFolder = \"aldilapp/censimento/c\"+cemeteryId+\"/a\"+areaId;\r\n \r\n for (const filename of result.files ){\r\n //result.files.forEach(async (filename) => {\r\n try\r\n {\r\n fVoice = \"\";\r\n fImage = \"\";\r\n\r\n console.log('Sync File:',filename);\r\n fData = basepath+filename;\r\n console.log('Sync Path:',fData);\r\n file = await Filesystem.readFile({\r\n path: fData,\r\n directory: Directory.Data,\r\n encoding: Encoding.UTF8\r\n });\r\n \r\n fileData = file.data;\r\n //console.log('filedata',fileData);\r\n obj = JSON.parse(fileData);\r\n console.log('Parsed:', obj);\r\n posto = obj.posto;\r\n defunto = obj.defunto;\r\n\r\n if (!posto)\r\n throw new Error('File json non contente informazioni sul posto');\r\n\r\n res = await DataService.editCemeteryPosto(posto);\r\n if (!res)\r\n throw new Error('Errore nel salvataggio delle info relative al posto');\r\n \r\n if (!posto.isVuoto && defunto)\r\n {\r\n defunto!.postoId = res.id; //--> assegno il posto al defunto\r\n\r\n if (defunto && defunto.censimentoImageUrl && !defunto.censimentoImageUrl.startsWith('http'))\r\n {\r\n console.log('Trasferimento su imagekit della foto');\r\n const filename = posto!.progressivo + '_photo'+'.'+this.getFileExtension(defunto.censimentoImageUrl); \r\n const url = await ImageKitClient.uploadImage(defunto.censimentoImageUrl,filename,remoteFolder,[]);\r\n console.log('File caricato:', url);\r\n if (!url)\r\n throw new Error(\"Problema upload photo\");\r\n defunto.censimentoImageUrl = url;\r\n }\r\n\r\n if (defunto && defunto.censimentoVoiceUrl && !defunto.censimentoVoiceUrl.startsWith('http'))\r\n {\r\n fVoice = defunto.censimentoVoiceUrl;\r\n const audioFile = await Filesystem.readFile({\r\n path: defunto.censimentoVoiceUrl,\r\n directory: Directory.Data\r\n });\r\n const base64 = audioFile.data;\r\n\r\n let mimeType = \"\";\r\n if (defunto.censimentoVoiceUrl.endsWith(\".aac\"))\r\n mimeType = \"audio/aac\";\r\n else if (defunto.censimentoVoiceUrl.endsWith(\".webm\"))\r\n mimeType = \"audio/webm;codecs=opus\";\r\n else if (defunto.censimentoVoiceUrl.endsWith(\".mp4\"))\r\n mimeType = \"audio/mp4\";\r\n else \r\n mimeType = \"audio/wav\";\r\n \r\n console.log('Mimetype from extension:', mimeType);\r\n \r\n const folderpath = \"c\"+cemeteryId+\"/a\"+posto.areaId;\r\n const index = defunto.censimentoVoiceUrl.lastIndexOf('/');\r\n const filename = defunto.censimentoVoiceUrl.substring(index+1);\r\n \r\n \r\n const url = await AzureBlobStorageClient.uploadBase64(base64,mimeType, filename,folderpath);\r\n \r\n console.log('File audio caricato:', url);\r\n if (!url)\r\n throw new Error(\"Problema upload audio\");\r\n defunto.censimentoVoiceUrl = url;\r\n }\r\n\r\n res = await DataService.editPosizioneDefunto(defunto);\r\n\r\n console.log('Result edit ', res);\r\n if (res && fVoice){\r\n await FileSync.deleteFile(fVoice);\r\n console.log('Eliminato file voce locale');\r\n } \r\n }\r\n\r\n if (res){\r\n await FileSync.deleteFile(basepath+filename);\r\n console.log('Eliminato file json locale');\r\n }\r\n\r\n\r\n }\r\n catch (error: any){\r\n console.log('Errore sync file: '+filename, error);\r\n nKO++;\r\n } \r\n };\r\n return (nKO == 0);\r\n\r\n }\r\n \r\n \r\n\r\n}\r\n\r\nexport const FileSync = new AldilappFileSyncService();","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TabInfo.vue?vue&type=style&index=0&id=690a9591&scoped=true&lang=css\"","import { AxiosRequestConfig, AxiosResponse } from \"axios\";\r\nimport { PagedSearchFilterDTO, SearchResultItemDTO, LocationDTO, CemeteryDTO, PagedResultDTO, ShopItemDTO, OrderDTO, NewOrderDTO, NewContetDTO, ContentDTO,FeaturedContetDTO, CemeteryAreaEditCommandDTO, CemeteryAreaDTO,\r\n NewRelationAppUserDefuntoDTO, RemoveRelationAppUserDefuntoDTO, AppUserLoginDTO, UserDTO, AppUserPersonalInfoDTO,EditAppUserPersonalInfoDTO, EditConfirmedPhoneNumberDTO, UserSubscriptionDTO, EditSubscriptionsDTO, LoadOtherContentsRequestDTO, AppUserLocationInterestDTO, \r\n CemeteryPostoDTO, PosizioneDefuntoDTO, EditPosizioneDefuntoDTO, CemeteryPostoEditCommandDTO } from \"@/models\";\r\nimport {ApiService} from \"./api.service\";\r\nimport { ResultItem } from \"@/store\";\r\n\r\nclass DataServiceResponse {\r\n \r\n success: boolean;\r\n errorCode: string | null = null;\r\n errorMessage: string | null = null;\r\n response: any;\r\n\r\n constructor(success: boolean, errorCode: string | null, errorMessage: string | null, response: any) {\r\n this.success = success;\r\n this.errorMessage = errorMessage;\r\n this.errorCode = errorCode;\r\n this.response = response;\r\n }\r\n}\r\n\r\nconst DataService = {\r\n\r\n lastResult: null, \r\n //baseUrl = \"https://localhost:44386/api-ver2/\",\r\n\r\n async getCitiesByCountry(country: string | null) : Promise> {\r\n const endpoint = \"locations/CitiesByCountry/\" + (country ?? \"it\").toLowerCase();\r\n //console.log('Chiamata endpoint:', endpoint);\r\n const ret = await ApiService.get(endpoint);\r\n //console.log('Risposta:', ret); \r\n return ret.data;\r\n },\r\n\r\n async getProvicesByCountry(country: string | null) : Promise> {\r\n const endpoint = \"locations/ProvicesByCountry/\" + (country ?? \"it\").toLowerCase();\r\n //console.log('Chiamata endpoint:', endpoint);\r\n const ret = await ApiService.get(endpoint);\r\n //console.log('Risposta:', ret); \r\n return ret.data;\r\n },\r\n\r\n async getCitiesByProvince(provinceName: string) : Promise> {\r\n const endpoint = \"locations/CitiesByProvince/\" + provinceName.toLowerCase();\r\n //console.log('Chiamata endpoint:', endpoint);\r\n const ret = await ApiService.get(endpoint);\r\n //console.log('Risposta:', ret); \r\n return ret.data;\r\n },\r\n\r\n async getCemeteriesByCity(locationName: string) : Promise {\r\n const endpoint = \"locations/CemeteriesByCity/\" + locationName.toLowerCase();\r\n const ret = await ApiService.get(endpoint);\r\n if (ret.data != undefined && ret.data.length > 1)\r\n {\r\n ret.data.unshift({\r\n address: \"\",\r\n city: \"Campli\",\r\n country: \"IT\",\r\n id: 0,\r\n name: \"- Tutti i cimiteri -\",\r\n prov: \"TE\"}\r\n );\r\n }\r\n return ret.data; \r\n },\r\n\r\n async getCemeteryById(id: number) : Promise {\r\n const endpoint = \"locations/CemeteriesByIdNew/\" + id;\r\n const ret = await ApiService.get(endpoint); \r\n return ret.data; \r\n },\r\n\r\n async getCemeteryAreaById(id: number) : Promise {\r\n const endpoint = \"locations/CemeteryAreaById/\" + id;\r\n const ret = await ApiService.get(endpoint); \r\n console.log('getCemeteryAreaById ',id,':', ret ) \r\n return ret.data; \r\n },\r\n\r\n async getCemeteryPostoById(id: number) : Promise {\r\n const endpoint = \"locations/CemeteryPostoById/\" + id;\r\n const ret = await ApiService.get(endpoint); \r\n return ret.data; \r\n },\r\n\r\n async editCemeteryArea (payload: CemeteryAreaEditCommandDTO) : Promise {\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/locations/EditCemeteryArea\",\r\n data: payload\r\n };\r\n console.log('editCemeteryArea request',payload);\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async editCemeteryPosto (payload: CemeteryPostoEditCommandDTO) : Promise {\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"locations/EditCemeteryPosto\",\r\n data: payload\r\n };\r\n //console.log('editCemeteryPosto request',payload);\r\n const response = await ApiService.customRequest(requestData);\r\n console.log('editCemeteryPosto response',response);\r\n\r\n return response.data; \r\n },\r\n\r\n async editPosizioneDefunto (payload: EditPosizioneDefuntoDTO) : Promise {\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"locations/EditPosizioneDefunto\",\r\n data: payload\r\n };\r\n //console.log('editCemeteryPosto request',payload);\r\n const response = await ApiService.customRequest(requestData);\r\n console.log('editCemeteryPosto response',response);\r\n\r\n return response.data; \r\n },\r\n\r\n async deletePosizioneDefunto (positionId: number) : Promise {\r\n const requestData: AxiosRequestConfig = {\r\n method: \"delete\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"locations/DeletePosizioneDefunto/\"+positionId\r\n };\r\n //console.log('editCemeteryPosto request',payload);\r\n const response = await ApiService.customRequest(requestData);\r\n console.log('deletePosizioneDefunto response',response);\r\n },\r\n\r\n async deletePosto (postoId: number) : Promise {\r\n const requestData: AxiosRequestConfig = {\r\n method: \"delete\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"locations/DeletePosto/\"+postoId\r\n };\r\n //console.log('editCemeteryPosto request',payload);\r\n const response = await ApiService.customRequest(requestData);\r\n console.log('requestData response',response);\r\n },\r\n\r\n async deleteArea (areaId: number) : Promise {\r\n const requestData: AxiosRequestConfig = {\r\n method: \"delete\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"locations/DeleteArea/\"+areaId\r\n };\r\n //console.log('editCemeteryPosto request',payload);\r\n const response = await ApiService.customRequest(requestData);\r\n console.log('requestData response',response);\r\n },\r\n\r\n\r\n async getDetail(id: number) : Promise {\r\n const endpoint = \"defunti/detail/\" + id;\r\n const ret = await ApiService.get(endpoint);\r\n \r\n return ret; \r\n },\r\n\r\n async getDefuntoShareLink(id: number) : Promise {\r\n const endpoint = \"defunti/detail/\"+id+\"/sharelink\";\r\n const response = await ApiService.get(endpoint);\r\n \r\n return response.data; \r\n },\r\n \r\n\r\n async getNamesByCimitery (cemeteryId: number) : Promise> {\r\n const result = [\"A\",\"B\",\"C\"]\r\n return result;\r\n },\r\n\r\n async getPagedDefuntiByFilter (filter: PagedSearchFilterDTO) : Promise {\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/defunti/pagedfilter\",\r\n data: filter\r\n };\r\n console.log('getPagedDefuntiByFilter request',requestData);\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async getAllShopItemsForCemetery (cemeteryId: number) : Promise { \r\n const endpoint = \"shop/ShopItemsByCemeteryId/\" + cemeteryId;\r\n const response = await ApiService.get(endpoint);\r\n return response.data; \r\n },\r\n\r\n async createCart (cartData: NewOrderDTO) : Promise { \r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/shop/cart\",\r\n data: cartData\r\n };\r\n\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async createOrder (orderData: OrderDTO) : Promise { \r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/shop/order\",\r\n data: orderData\r\n }; \r\n\r\n console.log('createOrder postData:', orderData);\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async addContent (content: NewContetDTO) : Promise { \r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/defunti/addcontent\",\r\n data: content\r\n }; \r\n\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async addDefunto (relation: NewRelationAppUserDefuntoDTO) : Promise { \r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/addDefunto\",\r\n data: relation\r\n }; \r\n\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async removeDefunto (relation: RemoveRelationAppUserDefuntoDTO) : Promise { \r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/removeDefunto\",\r\n data: relation\r\n }; \r\n\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async addLoginData (loginData: AppUserLoginDTO) : Promise { \r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/addLoginData\",\r\n data: loginData\r\n }; \r\n console.log('postAppUserLogin.Request:', loginData);\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async deleteAccount () : Promise { \r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/deleteAccount\",\r\n data: {}\r\n }; \r\n\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n\r\n async getPersonalInfo() : Promise{\r\n const endpoint = \"appUsers/getPersonalInfo\";\r\n const response = await ApiService.get(endpoint);\r\n return response.data; \r\n },\r\n\r\n async editPersonalInfo(info: EditAppUserPersonalInfoDTO) : Promise{\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/editPersonalInfo\",\r\n data: info\r\n }; \r\n\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async sendSmsOTP(phone: string) : Promise{\r\n const postData: EditConfirmedPhoneNumberDTO = {username:'', phoneNumber:phone, otp:'' };\r\n console.log('sendSmsOTP',postData);\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\",\r\n },\r\n url: \"/appusers/sendOTPBySMS\",\r\n data: postData\r\n }; \r\n\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async verifyPhone(phone: string, otp: string) : Promise{\r\n const postData: EditConfirmedPhoneNumberDTO = {username:'', phoneNumber:phone, otp:otp };\r\n console.log('verifyPhone',postData);\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/verifyPhone\",\r\n data: postData\r\n }; \r\n\r\n const response = await ApiService.customRequest(requestData);\r\n return response.data; \r\n },\r\n\r\n async uploadDefuntoProfileImage(defuntoId: number, file: File) : Promise{\r\n try{\r\n const formData = new FormData();\r\n formData.append(\"image\", file);\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/defunti/uploadProfileImage/\"+defuntoId,\r\n data: formData\r\n }; \r\n\r\n await ApiService.customRequest(requestData);\r\n return true;\r\n }\r\n catch(error: any){\r\n if (error.response) { // get response with a status code not in range 2xx\r\n console.log('Response data:',error.response.data);\r\n console.log('Status:',error.response.status);\r\n console.log('Headers:',error.response.headers);\r\n } else if (error.request) { // no response\r\n console.log(error.request);\r\n } else { // Something wrong in setting up the request\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n return false;\r\n } \r\n },\r\n\r\n async editDefuntoAdditionalData(defuntoId: number, file: File | undefined, bio: string) : Promise{\r\n try{\r\n const formData = new FormData();\r\n if (file)\r\n formData.append(\"image\", file);\r\n formData.append(\"Bio\", bio);\r\n formData.append(\"DefuntoId\", defuntoId.toString());\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/defunti/editAdditionalData\",\r\n data: formData\r\n }; \r\n\r\n await ApiService.customRequest(requestData);\r\n return true;\r\n }\r\n catch(error: any){\r\n console.log('Error on post editDefuntoAdditionalData')\r\n if (error.response) { // get response with a status code not in range 2xx\r\n console.log('Response data:',error.response.data);\r\n console.log('Status:',error.response.status);\r\n console.log('Headers:',error.response.headers);\r\n } else if (error.request) { // no response\r\n console.log(error.request);\r\n } else { // Something wrong in setting up the request\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n return false;\r\n } \r\n },\r\n\r\n async sendMessage(defuntoId: number | null, subject: string, message: string): Promise{\r\n try{\r\n const postData = {\r\n defuntoId: defuntoId,\r\n subject: subject,\r\n message: message\r\n }\r\n console.log('sendMessage postData: ',postData);\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/sendMessage\",\r\n data: postData\r\n }; \r\n\r\n await ApiService.customRequest(requestData);\r\n return true;\r\n }\r\n catch(error: any){\r\n console.log('Error on post sendMessage')\r\n if (error.response) { // get response with a status code not in range 2xx\r\n console.log('Response data:',error.response.data);\r\n console.log('Status:',error.response.status);\r\n console.log('Headers:',error.response.headers);\r\n } else if (error.request) { // no response\r\n console.log(error.request);\r\n } else { // Something wrong in setting up the request\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n return false;\r\n } \r\n },\r\n\r\n async uploadUserProfileImage(file: File) : Promise{\r\n try{\r\n const formData = new FormData();\r\n formData.append(\"image\", file);\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/uploadUserProfileImage\",\r\n data: formData\r\n }; \r\n\r\n const result = await ApiService.customRequest(requestData);\r\n return result.data;\r\n }\r\n catch(error: any){\r\n console.log('Error on post uploadUserProfileImage')\r\n if (error.response) { // get response with a status code not in range 2xx\r\n console.log('Response data:',error.response.data);\r\n console.log('Status:',error.response.status);\r\n console.log('Headers:',error.response.headers);\r\n } else if (error.request) { // no response\r\n console.log(error.request);\r\n } else { // Something wrong in setting up the request\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n return null;\r\n } \r\n },\r\n\r\n async editAccount(postData: UserDTO) : Promise{\r\n try{\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/editAccount\",\r\n data: postData\r\n }; \r\n\r\n const result = await ApiService.customRequest(requestData);\r\n return result.data;\r\n }\r\n catch(error: any){\r\n console.log('Error on post editAccount')\r\n if (error.response) { // get response with a status code not in range 2xx\r\n console.log('Response data:',error.response.data);\r\n console.log('Status:',error.response.status);\r\n console.log('Headers:',error.response.headers);\r\n } else if (error.request) { // no response\r\n console.log(error.request);\r\n } else { // Something wrong in setting up the request\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n return null;\r\n } \r\n },\r\n\r\n\r\n async getEventSubscriptions() : Promise>{\r\n const endpoint = \"/notifications/getEventSubscriptions\";\r\n const response = await ApiService.get(endpoint);\r\n return response.data; \r\n },\r\n\r\n async editEventSubscriptions(postData: EditSubscriptionsDTO) : Promise{\r\n try{\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/notifications/editEventSubscriptions\",\r\n data: postData\r\n }; \r\n \r\n const result = await ApiService.customRequest(requestData);\r\n return result.data;\r\n }\r\n catch(error: any){\r\n console.log('Error on post editEventSubscriptions')\r\n if (error.response) { // get response with a status code not in range 2xx\r\n console.log('Response data:',error.response.data);\r\n console.log('Status:',error.response.status);\r\n console.log('Headers:',error.response.headers);\r\n } else if (error.request) { // no response\r\n console.log(error.request);\r\n } else { // Something wrong in setting up the request\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n } \r\n },\r\n\r\n async deleteContent(contentId: number) : Promise{\r\n try{\r\n const requestData: AxiosRequestConfig = {\r\n method: \"delete\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/defunti/deleteContent/\"+contentId,\r\n }; \r\n \r\n const result = await ApiService.customRequest(requestData);\r\n return result.data;\r\n }\r\n catch(error: any){\r\n console.log('Error on post removeContent')\r\n if (error.response) { // get response with a status code not in range 2xx\r\n console.log('Response data:',error.response.data);\r\n console.log('Status:',error.response.status);\r\n console.log('Headers:',error.response.headers);\r\n } else if (error.request) { // no response\r\n console.log(error.request);\r\n } else { // Something wrong in setting up the request\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n } \r\n },\r\n\r\n async loadOtherContents(defuntoId: number, page:number) : Promise {\r\n try{\r\n const postData: LoadOtherContentsRequestDTO = {defuntoId: defuntoId, page: page};\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/defunti/loadOtherContents/\",\r\n data: postData\r\n }; \r\n \r\n const result = await ApiService.customRequest(requestData);\r\n return result.data;\r\n }\r\n catch(error: any){\r\n console.log('Error on post removeContent')\r\n if (error.response) { // get response with a status code not in range 2xx\r\n console.log('Response data:',error.response.data);\r\n console.log('Status:',error.response.status);\r\n console.log('Headers:',error.response.headers);\r\n } else if (error.request) { // no response\r\n console.log(error.request);\r\n } else { // Something wrong in setting up the request\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n\r\n return new Array();\r\n } \r\n },\r\n\r\n async getReleatedDefunti(defuntoId: number) : Promise>{\r\n const endpoint = \"/defunti/getRelatedDefunti/\"+ defuntoId;\r\n const response = await ApiService.get(endpoint);\r\n return response.data; \r\n },\r\n\r\n async getFeaturedDefunti(defuntoId: number) : Promise>{\r\n const endpoint = \"/locations/getFeaturedDefunti/\"+ defuntoId;\r\n const response = await ApiService.get(endpoint);\r\n return response.data; \r\n },\r\n\r\n async getUserLocationInterests() : Promise>{\r\n const endpoint = \"/appusers/getLocationInterest\";\r\n const response = await ApiService.get(endpoint);\r\n return response.data; \r\n },\r\n\r\n async editUserLocationInterest(postData: AppUserLocationInterestDTO) : Promise{\r\n try{\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/appusers/editLocationInterest\",\r\n data: postData\r\n }; \r\n \r\n const result = await ApiService.customRequest(requestData);\r\n return result.data;\r\n }\r\n catch(error: any){\r\n console.log('Error on post editUserLocationInterest')\r\n if (error.response) { // get response with a status code not in range 2xx\r\n console.log('Response data:',error.response.data);\r\n console.log('Status:',error.response.status);\r\n console.log('Headers:',error.response.headers);\r\n } else if (error.request) { // no response\r\n console.log(error.request);\r\n } else { // Something wrong in setting up the request\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n } \r\n },\r\n\r\n async getExtimatedUserInterstCount(lcationName: string) : Promise{\r\n const endpoint = \"/locations/ExtimatedUserInterstCount/\"+ lcationName;\r\n const response = await ApiService.get(endpoint);\r\n return response.data; \r\n },\r\n\r\n async getFeaturedContents() : Promise {\r\n const endpoint = \"/general/FeaturedContents\";\r\n const response = await ApiService.get(endpoint);\r\n return response.data; \r\n },\r\n/*\r\n async registerClick(click: Click): Promise {\r\n const url = \"https://dev.trovapneumatici.it/api/AddClick\"\r\n console.log(click);\r\n const response = await axios.post(url, click);\r\n \r\n if (response.status < 300 && response.data.status == \"success\") {\r\n console.log('Click registrato con successo');\r\n return true; \r\n }\r\n else{\r\n console.log('Click NON registrato');\r\n return false;\r\n }\r\n },*/\r\n}\r\n\r\nexport { DataService }","import { BlobServiceClient } from '@azure/storage-blob';\r\nimport * as dotenv from 'dotenv';\r\ndotenv.config();\r\n\r\nexport class AzureBlobStorageService {\r\n \r\n blobServiceClient: BlobServiceClient;\r\n\r\n constructor() {\r\n const connectionString = process.env.VUE_APP_AZURE_BLOBSTORAGE_ENDPOINT_SAS;\r\n if (!connectionString)\r\n throw new Error(\"Azure Connection String non definita\");\r\n \r\n \r\n this.blobServiceClient = new BlobServiceClient(connectionString!); \r\n \r\n \r\n }\r\n \r\n \r\n\r\n async uploadBase64(base64: string, mimeType: string, filename: string, folder:string) : Promise {\r\n \r\n try\r\n {\r\n const containerName = process.env.VUE_APP_AZURE_BLOBSTORAGE_CONTAINERNAME;\r\n if (!containerName)\r\n throw new Error(\"Azure ContainerName non definito\");\r\n\r\n const containerClient = await this.blobServiceClient.getContainerClient(\r\n containerName\r\n );\r\n //await containerClient.createIfNotExists();\r\n \r\n const blobName = !folder ? filename : folder + '/' + filename;\r\n const blobClient = containerClient.getBlockBlobClient(blobName);\r\n \r\n const buffer = Buffer.from(base64, 'base64');\r\n console.log('Start upload mimetype ', mimeType );\r\n console.log('Start upload file length ', buffer.byteLength );\r\n \r\n const blockResponse = await blobClient.upload(buffer, buffer.byteLength , {\r\n blobHTTPHeaders: { blobContentType: mimeType }\r\n }); \r\n\r\n console.log('File uploaded to Azure response ', blockResponse);\r\n let ret = blobClient.url;\r\n const index = ret.indexOf('?');\r\n if (index>=0)\r\n ret = ret.substring(0,index);\r\n return ret;\r\n }\r\n catch (err: any)\r\n {\r\n console.log('Uploading error', err, ' filename:', filename, ' folder: ', folder);\r\n if (err){\r\n throw new Error('Errore upload file: ['+err?.name+'] '+err?.message);\r\n }\r\n return \"\";\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nexport const AzureBlobStorageClient = new AzureBlobStorageService();","module.exports = __webpack_public_path__ + \"img/logo_app_neg.52551489.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Area.vue?vue&type=style&index=0&id=6e0803d0&scoped=true&lang=css\"","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ion_img = _resolveComponent(\"ion-img\")!\n\n return (_openBlock(), _createBlock(_component_ion_img, {\n alt: \"logo aldilapp\",\n src: _ctx.image,\n class: \"logo\"\n }, null, 8, [\"src\"]))\n}","\r\nimport { IonImg } from '@ionic/vue'\r\nimport { defineComponent, computed } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'aldLogo',\r\n components: { IonImg },\r\n setup() {\r\n const image = computed(() => require('/public/assets/logo/logo_app_neg.png'))\r\n\r\n return {\r\n image,\r\n }\r\n }\r\n})\r\n","import { render } from \"./ald-logo.vue?vue&type=template&id=cc8fd9be&scoped=true&ts=true\"\nimport script from \"./ald-logo.vue?vue&type=script&lang=ts\"\nexport * from \"./ald-logo.vue?vue&type=script&lang=ts\"\n\nimport \"./ald-logo.vue?vue&type=style&index=0&id=cc8fd9be&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cc8fd9be\"]])\n\nexport default __exports__","import {\r\n alertController, loadingController\r\n } from \"@ionic/vue\";\r\n\r\n\r\nconst Utils = {\r\n\r\n loading: 0,\r\n\r\n PresentAlertError: async (\r\n title: string,\r\n msg: string,\r\n buttons: Array\r\n ) => {\r\n const alert = await alertController.create({\r\n cssClass: \"my-alert-class\",\r\n header: title,\r\n subHeader: \"\",\r\n message: msg,\r\n buttons,\r\n });\r\n await alert.present();\r\n const { role } = await alert.onDidDismiss();\r\n console.log(\"onDidDismiss resolved with role\", role);\r\n },\r\n\r\n GenerateRandomUniquiId: () => {\r\n // Math.random should be unique because of its seeding algorithm.\r\n // Convert it to base 36 (numbers + letters), and grab the first 9 characters\r\n // after the decimal.\r\n return '_' + Math.random().toString(36).substring(2, 9);\r\n }\r\n \r\n}\r\n\r\nexport default Utils;","import axios, { AxiosRequestConfig } from \"axios\";\r\nimport {store} from '@/store';\r\nimport {StorageService} from \"@/services/storage.service\";\r\nimport {loadingController} from '@ionic/vue';\r\nimport {UserLoginRequestDTO} from \"@/models\";\r\nclass ApiError extends Error {\r\n baseError: any;\r\n constructor(message: string, baseError: any | undefined = undefined) {\r\n super(message);\r\n this.name = this.constructor.name;\r\n this.message = message;\r\n this.baseError = baseError;\r\n }\r\n}\r\n\r\nconst ApiService = {\r\n _requestInterceptor: 0,\r\n _401interceptor: 0,\r\n _400interceptor: 0,\r\n\r\n init(baseURL: string | undefined) {\r\n axios.defaults.baseURL = baseURL;\r\n //this.mount400Interceptor();\r\n },\r\n\r\n setHeader() {\r\n const token = StorageService.getToken();\r\n console.log('Configurazione Header ApiService', token)\r\n axios.defaults.headers.common[\r\n \"Authorization\"\r\n ] = 'Bearer '+token;\r\n },\r\n\r\n removeHeader() {\r\n axios.defaults.headers.common = {};\r\n },\r\n\r\n async signIn(signInData: UserLoginRequestDTO) : Promise {\r\n \r\n console.log('signIn:', signInData)\r\n\r\n /*if (signInData == null)\r\n {\r\n signInData = {username: process.env.VUE_APP_CLIENT_EMAIL, password: process.env.VUE_APP_CLIENT_SECRET}; \r\n }*/\r\n \r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/AuthManagement/Login\",\r\n data: {\r\n Username: signInData.username,\r\n Password: signInData.password,\r\n Email: signInData.email,\r\n }\r\n };\r\n\r\n try {\r\n const response = await ApiService.customRequest(requestData);\r\n \r\n if (response.status === 400) {\r\n console.log('Intercettato errore 400 su autenticazione API: ');\r\n const errors = response.data.errors;\r\n const filteredErrors = errors.filter( (err: string) => {\r\n return err == \"Email doesn't exists\";\r\n });\r\n \r\n if (filteredErrors)\r\n {\r\n //Nuovo utente\r\n console.log(\"Registrazione nuovo api user \", signInData.username);\r\n await this.signup(signInData.username, signInData.password);\r\n return;\r\n }\r\n }\r\n else if (response.status === 200) {\r\n console.log('Risposta Api login: ',response.data); \r\n\r\n StorageService.saveToken(response.data.token);\r\n StorageService.saveRefreshToken(response.data.refreshToken);\r\n \r\n this.setHeader();\r\n //ApiService.mountRequestInterceptor();\r\n this.mount401Interceptor();\r\n }\r\n else\r\n throw new Error(\"Errore \" + response.status);\r\n } catch (error: any) {\r\n throw new ApiError(\"Autenticazione fallita\", error);\r\n }\r\n }, \r\n\r\n async signup(email: any, password: any) : Promise{\r\n console.log('signup:', email, password, name);\r\n const signupData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: { \"Content-Type\": \"application/json\", \"Access-Control-Allow-Origin\": \"*\" },\r\n url: \"/AuthManagement/Register\",\r\n data: {\r\n Email: email,\r\n Password: password,\r\n Username: email\r\n }\r\n };\r\n\r\n try {\r\n\r\n const response = await ApiService.customRequest(signupData);\r\n \r\n console.log('Risposta Api Register: ',response.data); \r\n\r\n StorageService.saveToken(response.data.token);\r\n StorageService.saveRefreshToken(response.data.refreshToken);\r\n \r\n this.setHeader();\r\n //ApiService.mountRequestInterceptor();\r\n //ApiService.mountMy401Interceptor();\r\n } catch (error: any) {\r\n //this.catchError(error);\r\n throw new ApiError(\"Registrazione fallita\", error);\r\n }\r\n },\r\n\r\n async refreshToken() : Promise {\r\n \r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: \"/AuthManagement/RefreshToken\",\r\n data:{\r\n Token: StorageService.getToken(),\r\n RefreshToken: StorageService.getRefreshToken()\r\n }\r\n };\r\n\r\n try {\r\n const response = await ApiService.customRequest(requestData);\r\n StorageService.saveToken(response.data.token);\r\n StorageService.saveRefreshToken(response.data.refreshToken);\r\n ApiService.setHeader();\r\n\r\n //ApiService.mount401Interceptor();\r\n } catch (error: any) {\r\n throw new ApiError(\"Autenticazione fallita\", error);\r\n }\r\n }, \r\n\r\n get(resource: string) {\r\n try{\r\n return axios.get(resource);\r\n }\r\n catch (err: any)\r\n {\r\n throw new ApiError(\"Errore recupero dati\",err); \r\n }\r\n },\r\n\r\n post(resource: string, data: any) {\r\n try{\r\n return axios.post(resource, data);\r\n }\r\n catch (err: any)\r\n {\r\n throw new ApiError(\"Errore invio dati\",err); \r\n }\r\n },\r\n\r\n put(resource: string, data: any) {\r\n try{\r\n return axios.put(resource, data);\r\n }\r\n catch (err: any)\r\n {\r\n throw new ApiError(\"Errore modifica dati\",err); \r\n }\r\n },\r\n\r\n delete(resource: string) {\r\n try{\r\n return axios.delete(resource);\r\n }\r\n catch (err: any)\r\n {\r\n throw new ApiError(\"Errore eliminazione dati\",err); \r\n }\r\n },\r\n\r\n customRequest(data: AxiosRequestConfig) {\r\n try{\r\n return axios(data);\r\n }\r\n catch (err: any)\r\n {\r\n throw new ApiError(\"Errore recupero dati\",err); \r\n }\r\n },\r\n\r\n mountRequestInterceptor() {\r\n this._requestInterceptor = axios.interceptors.request.use(async config => {\r\n console.log(\"show loading\");\r\n const loading = await loadingController.create({\r\n message: 'Caricamento...'\r\n });\r\n await loading.present();\r\n\r\n return config;\r\n });\r\n },\r\n\r\n mount401Interceptor() {\r\n this._401interceptor = axios.interceptors.response.use(\r\n async response => {\r\n return response;\r\n },\r\n async error => { \r\n if (error.request.status === 401) {\r\n \r\n try {\r\n console.log(\"Avvio procedura di refresh token\")\r\n await this.refreshToken();\r\n } catch (e) \r\n {\r\n throw error;\r\n }\r\n \r\n }\r\n else throw error;\r\n }\r\n );\r\n },\r\n\r\n mount400Interceptor() {\r\n this._400interceptor = axios.interceptors.response.use(\r\n async response => {\r\n return response;\r\n },\r\n async error => {\r\n console.log('response: ',error.response);\r\n console.log('request:', error.request);\r\n if (error.request.status === 400) {\r\n if (error.config.url.includes(\"/Login\")) {\r\n try {\r\n console.log('Intercettato errore 400 su autenticazione API: ');\r\n const errors = error.response.data.errors;\r\n const filteredErrors = errors.filter( (err: string) => {\r\n return err == \"Email doesn't exists\";\r\n });\r\n \r\n const postData = JSON.parse(error.response.config.data);\r\n console.log(\"DATI:\", postData);\r\n if (filteredErrors && postData.Email != process.env.VUE_APP_CLIENT_EMAIL)\r\n {\r\n //Nuovo utente\r\n console.log(\"Registrazione nuovo api user \", postData.Email);\r\n try{\r\n await this.signup(postData.Email, postData.Password);\r\n //await this.signIn({username: postData.Email, password: postData.Password});\r\n }\r\n catch (err: any)\r\n {\r\n console.log(err);\r\n return false;\r\n }\r\n }\r\n\r\n } catch (e) {\r\n console.log('Errore gestione Stato 400: ',e)\r\n }\r\n } \r\n \r\n }\r\n else throw error;\r\n }\r\n );\r\n },\r\n\r\n unmount401Interceptor() {\r\n axios.interceptors.response.eject(this._401interceptor);\r\n },\r\n\r\n unmount400Interceptor() {\r\n axios.interceptors.response.eject(this._400interceptor);\r\n }\r\n}\r\n\r\nexport { ApiService, ApiError};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Posto.vue?vue&type=style&index=0&id=4520c60e&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/logo-aldilapp-social-512x512.9064d628.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Shop.vue?vue&type=style&index=0&id=518c0778&lang=css\"","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"bc66\";","import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ion_title = _resolveComponent(\"ion-title\")!\n const _component_ion_toolbar = _resolveComponent(\"ion-toolbar\")!\n const _component_ion_header = _resolveComponent(\"ion-header\")!\n const _component_ion_img = _resolveComponent(\"ion-img\")!\n const _component_ion_thumbnail = _resolveComponent(\"ion-thumbnail\")!\n const _component_ion_text = _resolveComponent(\"ion-text\")!\n const _component_ion_item = _resolveComponent(\"ion-item\")!\n const _component_ion_icon = _resolveComponent(\"ion-icon\")!\n const _component_ion_label = _resolveComponent(\"ion-label\")!\n const _component_ion_menu_toggle = _resolveComponent(\"ion-menu-toggle\")!\n const _component_ion_select_option = _resolveComponent(\"ion-select-option\")!\n const _component_ion_select = _resolveComponent(\"ion-select\")!\n const _component_ion_list = _resolveComponent(\"ion-list\")!\n const _component_ion_content = _resolveComponent(\"ion-content\")!\n const _component_ion_menu = _resolveComponent(\"ion-menu\")!\n const _component_ion_router_outlet = _resolveComponent(\"ion-router-outlet\")!\n const _component_ion_split_pane = _resolveComponent(\"ion-split-pane\")!\n const _component_ion_app = _resolveComponent(\"ion-app\")!\n\n return (_openBlock(), _createBlock(_component_ion_app, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_split_pane, {\n \"content-id\": \"content1\",\n when: \"lg\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_menu, {\n side: \"start\",\n menuId: \"first\",\n contentId: \"content1\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_header, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_toolbar, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_title, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.lang.Side.Title), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_content, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_list, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, { lines: \"none\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_thumbnail, { \"slot:start\": \"\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_img, {\n src: _ctx.photoURL,\n referrerpolicy: 'no-referrer'\n }, null, 8, [\"src\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createElementVNode(\"h6\", null, _toDisplayString(_ctx.nome), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.email), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { lines: \"none\" }),\n _createVNode(_component_ion_item, { lines: \"none\" }),\n (_ctx.isAuth)\n ? (_openBlock(), _createBlock(_component_ion_menu_toggle, {\n key: 0,\n \"auto-hide\": \"false\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, {\n routerDirection: \"forward\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.openAccount())),\n lines: \"full\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n icon: _ctx.personOutline,\n \"slot:start\": \"\"\n }, null, 8, [\"icon\"]),\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Il tuo Account\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.isAuth)\n ? (_openBlock(), _createBlock(_component_ion_menu_toggle, {\n key: 1,\n \"auto-hide\": \"false\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, {\n routerDirection: \"forward\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.openNotifications())),\n lines: \"full\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n icon: _ctx.notificationsOutline,\n \"slot:start\": \"\"\n }, null, 8, [\"icon\"]),\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Gestione Notifiche\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_ion_menu_toggle, { \"auto-hide\": \"false\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, { routerDirection: \"forward\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n icon: _ctx.languageOutline,\n \"slot:start\": \"\"\n }, null, 8, [\"icon\"]),\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.lang.Side.Lingua), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select, {\n value: \"it\",\n onIonChange: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onLangChange($event))),\n modelValue: _ctx.currentLang,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.currentLang) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_select_option, { value: \"it\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.lang.Side.it), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"en\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.lang.Side.en), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"es\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.lang.Side.es), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_menu_toggle, { \"auto-hide\": \"false\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, {\n routerDirection: \"forward\",\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.openPrivacyModal())),\n lines: \"full\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n icon: _ctx.documentLockOutline,\n \"slot:start\": \"\"\n }, null, 8, [\"icon\"]),\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Privacy Policy\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_menu_toggle, { \"auto-hide\": \"false\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, {\n button: \"\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.logout())),\n lines: \"full\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n icon: _ctx.logOutOutline,\n \"slot:start\": \"\"\n }, null, 8, [\"icon\"]),\n (_ctx.isAuth)\n ? (_openBlock(), _createBlock(_component_ion_label, { key: 0 }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.lang.Side.Logout), 1)\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_ion_label, { key: 1 }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.lang.Side.LoginOrRegister), 1)\n ]),\n _: 1\n }))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_router_outlet, { id: \"content1\" })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}","\r\n\r\n\r\n\r\n","import { render } from \"./Modal.vue?vue&type=template&id=59e9f0f2&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=59e9f0f2&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-59e9f0f2\"]])\n\nexport default __exports__","\r\nimport {\r\n IonApp,\r\n IonRouterOutlet,\r\n IonTitle,\r\n IonToolbar,\r\n IonHeader,\r\n IonIcon,\r\n IonItem,\r\n IonList,\r\n IonContent,\r\n IonMenu,\r\n IonThumbnail,\r\n IonImg,\r\n IonLabel,\r\n IonSelect,\r\n IonSelectOption,\r\n IonMenuToggle,\r\n IonText,\r\n alertController,\r\n IonSplitPane,\r\n isPlatform,\r\n getPlatforms,\r\n modalController\r\n} from \"@ionic/vue\";\r\nimport { computed, defineComponent, onMounted, ref } from \"vue\";\r\nimport { auth } from \"./main\";\r\nimport { languageOutline, logOutOutline, documentLockOutline, personOutline, notificationsOutline, cogOutline, homeOutline } from \"ionicons/icons\";\r\nimport { useStore } from \"vuex\";\r\nimport { key, Platform } from \"./store\";\r\nimport { StorageService } from \"./services/storage.service\";\r\nimport { useRouter, useRoute } from \"vue-router\";\r\nimport { ApiService, ApiError } from '@/services/api.service';\r\nimport Utils from \"./services/utils.service\";\r\n//import { CorsAnyware } from \"@/services/corsanyware.service\";\r\nimport axios, { AxiosRequestConfig } from \"axios\";\r\n//import { AuthService } from '@/services/auth.service';\r\n//import aldSidebar from \"@/components/aldilapp/shared/ald-sidebar.vue\";\r\n//import { FirebaseAuthentication } from '@robingenz/capacitor-firebase-authentication';\r\n//import {SplashScreen} from '@capacitor/splash-screen'\r\nimport Modal from \"@/components/Modal.vue\";\r\n//import { FcmManager } from '@/services/fcm.service';\r\nimport { FirebaseMessaging } from '@capacitor-firebase/messaging';\r\nimport { NativeMarket } from \"@capacitor-community/native-market\";\r\nimport { Browser } from '@capacitor/browser';\r\nimport { SplashScreen } from '@capacitor/splash-screen';\r\n//import { Plugins } from '@capacitor/core';\r\nexport default defineComponent({\r\n name: \"App\",\r\n components: {\r\n IonApp,\r\n IonRouterOutlet,\r\n IonTitle,\r\n IonToolbar,\r\n IonHeader,\r\n IonIcon,\r\n IonItem,\r\n IonList,\r\n IonContent,\r\n IonMenu,\r\n IonThumbnail,\r\n IonImg,\r\n IonLabel,\r\n IonSelect,\r\n IonSelectOption,\r\n IonMenuToggle,\r\n IonText,\r\n IonSplitPane,\r\n Modal,\r\n modalController\r\n //aldSidebar\r\n },\r\n\r\n setup() {\r\n const store = useStore(key);\r\n const router = useRouter();\r\n const route = useRoute();\r\n const appSettings = computed(() => store.state.appSettings);\r\n const lang = computed(() => store.state.lang);\r\n const state = computed(() => store.state);\r\n const privacyPolicyContent = ref(\"\");\r\n\r\n const getCurrentUserId = computed(() => store.getters.getCurrentUserId);\r\n const routeAfterSignIn = computed(\r\n () => store.state.auth?.routeAfterSignIn ?? \"/tabs/tab1\"\r\n );\r\n const isAuth = computed(() => {\r\n return (\r\n store.state.auth &&\r\n store.state.auth.user &&\r\n !store.state.auth.user.isAnonymous\r\n );\r\n });\r\n\r\n const isAdmin = computed(() => {\r\n return (\r\n store.state.auth &&\r\n store.state.auth.user &&\r\n !store.state.auth.user.isAnonymous &&\r\n (store.state.auth.roles.includes('CemeteryOperator') || store.state.auth.roles.includes('Admin'))\r\n );\r\n });\r\n\r\n ApiService.init(process.env.VUE_APP_ROOT_API);\r\n\r\n\r\n //if (!state.value.langs) {\r\n const currLang = StorageService.getLang();\r\n store.dispatch(\"selectLang\", currLang ?? \"it\");\r\n StorageService.saveLang(currLang ?? \"it\");\r\n console.log(\"Caricata lingua:\", currLang ?? \"it\");\r\n //}\r\n\r\n const logout = async () => {\r\n //await auth.signOut();\r\n //await FirebaseAuthentication.signOut();\r\n //store.dispatch(\"resetUser\");\r\n //console.log(\"User logged out\");\r\n await store.dispatch('executeLogout');\r\n router.push(\"/login\");\r\n };\r\n\r\n const onLangChange = (event: Event & { target: HTMLInputElement }) => {\r\n const l = event.target.value;\r\n console.log(\"Cambio lingua:\", l);\r\n store.dispatch(\"selectLang\", l);\r\n StorageService.saveLang(l);\r\n };\r\n\r\n const PresentAlertError = async (\r\n title: string,\r\n msg: string,\r\n buttons: Array\r\n ) => {\r\n const alert = await alertController.create({\r\n cssClass: \"my-alert-class\",\r\n header: title,\r\n subHeader: \"\",\r\n message: msg,\r\n buttons,\r\n });\r\n await alert.present();\r\n const { role } = await alert.onDidDismiss();\r\n console.log(\"onDidDismiss resolved with role\", role);\r\n };\r\n\r\n const addListners = async () => {\r\n const result = await FirebaseMessaging.checkPermissions();\r\n if (result.receive == \"granted\") {\r\n await FirebaseMessaging.removeAllListeners();\r\n\r\n FirebaseMessaging.addListener('notificationActionPerformed', (event) => {\r\n console.log('notificationActiosnPerformed:', { event });\r\n const data = event.notification.data;\r\n if (data) {\r\n //console.log('Payload Data: ', data);\r\n const obj: any = data as any;\r\n if (obj.defuntoId) {\r\n const route = \"/tabs/tab1/detail/\" + obj.defuntoId;\r\n console.log('Go to:', route);\r\n router.push(route);\r\n }\r\n else {\r\n console.log('Payload senza defuntoId');\r\n }\r\n }\r\n });\r\n\r\n FirebaseMessaging.addListener('notificationReceived', (event) => {\r\n console.log('notificationReceived:', { event });\r\n });\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n\r\n\r\n const initApp = async () => {\r\n await SplashScreen.hide();\r\n store.dispatch(\"updateInitAppCompleted\", false);\r\n try {\r\n //await refreshToken();\r\n await addListners();\r\n }\r\n catch (err: any) {\r\n console.log('Errore gestione notifiche')\r\n }\r\n try {\r\n\r\n const vernum = process.env.VUE_APP_VERNUM!\r\n const vercode = process.env.VUE_APP_VERCODE!.replaceAll('\"', '');\r\n const platformObj: Platform = {\r\n appVerNumber: vernum,\r\n appVerCode: vercode,\r\n os: isPlatform('ios') ? \"ios\" : isPlatform('android') ? \"android\" : getPlatforms().join()\r\n };\r\n console.log(\"Current platform info\", platformObj);\r\n\r\n //chek new version\r\n await store.dispatch(\"loadAppSettings\");\r\n console.log(\"appSettings\", appSettings.value);\r\n if (appSettings.value) {\r\n if (platformObj.os == \"android\") {\r\n const lastVerCode = appSettings.value.lastAndroidVerCode;\r\n const appName = appSettings.value.androidAppId;\r\n if (platformObj.appVerCode < lastVerCode) {\r\n const buttons = [\r\n {\r\n text: lang.value.App.AggiornaButton,\r\n handler: async () => {\r\n NativeMarket.openStoreListing({\r\n appId: appName,\r\n });\r\n //await Browser.open({ url: 'https://play.google.com/store/apps/details?id=com.stup1.aldilapp&gl=IT' });\r\n },\r\n },\r\n ];\r\n await PresentAlertError(\r\n lang.value.App.AggiornaTitle,\r\n lang.value.App.AggiornaText,\r\n buttons\r\n );\r\n }\r\n } else if (platformObj.os == \"ios\") {\r\n const lastVerCode = appSettings.value.lastIosVerCode;\r\n const appName = appSettings.value.iosAppId;\r\n if (platformObj.appVerCode < lastVerCode) {\r\n const buttons = [\r\n {\r\n text: lang.value.App.AggiornaButton,\r\n handler: async () => {\r\n NativeMarket.openStoreListing({\r\n appId: appName,\r\n });\r\n //await Browser.open({ url: 'https://apps.apple.com/it/app/apple-store/id1567407543' });\r\n },\r\n },\r\n ];\r\n await PresentAlertError(\r\n lang.value.App.AggiornaTitle,\r\n lang.value.App.AggiornaText,\r\n buttons\r\n );\r\n }\r\n }\r\n }\r\n\r\n /*\r\n const currUser = await getCurrentUserId.value;\r\n console.log('Current UID: ', currUser);\r\n if (currUser) \r\n {\r\n if (currUser.startsWith('user_'))\r\n await store.dispatch('executeAnonymousLogin');\r\n else\r\n await store.dispatch('executeLogin', undefined);\r\n \r\n if (\r\n router.currentRoute.value.fullPath != routeAfterSignIn.value\r\n ) {\r\n await router.push(routeAfterSignIn.value);\r\n } \r\n }\r\n */\r\n await store.dispatch(\"updateInitAppCompleted\", true);\r\n }\r\n catch (err: any) {\r\n store.dispatch(\"updateInitAppCompleted\", null);\r\n Utils.PresentAlertError(\"Errore initApp\", err.message, [\"Ok\"]);\r\n }\r\n };\r\n\r\n\r\n const fecthPrivacyPolicy = async (): Promise => {\r\n const feedUrl = \"https://aldilapp.it/wp-json/wp/v2/pages/?slug=privacy-policy\";\r\n /*const corsUrl = \"https://dev.aldilapp.it/api-ver2/corsany/getStringContent/\" + encodeURIComponent(feedUrl);\r\n const requestData: AxiosRequestConfig = {\r\n method: \"get\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": \"*\"\r\n },\r\n url: corsUrl,\r\n };*/\r\n const postData = { uri: feedUrl };\r\n const requestData: AxiosRequestConfig = {\r\n method: \"post\",\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n //url: \"https://dev.aldilapp.it/api-ver2/corsany/getContent\",\r\n url: \"https://dev.aldilapp.it/api-ver2/corsany/Content\",\r\n data: postData\r\n };\r\n\r\n try {\r\n console.log('Requested url:', requestData.url);\r\n const response = await axios(requestData);\r\n //console.log('Response:',response.data);\r\n\r\n console.log('Risposta 1 priviacy policy: ', response.data[0]);\r\n privacyPolicyContent.value = response.data[0].content.rendered;\r\n }\r\n catch (err: any) {\r\n console.log('Error fetching privacy policy: ' + err.message);\r\n //try with corsanywhere\r\n //const response = await CorsAnyware.get(feedUrl);\r\n //console.log('Risposta 2 priviacy policy:', response);\r\n\r\n //privacyPolicyContent.value = response.data[0].content.rendered;\r\n }\r\n };\r\n\r\n const openPrivacyModal = async (): Promise => {\r\n console.log('caricamento privacy policy...');\r\n await fecthPrivacyPolicy();\r\n console.log('caricamento completato, apertura modal...');\r\n\r\n const modal = await modalController.create({\r\n component: Modal,\r\n //cssClass: \"my-custom-modal-css\",\r\n swipeToClose: true,\r\n showBackdrop: true,\r\n componentProps: {\r\n title: 'Privacy Policy',\r\n content: privacyPolicyContent.value,\r\n },\r\n });\r\n return modal.present();\r\n };\r\n\r\n const openAccount = async () => {\r\n await router.push('/tabs/tabAccount/enableDelete');\r\n }\r\n\r\n const openNotifications = async () => {\r\n await router.push('/tabs/notifications');\r\n }\r\n\r\n const admin = async () => {\r\n await router.push('/gestione');\r\n }\r\n const home = async () => {\r\n await router.push('/');\r\n }\r\n\r\n\r\n onMounted(async () => {\r\n console.log(\"Mounted: \", route.path);\r\n //await SplashScreen.show({ autoHide:true, showDuration:3000 });\r\n await initApp();\r\n\r\n //fecthPrivacyPolicy();\r\n });\r\n\r\n\r\n return {\r\n isAuth,\r\n nome: computed(\r\n () => store.state.auth?.nominativo ?? store.state.lang.Auth.Anonimo\r\n ),\r\n photoURL: computed(\r\n (): any =>\r\n store.state.auth?.photoURL ??\r\n require(\"/public/assets/logo/logo-aldilapp-social-512x512.png\")\r\n ),\r\n email: computed(() => store.state.auth?.email ?? \"\"),\r\n languageOutline,\r\n logOutOutline,\r\n personOutline,\r\n cogOutline, homeOutline,\r\n documentLockOutline,\r\n notificationsOutline,\r\n currentLang: computed(() => store.state.currentLang),\r\n allLangs: store.state.langs,\r\n user: auth.currentUser,\r\n logout,\r\n onLangChange,\r\n lang,\r\n openPrivacyModal,\r\n openAccount,\r\n openNotifications,\r\n admin,\r\n isAdmin, home\r\n //router,\r\n };\r\n },\r\n});\r\n","import { render } from \"./App.vue?vue&type=template&id=323c2f01&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ion_router_outlet = _resolveComponent(\"ion-router-outlet\")!\n const _component_ion_icon = _resolveComponent(\"ion-icon\")!\n const _component_ion_label = _resolveComponent(\"ion-label\")!\n const _component_ion_tab_button = _resolveComponent(\"ion-tab-button\")!\n const _component_ion_tab_bar = _resolveComponent(\"ion-tab-bar\")!\n const _component_ion_tabs = _resolveComponent(\"ion-tabs\")!\n const _component_ion_page = _resolveComponent(\"ion-page\")!\n\n return (_openBlock(), _createBlock(_component_ion_page, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_tabs, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_router_outlet),\n _createVNode(_component_ion_tab_bar, { slot: \"bottom\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_tab_button, {\n tab: \"tab1\",\n href: \"/tabs/tab1\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: $setup.search }, null, 8, [\"icon\"]),\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString($setup.lang.Tabs.TitleTab1), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_tab_button, {\n tab: \"tab2\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => ($setup.openTab('/tabs/tab2', true)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: $setup.heart }, null, 8, [\"icon\"]),\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString($setup.lang.Tabs.TitleTab2), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n ($setup.isAuth)\n ? (_openBlock(), _createBlock(_component_ion_tab_button, {\n key: 0,\n tab: \"tabAccount\",\n href: \"/tabs/tabAccount/enableDelete\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: $setup.personOutline }, null, 8, [\"icon\"]),\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString($setup.lang.Tabs.TitleTabAccount), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_ion_tab_button, {\n tab: \"tab4\",\n href: \"/tabs/tab4\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: $setup.informationCircleOutline }, null, 8, [\"icon\"]),\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString($setup.lang.Tabs.TitleTab4), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n ($setup.isAdmin)\n ? (_openBlock(), _createBlock(_component_ion_tab_button, {\n key: 1,\n tab: \"tabAdmin\",\n href: \"/tabs/tabAdmin\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: $setup.cogOutline }, null, 8, [\"icon\"]),\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Gestione\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}","\r\nimport { IonTabBar, IonTabButton, IonTabs, IonLabel, IonIcon, IonPage, IonRouterOutlet } from '@ionic/vue';\r\nimport { ellipse, square, triangle, heart, search, informationCircleOutline, roseOutline, personOutline, cogOutline } from 'ionicons/icons';\r\nimport { useStore } from \"vuex\";\r\nimport { key } from \"../store\";\r\nimport { computed } from \"vue\";\r\nimport { useRouter } from \"vue-router\";\r\nexport default {\r\n name: 'Tabs',\r\n components: { IonLabel, IonTabs, IonTabBar, IonTabButton, IonIcon, IonPage, IonRouterOutlet },\r\n setup() {\r\n const store = useStore(key);\r\n const router = useRouter();\r\n const isAuth = computed(() => {\r\n return (\r\n store.state.auth &&\r\n store.state.auth.user &&\r\n !store.state.auth.user.isAnonymous\r\n );\r\n });\r\n\r\n const isAdmin = computed(() => {\r\n return (\r\n store.state.auth &&\r\n store.state.auth.user &&\r\n !store.state.auth.user.isAnonymous && store.state.auth.roles &&\r\n (store.state.auth.roles.includes('CemeteryOperator') || store.state.auth.roles.includes('Admin'))\r\n );\r\n });\r\n\r\n const openTab = (url: string, forceReload = false) => {\r\n let newUrl = url;\r\n if (forceReload)\r\n newUrl = newUrl + \"/\" + Date.now();\r\n router.push(newUrl);\r\n }\r\n\r\n return {\r\n lang: computed(() => store.state.lang),\r\n ellipse,\r\n square,\r\n triangle,\r\n heart,\r\n search,\r\n informationCircleOutline,\r\n roseOutline,\r\n personOutline,\r\n cogOutline,\r\n isAuth, isAdmin,\r\n openTab\r\n }\r\n }\r\n}\r\n","import { render } from \"./Tabs.vue?vue&type=template&id=a7c1e040&ts=true\"\nimport script from \"./Tabs.vue?vue&type=script&lang=ts\"\nexport * from \"./Tabs.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"shop-container\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ion_back_button = _resolveComponent(\"ion-back-button\")!\n const _component_ion_buttons = _resolveComponent(\"ion-buttons\")!\n const _component_ion_menu_button = _resolveComponent(\"ion-menu-button\")!\n const _component_ald_logo = _resolveComponent(\"ald-logo\")!\n const _component_ion_title = _resolveComponent(\"ion-title\")!\n const _component_ion_toolbar = _resolveComponent(\"ion-toolbar\")!\n const _component_ion_header = _resolveComponent(\"ion-header\")!\n const _component_ion_loading = _resolveComponent(\"ion-loading\")!\n const _component_ShopItem = _resolveComponent(\"ShopItem\")!\n const _component_ion_content = _resolveComponent(\"ion-content\")!\n const _component_ion_page = _resolveComponent(\"ion-page\")!\n\n return (_openBlock(), _createBlock(_component_ion_page, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_header, { class: \"ion-no-border\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_toolbar, { color: \"primary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_buttons, { slot: \"start\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_back_button)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_buttons, { slot: \"end\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_menu_button)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_title, null, {\n default: _withCtx(() => [\n _createVNode(_component_ald_logo)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_loading, {\n \"is-open\": _ctx.isLoading,\n cssClass: \"my-custom-class\",\n message: _ctx.lang.Detail.InCaricamento\n }, null, 8, [\"is-open\", \"message\"]),\n _createVNode(_component_ion_content, { class: \"map-backgorund\" }, {\n default: _withCtx(() => [\n (!_ctx.isLoading && _ctx.shop)\n ? (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.shopItems, (i) => {\n return (_openBlock(), _createBlock(_component_ShopItem, {\n key: i.id,\n id: i.id,\n imageUrl: i.imageUrl,\n title: i.title,\n description: i.description,\n supplierName: i.supplier && i.supplier.completeName ? i.supplier.completeName : \"\",\n supplierLogoImageUrl: i.supplier && i.supplier.imageUrl ? i.supplier.imageUrl : \"\",\n price: i.price\n }, null, 8, [\"id\", \"imageUrl\", \"title\", \"description\", \"supplierName\", \"supplierLogoImageUrl\", \"price\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}","\r\nimport {\r\n IonPage,\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonText,\r\n IonMenuButton,\r\n IonBackButton,\r\n IonButtons,\r\n IonLoading,\r\n IonLabel,\r\n IonList,\r\n IonItem,\r\n IonCard,\r\n IonCardHeader,\r\n IonCardContent,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonButton,\r\n IonAvatar,\r\n IonIcon,\r\n alertController,\r\n\r\n} from \"@ionic/vue\";\r\nimport ShopItem from \"@/components/aldilapp/shop/shopItem.vue\";\r\nimport aldLogo from \"@/components/aldilapp/shared/ald-logo.vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { key } from \"../../store\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\n\r\nimport {\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n ref,\r\n} from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"Shop\",\r\n components: {\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonPage,\r\n IonText,\r\n IonMenuButton,\r\n IonBackButton,\r\n IonButtons,\r\n IonLoading,\r\n aldLogo,\r\n IonLabel,\r\n IonList,\r\n IonItem,\r\n IonCard,\r\n IonCardHeader,\r\n IonCardContent,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonButton,\r\n IonAvatar,\r\n IonIcon,\r\n ShopItem\r\n },\r\n setup() {\r\n const store = useStore(key);\r\n const router = useRouter();\r\n const route = useRoute();\r\n const isLoading = ref(false);\r\n const lang = computed(() => store.state.lang);\r\n const shop = computed(() => store.state.shop);\r\n const shopItems = computed(() => store.state.shop?.shopItems ?? []);\r\n\r\n const setIsLoading = (state: boolean) => (isLoading.value = state);\r\n\r\n const loadShopItems = async (): Promise => {\r\n setIsLoading(true);\r\n await store.dispatch(\"setShopForCurrentDefunto\");\r\n console.log(\"Caricati shop items: \", console.log(shopItems.value));\r\n setIsLoading(false);\r\n };\r\n\r\n onMounted(async () => {\r\n await loadShopItems();\r\n });\r\n\r\n return {\r\n shop,\r\n shopItems,\r\n isLoading,\r\n lang\r\n };\r\n }\r\n})\r\n","import { render } from \"./Shop.vue?vue&type=template&id=518c0778&ts=true\"\nimport script from \"./Shop.vue?vue&type=script&lang=ts\"\nexport * from \"./Shop.vue?vue&type=script&lang=ts\"\n\nimport \"./Shop.vue?vue&type=style&index=0&id=518c0778&lang=css\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-690a9591\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"container\" }, null, -1))\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = { class: \"py-3\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ion_back_button = _resolveComponent(\"ion-back-button\")!\n const _component_ion_buttons = _resolveComponent(\"ion-buttons\")!\n const _component_ion_menu_button = _resolveComponent(\"ion-menu-button\")!\n const _component_ald_logo = _resolveComponent(\"ald-logo\")!\n const _component_ion_title = _resolveComponent(\"ion-title\")!\n const _component_ion_toolbar = _resolveComponent(\"ion-toolbar\")!\n const _component_ion_header = _resolveComponent(\"ion-header\")!\n const _component_ion_loading = _resolveComponent(\"ion-loading\")!\n const _component_ion_card_title = _resolveComponent(\"ion-card-title\")!\n const _component_ion_card_header = _resolveComponent(\"ion-card-header\")!\n const _component_ion_card_content = _resolveComponent(\"ion-card-content\")!\n const _component_ion_card = _resolveComponent(\"ion-card\")!\n const _component_ion_content = _resolveComponent(\"ion-content\")!\n const _component_ion_page = _resolveComponent(\"ion-page\")!\n\n return (_openBlock(), _createBlock(_component_ion_page, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_header, { class: \"ion-no-border\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_toolbar, { color: \"primary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_buttons, { slot: \"start\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_back_button)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_buttons, { slot: \"end\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_menu_button)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_title, null, {\n default: _withCtx(() => [\n _createVNode(_component_ald_logo)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_loading, {\n \"is-open\": _ctx.isLoading,\n cssClass: \"my-custom-class\",\n message: _ctx.lang.Detail.InCaricamento\n }, null, 8, [\"is-open\", \"message\"]),\n _createVNode(_component_ion_content, {\n fullscreen: true,\n class: \"map-backgorund\"\n }, {\n default: _withCtx(() => [\n _hoisted_1,\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_header, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_title, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.lang.Info.Title), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n innerHTML: _ctx.lang.Info.Html1\n }, null, 8, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_3, \"App version: \" + _toDisplayString(_ctx.version), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}","\r\nimport { computed, defineComponent, onBeforeMount, ref } from \"vue\";\r\nimport {\r\n IonPage,\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonCard,\r\n IonCardContent,\r\n IonCardTitle,\r\n IonCardHeader,\r\n IonBackButton,\r\n IonMenuButton,\r\n IonButtons,\r\n IonLoading\r\n} from \"@ionic/vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { key } from \"../store\";\r\nimport aldLogo from \"@/components/aldilapp/shared/ald-logo.vue\";\r\n\r\n//import ExploreContainer from '@/components/ExploreContainer.vue';\r\n\r\nexport default defineComponent({\r\n name: \"Tab3\",\r\n components: {\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonPage,\r\n IonCard,\r\n IonCardContent,\r\n IonCardTitle,\r\n IonCardHeader,\r\n aldLogo,\r\n IonBackButton,\r\n IonMenuButton,\r\n IonButtons,\r\n IonLoading\r\n },\r\n setup() {\r\n const isLoading = ref(false);\r\n const store = useStore(key);\r\n const lang = computed(() => {\r\n return store.state.lang;\r\n });\r\n const cimiteri = computed(() => {\r\n return store.state.cimiteri;\r\n });\r\n const setIsLoading = (state: boolean) => (isLoading.value = state);\r\n\r\n const loadCimitieri = async (): Promise => {\r\n setIsLoading(true);\r\n await store.dispatch(\"fetchCimiteri\");\r\n setIsLoading(false);\r\n };\r\n \r\n const version = process.env.VUE_APP_VERNUM;\r\n\r\n /*onBeforeMount(() => {\r\n if (!cimiteri.value || cimiteri.value.length > 0) {\r\n loadCimitieri();\r\n }\r\n });*/\r\n\r\n return {\r\n state: computed(() => store.state),\r\n lang,\r\n isLoading,\r\n cimiteri,version\r\n };\r\n },\r\n});\r\n","import { render } from \"./TabInfo.vue?vue&type=template&id=690a9591&scoped=true&ts=true\"\nimport script from \"./TabInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./TabInfo.vue?vue&type=script&lang=ts\"\n\nimport \"./TabInfo.vue?vue&type=style&index=0&id=690a9591&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-690a9591\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4520c60e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"d-flex flex-row justify-content-between\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title mb-3\" }, \"Posizione\", -1))\nconst _hoisted_4 = { class: \"d-flex align-items-start\" }\nconst _hoisted_5 = { style: {\"font-size\":\"12px\",\"padding-top\":\"5px\"} }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"b\", null, \"CIMITERO:\", -1))\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"b\", null, \"AREA:\", -1))\nconst _hoisted_9 = { key: 1 }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"b\", null, \"Dir: \", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"b\", null, \"Cambio: \", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"b\", null, \"Pos.PN: \", -1))\nconst _hoisted_13 = {\n key: 0,\n class: \"row my-2 no-gutters\"\n}\nconst _hoisted_14 = {\n class: \"col-auto mx-auto bg-secondary bg-lighten-5 py-1\",\n id: \"scrollable\",\n style: {\"overflow-x\":\"auto\",\"overflow-y\":\"hidden\",\"width\":\"max-content\"}\n}\nconst _hoisted_15 = { class: \"cellFila\" }\nconst _hoisted_16 = [\"id\", \"data-toggle\", \"data-original-title\"]\nconst _hoisted_17 = { key: 0 }\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = {\n key: 2,\n class: \"lampada\"\n}\nconst _hoisted_20 = {\n key: 0,\n class: \"d-flex d-flex-row\"\n}\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"cellFila\" }, null, -1))\nconst _hoisted_22 = { class: \"ion-text-end\" }\nconst _hoisted_23 = { class: \"ion-text-end\" }\nconst _hoisted_24 = { class: \"ion-text-end\" }\nconst _hoisted_25 = { class: \"ion-text-end\" }\nconst _hoisted_26 = { class: \"ion-text-end\" }\nconst _hoisted_27 = { class: \"ion-text-end\" }\nconst _hoisted_28 = { class: \"card-title\" }\nconst _hoisted_29 = { class: \"ion-text-end\" }\nconst _hoisted_30 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"sub-title mt-2\" }, \"Livello di Leggibilità\", -1))\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"sub-title mt-2\" }, \"Lampada votiva\", -1))\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title mb-1\" }, \"Registrazione vocale\", -1))\nconst _hoisted_33 = {\n key: 0,\n class: \"text-center\"\n}\nconst _hoisted_34 = {\n key: 1,\n class: \"d-flex flex-row align-items-center\"\n}\nconst _hoisted_35 = {\n key: 0,\n class: \"text-end col-auto mt-1\"\n}\nconst _hoisted_36 = { class: \"col text-break\" }\nconst _hoisted_37 = { class: \"text-end col-auto\" }\nconst _hoisted_38 = { class: \"text-end col-auto\" }\nconst _hoisted_39 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title mb-3\" }, \"Foto\", -1))\nconst _hoisted_40 = {\n key: 0,\n class: \"fotoConatiner text-center\"\n}\nconst _hoisted_41 = [\"src\"]\nconst _hoisted_42 = {\n key: 1,\n class: \"text-center\"\n}\nconst _hoisted_43 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title mb-3\" }, \"Dati defunto\", -1))\nconst _hoisted_44 = { class: \"mt-2 p-1\" }\nconst _hoisted_45 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"sub-title\" }, \"Data nascita\", -1))\nconst _hoisted_46 = { class: \"d-flex flex-row align-items-center justify-content-between\" }\nconst _hoisted_47 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n style: {\"font-weight\":\"bold\",\"font-size\":\"large\"},\n class: \"mx-2\"\n}, \"/\", -1))\nconst _hoisted_48 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n style: {\"font-weight\":\"bold\",\"font-size\":\"large\"},\n class: \"mx-2\"\n}, \"/\", -1))\nconst _hoisted_49 = { class: \"mt-2 p-1\" }\nconst _hoisted_50 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"sub-title\" }, \"Data morte\", -1))\nconst _hoisted_51 = { class: \"d-flex flex-row align-items-center justify-content-between\" }\nconst _hoisted_52 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n style: {\"font-weight\":\"bold\",\"font-size\":\"large\"},\n class: \"mx-2\"\n}, \"/\", -1))\nconst _hoisted_53 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n style: {\"font-weight\":\"bold\",\"font-size\":\"large\"},\n class: \"mx-2\"\n}, \"/\", -1))\nconst _hoisted_54 = { class: \"card-title mb-3\" }\nconst _hoisted_55 = { key: 0 }\nconst _hoisted_56 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"b\", null, \"POSIZIONE EREDITATA DALL'AREA DI APPARTENENZA\", -1))\nconst _hoisted_57 = { key: 1 }\nconst _hoisted_58 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"b\", null, \"POSIZIONE SPECIFICA DI QUESTO DEFUNTO\", -1))\nconst _hoisted_59 = {\n key: 0,\n class: \"small text-end\"\n}\nconst _hoisted_60 = {\n key: 2,\n class: \"map-container mt-3\"\n}\nconst _hoisted_61 = { key: 3 }\nconst _hoisted_62 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, [\n /*#__PURE__*/_createElementVNode(\"b\", null, \"Connessione assente! Impossibile visualizzare mappa senza connessione\")\n], -1))\nconst _hoisted_63 = { class: \"row\" }\nconst _hoisted_64 = { class: \"col-6\" }\nconst _hoisted_65 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_66 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_67 = { class: \"col-6\" }\nconst _hoisted_68 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_69 = { class: \"card-title mb-3\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_ion_back_button = _resolveComponent(\"ion-back-button\")!\n const _component_ion_buttons = _resolveComponent(\"ion-buttons\")!\n const _component_ion_menu_button = _resolveComponent(\"ion-menu-button\")!\n const _component_ion_img = _resolveComponent(\"ion-img\")!\n const _component_ion_title = _resolveComponent(\"ion-title\")!\n const _component_ion_toolbar = _resolveComponent(\"ion-toolbar\")!\n const _component_ion_header = _resolveComponent(\"ion-header\")!\n const _component_ion_loading = _resolveComponent(\"ion-loading\")!\n const _component_ion_toggle = _resolveComponent(\"ion-toggle\")!\n const _component_ion_col = _resolveComponent(\"ion-col\")!\n const _component_ion_row = _resolveComponent(\"ion-row\")!\n const _component_ion_text = _resolveComponent(\"ion-text\")!\n const _component_InputNumber = _resolveComponent(\"InputNumber\")!\n const _component_ion_input = _resolveComponent(\"ion-input\")!\n const _component_ion_select_option = _resolveComponent(\"ion-select-option\")!\n const _component_ion_select = _resolveComponent(\"ion-select\")!\n const _component_ion_card_content = _resolveComponent(\"ion-card-content\")!\n const _component_ion_card = _resolveComponent(\"ion-card\")!\n const _component_SelectButton = _resolveComponent(\"SelectButton\")!\n const _component_ion_icon = _resolveComponent(\"ion-icon\")!\n const _component_ion_button = _resolveComponent(\"ion-button\")!\n const _component_ion_label = _resolveComponent(\"ion-label\")!\n const _component_ion_item = _resolveComponent(\"ion-item\")!\n const _component_ion_list = _resolveComponent(\"ion-list\")!\n const _component_Marker = _resolveComponent(\"Marker\")!\n const _component_GoogleMap = _resolveComponent(\"GoogleMap\")!\n const _component_ion_textarea = _resolveComponent(\"ion-textarea\")!\n const _component_ion_toast = _resolveComponent(\"ion-toast\")!\n const _component_ion_content = _resolveComponent(\"ion-content\")!\n const _component_ion_footer = _resolveComponent(\"ion-footer\")!\n const _component_ion_page = _resolveComponent(\"ion-page\")!\n\n return (_openBlock(), _createBlock(_component_ion_page, null, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_component_router_view, { key: _ctx.routerKey })),\n _createVNode(_component_ion_header, { class: \"ion-no-border\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_toolbar, { color: \"tertiary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_buttons, { slot: \"start\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_back_button, {\n \"default-href\": '/tabs/tabAdmin/area/' + _ctx.area?.id\n }, null, 8, [\"default-href\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_buttons, { slot: \"end\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_menu_button)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_title, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_img, {\n alt: \"logo aldilapp\",\n src: \"/assets/logo/logo_app_neg.png\",\n class: \"logo\"\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_loading, {\n \"is-open\": _ctx.isLoading,\n cssClass: \"my-custom-class\",\n message: \"Caricamento dati...\"\n }, null, 8, [\"is-open\"]),\n _createVNode(_component_ion_content, { class: \"map-backgorund\" }, {\n default: _withCtx(() => [\n (!_ctx.isLoading && _ctx.posto && _ctx.cimitero && _ctx.area && _ctx.defunto)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_ion_toggle, {\n \"aria-label\": \"Mostra tutto\",\n class: \"lineToggle\",\n modelValue: _ctx.autoMode,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.autoMode) = $event))\n }, null, 8, [\"modelValue\"]),\n _createElementVNode(\"label\", _hoisted_5, \"Auto mode \" + _toDisplayString((_ctx.autoMode ? 'ON' : 'OFF')), 1)\n ])\n ]),\n _createVNode(_component_ion_row, { class: \"ion-align-items-center\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_col, null, {\n default: _withCtx(() => [\n _createElementVNode(\"p\", null, [\n _hoisted_6,\n _createTextVNode(_toDisplayString(_ctx.cimitero.name), 1)\n ]),\n (_ctx.area)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(_toDisplayString(_ctx.area.areaName), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.area)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_9, [\n _hoisted_10,\n _createTextVNode(_toDisplayString((_ctx.area.direzioneCensimento == 'ver' ? 'Vert.' : 'Oriz.')) + \" - \", 1),\n _hoisted_11,\n _createTextVNode(_toDisplayString((_ctx.area.tipoCambioLinea == 'regular' ? 'Regolare' : 'A serpente')) + \" - \", 1),\n _hoisted_12,\n _createTextVNode(_toDisplayString(_ctx.area.posizioneProgressivoIniziale), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n (_ctx.areaLines.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.areaLines, (l) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: l,\n class: \"d-flex d-flex-row align-items-center\"\n }, [\n _createElementVNode(\"div\", _hoisted_15, \"F.\" + _toDisplayString(l), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.areaColumns, (index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: _normalizeClass([\"text-center\", {\r\n 'cellSpace': _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index).length == 0,\r\n 'cellLoculo': _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index).length > 0,\r\n 'cellCurrent': _ctx.posto && _ctx.posti.filter(i => i.fila == _ctx.posto.fila && i.fila == l && i.colonna && parseInt(i.colonna) == index && i.colonna == _ctx.posto.colonna && i.denominazione == _ctx.posto.denominazione).length > 0,\r\n 'cellVuoto': _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index && i.isVuoto).length > 0,\r\n 'cellSconosciuto': _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index && i.statoIdentificazione == 2).length > 0,\r\n 'cellCantera': _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index && i.tipoPosto == 'Cantera').length > 0,\r\n 'cellOssario': _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index && i.tipoPosto == 'Ossario').length > 0,\r\n 'cellOssarioAlto': _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index && i.tipoPosto == 'Ossario alto').length > 0,\r\n 'cellOssarioLungo': _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index && i.tipoPosto == 'Ossario lungo').length > 0,\r\n }]),\n id: 'p_' + l + '_' + index,\n \"data-toggle\": _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index).length > 0 ? 'tooltip' : '',\n \"data-original-title\": _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index).length > 0 ?\r\n (_ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index)[0].isVuoto ? 'Vuoto' :\r\n _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index)[0].statoIdentificazione == 2 ? 'Sconosciuto' :\r\n _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index)[0].posizioneDefunti?.map(x => x.nomeCompleto).join('
')) : '',\n \"data-html\": \"true\"\n }, [\n (_ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index).length == 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_17, \" \"))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(_ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) ==\r\n index)[0].denominazione), 1)),\n (_ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index && i.statoLampadaVotiva != null).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa-solid fa-fire-flame-simple\", { 'text-warning': _ctx.posti.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == index && i.statoLampadaVotiva == 1).length > 0 }])\n }, null, 2)\n ]))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_16))\n }), 128))\n ]))\n }), 128)),\n (_ctx.areaColumns.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _hoisted_21,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.areaColumns, (index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"cellCol\"\n }, \" C.\" + _toDisplayString(index), 1))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.autoMode || !_ctx.area.direzioneCensimento || _ctx.area.direzioneCensimento == 'hor')\n ? (_openBlock(), _createBlock(_component_ion_row, {\n key: 1,\n class: \"ion-align-items-center\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_col, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Fila\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_col, {\n class: \"ion-float-right\",\n size: \"auto\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_22, [\n _createVNode(_component_InputNumber, {\n ref: \"filaRef\",\n inputId: \"horizontal\",\n modelValue: _ctx.posto.fila,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.posto.fila) = $event)),\n showButtons: \"\",\n buttonLayout: \"horizontal\",\n step: 1,\n min: 0,\n inputClass: \"input-number\",\n decrementButtonClass: \"p-button-dec\",\n incrementButtonClass: \"p-button-inc\",\n incrementButtonIcon: \"pi pi-plus\",\n decrementButtonIcon: \"pi pi-minus\",\n incrementButtonProps: { 'v-on:click': 'filaChange' },\n decrementButtonProps: { 'v-on:click': 'filaChange' }\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (!_ctx.autoMode || !_ctx.area.direzioneCensimento || _ctx.area.direzioneCensimento == 'ver')\n ? (_openBlock(), _createBlock(_component_ion_row, {\n key: 2,\n class: \"ion-align-items-center\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_col, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Colonna\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_col, {\n class: \"ion-float-right\",\n size: \"auto\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_23, [\n _createVNode(_component_InputNumber, {\n ref: \"colonnaRef\",\n inputId: \"colonna\",\n modelValue: _ctx.currentColonna,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.currentColonna) = $event)),\n showButtons: \"\",\n buttonLayout: \"horizontal\",\n step: 1,\n min: 0,\n inputClass: \"input-number\",\n decrementButtonClass: \"p-button-dec\",\n incrementButtonClass: \"p-button-inc\",\n incrementButtonIcon: \"pi pi-plus\",\n decrementButtonIcon: \"pi pi-minus\",\n incrementButtonProps: { 'v-on:click': 'colChange' },\n decrementButtonProps: { 'v-on:click': 'colChange' }\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_ion_row, { class: \"ion-align-items-center\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_col, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Progressivo \" + _toDisplayString(_ctx.posto.tipoPosto), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_col, {\n class: \"ion-float-right\",\n size: \"auto\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_24, [\n _createVNode(_component_InputNumber, {\n inputId: \"inputProg\",\n modelValue: _ctx.posto.progressivo,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.posto.progressivo) = $event)),\n showButtons: \"\",\n buttonLayout: \"horizontal\",\n step: 1,\n min: 1,\n inputClass: \"input-number\",\n decrementButtonClass: \"p-button-dec\",\n incrementButtonClass: \"p-button-inc\",\n incrementButtonIcon: \"pi pi-plus\",\n decrementButtonIcon: \"pi pi-minus\"\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_row, { class: \"ion-align-items-center\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_col, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Nome posto (es.\" + _toDisplayString(_ctx.posto.progressivo) + \"/A)\", 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_col, {\n class: \"ion-float-right\",\n size: \"auto\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_25, [\n _createVNode(_component_ion_input, {\n modelValue: _ctx.posto.denominazione,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.posto.denominazione) = $event)),\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_row, { class: \"ion-align-items-center\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_col, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Tipo posizione\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_col, {\n class: \"ion-float-right\",\n size: \"auto\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_26, [\n _createVNode(_component_ion_select, {\n interface: \"popover\",\n modelValue: _ctx.posto.tipoPosto,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.posto.tipoPosto) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_select_option, { value: \"Loculo\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Loculo\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Tomba\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Tomba\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Cantera\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Cantera\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Ossario\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Ossario\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Posto\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Altro\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_row, { class: \"ion-align-items-center\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_col, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Tipo sepolutura\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_col, {\n class: \"ion-float-right\",\n size: \"auto\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_27, [\n _createVNode(_component_ion_select, {\n interface: \"popover\",\n modelValue: _ctx.defunto.tipoSepoltura,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.defunto.tipoSepoltura) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_select_option, { value: \"Normale\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Normale\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Resti\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Resti\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Targa\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Targa\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Altro\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Altro\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card, { class: \"mt-3\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_28, \"Stato \" + _toDisplayString(_ctx.posto.tipoPosto), 1),\n _createVNode(_component_ion_row, { class: \"ion-align-items-center\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_col, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Vuoto?\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_col, {\n class: \"ion-float-right\",\n size: \"auto\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_29, [\n _createVNode(_component_ion_toggle, {\n modelValue: _ctx.posto.isVuoto,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.posto.isVuoto) = $event))\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _hoisted_30,\n _createVNode(_component_SelectButton, {\n modelValue: _ctx.posto.statoIdentificazione,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.posto.statoIdentificazione) = $event)),\n options: _ctx.indetificazioneOptions,\n optionLabel: \"name\",\n optionValue: \"value\"\n }, null, 8, [\"modelValue\", \"options\"]),\n _hoisted_31,\n _createVNode(_component_SelectButton, {\n modelValue: _ctx.posto.statoLampadaVotiva,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.posto.statoLampadaVotiva) = $event)),\n options: _ctx.lampadaOptions,\n optionLabel: \"name\",\n optionValue: \"value\"\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n (_ctx.recorderEnable && !_ctx.posto.isVuoto && _ctx.defunto)\n ? (_openBlock(), _createBlock(_component_ion_card, {\n key: 0,\n class: \"mt-3\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_32,\n (!_ctx.defunto.censimentoVoiceUrl)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_33, [\n (!_ctx.recording)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n onClick: _ctx.startRecording\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: _ctx.micOutline }, null, 8, [\"icon\"]),\n _createTextVNode(\" Registra vocale\")\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.recording)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n onClick: _ctx.stopRecording,\n color: \"danger\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: _ctx.micOffOutline }, null, 8, [\"icon\"]),\n _createTextVNode(\" Stop registrazione\")\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.defunto.censimentoVoiceUrl)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_34, [\n (_ctx.defunto.censimentoVoiceUrl.startsWith('http'))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_35, [\n _createVNode(_component_ion_icon, {\n class: \"me-1\",\n icon: _ctx.globeSharp\n }, null, 8, [\"icon\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_36, [\n _createElementVNode(\"small\", null, [\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.displayOnlyName(_ctx.defunto.censimentoVoiceUrl)), 1)\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_37, [\n (!_ctx.plaing)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n fill: \"clear\",\n color: \"success\",\n size: \"small\",\n onClick: _cache[10] || (_cache[10] = ($event: any) => (_ctx.playFile(_ctx.defunto.censimentoVoiceUrl)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.play\n }, null, 8, [\"icon\"])\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n fill: \"clear\",\n color: \"medium\",\n size: \"small\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.play\n }, null, 8, [\"icon\"])\n ]),\n _: 1\n }))\n ]),\n _createElementVNode(\"div\", _hoisted_38, [\n (!_ctx.deletingAudio)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n fill: \"clear\",\n color: \"danger\",\n size: \"small\",\n onClick: _cache[11] || (_cache[11] = ($event: any) => (_ctx.deleteAudioFile(_ctx.defunto.censimentoVoiceUrl)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.trashOutline\n }, null, 8, [\"icon\"])\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n fill: \"clear\",\n color: \"medium\",\n size: \"small\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.trashOutline\n }, null, 8, [\"icon\"])\n ]),\n _: 1\n }))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (!_ctx.posto.isVuoto && _ctx.defunto)\n ? (_openBlock(), _createBlock(_component_ion_card, { key: 1 }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_39,\n (_ctx.image)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_40, [\n _createElementVNode(\"img\", { src: _ctx.image }, null, 8, _hoisted_41),\n _createVNode(_component_ion_button, {\n onClick: _cache[12] || (_cache[12] = ($event: any) => (_ctx.onChangePhoto())),\n class: \"mt-2\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"start\",\n class: \"me-2\",\n icon: _ctx.cameraOutline\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" MODIFICA FOTO\")\n ]),\n _: 1\n })\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_42, [\n _createVNode(_component_ion_button, {\n onClick: _cache[13] || (_cache[13] = ($event: any) => (_ctx.onChangePhoto()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"start\",\n class: \"me-2\",\n icon: _ctx.cameraOutline\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" SCATTA FOTO\")\n ]),\n _: 1\n })\n ]))\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (!_ctx.posto.isVuoto && _ctx.defunto)\n ? (_openBlock(), _createBlock(_component_ion_card, { key: 2 }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_43,\n _createVNode(_component_ion_list, { lines: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Nome\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.defunto.nome,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.defunto.nome) = $event)),\n class: \"r-input\",\n autocomplete: _ctx.calculateRandomString()\n }, null, 8, [\"modelValue\", \"autocomplete\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Cognome\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.defunto.cognome,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = ($event: any) => ((_ctx.defunto.cognome) = $event)),\n class: \"r-input\",\n autocomplete: _ctx.calculateRandomString()\n }, null, 8, [\"modelValue\", \"autocomplete\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_44, [\n _hoisted_45,\n _createElementVNode(\"div\", _hoisted_46, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_ion_item, { fill: \"outline\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, { position: \"floating\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Giorno\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n type: \"number\",\n modelValue: _ctx.defunto.giornoNascita,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = ($event: any) => ((_ctx.defunto.giornoNascita) = $event)),\n enterkeyhint: \"next\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _hoisted_47,\n _createElementVNode(\"div\", null, [\n _createVNode(_component_ion_item, { fill: \"outline\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, { position: \"floating\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Mese\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n type: \"number\",\n modelValue: _ctx.defunto.meseNascita,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = ($event: any) => ((_ctx.defunto.meseNascita) = $event)),\n enterkeyhint: \"next\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _hoisted_48,\n _createElementVNode(\"div\", null, [\n _createVNode(_component_ion_item, { fill: \"outline\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, { position: \"floating\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Anno\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n type: \"number\",\n modelValue: _ctx.defunto.annoNascita,\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = ($event: any) => ((_ctx.defunto.annoNascita) = $event)),\n enterkeyhint: \"next\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_49, [\n _hoisted_50,\n _createElementVNode(\"div\", _hoisted_51, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_ion_item, { fill: \"outline\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, { position: \"floating\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Giorno\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n type: \"number\",\n modelValue: _ctx.defunto.giornoMorte,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = ($event: any) => ((_ctx.defunto.giornoMorte) = $event)),\n enterkeyhint: \"next\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _hoisted_52,\n _createElementVNode(\"div\", null, [\n _createVNode(_component_ion_item, { fill: \"outline\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, { position: \"floating\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Mese\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n type: \"number\",\n modelValue: _ctx.defunto.meseMorte,\n \"onUpdate:modelValue\": _cache[20] || (_cache[20] = ($event: any) => ((_ctx.defunto.meseMorte) = $event)),\n enterkeyhint: \"next\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _hoisted_53,\n _createElementVNode(\"div\", null, [\n _createVNode(_component_ion_item, { fill: \"outline\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, { position: \"floating\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Anno\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n type: \"number\",\n modelValue: _ctx.defunto.annoMorte,\n \"onUpdate:modelValue\": _cache[21] || (_cache[21] = ($event: any) => ((_ctx.defunto.annoMorte) = $event)),\n enterkeyhint: \"next\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ])\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_54, [\n _createVNode(_component_ion_icon, { icon: _ctx.locationSharp }, null, 8, [\"icon\"]),\n _createTextVNode(\" Geolocalizzazione defunto\")\n ]),\n (_ctx.area && _ctx.posto.latitudine && _ctx.posto.longitudine && _ctx.posto.latitudine == _ctx.area.latitudine && _ctx.posto.longitudine == _ctx.area.longitudine)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_55, [\n _createVNode(_component_ion_text, { color: \"danger\" }, {\n default: _withCtx(() => [\n _hoisted_56\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.area && _ctx.posto.latitudine && _ctx.posto.longitudine && _ctx.posto.latitudine !== _ctx.area.latitudine && _ctx.posto.longitudine !== _ctx.area.longitudine)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_57, [\n _createVNode(_component_ion_text, { color: \"success\" }, {\n default: _withCtx(() => [\n _hoisted_58\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_ion_list, { lines: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Latitidine\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.posto.latitudine,\n \"onUpdate:modelValue\": _cache[22] || (_cache[22] = ($event: any) => ((_ctx.posto.latitudine) = $event)),\n disabled: true,\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Longitudine\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.posto.longitudine,\n \"onUpdate:modelValue\": _cache[23] || (_cache[23] = ($event: any) => ((_ctx.posto.longitudine) = $event)),\n disabled: true,\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", null, [\n (_ctx.localizing && _ctx.geoErr)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_59, [\n _createElementVNode(\"b\", null, \"± \" + _toDisplayString(_ctx.geoErr) + \" metri\", 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.netStatus)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_60, [\n (_ctx.mapVisible)\n ? (_openBlock(), _createBlock(_component_GoogleMap, {\n key: 0,\n ref: \"mapRef\",\n \"api-key\": _ctx.mapApiKey,\n class: \"map\",\n zoom: 17,\n streetViewControl: false,\n style: {\"width\":\"100%\",\"height\":\"350px\",\"display\":\"block\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_Marker, {\n options: { position: _ctx.markerPosition, visible: _ctx.markerVisible, draggable: true },\n ref: \"markRef\",\n onDragend: _ctx.dragend\n }, null, 8, [\"options\", \"onDragend\"])\n ]),\n _: 1\n }, 8, [\"api-key\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_61, [\n (!_ctx.netStatus)\n ? (_openBlock(), _createBlock(_component_ion_text, {\n key: 0,\n color: \"warning\"\n }, {\n default: _withCtx(() => [\n _hoisted_62\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])),\n _createElementVNode(\"div\", _hoisted_63, [\n _createElementVNode(\"div\", _hoisted_64, [\n (!_ctx.localizing)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n onClick: _ctx.startGeo,\n expand: \"block\",\n color: \"primary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Avvia\"),\n _hoisted_65,\n _createTextVNode(\"localizzazione\")\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.localizing)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n expand: \"block\",\n color: \"light\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Localizzazione\"),\n _hoisted_66,\n _createTextVNode(\"in corso...\")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_67, [\n (_ctx.localizing)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n onClick: _ctx.endGeo,\n expand: \"block\",\n color: \"danger\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Stop\"),\n _hoisted_68,\n _createTextVNode(\"localizzazione\")\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_69, [\n _createVNode(_component_ion_icon, { icon: _ctx.pencilSharp }, null, 8, [\"icon\"]),\n _createTextVNode(\" Note\")\n ]),\n _createVNode(_component_ion_textarea, {\n modelValue: _ctx.posto.note,\n \"onUpdate:modelValue\": _cache[24] || (_cache[24] = ($event: any) => ((_ctx.posto.note) = $event)),\n label: \"Scrivi qui le note relative a questo posto\",\n maxlength: \"250\",\n counter: true\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_toast, {\n \"is-open\": _ctx.isToastOpen,\n message: _ctx.toastMessage,\n duration: 5000,\n color: _ctx.toastColor,\n header: _ctx.toastHeader,\n position: \"top\",\n onDidDismiss: _cache[25] || (_cache[25] = ($event: any) => (_ctx.setIsToastOpen(false)))\n }, null, 8, [\"is-open\", \"message\", \"color\", \"header\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_footer, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_toolbar, { color: \"light\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_buttons, { slot: \"start\" }, {\n default: _withCtx(() => [\n (_ctx.changed && !_ctx.ending && !_ctx.editMode)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n color: \"danger\",\n onClick: _cache[26] || (_cache[26] = ($event: any) => (_ctx.end()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"start\",\n icon: _ctx.chevronBack\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" Salva & Fine \")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.changed && !_ctx.ending && _ctx.editMode)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n color: \"primary\",\n onClick: _cache[27] || (_cache[27] = ($event: any) => (_ctx.end()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"start\",\n icon: _ctx.chevronBack\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" Salva \")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.changed && _ctx.ending)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 2,\n color: \"medium\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"start\",\n icon: _ctx.chevronBack\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" Salvataggio... \")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (!_ctx.changed)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 3,\n color: \"danger\",\n onClick: _cache[28] || (_cache[28] = ($event: any) => (_ctx.back()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"start\",\n icon: _ctx.chevronBack\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" Torna su Area \")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n (_ctx.changed && !_ctx.editMode)\n ? (_openBlock(), _createBlock(_component_ion_buttons, {\n key: 0,\n slot: \"end\"\n }, {\n default: _withCtx(() => [\n (!_ctx.saving)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n fill: \"solid\",\n color: \"primary\",\n onClick: _cache[29] || (_cache[29] = ($event: any) => (_ctx.next()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Salva & Avanti \"),\n _createVNode(_component_ion_icon, {\n slot: \"end\",\n icon: _ctx.chevronForward\n }, null, 8, [\"icon\"])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.saving)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n fill: \"solid\",\n color: \"medium\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Salvataggio... \")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.editMode)\n ? (_openBlock(), _createBlock(_component_ion_buttons, {\n key: 1,\n slot: \"end\"\n }, {\n default: _withCtx(() => [\n (!_ctx.deleting)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n fill: \"solid\",\n color: \"danger\",\n onClick: _cache[30] || (_cache[30] = ($event: any) => (_ctx.deletePosizioneDefunto()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Elimina \"),\n _createVNode(_component_ion_icon, {\n slot: \"end\",\n icon: _ctx.chevronForward\n }, null, 8, [\"icon\"])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.deleting)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n fill: \"solid\",\n color: \"medium\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Eliminazione... \")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}","\r\nimport {\r\n IonPage,\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonText,\r\n IonMenuButton,\r\n IonBackButton,\r\n IonButtons,\r\n IonLoading,\r\n IonLabel,\r\n IonList,\r\n IonItem,\r\n IonCard,\r\n IonCardHeader,\r\n IonCardContent,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonButton,\r\n IonAvatar,\r\n IonIcon,\r\n IonChip,\r\n IonModal,\r\n IonToast, IonInput, IonSelect, IonSelectOption, IonFooter, IonToggle,\r\n IonCol, IonRow, IonNote,\r\n alertController, IonImg, IonTextarea,\r\n actionSheetController, onIonViewDidEnter\r\n} from \"@ionic/vue\";\r\nimport {\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n ref, watch, onBeforeUnmount, reactive\r\n} from \"vue\";\r\nimport aldLogo from \"@/components/aldilapp/shared/ald-logo.vue\";\r\nimport { useStore } from \"vuex\";\r\nimport store, { key } from \"../../../store\";\r\nimport { useRoute, useRouter, RouterView } from \"vue-router\";\r\nimport {\r\n heartOutline,\r\n locateOutline,\r\n closeCircle, micOutline, micOffOutline, play, trashOutline, chevronBack, chevronForward, cameraOutline, globeSharp, locationSharp, pencilSharp\r\n} from \"ionicons/icons\";\r\nimport Textarea from \"primevue/textarea\";\r\nimport Button from \"primevue/button\";\r\nimport { CemeteryAreaDTO, CemeteryDTO, CemeteryPostoDTO, PosizioneDefuntoDTO, EditPosizioneDefuntoDTO, CemeteryPostoEditCommandDTO, CemeteryAreaCheckPointDTO } from \"@/models\";\r\nimport { VoiceRecorder, VoiceRecorderPlugin, RecordingData, GenericResponse, CurrentRecordingStatus } from 'capacitor-voice-recorder';\r\nimport { Filesystem, Directory } from '@capacitor/filesystem';\r\nimport { FileSync } from '@/services/localfs.service';\r\nimport SelectButton from 'primevue/selectbutton';\r\nimport InputMask from 'primevue/inputmask';\r\nimport InputNumber from 'primevue/inputnumber';\r\nimport { Camera, CameraResultType, PermissionStatus, CameraSource, ImageOptions } from '@capacitor/camera';\r\nimport { Network } from \"@capacitor/network\";\r\nimport Utils from \"@/services/utils.service\";\r\nimport { Geolocation, PositionOptions, Position, ClearWatchOptions } from '@capacitor/geolocation';\r\nimport { GoogleMap, Marker } from 'vue3-google-map'\r\nimport router from \"@/router\";\r\n//import { DataService } from \"@/services/data.service\";\r\n\r\nexport default defineComponent({\r\n name: \"GestionePosto\",\r\n components: {\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonPage,\r\n IonText,\r\n IonMenuButton,\r\n IonBackButton,\r\n IonButtons,\r\n IonLoading,\r\n aldLogo,\r\n IonLabel,\r\n IonList,\r\n IonItem,\r\n IonCard,\r\n IonCardHeader,\r\n IonCardContent,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonButton,\r\n IonAvatar,\r\n IonIcon,\r\n IonChip,\r\n IonToast,\r\n IonTextarea,\r\n Textarea,\r\n Button,\r\n RouterView,\r\n IonModal,\r\n IonInput, IonImg,\r\n IonSelect, IonSelectOption, InputNumber,\r\n IonFooter, IonToggle, IonCol, IonRow, IonNote,\r\n SelectButton, InputMask, GoogleMap, Marker\r\n },\r\n\r\n setup() {\r\n const store = useStore(key);\r\n const router = useRouter();\r\n const route = useRoute();\r\n const routerKey = ref('');\r\n const id = ref();\r\n const prog = ref();\r\n const isToastOpen = ref(false);\r\n const isLoading = ref(true);\r\n\r\n const setIsLoading = (state: boolean) => (isLoading.value = state);\r\n const setIsToastOpen = (state: boolean) => (isToastOpen.value = state);\r\n const currentUserId = computed(() => store.state.auth && store.state.auth.dbUserId ? store.state.auth.dbUserId : \"\");\r\n const previousPosto = computed(() => store.state.gestione.previousPosto);\r\n const isAuth = computed(() => {\r\n return (\r\n store.state.auth &&\r\n store.state.auth.user &&\r\n !store.state.auth.user.isAnonymous\r\n );\r\n });\r\n\r\n const toastMessage = ref(\"\");\r\n const toastColor = ref(\"\");\r\n const toastHeader = ref(\"\");\r\n const cimitero = computed(() => store.state.gestione.currentCemetery);\r\n const area = computed(() => store.state.gestione.currentArea);\r\n const currentPosto = computed(() => store.state.gestione.currentPosto);\r\n const currentPosizioneDefunto = computed(() => store.state.gestione.currenPosizioneDefunto);\r\n const changed = ref(false);\r\n const posto = ref(null);\r\n const defunto = ref(null);\r\n const lampadaOptions = ref([\r\n { name: 'Non pres.', value: -2 },\r\n { name: 'Pres.', value: -1 },\r\n { name: 'ON', value: 1 },\r\n { name: 'OFF', value: 0 }\r\n ]);\r\n const indetificazioneOptions = ref([\r\n { name: 'OK', value: 0 },\r\n { name: 'Parziale', value: 1 },\r\n { name: 'Illeggibile', value: 2 }\r\n ]);\r\n //const mapRef = ref | null>(null);\r\n //const mapObj = ref();\r\n const saveEnable = ref(false);\r\n const recorderEnable = ref(false);\r\n const recording = ref(false)\r\n const plaing = ref(false);\r\n const deleting = ref(false);\r\n const deletingAudio = ref(false);\r\n const devId = ref();\r\n const saving = ref(false);\r\n const filaRef = ref(null);\r\n const colonnaRef = ref(null);\r\n const image = ref(\"\");\r\n const initialImage = ref(\"\");\r\n const editMode = ref(false);\r\n const ending = ref(false);\r\n const localizing = ref(false);\r\n const geoErr = ref(null);\r\n const mapVisible = ref(false);\r\n const mapApiKey = process.env.VUE_APP_GMAP_KEY;\r\n const netStatus = ref(false);\r\n const positionOpts: PositionOptions = { enableHighAccuracy: true };\r\n const maxTimeWatch = 10000;\r\n const mapRef = ref | null>(null);\r\n const markRef = ref(null);\r\n const markerPosition = ref({ lat: 0, lng: 0 });\r\n const markerVisible = ref(false);\r\n const posti = ref([]);\r\n const currentColonna = ref(null);\r\n const autoMode = ref(true);\r\n let api: any | null = null;\r\n\r\n let ultimaFilaMax: number | null = null;\r\n let ultimaColonnaMax: number | null = null;\r\n\r\n const areaLines = computed(() => {\r\n if (!posti.value || posti.value.length == 0) return [];\r\n const file = posti.value.filter(i => i.fila).map(item => item.fila!);\r\n if (file.length == 0) return [];\r\n const r = Array.from({ length: Math.max(...file) }, (_, i) => i + 1);\r\n let order = '';\r\n if (area.value?.posizioneProgressivoIniziale?.startsWith('dw')) {\r\n r.sort(function (a, b) { return b - a; });\r\n order = 'dw -> up';\r\n }\r\n else {\r\n r.sort();\r\n order = 'dw <- up';\r\n }\r\n\r\n console.log('File ordinate verso', order, ': ', r);\r\n return r;\r\n });\r\n\r\n const areaColumns = computed(() => {\r\n //const a = store.state.gestione.currentArea;\r\n //if (!a || !a.posti || a.posti.length == 0) return [];\r\n if (!posti.value || posti.value.length == 0) return [];\r\n const colonne = posti.value.filter(i => i.colonna).map(item => parseInt(item.colonna!));\r\n if (colonne.length == 0) return [];\r\n const r = Array.from({ length: Math.max(...colonne) }, (_, i) => i + 1);\r\n let order = '';\r\n if (area.value?.posizioneProgressivoIniziale?.endsWith('sx')) {\r\n r.sort(function (a, b) { return a - b; });\r\n order = 'sx -> dx';\r\n }\r\n else {\r\n r.sort(function (a, b) { return b - a; });\r\n order = 'sx <- dx';\r\n }\r\n //console.log('Colonne ordinate verso', order, ': ', r);\r\n return r;\r\n });\r\n\r\n\r\n const initGeo = async () => {\r\n const result = await Geolocation.checkPermissions();\r\n if (result.location !== 'granted') {\r\n await Geolocation.requestPermissions();\r\n }\r\n };\r\n\r\n //inizializzazione mappa\r\n\r\n watch(\r\n () => currentColonna.value,\r\n (newValue, oldValue) => {\r\n if (!newValue || !area.value) return;\r\n console.log('Cambio colonna');\r\n posto.value!.colonna = '' + newValue;\r\n const f = posti.value.filter((p: CemeteryPostoDTO) => p.id == posto.value!.id);\r\n if (f.length > 0) {\r\n f[0].colonna = posto.value!.colonna;\r\n\r\n if (autoMode.value && !editMode.value && area.value.direzioneCensimento == 'ver') {\r\n\r\n if (posti.value && posti.value.length) {\r\n const n: number = Math.max(...posti.value.filter((p: CemeteryPostoDTO) => p.colonna == oldValue && p.fila != null).map(p => p.fila!));\r\n if (n > 0)\r\n ultimaFilaMax = n;\r\n }\r\n\r\n posti.value = posti.value.filter(i => i.id !== posto.value!.id);\r\n //posto.value = null;\r\n initPosto();\r\n\r\n if (area.value!.resetIndexPerLine &&\r\n ((area.value.tipoCambioLinea == \"regular\" && posto.value?.fila == 1) ||\r\n (area.value.tipoCambioLinea == \"snake\" &&\r\n ((posto.value?.fila == 1 && posto.value!.colonna && parseInt(posto.value!.colonna) % 2 == 1) || (ultimaFilaMax && posto.value?.fila == ultimaFilaMax && posto.value!.colonna && parseInt(posto.value!.colonna) % 2 == 0))))) {\r\n console.log('Resetto prog in seguito a cambio colonna');\r\n posto.value!.progressivo = area.value.progressivoIniziale ? parseInt(area.value.progressivoIniziale) : 1;\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n }\r\n );\r\n\r\n //cambio progressivo\r\n watch(\r\n () => posto.value ? posto.value!.progressivo : \"\",\r\n async (newValue, oldValue) => {\r\n if (posto.value!.progressivo) {\r\n //console.log('Cambio progressivo');\r\n //console.log(\"progressivo old:\", oldValue);\r\n //console.log(\"progressivo new:\", newValue);\r\n posto.value!.denominazione = '' + posto.value!.progressivo;\r\n if (posti.value.filter(i => i.id == posto.value!.id).length > 0) {\r\n posti.value.filter(i => i.id == posto.value!.id)[0].progressivo = posto.value!.progressivo;\r\n }\r\n\r\n verifyChekPoints();\r\n }\r\n }\r\n );\r\n\r\n watch(\r\n () => posto.value ? posto.value!.denominazione : \"\",\r\n async (newValue, oldValue) => {\r\n if (posto.value!.denominazione) {\r\n //console.log('Cambio progressivo');\r\n //console.log(\"progressivo old:\", oldValue);\r\n //console.log(\"progressivo new:\", newValue);\r\n if (posti.value.filter(i => i.id == posto.value!.id).length > 0) {\r\n posti.value.filter(i => i.id == posto.value!.id)[0].denominazione = posto.value!.denominazione;\r\n }\r\n }\r\n }\r\n );\r\n\r\n watch(\r\n () => posto.value ? posto.value!.tipoPosto : \"\",\r\n async (newValue, oldValue) => {\r\n if (posto.value!.tipoPosto) {\r\n //console.log('Cambio progressivo');\r\n //console.log(\"progressivo old:\", oldValue);\r\n //console.log(\"progressivo new:\", newValue);\r\n if (posti.value.filter(i => i.id == posto.value!.id).length > 0) {\r\n posti.value.filter(i => i.id == posto.value!.id)[0].tipoPosto = posto.value!.tipoPosto;\r\n }\r\n }\r\n }\r\n );\r\n\r\n const initWatch = () => {\r\n /*watch(\r\n posto,\r\n (newValue, oldValue) => {\r\n if (newValue && newValue.statoIdentificazione == 2 && defunto.value) {\r\n //defunto.value!.cognome = 'Illegibile'\r\n }\r\n },\r\n { deep: true }\r\n );*/\r\n\r\n watch(\r\n () => posto.value && defunto.value ? '' + posto.value!.progressivo + posto.value!.fila + posto.value!.colonna + posto.value!.tipoPosto + posto.value!.statoIdentificazione + posto.value!.statoIdentificazione + defunto.value!.tipoSepoltura + posto.value!.isVuoto +\r\n posto.value!.latitudine + posto.value!.longitudine + posto.value!.note +\r\n defunto.value!.nome + defunto.value!.cognome + defunto.value!.annoMorte + defunto.value!.meseMorte + defunto.value!.giornoMorte + defunto.value!.annoNascita + defunto.value!.meseNascita + defunto.value!.giornoNascita +\r\n defunto.value!.censimentoVoiceUrl + (defunto.value!.censimentoImageUrl ? defunto.value!.censimentoImageUrl.substring(0, Math.min(150, defunto.value!.censimentoImageUrl.length)) : \"\") : \"\",\r\n async (newValue, oldValue) => {\r\n if (!oldValue) return;\r\n changed.value = true;\r\n }\r\n );\r\n\r\n watch(\r\n () => posto.value ? posto.value!.fila : null,\r\n (newValue, oldValue) => {\r\n if (!newValue || !area.value) return;\r\n console.log('Cambio fila');\r\n // console.log(\"Fila old:\", oldValue);\r\n // console.log(\"Fila new:\", newValue);\r\n console.log('Fila change', posto.value!.fila);\r\n const f = posti.value!.filter(i => i.id == posto.value!.id);\r\n if (f.length > 0) {\r\n f[0].fila = posto.value!.fila ?? 1;\r\n\r\n if (autoMode.value && !editMode.value && area.value.direzioneCensimento == 'hor') {\r\n\r\n const n = Math.max(...posti.value.filter((p: CemeteryPostoDTO) => p.fila == oldValue && p.colonna).map(p => parseInt(p.colonna!)));\r\n if (n > 0)\r\n ultimaColonnaMax = n;\r\n\r\n posti.value = posti.value.filter(i => i.id !== posto.value!.id);\r\n //posto.value = null;\r\n initPosto();\r\n\r\n }\r\n\r\n if (area.value!.resetIndexPerLine &&\r\n ((area.value.tipoCambioLinea == \"regular\" && posto.value?.colonna == \"1\") ||\r\n (area.value.tipoCambioLinea == \"snake\" &&\r\n ((posto.value?.colonna == \"1\" && posto.value!.fila && posto.value!.fila % 2 == 1) || (ultimaColonnaMax && posto.value!.colonna && parseInt(posto.value!.colonna) == ultimaColonnaMax && posto.value!.fila && posto.value!.fila % 2 == 0))))) {\r\n console.log('Resetto prog in seguito a cambio fila');\r\n posto.value!.progressivo = area.value.progressivoIniziale ? parseInt(area.value.progressivoIniziale) : 1;\r\n }\r\n }\r\n\r\n }\r\n );\r\n\r\n\r\n\r\n\r\n\r\n\r\n watch(() => mapRef.value?.ready, (ready) => {\r\n if (!ready) return;\r\n const map = mapRef.value?.map;\r\n api = mapRef.value?.api;\r\n console.log('api', api);\r\n\r\n if (posto.value && posto.value.latitudine && posto.value.longitudine && map) {\r\n const center = { lat: posto.value?.latitudine!, lng: posto.value?.longitudine! };\r\n map.setCenter(center);\r\n map.setMapTypeId(api.MapTypeId.SATELLITE);\r\n\r\n\r\n markerPosition.value.lat = posto.value.latitudine;\r\n markerPosition.value.lng = posto.value.longitudine;\r\n markerVisible.value = true;\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n const verifyChekPoints = () => {\r\n if (posto.value && area.value && area.value!.checkPoints && area.value!.checkPoints.length > 0) {\r\n const filterd = area.value!.checkPoints.filter((i: CemeteryAreaCheckPointDTO) => (i.fila ?? 0) == (posto.value!.fila ?? 0) && i.progressivo == posto.value!.progressivo);\r\n if (filterd && filterd.length > 0) {\r\n PresentAlertError(filterd[0].defunto + '?', 'Se in questa posizione ti risulta un altro defunto stai facendo degli errori di censimento. Consulta il tuo referente! Non andare avanti!', ['Ok']);\r\n }\r\n }\r\n }\r\n\r\n const makeId = (length: number) => {\r\n let result = '';\r\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n const charactersLength = characters.length;\r\n let counter = 0;\r\n while (counter < length) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n counter += 1;\r\n }\r\n return result;\r\n }\r\n\r\n const PresentAlertError = async (\r\n title: string,\r\n msg: string,\r\n buttons: Array\r\n ) => {\r\n const alert = await alertController.create({\r\n cssClass: \"my-alert-class\",\r\n header: title,\r\n subHeader: \"\",\r\n message: msg,\r\n buttons,\r\n });\r\n await alert.present();\r\n const { role } = await alert.onDidDismiss();\r\n console.log(\"onDidDismiss resolved with role\", role);\r\n };\r\n\r\n const makeFileId = (): string => {\r\n const today = new Date().toISOString();\r\n const date = today.split('T')[0].replaceAll('-', '').substring(2);\r\n const time = today.split('T')[1].replaceAll(':', '').substring(0, 4);\r\n return posto.value!.progressivo + '_' + currentUserId.value + '_' + date + time + '_' + makeId(3);\r\n }\r\n\r\n\r\n const initAudioRecorder = async (): Promise => {\r\n try {\r\n let response: GenericResponse = await VoiceRecorder.canDeviceVoiceRecord();\r\n recorderEnable.value = response.value;\r\n console.log('canDeviceVoiceRecord:', response.value);\r\n if (!recorderEnable.value) return;\r\n\r\n response = await VoiceRecorder.requestAudioRecordingPermission();\r\n console.log('requestAudioRecordingPermission:', response.value);\r\n if (!response.value) return;\r\n }\r\n catch (err: any) {\r\n console.log('Err registratore vocale', err);\r\n await PresentAlertError('Errore', 'Err registratore vocale', [\"Ok\"]);\r\n //isLoading.value = false;\r\n }\r\n }\r\n\r\n const startRecording = (): void => {\r\n if (recording.value) return;\r\n\r\n /**\r\n * In case of success the promise will resolve to { value: true }\r\n * in case of an error the promise will reject with one of the following messages:\r\n * \"MISSING_PERMISSION\", \"ALREADY_RECORDING\", \"MICROPHONE_BEING_USED\", \"DEVICE_CANNOT_VOICE_RECORD\", or \"FAILED_TO_RECORD\"\r\n */\r\n VoiceRecorder.startRecording()\r\n .then((result: GenericResponse) => {\r\n console.log('Avvio registrazione', result.value)\r\n recording.value = true;\r\n })\r\n .catch(error => {\r\n console.log('Errore avvio registrazione', error);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore avvio registrazione\";\r\n toastMessage.value = error;\r\n setIsToastOpen(true);\r\n }\r\n );\r\n }\r\n\r\n const stopRecording = async (): Promise => {\r\n if (!recording.value) return;\r\n recording.value = false;\r\n /**\r\n * In case of success the promise will resolve to { value: true }\r\n * in case of an error the promise will reject with one of the following messages:\r\n * \"MISSING_PERMISSION\", \"ALREADY_RECORDING\", \"MICROPHONE_BEING_USED\", \"DEVICE_CANNOT_VOICE_RECORD\", or \"FAILED_TO_RECORD\"\r\n */\r\n\r\n try {\r\n const result = await VoiceRecorder.stopRecording();\r\n console.log('Stop registrazione');\r\n if (result && result.value && result.value.recordDataBase64) {\r\n const recordData = result.value.recordDataBase64;\r\n console.log('Mimetype:', result.value.mimeType);\r\n const extension =\r\n result.value.mimeType == \"audio/aac\" ? \"aac\" :\r\n result.value.mimeType == \"audio/webm;codecs=opus\" ? \"webm\" :\r\n result.value.mimeType == \"mp4\" ? \"mp4\" : \"wav\";\r\n //appoggio qui il nome del file\r\n const filename = devId.value + '.' + extension;\r\n const uri = await FileSync.saveAudioFile(cimitero.value!.id, area.value!.id, filename, recordData);\r\n if (!uri)\r\n throw new Error(\"Problema nel salvataggio del file audio\");\r\n\r\n defunto.value!.censimentoVoiceUrl = uri;\r\n }\r\n }\r\n catch (error: any) {\r\n console.log('Errore stop registrazione', error);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore stop registrazione\";\r\n toastMessage.value = error;\r\n setIsToastOpen(true);\r\n }\r\n }\r\n\r\n const playFile = async (filename: string | null): Promise => {\r\n try {\r\n console.log('Play', filename);\r\n\r\n if (!filename) return;\r\n plaing.value = true;\r\n\r\n let audio = new Audio();\r\n if (filename.startsWith('http')) {\r\n const netStatus = await Network.getStatus();\r\n if (!netStatus.connected) {\r\n await PresentAlertError('Connessione assente', 'Questo file è salvato su server esterno. Bisogna avere un connessione internet per riprodurlo', ['Ok']);\r\n return;\r\n }\r\n audio = new Audio(filename);\r\n }\r\n else {\r\n const audioFile = await Filesystem.readFile({\r\n path: filename,\r\n directory: Directory.Data\r\n });\r\n const base64 = audioFile.data;\r\n audio = new Audio('data:audio/aac;base64,' + base64);\r\n }\r\n //const f = 'aldilapp/'+ filename;\r\n //const f = filename.startsWith('/'+Directory.Data+'/') ? filename.replace('/'+Directory.Data+'/',\"\") : filename;\r\n if (audio) {\r\n audio.oncanplaythrough = () => audio.play();\r\n audio.onended = () => plaing.value = false;\r\n audio.load();\r\n }\r\n else {\r\n console.log('Problemi creazione file audio');\r\n plaing.value = false;\r\n }\r\n }\r\n catch (error: any) {\r\n console.log('Errore riproduzione', error);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore riproduzione\";\r\n toastMessage.value = error.message;\r\n setIsToastOpen(true);\r\n plaing.value = false;\r\n }\r\n }\r\n\r\n const deleteAudioFile = async (filename: string | null): Promise => {\r\n try {\r\n if (!filename) return;\r\n console.log('Delete audio file', filename);\r\n deletingAudio.value = true;\r\n /*const filename = 'aldilapp/'+ posto.value.censimentoInvoiceUrl;\r\n await Filesystem.deleteFile({\r\n path: filename,\r\n directory: Directory.Data\r\n });*/\r\n //const f = filename.startsWith('/'+Directory.Data+'/') ? filename.replace('/'+Directory.Data+'/',\"\") : filename;\r\n const res = await FileSync.deleteFile(filename);\r\n defunto.value!.censimentoVoiceUrl = '';\r\n deletingAudio.value = false;\r\n }\r\n catch (error: any) {\r\n console.log('Errore rimozione', error);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore rimozione audio\";\r\n toastMessage.value = error.message;\r\n setIsToastOpen(true);\r\n deletingAudio.value = false;\r\n }\r\n }\r\n\r\n let watchId = \"0\";\r\n const startGeo = async () => {\r\n console.log('Geolocalizza start..');\r\n\r\n watchId = await Geolocation.watchPosition(positionOpts, async (position: Position | null, err?: any) => {\r\n if (!err) {\r\n localizing.value = true;\r\n mapVisible.value = true;\r\n setTimeout(async () => { await endGeo() }, maxTimeWatch);\r\n if (position) {\r\n console.log('Geolocated:', position)\r\n posto.value!.latitudine = position.coords.latitude;\r\n posto.value!.longitudine = position.coords.longitude;\r\n geoErr.value = position.coords.accuracy;\r\n if (mapRef.value && mapRef.value.ready && mapRef.value.map) {\r\n if (markRef.value) {\r\n markRef.value.marker.setPosition({ lat: position.coords.latitude, lng: position.coords.longitude });\r\n markRef.value.marker.setVisible(true);\r\n }\r\n mapRef.value.map.panTo({ lat: position.coords.latitude, lng: position.coords.longitude });\r\n }\r\n }\r\n }\r\n else\r\n console.log(err);\r\n });\r\n };\r\n\r\n const endGeo = async () => {\r\n if (watchId !== \"0\") {\r\n console.log('Geolocalizza stop..');\r\n const clearOptions: ClearWatchOptions = { id: watchId };\r\n await Geolocation.clearWatch(clearOptions);\r\n watchId = \"0\";\r\n localizing.value = false;\r\n }\r\n };\r\n\r\n const dragend = (event: any) => {\r\n console.log('dragend:', event.latLng);\r\n posto.value!.latitudine = event.latLng.lat();\r\n posto.value!.longitudine = event.latLng.lng();\r\n };\r\n\r\n\r\n\r\n\r\n const calcolaPosizioneIniziale = (ultimo: CemeteryPostoDTO | null) => {\r\n if (!ultimo) {\r\n currentColonna.value = 1;\r\n posto.value!.fila = 1;\r\n return;\r\n }\r\n if (area.value!.direzioneCensimento == 'hor') {\r\n const filaInvertita = area.value!.tipoCambioLinea != 'regular' && ultimo.fila! % 2 == 0;\r\n console.log('filaInvertita:', filaInvertita);\r\n\r\n if (filaInvertita) {\r\n if (ultimo.colonna && parseInt(ultimo.colonna) == 1) {\r\n currentColonna.value = 1;\r\n posto.value!.fila = ultimo.fila! + 1;\r\n }\r\n else {\r\n currentColonna.value = parseInt(ultimo.colonna!) - 1;\r\n posto.value!.fila = ultimo.fila;\r\n }\r\n }\r\n else {\r\n if (ultimo.colonna && ultimaColonnaMax && parseInt(ultimo.colonna) == ultimaColonnaMax) {\r\n currentColonna.value = area.value!.tipoCambioLinea == 'regular' ? 1 : ultimaColonnaMax;\r\n posto.value!.fila = ultimo.fila! + 1;\r\n if (area.value!.resetIndexPerLine) {\r\n console.log('Resetto progressivo');\r\n posto.value!.progressivo = 1;\r\n }\r\n }\r\n else {\r\n currentColonna.value = parseInt(ultimo.colonna!) + 1;\r\n posto.value!.fila = ultimo.fila;\r\n }\r\n }\r\n }\r\n\r\n else {\r\n const colonnaInvertita = area.value!.tipoCambioLinea != 'regular' && ultimo.colonna && parseInt(ultimo.colonna!) % 2 == 0;\r\n console.log('colonnaInvertita:', colonnaInvertita);\r\n\r\n if (colonnaInvertita) {\r\n if (ultimo.fila && ultimo.fila == 1) {\r\n currentColonna.value = parseInt(ultimo.colonna!) + 1;\r\n posto.value!.fila = 1;\r\n }\r\n else {\r\n posto.value!.fila = ultimo.fila! - 1;\r\n currentColonna.value = parseInt(ultimo.colonna!);\r\n }\r\n }\r\n else {\r\n console.log('ultimaFilaMax:', ultimaFilaMax);\r\n if (ultimo.fila && ultimo.fila == ultimaFilaMax) {\r\n currentColonna.value = parseInt(ultimo.colonna!) + 1;\r\n posto.value!.fila = area.value!.tipoCambioLinea == 'regular' ? 1 : ultimaFilaMax;\r\n }\r\n else {\r\n posto.value!.fila = ultimo.fila! + 1;\r\n currentColonna.value = parseInt(ultimo.colonna!);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n const initPosto = () => {\r\n let ultimo: CemeteryPostoDTO | null = null;\r\n if (area.value!.posti && area.value!.posti.length > 0 && area.value!.posti[area.value!.posti.length - 1])\r\n ultimo = area.value!.posti[area.value!.posti.length - 1];\r\n\r\n console.log('Inizializzo posto a partire da ultimo posto', ultimo);\r\n\r\n posto.value!.id = area.value && area.value.posti && area.value.posti.length > 0 ? (area.value.posti.length + 1) * -1 : -1;\r\n defunto.value!.id = posto.value!.id;\r\n\r\n posto.value!.progressivo = ultimo ? ultimo.progressivo + 1 :\r\n area.value!.progressivoIniziale ? parseInt(area.value!.progressivoIniziale) : 1;\r\n\r\n posto.value!.denominazione = '' + posto.value!.progressivo;\r\n posto.value!.areaId = area.value!.id;\r\n\r\n calcolaPosizioneIniziale(ultimo);\r\n\r\n posti.value!.push({\r\n id: posto.value!.id,\r\n areaId: area.value!.id,\r\n areaName: area.value!.areaName,\r\n progressivo: posto.value!.progressivo,\r\n fila: posto.value!.fila,\r\n denominazione: posto.value!.denominazione,\r\n colonna: currentColonna.value ? currentColonna.value.toString() : null,\r\n tipoPosto: posto.value!.tipoPosto,\r\n isVuoto: posto.value!.isVuoto,\r\n statoLampadaVotiva: posto.value!.statoLampadaVotiva,\r\n statoIdentificazione: posto.value!.statoIdentificazione,\r\n note: posto.value!.note,\r\n latitudine: posto.value!.latitudine,\r\n longitudine: posto.value!.longitudine,\r\n posizioneDefunti: []\r\n });\r\n\r\n console.log('Posto inizializzato', posto.value);\r\n console.log('File: ', areaLines.value);\r\n console.log('Colonne: ', areaColumns.value)\r\n }\r\n\r\n onIonViewDidEnter(async () => {\r\n console.log(\"Mounted: \", route.path);\r\n await initAudioRecorder();\r\n await initGeo();\r\n\r\n try {\r\n routerKey.value = route.path;\r\n netStatus.value = (await Network.getStatus()).connected;\r\n\r\n if (!cimitero.value) {\r\n router.push('/tabs/tabAdmin/');\r\n return;\r\n }\r\n\r\n\r\n\r\n posto.value = {\r\n id: null,\r\n areaId: 0,\r\n /* -- viene valorizzato dopo\r\n areaId: area.value.id,\r\n progressivo: \r\n ultimo ? ultimo.progressivo + 1 : \r\n area.value.progressivoIniziale ? area.value.progressivoIniziale : 1,\r\n fila: ultimo ? ultimo.fila : null,\r\n */\r\n progressivo: 1,\r\n fila: null,\r\n denominazione: '',\r\n colonna: null,\r\n tipoPosto: area.value ? (area.value.tipoSepoltura ?? \"\") : \"\",\r\n isVuoto: false,\r\n statoLampadaVotiva: null,\r\n statoIdentificazione: 0,\r\n note: '',\r\n latitudine: null,\r\n longitudine: null\r\n };\r\n posto.value!.denominazione = '' + posto.value!.progressivo;\r\n\r\n defunto.value = {\r\n id: null,\r\n postoId: 0,\r\n defuntoId: null,\r\n censimentoImageUrl: null,\r\n censimentoVoiceUrl: null,\r\n tipoSepoltura: \"Normale\",\r\n cognome: '',\r\n nome: '',\r\n annoNascita: null,\r\n meseNascita: null,\r\n giornoNascita: null,\r\n annoMorte: null,\r\n meseMorte: null,\r\n giornoMorte: null\r\n }\r\n\r\n if (route.params && route.params.postoId) {\r\n editMode.value = true;\r\n id.value = +route.params.postoId;\r\n await store.dispatch('loadCemeteryPosto', id.value);\r\n setIsLoading(false);\r\n console.log('currentPosto', currentPosto.value);\r\n\r\n if (!area.value) {\r\n //router.push('/tabs/tabAdmin/cimitero/' + cimitero.value!.id);\r\n //return;\r\n console.log('Carico area');\r\n await store.dispatch('loadCemeteryArea', currentPosto.value!.areaId);\r\n }\r\n posti.value = area.value!.posti;\r\n\r\n if (posto.value) {\r\n posto.value.id = currentPosto.value!.id;\r\n posto.value.areaId = currentPosto.value!.areaId;\r\n posto.value.progressivo = currentPosto.value!.progressivo;\r\n posto.value.denominazione = currentPosto.value!.denominazione;\r\n posto.value.fila = currentPosto.value!.fila;\r\n currentColonna.value = currentPosto.value!.colonna ? parseInt(currentPosto.value!.colonna) : null;\r\n\r\n posto.value.tipoPosto = currentPosto.value!.tipoPosto;\r\n posto.value.isVuoto = currentPosto.value!.isVuoto;\r\n posto.value.statoLampadaVotiva = currentPosto.value!.statoLampadaVotiva;\r\n posto.value.statoIdentificazione = currentPosto.value!.statoIdentificazione;\r\n posto.value.note = currentPosto.value!.note;\r\n if (currentPosto.value!.latitudine)\r\n posto.value.latitudine = currentPosto.value!.latitudine;\r\n if (currentPosto.value!.longitudine)\r\n posto.value.longitudine = currentPosto.value!.longitudine;\r\n }\r\n\r\n if (route.params.positionId && currentPosto.value!.posizioneDefunti && currentPosto.value!.posizioneDefunti.length > 0) {\r\n //... caricarere anche i dati defunto\r\n\r\n const dfilter = currentPosto.value!.posizioneDefunti.filter(i => i.id == +route.params.positionId);\r\n if (dfilter && dfilter.length > 0) {\r\n const d = dfilter[0];\r\n console.log('Dati defunto da caricare:', d);\r\n\r\n defunto.value.id = d.id,\r\n defunto.value.postoId = d.postoId,\r\n defunto.value.defuntoId = d.defuntoId,\r\n defunto.value.censimentoImageUrl = d.censimentoImageUrl,\r\n defunto.value.censimentoVoiceUrl = d.censimentoVoiceUrl,\r\n defunto.value.tipoSepoltura = d.tipoSepoltura,\r\n defunto.value.cognome = d.cognome || '',\r\n defunto.value.nome = d.nome || '',\r\n defunto.value.annoNascita = d.dataNascita ? new Date(d.dataNascita).getFullYear() : null,\r\n defunto.value.meseNascita = d.dataNascita && !(d.hasInnacurateDates ?? false) ? new Date(d.dataNascita).getMonth() + 1 : null,\r\n defunto.value.giornoNascita = d.dataNascita && !(d.hasInnacurateDates ?? false) ? new Date(d.dataNascita).getDate() : null,\r\n defunto.value.annoMorte = d.dataMorte ? new Date(d.dataMorte).getFullYear() : null,\r\n defunto.value.meseMorte = d.dataMorte && !(d.hasInnacurateDates ?? false) ? new Date(d.dataMorte).getMonth() + 1 : null,\r\n defunto.value.giornoMorte = d.dataMorte && !(d.hasInnacurateDates ?? false) ? new Date(d.dataMorte).getDate() : null\r\n }\r\n\r\n }\r\n else {\r\n\r\n }\r\n\r\n if (posto.value?.latitudine && posto.value?.longitudine) {\r\n mapVisible.value = true;\r\n markerVisible.value = true;\r\n }\r\n\r\n }\r\n\r\n else {\r\n\r\n //posto.value.progressivo = area.value.posti && area.value.posti.length > 0 ? area.value.posti[area.value.posti.length-1].progressivo + 1 : area.value.progressivoIniziale ? area.value.progressivoIniziale : 1;\r\n console.log('area', area.value);\r\n console.log('area.posti.length:', area.value?.posti.length);\r\n console.log('File: ', areaLines.value);\r\n console.log('Colonne: ', areaColumns.value)\r\n\r\n posti.value = [...area.value!.posti];//clone\r\n if (area.value?.direzioneCensimento == 'ver') {\r\n ultimaFilaMax = areaColumns.value.length > 1 ? Math.max(...areaLines.value) : null;\r\n ultimaColonnaMax = null;\r\n }\r\n else {\r\n ultimaColonnaMax = areaLines.value.length > 1 ? Math.max(...areaColumns.value) : null;\r\n ultimaFilaMax = null;\r\n }\r\n console.log('ultimaColonnaMax', ultimaColonnaMax);\r\n console.log('ultimaFilaMax', ultimaFilaMax);\r\n\r\n\r\n\r\n initPosto();\r\n setIsLoading(false);\r\n\r\n var anchor = document.querySelector('#scrollable');\r\n if (anchor)\r\n anchor.scrollIntoView();\r\n }\r\n\r\n devId.value = makeFileId();\r\n\r\n initialImage.value = defunto.value!.censimentoImageUrl ?? \"\";\r\n image.value = defunto.value!.censimentoImageUrl ?? \"\";\r\n\r\n //isLoading.value = false;\r\n\r\n console.log('Dati posto caricati:', posto.value);\r\n console.log('Dati defunto caricati:', defunto.value);\r\n\r\n initWatch();\r\n }\r\n catch (err: any) {\r\n console.log('Errore inizializzazione posto', err);\r\n await PresentAlertError('Errore inizializzazione posto', 'Il caricamento del posto ' + (id.value ?? \"\") + ' non è riuscito.', [\"Ok\"]);\r\n //isLoading.value = false;\r\n }\r\n });\r\n\r\n\r\n onBeforeUnmount(async () => {\r\n if (recording.value)\r\n stopRecording();\r\n await endGeo();\r\n });\r\n\r\n\r\n const saveCurrent = async (): Promise => {\r\n console.log('Saving ', posto.value);\r\n saving.value = true;\r\n //aggiornare gli id\r\n defunto.value!.postoId = posto.value!.id!;\r\n\r\n const obj = { posto: posto.value, defunto: defunto.value };\r\n await store.dispatch('saveCemeteryPosto', obj);\r\n saving.value = false;\r\n console.log('Salvataggio completato');\r\n }\r\n\r\n\r\n const next = async () => {\r\n try {\r\n console.log('Click next button');\r\n if (recording.value)\r\n await stopRecording();\r\n\r\n await saveCurrent();\r\n changed.value = false;\r\n\r\n const timestamp = '' + new Date().getTime();\r\n //await router.push('/gestione-posto-new/'+timestamp);\r\n router.replace('/tabs/tabAdmin/posto-new/' + timestamp);\r\n }\r\n catch (err: any) {\r\n console.log('Errore salvataggio', err);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore salvataggio\";\r\n toastMessage.value = err.message;\r\n setIsToastOpen(true);\r\n }\r\n };\r\n\r\n const end = async () => {\r\n try {\r\n console.log('Click end button');\r\n ending.value = true;\r\n if (recording.value)\r\n await stopRecording();\r\n await saveCurrent();\r\n //router.push('/gestione-area/'+area.value?.id);\r\n if (area.value)\r\n router.push('/tabs/tabAdmin/area/' + area.value?.id);\r\n ending.value = false;\r\n changed.value = false;\r\n }\r\n catch (err: any) {\r\n console.log('Errore salvataggio', err);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore salvataggio\";\r\n toastMessage.value = err.message;\r\n setIsToastOpen(true);\r\n ending.value = false;\r\n changed.value = true;\r\n }\r\n };\r\n\r\n\r\n\r\n const back = async () => {\r\n try {\r\n console.log('Click back button');\r\n //router.push('/gestione-area/'+area.value?.id);\r\n router.push('/tabs/tabAdmin/area/' + area.value?.id);\r\n }\r\n catch (err: any) {\r\n console.log('Errore salvataggio', err);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore salvataggio\";\r\n toastMessage.value = err.message;\r\n setIsToastOpen(true);\r\n }\r\n };\r\n\r\n const deletePosizioneDefunto = async () => {\r\n const buttons: Array = [\r\n {\r\n text: \"Annulla\",\r\n role: \"cancel\",\r\n handler: () => {\r\n console.log(\"Eliminazione annullata\");\r\n },\r\n },\r\n {\r\n text: 'Si. Elimina!',\r\n handler: async () => {\r\n deleting.value = true;\r\n try {\r\n console.log('Delete COINFIRM posto ', posto.value?.id, ' - defunto ', defunto.value?.id);\r\n if (posto.value) {\r\n const obj = { postoId: posto.value.id, defunto: !posto.value.isVuoto && defunto.value && defunto.value.id ? defunto.value : null };\r\n await store.dispatch('deleteCemeteryPosto', obj);\r\n //await router.push('/gestione-area/'+area.value?.id);\r\n router.push('/tabs/tabAdmin/area/' + area.value?.id);\r\n }\r\n }\r\n catch (err: any) {\r\n console.log('Errore eliminazione', err);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore durante l'eliminazione\";\r\n toastMessage.value = err.message;\r\n setIsToastOpen(true);\r\n }\r\n deleting.value = false;\r\n },\r\n },\r\n ];\r\n\r\n const netStatus = await Network.getStatus();\r\n if (!netStatus.connected && currentPosto.value && currentPosto.value.id > 0)\r\n PresentAlertError(\r\n \"ATTENZIONE!\",\r\n \"Questo posto è già presente sul Server. Per cancellarlo devi essere connesso alla rete Internet!\",\r\n [\"Ok\"]\r\n );\r\n else\r\n PresentAlertError(\r\n \"ATTENZIONE!\",\r\n \"Confermi l'eliminazione del posto/defunto?\",\r\n buttons\r\n );\r\n };\r\n\r\n const filaChange = () => {\r\n if (filaRef.value && filaRef.value.blur)\r\n filaRef.value.blur();\r\n };\r\n\r\n const colonnaChange = () => {\r\n if (colonnaRef.value && colonnaRef.value.blur)\r\n colonnaRef.value.blur();\r\n };\r\n\r\n const getFilenameExtension = (dataUrl: string) => {\r\n const arr = dataUrl.split(',');\r\n const matchs = arr[0].match(/:(.*?);/);\r\n if (!matchs)\r\n return;\r\n const mime = matchs[1];\r\n return mime.split('/').pop();\r\n //return Math.round(+new Date()/1000) + '.' + mime.split('/').pop();\r\n };\r\n\r\n\r\n const onChangePhoto = async () => {\r\n try {\r\n\r\n const permissions: PermissionStatus = await Camera.checkPermissions();\r\n if (permissions.camera == \"denied\" || permissions.photos == \"denied\") {\r\n await Camera.requestPermissions();\r\n }\r\n if (permissions.camera == \"denied\" || permissions.photos == \"denied\") {\r\n throw new Error(\"Accesso alla fotocamera non disponibile. Riprova e concedi i permessi necessari.\");\r\n }\r\n const foto = await Camera.getPhoto({\r\n quality: 80,\r\n allowEditing: false,\r\n resultType: CameraResultType.DataUrl,\r\n saveToGallery: false,\r\n //width:600,\r\n source: CameraSource.Camera\r\n });\r\n console.log('Image dataurl: ', foto.dataUrl);\r\n // image.webPath will contain a path that can be set as an image src.\r\n // You can access the original file using image.path, which can be\r\n // passed to the Filesystem API to read the raw data of the image,\r\n // if desired (or pass resultType: CameraResultType.Base64 to getPhoto)\r\n image.value = foto.dataUrl ?? \"\";\r\n defunto.value!.censimentoImageUrl = image.value;\r\n\r\n }\r\n catch (err: any) {\r\n Utils.PresentAlertError(\"Errore recupero immagine:\", err.message, [\r\n \"Ok\",\r\n ]);\r\n }\r\n };\r\n\r\n const displayOnlyName = (filepath: string) => {\r\n const index = filepath.lastIndexOf('/');\r\n if (index > 0 && filepath.length > index + 1)\r\n return filepath.substring(index + 1);\r\n return filepath;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n const calculateRandomString = () => {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_+=!@#$%^&*()[]{};:,.?';\r\n let length = 8;\r\n let randomString = '';\r\n for (let i = length; i > 0; --i) randomString += chars[Math.floor(Math.random() * chars.length)];\r\n return randomString;\r\n }\r\n\r\n /*\r\n const setPosto = (postoId: number) => {\r\n console.log('setPosto', postoId)\r\n const filtered: CemeteryPostoEditCommandDTO[] = area.value!.posti.filter(i => i.id == postoId).map((i: CemeteryPostoDTO) => ({\r\n areaId: i.areaId,\r\n id: i.id,\r\n progressivo: i.progressivo,\r\n denominazione: i.denominazione || null,\r\n fila: i.fila,\r\n colonna: i.colonna,\r\n tipoPosto: i.tipoPosto,\r\n isVuoto: i.isVuoto,\r\n statoLampadaVotiva: i.statoLampadaVotiva || null,\r\n statoIdentificazione: i.statoIdentificazione || null,\r\n note: i.note,\r\n latitudine: i.latitudine || null,\r\n longitudine: i.longitudine || null\r\n }));\r\n \r\n posto.value = filtered[0];\r\n console.log('newPosto', posto.value);\r\n }\r\n \r\n const setPostoByLineAndColumn = (l: number, c: number) => {\r\n console.log('setPostoByLineAndColumn', l, '-', c);\r\n const filtered = posti.value!.filter(i => i.fila == l && i.colonna && parseInt(i.colonna) == c).map((i: CemeteryPostoDTO) => ({\r\n areaId: i.areaId,\r\n id: i.id,\r\n progressivo: i.progressivo,\r\n denominazione: i.denominazione || null,\r\n fila: i.fila,\r\n colonna: i.colonna,\r\n tipoPosto: i.tipoPosto,\r\n isVuoto: i.isVuoto,\r\n statoLampadaVotiva: i.statoLampadaVotiva || null,\r\n statoIdentificazione: i.statoIdentificazione || null,\r\n note: i.note,\r\n latitudine: i.latitudine || null,\r\n longitudine: i.longitudine || null\r\n }));;\r\n posto.value = filtered[0];\r\n console.log('newPosto', posto.value);\r\n }*/\r\n\r\n return {\r\n cimitero, image,\r\n isAuth,\r\n heartOutline,\r\n locateOutline,\r\n closeCircle,\r\n routerKey,\r\n id, filaChange, cameraOutline, locationSharp, pencilSharp,\r\n isToastOpen,\r\n isLoading,\r\n setIsToastOpen,\r\n toastColor,\r\n toastMessage,\r\n toastHeader,\r\n area,\r\n posto, defunto,\r\n lampadaOptions,\r\n indetificazioneOptions,\r\n startRecording,\r\n stopRecording,\r\n recording,\r\n recorderEnable,\r\n playFile,\r\n micOutline,\r\n micOffOutline,\r\n play,\r\n trashOutline, chevronBack, chevronForward, globeSharp,\r\n deleteAudioFile,\r\n deleting, plaing, changed, deletingAudio,\r\n next, end, devId, saving, back,\r\n filaRef, onChangePhoto,\r\n displayOnlyName,\r\n editMode,\r\n ending,\r\n deletePosizioneDefunto,\r\n startGeo, endGeo,\r\n localizing,\r\n areaLines,\r\n areaColumns,\r\n mapApiKey,\r\n mapRef, markRef, markerPosition, markerVisible, dragend, mapVisible, geoErr, netStatus, calculateRandomString,\r\n //setPostoByLineAndColumn, setPosto,\r\n posti, currentColonna,\r\n autoMode,\r\n colonnaRef, colonnaChange\r\n };\r\n },\r\n});\r\n","import { render } from \"./Posto.vue?vue&type=template&id=4520c60e&scoped=true&ts=true\"\nimport script from \"./Posto.vue?vue&type=script&lang=ts\"\nexport * from \"./Posto.vue?vue&type=script&lang=ts\"\n\nimport \"./Posto.vue?vue&type=style&index=0&id=4520c60e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4520c60e\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-67b73e72\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"card-title\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title mb-3\" }, \"Riepilogo Aree in questo cimitero\", -1))\nconst _hoisted_4 = { class: \"d-flex flex-row mb-3 justify-content-around\" }\nconst _hoisted_5 = { class: \"me-3\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, [\n /*#__PURE__*/_createElementVNode(\"b\", null, \"TOTALE\")\n], -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, [\n /*#__PURE__*/_createElementVNode(\"b\", null, \"DA SINCR.\")\n], -1))\nconst _hoisted_8 = { class: \"d-flex justify-content-end\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"text-center\"\n}\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"card-title\" }, \"Aree/Padiglioni\", -1))\nconst _hoisted_12 = { class: \"text-end\" }\nconst _hoisted_13 = { class: \"d-flex align-items-center\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-10\" }, \"Solo non geolocalizzati\", -1))\nconst _hoisted_15 = {\n key: 0,\n class: \"ms-auto\"\n}\nconst _hoisted_16 = { class: \"row w-100\" }\nconst _hoisted_17 = { class: \"col text-wrap\" }\nconst _hoisted_18 = { class: \"area-name\" }\nconst _hoisted_19 = { class: \"me-5\" }\nconst _hoisted_20 = {\n key: 0,\n class: \"col-auto\"\n}\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: \"/assets/img/map.png\",\n style: {\"width\":\"24px\",\"margin-top\":\"8px\"}\n })\n], -1))\nconst _hoisted_22 = [\n _hoisted_21\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_ion_icon = _resolveComponent(\"ion-icon\")!\n const _component_ion_button = _resolveComponent(\"ion-button\")!\n const _component_ion_buttons = _resolveComponent(\"ion-buttons\")!\n const _component_ion_menu_button = _resolveComponent(\"ion-menu-button\")!\n const _component_ald_logo = _resolveComponent(\"ald-logo\")!\n const _component_ion_title = _resolveComponent(\"ion-title\")!\n const _component_ion_toolbar = _resolveComponent(\"ion-toolbar\")!\n const _component_ion_header = _resolveComponent(\"ion-header\")!\n const _component_ion_loading = _resolveComponent(\"ion-loading\")!\n const _component_ion_label = _resolveComponent(\"ion-label\")!\n const _component_ion_input = _resolveComponent(\"ion-input\")!\n const _component_ion_item = _resolveComponent(\"ion-item\")!\n const _component_ion_list = _resolveComponent(\"ion-list\")!\n const _component_ion_card_content = _resolveComponent(\"ion-card-content\")!\n const _component_ion_card = _resolveComponent(\"ion-card\")!\n const _component_ion_text = _resolveComponent(\"ion-text\")!\n const _component_ion_searchbar = _resolveComponent(\"ion-searchbar\")!\n const _component_ion_toggle = _resolveComponent(\"ion-toggle\")!\n const _component_ion_toast = _resolveComponent(\"ion-toast\")!\n const _component_ion_content = _resolveComponent(\"ion-content\")!\n const _component_ion_footer = _resolveComponent(\"ion-footer\")!\n const _component_ion_page = _resolveComponent(\"ion-page\")!\n\n return (_openBlock(), _createBlock(_component_ion_page, null, {\n default: _withCtx(() => [\n _createVNode(_component_router_view),\n _createVNode(_component_ion_header, { class: \"ion-no-border\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_toolbar, { color: \"tertiary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_buttons, { slot: \"start\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_button, {\n color: \"light\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.back())),\n fill: \"clear\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.arrowBackSharp\n }, null, 8, [\"icon\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_buttons, { slot: \"end\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_menu_button)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_title, null, {\n default: _withCtx(() => [\n _createVNode(_component_ald_logo)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_loading, {\n \"is-open\": _ctx.isLoading,\n cssClass: \"my-custom-class\",\n message: \"Caricamento dati...\"\n }, null, 8, [\"is-open\"]),\n _createVNode(_component_ion_content, { class: \"map-backgorund\" }, {\n default: _withCtx(() => [\n (!_ctx.isLoading && _ctx.cimitero)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _createElementVNode(\"p\", _hoisted_2, \"Dati Anagrafici: \" + _toDisplayString(_ctx.cimitero?.name), 1),\n _createVNode(_component_ion_list, { lines: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Nome\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.cimitero.name,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.cimitero.name) = $event)),\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Indirizzo\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.cimitero.address,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.cimitero.address) = $event)),\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"h1\", null, _toDisplayString(_ctx.cimitero && _ctx.cimitero.aree ? _ctx.cimitero.aree.length : 0), 1),\n _hoisted_6\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_ion_text, { color: \"danger\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"h1\", null, _toDisplayString(_ctx.itemsToSync), 1),\n _hoisted_7\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_ctx.itemsToSync > 0 && _ctx.isConnected)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createVNode(_component_ion_button, {\n color: \"danger\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.startSync()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Avvia\"),\n _hoisted_10,\n _createTextVNode(\"Sincronizzazione\")\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_11,\n _createElementVNode(\"p\", _hoisted_12, [\n _createVNode(_component_ion_button, {\n size: \"small\",\n onClick: _ctx.addNuovo\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"+ Nuovo\")\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n (_ctx.cimitero.aree && _ctx.cimitero.aree.length > 2)\n ? (_openBlock(), _createBlock(_component_ion_searchbar, {\n key: 0,\n placeholder: \"Cerca area\",\n modelValue: _ctx.searchText,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.searchText) = $event))\n }, null, 8, [\"modelValue\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_ion_toggle, {\n modelValue: _ctx.onlyToGeo,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.onlyToGeo) = $event)),\n \"label-placement\": \"end\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_14,\n (_ctx.onlyToGeo)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_15, \" (\" + _toDisplayString(_ctx.cimitero.aree?.filter(i=>(!_ctx.onlyToGeo || (!i.latitudine && !i.longitudine)) && (_ctx.searchText == '' || i.areaName.toUpperCase().includes(_ctx.searchText.toUpperCase())) ).length) + \")\", 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_ion_list, { lines: \"full\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.cimitero.aree?.filter(i=>(!_ctx.onlyToGeo || (!i.latitudine && !i.longitudine)) && (_ctx.searchText == '' || i.areaName.toUpperCase().includes(_ctx.searchText.toUpperCase())) ), (a) => {\n return (_openBlock(), _createBlock(_component_ion_item, {\n key: 'a'+a.id,\n detail: \"true\",\n onClick: ($event: any) => (_ctx.gotoDetailArea(a.id) )\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"h3\", _hoisted_18, _toDisplayString(a.areaName), 1),\n _createElementVNode(\"p\", null, [\n _createElementVNode(\"small\", _hoisted_19, \"Defunti: \" + _toDisplayString(a.defuntiCount), 1)\n ])\n ]),\n (a.isGeolocated)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, _hoisted_22))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n }), 128))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_toast, {\n \"is-open\": _ctx.isToastOpen,\n message: _ctx.toastMessage,\n duration: 5000,\n color: _ctx.toastColor,\n header: _ctx.toastHeader,\n position: \"top\",\n onDidDismiss: _cache[6] || (_cache[6] = ($event: any) => (_ctx.setIsToastOpen(false)))\n }, null, 8, [\"is-open\", \"message\", \"color\", \"header\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n (_ctx.saveEnable)\n ? (_openBlock(), _createBlock(_component_ion_footer, { key: 0 }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_toolbar, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_button, {\n expand: \"full\",\n onClick: _cache[7] || (_cache[7] = ($event: any) => (_ctx.saveAnagrafica())),\n color: \"secondary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Salva modifiche\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n}","\r\n import {\r\n IonPage,\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonText,\r\n IonMenuButton,\r\n IonBackButton,\r\n IonButtons,\r\n IonLoading,\r\n IonLabel,\r\n IonList,\r\n IonItem,\r\n IonCard,\r\n IonCardHeader,\r\n IonCardContent,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonButton,\r\n IonAvatar,\r\n IonIcon,\r\n IonChip,\r\n IonModal,\r\n IonToast,\r\n IonInput,IonFooter,IonSearchbar,IonToggle,\r\n alertController,\r\n actionSheetController,\r\n onIonViewDidEnter\r\n } from \"@ionic/vue\";\r\n import {\r\n computed,\r\n defineComponent,\r\n ref, watch, onMounted\r\n } from \"vue\";\r\n import aldLogo from \"@/components/aldilapp/shared/ald-logo.vue\";\r\n import { useStore } from \"vuex\";\r\n import { key } from \"../../../store\";\r\n import { useRoute, useRouter, RouterView } from \"vue-router\";\r\n import {\r\n heartOutline,\r\n locateOutline,\r\n closeCircle,arrowBackSharp,\r\n bonfireOutline,\r\n close,\r\n createOutline,\r\n warningOutline,\r\n flowerOutline, heartDislikeOutline, shareOutline,timeOutline, mapOutline\r\n } from \"ionicons/icons\";\r\n //import SimpleContent from \"@/components/aldilapp/detail/simplecontent.vue\";\r\n import Textarea from \"primevue/textarea\";\r\n import Button from \"primevue/button\";\r\n import { Network } from \"@capacitor/network\";\r\n import { FileSync } from \"@/services/localfs.service\";\r\n import Utils from \"@/services/utils.service\";\r\n //import { CemeteryDTO } from \"@/models\";\r\n //import { DataService } from \"@/services/data.service\";\r\n //import { GoogleMap, Marker } from '@capacitor/google-maps';\r\n \r\n \r\n export default defineComponent({\r\n name: \"GestioneCimitero\",\r\n components: {\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonPage,\r\n IonText,\r\n IonMenuButton,\r\n IonBackButton,\r\n IonButtons,\r\n IonLoading,\r\n aldLogo,\r\n IonLabel,\r\n IonList,\r\n IonItem,\r\n IonCard,\r\n IonCardHeader,\r\n IonCardContent,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonButton,\r\n IonAvatar,\r\n IonIcon,\r\n IonChip,\r\n IonToast,\r\n Textarea,\r\n Button,\r\n RouterView,\r\n IonModal,\r\n IonInput,IonFooter,IonSearchbar,IonToggle\r\n },\r\n \r\n setup() {\r\n const store = useStore(key);\r\n const router = useRouter();\r\n const route = useRoute();\r\n const routerKey = route.path;\r\n const id = ref();\r\n const isToastOpen = ref(false);\r\n const isLoading = ref(false);\r\n const setIsLoading = (state: boolean) => (isLoading.value = state);\r\n const setIsToastOpen = (state: boolean) => (isToastOpen.value = state);\r\n const currentUser = computed(() => store.state.auth?.user && !store.state.auth.user.isAnonymous && store.state.auth.user.displayName ? store.state.auth.user.displayName : \"\");\r\n const cimitero = computed(() => store.state.gestione.currentCemetery);\r\n const isAuth = computed(() => {\r\n return (\r\n store.state.auth &&\r\n store.state.auth.user &&\r\n !store.state.auth.user.isAnonymous\r\n );\r\n });\r\n const toastMessage = ref(\"\");\r\n const toastColor = ref(\"\");\r\n const toastHeader = ref(\"\");\r\n const saveEnable = ref(false);\r\n const itemsToSync = ref(0);\r\n const isConnected = ref(false);\r\n const searchText = ref(\"\");\r\n const onlyToGeo = ref(false);\r\n\r\n onIonViewDidEnter(async () => {\r\n\r\n try{\r\n console.log(\"ViewDidEnter: \", route.path);\r\n const index = route.params.id.lastIndexOf('-');\r\n if (index < 0)\r\n id.value = +route.params.id;\r\n else\r\n id.value = +(route.params.id as string).substring(index+1);\r\n \r\n await loadCimitero(id.value!); \r\n\r\n isConnected.value = (await Network.getStatus()).connected;\r\n \r\n\r\n await refreshItemsToSync();\r\n }\r\n catch(ex: any)\r\n {\r\n await Utils.PresentAlertError(\"Errore\",ex.message, [\"OK\"]);\r\n }\r\n });\r\n\r\n Network.addListener('networkStatusChange', status => {\r\n console.log('Network status changed', status);\r\n isConnected.value = status.connected;\r\n });\r\n\r\n const refreshItemsToSync = async () => {\r\n if (!cimitero.value) return 0;\r\n itemsToSync.value = await FileSync.getNumAreeToSync(cimitero.value.id);\r\n };\r\n\r\n\r\n\r\n\r\n const loadCimitero = async (cimiteroId: number): Promise => {\r\n if (!isLoading.value) {\r\n setIsLoading(true);\r\n await store.dispatch('loadGestioneCemetery', cimiteroId);\r\n console.log('Cimitero:',cimitero.value);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const startSync = async () => \r\n {\r\n try{\r\n if (!cimitero.value) return;\r\n const result = await FileSync.syncCemetery(cimitero.value.id);\r\n console.log('Esito sync:', result ? \"OK\" : \"KO\");\r\n toastHeader.value = result ? \"Sincr. terminata con successo\" : \"Sicr. con errori\";\r\n toastColor.value = result ? \"success\" : \"danger\";\r\n setIsToastOpen(true);\r\n await loadCimitero(id.value!);\r\n await refreshItemsToSync();\r\n }\r\n catch (err: any){\r\n console.log('Errore sync:', err);\r\n toastHeader.value = 'Errore sincronizzazione dati';\r\n toastColor.value = 'danger';\r\n setIsToastOpen(true);\r\n await loadCimitero(id.value!);\r\n await refreshItemsToSync();\r\n }\r\n };\r\n\r\n \r\n \r\n \r\n\r\n const gotoDetailArea = async (id: number) => {\r\n //await router.push(\"/gestione-area/\" + id);\r\n router.push(\"/tabs/tabAdmin/area/\" + id);\r\n //await router.push(\"/gestione-cimitero/\" + cimitero.value!.id+ '/area/'+id);\r\n };\r\n \r\n const saveAnagrafica = async () => {\r\n saveEnable.value = false;\r\n toastHeader.value = 'Modifica dati cimitero ancora disabiltata via app. Chiedere intervento di Luca';\r\n toastColor.value = 'danger';\r\n setIsToastOpen(true);\r\n };\r\n \r\n const addNuovo = async() => {\r\n await store.dispatch('loadCemeteryArea', 0);\r\n //const route = \"/gestione-area/\" + 0;\r\n const route = \"/tabs/tabAdmin/area/\" + 0;\r\n router.push(route);\r\n }\r\n\r\n const back = async() => {\r\n const route = \"/tabs/tabAdmin/\";\r\n await router.push(route);\r\n }\r\n \r\n return {\r\n isLoading,\r\n isAuth,\r\n heartOutline,\r\n locateOutline,\r\n closeCircle,\r\n routerKey,\r\n id,\r\n isToastOpen,\r\n setIsToastOpen,\r\n toastColor,\r\n toastMessage,\r\n toastHeader,\r\n cimitero,\r\n gotoDetailArea,\r\n saveAnagrafica,\r\n addNuovo,\r\n saveEnable,\r\n arrowBackSharp, back,\r\n itemsToSync,\r\n isConnected,\r\n startSync,\r\n searchText,\r\n onlyToGeo\r\n };\r\n },\r\n });\r\n ","import { render } from \"./Cimitero.vue?vue&type=template&id=67b73e72&scoped=true&ts=true\"\nimport script from \"./Cimitero.vue?vue&type=script&lang=ts\"\nexport * from \"./Cimitero.vue?vue&type=script&lang=ts\"\n\nimport \"./Cimitero.vue?vue&type=style&index=0&id=67b73e72&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-67b73e72\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6e0803d0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"card-title mb-3\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title mb-3\" }, \"Informazioni per il Censimento\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_6 = {\n key: 0,\n class: \"mt-3\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, [\n /*#__PURE__*/_createElementVNode(\"b\", null, \"Non sono definiti punti di controllo\")\n], -1))\nconst _hoisted_8 = [\n _hoisted_7\n]\nconst _hoisted_9 = {\n key: 1,\n class: \"mt-3\"\n}\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title\" }, \"Punti di Controllo\", -1))\nconst _hoisted_11 = { class: \"d-flex flex-co lumn\" }\nconst _hoisted_12 = { class: \"me-1\" }\nconst _hoisted_13 = { class: \"text-break col\" }\nconst _hoisted_14 = { key: 0 }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_16 = { class: \"ms-1\" }\nconst _hoisted_17 = { class: \"mt-3 text-end\" }\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title mb-3\" }, \"Geolocalizzazione area\", -1))\nconst _hoisted_19 = {\n key: 0,\n class: \"small text-end\"\n}\nconst _hoisted_20 = {\n key: 0,\n class: \"map-container mt-3\"\n}\nconst _hoisted_21 = { key: 1 }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, [\n /*#__PURE__*/_createElementVNode(\"b\", null, \"Connessione assente! Impossibile visualizzare mappa senza connessione\")\n], -1))\nconst _hoisted_23 = { class: \"row\" }\nconst _hoisted_24 = { class: \"col-6\" }\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_27 = { class: \"col-6\" }\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title mb-3\" }, \"Riepilogo Posti censiti in questa area\", -1))\nconst _hoisted_30 = { class: \"d-flex flex-row mb-3 justify-content-around\" }\nconst _hoisted_31 = { class: \"me-3\" }\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, [\n /*#__PURE__*/_createElementVNode(\"b\", null, \"TOTALE\")\n], -1))\nconst _hoisted_33 = { class: \"me-3\" }\nconst _hoisted_34 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, [\n /*#__PURE__*/_createElementVNode(\"b\", null, \"LIBERI\")\n], -1))\nconst _hoisted_35 = { class: \"me-3\" }\nconst _hoisted_36 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, [\n /*#__PURE__*/_createElementVNode(\"b\", null, \"OCCUPATI\")\n], -1))\nconst _hoisted_37 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, [\n /*#__PURE__*/_createElementVNode(\"b\", null, \"DA SINCR.\")\n], -1))\nconst _hoisted_38 = { class: \"d-flex justify-content-center\" }\nconst _hoisted_39 = { class: \"text-center me-3\" }\nconst _hoisted_40 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_41 = {\n key: 0,\n class: \"text-center\"\n}\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_43 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title\" }, \"Posti/Defunti\", -1))\nconst _hoisted_44 = { class: \"d-flex flex-row w-100 justify-content-between align-items-center\" }\nconst _hoisted_45 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, [\n /*#__PURE__*/_createElementVNode(\"small\", null, \"Filtra fila:\")\n], -1))\nconst _hoisted_46 = { class: \"d-flex flex-row w-100 justify-content-between align-items-center mb-1\" }\nconst _hoisted_47 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", null, [\n /*#__PURE__*/_createElementVNode(\"small\", null, \"Filtra colonna:\")\n], -1))\nconst _hoisted_48 = { class: \"d-flex align-items-center w-100\" }\nconst _hoisted_49 = { class: \"me-2 col-auto\" }\nconst _hoisted_50 = {\n key: 0,\n class: \"col\"\n}\nconst _hoisted_51 = { class: \"d-flex flex-row justify-content-between align-items-center w-100\" }\nconst _hoisted_52 = { style: {\"font-size\":\"xx-small\"} }\nconst _hoisted_53 = { key: 0 }\nconst _hoisted_54 = { key: 1 }\nconst _hoisted_55 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"b\", null, \"-\", -1))\nconst _hoisted_56 = [\n _hoisted_55\n]\nconst _hoisted_57 = { key: 2 }\nconst _hoisted_58 = { key: 0 }\nconst _hoisted_59 = { class: \"text-center me-1\" }\nconst _hoisted_60 = {\n key: 1,\n class: \"d-flex flex-column w-100 col\"\n}\nconst _hoisted_61 = { style: {\"font-size\":\"xx-small\"} }\nconst _hoisted_62 = { key: 0 }\nconst _hoisted_63 = { key: 1 }\nconst _hoisted_64 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"b\", null, \"-\", -1))\nconst _hoisted_65 = [\n _hoisted_64\n]\nconst _hoisted_66 = { key: 2 }\nconst _hoisted_67 = { key: 0 }\nconst _hoisted_68 = { class: \"me-auto\" }\nconst _hoisted_69 = { key: 0 }\nconst _hoisted_70 = { key: 1 }\nconst _hoisted_71 = { key: 0 }\nconst _hoisted_72 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"graffitti-text\" }, \"N. \", -1))\nconst _hoisted_73 = [\"innerHTML\"]\nconst _hoisted_74 = { key: 1 }\nconst _hoisted_75 = { key: 2 }\nconst _hoisted_76 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"graffitti-text\" }, \"M. \", -1))\nconst _hoisted_77 = [\"innerHTML\"]\nconst _hoisted_78 = {\n key: 2,\n class: \"d-flex flex-row align-items-center\"\n}\nconst _hoisted_79 = {\n key: 0,\n class: \"text-end col-auto mt-1\"\n}\nconst _hoisted_80 = { class: \"col text-break\" }\nconst _hoisted_81 = { class: \"text-end col-auto\" }\nconst _hoisted_82 = { class: \"me-1 text-end\" }\nconst _hoisted_83 = { key: 0 }\nconst _hoisted_84 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_85 = { key: 1 }\nconst _hoisted_86 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_87 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: \"/assets/img/map.png\",\n style: {\"width\":\"16px\"}\n}, null, -1))\nconst _hoisted_88 = [\n _hoisted_86,\n _hoisted_87\n]\nconst _hoisted_89 = { class: \"me-1\" }\nconst _hoisted_90 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-title\" }, \"Eliminazione\", -1))\nconst _hoisted_91 = { key: 0 }\nconst _hoisted_92 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, \"Con questa operazione elimini quest'area. Puoi eseguirla poichè non sono regisrati ancora defunti su di essa\", -1))\nconst _hoisted_93 = { class: \"text-center mt-2\" }\nconst _hoisted_94 = { key: 1 }\nconst _hoisted_95 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"small\", null, \"Operazione non consentita perchè ci sono defunti registrati su questa area. Se è necessario eliminarla ugualmente chiedi al tuo referente.\", -1))\nconst _hoisted_96 = [\n _hoisted_95\n]\nconst _hoisted_97 = { key: 0 }\nconst _hoisted_98 = { key: 1 }\nconst _hoisted_99 = { class: \"ion-margin-top\" }\nconst _hoisted_100 = { class: \"ion-margin-top text-center\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_ion_back_button = _resolveComponent(\"ion-back-button\")!\n const _component_ion_buttons = _resolveComponent(\"ion-buttons\")!\n const _component_ion_menu_button = _resolveComponent(\"ion-menu-button\")!\n const _component_ald_logo = _resolveComponent(\"ald-logo\")!\n const _component_ion_title = _resolveComponent(\"ion-title\")!\n const _component_ion_toolbar = _resolveComponent(\"ion-toolbar\")!\n const _component_ion_header = _resolveComponent(\"ion-header\")!\n const _component_ion_loading = _resolveComponent(\"ion-loading\")!\n const _component_ion_label = _resolveComponent(\"ion-label\")!\n const _component_ion_input = _resolveComponent(\"ion-input\")!\n const _component_ion_item = _resolveComponent(\"ion-item\")!\n const _component_ion_select_option = _resolveComponent(\"ion-select-option\")!\n const _component_ion_select = _resolveComponent(\"ion-select\")!\n const _component_ion_list = _resolveComponent(\"ion-list\")!\n const _component_ion_card_content = _resolveComponent(\"ion-card-content\")!\n const _component_ion_card = _resolveComponent(\"ion-card\")!\n const _component_ion_toggle = _resolveComponent(\"ion-toggle\")!\n const _component_ion_textarea = _resolveComponent(\"ion-textarea\")!\n const _component_ion_icon = _resolveComponent(\"ion-icon\")!\n const _component_ion_button = _resolveComponent(\"ion-button\")!\n const _component_Marker = _resolveComponent(\"Marker\")!\n const _component_GoogleMap = _resolveComponent(\"GoogleMap\")!\n const _component_ion_text = _resolveComponent(\"ion-text\")!\n const _component_ion_searchbar = _resolveComponent(\"ion-searchbar\")!\n const _component_ion_toast = _resolveComponent(\"ion-toast\")!\n const _component_ion_content = _resolveComponent(\"ion-content\")!\n const _component_ion_modal = _resolveComponent(\"ion-modal\")!\n const _component_ion_footer = _resolveComponent(\"ion-footer\")!\n const _component_ion_page = _resolveComponent(\"ion-page\")!\n\n return (_openBlock(), _createBlock(_component_ion_page, null, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_component_router_view, { key: _ctx.routerKey })),\n _createVNode(_component_ion_header, { class: \"ion-no-border\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_toolbar, { color: \"tertiary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_buttons, { slot: \"start\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_back_button, {\n \"default-href\": '/tabs/tabAdmin/cimitero/' + _ctx.currentCemetery.id\n }, null, 8, [\"default-href\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_buttons, { slot: \"end\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_menu_button)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_title, null, {\n default: _withCtx(() => [\n _createVNode(_component_ald_logo)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_loading, {\n \"is-open\": _ctx.isLoading,\n cssClass: \"my-custom-class\",\n message: \"Caricamento dati...\"\n }, null, 8, [\"is-open\"]),\n _createVNode(_component_ion_content, { class: \"map-backgorund\" }, {\n default: _withCtx(() => [\n (!_ctx.isLoading && _ctx.area)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, \"Dati anagrafici: \" + _toDisplayString(_ctx.calcNewName), 1),\n _createVNode(_component_ion_list, { lines: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Area1\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.area.area1,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.area.area1) = $event)),\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Area2\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.area.area2,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.area.area2) = $event)),\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Area3\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.area.zona1,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.area.zona1) = $event)),\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Area4\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.area.zona2,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.area.zona2) = $event)),\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Tipo sepolture\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select, {\n interface: \"popover\",\n modelValue: _ctx.area.tipoSepoltura,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.area.tipoSepoltura) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_select_option, { value: \"Loculo\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Loculi\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Tomba\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Tombe\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Ossario\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Ossario\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Cantera\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Cantera\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"Posto\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Altro\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Progressivo iniziale\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.area.progressivoIniziale,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.area.progressivoIniziale) = $event)),\n class: \"r-input\",\n inputmode: \"numeric\",\n min: \"0\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Ultimo prog. registrato\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.ultimoprog,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.ultimoprog) = $event)),\n class: \"r-input\",\n disabled: true\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_3,\n _createVNode(_component_ion_list, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Posizione di inizio\"),\n _hoisted_4,\n _createTextVNode(\"censimento (nr. 1)\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select, {\n interface: \"popover\",\n modelValue: _ctx.area.posizioneProgressivoIniziale,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.area.posizioneProgressivoIniziale) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_select_option, { value: \"dwsx\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Basso/Sinistra\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"dwdx\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Basso/Destra\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"upsx\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Alto/Sinistra\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"updx\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Alto/Destra\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Direzione\"),\n _hoisted_5,\n _createTextVNode(\"progressivo\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select, {\n interface: \"popover\",\n modelValue: _ctx.area.direzioneCensimento,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.area.direzioneCensimento) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_select_option, { value: \"hor\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Orizzontale (per righe)\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"ver\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Verticale (per colonne)\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Tipo cambio linea\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select, {\n interface: \"popover\",\n modelValue: _ctx.area.tipoCambioLinea,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.area.tipoCambioLinea) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_select_option, { value: \"regular\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Regolare\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_select_option, { value: \"snake\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"A serpente\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n (_ctx.area.direzioneCensimento == 'hor')\n ? (_openBlock(), _createBlock(_component_ion_item, {\n key: 0,\n class: \"full\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Riparti da \" + _toDisplayString((_ctx.area.progressivoIniziale ?? 1)) + \" ad ogni fila\", 1)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_toggle, {\n modelValue: _ctx.area.resetIndexPerLine,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.area.resetIndexPerLine) = $event))\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.area.direzioneCensimento == 'ver')\n ? (_openBlock(), _createBlock(_component_ion_item, {\n key: 1,\n class: \"full\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Riparti da \" + _toDisplayString((_ctx.area.progressivoIniziale ?? 1)) + \" ad ogni colonna\", 1)\n ]),\n _: 1\n }),\n _createVNode(_component_ion_toggle, {\n modelValue: _ctx.area.resetIndexPerLine,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.area.resetIndexPerLine) = $event))\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Note\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_textarea, {\n placeholder: \"Scrivi qui\",\n modelValue: _ctx.area.noteSopralluogo,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.area.noteSopralluogo) = $event))\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n (!_ctx.area.checkPoints || _ctx.area.checkPoints.length == 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _hoisted_8))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.area.checkPoints, (c) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"w-100 py-1 px-1 mb-1 d-flex align-items-center\",\n style: {\"border\":\"1px solid var(--ion-color-primary)\",\"border-radius\":\"5px\"},\n key: 'kf' + (c.fila ?? '0') + 'p' + c.progressivo\n }, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_ion_button, {\n size: \"small\",\n color: \"danger\",\n fill: \"clear\",\n onClick: ($event: any) => (_ctx.deleteCheckpoint(c))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n size: \"small\",\n icon: _ctx.trashSharp\n }, null, 8, [\"icon\"])\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n (c.fila)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_14, [\n _createElementVNode(\"b\", null, \"Fila \" + _toDisplayString(c.fila) + \" - \", 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"b\", null, \"Posto \" + _toDisplayString(c.progressivo), 1)\n ]),\n _hoisted_15,\n _createElementVNode(\"span\", null, _toDisplayString(c.defunto), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(_component_ion_button, {\n size: \"small\",\n fill: \"clear\",\n onClick: ($event: any) => (_ctx.editCheckpoint(c))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.chevronForwardSharp\n }, null, 8, [\"icon\"])\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ])\n ]))\n }), 128))\n ])\n ])),\n _createElementVNode(\"div\", _hoisted_17, [\n _createVNode(_component_ion_button, {\n size: \"small\",\n onClick: _cache[13] || (_cache[13] = ($event: any) => (_ctx.addNewCheckpoint()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: _ctx.addSharp }, null, 8, [\"icon\"]),\n _createTextVNode(\" Aggiungi punto di controllo\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_18,\n _createVNode(_component_ion_list, { lines: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Latitidine\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.area.latitudine,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.area.latitudine) = $event)),\n disabled: true,\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_ion_item, { class: \"full\" }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Longitudine\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.area.longitudine,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = ($event: any) => ((_ctx.area.longitudine) = $event)),\n disabled: true,\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", null, [\n (_ctx.localizing && _ctx.geoErr)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_19, [\n _createElementVNode(\"b\", null, \"± \" + _toDisplayString(_ctx.geoErr) + \" metri\", 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.netStatus)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n (_ctx.mapVisible)\n ? (_openBlock(), _createBlock(_component_GoogleMap, {\n key: 0,\n ref: \"mapRef\",\n \"api-key\": _ctx.mapApiKey,\n class: \"map\",\n zoom: 17,\n streetViewControl: false,\n style: {\"width\":\"100%\",\"height\":\"350px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_Marker, {\n options: { position: _ctx.markerPosition, visible: _ctx.markerVisible, draggable: true },\n ref: \"markRef\",\n onDragend: _ctx.dragend\n }, null, 8, [\"options\", \"onDragend\"])\n ]),\n _: 1\n }, 8, [\"api-key\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n (!_ctx.netStatus)\n ? (_openBlock(), _createBlock(_component_ion_text, {\n key: 0,\n color: \"warning\"\n }, {\n default: _withCtx(() => [\n _hoisted_22\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])),\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"div\", _hoisted_24, [\n (!_ctx.localizing)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n onClick: _ctx.startGeo,\n expand: \"block\",\n color: \"primary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Avvia\"),\n _hoisted_25,\n _createTextVNode(\"localizzazione\")\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.localizing)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n expand: \"block\",\n color: \"light\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Localizzazione\"),\n _hoisted_26,\n _createTextVNode(\"in corso...\")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_27, [\n (_ctx.localizing)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n onClick: _ctx.endGeo,\n expand: \"block\",\n color: \"danger\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Stop\"),\n _hoisted_28,\n _createTextVNode(\"localizzazione\")\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_29,\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"h1\", null, _toDisplayString(_ctx.area.posti.length), 1),\n _hoisted_32\n ]),\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"h1\", null, _toDisplayString(_ctx.area.posti.filter(i => i.isVuoto).length), 1),\n _hoisted_34\n ]),\n _createElementVNode(\"div\", _hoisted_35, [\n _createElementVNode(\"h1\", null, _toDisplayString(_ctx.area.posti.filter(i => !i.isVuoto).length), 1),\n _hoisted_36\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_ion_text, { color: \"danger\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"h1\", null, _toDisplayString(_ctx.itemsToSync), 1),\n _hoisted_37\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_38, [\n _createElementVNode(\"div\", _hoisted_39, [\n _createVNode(_component_ion_button, {\n onClick: _cache[16] || (_cache[16] = ($event: any) => (_ctx.startCensimento()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Avvia/Riprendi\"),\n _hoisted_40,\n _createTextVNode(\"Censimento\")\n ]),\n _: 1\n })\n ]),\n (_ctx.itemsToSync > 0 && _ctx.netStatus)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_41, [\n _createVNode(_component_ion_button, {\n color: \"danger\",\n onClick: _cache[17] || (_cache[17] = ($event: any) => (_ctx.startSync()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Avvia\"),\n _hoisted_42,\n _createTextVNode(\"Sincronizzazione\")\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_43,\n (_ctx.area.posti && _ctx.area.posti.length > 2)\n ? (_openBlock(), _createBlock(_component_ion_searchbar, {\n key: 0,\n placeholder: \"Cera defunto/posto\",\n modelValue: _ctx.searchText,\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = ($event: any) => ((_ctx.searchText) = $event))\n }, null, 8, [\"modelValue\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_44, [\n _hoisted_45,\n _createVNode(_component_ion_select, {\n interface: \"popover\",\n modelValue: _ctx.filterFila,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = ($event: any) => ((_ctx.filterFila) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_select_option, { value: \"\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"-Tutte-\")\n ]),\n _: 1\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.file, (f) => {\n return (_openBlock(), _createBlock(_component_ion_select_option, {\n value: f,\n key: f\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Fila \" + _toDisplayString(f), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_46, [\n _hoisted_47,\n _createVNode(_component_ion_select, {\n interface: \"popover\",\n modelValue: _ctx.filterColonna,\n \"onUpdate:modelValue\": _cache[20] || (_cache[20] = ($event: any) => ((_ctx.filterColonna) = $event))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_select_option, { value: \"\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"-Tutte-\")\n ]),\n _: 1\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.colonne, (c) => {\n return (_openBlock(), _createBlock(_component_ion_select_option, {\n value: c,\n key: c\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Colonna \" + _toDisplayString(c), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createVNode(_component_ion_list, null, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.postiToShow.filter(i => _ctx.searchText == '' || i.denominazione.toUpperCase().includes(_ctx.searchText.toUpperCase()) ||\r\n (i.posizioneDefunti && i.posizioneDefunti.filter(j => (j.cognome && j.cognome.toUpperCase().includes(_ctx.searchText.toUpperCase())) || (j.nome && j.nome.toUpperCase().includes(_ctx.searchText.toUpperCase()))).length > 0)).sort((a, b) => { return b.id - a.id }), (p) => {\n return (_openBlock(), _createBlock(_component_ion_item, {\n key: p.id,\n class: \"posto-item\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_48, [\n _createElementVNode(\"div\", _hoisted_49, [\n _createElementVNode(\"h1\", null, _toDisplayString(p.progressivo), 1)\n ]),\n (p.isVuoto || !p.posizioneDefunti || p.posizioneDefunti.length == 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_50, [\n _createElementVNode(\"div\", _hoisted_51, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", _hoisted_52, [\n (p.fila)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_53, [\n _createElementVNode(\"b\", null, \"FILA \" + _toDisplayString(p.fila), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (p.fila && p.colonna)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_54, _hoisted_56))\n : _createCommentVNode(\"\", true),\n (p.colonna)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_57, [\n _createElementVNode(\"b\", null, \"COL \" + _toDisplayString(p.colonna), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (p.denominazione && p.denominazione != p.progressivo.toString())\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_58, [\n _createElementVNode(\"small\", null, [\n _createElementVNode(\"b\", null, [\n _createVNode(_component_ion_text, { color: \"primary\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(p.denominazione), 1)\n ]),\n _: 2\n }, 1024)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (p.isVuoto)\n ? (_openBlock(), _createBlock(_component_ion_text, {\n key: 1,\n color: \"medium\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"VUOTO\")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_59, [\n _createVNode(_component_ion_button, {\n fill: \"clear\",\n \"router-link\": { path: '/tabs/tabAdmin/posto/' + p.id }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.chevronForwardSharp\n }, null, 8, [\"icon\"])\n ]),\n _: 2\n }, 1032, [\"router-link\"])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_60, [\n _createElementVNode(\"p\", _hoisted_61, [\n (p.fila)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_62, [\n _createElementVNode(\"b\", null, \"FILA \" + _toDisplayString(p.fila), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (p.fila && p.colonna)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_63, _hoisted_65))\n : _createCommentVNode(\"\", true),\n (p.colonna)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_66, [\n _createElementVNode(\"b\", null, \"COL \" + _toDisplayString(p.colonna), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (p.denominazione && p.denominazione != p.progressivo.toString())\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_67, [\n _createElementVNode(\"small\", null, [\n _createElementVNode(\"b\", null, [\n _createVNode(_component_ion_text, { color: \"primary\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(p.denominazione), 1)\n ]),\n _: 2\n }, 1024)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(p.posizioneDefunti, (d) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"d-flex flex-row justify-content-between align-items-center w-100\",\n key: d.id\n }, [\n _createElementVNode(\"div\", _hoisted_68, [\n (d.cognome || d.nome)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_69, _toDisplayString(d.cognome) + \" \" + _toDisplayString(d.nome), 1))\n : _createCommentVNode(\"\", true),\n (d.dataNascita)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_70, [\n (d.dataNascita)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_71, [\n _hoisted_72,\n _createElementVNode(\"span\", {\n innerHTML: _ctx.displayData(new Date(d.dataNascita), d.hasInnacurateDates)\n }, null, 8, _hoisted_73)\n ]))\n : _createCommentVNode(\"\", true),\n (d.dataNascita && d.dataMorte)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_74, \" - \"))\n : _createCommentVNode(\"\", true),\n (d.dataMorte)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_75, [\n _hoisted_76,\n _createElementVNode(\"span\", {\n innerHTML: _ctx.displayData(new Date(d.dataMorte), d.hasInnacurateDates)\n }, null, 8, _hoisted_77)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (d.censimentoVoiceUrl)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_78, [\n (d.censimentoVoiceUrl.startsWith('http'))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_79, [\n _createVNode(_component_ion_icon, {\n class: \"me-1\",\n icon: _ctx.globeSharp\n }, null, 8, [\"icon\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_80, [\n _createElementVNode(\"small\", null, [\n _createVNode(_component_ion_text, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Audio Reg.\")\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_81, [\n (!_ctx.plaing)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n fill: \"clear\",\n color: \"success\",\n size: \"small\",\n onClick: ($event: any) => (_ctx.playFile(d.censimentoVoiceUrl, d.id))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.playSharp\n }, null, 8, [\"icon\"])\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.plaing && _ctx.idPostoPlaing == d.id)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n fill: \"clear\",\n color: \"danger\",\n size: \"small\",\n onClick: _cache[21] || (_cache[21] = ($event: any) => (_ctx.stopAudio()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.stopSharp\n }, null, 8, [\"icon\"])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.plaing && _ctx.idPostoPlaing != d.id)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 2,\n fill: \"clear\",\n color: \"medium\",\n size: \"small\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.playSharp\n }, null, 8, [\"icon\"])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_82, [\n _createElementVNode(\"span\", null, [\n (p.statoLampadaVotiva && p.statoLampadaVotiva == 1)\n ? (_openBlock(), _createBlock(_component_ion_icon, {\n key: 0,\n color: \"warning\",\n icon: _ctx.flameSharp\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true),\n (p.statoLampadaVotiva != null && p.statoLampadaVotiva == 0)\n ? (_openBlock(), _createBlock(_component_ion_icon, {\n key: 1,\n color: \"danger\",\n icon: _ctx.flameSharp\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true),\n (p.statoLampadaVotiva && p.statoLampadaVotiva == -1)\n ? (_openBlock(), _createBlock(_component_ion_icon, {\n key: 2,\n color: \"medium\",\n icon: _ctx.flameSharp\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (p.statoIdentificazione && p.statoIdentificazione >= 1)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_83, [\n _hoisted_84,\n (p.statoIdentificazione && p.statoIdentificazione == 1)\n ? (_openBlock(), _createBlock(_component_ion_icon, {\n key: 0,\n color: \"medium\",\n icon: _ctx.languageSharp\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true),\n (p.statoIdentificazione && p.statoIdentificazione == 2)\n ? (_openBlock(), _createBlock(_component_ion_icon, {\n key: 1,\n color: \"danger\",\n icon: _ctx.languageSharp\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (p.latitudine && p.longitudine)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_85, _hoisted_88))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_89, [\n _createVNode(_component_ion_button, {\n fill: \"clear\",\n \"router-link\": { path: '/tabs/tabAdmin/posto/' + p.id + '/' + d.id }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, {\n slot: \"icon-only\",\n icon: _ctx.chevronForwardSharp\n }, null, 8, [\"icon\"])\n ]),\n _: 2\n }, 1032, [\"router-link\"])\n ])\n ]))\n }), 128))\n ]))\n ])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_card, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_card_content, null, {\n default: _withCtx(() => [\n _hoisted_90,\n ((_ctx.area && _ctx.area.posti && _ctx.area.posti.length == 0) || !_ctx.isAdmin)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_91, [\n _hoisted_92,\n _createElementVNode(\"div\", _hoisted_93, [\n (!_ctx.deleting)\n ? (_openBlock(), _createBlock(_component_ion_button, {\n key: 0,\n color: \"danger\",\n onClick: _cache[22] || (_cache[22] = ($event: any) => (_ctx.deleteArea()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: _ctx.trashSharp }, null, 8, [\"icon\"]),\n _createTextVNode(\" ELIMINA\")\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_ion_button, {\n key: 1,\n color: \"medium\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_icon, { icon: _ctx.trashSharp }, null, 8, [\"icon\"]),\n _createTextVNode(\" Eliminazione...\")\n ]),\n _: 1\n }))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_94, _hoisted_96))\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_toast, {\n \"is-open\": _ctx.isToastOpen,\n message: _ctx.toastMessage,\n duration: 5000,\n color: _ctx.toastColor,\n header: _ctx.toastHeader,\n position: \"bottom\",\n onDidDismiss: _cache[23] || (_cache[23] = ($event: any) => (_ctx.setIsToastOpen(false)))\n }, null, 8, [\"is-open\", \"message\", \"color\", \"header\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_ion_modal, {\n \"is-open\": _ctx.isOpenModal,\n \"initial-breakpoint\": 0.75,\n breakpoints: [0, 0.25, 0.5, 0.75],\n \"handle-behavior\": \"cycle\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_content, { class: \"ion-padding\" }, {\n default: _withCtx(() => [\n (_ctx.newCheckpoint.id)\n ? (_openBlock(), _createElementBlock(\"h4\", _hoisted_97, \"Modifica punto di controllo\"))\n : (_openBlock(), _createElementBlock(\"h4\", _hoisted_98, \"Nuovo punto di controllo\")),\n _createElementVNode(\"div\", _hoisted_99, [\n _createVNode(_component_ion_list, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Fila\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.newCheckpoint.fila,\n \"onUpdate:modelValue\": _cache[24] || (_cache[24] = ($event: any) => ((_ctx.newCheckpoint.fila) = $event)),\n class: \"r-input\",\n inputmode: \"numeric\",\n min: \"0\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_list, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Progressivo\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.newCheckpoint.progressivo,\n \"onUpdate:modelValue\": _cache[25] || (_cache[25] = ($event: any) => ((_ctx.newCheckpoint.progressivo) = $event)),\n class: \"r-input\",\n inputmode: \"numeric\",\n min: \"0\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_ion_list, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_item, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_label, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Defunto\")\n ]),\n _: 1\n }),\n _createVNode(_component_ion_input, {\n modelValue: _ctx.newCheckpoint.defunto,\n \"onUpdate:modelValue\": _cache[26] || (_cache[26] = ($event: any) => ((_ctx.newCheckpoint.defunto) = $event)),\n class: \"r-input\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", _hoisted_100, [\n _createVNode(_component_ion_button, {\n shape: \"round\",\n onClick: _cache[27] || (_cache[27] = ($event: any) => (_ctx.saveCheckpoint()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Salva\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"is-open\"])\n ]),\n _: 1\n }),\n (_ctx.saveEnable)\n ? (_openBlock(), _createBlock(_component_ion_footer, { key: 0 }, {\n default: _withCtx(() => [\n _createVNode(_component_ion_toolbar, null, {\n default: _withCtx(() => [\n _createVNode(_component_ion_button, {\n expand: \"full\",\n onClick: _cache[28] || (_cache[28] = ($event: any) => (_ctx.saveAnagrafica())),\n color: \"secondary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Salva\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n}","\r\n\r\n\r\n\r\n","import { render } from \"./simplecontent.vue?vue&type=template&id=4ed42616\"\nimport script from \"./simplecontent.vue?vue&type=script&lang=js\"\nexport * from \"./simplecontent.vue?vue&type=script&lang=js\"\n\nimport \"./simplecontent.vue?vue&type=style&index=0&id=4ed42616&lang=css\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport {\r\n IonPage,\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonText,\r\n IonMenuButton,\r\n IonBackButton,\r\n IonButtons,\r\n IonLoading,\r\n IonLabel,\r\n IonList,\r\n IonItem,\r\n IonCard,\r\n IonCardHeader,\r\n IonCardContent,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonButton,\r\n IonAvatar,\r\n IonIcon,\r\n IonChip, IonToggle,\r\n IonModal, IonTextarea,\r\n IonToast, IonInput, IonSelect, IonSelectOption, IonFooter,\r\n alertController, IonSearchbar,\r\n actionSheetController, onIonViewDidEnter, onIonViewWillLeave\r\n} from \"@ionic/vue\";\r\nimport {\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n ref, watch, onBeforeUnmount, reactive\r\n} from \"vue\";\r\nimport aldLogo from \"@/components/aldilapp/shared/ald-logo.vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { key } from \"../../../store\";\r\nimport { useRoute, useRouter, RouterView } from \"vue-router\";\r\nimport {\r\n heartOutline,\r\n locateOutline,\r\n closeCircle, arrowBackSharp, chevronForwardSharp,\r\n globeSharp,\r\n playSharp,\r\n addSharp,\r\n warningOutline,\r\n flowerOutline, heartDislikeOutline, shareOutline, timeOutline, mapOutline, flameOutline, flameSharp, languageSharp, trashSharp, stopSharp\r\n} from \"ionicons/icons\";\r\nimport SimpleContent from \"@/components/aldilapp/detail/simplecontent.vue\";\r\nimport Textarea from \"primevue/textarea\";\r\nimport Button from \"primevue/button\";\r\nimport { CemeteryAreaCheckPointDTO, CemeteryAreaDTO, CemeteryAreaEditCommandDTO, EditCemeteryAreaCheckPointDTO } from \"@/models\";\r\n//import { DataService } from \"@/services/data.service\";\r\n//import { GoogleMap, Marker } from '@capacitor/google-maps';\r\nimport { Geolocation, PositionOptions, Position, ClearWatchOptions } from '@capacitor/geolocation';\r\nimport { GoogleMap, Marker } from 'vue3-google-map'\r\nimport { FileSync } from \"@/services/localfs.service\";\r\nimport { Network } from \"@capacitor/network\";\r\nimport { Filesystem, Directory } from '@capacitor/filesystem';\r\nimport { VoiceRecorder, VoiceRecorderPlugin, RecordingData, GenericResponse, CurrentRecordingStatus } from 'capacitor-voice-recorder';\r\nexport default defineComponent({\r\n name: \"GestioneArea\",\r\n components: {\r\n IonHeader,\r\n IonToolbar,\r\n IonTitle,\r\n IonContent,\r\n IonPage,\r\n IonText,\r\n IonMenuButton,\r\n IonBackButton,\r\n IonButtons,\r\n IonLoading,\r\n aldLogo,\r\n IonLabel,\r\n IonList,\r\n IonItem,\r\n IonCard,\r\n IonCardHeader,\r\n IonCardContent,\r\n IonCardSubtitle,\r\n IonCardTitle,\r\n IonButton,\r\n IonAvatar,\r\n IonIcon,\r\n IonChip,\r\n IonToast,\r\n SimpleContent,\r\n Textarea,\r\n Button,\r\n RouterView,\r\n IonModal,\r\n IonInput, IonToggle,\r\n GoogleMap, IonSelect, IonSelectOption,\r\n Marker, IonFooter, IonTextarea, IonSearchbar,\r\n },\r\n\r\n setup() {\r\n const store = useStore(key);\r\n const router = useRouter();\r\n const route = useRoute();\r\n const id = ref();\r\n const routerKey = ref('area-' + (id.value ?? 0));\r\n const isToastOpen = ref(false);\r\n const isLoading = ref(true);\r\n const localizing = ref(false);\r\n const setIsLoading = (state: boolean) => (isLoading.value = state);\r\n const setIsToastOpen = (state: boolean) => (isToastOpen.value = state);\r\n const isAdmin = computed(() => store.state.auth && store.state.auth.roles.includes(\"Admin\"));\r\n const isAuth = computed(() => {\r\n return (\r\n store.state.auth &&\r\n store.state.auth.user &&\r\n !store.state.auth.user.isAnonymous\r\n );\r\n });\r\n const toastMessage = ref(\"\");\r\n const toastColor = ref(\"\");\r\n const toastHeader = ref(\"\");\r\n const currentArea = computed(() => store.state.gestione.currentArea);\r\n const ultimoprog = ref(\"\");\r\n const currentCemetery = computed(() => store.state.gestione.currentCemetery);\r\n const area = ref(null);\r\n const newCheckpoint = ref(null);\r\n const mapApiKey = process.env.VUE_APP_GMAP_KEY;\r\n const mapRef = ref | null>(null);\r\n const markRef = ref(null);\r\n const markerPosition = ref({ lat: 0, lng: 0 });\r\n const markerVisible = ref(false);\r\n const geoErr = ref(null);\r\n const mapVisible = ref(false);\r\n const saveEnable = ref(false);\r\n const itemsToSync = ref(0);\r\n const netStatus = ref(false);\r\n const plaing = ref(false);\r\n const isOpenModal = ref(false);\r\n const filterFila = ref('');\r\n const filterColonna = ref('');\r\n const idPostoPlaing = ref(null);\r\n const deleting = ref(false);\r\n const file = computed(() => !area.value ? [] : [...new Set(area.value.posti.filter(i => i.fila).map(item => item.fila?.toString() ?? ''))]);\r\n const colonne = computed(() => !area.value ? [] : [...new Set(area.value.posti.filter(i => i.colonna).map(item => item.colonna ?? ''))]);\r\n const postiToShow = computed(() => !area.value ? [] : area.value.posti.filter(i =>\r\n (!filterFila.value || i.fila?.toString() == filterFila.value) &&\r\n (!filterColonna.value || i.colonna == filterColonna.value)\r\n ).sort((a, b) => (a.fila ?? 0) - (b.fila ?? 0) || a.progressivo - b.progressivo));\r\n const searchText = ref(\"\");\r\n let api: any | null = null;\r\n\r\n watch(() => mapRef.value?.ready, (ready) => {\r\n if (!ready) return;\r\n const map = mapRef.value?.map;\r\n api = mapRef.value?.api;\r\n console.log('api', api);\r\n\r\n if (area.value && area.value && area.value.latitudine && area.value.longitudine && map) {\r\n const center = { lat: area.value!.latitudine!, lng: area.value!.longitudine! };\r\n map.setCenter(center);\r\n map.setMapTypeId(api.MapTypeId.SATELLITE);\r\n\r\n\r\n markerPosition.value.lat = area.value.latitudine;\r\n markerPosition.value.lng = area.value.longitudine;\r\n markerVisible.value = true;\r\n }\r\n //markerOptions.value.title = area.value!.areaName;\r\n });\r\n\r\n /*watch(\r\n area,\r\n (newValue, oldValue) => {\r\n if (!oldValue) return;\r\n saveEnable.value = true;\r\n },\r\n { deep: true }\r\n );*/\r\n\r\n\r\n\r\n const calcNewName = computed(() => {\r\n let ret = \"\";\r\n ret += area.value?.area1 ?? \"\";\r\n ret += ret && area.value?.area2 ? \" - \" : \"\";\r\n ret += area.value?.area2 ?? \"\";\r\n ret += ret && area.value?.zona1 ? \" - \" : \"\";\r\n ret += area.value?.zona1 ?? \"\";\r\n ret += ret && area.value?.zona2 ? \" - \" : \"\";\r\n ret += area.value?.zona2 ?? \"\";\r\n return ret;\r\n });\r\n\r\n const PresentAlertError = async (\r\n title: string,\r\n msg: string,\r\n buttons: Array\r\n ) => {\r\n const alert = await alertController.create({\r\n cssClass: \"my-alert-class\",\r\n header: title,\r\n subHeader: \"\",\r\n message: msg,\r\n buttons,\r\n });\r\n await alert.present();\r\n const { role } = await alert.onDidDismiss();\r\n console.log(\"onDidDismiss resolved with role\", role);\r\n };\r\n\r\n const refreshItemsToSync = async () => {\r\n if (!currentCemetery.value || !area.value) return 0\r\n itemsToSync.value = await FileSync.getNumFileToSyncInArea(currentCemetery.value.id, area.value.id);\r\n };\r\n\r\n const initGeo = async () => {\r\n const result = await Geolocation.checkPermissions();\r\n if (result.location !== 'granted') {\r\n await Geolocation.requestPermissions();\r\n }\r\n };\r\n\r\n const displayData = (date: Date, isInnacurate: boolean | null): string => {\r\n if (isInnacurate && date.getMonth() == 0 && date.getDate() == 1)\r\n return date.getFullYear().toString();\r\n else\r\n return date.toLocaleDateString('it-IT');\r\n }\r\n\r\n onIonViewDidEnter(async () => {\r\n try {\r\n console.log(\"Mounted: \", route.path);\r\n routerKey.value = route.path;\r\n\r\n netStatus.value = (await Network.getStatus()).connected;\r\n Network.addListener('networkStatusChange', status => {\r\n console.log('Network status changed', status);\r\n netStatus.value = status.connected;\r\n });\r\n await initGeo();\r\n\r\n if (route.params && route.params.id && +route.params.id > 0) {\r\n id.value = +route.params.id;\r\n await store.dispatch('loadCemeteryArea', id.value);\r\n\r\n }\r\n else {\r\n await store.dispatch('loadCemeteryArea', 0);\r\n }\r\n\r\n console.log(\"Area\", currentArea.value);\r\n if (currentArea.value) {\r\n area.value = currentArea.value;\r\n if (area.value.latitudine && area.value.longitudine)\r\n mapVisible.value = true;\r\n await refreshItemsToSync();\r\n\r\n if (currentArea.value.posti && currentArea.value.posti.length > 0 && currentArea.value.posti[currentArea.value.posti.length - 1] && currentArea.value.posti[currentArea.value.posti.length - 1]) {\r\n ultimoprog.value = currentArea.value.posti[currentArea.value.posti.length - 1].fila ?\r\n '' + currentArea.value.posti[currentArea.value.posti.length - 1].progressivo + ' (Fila ' + currentArea.value.posti[currentArea.value.posti.length - 1].fila + ')' :\r\n '' + currentArea.value.posti[currentArea.value.posti.length - 1].progressivo\r\n }\r\n else\r\n ultimoprog.value = \"\";\r\n\r\n\r\n watch(() => !area.value ? '' : '' + area.value.area1 + area.value.area2 + area.value.zona1 + area.value.zona2 + area.value.tipoCambioLinea + area.value.posizionePrimaFila + area.value.resetIndexPerLine + area.value.direzioneCensimento + area.value.tipoCambioLinea + area.value.tipoSepoltura + area.value.latitudine + area.value.longitudine + area.value.noteSopralluogo + area.value.posizioneProgressivoIniziale + area.value.progressivoIniziale + (area.value.checkPoints && area.value.checkPoints.length > 0 ? area.value.checkPoints.join('-') : ''), (r) => {\r\n if (!r) return;\r\n saveEnable.value = true;\r\n });\r\n }\r\n\r\n setIsLoading(false);\r\n\r\n }\r\n catch (err: any) {\r\n console.log(err);\r\n await PresentAlertError('Errore connessione', 'Il caricamento dati del area ' + id.value + ' non è riuscito. Accertati di avere rete e riprova.', [\"Ok\"]);\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n\r\n const positionOpts: PositionOptions = { enableHighAccuracy: true };\r\n const maxTimeWatch = 10000; // max 10 secondi\r\n let watchId = \"0\";\r\n\r\n\r\n //let markerId: string | null = null;\r\n const startGeo = async () => {\r\n console.log('Geolocalizza start..');\r\n\r\n watchId = await Geolocation.watchPosition(positionOpts, async (position: Position | null, err?: any) => {\r\n if (!err) {\r\n localizing.value = true;\r\n mapVisible.value = true;\r\n setTimeout(async () => { await endGeo() }, maxTimeWatch);\r\n if (position) {\r\n console.log('Geolocated:', position)\r\n area.value!.latitudine = position.coords.latitude;\r\n area.value!.longitudine = position.coords.longitude;\r\n geoErr.value = position.coords.accuracy;\r\n if (mapRef.value && mapRef.value!.ready && mapRef.value!.map) {\r\n if (markRef.value) {\r\n markRef.value.marker.setPosition({ lat: position.coords.latitude, lng: position.coords.longitude });\r\n markRef.value.marker.setVisible(true);\r\n }\r\n mapRef.value!.map.panTo({ lat: position.coords.latitude, lng: position.coords.longitude });\r\n }\r\n }\r\n }\r\n else\r\n console.log(err);\r\n });\r\n };\r\n\r\n const endGeo = async () => {\r\n if (watchId !== \"0\") {\r\n console.log('Geolocalizza stop..');\r\n const clearOptions: ClearWatchOptions = { id: watchId };\r\n await Geolocation.clearWatch(clearOptions);\r\n watchId = \"0\";\r\n localizing.value = false;\r\n }\r\n };\r\n\r\n /*\r\n onIonViewWillLeave( async () => {\r\n console.log(\"onIonViewWillLeave: \", route.path);\r\n await endGeo();\r\n });\r\n */\r\n const dragend = (event: any) => {\r\n console.log('dragend:', event.latLng);\r\n area.value!.latitudine = event.latLng.lat();\r\n area.value!.longitudine = event.latLng.lng();\r\n };\r\n\r\n const startCensimento = async () => {\r\n await endGeo();\r\n const timestamp = new Date().getTime();\r\n //await router.push('/gestione-posto-new/'+timestamp);\r\n router.push('/tabs/tabAdmin/posto-new/' + timestamp);\r\n /*if (currentArea.value && currentArea.value.posti && currentArea.value.posti.length > 0) \r\n {\r\n const ultimoPosto = currentArea.value.posti[currentArea.value.posti.length - 1];\r\n await router.push('/gestione-posto-new/'+(ultimoPosto.progressivo + 1)+'/'+timestamp); \r\n }\r\n else if (currentArea.value && currentArea.value.progressivoIniziale)\r\n await router.push('/gestione-posto-new/'+currentArea.value.progressivoIniziale+'/'+timestamp);\r\n else\r\n await router.push('/gestione-posto-new/1/'+timestamp);*/\r\n };\r\n\r\n const saveAnagrafica = async () => {\r\n try {\r\n\r\n if (!area.value || !area.value.area1)\r\n PresentAlertError('Attenzione', 'Il campo Area1 è obbligatorio', ['Ok']);\r\n\r\n if (!area.value || !area.value.direzioneCensimento || !area.value.tipoCambioLinea || !area.value.posizioneProgressivoIniziale)\r\n PresentAlertError('Attenzione', 'Inserire le informazioni necessarie per il censimento: Direzione, Cambio Linea, Posizione Primo Numero.', ['Ok']);\r\n\r\n const param: CemeteryAreaEditCommandDTO = {\r\n id: area.value && area.value.id && area.value.id > 0 ? area.value.id : null,\r\n cimiteroId: currentCemetery.value!.id,\r\n area1: area.value && area.value.area1 ? area.value.area1 : \"\",\r\n area2: area.value && area.value.area2 ? area.value.area2 : \"\",\r\n zona1: area.value && area.value.zona1 ? area.value.zona1 : \"\",\r\n zona2: area.value && area.value.zona2 ? area.value.zona2 : \"\",\r\n latitudine: area.value && area.value.latitudine ? area.value.latitudine : null,\r\n longitudine: area.value && area.value.longitudine ? area.value.longitudine : null,\r\n tipoSepoltura: area.value && area.value.tipoSepoltura ? area.value.tipoSepoltura : \"\",\r\n progressivoIniziale: area.value && area.value.progressivoIniziale ? area.value.progressivoIniziale.toString() : \"\",\r\n rewriteLinkedDefuntiAreaFields: true,\r\n posizioneProgressivoIniziale: area.value!.posizioneProgressivoIniziale,\r\n direzioneCensimento: area.value!.direzioneCensimento,\r\n tipoCambioLinea: area.value!.tipoCambioLinea,\r\n noteSopralluogo: area.value!.noteSopralluogo,\r\n checkPoints: area.value!.checkPoints.map((i: CemeteryAreaCheckPointDTO) => {\r\n return { id: i.id == 0 ? null : i.id, areaId: i.areaId, fila: i.fila, progressivo: i.progressivo, defunto: i.defunto };\r\n }),\r\n resetIndexPerLine: area.value!.resetIndexPerLine,\r\n posizionePrimaFila: area.value!.posizioneProgressivoIniziale?.startsWith('dw') ? 'dw' : 'up'//non mi serve più\r\n //posizionePrimaFila: area.value!.posizionePrimaFila\r\n };\r\n saveEnable.value = false;\r\n await store.dispatch('editCimiteroArea', param);\r\n\r\n toastHeader.value = 'Salvataggio eseguito';\r\n toastColor.value = 'success';\r\n setIsToastOpen(true);\r\n\r\n if (!param.id)\r\n //await router.push('/gestione/cimitero/'+param.cimiteroId);\r\n router.push('/tabs/tabAdmin/cimitero/' + param.cimiteroId);\r\n }\r\n catch (err: any) {\r\n console.log('Errore salvataggio area', err);\r\n toastHeader.value = 'Errore';\r\n toastColor.value = 'danger';\r\n setIsToastOpen(true);\r\n }\r\n };\r\n\r\n const addNewCheckpoint = async () => {\r\n isOpenModal.value = false;\r\n console.log('addNewCheckpoint');\r\n newCheckpoint.value = {\r\n id: null,\r\n areaId: area.value!.id,\r\n fila: newCheckpoint.value && newCheckpoint.value.fila ? newCheckpoint.value.fila : null,\r\n progressivo: newCheckpoint.value ? newCheckpoint.value.progressivo + 1 : 1,\r\n defunto: \"\"\r\n };\r\n isOpenModal.value = true;\r\n };\r\n\r\n const editCheckpoint = async (c: CemeteryAreaCheckPointDTO) => {\r\n console.log('editCheckpoint');\r\n newCheckpoint.value = {\r\n id: c.id,\r\n areaId: area.value!.id,\r\n fila: c.fila,\r\n progressivo: c.progressivo,\r\n defunto: c.defunto\r\n };\r\n isOpenModal.value = true;\r\n };\r\n\r\n const saveCheckpoint = async () => {\r\n if (newCheckpoint.value) {\r\n if (!newCheckpoint.value.defunto) {\r\n await PresentAlertError(\"Attenzione\", \"Specificare il nome del defunto\", [\"OK\"]);\r\n return;\r\n }\r\n\r\n //await store.dispatch('saveCheckpoint',newCheckpoint.value);\r\n let filtered: CemeteryAreaCheckPointDTO[] = new Array();\r\n\r\n if (newCheckpoint.value.id)\r\n filtered = area.value!.checkPoints.filter((i: CemeteryAreaCheckPointDTO) => i.progressivo == newCheckpoint.value!.progressivo && i.fila == newCheckpoint.value!.fila)\r\n else\r\n filtered = area.value!.checkPoints.filter((i: CemeteryAreaCheckPointDTO) => i.progressivo == newCheckpoint.value!.progressivo && i.fila == newCheckpoint.value!.fila)\r\n\r\n if (filtered.length == 0)\r\n area.value!.checkPoints.push({ id: newCheckpoint.value.id ?? 0, areaId: newCheckpoint.value.areaId, fila: newCheckpoint.value.fila, progressivo: newCheckpoint.value.progressivo, defunto: newCheckpoint.value.defunto });\r\n else {\r\n filtered[0].fila = newCheckpoint.value.fila;\r\n filtered[0].progressivo = newCheckpoint.value.progressivo;\r\n filtered[0].defunto = newCheckpoint.value.defunto;\r\n }\r\n\r\n isOpenModal.value = false;\r\n }\r\n };\r\n\r\n const deleteCheckpoint = async (c: CemeteryAreaCheckPointDTO) => {\r\n area.value!.checkPoints = area.value!.checkPoints.filter((i: CemeteryAreaCheckPointDTO) => i.progressivo != c.progressivo || (i.fila ?? 0) != (c.fila ?? 0));\r\n }\r\n\r\n const deleteArea = async () => {\r\n const buttons: Array = [\r\n {\r\n text: \"Annulla\",\r\n role: \"cancel\",\r\n handler: () => {\r\n console.log(\"Eliminazione annullata\");\r\n },\r\n },\r\n {\r\n text: 'Si. Elimina!',\r\n handler: async () => {\r\n deleting.value = true;\r\n try {\r\n console.log('Delete COINFIRM area ', area.value?.id);\r\n if (area.value) {\r\n await store.dispatch('deleteCemeteryArea');\r\n //await router.push('/gestione-cimitero/'+currentCemetery.value!.id);\r\n router.push('/tabs/tabAdmin/cimitero/' + currentCemetery.value!.id);\r\n }\r\n }\r\n catch (err: any) {\r\n console.log('Errore eliminazione area ', err);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore durante l'eliminazione\";\r\n toastMessage.value = err.message;\r\n setIsToastOpen(true);\r\n }\r\n deleting.value = false;\r\n },\r\n },\r\n ];\r\n const netStatus = await Network.getStatus();\r\n if (!netStatus.connected && area.value && area.value.id > 0)\r\n PresentAlertError(\r\n \"ATTENZIONE!\",\r\n \"Quest'area è già presente sul Server. Per cancellarla devi essere connesso alla rete Internet!\",\r\n [\"Ok\"]\r\n );\r\n else\r\n PresentAlertError(\r\n \"ATTENZIONE!\",\r\n \"Confermi l'eliminazione dell'area e di tutti gli eventuali defunti inn essa presenti?\",\r\n buttons\r\n );\r\n };\r\n\r\n const startSync = async () => {\r\n try {\r\n if (!currentCemetery.value || !area.value) return;\r\n const result = await FileSync.syncArea(currentCemetery.value.id, area.value.id);\r\n console.log('Esito sync:', result ? \"OK\" : \"KO\");\r\n toastHeader.value = result ? \"Sincr. terminata con successo\" : \"Sicr. con errori\";\r\n toastColor.value = result ? \"success\" : \"danger\";\r\n setIsToastOpen(true);\r\n await store.dispatch('loadCemeteryArea', id.value);\r\n await refreshItemsToSync();\r\n }\r\n catch (err: any) {\r\n console.log('Errore sync:', err);\r\n toastHeader.value = 'Errore sincronizzazione dati';\r\n toastColor.value = 'danger';\r\n setIsToastOpen(true);\r\n await store.dispatch('loadCemeteryArea', id.value);\r\n await refreshItemsToSync();\r\n }\r\n }\r\n\r\n const goPosto = async (postoId: number, positionId: number | null) => {\r\n console.log('goPosto', postoId, positionId)\r\n if (positionId != null)\r\n //await router.push('/gestione-posto/'+postoId+'/'+positionId);\r\n await router.push('/tabs/tabAdmin/posto/' + postoId + '/' + positionId);\r\n else\r\n //await router.push('/gestione-posto/'+postoId);\r\n await router.push('/tabs/tabAdmin/posto/' + postoId);\r\n }\r\n\r\n const back = async () => {\r\n //await router.replace('/gestione-cimitero/'+currentCemetery.value!.id);\r\n await router.replace('/tabs/tabAdmin/cimitero/' + currentCemetery.value!.id);\r\n }\r\n\r\n let audio: HTMLAudioElement | null = null;\r\n const playFile = async (filename: string | null, postoId: number): Promise => {\r\n try {\r\n console.log('Play', filename);\r\n\r\n if (!filename) return;\r\n\r\n\r\n audio = new Audio();\r\n if (filename.startsWith('http')) {\r\n const netStatus = await Network.getStatus();\r\n if (!netStatus.connected) {\r\n await PresentAlertError('Connessione assente', 'Questo file è salvato su server esterno. Bisogna avere un connessione internet per riprodurlo', ['Ok']);\r\n return;\r\n }\r\n audio = new Audio(filename);\r\n }\r\n else {\r\n const audioFile = await Filesystem.readFile({\r\n path: filename,\r\n directory: Directory.Data\r\n });\r\n const base64 = audioFile.data;\r\n audio = new Audio('data:audio/aac;base64,' + base64);\r\n }\r\n //const f = 'aldilapp/'+ filename;\r\n //const f = filename.startsWith('/'+Directory.Data+'/') ? filename.replace('/'+Directory.Data+'/',\"\") : filename;\r\n if (audio) {\r\n audio.oncanplaythrough = () => audio!.play();\r\n audio.onended = () => {\r\n idPostoPlaing.value = null;\r\n plaing.value = false;\r\n };\r\n audio.onplay = () => {\r\n plaing.value = true;\r\n idPostoPlaing.value = postoId\r\n };\r\n audio.onpause = () => {\r\n idPostoPlaing.value = null;\r\n plaing.value = false;\r\n\r\n };\r\n audio.load();\r\n }\r\n else {\r\n console.log('Problemi creazione file audio');\r\n plaing.value = false;\r\n }\r\n }\r\n catch (error: any) {\r\n console.log('Errore riproduzione', error);\r\n toastColor.value = \"danger\";\r\n toastHeader.value = \"Errore riproduzione\";\r\n toastMessage.value = error.message;\r\n setIsToastOpen(true);\r\n plaing.value = false;\r\n }\r\n }\r\n\r\n const stopAudio = async () => {\r\n if (!audio) return;\r\n audio.pause();\r\n }\r\n\r\n return {\r\n isLoading,\r\n isAdmin,\r\n isAuth,\r\n heartOutline,\r\n locateOutline,\r\n closeCircle, chevronForwardSharp,\r\n routerKey, globeSharp, playSharp, addSharp, trashSharp, stopSharp,\r\n id,\r\n isToastOpen,\r\n setIsToastOpen,\r\n toastColor,\r\n toastMessage,\r\n toastHeader,\r\n area,\r\n calcNewName,\r\n localizing,\r\n startGeo,\r\n endGeo,\r\n //mapRef,\r\n mapApiKey,\r\n mapRef, markRef, markerPosition, markerVisible, dragend, mapVisible, geoErr,\r\n saveAnagrafica,\r\n saveEnable,\r\n startCensimento,\r\n itemsToSync,\r\n startSync,\r\n netStatus,\r\n ultimoprog,\r\n displayData,\r\n languageSharp, flameSharp,\r\n goPosto, plaing,\r\n arrowBackSharp, back,\r\n playFile,\r\n newCheckpoint,\r\n saveCheckpoint,\r\n addNewCheckpoint,\r\n editCheckpoint,\r\n deleteCheckpoint,\r\n isOpenModal,\r\n filterFila,\r\n file,\r\n postiToShow,\r\n idPostoPlaing,\r\n stopAudio,\r\n deleting,\r\n deleteArea,\r\n searchText,\r\n currentCemetery,\r\n colonne,\r\n filterColonna\r\n };\r\n },\r\n});\r\n","import { render } from \"./Area.vue?vue&type=template&id=6e0803d0&scoped=true&ts=true\"\nimport script from \"./Area.vue?vue&type=script&lang=ts\"\nexport * from \"./Area.vue?vue&type=script&lang=ts\"\n\nimport \"./Area.vue?vue&type=style&index=0&id=6e0803d0&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Projects\\\\Aldilapp\\\\ionic-capacitor-v3\\\\ionic\\\\aldilapp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6e0803d0\"]])\n\nexport default __exports__","import { createRouter, createWebHistory } from '@ionic/vue-router';\r\nimport Tabs from '../views/Tabs.vue';\r\nimport Shop from '../views/v2/Shop.vue';\r\n/*import Tab1 from '../views/v2/Tab1.vue';\r\nimport Tab2 from '../views/v2/Tab2.vue';\r\nimport Tab3 from '../views/Tab3.vue';\r\nimport Results from '../views/v2/Results.vue';\r\nimport Detail from '../views/v2/Detail.vue';\r\nimport Shop from '../views/v2/Shop.vue';\r\nimport Checkout from '../views/v2/Checkout.vue';\r\nimport ThankYou from '../views/v2/Thankyou.vue';*/\r\nimport TabInfo from '../views/TabInfo.vue';\r\n\r\n/*import Gestione from '../views/v2/Gestione/Index.vue';\r\nimport GestionePosto from '../views/v2/Gestione/Posto.vue';*/\r\nimport GestionePosto from '../views/v2/Gestione/Posto.vue';\r\nimport GestioneCimitero from '../views/v2/Gestione/Cimitero.vue';\r\nimport GestioneArea from '../views/v2/Gestione/Area.vue';\r\n\r\nimport { RouteRecordRaw, RouteLocationNormalized, NavigationGuardNext } from 'vue-router';\r\nimport { computed } from \"vue\";\r\nimport { App, URLOpenListenerEvent } from '@capacitor/app';\r\n//import { auth } from '../main'\r\nimport store from '../store/index';\r\n//import { computed } from \"vue\";\r\n//import { FirebaseAuthentication } from '@robingenz/capacitor-firebase-authentication';\r\n\r\nconst getCurrentUserId = computed(() => store.getters.getCurrentUserId);\r\n\r\nconst guard = async (to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => {\r\n try {\r\n //if (auth.currentUser?.uid) {\r\n //const currUser = await FirebaseAuthentication.getCurrentUser();\r\n const auth = store.state.auth;\r\n if (auth && auth.isAuth) {\r\n //console.log(\"Guard check OK:\", from, to,auth.currentUser?.displayName )\r\n next();\r\n }\r\n else {\r\n \r\n console.log(\"Guard check KO!, auth: \",auth);\r\n next(\"/login\")\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n next(\"/\")\r\n }\r\n};\r\n\r\nconst guard2 = async (to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => {\r\n try {\r\n \r\n const auth = store.state.auth;\r\n if (auth && auth.isAuth) {\r\n //console.log(\"Guard check OK:\", from, to,auth.currentUser?.displayName )\r\n next();\r\n }\r\n else {\r\n store.dispatch('setRouteAfterSignIn', to.fullPath);\r\n\r\n const currUser = await getCurrentUserId.value;\r\n if (currUser) \r\n {\r\n \r\n if (currUser.startsWith('user_'))\r\n await store.dispatch('executeAnonymousLogin');\r\n else{\r\n console.log('GUARD2 eseguo autologin per user:',currUser)\r\n await store.dispatch('executeLogin', undefined);\r\n }\r\n next(); \r\n }\r\n else\r\n { \r\n next(\"/login\");\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n next(\"/\")\r\n }\r\n};\r\n\r\n\r\nconst routes: Array = [\r\n {\r\n path: '/',\r\n redirect: '/tabs/tab1',\r\n \r\n },\r\n /*{\r\n path: '/',\r\n component: () => import('../views/v2/InitApp.vue')\r\n },*/\r\n {\r\n path: '/login',\r\n component: () => import('../views/Auth.vue')\r\n },\r\n\r\n /* {\r\n path: '/gestione',\r\n component: Gestione,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: '/gestione-cimitero/:id',\r\n component: GestioneCimitero,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: '/gestione-area/:id',\r\n component: GestioneArea,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: '/gestione-posto-new/:timestamp/:prog?',\r\n component:GestionePosto,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: '/gestione-posto/:postoId/:positionId?',\r\n component: GestionePosto,\r\n beforeEnter: guard2\r\n },*/\r\n \r\n {\r\n path: '/tabs/',\r\n component: Tabs,\r\n children: [\r\n \r\n {\r\n path: '',\r\n redirect: '/tabs/tab1',\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab1',\r\n component: () => import('../views/v2/Tab1.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab1/results',\r\n component: () => import('../views/v2/Results.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab1/detail/:id',\r\n component: () => import('../views/v2/Detail.vue'),\r\n alias: '/defunto/:id',\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab1/detail/:id/:timestamp',\r\n alias: '/defunto/:id/:timestamp',\r\n component: () => import('../views/v2/Detail.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab1/edit',\r\n component: () => import('../views/v2/EditDefunto.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab1/personal-info',\r\n component: () => import('../views/v2/PersonalInfo.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab1/phone-confirmation',\r\n component: () => import('../views/v2/PhoneConfirmation.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab1/claim-disclaimer',\r\n component: () => import('../views/v2/ClaimDisclaimer.vue'),\r\n beforeEnter: guard2,\r\n \r\n },\r\n {\r\n path: 'shop',\r\n component: Shop,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'shop/checkout',\r\n component: () => import('../views/v2/Checkout.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'shop/thankyou',\r\n component: () => import('../views/v2/Thankyou.vue'),\r\n },\r\n {\r\n path: 'tab2/:timestamp',\r\n component: () => import('../views/v2/Tab2.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab2/detail/:id',\r\n component: () => import('../views/v2/Detail.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab3',\r\n component: () => import('../views/Tab3.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tab4',\r\n component: TabInfo,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tabAdmin',\r\n component: () => import('../views/v2/Gestione/Index.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tabAdmin/cimitero/:id',\r\n component: GestioneCimitero,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tabAdmin/area/:id',\r\n component: GestioneArea,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tabAdmin/posto/:postoId/:positionId?',\r\n component: GestionePosto,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tabAdmin/posto-new/:timestamp/:prog?',\r\n component: GestionePosto,\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tabAccount/:enableDelete?',\r\n component: () => import('../views/v2/TabAccount.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'tabAccount/delConfirmation',\r\n component: () => import('../views/v2/DelAccountConfirmation.vue'),\r\n beforeEnter: guard2\r\n },\r\n {\r\n path: 'notifications',\r\n component: () => import('../views/v2/AccountNotifications.vue'),\r\n beforeEnter: guard2\r\n },\r\n ]\r\n },\r\n\r\n]\r\n\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(process.env.BASE_URL),\r\n routes\r\n})\r\n\r\nApp.addListener('appUrlOpen', function (event: URLOpenListenerEvent) {\r\n // Example url: https://beerswift.app/tabs/tabs2\r\n // slug = /tabs/tabs2\r\n console.log(\"URLOpenListenerEvent: \", event);\r\n const pagePath = event.url.split('links.aldilapp.it').pop();\r\n\r\n console.log('pagePath:', pagePath);\r\n // We only push to the route if there is a slug present\r\n if (pagePath) {\r\n router.push({\r\n path: pagePath,\r\n });\r\n }\r\n});\r\n\r\nexport default router\r\n","\r\nimport { createApp } from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router';\r\n//import firebase from 'firebase/compat/app';\r\n//import 'firebase/compat/auth';\r\n//import 'firebase/compat/firestore';\r\nimport { initializeApp } from 'firebase/app';\r\nimport { getAuth } from 'firebase/auth';\r\nimport { getFirestore } from 'firebase/firestore';\r\n\r\nimport { store, key } from './store'\r\nimport { IonicVue } from '@ionic/vue';\r\n\r\nimport PrimeVue from 'primevue/config';\r\nimport { VoiceRecorder} from 'capacitor-voice-recorder';\r\n\r\n//import { defineCustomElements } from '@ionic/pwa-elements/loader';\r\n\r\n//import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'\r\n\r\n/* Core CSS required for Ionic components to work properly */\r\nimport '@ionic/vue/css/core.css';\r\n\r\n/* Basic CSS for apps built with Ionic */\r\nimport '@ionic/vue/css/normalize.css';\r\nimport '@ionic/vue/css/structure.css';\r\nimport '@ionic/vue/css/typography.css';\r\n\r\n/* Optional CSS utils that can be commented out */\r\nimport '@ionic/vue/css/padding.css';\r\nimport '@ionic/vue/css/float-elements.css';\r\nimport '@ionic/vue/css/text-alignment.css';\r\nimport '@ionic/vue/css/text-transformation.css';\r\nimport '@ionic/vue/css/flex-utils.css';\r\nimport '@ionic/vue/css/display.css';\r\n\r\nimport 'bootstrap/dist/css/bootstrap.css';\r\nimport 'bootstrap-vue/dist/bootstrap-vue.css';\r\n\r\n\r\nimport 'primevue/resources/themes/fluent-light/theme.css' //theme\r\nimport 'primevue/resources/primevue.min.css' //core css\r\nimport 'primeicons/primeicons.css' //icons\r\n\r\n/* Theme variables */\r\nimport './theme/variables.css';\r\nimport './theme/aldilapp.css';\r\nimport aldLogo from \"@/components/aldilapp/shared/ald-logo.vue\";\r\n\r\nconst firebaseConfig = {\r\n apiKey: \"AIzaSyCUuebQe0uONUx8rJS6_XrqEmfuxKgb3Mo\",\r\n authDomain: \"aldilapp-ae56b.firebaseapp.com\",\r\n projectId: \"aldilapp-ae56b\",\r\n storageBucket: \"aldilapp-ae56b.appspot.com\",\r\n messagingSenderId: \"504740849427\",\r\n appId: \"1:504740849427:web:4c5dfc1f916c44ffbadce6\",\r\n measurementId: \"G-54C0FBC8QV\"\r\n}\r\n\r\nconst firebaseApp = initializeApp(firebaseConfig);\r\n\r\nexport const db = getFirestore(firebaseApp);\r\nexport const auth = getAuth(firebaseApp);\r\n\r\n\r\nauth.languageCode = 'it';\r\n\r\n//defineCustomElements(window);\r\n\r\nconst app = createApp(App)\r\n .use(IonicVue)\r\n // .use(BootstrapVue)\r\n // .use(IconsPlugin)\r\n .use(store, key)\r\n .use(router)\r\n .use(PrimeVue,{\r\n locale: {\r\n startsWith: 'Inizia con',\r\n contains: 'Contiene',\r\n notContains: 'Non Contiene',\r\n endsWith: 'Finisce con',\r\n equals: 'Uguale',\r\n notEquals: 'Diverso da',\r\n noFilter: 'Azzera filtri',\r\n lt: 'Minore di',\r\n lte: 'Minore o uguale di',\r\n gt: 'Maggiore di',\r\n gte: 'Maggiore o uguale di',\r\n dateIs: 'Data è',\r\n dateIsNot: 'Data non è',\r\n dateBefore: 'Data precedente a',\r\n dateAfter: 'Date successivo a',\r\n clear: 'Cancella',\r\n apply: 'Applica',\r\n matchAll: 'Match All',\r\n matchAny: 'Match Any',\r\n addRule: 'Add Rule',\r\n removeRule: 'Remove Rule',\r\n accept: 'Si',\r\n reject: 'No',\r\n choose: 'Scegli',\r\n upload: 'Carica',\r\n cancel: 'Annulla',\r\n dayNames: [\"Domenica\", \"Lunedi\", \"Martedi\", \"Mercoledi\", \"Giovedi\", \"Venerdi\", \"Sabato\"],\r\n dayNamesShort: [\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\"],\r\n dayNamesMin: [\"Do\",\"Lu\",\"Ma\",\"Me\",\"Gi\",\"Ve\",\"Sa\"],\r\n monthNames: [\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Maggio\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\"],\r\n monthNamesShort: [\"Gen\", \"Feb\", \"Mar\", \"Apr\", \"Mag\", \"Giu\",\"Lug\", \"Ago\", \"Set\", \"Ott\", \"Nov\", \"Dic\"],\r\n today: 'Oggi',\r\n weekHeader: 'Sett',\r\n firstDayOfWeek: 1,\r\n dateFormat: 'dd/mm/yy',\r\n weak: 'Settimana',\r\n medium: 'Medio',\r\n strong: 'Strong',\r\n passwordPrompt: 'Inserisci una password',\r\n emptyFilterMessage: 'Nessun risultato',\r\n emptyMessage: 'Nessuna opzione disponibile'\r\n }\r\n});\r\n\r\n//app.config.compilerOptions.isCustomElement = (tag) => tag.startsWith('capacitor-') || tag == 'GoogleMap' || tag == 'Marker'\r\n\r\napp.component(\"VoiceRecorder\",VoiceRecorder);\r\napp.component(\"aldLogo\",aldLogo);\r\n\r\nrouter.isReady().then(() => {\r\n app.mount('#app');\r\n});","import ImageKit from \"imagekit-javascript\"\r\n\r\nexport class ImageKitService {\r\n \r\n client: ImageKit;\r\n\r\n constructor() {\r\n this.client = new ImageKit({\r\n publicKey: process.env.VUE_APP_IMAGEKIT_PUBLICKEY,\r\n urlEndpoint: process.env.VUE_APP_IMAGEKIT_ENDPOINT ?? \"https://ik.imagekit.io/eatscanner\",\r\n authenticationEndpoint: \"https://dev.aldilapp.it/api-ver2/general/ImagekitAuth\",\r\n }); \r\n }\r\n \r\n async uploadImage(base64: string, filename: string, folder:string, tags: string[]) {\r\n \r\n try\r\n {\r\n const options = {\r\n file: base64,\r\n fileName: filename,\r\n folder: folder,\r\n tags: tags, \r\n useUniqueFileName: false\r\n };\r\n //console.log('Uploading to imagekit', options);\r\n \r\n var result = await this.client.upload(options);\r\n \r\n console.log('Uploaded su imagekit ', result!.url);\r\n \r\n return result!.url;\r\n }\r\n catch (err: any)\r\n {\r\n console.log('Uploading error', err, ' filename:', filename, ' folder: ', folder, ' base64:', base64);\r\n if (err){\r\n throw new Error('Errore upload file: ['+err?.name+'] '+err?.message);\r\n }\r\n }\r\n\r\n // Using Callback Function\r\n /*this.client.upload({\r\n file: base64,\r\n fileName: filename,\r\n folder: folder,\r\n tags: tags,\r\n useUniqueFileName: false\r\n }, function(err, result) {\r\n if (err || !result){\r\n throw new Error('Errore upload file: ['+err?.name+'] '+err?.message);\r\n }\r\n return result!.url;\r\n });*/\r\n\r\n }\r\n\r\n}\r\n\r\nexport const ImageKitClient = new ImageKitService();","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Modal.vue?vue&type=style&index=0&id=59e9f0f2&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ald-logo.vue?vue&type=style&index=0&id=cc8fd9be&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./shopItem.vue?vue&type=style&index=0&id=64712e3f&lang=css\"","import { User } from \"firebase/auth\";\r\nconst LANG = \"lang\";\r\nconst USER_ID = \"user_id\";\r\nconst USER_OBJ = \"user_obj\";\r\nconst TOKEN_KEY = \"token\";\r\nconst REFRESH_TOKEN_KEY = \"refresh_token\";\r\nconst ACCOUNT_VIEW = \"account_view\"\r\nconst StorageService = {\r\n \r\n getUserId() {\r\n return localStorage.getItem(USER_ID);\r\n },\r\n\r\n saveUserId(userid: string) {\r\n localStorage.setItem(USER_ID, userid);\r\n },\r\n\r\n removeUserId() {\r\n localStorage.removeItem(USER_ID);\r\n },\r\n\r\n getUser(): User | undefined{\r\n const json = localStorage.getItem(USER_OBJ)\r\n if (!json)\r\n return undefined;\r\n return JSON.parse(json);\r\n },\r\n\r\n saveUser(user: User) {\r\n localStorage.setItem(USER_OBJ, JSON.stringify(user));\r\n },\r\n\r\n removeUser() {\r\n localStorage.removeItem(USER_OBJ);\r\n },\r\n\r\n\r\n getLang() {\r\n return localStorage.getItem(LANG);\r\n },\r\n\r\n saveLang(lang: string) {\r\n localStorage.setItem(LANG, lang);\r\n },\r\n\r\n \r\n getToken() {\r\n return localStorage.getItem(TOKEN_KEY);\r\n },\r\n\r\n saveToken(accessToken: string) {\r\n localStorage.setItem(TOKEN_KEY, accessToken);\r\n },\r\n\r\n removeToken() {\r\n localStorage.removeItem(TOKEN_KEY);\r\n },\r\n\r\n \r\n \r\n getRefreshToken() {\r\n return localStorage.getItem(REFRESH_TOKEN_KEY);\r\n },\r\n\r\n saveRefreshToken(refreshToken: string) {\r\n localStorage.setItem(REFRESH_TOKEN_KEY, refreshToken);\r\n },\r\n\r\n removeRefreshToken() {\r\n localStorage.removeItem(REFRESH_TOKEN_KEY);\r\n },\r\n\r\n\r\n getAccountView() {\r\n return localStorage.getItem(ACCOUNT_VIEW);\r\n },\r\n\r\n saveAccountView(value: string) {\r\n localStorage.setItem(ACCOUNT_VIEW, value);\r\n },\r\n\r\n removeAccountView() {\r\n localStorage.removeItem(ACCOUNT_VIEW);\r\n }\r\n\r\n\r\n};\r\n\r\nexport { StorageService };"],"sourceRoot":""}