{"version":3,"sources":["webpack:///./src/modules/AreaSpecieProvenienza/export.ts","webpack:///./src/modules/AreaSpecieProvenienza/components/areaSpecieProvenienzaItem.ts","webpack:///./src/modules/AreaSpecieProvenienza/components/areaSpecieProvenienzaItem.ts?4e2e","webpack:///./src/modules/Utenti/services/usersService.ts","webpack:///./src/modules/Utenti/store/users.store.ts"],"names":["exportForm","source","type","printer","pdf","utenteCreatore","utentiRilevatori","getters","getAll","users","userId","user","find","f","id","toLowerCase","firstName","lastName","length","filter","map","m","indexOf","sort","a","b","localeCompare","get","versioneId","alias","areaSperimentaleId","nome","provincia","comune","localita","area","toFixed","header","data","datiCatastali","areaBoscoDaSemeId","piantaPlusId","specie","undefined","specieArborea","label","note","format","printObj","print","AreaSpecieProvenienzaItem","startX","move","rowElement","buttonRowLeftWidth","buttonRowRightWidth","e","this","$refs","rowContent","buttonRowSwipeLeft","offsetWidth","buttonRowSwipeRight","touches","clientX","style","transform","$emit","JSON","parse","stringify","item","areaSpecieProvenienzaService","Detail","detail","default","lazy","baseUrl","api","apiServerUrl","ts","Get","applicationId","auth","client_id","username","obj","Put","Delete","roleId","baseRestService","usersService","TABLES","userInRole","UsersStore","PREFIX","namespaced","mutations","state","PersistentStore","result","getMaxTs","maxts","List","then","r","set","actions","setUtenti","context","payload","operation","update","create","toString","i","Set","o","n","op","publish","oldTypeId","newTypeId","remove","Remove","setRole","SetRole","removeRole","RemoveRole","usersStore"],"mappings":"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","file":"chunk-39b6f567.js","sourcesContent":["import moment from 'moment';\r\nimport { printerHelper } from '../printer';\r\nimport { areaSperimentaleStore } from '../AreaSperimentale/store/areaSperimentale.store';\r\nimport { versioneExSituStore } from '../VersioneExSitu/store/VersioneExSitu.store';\r\nimport { domainStore } from '../domains/store/domains.store';\r\nimport { usersStore } from '../Utenti/store/users.store';\r\n\r\nexport async function exportForm(source: server.areaSpecieProvenienza, type: printer.type = printer.type.pdf): Promise {\r\n let utenteCreatore = [\"-- nessun creatore --\"];\r\n let utentiRilevatori: string[] = [\"-- nessun rilevatore --\"];\r\n const users = await usersStore.getters.getAll();\r\n\r\n if (source.userId) {\r\n const user = users.find(f => f.id.toLowerCase() === source.userId.toLowerCase());\r\n if (user) utenteCreatore = [`${user.firstName} ${user.lastName}`];\r\n }\r\n\r\n if ((source.utentiRilevatori || []).length > 0) {\r\n utentiRilevatori = users.filter(f => source.utentiRilevatori.map(m => m.toLowerCase()).indexOf(f.id.toLowerCase()) !== -1)\r\n .map((m) => `${m.firstName} ${m.lastName}`)\r\n .sort((a, b) => a.localeCompare(b));\r\n }\r\n\r\n const printObj = [\r\n {\r\n header: \"Dati Generali\",\r\n data: {\r\n 'Anno censimento': (await versioneExSituStore.getters.get(source.versioneId)).alias,\r\n 'Area Sperimentale di riferimento': (await areaSperimentaleStore.getters.get(source.areaSperimentaleId))?.nome,\r\n 'Denominazione Area': source.nome ? source.nome : '',\r\n 'Provincia': source.provincia ? source.provincia : '',\r\n 'Comune': source.comune ? source.comune : '',\r\n 'Località': source.localita ? source.localita : '',\r\n 'Superficie Area': source.area ? source.area.toFixed(2) + ' m2' : '',\r\n }\r\n }, {\r\n header: \"Dati catastali\",\r\n data: {\r\n 'Dati catastali': source.datiCatastali ? source.datiCatastali : '',\r\n }\r\n },\r\n {\r\n header: \"Dati\",\r\n data: {\r\n 'Tipologia Provenienza': source.areaBoscoDaSemeId || source.piantaPlusId ? (source.areaBoscoDaSemeId && !source.piantaPlusId ? 'Bosco Da Seme' : 'Pianta Plus') : '',\r\n 'Id Provenienza': source.areaBoscoDaSemeId || source.piantaPlusId ? (source.areaBoscoDaSemeId && !source.piantaPlusId ? source.areaBoscoDaSemeId : source.piantaPlusId) : '',\r\n 'Specie': source.specie != null && source.specie != undefined ? (await domainStore.getters.specieArborea(source.specie))?.label : '',\r\n }\r\n }, {\r\n header: \"Altro\",\r\n data: {\r\n 'Note': source.note ? source.note : null,\r\n 'Data rilievo': source.data ? moment(source.data).format(\"DD-MM-YYYY\") : '',\r\n 'Utente creatore dell\\'area': utenteCreatore,\r\n 'Rilevatori in campo': utentiRilevatori\r\n }\r\n }\r\n ] as printer.group[];\r\n printerHelper.print(type, source.nome, 'Area per Specie/Provenienza', printObj);\r\n}","\r\nimport Vue from 'vue';\r\nimport Component from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\nimport { Async } from '@/utils/AsyncDecorators';\r\nimport { areaSperimentaleStore } from '@/modules/AreaSperimentale/store/areaSperimentale.store';\r\nimport { exportForm } from '../export';\r\nimport { areaSpecieProvenienzaStore } from '../store/areaSpecieProvenienza.store';\r\nimport { areaSpecieProvenienzaService } from '../services/areaSpecieProvenienzaService';\r\n\r\n@Component({})\r\nexport default class AreaSpecieProvenienzaItem extends Vue {\r\n\r\n @Prop()\r\n item: server.areaSpecieProvenienza;\r\n \r\n @Async({ async get() { return (await (await areaSperimentaleStore.getters.get(this.item.areaSperimentaleId)).nome); }, default: [], lazy: true })\r\n areaSperimentale: string;\r\n\r\n @Async({ async get() { return (await areaSperimentaleStore.getters.getAll()).sort((a, b) => a.nome.localeCompare(b.nome)); }, default: [], lazy: true })\r\n areeSperimentale: server.areaSperimentale[];\r\n private startX: number = 0;\r\n private move: number = 0;\r\n private rowElement: any = null;\r\n\r\n private buttonRowLeftWidth: any = null;\r\n private buttonRowRightWidth: any = null;\r\n\r\n public async start(e) {\r\n this.rowElement = this.$refs.rowContent;\r\n this.buttonRowLeftWidth = (this.$refs.buttonRowSwipeLeft as any)?.offsetWidth ? (this.$refs.buttonRowSwipeLeft as any)?.offsetWidth -20 : 0;\r\n this.buttonRowRightWidth = (this.$refs.buttonRowSwipeRight as any)?.offsetWidth ? (this.$refs.buttonRowSwipeRight as any)?.offsetWidth - 20 : 0;\r\n this.startX = e.touches[0].clientX;\r\n }\r\n\r\n public onswipe(e) {\r\n (this.$refs.buttonRowSwipeLeft as any).style = \"visibility: visible;\";\r\n (this.$refs.buttonRowSwipeRight as any).style = \"visibility: visible;\";\r\n this.move = e.touches[0].clientX - this.startX;\r\n if (this.move >= 0) {\r\n (this.$refs.buttonRowSwipeRight as any).style = \"visibility: hidden\";\r\n // (this.$refs.buttonRowSwipeLeft as any).style = \"visibility: visible;\";\r\n if (this.move <= this.buttonRowLeftWidth) {\r\n this.rowElement.style.transform =\r\n \"translate(\" + this.move + \"px\" + \")\";\r\n } else {\r\n this.rowElement.style.transform = \"translate(\" + this.buttonRowLeftWidth + \"px)\";\r\n }\r\n }\r\n\r\n if (this.move < 0) {\r\n (this.$refs.buttonRowSwipeLeft as any).style = \"visibility: hidden;\";\r\n // (this.$refs.buttonRowSwipeRight as any).style = \"visibility: visible;\";\r\n if (!(-this.move >= this.buttonRowRightWidth)) {\r\n this.rowElement.style.transform =\r\n \"translate(\" + this.move + \"px\" + \")\";\r\n } else {\r\n this.rowElement.style.transform = \"translate(-\" + this.buttonRowRightWidth + \"px)\";\r\n }\r\n }\r\n }\r\n\r\n public onstop() {\r\n if (this.move >= 0) {\r\n if (this.move < this.buttonRowLeftWidth) {\r\n this.rowElement.style.transform = \"translate(0)\";\r\n }\r\n }\r\n if (this.move < 0) {\r\n if (!(-this.move >= this.buttonRowRightWidth)) {\r\n this.rowElement.style.transform = \"translate(0)\";\r\n }\r\n }\r\n }\r\n\r\n async edit()\r\n { \r\n this.$emit('edit', JSON.parse(JSON.stringify(this.item)));\r\n }\r\n\r\n async exporting(type: printer.type = printer.type.pdf){\r\n const detail = await areaSpecieProvenienzaService.Detail(this.item.id, this.item.versioneId);\r\n await exportForm(detail, type)\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!./areaSpecieProvenienzaItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!./areaSpecieProvenienzaItem.ts?vue&type=script&lang=ts&\"","import { baseRestService } from \"@/utils/baseRestService\";\r\nimport { Config } from \"@/config\";\r\n\r\nclass UsersService extends baseRestService {\r\n\r\n constructor() {\r\n super();\r\n this.baseUrl = Config.api.apiServerUrl;\r\n }\r\n\r\n async List(ts?: number): Promise {\r\n return await this.Get(`/api/users`, { ts }) || [];\r\n }\r\n\r\n async Count(): Promise {\r\n return await this.Get(`/api/users/count`);\r\n }\r\n\r\n async GetById(userId: string): Promise {\r\n return await this.Get(`/api/users/get-by-id/${userId}`, { applicationId: Config.auth.client_id });\r\n }\r\n\r\n async GetByName(username: string): Promise {\r\n return await this.Get(`/api/users/get-by-name/${username}`, { applicationId: Config.auth.client_id });\r\n }\r\n\r\n async ToggleComplete(id: string): Promise {\r\n return await this.Get(`/api/users/${id}/toggle/complete`);\r\n }\r\n\r\n async ToggleConfirm(id: string): Promise {\r\n return await this.Get(`/api/users/${id}/toggle/email-confirm`);\r\n }\r\n\r\n async Set(obj: server.user, id: string): Promise {\r\n return await this.Put(`/api/users/${id}`, obj, { applicationId: Config.auth.client_id });\r\n }\r\n\r\n async Remove(id: string): Promise {\r\n return await this.Delete(`/api/users/${id}`);\r\n }\r\n\r\n async SetRole(obj: server.userInRole, userId: string): Promise {\r\n return await this.Put(`/api/users/${userId}/roles`, obj);\r\n }\r\n\r\n async RemoveRole(userId: string, roleId: string): Promise {\r\n return await this.Delete(`/api/users/${userId}/roles/${roleId}`);\r\n }\r\n}\r\n\r\nexport const usersService: UsersService = new UsersService();","import { GetterTree, ActionTree } from 'vuex';\r\nimport { replaceInArray } from '@/utils/Array';\r\nimport { messageService } from '@/utils/MessageService';\r\nimport { PersistentStore, saveAndSync, syncOperation } from '@/utils/PersistentStore';\r\nimport vuestore, { store } from '@/store';\r\nimport { CreateTypedStoreProxy } from 'vuex-typed-store';\r\nimport { usersService } from '../services/usersService';\r\nimport { Guid } from 'guid-typescript';\r\n\r\nexport interface UsersStoreModel { }\r\n\r\nexport interface UsersStoreActions {\r\n setUtenti(payload: server.user): Promise;\r\n remove(payload: server.user): Promise;\r\n}\r\n\r\nexport interface UsersStoreGetters {\r\n get(id: string): Promise;\r\n getAll(): Promise;\r\n}\r\n\r\nexport const TABLES = { users: 'users', userInRole: 'user-in-role' };\r\nexport const UsersStore = {\r\n PREFIX: 'users',\r\n namespaced: true,\r\n mutations: {},\r\n getters: {\r\n get: (state) => async (id): Promise => {\r\n return await PersistentStore.get(TABLES.users, id);\r\n },\r\n getAll: (state) => async (): Promise => {\r\n const result: server.user[] = await PersistentStore.getAll(TABLES.users) || [];\r\n const maxts: number = await PersistentStore.getMaxTs(TABLES.users);\r\n usersService.List(maxts).then(async (r) => {\r\n replaceInArray(r, result, (a, b) => a.id === b.id);\r\n await PersistentStore.set(TABLES.users, r);\r\n });\r\n return result;\r\n },\r\n } as GetterTree,\r\n\r\n actions: {\r\n async setUtenti(context, payload: server.user) {\r\n let operation: syncOperation = syncOperation.update;\r\n if (!payload.id) {\r\n payload.id = Guid.create().toString();\r\n operation = syncOperation.create;\r\n }\r\n await saveAndSync(payload, TABLES.users,\r\n i => operation, i => usersService.Set(i, i.id), i => usersService.Set(i, i.id),\r\n async (o, n, op) => {\r\n messageService.publish('updateMediaReference', { type: 'users', oldTypeId: o.id, newTypeId: n.id } as messages.updateMediaReference);\r\n })\r\n },\r\n async remove(context, payload: server.user) {\r\n await usersService.Remove(payload.id);\r\n await PersistentStore.remove(TABLES.users, payload);\r\n },\r\n async setRole(context, payload: server.userInRole) {\r\n const operation = payload.id > 0 ? syncOperation.update : syncOperation.create\r\n await saveAndSync(payload, TABLES.userInRole,\r\n i => operation,\r\n i => usersService.SetRole(i, i.userId),\r\n i => usersService.SetRole(i, i.userId),\r\n async (o, n, op) => {\r\n await this.getters.getAll();\r\n });\r\n },\r\n async removeRole(context, payload: server.userInRole) {\r\n await usersService.RemoveRole(payload.userId, payload.roleId);\r\n await PersistentStore.remove(TABLES.userInRole, payload);\r\n await this.getters.getAll();\r\n }\r\n } as ActionTree\r\n}\r\n\r\nexport const usersStore = CreateTypedStoreProxy(vuestore, UsersStore.PREFIX);\r\n"],"sourceRoot":""}