{"version":3,"sources":["webpack:///./src/modules/media/components/slideShow.vue?4767","webpack:///./src/modules/Logs/route.ts","webpack:///./src/modules/Logs/module.ts","webpack:///./src/modules/Logs/sync.ts","webpack:///./src/modules/Logs/index.ts","webpack:///./src/modules/media/components/camera.vue?a3d6","webpack:///./src/modules/media/components/camera.ts","webpack:///./src/modules/media/components/camera.ts?ac4e","webpack:///./src/modules/media/components/camera.vue","webpack:///./src/modules/media/components/slideShow.vue?cb17","webpack:///./src/modules/media/services/mediaService.ts","webpack:///./src/modules/media/store/media.store.ts","webpack:///./src/modules/media/components/slideShow.ts","webpack:///./src/modules/media/components/slideShow.ts?9404","webpack:///./src/modules/media/components/slideShow.vue","webpack:///./src/modules/media/module.ts","webpack:///./src/modules/media/sync.ts","webpack:///./src/modules/media/index.ts"],"names":["routes","path","name","component","meta","title","showExpander","requireAuth","route","init","userRoles","securityService","getInfo","roles","isWeb","includes","MenuHelper","addMenuDefinition","description","icon","routeName","orderIndex","group","section","drawer","startup","syncOperations","modulename","module","sync","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","disabled","on","takePicture","_m","staticRenderFns","Camera","e","target","files","f","readImage","image","$emit","type","typeId","format","buffer","split","file","$this","promise","Promise","resolve","reject","reader","FileReader","onload","img","document","createElement","width","height","maxWidth","Math","min","maxHeight","canvas","ctx","getContext","drawImage","toDataURL","src","result","readAsDataURL","default","_l","m","index","key","id","$event","deleteMedia","url","srcLocal","deleteLocalMedia","newimage","baseUrl","api","apiServerUrl","Get","obj","Post","container","returnjson","Delete","baseRestService","mediaService","TABLES","media","MediaStore","PREFIX","namespaced","getters","get","state","PersistentStore","getAll","filter","i","List","then","r","a","b","set","actions","context","payload","create","noop","Upload","oldpayload","newpayload","operation","Object","assign","remove","Remove","console","error","mediaStore","SlideShow","mediaToUpload","mediaToDelete","filename","cdn","mediaConfiguration","defaultWidth","defaultHeight","item","splice","push","camera","slideShow","registerModule","doSync","preStartup","subscribe","messages","Array","isArray","all","map","message","newTypeId","oldTypeId","log"],"mappings":"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","file":"modules/media.js","sourcesContent":["import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./slideShow.vue?vue&type=style&index=0&lang=less&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./slideShow.vue?vue&type=style&index=0&lang=less&\"","import { RouteConfig } from 'vue-router';\r\nimport { layoutHelper } from '@/helpers/LayoutHelper';\r\n\r\nconst routes: Array = [\r\n {\r\n path: 'logs',\r\n name: 'logs',\r\n component: () => import(\"./components/index.vue\"),\r\n meta: { title: 'Logs', showExpander: false, requireAuth: true }\r\n },\r\n]\r\n\r\n\r\nexport default routes;","import { MenuHelper, IMenuDefinition, menuType } from \"@/helpers/MenuHelper\";\r\nimport { securityService } from '@/services/securityService';\r\nimport { layoutHelper } from '@/helpers/LayoutHelper';\r\n\r\nexport function init() {\r\n const userRoles = securityService.getInfo()?.roles;\r\n \r\n if (layoutHelper.isWeb && userRoles.includes(\"Amministratore\")){\r\n MenuHelper.addMenuDefinition(\r\n { name: \"logs\", description: \"Timeline operazioni\", icon: \"fas fa-code-branch\", routeName: \"logs\", orderIndex: 109, group: \"Impostazioni\" } as IMenuDefinition,\r\n { section: menuType.drawer },\r\n );\r\n }\r\n}","import { ISyncOptions } from '@/utils/ISyncOptions';\r\n\r\nexport default {\r\n startup: async (): Promise => {\r\n \r\n },\r\n syncOperations: async (): Promise => {\r\n \r\n }\r\n} as ISyncOptions;","import * as route from \"./route\";\r\nimport * as module from \"./module\";\r\nimport * as sync from \"./sync\";\r\nimport { IModuleOptions } from '@/utils/IModuleOptions';\r\n\r\nexport default {\r\n modulename: \"logs\",\r\n module, route, sync, \r\n roles: [\"Amministratore\"]\r\n} as IModuleOptions","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"camera\"},[_c('input',{attrs:{\"disabled\":_vm.disabled,\"id\":\"camera\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.takePicture}}),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{attrs:{\"for\":\"camera\"}},[_c('i',{staticClass:\"fas fa-camera\"})])}]\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport { Component, Prop, Watch } from \"vue-property-decorator\";\r\n\r\n@Component({})\r\nexport default class Camera extends Vue {\r\n\r\n @Prop()\r\n type: string;\r\n\r\n @Prop()\r\n typeId: any;\r\n\r\n @Prop({ default: 1280 })\r\n maxWidth: number;\r\n\r\n @Prop({ default: 1280 })\r\n maxHeight: number;\r\n\r\n @Prop()\r\n disabled:boolean;\r\n\r\n async takePicture(e: Event) {\r\n let target = e.target as HTMLInputElement;\r\n let files: FileList = (target.files as FileList);\r\n\r\n for (const f of files) {\r\n let image = await this.readImage(f);\r\n if (image)\r\n this.$emit('loaded', { type: this.type, typeId: this.typeId, format: 'jpg', buffer: (image as any).split(',')[1] });\r\n }\r\n }\r\n\r\n readImage(file): Promise {\r\n\r\n let $this = this;\r\n var promise = new Promise((resolve, reject) => {\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n // carico l'immagine\r\n var img = document.createElement(\"img\");\r\n img.onload = () => {\r\n if (img.width > img.height && img.width > $this.maxWidth) {\r\n img.height *= $this.maxWidth / img.width;\r\n img.width = Math.min(img.width, $this.maxWidth)\r\n }\r\n else {\r\n if (img.width <= img.height && img.height > $this.maxHeight) {\r\n img.width *= $this.maxHeight / img.height;\r\n img.height = Math.min(img.height, $this.maxHeight)\r\n }\r\n }\r\n\r\n var canvas = document.createElement(\"canvas\") as HTMLCanvasElement;\r\n var ctx = canvas.getContext(\"2d\");\r\n\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n var ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0, img.width, img.height);\r\n\r\n resolve(canvas.toDataURL(\"image/jpg\"));\r\n }\r\n img.src = e.target.result as string;\r\n };\r\n reader.readAsDataURL(file);\r\n })\r\n return promise;\r\n }\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!./camera.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!./camera.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./camera.vue?vue&type=template&id=4f1ae842&\"\nimport script from \"./camera.ts?vue&type=script&lang=ts&\"\nexport * from \"./camera.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"slideShow\"},[_vm._l((_vm.media),function(m,index){return _c('div',{key:m.id,staticClass:\"image-container\"},[_c('button',{attrs:{\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.deleteMedia(index,m)}}},[_c('i',{staticClass:\"fas fa-trash\"})]),_c('img',{attrs:{\"src\":_vm.src(m.url) || _vm.srcLocal(m.buffer)}})])}),_vm._l((_vm.mediaToUpload),function(m,index){return _c('div',{key:index,staticClass:\"image-container\"},[_c('button',{attrs:{\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.deleteLocalMedia(index)}}},[_c('i',{staticClass:\"fas fa-trash\"})]),_c('img',{attrs:{\"src\":_vm.srcLocal(m.buffer)}})])}),_c('camera',{attrs:{\"disabled\":_vm.disabled,\"type\":_vm.type,\"type-id\":_vm.typeId},on:{\"loaded\":_vm.newimage}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { baseRestService } from '@/utils/baseRestService';\r\nimport { Config } from '@/config';\r\n\r\nclass MediaService extends baseRestService {\r\n constructor() {\r\n super();\r\n this.baseUrl = Config.api.apiServerUrl;\r\n }\r\n\r\n async List(id: number, type: string): Promise {\r\n let result = await this.Get(`/api/image/${type}/${id}`) || [];\r\n return result;\r\n }\r\n\r\n async Detail(id: number): Promise {\r\n let result = await this.Get(`/api/image/${id}`);\r\n return result;\r\n }\r\n\r\n async Upload(obj: server.mediaUpload): Promise {\r\n const result = await this.Post(`/api/image`, {\r\n buffer: obj.buffer,\r\n format: obj.format,\r\n type: obj.type,\r\n typeId: obj.typeId,\r\n container: obj.container\r\n }, { returnjson: true });\r\n return result;\r\n }\r\n\r\n async Remove(id: number, container: string): Promise {\r\n const result = await this.Delete(`/api/image/${id}`, { container });\r\n return result;\r\n }\r\n}\r\n\r\nexport const mediaService = new MediaService();\r\n","import { PersistentStore, saveAndSync, syncOperation } from '@/utils/PersistentStore';\r\nimport { GetterTree, ActionTree } from 'vuex';\r\nimport vuestore from '@/store';\r\nimport { replaceInArray } from '@/utils/Array';\r\nimport { mediaService } from '../services/mediaService';\r\nimport { CreateTypedStoreProxy } from 'vuex-typed-store';\r\nimport { Guid } from 'guid-typescript';\r\n\r\nexport interface MediaStoreModel { }\r\n\r\ninterface MediaStoreActions {\r\n set: (payload: server.mediaUpload) => any\r\n remove: (payload: server.mediaDetail) => any\r\n}\r\n\r\ninterface MediaStoreGetters {\r\n get(id: number, type: string): Promise;\r\n}\r\n\r\nexport const TABLES = {\r\n media: 'media',\r\n}\r\n\r\nexport const MediaStore = {\r\n PREFIX: 'media',\r\n namespaced: true,\r\n getters: {\r\n get: (state) => async (id: number, type: string): Promise => {\r\n var result = (await PersistentStore.getAll(TABLES.media) || []).filter(i => i.typeId == id && i.type == type);\r\n mediaService.List(id, type).then(async r => {\r\n replaceInArray(r, result, (a, b) => a.id == b.id);\r\n await PersistentStore.set(TABLES.media, r);\r\n });\r\n return result;\r\n },\r\n } as GetterTree,\r\n actions: {\r\n async set(context, payload: server.mediaDetail) {\r\n // let operation = syncOperation.noop;\r\n // if (!payload.id && !payload.typeId) {\r\n // payload.id = Guid.create().toString();\r\n // operation = syncOperation.create;\r\n // }\r\n\r\n await saveAndSync(payload, TABLES.media,\r\n // scelgo l'operazione\r\n i => {\r\n return i.id < 0 && i.typeId ? syncOperation.create : syncOperation.noop\r\n },\r\n\r\n // dummy... non faccio mai un aggiornamento della immagine\r\n async i => {\r\n return i;\r\n },\r\n\r\n // in caso di salvataggio del dato.. \r\n i => {\r\n return mediaService.Upload(i as server.mediaUpload);\r\n },\r\n\r\n // salvataggio avvenuto con successo\r\n async (oldpayload, newpayload, operation) => {\r\n Object.assign(payload, newpayload);\r\n })\r\n },\r\n async remove(context, payload: server.mediaDetail) {\r\n if (payload.id > 0) {\r\n try {\r\n await mediaService.Remove(payload.id, payload.container);\r\n } catch (err) {\r\n console.error('error removing media from server', payload)\r\n }\r\n }\r\n await PersistentStore.remove(TABLES.media, payload);\r\n\r\n }\r\n } as ActionTree\r\n\r\n};\r\n\r\nexport const mediaStore = CreateTypedStoreProxy(vuestore, MediaStore.PREFIX);\r\n\r\n\r\n","import Vue from \"vue\";\r\nimport { Component, Prop, Watch } from \"vue-property-decorator\";\r\nimport { Config } from '@/config';\r\nimport { Async } from '@/utils/AsyncDecorators';\r\nimport { mediaStore } from '../store/media.store';\r\nimport { mediaConfiguration } from '../module';\r\n\r\n\r\n@Component({})\r\nexport default class SlideShow extends Vue {\r\n @Prop()\r\n typeId: any;\r\n\r\n @Prop()\r\n type: string;\r\n\r\n @Prop()\r\n disabled:boolean;\r\n \r\n @Async({\r\n async get() {\r\n if (this.typeId && this.type) {\r\n return await mediaStore.getters.get(this.typeId, this.type);\r\n }\r\n return [];\r\n }, default: []\r\n })\r\n media: server.mediaDetail[];\r\n\r\n mediaToUpload: server.mediaUpload[] = [];\r\n mediaToDelete: server.mediaDetail[] = [];\r\n\r\n\r\n src(filename: string, container: string = \"images\"): string {\r\n return filename ? Config.cdn.apiServerUrl + `/image/resize/${filename}?width=${mediaConfiguration.defaultWidth}&height=${mediaConfiguration.defaultHeight}&crop=true&container=${container}` : \"\";\r\n }\r\n\r\n srcLocal(item) {\r\n return \"data:image/jpeg;base64,\" + item + \"\";\r\n }\r\n\r\n deleteMedia(index: any, m: server.mediaDetail) {\r\n this.media.splice(index, 1);\r\n this.mediaToDelete.push(m);\r\n }\r\n\r\n deleteLocalMedia(index) {\r\n this.mediaToUpload.splice(index, 1)\r\n }\r\n\r\n async save(typeId: any) {\r\n for (const m of this.mediaToUpload) {\r\n m.typeId = typeId, await mediaStore.actions.set(m);\r\n }\r\n for (const m of this.mediaToDelete) {\r\n await mediaStore.actions.remove(m);\r\n }\r\n }\r\n\r\n newimage(image: server.mediaUpload) {\r\n this.mediaToUpload.push(image);\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/ts-loader/index.js??ref--13-3!./slideShow.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/ts-loader/index.js??ref--13-3!./slideShow.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./slideShow.vue?vue&type=template&id=235845d4&\"\nimport script from \"./slideShow.ts?vue&type=script&lang=js&\"\nexport * from \"./slideShow.ts?vue&type=script&lang=js&\"\nimport style0 from \"./slideShow.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport vuestore from '@/store';\r\n\r\nimport camera from \"./components/camera.vue\"\r\nimport slideShow from \"./components/slideShow.vue\"\r\nimport { mediaStore, MediaStore } from './store/media.store';\r\n\r\n\r\nVue.component('camera', camera);\r\nVue.component('slideShow', slideShow);\r\n\r\n\r\nexport const mediaConfiguration = {\r\n defaultWidth: 200,\r\n defaultHeight: 200,\r\n}\r\n\r\nexport function init() {\r\n vuestore.registerModule(MediaStore.PREFIX, MediaStore);\r\n}","import { mediaStore, TABLES } from './store/media.store';\r\nimport { ISyncOptions } from '@/utils/ISyncOptions';\r\nimport { messageService } from '@/utils/MessageService';\r\nimport { sync, syncOperation, PersistentStore } from '@/utils/PersistentStore';\r\nimport { mediaService } from './services/mediaService';\r\n\r\n\r\nasync function doSync() {\r\n await sync(TABLES.media,\r\n i => {\r\n return i.id < 0 ? syncOperation.create : syncOperation.noop\r\n },\r\n async i => {\r\n return i\r\n },\r\n i => mediaService.Upload(i as server.mediaUpload))\r\n}\r\n\r\nexport default {\r\n preStartup: async (): Promise => {\r\n messageService.subscribe('syncMedia', async (messages: messages.syncMedia[] | messages.syncMedia) => {\r\n if (Array.isArray(messages))\r\n await Promise.all(messages.map(m => mediaStore.getters.get(m.typeId, m.type)))\r\n else\r\n await mediaStore.getters.get(messages.typeId, messages.type)\r\n });\r\n\r\n messageService.subscribe('updateMediaReference', async (message: messages.updateMediaReference) => {\r\n if (message.newTypeId == message.oldTypeId) return;\r\n\r\n var result = (await PersistentStore.getAll(TABLES.media)).filter(i => i.type == message.type && i.typeId == message.oldTypeId);\r\n for (const m of result) {\r\n m.typeId = message.newTypeId;\r\n m['__needsSync'] = true;\r\n }\r\n\r\n await PersistentStore.set(TABLES.media, result);\r\n await doSync();\r\n })\r\n\r\n },\r\n startup: async (): Promise => {\r\n console.log('startup', 'media sync');\r\n },\r\n syncOperations: doSync\r\n} as ISyncOptions;","import * as module from \"./module\";\r\nimport * as sync from \"./sync\";\r\nimport { IModuleOptions } from '@/utils/IModuleOptions';\r\nexport default {\r\n modulename: 'media', module, sync, \r\n roles: [\"Amministratore\", \"Editore\"]\r\n} as IModuleOptions\r\n\r\n"],"sourceRoot":""}