{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Portal/Renault/Content.vue?2d54","webpack:///./src/assets/GILLES.png","webpack:///./src/assets/ANCIENS/SyncAirtable.png","webpack:///./src/assets/SyncAirtable.png","webpack:///./src/assets/scroll.gif","webpack:///./src/assets/IconApp.png","webpack:///./src/assets/IconWeb.png","webpack:///./src/assets/tc.png","webpack:///./src/assets/ANCIENS/tc.png","webpack:///./src/views/SetNewPass.vue?3def","webpack:///./src/assets/SnackMatch.png","webpack:///./src/assets/CRR.png","webpack:///./src/components/Portal/TC/Data.vue?7fc0","webpack:///./src/components/Portal/Renault/Afspraken.vue?323a","webpack:///./src/App.vue?4a5b","webpack:///./src/assets/Balls.png","webpack:///./src/assets/ANCIENS/Renault.png","webpack:///./BLL/Tumi/Components/DynamicFile.vue?78c9","webpack:///./src/components/Portal/Menu.vue?cf02","webpack:///./src/assets/ANCIENS/Balls.png","webpack:///./src/assets/ANCIENS/SnackMatch.png","webpack:///./src/views/Home.vue?d1b2","webpack:///./src/components/Portal/Gilles/Content.vue?abd1","webpack:///./src/assets sync ^\\.\\/.*\\.png$","webpack:///./src/assets/Renault.png","webpack:///./src/assets/IconAd.png","webpack:///./src/assets/ANCIENS/GILLES.png","webpack:///./src/assets/ANCIENS/ProjectLifeKey.png","webpack:///./src/assets/Tumi/TumiLogo.png","webpack:///./src/assets/Tumi/Arrow.png","webpack:///./src/views/RetrievePass.vue?630b","webpack:///./BLL/Tumi/Components/DynamicPage.vue?f57d","webpack:///./src/assets/Tumi/Cloud.png","webpack:///./src/App.vue?67e2","webpack:///./src/App.vue","webpack:///./src/App.vue?8ecf","webpack:///./src/views/Home.vue?d654","webpack:///./BLL/helpers/fonctions.ts","webpack:///./BLL/helpers/handleResponse.ts","webpack:///./DAL/Config.ts","webpack:///./BLL/helpers/auth-header.ts","webpack:///./DAL/Services/User/user.service.ts","webpack:///./BLL/store/User/user.store.ts","webpack:///./DAL/Services/Dynamic/dynamic.service.ts","webpack:///./BLL/store/Dynamic/dynamic.store.ts","webpack:///./DAL/Services/Portal/portal.service.ts","webpack:///./BLL/store/Portal/portal.store.ts","webpack:///./BLL/store/index.ts","webpack:///./BLL/models/AuthenticateRequest.ts","webpack:///./src/views/Home.vue","webpack:///./src/views/Home.vue?f63c","webpack:///./src/views/SignUp.vue?154d","webpack:///./BLL/models/Subscribe.ts","webpack:///./src/views/SignUp.vue","webpack:///./src/views/SignUp.vue?131d","webpack:///./src/views/ConfirmMail.vue?d262","webpack:///./src/views/ConfirmMail.vue","webpack:///./src/views/ConfirmMail.vue?89d2","webpack:///./src/views/RetrievePass.vue?c02b","webpack:///./src/views/RetrievePass.vue","webpack:///./src/views/RetrievePass.vue?b9c3","webpack:///./src/views/SetNewPass.vue?f856","webpack:///./BLL/models/NewPass.ts","webpack:///./src/views/SetNewPass.vue","webpack:///./src/views/SetNewPass.vue?d3e0","webpack:///./src/views/Portal/Portal.vue?9922","webpack:///./src/components/Portal/Renault/Options.vue?f80f","webpack:///./src/components/Portal/Renault/Content.vue?3c1a","webpack:///./BLL/Tumi/Components/DynamicPage.vue?a432","webpack:///./BLL/Tumi/Models/Models.ts","webpack:///./BLL/Tumi/ModelParser.ts","webpack:///./BLL/Tumi/Components/DynamicComponent.vue?2cf5","webpack:///./BLL/Tumi/Components/DynamicComponent.vue","webpack:///./BLL/Tumi/Components/DynamicComponent.vue?a94a","webpack:///./BLL/Tumi/Components/DynamicSelect.vue?d89c","webpack:///./BLL/Tumi/Components/DynamicSelect.vue","webpack:///./BLL/Tumi/Components/DynamicSelect.vue?ee23","webpack:///./BLL/Tumi/Components/DynamicTextArea.vue?3656","webpack:///./BLL/Tumi/Components/DynamicTextArea.vue","webpack:///./BLL/Tumi/Components/DynamicTextArea.vue?e023","webpack:///./BLL/Tumi/Components/DynamicFile.vue?5979","webpack:///./BLL/Tumi/Components/DynamicFile.vue","webpack:///./BLL/Tumi/Components/DynamicFile.vue?bdb1","webpack:///./BLL/Tumi/Components/DynamicPage.vue","webpack:///./BLL/Tumi/Components/DynamicPage.vue?925a","webpack:///./src/components/Portal/Renault/Content.vue","webpack:///./src/components/Portal/Renault/Content.vue?839c","webpack:///./src/components/Portal/Renault/Afspraken.vue?f522","webpack:///./src/components/Portal/Renault/Afspraken.vue","webpack:///./src/components/Portal/Renault/Afspraken.vue?6346","webpack:///./src/components/Portal/Renault/Options.vue","webpack:///./src/components/Portal/Renault/Options.vue?5ad6","webpack:///./src/components/Portal/TC/Options.vue?e7a6","webpack:///./src/components/Portal/TC/Data.vue?7c9b","webpack:///./src/components/Portal/TC/Data.vue","webpack:///./src/components/Portal/TC/Data.vue?832a","webpack:///./src/components/Portal/TC/Options.vue","webpack:///./src/components/Portal/TC/Options.vue?3da7","webpack:///./src/components/Portal/Gilles/OptionsGilles.vue?58ee","webpack:///./src/components/Portal/Gilles/Content.vue?71ac","webpack:///./src/components/Portal/Gilles/Content.vue","webpack:///./src/components/Portal/Gilles/Content.vue?5109","webpack:///./src/components/Portal/Gilles/OptionsGilles.vue","webpack:///./src/components/Portal/Gilles/OptionsGilles.vue?6955","webpack:///./config.ts","webpack:///./src/components/Portal/Menu.vue?42c6","webpack:///./src/components/Portal/Menu.vue","webpack:///./src/components/Portal/Menu.vue?ce98","webpack:///./src/views/Portal/Portal.vue","webpack:///./src/views/Portal/Portal.vue?222c","webpack:///./src/views/TumiHome.vue?e139","webpack:///./src/components/Home/Left.vue?2a58","webpack:///./src/components/Home/Left.vue","webpack:///./src/components/Home/Left.vue?ce0e","webpack:///./src/components/Home/Right.vue?85dc","webpack:///./src/components/Home/Right.vue","webpack:///./src/components/Home/Right.vue?70f6","webpack:///./src/components/Home/Contact.vue?125b","webpack:///./src/components/Home/Contact.vue","webpack:///./src/components/Home/Contact.vue?93bc","webpack:///./src/views/TumiHome.vue","webpack:///./src/views/TumiHome.vue?6e47","webpack:///./src/router/index.ts","webpack:///./src/main.ts","webpack:///./src/assets/logo.png","webpack:///./src/assets/ProjectLifeKey.png","webpack:///./src/assets/ANCIENS/CRR.png"],"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","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","_resolveComponent","_openBlock","_createBlock","created","document","title","__exports__","_withScopeId","_pushScopeId","_popScopeId","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_createElementVNode","src","_imports_0","alt","_hoisted_5","_hoisted_6","_createTextVNode","_hoisted_7","_hoisted_8","_component_router_link","_createElementBlock","Auth","_createCommentVNode","_withDirectives","type","$event","mail","placeholder","_vModelText","pass","onClick","args","Login","_createVNode","to","path","default","_withCtx","_","error","_toDisplayString","isPicture","fileName","isExtension","extensions","retour","forEach","element","endsWith","validateEmail","email","String","toLowerCase","match","getDate_forApi","date","yyyy","getFullYear","mm","getMonth","padStart","dd","getDate","ToUpper","obj","Array","isArray","entries","mappedEntries","k","v","toUpperCase","fromEntries","getDate_ddmmyyyy","async","apiErrorCheck","url","requestOptions","api","then","Promise","reject","fetch","response","ok","status","text","JSON","parse","message","contentType","headers","indexOf","json","Config","Url","authHeader","userStorage","localStorage","getItem","user","TOKEN","set","userService","SignUp","ConfirmEmail","RetrievePass","SaveNewPass","Authenticate","CheckIfNewPassGuidExists","Logged","Headers","method","guid","body","stringify","initialState","login","userStore","namespaced","state","getters","isLoggedIn","loggedId","LOGIN_ID","actions","commit","res","catch","Logout","mutations","SetLogged","SetErrorToNull","RetrieveGuidFailure","SignUpFailure","ConfirmEmailFailure","RetrievePassFailure","SaveNewPassSucces","SaveNewPassError","AuthenticateSucces","setItem","AuthenticateError","removeItem","dynamicService","getDynamic","setDynamic","setDynamicFiles","formData","FormData","prop","append","TUMIFILES","dynamicStore","pathSet","getDynamicSuccess","getDynamicFailure","setDynamicSuccess","setDynamicFailure","portalService","GetMenu","idLogin","portalStore","store","SetError","SuccesMenu","menu","createStore","AuthenticateRequest","constructor","username","password","this","defineComponent","methods","GoToPortal","$router","dispatch","$forceUpdate","LoggedIn","computed","_Fragment","pass2","Subscribe","SignedUp","useRoute","params","EmailConfirmed","role","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","SendMail","waiting","EmailSent","start","criticalError","SetNewPass","NewPass","NewPassSet","router","style","_component_Menu","_component_Options","_component_OptionsTC","_component_OptionsGilles","cli","nom","onLogout","onChange","OnChange","Cli","menuItem","_component_Content","_component_Afspraken","PathGet","PathSet","_component_DynamicPage","activeObject","objet","validate","onAction","Save","repeatPlaceholder","_hoisted_13","_component_DynamicComponent","_component_DynamicTextArea","_component_DynamicFile","_component_Datepicker","_component_DynamicSelect","desc","_renderList","inputs","inp","explanation","inputModel","ref_for","ref","number","fileCount","types","fileTypes","modelValue","autoApply","format","enableTimePicker","Submit","styleClass","Control","divClass","disabled","options","setStyle","TumiFields","parseModel","array","placeholders","dropDowns","explanations","split","FirstLetterToUpper","nouvelObj","find","count","GetFromView","viewRefs","nulls","errors","includes","Date","newFiles","files","join","oldFiles","input","control","string","charAt","_normalizeClass","props","op","option","_vModelSelect","_hoisted_14","_imports_1","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_TransitionGroup","numberAdmitted","newPictures","oldPictures","hightlight","openFileSelection","onDragover","onDragOver","onDragleave","onDragLeave","onDrop","multiple","onFileChanged","oldP","GetPicture","Download","DeleteOldPicture","newP","file","DeleteNewPicture","oldF","DeleteOldFile","newF","DeleteNewFile","emits","errorFiles","typesAdmitted","IsPic","open","nomsAvecFolder","DeleteValue","filter","noms","nomsSplit","DeleteFile","x","$refs","fileInput","click","event","preventDefault","CheckIfEnoughPlace","filesCount","CheckIfAuthorizedExtentions","item","pushFiles","alert","stop","nomsFichiersExistants","RefreshFileNames","dataTransfer","target","reader","FileReader","addEventListener","readAsDataURL","components","DynamicComponent","Datepicker","DynamicSelect","DynamicTextArea","DynamicFile","ClasseErreur","$emit","nomControl","ctrl","watch","DynamicPage","er","LoadObject","_createStaticVNode","Afspraken","afspraak","AFSPRAAK_ID","Ouvrir","DateFormat","AFSPRAAK_UPDDAT","AFSPRAAK_VOORNAAM","AFSPRAAK_NAAM","AFSPRAAK_EMAIL","AFSPRAAK_TELEFOON","AFSPRAAK_NUMMERPLAAT","_Transition","AFSPRAAK_OPMERKING","valeur","LoadAfspraken","Content","_component_Data","DownloadBerichten","DownloadNews","Data","Ids","men","Menu","Options","OptionsTC","OptionsGilles","href","width","_imports_2","_imports_3","_imports_4","_component_RouterLink","_component_Left","_component_Right","_component_Contact","Home","What","Projects","Contact","img","link","height","frameborder","allow","allowfullscreen","require","imgWorked","innerHTML","visible","getElementsByClassName","position","getBoundingClientRect","top","innerHeight","bottom","console","log","CONTACT_EMAIL","GetContact","Left","Right","scrollTo","yOffset","getElementById","y","pageYOffset","behavior","routes","component","HomePortal","ConfirmMail","Portal","createRouter","history","createWebHashHistory","beforeEach","from","next","privatePages","authRequired","loggedIn","AOS","init","createApp","App","use","mount"],"mappings":"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","file":"js/app.9dc38414.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 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// 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\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 \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([0,\"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!./Content.vue?vue&type=style&index=0&id=26c140d1&lang=css\"","module.exports = __webpack_public_path__ + \"img/GILLES.457a3bf3.png\";","module.exports = __webpack_public_path__ + \"img/SyncAirtable.140289af.png\";","module.exports = __webpack_public_path__ + \"img/SyncAirtable.1ee215db.png\";","module.exports = __webpack_public_path__ + \"img/scroll.a44bd23e.gif\";","module.exports = __webpack_public_path__ + \"img/IconApp.83fb696f.png\";","module.exports = __webpack_public_path__ + \"img/IconWeb.243d18bb.png\";","module.exports = __webpack_public_path__ + \"img/tc.8a69de66.png\";","module.exports = __webpack_public_path__ + \"img/tc.98ce51b3.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!./SetNewPass.vue?vue&type=style&index=0&id=3dc2baa9&lang=css\"","module.exports = __webpack_public_path__ + \"img/SnackMatch.46ed9bce.png\";","module.exports = __webpack_public_path__ + \"img/CRR.34c31c9a.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!./Data.vue?vue&type=style&index=0&id=3e69699e&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!./Afspraken.vue?vue&type=style&index=0&id=3b67952e&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!./App.vue?vue&type=style&index=0&id=54d70426&lang=css\"","module.exports = __webpack_public_path__ + \"img/Balls.adfb6af4.png\";","module.exports = __webpack_public_path__ + \"img/Renault.9f30bafd.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!./DynamicFile.vue?vue&type=style&index=0&id=057621b9&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!./Menu.vue?vue&type=style&index=0&id=d4b8d50e&lang=css\"","module.exports = __webpack_public_path__ + \"img/Balls.60c4a082.png\";","module.exports = __webpack_public_path__ + \"img/SnackMatch.da5bfdf5.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!./Home.vue?vue&type=style&index=0&id=27dcad83&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!./Content.vue?vue&type=style&index=0&id=1e13654c&lang=css\"","var map = {\n\t\"./ANCIENS/Balls.png\": \"7b76\",\n\t\"./ANCIENS/CRR.png\": \"fffe\",\n\t\"./ANCIENS/GILLES.png\": \"b968\",\n\t\"./ANCIENS/ProjectLifeKey.png\": \"bb69\",\n\t\"./ANCIENS/Renault.png\": \"6cae\",\n\t\"./ANCIENS/SnackMatch.png\": \"96de\",\n\t\"./ANCIENS/SyncAirtable.png\": \"0a6c\",\n\t\"./ANCIENS/tc.png\": \"1b3f\",\n\t\"./Balls.png\": \"4fd1\",\n\t\"./CRR.png\": \"3657\",\n\t\"./GILLES.png\": \"06c7\",\n\t\"./IconAd.png\": \"b5a6\",\n\t\"./IconApp.png\": \"11dd\",\n\t\"./IconWeb.png\": \"126e\",\n\t\"./ProjectLifeKey.png\": \"fa52\",\n\t\"./Renault.png\": \"b271\",\n\t\"./SnackMatch.png\": \"33ad\",\n\t\"./SyncAirtable.png\": \"0b3f\",\n\t\"./Tumi/Arrow.png\": \"c32e\",\n\t\"./Tumi/Cloud.png\": \"c9e2\",\n\t\"./Tumi/TumiLogo.png\": \"bb71\",\n\t\"./logo.png\": \"cf05\",\n\t\"./tc.png\": \"12ba\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"9e01\";","module.exports = __webpack_public_path__ + \"img/Renault.85f55c31.png\";","module.exports = __webpack_public_path__ + \"img/IconAd.4da28c69.png\";","module.exports = __webpack_public_path__ + \"img/GILLES.638cff00.png\";","module.exports = __webpack_public_path__ + \"img/ProjectLifeKey.70803889.png\";","module.exports = __webpack_public_path__ + \"img/TumiLogo.1596ba5a.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAVCAYAAACdbmSKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkQ5QTNBOENEMzhDOTExRUQ4MUQwQjIyMzBDQTgwMjc1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkQ5QTNBOENFMzhDOTExRUQ4MUQwQjIyMzBDQTgwMjc1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDlBM0E4Q0IzOEM5MTFFRDgxRDBCMjIzMENBODAyNzUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDlBM0E4Q0MzOEM5MTFFRDgxRDBCMjIzMENBODAyNzUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6AeTM3AAAAvklEQVR42mL8//8/AxoIBeJMJP4/IO4A4j0wARYGTOAJxI5oYkeRNTFh0fQTi9gvZA42TQTBqKZBoekPFrHfyBxGYNrrBdK60DQGSojaQCyLpukOEN8GYmYg/gTSdAmqiVjwD+S8ICB+TIKm0wygrAHExkD88T9h8BiIFWCaQDgMiH/h0QAy1AGc/5A0gXAcDg3fgdgVpg5dEwjXYdGUiqwGmyZmIF6OpKEHXQ227P4XiJOhEfoeiEvRFQAEGABu5AMDEqI9kwAAAABJRU5ErkJggg==\"","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!./RetrievePass.vue?vue&type=style&index=0&id=44aa2682&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!./DynamicPage.vue?vue&type=style&index=0&id=a7615168&lang=css\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAmCAYAAACGeMg8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM1MTQ1OURCMzhDOTExRURCREU2OEZGNzdBNTYzRDRFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM1MTQ1OURDMzhDOTExRURCREU2OEZGNzdBNTYzRDRFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzUxNDU5RDkzOEM5MTFFREJERTY4RkY3N0E1NjNENEUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QzUxNDU5REEzOEM5MTFFREJERTY4RkY3N0E1NjNENEUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44aTm+AAAD9UlEQVR42syZWUiVQRTH73ddckEzNcxMJKheokwtichISi2j0tLKMEzIh6goMSIKol5SpMUkqKcIw6weypaHqKxeKrdogxAtTCwqwTTF0ixv/4lz4TR8d/mWuxz4wXxzv3tmzsyZOWfmU2w2m8VLMhvkgVVgDpgMAsE46ANvwE1wCwxo1i4M8TDx4AwYtrknPaACWLW042kjCkGvk05POPntIUh1ty3Fg661B9RKdd9BI3gAusAPMAUsANkgh9zNLoMgC7R7w7Wmg2VgLcgFKaBUZYTPgiQXuhaDJhVXS/KUa00Fx0AbGHTh8wMgX4Nu4SX7JR3NIMxsQ4pplNyRnyBL52BVSbr2mWnIIQcd/gzeg25phqoNuGwALXi7vAbBZhhSLXV+HFwAGSAKhNL0i+12O2gEsQbX33wwxtrMMWpInmTEV7DCCzFI0MrarXH0ntWNbXQSOMqeP1F0bvJSRvCEldMcvRTohqL1IJnKf0ApeOFmJwrBTvY8AaoojrgrL1k5HoSAUT2GbGXlFnBfQydWg0yVEdZiyIDU3wC1l1y5VgRIZ8+XNbrFmErdL406oiV9I3oMmQZi7UkAeGrxviSzcgI4qMeQUOZ+o7rSa2Mi+reUPYeDSnCJvMWlIVGgnP6gUF0QCPPBjOwGp8AwqysG9/5zO5U9WaQUnQ4ieInGGHBORcdhnfEkmXI7LhcdxRGRet+h05xFih2tINHiO3kFVoIbrK4EFMkzsktl9K6ATBDJMlNfzYgdkQa9ZfrEwS3Sys7Tx5mlw2TtFvAIDLGdy9ciDmN7WV9mgI1WWsw1IJIFIBHI6iz+KyIo32XPa4QhS0Auq6yU8hsj8lulbtwk3fU81ogYsZlV9IDzBpSfBPMopxJTP1flnTKwnFKNIcrH9EgbZQnBICZQCjgN0n6tVbLIEGcyi7AnkXrlCy2DODFoVgr7dnlmcLo3gF6No2pEbDyyB7Ef+gwqfgfy2S7nTD7SrqhXYui2UohilaY3woRF+JzWgbNFLQzdBj4YaCeNcsF/O60wpJ/9mGrSjnIN7HDwm0g+C8Bjg20UsHKHiJT1LEq2aL1zdcERlcheZoLedLpqsku5qFwnNbTJREPElU4D033CBJ1BoJ3p7BMXhha6xuG5SweINtEYkRvV0Y28YoK+09LAl/ProGzpZryd0maLH5EIrktG3AaB8r1WrfTSEH2niPMDAypUPk+Im80Etc8KIZQoyilDPwWuLjr42/+gUFlhwUku631XodOfyMpTWLzgW3wR9cnhCfGAdE3pTzJOayTc3SvThbTbjPiJAcLNr4JFer9YiY+WGWAmnVcUL545RMbxDXSCZtDt7OW/AgwAUSV3YJmMop4AAAAASUVORK5CYII=\"","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_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createBlock(_component_router_view))\n}","\r\n export default {\r\n name: 'About',\r\n created(){\r\n document.title = \"Tumi | Website - Apps - Advertising\"\r\n }\r\n }\r\n","import { render } from \"./App.vue?vue&type=template&id=54d70426&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=54d70426&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/Tumi/TumiLogo.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-27dcad83\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"TumiBackLogin\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"TumiLogin\"\n}\nconst _hoisted_3 = { class: \"TumiForm\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"LogoTumi\",\n class: \"mb-3\"\n}, null, -1))\nconst _hoisted_5 = { class: \"d-grid gap-2 mb-2 mb-3\" }\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Password lost?\")\nconst _hoisted_7 = { class: \"TumiErrorLogin mt-3\" }\nconst _hoisted_8 = {\n key: 0,\n class: \"TumiTextWarning\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_ctx.Auth)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: \"form-control\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.mail) = $event)),\n placeholder: \"Email\"\n }, null, 512), [\n [_vModelText, _ctx.mail]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"password\",\n class: \"form-control\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.pass) = $event)),\n placeholder: \"Password\"\n }, null, 512), [\n [_vModelText, _ctx.pass]\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n type: \"button\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.Login && _ctx.Login(...args))),\n class: \"btn btn-primary\"\n }, \"Log in\")\n ]),\n _createVNode(_component_router_link, { to: {path:'/RetrievePass'} }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_7, [\n (_ctx.error)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_8, _toDisplayString(_ctx.error), 1))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","export function isPicture(fileName:string){\r\n return isExtension(fileName, [\"jpg\",\"jpeg\",\"png\",\"gif\"]);\r\n}\r\n\r\nexport function isExtension(fileName:string, extensions: string[]){\r\n let retour = false;\r\n \r\n extensions.forEach((element: string) =>{\r\n if(fileName.endsWith('.' + element))\r\n retour = true;\r\n });\r\n\r\n return retour;\r\n}\r\n\r\n\r\nexport function divisionEnChunk(liste: Array, nombre: number):Array>{\r\n const zones = [];\r\n\r\n for (let i = 0; i < liste.length; i += nombre) {\r\n zones.push(liste.slice(i, i + nombre));\r\n }\r\n\r\n return zones;\r\n}\r\n\r\nexport function EnMB(kb : number): string{\r\n return kb / 1e+6 + \"Mb\";\r\n}\r\n\r\nexport function validateEmail(email:string){\r\n return String(email)\r\n .toLowerCase()\r\n .match(\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n );\r\n}\r\n\r\nexport function getDate_forApi(date: Date) {\r\n const yyyy = date.getFullYear();\r\n const mm = String(date.getMonth() + 1).padStart(2,'0');\r\n const dd = String(date.getDate()).padStart(2,'0');\r\n\r\n return `${yyyy}-${mm}-${dd}`\r\n}\r\n\r\nexport const ToUpper = (obj: any): any => {\r\n if (typeof obj !== 'object') {\r\n return obj;\r\n }\r\n if (Array.isArray(obj)) {\r\n return obj.map(ToUpper);\r\n }\r\n if (obj === null) {\r\n return null;\r\n }\r\n\r\n const entries = Object.entries(obj);\r\n const mappedEntries = entries.map(\r\n ([k, v]) => [k.toUpperCase(), v] as const\r\n );\r\n\r\n return Object.fromEntries(mappedEntries);\r\n};\r\n\r\nexport function getDate_ddmmyyyy(date: Date) : string{\r\n const yyyy = date.getFullYear();\r\n const mm = String(date.getMonth() + 1).padStart(2,'0');\r\n const dd = String(date.getDate()).padStart(2,'0');\r\n\r\n return `${dd}/${mm}/${yyyy}`\r\n}","import { ToUpper } from \"./fonctions\";\r\nimport {IError} from '../models/Error'\r\n\r\nexport async function apiErrorCheck(url:string, requestOptions: RequestInit):Promise{\r\n //if fetch is ok -> return the response\r\n try{\r\n return await api(url, requestOptions)\r\n .then(\r\n data => { return data as Promise; },\r\n error => { return Promise.reject(error); }\r\n );\r\n }\r\n //if fetching not ok return error.\r\n catch(e){\r\n return Promise.reject(String(e));\r\n }\r\n}\r\n\r\nexport async function api(url: string, requestOptions: RequestInit): Promise {\r\n return fetch(url, requestOptions)\r\n //Get response\r\n .then(async response => {\r\n if(!response.ok){\r\n //if BADREQUEST or UNAUTHORIZATED type of object IERROR\r\n if(response.status === 400 || response.status === 401)\r\n return response.text()\r\n .then(text => {\r\n //get message from IERROR object\r\n return Promise.reject((JSON.parse(text) as IError).message)\r\n });\r\n\r\n //If 500 intern error we don't show the message (could have sensible info)\r\n if(response.status === 500)\r\n {\r\n //Do log something\r\n //....\r\n return Promise.reject(\"An error occured.\");\r\n }\r\n\r\n return Promise.reject(\"Something unusual happened\");\r\n }\r\n \r\n //if response is ok\r\n const contentType = response.headers.get(\"content-type\");\r\n\r\n //Check if text response or Json and coverting\r\n if (contentType && contentType.indexOf(\"application/json\") !== -1)\r\n return await response.json() as Promise;\r\n else\r\n return response.text();\r\n })\r\n .then(\r\n data => { return ToUpper(data); },\r\n );\r\n}","export const Config = {\r\n Url\r\n}\r\n\r\nfunction Url() : string {\r\n return \"\";\r\n //return \"https://localhost:7175\";\r\n}","import {IConnectedLogin} from '../models/IConnectedLogin'\r\n\r\nexport function authHeader(headers : Headers) {\r\n const userStorage = localStorage.getItem('user');\r\n\r\n if(!userStorage)\r\n return headers;\r\n\r\n const user = JSON.parse(userStorage) as IConnectedLogin;\r\n\r\n if (user && user.TOKEN){\r\n headers.set('Authorization', 'Bearer ' + user.TOKEN);\r\n return headers;\r\n }\r\n else\r\n return headers;\r\n}","import { apiErrorCheck } from \"../../../BLL/helpers/handleResponse\";\r\nimport { Config } from \"../../Config\"\r\nimport { AuthenticateRequest } from \"../../../BLL/models/AuthenticateRequest\";\r\nimport { ISubscribe } from \"../../../BLL/models/Subscribe\";\r\nimport { INewPass } from \"../../../BLL/models/NewPass\";\r\nimport { authHeader } from \"../../../BLL/helpers/auth-header\";\r\n\r\nexport const userService = {\r\n SignUp,\r\n ConfirmEmail,\r\n RetrievePass,\r\n SaveNewPass,\r\n Authenticate,\r\n CheckIfNewPassGuidExists,\r\n Logged\r\n}\r\n\r\nasync function Logged(): Promise{\r\n\r\n const headers : HeadersInit = new Headers();\r\n headers.set('Content-Type', 'application/json')\r\n \r\n const requestOptions = {\r\n method: 'GET', \r\n headers: authHeader(headers),\r\n } as RequestInit;\r\n\r\n return apiErrorCheck(Config.Url() + `/User/Test`, requestOptions)\r\n}\r\n\r\nasync function CheckIfNewPassGuidExists(guid : string): Promise{\r\n const requestOptions = {\r\n method: 'Get', \r\n };\r\n\r\n return apiErrorCheck(Config.Url() + `/User/CheckIfNewPassGuidExists?Guid=` + guid, requestOptions)\r\n}\r\n\r\nasync function SignUp(data : ISubscribe): Promise{\r\n const requestOptions = {\r\n method: 'POST', \r\n body: JSON.stringify(data),\r\n headers: {'Content-Type' : 'application/json'}\r\n };\r\n\r\n return apiErrorCheck(Config.Url() + `/User/SignUp`, requestOptions)\r\n}\r\n\r\nasync function ConfirmEmail(guid : string): Promise{\r\n const requestOptions = {\r\n method: 'GET',\r\n };\r\n\r\n return apiErrorCheck(Config.Url() + `/User/ConfirmEmail?Guid=` + guid, requestOptions)\r\n}\r\n\r\nasync function RetrievePass(email : string): Promise{\r\n const requestOptions = {\r\n method: 'GET',\r\n };\r\n\r\n return apiErrorCheck(Config.Url() + `/User/RetrievePass?Email=` + email, requestOptions)\r\n}\r\n\r\nasync function SaveNewPass(data : INewPass): Promise{\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {'Content-Type' : 'application/json'}\r\n };\r\n\r\n return apiErrorCheck(Config.Url() + `/User/SaveNewPass`, requestOptions)\r\n}\r\n\r\n\r\nasync function Authenticate(data : AuthenticateRequest): Promise{\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {'Content-Type' : 'application/json'}\r\n };\r\n \r\n return apiErrorCheck(Config.Url() + `/User/Authenticate`, requestOptions);\r\n}","import { userService } from \"../../../DAL/Services/User/user.service\";\r\nimport { Commit } from \"vuex\"\r\nimport { AuthenticateRequest } from \"../../models/AuthenticateRequest\";\r\nimport { IConnectedLogin } from \"../../models/IConnectedLogin\";\r\nimport { IState } from \"../../models/IState\";\r\nimport { ISubscribe } from \"BLL/models/Subscribe\";\r\nimport { INewPass } from \"BLL/models/NewPass\";\r\n\r\n\r\nconst userStorage = localStorage.getItem('user');\r\n\r\n//To keep logged in between pages refresh\r\nconst initialState = userStorage \r\n ? { login : JSON.parse(userStorage), error : null }\r\n : { login : null, error: null}\r\n\r\nexport interface userState extends IState{\r\n login: IConnectedLogin | null,\r\n}\r\n\r\nexport const userStore = {\r\n namespaced: true,\r\n state: initialState,\r\n getters:{\r\n isLoggedIn(state: userState){\r\n return state.login != null;\r\n },\r\n loggedId(state:userState){\r\n return state.login?.LOGIN_ID;\r\n }\r\n },\r\n actions:{\r\n async Logged({commit}:{commit: Commit}): Promise{\r\n await userService.Logged()\r\n .then(\r\n res => commit('SetLogged', res),\r\n error => commit('SetLogged', error)) \r\n },\r\n async SignUp({commit}:{commit: Commit}, data : ISubscribe): Promise{\r\n commit(\"SetErrorToNull\");\r\n await userService.SignUp(data)\r\n .catch(error => commit('SignUpFailure', error))\r\n },\r\n async ConfirmEmail({commit}:{commit: Commit}, guid : string): Promise{\r\n commit(\"SetErrorToNull\");\r\n await userService.ConfirmEmail(guid)\r\n .catch(error => commit('ConfirmEmailFailure', error))\r\n },\r\n async RetrievePass({commit}:{commit: Commit}, email : string): Promise{\r\n commit(\"SetErrorToNull\");\r\n await userService.RetrievePass(email)\r\n .catch(error => commit('RetrievePassFailure', error))\r\n },\r\n async CheckIfNewPassGuidExists({commit}:{commit: Commit}, guid : string): Promise{\r\n commit(\"SetErrorToNull\");\r\n await userService.CheckIfNewPassGuidExists(guid)\r\n .catch(error => commit('RetrieveGuidFailure', error))\r\n },\r\n async SaveNewPass({commit}:{commit: Commit}, data : INewPass): Promise{\r\n await userService.SaveNewPass(data)\r\n .then(\r\n res => commit('SaveNewPassSucces', res),\r\n error => commit('SaveNewPassError', error))\r\n },\r\n async Authenticate({commit}:{commit: Commit}, data : AuthenticateRequest): Promise{\r\n await userService.Authenticate(data)\r\n .then(\r\n res => commit('AuthenticateSucces', res),\r\n error => commit('AuthenticateError', error))\r\n },\r\n Logout({commit}:{commit: Commit}){\r\n commit('Logout'); \r\n }\r\n },\r\n mutations: {\r\n SetLogged(state : userState, res : string){\r\n state.error = res;\r\n },\r\n SetErrorToNull(state: userState){\r\n state.error = null;\r\n },\r\n RetrieveGuidFailure(state: userState, error: string){\r\n state.error = error;\r\n },\r\n SignUpFailure(state: userState, error: string): void{\r\n state.error = error;\r\n },\r\n ConfirmEmailFailure(state: userState, error: string): void{\r\n state.error = error;\r\n },\r\n RetrievePassFailure(state: userState, error: string): void{\r\n state.error = error;\r\n },\r\n SaveNewPassSucces(state: userState, error: string): void{\r\n state.error = error;\r\n },\r\n SaveNewPassError(state: userState, error: string): void{\r\n state.error = error;\r\n },\r\n AuthenticateSucces(state: userState, data: IConnectedLogin): void{\r\n state.error = null;\r\n state.login = data;\r\n \r\n //keep info of logged login in local storage\r\n if (data.TOKEN)\r\n localStorage.setItem('user', JSON.stringify(data));\r\n },\r\n AuthenticateError(state: userState, error: string): void{\r\n state.login = null;\r\n state.error = error;\r\n },\r\n Logout(state : userState){\r\n state.login = null;\r\n localStorage.removeItem('user');\r\n }\r\n }\r\n}","import { apiErrorCheck } from '../../../BLL/helpers/handleResponse'\r\nimport { Config } from '../../Config'\r\nimport { authHeader } from '../../../BLL/helpers/auth-header'\r\n\r\nexport const dynamicService = {\r\n getDynamic,\r\n setDynamic,\r\n setDynamicFiles\r\n};\r\n\r\nasync function getDynamic(path: string) {\r\n const headers : HeadersInit = new Headers();\r\n headers.set('Content-Type', 'application/json')\r\n\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: authHeader(headers)\r\n };\r\n\r\n return apiErrorCheck(Config.Url() + path, requestOptions)\r\n}\r\n\r\nasync function setDynamic(path: string, obj: any) {\r\n const headers : HeadersInit = new Headers();\r\n headers.set('Content-Type', 'application/json')\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(obj),\r\n headers: authHeader(headers)\r\n };\r\n\r\n return apiErrorCheck(Config.Url() + path, requestOptions)\r\n}\r\n\r\nasync function setDynamicFiles(path:string, obj: any){\r\n const formData = new FormData();\r\n\r\n for(const prop in obj)\r\n formData.append(prop, obj[prop]);\r\n\r\n obj.TUMIFILES.forEach((i:File) => formData.append(i.name, i));\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: formData, \r\n headers: authHeader(new Headers()),\r\n } as RequestInit;\r\n\r\n return apiErrorCheck(Config.Url() + path, requestOptions)\r\n}","import { dynamicService } from '../../../DAL/Services/Dynamic/dynamic.service'\r\nimport { Commit } from \"vuex\"\r\n\r\nexport const dynamicStore = {\r\n namespaced: true,\r\n state: () => ({\r\n }) as any,\r\n actions: {\r\n async getDynamic({commit}:{commit: Commit}, path: string): Promise{\r\n await dynamicService.getDynamic(path)\r\n .then(\r\n data => commit('getDynamicSuccess', {data, path}),\r\n error => commit('getDynamicFailure', {error, path})\r\n ); \r\n },\r\n async setDynamic({commit}:{commit: Commit}, {pathSet, retour}:{pathSet:string, retour: any} ): Promise{\r\n if('TUMIFILES' in retour)\r\n await dynamicService.setDynamicFiles(pathSet, retour)\r\n .then(\r\n data => commit('setDynamicSuccess', {data, pathSet}),\r\n error => commit('setDynamicFailure', {error, pathSet})\r\n ); \r\n else\r\n await dynamicService.setDynamic(pathSet, retour)\r\n .then(\r\n data => commit('setDynamicSuccess', {data, pathSet}),\r\n error => commit('setDynamicFailure', {error, pathSet})\r\n ); \r\n },\r\n },\r\n mutations: {\r\n getDynamicSuccess(state: any, {data, path}:{path:string, data: any}){\r\n state[path] = data ;\r\n },\r\n getDynamicFailure(state: any, {error, path}:{path:string, error: any}) {\r\n state[path] = error;\r\n },\r\n setDynamicSuccess(state: any, {data, path}:{path:string, data: any}){\r\n state[path] = data ;\r\n },\r\n setDynamicFailure(state: any, {error, path}:{path:string, error: any}) {\r\n state[path] = error;\r\n }\r\n }\r\n}","import { apiErrorCheck } from \"../../../BLL/helpers/handleResponse\";\r\nimport { Config } from \"../../Config\"\r\nimport { authHeader } from \"../../../BLL/helpers/auth-header\";\r\n\r\nexport const portalService = {\r\n GetMenu\r\n}\r\n\r\nasync function GetMenu(idLogin: number): Promise{\r\n const headers : HeadersInit = new Headers(); \r\n headers.set('Content-Type', 'application/json')\r\n \r\n const requestOptions = { \r\n method: 'GET', \r\n headers: authHeader(headers),\r\n } as RequestInit;\r\n\r\n return apiErrorCheck(Config.Url() + `/Portal/GetMenu?idLogin=` + idLogin, requestOptions)\r\n}","import { Commit } from \"vuex\"\r\nimport { IState } from \"../../models/IState\";\r\nimport { portalService } from '../../../DAL/Services/Portal/portal.service'\r\nimport store from '../../store';\r\n\r\nexport interface portalState extends IState{\r\n menu: string[] | null,\r\n}\r\n\r\nexport const portalStore = {\r\n namespaced: true,\r\n state: () => ({\r\n }) as portalState,\r\n actions:{\r\n async GetMenu({commit}:{commit: Commit}): Promise{\r\n await portalService.GetMenu(store.getters['userStore/loggedId'])\r\n .then(\r\n data => commit('SuccesMenu', data),\r\n error => commit('SetError', error)) \r\n }\r\n },\r\n mutations: {\r\n SetError(state : portalState, error : string){\r\n state.error = error;\r\n },\r\n SuccesMenu(state: portalState, menu: string[]){\r\n state.menu = menu;\r\n },\r\n SetErrorToNull(state: portalState){\r\n state.error = null;\r\n }\r\n }\r\n}","import {createStore} from 'vuex'\nimport {userStore} from './User/user.store'\nimport {dynamicStore} from './Dynamic/dynamic.store'\nimport {portalStore} from './Portal/portal.store'\n\nexport default createStore({\n modules: {\n userStore : userStore,\n dynamicStore : dynamicStore,\n portalStore: portalStore\n }\n})\n","export interface IAuthenticateRequest {\r\n username: string;\r\n password: string;\r\n}\r\n\r\nexport class AuthenticateRequest implements IAuthenticateRequest{\r\n username: string;\r\n password: string;\r\n \r\n constructor(username : string, password : string) {\r\n this.username = username;\r\n this.password = password;\r\n }\r\n}\r\n","\nimport store from \"../../BLL/store\";\nimport { AuthenticateRequest } from \"../../BLL/models/AuthenticateRequest\";\nimport { defineComponent } from \"vue\";\n\nexport default defineComponent({\n name: \"Home\",\n data: function(){\n return{\n mail : \"\" as string,\n pass: \"\" as string,\n error: \"\" as string\n }\n },\n methods:{\n GoToPortal(){\n this.$router.push('/Portal');\n },\n Logout(){\n this.error = \"\";\n store.dispatch('userStore/Logout', new AuthenticateRequest(this.mail, this.pass));\n this.$forceUpdate();\n },\n async Login(){\n this.error = \"\";\n\n if(!this.mail || !this.pass)\n {\n this.error = \"All fields are required.\";\n return;\n } \n\n await store.dispatch('userStore/Authenticate', new AuthenticateRequest(this.mail, this.pass));\n\n const error = (store.state as any).userStore.error;\n\n if(error)\n {\n this.error = error;\n return;\n }\n\n this.LoggedIn();\n },\n async LoggedIn()\n {\n this.GoToPortal();\n }\n },\n computed:{\n Auth(){\n return store.getters['userStore/isLoggedIn'];\n }\n },\n created()\n {\n if(this.Auth)\n this.GoToPortal();\n }\n});\n","import { render } from \"./Home.vue?vue&type=template&id=27dcad83&scoped=true&ts=true\"\nimport script from \"./Home.vue?vue&type=script&lang=ts\"\nexport * from \"./Home.vue?vue&type=script&lang=ts\"\n\nimport \"./Home.vue?vue&type=style&index=0&id=27dcad83&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-27dcad83\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, toDisplayString as _toDisplayString, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"h1\", null, \"SignUp\", -1)\nconst _hoisted_2 = { class: \"mb-3\" }\nconst _hoisted_3 = { class: \"d-grid gap-2\" }\nconst _hoisted_4 = { class: \"text-warning\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: \"form-control\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.mail) = $event)),\n placeholder: \"Email\"\n }, null, 512), [\n [_vModelText, _ctx.mail]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"password\",\n class: \"form-control\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.pass) = $event)),\n placeholder: \"Password\"\n }, null, 512), [\n [_vModelText, _ctx.pass]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"password\",\n class: \"form-control\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.pass2) = $event)),\n placeholder: \"Repeat password\"\n }, null, 512), [\n [_vModelText, _ctx.pass2]\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", {\n type: \"button\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.SignUp && _ctx.SignUp(...args))),\n class: \"btn btn-primary\"\n }, \"Sign Up\")\n ]),\n _createElementVNode(\"h2\", _hoisted_4, _toDisplayString(_ctx.error), 1)\n ])\n ], 64))\n}","export interface ISubscribe {\r\n email: string;\r\n password: string;\r\n}\r\n\r\nexport class Subscribe implements ISubscribe{\r\n email: string;\r\n password: string;\r\n \r\n constructor(email: string, password: string) {\r\n this.email = email;\r\n this.password = password; \r\n }\r\n}","\nimport store from \"../../BLL/store\";\nimport { defineComponent } from \"vue\";\nimport { Subscribe } from \"../../BLL/models/Subscribe\";\n\nexport default defineComponent({\n name: \"SignUp\",\n data: function(){\n return{\n mail : \"\" as string,\n pass: \"\" as string,\n pass2: \"\" as string,\n error: \"\" as string\n }\n },\n methods:{\n async SignUp(){\n this.error = \"\";\n\n if(!this.mail || !this.pass || !this.pass2)\n {\n this.error = \"All fields are required.\";\n return;\n } \n\n if(this.pass != this.pass2)\n {\n this.error = \"Passwords don't match.\";\n return;\n }\n\n await store.dispatch('userStore/SignUp', new Subscribe(this.mail, this.pass));\n\n const error = (store.state as any).userStore.error;\n\n if(error)\n {\n this.error = error;\n return;\n }\n\n this.SignedUp();\n },\n async SignedUp()\n {\n //Logic when logged in\n this.error = \"Email sent!\";\n }\n }\n});\n","import { render } from \"./SignUp.vue?vue&type=template&id=5d28750c&ts=true\"\nimport script from \"./SignUp.vue?vue&type=script&lang=ts\"\nexport * from \"./SignUp.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", null, _toDisplayString(_ctx.error), 1))\n}","\nimport store from \"../../BLL/store\";\nimport { defineComponent } from \"vue\";\nimport { useRoute } from \"vue-router\";\n\nexport default defineComponent({\n name: \"ConfirmMail\",\n data: function(){\n return{\n error: \"\" as string\n }\n },\n methods:{\n async EmailConfirmed()\n {\n this.error = \"Email Confirmed!\";\n }\n },\n async created(){\n this.error = \"\";\n\n const guid = useRoute().params.id;\n await store.dispatch(\"userStore/ConfirmEmail\", guid);\n\n const error = (store.state as any).userStore.error\n\n if(error)\n {\n this.error = error;\n return;\n }\n\n this.EmailConfirmed();\n }\n});\n","import { render } from \"./ConfirmMail.vue?vue&type=template&id=1229b385&ts=true\"\nimport script from \"./ConfirmMail.vue?vue&type=script&lang=ts\"\nexport * from \"./ConfirmMail.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/Tumi/TumiLogo.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-44aa2682\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"TumiBackLogin\" }\nconst _hoisted_2 = { class: \"TumiLogin\" }\nconst _hoisted_3 = { class: \"TumiForm\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"LogoTumi\",\n class: \"mb-3\"\n}, null, -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h6\", { class: \"mb-3\" }, \"Enter your email and we will send you a link to set up a new password\", -1))\nconst _hoisted_6 = { class: \"d-grid gap-2\" }\nconst _hoisted_7 = { class: \"text-center mt-3\" }\nconst _hoisted_8 = {\n key: 0,\n class: \"spinner-border TumiSpinner text-light\",\n role: \"status\"\n}\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"visually-hidden\" }, \"Loading...\", -1))\nconst _hoisted_10 = [\n _hoisted_9\n]\nconst _hoisted_11 = { class: \"TumiErrorLogin\" }\nconst _hoisted_12 = { class: \"TumiTextWarning\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", null, [\n _hoisted_4,\n _createElementVNode(\"div\", null, [\n _hoisted_5,\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: \"form-control\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.mail) = $event)),\n placeholder: \"Email\"\n }, null, 512), [\n [_vModelText, _ctx.mail]\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", {\n type: \"button\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.SendMail && _ctx.SendMail(...args))),\n class: \"btn btn-primary\"\n }, \"Send email\")\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n (_ctx.waiting)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, _hoisted_10))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"p\", _hoisted_12, _toDisplayString(_ctx.error), 1)\n ])\n ])\n ])\n ])\n ])\n ]))\n}","\nimport store from \"../../BLL/store\";\nimport { defineComponent } from \"vue\";\n\nexport default defineComponent({\n name: \"Home\",\n data: function(){\n return{\n mail : \"\" as string,\n error: \"\" as string,\n waiting: false as boolean\n }\n },\n methods:{\n async SendMail(){\n this.error = \"\";\n\n if(!this.mail)\n {\n this.error = \"Email field is required\";\n return;\n } \n\n this.waiting = true;\n await store.dispatch('userStore/RetrievePass', this.mail);\n this.waiting = false;\n\n const error = (store.state as any).userStore.error;\n\n if(error)\n {\n this.error = error;\n return;\n }\n\n this.EmailSent();\n },\n async EmailSent()\n {\n //Logic when logged in\n this.error = \"Email sent! Check your mailbox.\";\n }\n }\n});\n","import { render } from \"./RetrievePass.vue?vue&type=template&id=44aa2682&scoped=true&ts=true\"\nimport script from \"./RetrievePass.vue?vue&type=script&lang=ts\"\nexport * from \"./RetrievePass.vue?vue&type=script&lang=ts\"\n\nimport \"./RetrievePass.vue?vue&type=style&index=0&id=44aa2682&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-44aa2682\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, Fragment as _Fragment } from \"vue\"\nimport _imports_0 from '@/assets/Tumi/TumiLogo.png'\n\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = {\n key: 1,\n class: \"TumiBackLogin\"\n}\nconst _hoisted_3 = { class: \"TumiLogin\" }\nconst _hoisted_4 = { class: \"TumiForm\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"LogoTumi\",\n class: \"mb-5\"\n}, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"h6\", { class: \"mb-5\" }, \"Choose a new password.\", -1)\nconst _hoisted_7 = { class: \"d-grid gap-2\" }\nconst _hoisted_8 = { class: \"TumiErrorLogin mt-3\" }\nconst _hoisted_9 = { class: \"TumiTextWarning\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (!_ctx.start || _ctx.criticalError)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _toDisplayString(_ctx.criticalError), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.start && !_ctx.criticalError)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, [\n _hoisted_5,\n _hoisted_6,\n _withDirectives(_createElementVNode(\"input\", {\n type: \"password\",\n class: \"form-control\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.pass) = $event)),\n placeholder: \"New password\"\n }, null, 512), [\n [_vModelText, _ctx.pass]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"password\",\n class: \"form-control\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.pass2) = $event)),\n placeholder: \"Repeat password\"\n }, null, 512), [\n [_vModelText, _ctx.pass2]\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"button\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.SetNewPass && _ctx.SetNewPass(...args))),\n class: \"btn btn-primary\"\n }, \"Set new pass\")\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.error), 1)\n ])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","export interface INewPass {\r\n guid: string;\r\n password: string;\r\n}\r\n\r\nexport class NewPass implements INewPass{\r\n guid: string;\r\n password: string;\r\n\r\n constructor(guid : string, password :string) {\r\n this.guid = guid;\r\n this.password = password;\r\n }\r\n}","\nimport store from \"../../BLL/store\";\nimport { defineComponent } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { NewPass } from \"../../BLL/models/NewPass\";\nimport router from \"@/router\";\n\nexport default defineComponent({\n name: \"Home\",\n data: function(){\n return{\n pass : \"\" as string,\n pass2 : \"\" as string,\n error: \"\" as string,\n criticalError : \"\" as string,\n start : false as boolean,\n guid : \"\" as string,\n }\n },\n methods:{\n async SetNewPass(){\n this.error = \"\";\n\n if(!this.pass || !this.pass2)\n {\n this.error = \"All fields are required\";\n return;\n } \n\n if(this.pass != this.pass2)\n {\n this.error = \"Passwords don't match\";\n return;\n }\n\n await store.dispatch('userStore/SaveNewPass', new NewPass(this.guid, this.pass));\n\n const error = (store.state as any).userStore.error;\n\n if(error)\n {\n this.error = error;\n return;\n }\n\n this.NewPassSet();\n },\n async NewPassSet()\n {\n //Logic when logged in\n this.error = \"New pass set.\";\n router.push('/');\n }\n },\n async created(){\n this.criticalError = \"\";\n\n this.guid = String(useRoute().params.id);\n await store.dispatch(\"userStore/CheckIfNewPassGuidExists\", this.guid);\n\n\n const criticalError = (store.state as any).userStore.error\n\n if(criticalError)\n {\n this.criticalError = criticalError;\n return;\n }\n\n this.start = true;\n }\n});\n","import { render } from \"./SetNewPass.vue?vue&type=template&id=3dc2baa9&ts=true\"\nimport script from \"./SetNewPass.vue?vue&type=script&lang=ts\"\nexport * from \"./SetNewPass.vue?vue&type=script&lang=ts\"\n\nimport \"./SetNewPass.vue?vue&type=style&index=0&id=3dc2baa9&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\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, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"TumiFond\",\n style: {\"background-color\":\"white\"}\n}\nconst _hoisted_2 = { class: \"container-fluid px-md-0 TumiFond\" }\nconst _hoisted_3 = { class: \"row justify-content-between gx-0 mx-md-0 TumiFond\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Menu = _resolveComponent(\"Menu\")!\n const _component_Options = _resolveComponent(\"Options\")!\n const _component_OptionsTC = _resolveComponent(\"OptionsTC\")!\n const _component_OptionsGilles = _resolveComponent(\"OptionsGilles\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_Menu, {\n name: _ctx.cli?.nom,\n menu: _ctx.cli?.menu,\n onLogout: _cache[0] || (_cache[0] = ($event: any) => (_ctx.Logout())),\n onChange: _ctx.OnChange\n }, null, 8, [\"name\", \"menu\", \"onChange\"]),\n (_ctx.cli?.nom == 'Renault De Vuyst')\n ? (_openBlock(), _createBlock(_component_Options, {\n key: 0,\n Cli: _ctx.cli,\n menuItem: _ctx.menuItem\n }, null, 8, [\"Cli\", \"menuItem\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.cli?.nom == 'ToniCoppers')\n ? (_openBlock(), _createBlock(_component_OptionsTC, {\n key: 1,\n Cli: _ctx.cli,\n menuItem: _ctx.menuItem\n }, null, 8, [\"Cli\", \"menuItem\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.cli?.nom == 'Gilles')\n ? (_openBlock(), _createBlock(_component_OptionsGilles, {\n key: 2,\n Cli: _ctx.cli,\n menuItem: _ctx.menuItem\n }, null, 8, [\"Cli\", \"menuItem\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n}","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"col-12 col-md-9 p-5\",\n style: {\"background-color\":\"#f2f2f2\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Content = _resolveComponent(\"Content\")!\n const _component_Afspraken = _resolveComponent(\"Afspraken\")!\n\n return (_ctx.Cli)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.menuItem == 0)\n ? (_openBlock(), _createBlock(_component_Content, {\n key: 0,\n PathGet: _ctx.Cli.get,\n PathSet: _ctx.Cli.set\n }, null, 8, [\"PathGet\", \"PathSet\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.menuItem == 1)\n ? (_openBlock(), _createBlock(_component_Afspraken, { key: 1 }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"spinner-border\",\n role: \"status\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"visually-hidden\" }, \"Loading...\", -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DynamicPage = _resolveComponent(\"DynamicPage\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (!_ctx.activeObject)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _hoisted_3))\n : _createCommentVNode(\"\", true),\n (_ctx.activeObject)\n ? (_openBlock(), _createBlock(_component_DynamicPage, {\n key: 1,\n objet: _ctx.activeObject,\n validate: _ctx.error,\n onAction: _ctx.Save,\n repeatPlaceholder: true,\n name: 'Content van de website'\n }, null, 8, [\"objet\", \"validate\", \"onAction\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createElementVNode as _createElementVNode, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"mb-3\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 0,\n class: \"TumiPlaceholder\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"TumiExplanation\"\n}\nconst _hoisted_5 = {\n key: 5,\n class: \"row mt-5 g-0 mb-5\"\n}\nconst _hoisted_6 = { class: \"col-3 ps-5\" }\nconst _hoisted_7 = { class: \"col-9\" }\nconst _hoisted_8 = {\n key: 6,\n class: \"row mt-5 g-0 mb-5\"\n}\nconst _hoisted_9 = { class: \"col-3 ps-5\" }\nconst _hoisted_10 = { class: \"col-9\" }\nconst _hoisted_11 = {\n key: 2,\n class: \"TumiError\"\n}\nconst _hoisted_12 = {\n key: 3,\n class: \"TumiPass\"\n}\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"clearfix\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DynamicComponent = _resolveComponent(\"DynamicComponent\")!\n const _component_DynamicTextArea = _resolveComponent(\"DynamicTextArea\")!\n const _component_DynamicFile = _resolveComponent(\"DynamicFile\")!\n const _component_Datepicker = _resolveComponent(\"Datepicker\")!\n const _component_DynamicSelect = _resolveComponent(\"DynamicSelect\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_ctx.name)\n ? (_openBlock(), _createElementBlock(\"h2\", _hoisted_1, _toDisplayString(_ctx.name), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.desc)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_2, _toDisplayString(_ctx.desc), 1))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList((_ctx.inputs as IControl[]), (inp) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: inp.name\n }, [\n (_ctx.repeatPlaceholder)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(inp.placeholder), 1))\n : _createCommentVNode(\"\", true),\n (inp.explanation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(inp.explanation), 1))\n : _createCommentVNode(\"\", true),\n (!inp.type)\n ? (_openBlock(), _createBlock(_component_DynamicComponent, {\n key: 2,\n inputModel: inp,\n ref_for: true,\n ref: inp.name\n }, null, 8, [\"inputModel\"]))\n : _createCommentVNode(\"\", true),\n (inp.type && inp.type == 'TextArea')\n ? (_openBlock(), _createBlock(_component_DynamicTextArea, {\n key: 3,\n inputModel: inp,\n ref_for: true,\n ref: inp.name\n }, null, 8, [\"inputModel\"]))\n : _createCommentVNode(\"\", true),\n (inp.type && inp.type == 'Files')\n ? (_openBlock(), _createBlock(_component_DynamicFile, {\n key: 4,\n inputModel: inp,\n ref_for: true,\n ref: inp.name,\n number: inp.fileCount,\n types: inp.fileTypes\n }, null, 8, [\"inputModel\", \"number\", \"types\"]))\n : _createCommentVNode(\"\", true),\n (inp.type == 'Date')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(inp.placeholder), 1),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_Datepicker, {\n modelValue: inp.value,\n \"onUpdate:modelValue\": ($event: any) => ((inp.value) = $event),\n autoApply: \"\",\n format: 'dd/MM/yyyy',\n enableTimePicker: false\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (inp.type == 'DropDown')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, _toDisplayString(inp.placeholder), 1),\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_DynamicSelect, {\n inputModel: inp,\n ref_for: true,\n ref: inp.name\n }, null, 8, [\"inputModel\"])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128)),\n (_ctx.error)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.error), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.pass)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_12, _toDisplayString(_ctx.pass), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"btn btn-primary mt-3\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.Submit && _ctx.Submit(...args)))\n }, \"Save\"),\n _hoisted_13\n ], 64))\n}","export const styleClass = \"form-control\" as string;\r\n\r\nexport interface IResult{\r\n errors:IError[];\r\n object:any\r\n}\r\n\r\nexport interface IError{\r\n control:string;\r\n error:string;\r\n}\r\n\r\nexport interface IControl{\r\n name: string;\r\n placeholder: string;\r\n styleClass: string;\r\n divClass: string;\r\n value: any;\r\n disabled: boolean;\r\n type : string | null;\r\n options: [] | null;\r\n explanation: string | null;\r\n fileTypes: string[] | null;\r\n fileCount: number|null;\r\n setStyle():void;\r\n}\r\n\r\nexport class Control implements IControl{\r\n name: string;\r\n placeholder: string;\r\n styleClass = \"\" as string;\r\n divClass: string;\r\n value: any;\r\n disabled: boolean;\r\n type : string | null;\r\n options: [] ;\r\n explanation: string | null;\r\n fileTypes: string[] | null;\r\n fileCount: number|null;\r\n\r\n constructor(\r\n name: string, \r\n placeholder:string, \r\n divClass:string,\r\n value: any,\r\n disabled: boolean,\r\n type: string|null,\r\n options: [],\r\n explanation: string | null,\r\n fileTypes: string[] | null,\r\n fileCount: number|null){\r\n\r\n this.name = name;\r\n this.placeholder = placeholder;\r\n this.divClass = divClass;\r\n this.value = value;\r\n this.disabled = disabled;\r\n this.type = type;\r\n this.options = options;\r\n this.explanation = explanation;\r\n this.setStyle();\r\n this.fileCount = fileCount;\r\n this.fileTypes = fileTypes;\r\n }\r\n\r\n setStyle(): void{\r\n this.styleClass = styleClass + \" \" +this.name;\r\n }\r\n}","import {getDate_forApi} from '../helpers/fonctions'\r\nimport {IControl, IResult, Control} from './Models/Models'\r\n\r\nconst TumiFields : string[] = [\"TUMINULLS\", \"TUMIPLACEHOLDERS\", \"TUMITYPES\", \"TUMIDISABLED\", \"TUMIDROPDOWNS\", \r\n\"TUMIEXPLANATIONS\", \"TUMIFILES\", \"TUMIFILECOUNT\", \"TUMIFILETYPE\"]\r\n\r\n\r\nexport function parseModel(obj: any):IControl[]{\r\n const array = [] as IControl[];\r\n let placeholders: {[key: string]: string} = {};\r\n let disabled: {[key: string]: string} = {};\r\n let types: {[key: string]: string} = {};\r\n let dropDowns : {[key: string]: []} = {};\r\n let explanations: {[key: string]: string} = {};\r\n let fileCount: {[key:string]: number} = {};\r\n let fileTypes: {[key:string]: []} = {};\r\n\r\n for(const prop in obj as any)\r\n {\r\n switch(prop)\r\n {\r\n case \"TUMIPLACEHOLDERS\":\r\n placeholders = obj[prop];\r\n break;\r\n \r\n case \"TUMIDISABLED\":\r\n disabled = obj[prop];\r\n break;\r\n \r\n case \"TUMITYPES\":\r\n types = obj[prop];\r\n break;\r\n\r\n case \"TUMIDROPDOWNS\":\r\n dropDowns = obj[prop];\r\n break;\r\n \r\n case \"TUMINULLS\":\r\n break;\r\n\r\n case \"TUMIEXPLANATIONS\":\r\n explanations = obj[prop];\r\n break;\r\n\r\n case \"TUMIFILECOUNT\":\r\n fileCount = obj[prop];\r\n break;\r\n\r\n case \"TUMIFILETYPE\":\r\n fileTypes = obj[prop];\r\n break;\r\n\r\n default:\r\n if(prop.split('_')[1] != \"ID\")\r\n array.push(\r\n new Control(\r\n prop,\r\n FirstLetterToUpper(prop),\r\n \"div\" + prop,\r\n obj[prop],\r\n false,\r\n null,\r\n [],\r\n null,\r\n null,\r\n null\r\n )\r\n )\r\n break;\r\n }\r\n }\r\n\r\n if(types != null)\r\n for(const nom in types)\r\n {\r\n const nouvelObj = array.find(i => i.name.toLowerCase() == nom.toLowerCase()) as IControl;\r\n\r\n if(nouvelObj)\r\n {\r\n nouvelObj.type = types[nom];\r\n\r\n if(fileCount){\r\n const count = fileCount[nom] ?? null;\r\n\r\n if(count)\r\n nouvelObj.fileCount = count;\r\n }\r\n\r\n if(fileTypes){\r\n const types = fileTypes[nom] ?? null;\r\n\r\n if(types)\r\n nouvelObj.fileTypes = types;\r\n }\r\n }\r\n }\r\n\r\n if(placeholders != null)\r\n for(const nom in placeholders)\r\n {\r\n const nouvelObj = array.find(i => i.name.toLowerCase() == nom.toLowerCase()) as IControl;\r\n\r\n if(nouvelObj)\r\n nouvelObj.placeholder = placeholders[nom];\r\n }\r\n\r\n\r\n\r\n if(explanations != null)\r\n for(const nom in explanations)\r\n {\r\n const nouvelObj = array.find(i => i.name.toLowerCase() == nom.toLowerCase()) as IControl;\r\n\r\n if(nouvelObj)\r\n nouvelObj.explanation = explanations[nom];\r\n }\r\n\r\n if(disabled != null)\r\n for(const nom in disabled)\r\n {\r\n const nouvelObj = array.find(i => i.name.toLowerCase() == nom.toLowerCase()) as IControl;\r\n\r\n if(nouvelObj){\r\n nouvelObj.styleClass = \" TumiDisabled\";\r\n nouvelObj.disabled = true;\r\n }\r\n }\r\n\r\n if(dropDowns != null)\r\n for(const nom in dropDowns)\r\n {\r\n dropDowns[nom];\r\n const nouvelObj = array.find(i => i.name.toLowerCase() == nom.toLowerCase()) as IControl;\r\n \r\n if(nouvelObj)\r\n nouvelObj.options = dropDowns[nom];\r\n }\r\n\r\n return array;\r\n}\r\n\r\nexport function GetFromView(viewRefs: any, obj: any, inputs: IControl[]): IResult{\r\n let types: {[key: string]: string} = {};\r\n let nulls : string[]|null = null;\r\n const res : IResult = {errors:[], object: obj}\r\n\r\n for(const prop in res.object)\r\n if(prop == \"TUMITYPES\")\r\n types = res.object[prop];\r\n\r\n for(const prop in res.object)\r\n if(prop == \"TUMINULLS\")\r\n nulls = res.object[prop];\r\n\r\n for(const prop in res.object)\r\n if(!TumiFields.includes(prop) && prop.split('_')[1] != \"ID\")\r\n {\r\n if(types[prop.toUpperCase()]){\r\n if(types[prop.toUpperCase()] == \"Date\")\r\n {\r\n if(inputs.find(i=>i.name == prop)?.value){\r\n const date = inputs.find(i=>i.name == prop)?.value\r\n \r\n if(date)\r\n res.object[prop] = getDate_forApi(new Date(date));\r\n }\r\n else{\r\n res.object[prop] = null;\r\n }\r\n }\r\n else if(types[prop.toUpperCase()] == \"Files\")\r\n {\r\n res.object[prop] = null;\r\n\r\n const newFiles = viewRefs[prop][0].files.map(function(v: { name: string; }){return v.name}) as string[];\r\n \r\n if(newFiles && newFiles.length > 0)\r\n res.object[prop] = newFiles.join(';') + \";\";\r\n \r\n const oldFiles = inputs.find(i=>i.name == prop)?.value\r\n\r\n if(oldFiles)\r\n {\r\n if(res.object[prop] == null)\r\n res.object[prop] = oldFiles;\r\n else\r\n res.object[prop] += oldFiles;\r\n }\r\n \r\n if(viewRefs[prop][0].files?.length > 0)\r\n res.object.TUMIFILES = viewRefs[prop][0].files;\r\n }\r\n else\r\n {\r\n if(inputs.find(i=>i.name == prop)?.value){\r\n res.object[prop] = inputs.find(i=>i.name == prop)?.value;\r\n }\r\n else{\r\n res.object[prop] = null;\r\n }\r\n }\r\n }\r\n else{\r\n res.object[prop] = viewRefs[prop][0].input.value;\r\n }\r\n }\r\n\r\n\r\n\r\n if(nulls != null)\r\n for(const prop in res.object)\r\n if(!TumiFields.includes(prop) && prop.split('_')[1] != \"ID\")\r\n if(!nulls.includes(prop))\r\n if(! res.object[prop] || res.object[prop] == \"\")\r\n res.errors.push({error: \"required\", control:prop});\r\n\r\n return res;\r\n}\r\n\r\nfunction FirstLetterToUpper(string: string){\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n}","import { vModelText as _vModelText, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"placeholder\", \"disabled\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass(_ctx.input.divClass)\n }, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass(_ctx.input.styleClass),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.input.value) = $event)),\n placeholder: _ctx.input.placeholder,\n disabled: _ctx.input.disabled\n }, null, 10, _hoisted_1), [\n [_vModelText, _ctx.input.value]\n ])\n ], 2))\n}","\r\nimport { IControl } from '../Models/Models';\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: 'DynamicComponent',\r\n props:{\r\n inputModel: {} as () => IControl\r\n },\r\n data: function(){\r\n return{\r\n input: this.inputModel as IControl\r\n }\r\n }\r\n});\r\n","import { render } from \"./DynamicComponent.vue?vue&type=template&id=94c08eb0&ts=true\"\nimport script from \"./DynamicComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./DynamicComponent.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, vModelSelect as _vModelSelect, withDirectives as _withDirectives, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"option\", { value: \"\" }, \"Please select one\", -1)\nconst _hoisted_2 = [\"value\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass(_ctx.input.divClass)\n }, [\n _withDirectives(_createElementVNode(\"select\", {\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.input.value) = $event)),\n class: \"form-control\"\n }, [\n _hoisted_1,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList((_ctx.input.options as any[]), (op) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n key: op,\n value: op.value\n }, _toDisplayString(op.option), 9, _hoisted_2))\n }), 128))\n ], 512), [\n [_vModelSelect, _ctx.input.value]\n ])\n ], 2))\n}","\r\nimport { IControl } from '../Models/Models';\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: 'DynamicSelect',\r\n props:['inputModel'],\r\n data: function(){\r\n return{\r\n input: this.inputModel as IControl\r\n }\r\n }\r\n});\r\n","import { render } from \"./DynamicSelect.vue?vue&type=template&id=2dfbabe3&ts=true\"\nimport script from \"./DynamicSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./DynamicSelect.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { vModelText as _vModelText, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"placeholder\", \"disabled\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.input)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(_ctx.input.divClass)\n }, [\n _withDirectives(_createElementVNode(\"textarea\", {\n class: _normalizeClass(_ctx.input.styleClass),\n placeholder: _ctx.input.placeholder,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.input.value) = $event)),\n disabled: _ctx.input.disabled\n }, null, 10, _hoisted_1), [\n [_vModelText, _ctx.input.value]\n ])\n ], 2))\n : _createCommentVNode(\"\", true)\n}","\r\nimport { IControl } from '../Models/Models';\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: 'DynamicComponent',\r\n props:{\r\n inputModel: {} as () => IControl\r\n },\r\n data: function(){\r\n return{\r\n input: this.inputModel as IControl\r\n }\r\n }\r\n});\r\n","import { render } from \"./DynamicTextArea.vue?vue&type=template&id=e30478ee&ts=true\"\nimport script from \"./DynamicTextArea.vue?vue&type=script&lang=ts\"\nexport * from \"./DynamicTextArea.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, TransitionGroup as _TransitionGroup, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/Tumi/Arrow.png'\nimport _imports_1 from '@/assets/Tumi/Cloud.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-057621b9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"p-3\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, \" Add files \", -1))\nconst _hoisted_3 = { class: \"TumiBlockImages row align-items-center\" }\nconst _hoisted_4 = [\"src\", \"alt\"]\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"TumiArrow\",\n src: _imports_0\n}, null, -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = [\"src\", \"alt\"]\nconst _hoisted_10 = [\"onClick\"]\nconst _hoisted_11 = { class: \"col-10\" }\nconst _hoisted_12 = { class: \"col-1 text-end\" }\nconst _hoisted_13 = [\"onClick\"]\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"TumiCloud\",\n src: _imports_1\n}, null, -1))\nconst _hoisted_15 = [\n _hoisted_14\n]\nconst _hoisted_16 = { class: \"col-1 text-end\" }\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = { class: \"col-10\" }\nconst _hoisted_19 = { class: \"col-2 text-end\" }\nconst _hoisted_20 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_TransitionGroup, { name: \"image\" }, {\n default: _withCtx(() => [\n (!_ctx.numberAdmitted || (_ctx.newPictures.length + _ctx.newFiles.length + _ctx.oldPictures.length + _ctx.oldFiles.length) < _ctx.numberAdmitted)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"dropzone mt-2 rounded\", {hightlight: _ctx.hightlight}]),\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.openFileSelection && _ctx.openFileSelection(...args))),\n onDragover: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.onDragOver && _ctx.onDragOver(...args))),\n onDragleave: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.onDragLeave && _ctx.onDragLeave(...args))),\n onDrop: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.onDrop && _ctx.onDrop(...args)))\n }, [\n _hoisted_2,\n _createElementVNode(\"input\", {\n ref: \"fileInput\",\n class: \"file-input\",\n type: \"file\",\n multiple: \"\",\n onChange: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.onFileChanged && _ctx.onFileChanged(...args)))\n }, null, 544)\n ], 34))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_TransitionGroup, { name: \"image\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.oldPictures, (oldP) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: oldP,\n class: \"col-3 TumiPicture mt-3\"\n }, [\n _createElementVNode(\"img\", {\n src: _ctx.GetPicture(oldP),\n class: \"img-fluid\",\n alt: oldP\n }, null, 8, _hoisted_4),\n _createElementVNode(\"div\", {\n class: \"TumiClose TumiDownload\",\n onClick: ($event: any) => (_ctx.Download(oldP))\n }, _hoisted_7, 8, _hoisted_5),\n _createElementVNode(\"div\", {\n class: \"TumiClose\",\n onClick: ($event: any) => (_ctx.DeleteOldPicture(oldP))\n }, \"x\", 8, _hoisted_8)\n ]))\n }), 128))\n ]),\n _: 1\n }),\n _createVNode(_TransitionGroup, { name: \"image\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.newPictures, (newP) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: newP.name,\n class: \"col-3 TumiPicture mt-3\"\n }, [\n _createElementVNode(\"img\", {\n src: newP.file,\n class: \"img-fluid\",\n alt: newP.name\n }, null, 8, _hoisted_9),\n _createElementVNode(\"div\", {\n class: \"TumiClose\",\n onClick: ($event: any) => (_ctx.DeleteNewPicture(newP.name))\n }, \"x\", 8, _hoisted_10)\n ]))\n }), 128))\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"ul\", null, [\n _createVNode(_TransitionGroup, { name: \"image\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.oldFiles, (oldF) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: oldF,\n class: \"row align-items-center\"\n }, [\n _createElementVNode(\"div\", _hoisted_11, _toDisplayString(oldF), 1),\n _createElementVNode(\"div\", _hoisted_12, [\n oldF\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"btn btn-primary\",\n onClick: ($event: any) => (_ctx.Download(oldF))\n }, _hoisted_15, 8, _hoisted_13))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"button\", {\n class: \"btn btn-primary\",\n onClick: ($event: any) => (_ctx.DeleteOldFile(oldF))\n }, \"Delete\", 8, _hoisted_17)\n ])\n ]))\n }), 128))\n ]),\n _: 1\n }),\n _createVNode(_TransitionGroup, { name: \"image\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.newFiles, (newF) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: newF,\n class: \"row align-items-center\"\n }, [\n _createElementVNode(\"div\", _hoisted_18, _toDisplayString(newF), 1),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"button\", {\n class: \"btn btn-primary\",\n onClick: ($event: any) => (_ctx.DeleteNewFile(newF))\n }, \"Delete\", 8, _hoisted_20)\n ])\n ]))\n }), 128))\n ]),\n _: 1\n })\n ])\n ])\n ]))\n}","\r\nimport { defineComponent } from 'vue';\r\nimport { IControl } from '../Models/Models';\r\nimport { Config } from '../../../DAL/Config';\r\nimport { isPicture } from '../../helpers/fonctions'\r\nimport { isExtension } from '../../helpers/fonctions'\r\n\r\nexport default defineComponent({ \r\n name: 'FilesForm',\r\n emits:['CloseForm'],\r\n props:['inputModel','number','types'],\r\n data: function(){\r\n return{\r\n input: this.inputModel as IControl,\r\n hightlight : false,\r\n files: [] as File[],\r\n errorFiles: \"\" as string,\r\n\r\n newPictures: [] as {name:string, file:string}[],\r\n newFiles: [] as string[],\r\n oldPictures: [] as string[],\r\n oldFiles: [] as string[],\r\n path: \"/Common/GetFile?filename=\" as string,\r\n\r\n numberAdmitted: this.number as number|null,\r\n typesAdmitted: this.types as string[]|null\r\n }\r\n },\r\n methods:{\r\n IsPic(name:string){\r\n return isPicture(name);\r\n },\r\n GetPicture(name:string){\r\n return Config.Url() + this.path + name;\r\n },\r\n Download(name: string){\r\n if(name.includes('/'))\r\n window.open(Config.Url() + this.path + name);\r\n else{\r\n const nomsAvecFolder = this.input.value.split(\";\");\r\n\r\n nomsAvecFolder.forEach((element:string) => {\r\n if(element.split(\"/\")[1] == name)\r\n window.open(Config.Url() + this.path + element);\r\n });\r\n }\r\n },\r\n DeleteOldPicture(name: string){\r\n this.DeleteValue(name);\r\n this.oldPictures = this.oldPictures.filter((i: string) => i != name);\r\n },\r\n DeleteOldFile(name: string){\r\n this.DeleteValue(name);\r\n //refresh view\r\n this.oldFiles = this.oldFiles.filter((i: string)=>i != name);\r\n },\r\n DeleteValue(name: string){\r\n //get list of names\r\n const noms = this.input.value.split(';');\r\n //getout name we want to delete\r\n const nomsSplit = \r\n name.includes('/') ? \r\n noms.filter((i:string) => i != name):\r\n noms.filter((i:string) => i.split('/')[1] != name);\r\n \r\n //if something is left, rejoin the names\r\n this.input.value = nomsSplit.length > 0 ? nomsSplit.join(';') : null;\r\n },\r\n DeleteNewPicture(name:string){\r\n this.DeleteFile(name);\r\n this.newPictures = this.newPictures.filter((i: {name:string, file:string})=>i.name != name);\r\n },\r\n DeleteNewFile(name:string){\r\n this.DeleteFile(name);\r\n this.newFiles.splice(this.newFiles.indexOf(name),1);\r\n },\r\n DeleteFile(name: string){\r\n for(var x = 0; xi.name));\r\n nomsFichiersExistants.push(...this.oldPictures.map((i: string) => i.split(\"/\")[1]));\r\n\r\n result.forEach((element:File) => {\r\n if(nomsFichiersExistants.includes(element.name))\r\n stop = true;\r\n });\r\n\r\n if(stop){\r\n alert(\"One of the files you've tried to upload already exist in the uploaded files. \" + \r\n \"Delete the uploaded file or change the name of the file you're trying to upload.\");\r\n return;\r\n }\r\n\r\n this.files.push(...result);\r\n this.RefreshFileNames();\r\n },\r\n onDrop(event: DragEvent): void {\r\n event.preventDefault();\r\n const files = event.dataTransfer?.files;\r\n if(files)\r\n this.pushFiles(files);\r\n \r\n this.hightlight = false;\r\n },\r\n onFileChanged(event: any) {\r\n this.pushFiles(event.target.files);\r\n (this.$refs.fileInput as HTMLInputElement).value = \"\";\r\n },\r\n RefreshFileNames(){\r\n\r\n /////////////\r\n //OLD FILES//\r\n /////////////\r\n\r\n //if we have something, split it in names\r\n const noms = this.input.value ? this.input.value.split(\";\") : [];\r\n\r\n this.oldPictures = [];\r\n this.oldFiles = [];\r\n\r\n //foreach name separate the picture from the files\r\n noms.forEach((element: string) => {\r\n if(this.IsPic(element))\r\n this.oldPictures.push(element);\r\n else\r\n this.oldFiles.push(element.split('/')[1]);\r\n }); \r\n\r\n /////////////\r\n //NEW FILES//\r\n /////////////\r\n\r\n this.newFiles = [];\r\n this.newPictures = [];\r\n\r\n //foreah file separate the pictures from the files\r\n this.files.forEach((element :File) => {\r\n if(this.IsPic(element.name)){\r\n \r\n //save the name and content of the picture in a list\r\n const reader = new FileReader();\r\n \r\n reader.addEventListener(\"load\", () => { \r\n var name = element.name;\r\n var file = reader.result as string\r\n this.newPictures.push({name, file})\r\n }, false);\r\n \r\n reader.readAsDataURL(element);\r\n }\r\n else\r\n this.newFiles.push(element.name); \r\n });\r\n }\r\n },\r\n created(){\r\n this.RefreshFileNames();\r\n }\r\n});\r\n\r\n\r\n","import { render } from \"./DynamicFile.vue?vue&type=template&id=057621b9&scoped=true&ts=true\"\nimport script from \"./DynamicFile.vue?vue&type=script&lang=ts\"\nexport * from \"./DynamicFile.vue?vue&type=script&lang=ts\"\n\nimport \"./DynamicFile.vue?vue&type=style&index=0&id=057621b9&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-057621b9\"]])\n\nexport default __exports__","\r\nimport {parseModel} from '../ModelParser'\r\nimport {GetFromView} from '../ModelParser'\r\n\r\nimport DynamicComponent from './DynamicComponent.vue'\r\nimport Datepicker from '@vuepic/vue-datepicker';\r\nimport DynamicSelect from './DynamicSelect.vue'\r\nimport DynamicTextArea from './DynamicTextArea.vue'\r\nimport DynamicFile from './DynamicFile.vue'\r\n\r\nimport '@vuepic/vue-datepicker/dist/main.css';\r\nimport { IControl, IResult } from '../Models/Models';\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: 'DynamicPage',\r\n components:{\r\n DynamicComponent,\r\n Datepicker,\r\n DynamicSelect,\r\n DynamicTextArea,\r\n DynamicFile\r\n },\r\n props:[ \r\n 'objet',\r\n 'validate',\r\n 'pass',\r\n 'name',\r\n 'desc',\r\n 'repeatPlaceholder'\r\n ],\r\n emits:['action'],\r\n data: function(){\r\n return{\r\n inputs : null as IControl[]|null,\r\n error: this.validate\r\n }\r\n },\r\n methods:{\r\n Submit(){\r\n if(this.inputs)\r\n {\r\n //we put the style off all controls back to default\r\n this.inputs.forEach(i => i.setStyle());\r\n //we remove the error message\r\n this.error = \"\";\r\n\r\n //we collect the info of the view (error, object)\r\n //by passing:\r\n // -> the inputs\r\n // -> our object in original state\r\n // -> the inputs (original object parsed in inputs)\r\n const res = GetFromView(this.$refs, this.objet, this.inputs) as IResult;\r\n\r\n //if we have an error, we add an error class to every control who is in error\r\n if(res.errors)\r\n res.errors.forEach(i => this.ClasseErreur(i.control));\r\n\r\n //we emit the action\r\n this.$emit('action', res);\r\n }\r\n },\r\n ClasseErreur(nomControl: string){\r\n const ctrl = this.inputs?.find(i => i.name == nomControl) as IControl;\r\n \r\n if(ctrl)\r\n ctrl.styleClass = ctrl.styleClass + \" TumiInputError\";\r\n }\r\n },\r\n created(){\r\n this.inputs = parseModel(this.objet);\r\n },\r\n watch:{\r\n objet(value: any){\r\n if(value)\r\n this.inputs = parseModel(value);\r\n },\r\n validate(value: string){\r\n this.error = value;\r\n }\r\n }\r\n});\r\n","import { render } from \"./DynamicPage.vue?vue&type=template&id=a7615168&ts=true\"\nimport script from \"./DynamicPage.vue?vue&type=script&lang=ts\"\nexport * from \"./DynamicPage.vue?vue&type=script&lang=ts\"\n\nimport \"./DynamicPage.vue?vue&type=style&index=0&id=a7615168&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent } from \"vue\";\nimport store from \"../../../../BLL/store\";\nimport DynamicPage from '../../../../BLL/Tumi/Components/DynamicPage.vue'\nimport { IResult } from \"../../../../BLL/Tumi/Models/Models\";\n\nexport default defineComponent({\n name: \"Content\",\n props:{\n PathGet: {} as () => string | null,\n PathSet: {} as () => string | null\n },\n components:{\n DynamicPage\n },\n data: function(){\n return{\n activeObject : null as any,\n error: \"\" as string\n }\n },\n methods:{\n async Save(obj: IResult){\n if(obj.errors.length > 0){\n const er = obj.errors.find(i=>i.error == \"required\");\n\n if(er)\n this.error = \"Alle velden zijn verplicht.\";\n return;\n }\n\n if(this.PathSet){\n this.activeObject = null;\n const pathSet = this.PathSet; \n const retour = obj.object;\n await store.dispatch('dynamicStore/setDynamic', {pathSet,retour});\n this.LoadObject();\n }\n },\n async LoadObject(){\n if(this.PathGet){\n await store.dispatch('dynamicStore/getDynamic',this.PathGet);\n this.activeObject = (store.state as any).dynamicStore[this.PathGet];\n }\n }\n },\n created(){\n this.LoadObject();\n }\n});\n","import { render } from \"./Content.vue?vue&type=template&id=26c140d1&ts=true\"\nimport script from \"./Content.vue?vue&type=script&lang=ts\"\nexport * from \"./Content.vue?vue&type=script&lang=ts\"\n\nimport \"./Content.vue?vue&type=style&index=0&id=26c140d1&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"spinner-border\",\n role: \"status\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"visually-hidden\" }, \"Loading...\", -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mb-3\" }, \"Afspraken\", -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"mb-3\" }, \"Klik op een afspraak om de opmerking/uit te voeren werken te laten verschijnen\", -1)\nconst _hoisted_7 = { class: \"mt-5\" }\nconst _hoisted_8 = /*#__PURE__*/_createStaticVNode(\"
  • Datum
    Voorn.
    Naam
    Email
    Telefoon
    Nummerplaat
  • \", 1)\nconst _hoisted_9 = [\"onClick\"]\nconst _hoisted_10 = { class: \"col-2\" }\nconst _hoisted_11 = { class: \"col-1\" }\nconst _hoisted_12 = { class: \"col-2\" }\nconst _hoisted_13 = { class: \"col-3\" }\nconst _hoisted_14 = { class: \"col-2\" }\nconst _hoisted_15 = { class: \"col-2\" }\nconst _hoisted_16 = {\n key: 0,\n class: \"row\",\n style: {\"background-color\":\"lightgray\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (!_ctx.Afspraken)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _hoisted_3))\n : _createCommentVNode(\"\", true),\n (_ctx.Afspraken)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _hoisted_5,\n _hoisted_6,\n _createElementVNode(\"button\", {\n class: \"btn btn-primary\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.Download && _ctx.Download(...args)))\n }, \"Download de afspraken in excel\"),\n _createElementVNode(\"ul\", _hoisted_7, [\n _hoisted_8,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.Afspraken, (afspraak) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: afspraak.AFSPRAAK_ID\n }, [\n _createElementVNode(\"li\", {\n class: \"row\",\n onClick: ($event: any) => (_ctx.Ouvrir(afspraak.AFSPRAAK_ID))\n }, [\n _createElementVNode(\"div\", _hoisted_10, _toDisplayString(_ctx.DateFormat(afspraak.AFSPRAAK_UPDDAT)), 1),\n _createElementVNode(\"div\", _hoisted_11, _toDisplayString(afspraak.AFSPRAAK_VOORNAAM), 1),\n _createElementVNode(\"div\", _hoisted_12, _toDisplayString(afspraak.AFSPRAAK_NAAM), 1),\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString(afspraak.AFSPRAAK_EMAIL), 1),\n _createElementVNode(\"div\", _hoisted_14, _toDisplayString(afspraak.AFSPRAAK_TELEFOON), 1),\n _createElementVNode(\"div\", _hoisted_15, _toDisplayString(afspraak.AFSPRAAK_NUMMERPLAAT), 1)\n ], 8, _hoisted_9),\n _createVNode(_Transition, { name: \"afspraak\" }, {\n default: _withCtx(() => [\n (afspraak.AFSPRAAK_ID == _ctx.open)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_16, _toDisplayString(afspraak.AFSPRAAK_OPMERKING), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1024)\n ], 64))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","\nimport store from '../../../../BLL/store/index'\nimport { defineComponent } from \"vue\";\nimport {IAfspraak} from \"../../../../BLL/models/Renault/Afspraak\"\nimport {Config} from \"../../../../DAL/Config\"\nimport {getDate_ddmmyyyy} from \"../../../../BLL/helpers/fonctions\"\n\nexport default defineComponent({\n name: \"Afspraken\",\n data: function(){\n return{\n Afspraken:null as IAfspraak[]|null,\n path: '/Portal/GetAfspraken' as string,\n open: 0 as number\n }\n },\n methods:{\n DateFormat(valeur:string): string{\n return getDate_ddmmyyyy(new Date(valeur));\n },\n async Download(){\n await store.dispatch('dynamicStore/getDynamic', '/Common/CreateDownloadCode')\n const code = (store.state as any).dynamicStore['/Common/CreateDownloadCode'];\n window.open(Config.Url() + \"/Portal/GetExcelAfspraken?code=\" + code);\n },\n async LoadAfspraken(){\n await store.dispatch('dynamicStore/getDynamic', this.path);\n this.Afspraken = (store.state as any).dynamicStore[this.path];\n },\n Ouvrir(id: number){\n if(this.open == id){\n this.open = 0\n return;\n }\n\n this.open = id;\n }\n },\n async created(){\n this.LoadAfspraken();\n }\n});\n","import { render } from \"./Afspraken.vue?vue&type=template&id=3b67952e&ts=true\"\nimport script from \"./Afspraken.vue?vue&type=script&lang=ts\"\nexport * from \"./Afspraken.vue?vue&type=script&lang=ts\"\n\nimport \"./Afspraken.vue?vue&type=style&index=0&id=3b67952e&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent } from \"vue\";\nimport { IClient } from \"../../../../config\"\nimport Content from \"./Content.vue\"\nimport Afspraken from \"./Afspraken.vue\"\n\nexport default defineComponent({\n name: \"Options\",\n components:{\n Content,\n Afspraken\n },\n props:{\n Cli: {} as () => IClient | null,\n menuItem: {} as () => number\n }\n});\n","import { render } from \"./Options.vue?vue&type=template&id=14387d1e&ts=true\"\nimport script from \"./Options.vue?vue&type=script&lang=ts\"\nexport * from \"./Options.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"col-12 col-md-9 p-5\",\n style: {\"background-color\":\"#f2f2f2\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Data = _resolveComponent(\"Data\")!\n\n return (_ctx.Cli)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.menuItem == 0)\n ? (_openBlock(), _createBlock(_component_Data, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}","import { createElementVNode as _createElementVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mb-3\" }, \"Data website\", -1)\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createElementVNode(\"button\", {\n class: \"btn btn-primary mb-3\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.DownloadBerichten && _ctx.DownloadBerichten(...args)))\n }, \"Download de berichten in excel\"),\n _hoisted_2,\n _createElementVNode(\"button\", {\n class: \"btn btn-primary\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.DownloadNews && _ctx.DownloadNews(...args)))\n }, \"Download de inschrijvingen aan de newsletter in excel\")\n ], 64))\n}","\nimport store from \"../../../../BLL/store\";\nimport { defineComponent } from \"vue\";\nimport {Config} from \"../../../../DAL/Config\"\n\nexport default defineComponent({\n name: \"Afspraken\",\n data: function(){\n return{\n path: '/Portal/GetAfspraken' as string,\n }\n },\n methods:{\n async DownloadBerichten(){\n await store.dispatch('dynamicStore/getDynamic', '/Common/CreateDownloadCode')\n const code = (store.state as any).dynamicStore['/Common/CreateDownloadCode'];\n window.open(Config.Url() + \"/PortalTC/GetExcelMessages?code=\" + code);\n },\n async DownloadNews(){\n await store.dispatch('dynamicStore/getDynamic', '/Common/CreateDownloadCode')\n const code = (store.state as any).dynamicStore['/Common/CreateDownloadCode'];\n window.open(Config.Url() + \"/PortalTC/GetExcelNews?code=\" + code);\n }\n }\n});\n","import { render } from \"./Data.vue?vue&type=template&id=3e69699e&ts=true\"\nimport script from \"./Data.vue?vue&type=script&lang=ts\"\nexport * from \"./Data.vue?vue&type=script&lang=ts\"\n\nimport \"./Data.vue?vue&type=style&index=0&id=3e69699e&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent } from \"vue\";\nimport { IClient } from \"../../../../config\"\nimport Data from \"./Data.vue\"\n\nexport default defineComponent({\n name: \"Options\",\n components:{\n Data\n },\n props:{\n Cli: {} as () => IClient | null,\n menuItem: {} as () => number\n }\n});\n","import { render } from \"./Options.vue?vue&type=template&id=09ff4cbe&ts=true\"\nimport script from \"./Options.vue?vue&type=script&lang=ts\"\nexport * from \"./Options.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"col-12 col-md-9 p-5\",\n style: {\"background-color\":\"#f2f2f2\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Content = _resolveComponent(\"Content\")!\n\n return (_ctx.Cli)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.menuItem == 0)\n ? (_openBlock(), _createBlock(_component_Content, {\n key: 0,\n PathGet: _ctx.Cli.get,\n PathSet: _ctx.Cli.set\n }, null, 8, [\"PathGet\", \"PathSet\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"spinner-border\",\n role: \"status\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"visually-hidden\" }, \"Loading...\", -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DynamicPage = _resolveComponent(\"DynamicPage\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (!_ctx.activeObject)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _hoisted_3))\n : _createCommentVNode(\"\", true),\n (_ctx.activeObject)\n ? (_openBlock(), _createBlock(_component_DynamicPage, {\n key: 1,\n objet: _ctx.activeObject,\n validate: _ctx.error,\n onAction: _ctx.Save,\n repeatPlaceholder: true,\n name: 'Chargement des images'\n }, null, 8, [\"objet\", \"validate\", \"onAction\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","\nimport { defineComponent } from \"vue\";\nimport store from \"../../../../BLL/store\";\nimport DynamicPage from '../../../../BLL/Tumi/Components/DynamicPage.vue'\nimport { IResult } from \"../../../../BLL/Tumi/Models/Models\";\n\nexport default defineComponent({\n name: \"Content\",\n props:{\n PathGet: {} as () => string | null,\n PathSet: {} as () => string | null\n },\n components:{\n DynamicPage\n },\n data: function(){\n return{\n activeObject : null as any,\n error: \"\" as string\n }\n },\n methods:{\n async Save(obj: IResult){\n if(obj.errors.length > 0){\n const er = obj.errors.find(i=>i.error == \"required\");\n\n if(er)\n this.error = \"Alle velden zijn verplicht.\";\n return;\n }\n\n if(this.PathSet){\n this.activeObject = null;\n const pathSet = this.PathSet; \n const retour = obj.object;\n await store.dispatch('dynamicStore/setDynamic', {pathSet,retour});\n this.LoadObject();\n }\n },\n async LoadObject(){\n if(this.PathGet){\n await store.dispatch('dynamicStore/getDynamic',this.PathGet);\n this.activeObject = (store.state as any).dynamicStore[this.PathGet];\n }\n }\n },\n created(){\n this.LoadObject();\n }\n});\n","import { render } from \"./Content.vue?vue&type=template&id=1e13654c&ts=true\"\nimport script from \"./Content.vue?vue&type=script&lang=ts\"\nexport * from \"./Content.vue?vue&type=script&lang=ts\"\n\nimport \"./Content.vue?vue&type=style&index=0&id=1e13654c&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent } from \"vue\";\nimport { IClient } from \"../../../../config\"\nimport Content from \"./Content.vue\"\n\nexport default defineComponent({\n name: \"OptionsGilles\",\n components:{\n Content\n },\n props:{\n Cli: {} as () => IClient | null,\n menuItem: {} as () => number\n }\n});\n","import { render } from \"./OptionsGilles.vue?vue&type=template&id=3ff8ec56&ts=true\"\nimport script from \"./OptionsGilles.vue?vue&type=script&lang=ts\"\nexport * from \"./OptionsGilles.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export interface IClient{\r\n id: number[];\r\n nom: string;\r\n menu: string[],\r\n get: string | null,\r\n set: string | null\r\n}\r\n\r\nexport const Ids = [\r\n {\"id\":[3], \"nom\":\"Renault De Vuyst\", \"menu\": [\"Content website\",\"Afspraken\"], get: \"/Portal/GetContentRenault\", set: \"/Portal/SetContentView\"},\r\n {\"id\":[4], \"nom\":\"ToniCoppers\", \"menu\": [\"Data Downloaden\"], get: null, set: null},\r\n {\"id\":[1], \"nom\":\"Gilles\", \"menu\": [\"Promotions\"], get: \"/PortalGilles/GetContentGilles\", set: \"/PortalGilles/SetContentView\"}\r\n] as IClient[]","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"col-12 col-md-2 position-md-sticky align-items-center vh-md-90 mx-auto\",\n style: {\"top\":\"0\"}\n}\nconst _hoisted_2 = { class: \"mt-3 mb-3\" }\nconst _hoisted_3 = { class: \"d-grid gap-2\" }\nconst _hoisted_4 = { class: \"list-group list-group-flush mt-3\" }\nconst _hoisted_5 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h2\", _hoisted_2, _toDisplayString(_ctx.name), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", {\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('Logout'))),\n class: \"btn btn-primary\"\n }, \"Logout\")\n ]),\n _createElementVNode(\"ul\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.menu, (men) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: men,\n onClick: ($event: any) => (_ctx.$emit('change', men))\n }, _toDisplayString(men), 9, _hoisted_5))\n }), 128))\n ])\n ]))\n}","\nimport { defineComponent } from \"vue\";\n\nexport default defineComponent({\n name: \"Menu\",\n props:['name', 'menu'],\n data: function(){\n return{\n nom: null as string|null\n }\n },\n});\n","import { render } from \"./Menu.vue?vue&type=template&id=d4b8d50e&ts=true\"\nimport script from \"./Menu.vue?vue&type=script&lang=ts\"\nexport * from \"./Menu.vue?vue&type=script&lang=ts\"\n\nimport \"./Menu.vue?vue&type=style&index=0&id=d4b8d50e&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport {defineComponent} from \"vue\";\nimport store from \"../../../BLL/store\";\n\nimport Options from '../../components/Portal/Renault/Options.vue'\nimport OptionsTC from '../../components/Portal/TC/Options.vue'\nimport OptionsGilles from '../../components/Portal/Gilles/OptionsGilles.vue'\nimport {Ids} from '../../../config'\nimport {IClient} from '../../../config'\nimport Menu from \"../../components/Portal/Menu.vue\"\n\nexport default defineComponent({\n name: \"Home\",\n components:{\n Menu,\n Options,\n OptionsTC,\n OptionsGilles\n },\n data: function(){\n return{\n cli: {} as IClient | null,\n menuItem: 0 as number\n }\n },\n methods:{\n OnChange(item: string){\n if(this.cli)\n this.menuItem = this.cli.menu.indexOf(item);\n },\n async Logout(){\n await store.dispatch('userStore/Logout');\n this.$router.push('/');\n }\n },\n async created(){\n this.cli = Ids.find(i=>i.id.includes(store.getters['userStore/loggedId'])) ?? null;\n }\n});\n","import { render } from \"./Portal.vue?vue&type=template&id=6b46bedd&ts=true\"\nimport script from \"./Portal.vue?vue&type=script&lang=ts\"\nexport * from \"./Portal.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createStaticVNode as _createStaticVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\nimport _imports_0 from '@/assets/logo.png'\nimport _imports_1 from '@/assets/scroll.gif'\nimport _imports_2 from '@/assets/IconApp.png'\nimport _imports_3 from '@/assets/IconWeb.png'\nimport _imports_4 from '@/assets/IconAd.png'\n\n\nconst _hoisted_1 = { class: \"navbar fixed-top navbar-expand-lg navbar-light bg-white\" }\nconst _hoisted_2 = { class: \"container-fluid\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"navbar-brand\",\n href: \"#\"\n}, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n width: \"100\",\n class: \"img-fluid\",\n alt: \"LogoTumi\"\n })\n], -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"button\", {\n class: \"navbar-toggler\",\n type: \"button\",\n \"data-bs-toggle\": \"collapse\",\n \"data-bs-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\"\n}, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"navbar-toggler-icon\" })\n], -1)\nconst _hoisted_5 = {\n class: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\"\n}\nconst _hoisted_6 = { class: \"navbar-nav ms-auto mb-2 mb-lg-0\" }\nconst _hoisted_7 = { class: \"nav-item active\" }\nconst _hoisted_8 = { class: \"nav-item active\" }\nconst _hoisted_9 = { class: \"nav-item\" }\nconst _hoisted_10 = { class: \"nav-item\" }\nconst _hoisted_11 = { class: \"nav-item TumiLog\" }\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\"Login\")\nconst _hoisted_13 = { class: \"TumiBack\" }\nconst _hoisted_14 = /*#__PURE__*/_createStaticVNode(\"
    \\\"LogoTumi\\\"

    We make the advertising you need to bring people to your website, the website you need to transform those people in customers and the applications you need to manage those customers.

    WHAT WE DO

    We love to resolve problems and grow businesses by providing following services:

    APPLICATIONS

    Tailor made...

    Do you have an idea for how to automate a part of your business? After analyzing your needs, desires, and budget, we will make you an offer you can't resist. We will create a tailor-made application to improve your business, with one concept in mind: earning more and spending less.

    ...or not

    In addition to our tailor-made applications, we also sell our own software designed specifically for tile shops, which can be customized for any other business that needs to maintain a stock, manage orders, and send/print invoices. Are you looking to make a change in your business and adopt a modern way of working? Ask for a demo!

    Desktop or Web

    Do you want your application to be on your own server and on your own desktops? No problem. Or would you prefer your application to be on the cloud, accessible from everywhere? No problem either! We can install our applications on any device with a processor and some disk space.

    WEBSITES

    Fully Responsive

    When we create a website, we make sure it is fully responsive. This means that no matter what device your visitors are using, the website will display properly. This ensures that your website will perform at its best for all of your visitors, no matter where they are accessing it from.

    SEO

    Try going to Google and searching for the term "Toni Coppers." The results will show the website we created for Flanders' most loved thriller author on the first page. This is because we also optimize the SEO (search engine optimization) of our websites. After all, what's the point of having a website if nobody can find it?

    Mobile-First

    Did you know that more than 60% of internet traffic comes from smartphones? That's why we design our websites with a mobile-first approach. This ensures that our websites are optimized for even the smallest screens and perform their best in search engines.

    ADVERTISING

    Online

    Need some online presence? Ask us! Mailing campaigns, search engine advertising, YouTube, banners, ... we do it all. Online advertising can be a cost-effective way to reach a large audience because it allows businesses to target specific groups of people and track the success of their campaigns.

    Offline

    Some people say that offline advertising is dead. We believe that a well-executed guerrilla marketing campaign, a poster, or some flyers can be incredibly effective and cost-efficient ways to give a face to your brand. All you need is a good concept! When you're intruding on people's lives uninvited, you should at least do it in a sophisticated manner

    Social

    These days, you can't avoid using social media for advertising. You need to reach the youth? TikTok is the way to go. You need to reach an older audience? Facebook is the best choice. You need to reach the nerds? Reddit is the platform for you. Problem is, each of these platforms has its own unique way of communicating. But don't worry, we know all about it and can help you navigate them effectively.

    PROJECTS

    Here are some of the websites, advertising and applications we've build.

    \", 4)\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"TumiEspaceFinProject\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_RouterLink = _resolveComponent(\"RouterLink\")!\n const _component_Left = _resolveComponent(\"Left\")!\n const _component_Right = _resolveComponent(\"Right\")!\n const _component_Contact = _resolveComponent(\"Contact\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"nav\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _hoisted_4,\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n _createElementVNode(\"li\", _hoisted_7, [\n _createElementVNode(\"a\", {\n class: \"nav-link\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.Home && _ctx.Home(...args))),\n href: \"javascript:void();\"\n }, \"Home\")\n ]),\n _createElementVNode(\"li\", _hoisted_8, [\n _createElementVNode(\"a\", {\n class: \"nav-link\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.What && _ctx.What(...args))),\n href: \"javascript:void();\"\n }, \"What we do\")\n ]),\n _createElementVNode(\"li\", _hoisted_9, [\n _createElementVNode(\"a\", {\n class: \"nav-link\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.Projects && _ctx.Projects(...args))),\n href: \"javascript:void();\"\n }, \"Projects\")\n ]),\n _createElementVNode(\"li\", _hoisted_10, [\n _createElementVNode(\"a\", {\n class: \"nav-link\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.Contact && _ctx.Contact(...args))),\n href: \"javascript:void();\"\n }, \"Contact\")\n ]),\n _createElementVNode(\"li\", _hoisted_11, [\n _createVNode(_component_RouterLink, {\n class: \"nav-link TumiA\",\n to: '/PortalHome'\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n })\n ])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n _createVNode(_component_Left, {\n img: 'tc',\n title: 'Toni Coppers',\n text: 'Do you know Toni Coppers? The Flemish crime writer? No? Good, do not buy one of his books. His style, stories, mysteries are highly addictive. It\\'s even surprising that there is no warning label printed on the cover.

    Like every good writer, Toni Coppers needed a website. So, we designed and coded him one.',\n type: 'Website',\n link: 'www.tonicoppers.be'\n }, null, 8, [\"text\", \"link\"]),\n _createVNode(_component_Right, {\n img: 'Balls',\n title: 'Do you have the balls... To work with us?',\n text: 'Frituur Drakenhof did. They wanted to launch a new business/product and needed someone to run it. So, they asked us to make a poster to recruit people. We did!

    And because they were looking for someone with balls, that\\'s exactly what we put on the poster.',\n type: 'Advertising'\n }, null, 8, [\"title\", \"text\"]),\n _createVNode(_component_Left, {\n img: 'ProjectLifeKey',\n title: 'What happens to your projects when something happens to you?',\n text: \r\n 'You know what the biggest problem is when you’re a one-man-business? Clients hesitate to award you projects because they are afraid something might happen to you. '+\r\n '

    To solve this problem, we created ProjectLifeKey.'+\r\n '

    ProjectLifeKey is a web-app that provides a digital key in exchange for the files needed to pursue a project, the email of someone willing to pursue that project, and information on how and where to contact the client of that project. '+\r\n '

    If something happens to you, the client can simply activate the digital key on the ProjectLifeKey website and the chosen person can contact the client to reassure them that their project is in good hands. Interested?',\n type: 'Application',\n link: 'www.projectlifekey.com'\n }, null, 8, [\"text\", \"link\"]),\n _createVNode(_component_Right, {\n img: 'Renault',\n title: 'Renault Borgerhout',\n text: 'When we design a new website, the first thing we ask ourselves is: what will be the purpose of this website? In this case the answer was simple: allow people to reach Renault Borgerhout as fast as possible.

    So, we made a website specially designed for mobile, we added a “quick contact” button and a “quick access” menu.',\n type: 'Website',\n link: 'www.renaultborgerhout.be'\n }, null, 8, [\"text\", \"link\"]),\n _createVNode(_component_Left, {\n img: 'SnackMatch',\n title: 'Boul\\'jet-lee\\' or Jean Claude van D\\'Hamburger?',\n text: 'Frituur Drakenhof wanted to launch “the snack of the month”. A delicious new snack available only for one month. But they faced two problems: making people aware of it and decide which snack to nominate as snack of the month.

    So, we advised them to let the people decide and make a campaign around it. Two birds with one stone!',\n type: 'Advertising'\n }, null, 8, [\"text\"]),\n _createVNode(_component_Right, {\n img: 'SyncAirtable',\n title: 'SyncAirtable',\n text: 'One of our clients is using Airtable to manage all the data for their business and asked us if we could build a web app that uses Airtable as a database. '+\r\n '

    Unfortunately, Airtable is not intended to be used as a database, and when we communicated directly with the Airtable API we noticed that we had some serious latency issues. '+\r\n '

    We faced a big problem. And the best way to create a new product is by resolving an existing problem. '+\r\n '

    That\\'s why we created SyncAirtable:'+\r\n '
    A web application that allows you to synchronize your Airtable data with a MySQL database. Interested in learning more? Contact us.'\r\n ,\n type: 'Application'\n }, null, 8, [\"text\"]),\n _createVNode(_component_Left, {\n img: 'CRR',\n title: 'The Belgian Road Research Centre application',\n text: 'We\\'re super proud to announce that we made a brand-new application for the BRRC. An application that they use every day to keep their customer database up to date, make accounts, invoices, keep track of their mail, manage the payments and much more!

    A software that has been specifically developed for the BRRC and who suits their needs perfectly.

    So, if you need a piece of code or an entire application to automate your business and save you time and money, know that we also make tailor-made applications.',\n type: 'Application'\n }, null, 8, [\"text\"]),\n _createVNode(_component_Right, {\n img: 'GILLES',\n title: 'Tiles',\n text: 'Besides designing websites, putting your brand in the streets and on the web and coding tailormade software, we also sell our own CRM.

    Let us present you: Tiles.

    An application specifically made to manage the inventory, emails, orders, invoices, … of businesses who sell tiles. Want to know more? We\\'re currently making a web page dedicated to it. Coming soon.',\n type: 'Application'\n }, null, 8, [\"text\"]),\n _createVNode(_component_Left, {\n title: 'A simple trick to get new employees.',\n text: 'A simple trick to lose 10kgs, a simple trick to become a millionaire, … The internet is filled with “a simple trick” scams. But instead of scamming people with false hopes, we at TUMI, gave the youth a real trick to be financial free: GETTING A REAL JOB at Frituur Drakenhof.

    The result? A nice little video intended to social media.',\n type: 'Advertising'\n }, null, 8, [\"title\", \"text\"]),\n _hoisted_18,\n _createVNode(_component_Contact)\n ])\n ], 64))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"TumiProjectDarkLeft\" }\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = {\n class: \"row pt-5 pb-5 align-items-center\",\n \"data-aos\": \"fade-up\"\n}\nconst _hoisted_4 = { class: \"col-sm-12 col-md-8 TumiMargin TumiPictureFrame\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"TumiMarginIframe\"\n}\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"iframe\", {\n width: \"1000\",\n height: \"400\",\n src: \"https://www.youtube.com/embed/D_sr0IRGnW4\",\n title: \"YouTube video player\",\n frameborder: \"0\",\n allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",\n allowfullscreen: \"\"\n}, null, -1)\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = [\"src\", \"alt\"]\nconst _hoisted_9 = { class: \"col-sm-12 col-md-4 TumiTextFrameLeft\" }\nconst _hoisted_10 = { class: \"mb-3\" }\nconst _hoisted_11 = [\"innerHTML\"]\nconst _hoisted_12 = { key: 0 }\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\" Check it on \")\nconst _hoisted_14 = [\"href\"]\nconst _hoisted_15 = { class: \"TumiRound mt-5\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (!_ctx.img)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _hoisted_7))\n : _createCommentVNode(\"\", true),\n (_ctx.img)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n src: require('@/assets/' + _ctx.img + '.png'),\n class: _normalizeClass(_ctx.imgWorked),\n alt: _ctx.img\n }, null, 10, _hoisted_8))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"h2\", _hoisted_10, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"p\", null, [\n _createElementVNode(\"span\", { innerHTML: _ctx.text }, null, 8, _hoisted_11),\n (_ctx.link)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12, [\n _hoisted_13,\n _createElementVNode(\"a\", {\n href: 'http://' + _ctx.link\n }, _toDisplayString(_ctx.link), 9, _hoisted_14)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_15, _toDisplayString(_ctx.type), 1)\n ])\n ])\n ])\n ]))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"Menu\",\r\n props:[\r\n 'img', \r\n 'title',\r\n 'text',\r\n 'type',\r\n 'link'],\r\n\r\n data:function(){\r\n return{\r\n imgWorked : \"\" as string,\r\n visible:false as boolean\r\n }\r\n },\r\n created(){\r\n this.imgWorked = this.img ? 'img-fluid ' + this.img : 'img-fluid'\r\n\r\n if(this.img)\r\n {\r\n window.addEventListener('scroll', () => {\r\n var element = document.getElementsByClassName(this.img)[0];\r\n var position = element?.getBoundingClientRect();\r\n\r\n if(position){\r\n if(position.top < window.innerHeight && position.bottom >= 0)\r\n this.visible = true;\r\n else\r\n this.visible = false;\r\n }\r\n });\r\n } \r\n },\r\n watch:{\r\n visible(e){\r\n if(e)\r\n console.log(e);\r\n }\r\n }\r\n});\r\n","import { render } from \"./Left.vue?vue&type=template&id=6b818329&ts=true\"\nimport script from \"./Left.vue?vue&type=script&lang=ts\"\nexport * from \"./Left.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"TumiProjectDarkRight\" }\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = {\n class: \"row pt-5 pb-5 align-items-center TumiProjectFrameRight\",\n \"data-aos\": \"fade-up\"\n}\nconst _hoisted_4 = { class: \"col-sm-12 col-md-8 TumiMargin TumiColGauche TumiPictureFrame\" }\nconst _hoisted_5 = {\n key: 0,\n width: \"560\",\n height: \"315\",\n src: \"https://www.youtube.com/embed/D_sr0IRGnW4\",\n title: \"YouTube video player\",\n frameborder: \"0\",\n allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",\n allowfullscreen: \"\"\n}\nconst _hoisted_6 = [\"src\", \"alt\"]\nconst _hoisted_7 = { class: \"col-sm-12 col-md-4 TumiTextFrameRight\" }\nconst _hoisted_8 = { class: \"mb-3\" }\nconst _hoisted_9 = [\"innerHTML\"]\nconst _hoisted_10 = { key: 0 }\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\" Check it on \")\nconst _hoisted_12 = [\"href\"]\nconst _hoisted_13 = { class: \"TumiRound mt-5\" }\nconst _hoisted_14 = { class: \"col-sm-12 col-md-8 TumiMargin TumiColDroite TumiPictureFrame\" }\nconst _hoisted_15 = [\"src\", \"alt\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (!_ctx.img)\n ? (_openBlock(), _createElementBlock(\"iframe\", _hoisted_5))\n : _createCommentVNode(\"\", true),\n (_ctx.img)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n src: require('@/assets/' + _ctx.img + '.png'),\n class: \"img-fluid\",\n alt: _ctx.img\n }, null, 8, _hoisted_6))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"h2\", _hoisted_8, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"p\", null, [\n _createElementVNode(\"span\", { innerHTML: _ctx.text }, null, 8, _hoisted_9),\n (_ctx.link)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, [\n _hoisted_11,\n _createElementVNode(\"a\", {\n href: 'http://' + _ctx.link\n }, _toDisplayString(_ctx.link), 9, _hoisted_12)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString(_ctx.type), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n (_ctx.img)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: require('@/assets/' + _ctx.img + '.png'),\n class: \"img-fluid\",\n alt: _ctx.img\n }, null, 8, _hoisted_15))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"Menu\",\r\n props:[\r\n 'img', \r\n 'title',\r\n 'text',\r\n 'type',\r\n 'link']\r\n});\r\n","import { render } from \"./Right.vue?vue&type=template&id=94c61d20&ts=true\"\nimport script from \"./Right.vue?vue&type=script&lang=ts\"\nexport * from \"./Right.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"Contact\" }\nconst _hoisted_2 = { class: \"TumiContainer\" }\nconst _hoisted_3 = { class: \"row text-center pt-5 pb-5\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"mt-5 mb-3\" }, \"WHY CONTACT US?\", -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"mb-5 text-start\" }, \" Because calling us and having a short discussion is totally free, you can't lose. In fact, you automatically win. The worst that could happen is that you'll have to drink a good cup of coffee, hear some jokes and leave with new perspectives and ideas on how to maximize the potential of your business. \", -1)\nconst _hoisted_6 = { class: \"bg-white p-5 text-start TumiContact\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"spinner-border\",\n role: \"status\"\n}\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"visually-hidden\" }, \"Loading...\", -1)\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = {\n key: 2,\n class: \"TumiThanks mt-3 pt-1 pb-1 bg-succes text-center rounded\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DynamicPage = _resolveComponent(\"DynamicPage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n (!_ctx.activeObject)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _hoisted_9))\n : _createCommentVNode(\"\", true),\n (_ctx.activeObject)\n ? (_openBlock(), _createBlock(_component_DynamicPage, {\n key: 1,\n objet: _ctx.activeObject,\n validate: _ctx.error,\n onAction: _ctx.Save\n }, null, 8, [\"objet\", \"validate\", \"onAction\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.pass)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, \" Thank you! \"))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]))\n}","\r\nimport store from \"../../../BLL/store\";\r\nimport { defineComponent } from \"vue\";\r\nimport DynamicPage from \"../../../BLL/Tumi/Components/DynamicPage.vue\"\r\nimport {IResult} from \"../../../BLL/Tumi/Models/Models\"\r\nimport {IError} from \"../../../BLL/Tumi/Models/Models\"\r\nimport {validateEmail} from \"../../../BLL/helpers/fonctions\"\r\n\r\nexport default defineComponent({\r\n name: \"Home\",\r\n components:{\r\n DynamicPage\r\n },\r\n data: function(){\r\n return{\r\n activeObject: null as any,\r\n error: \"\" as string,\r\n pass: \"\" as string \r\n }\r\n },\r\n methods:{\r\n async Save(res: IResult){\r\n this.error = \"\";\r\n this.pass = \"\";\r\n\r\n console.log(res);\r\n\r\n if(res.errors.length > 0)\r\n {\r\n if(res.errors.find((i :IError)=> i.error == \"required\"))\r\n this.error = \"Those fields are required.\";\r\n return;\r\n }\r\n\r\n if(!validateEmail(res.object.CONTACT_EMAIL))\r\n {\r\n this.error = \"Email must be valid\";\r\n return;\r\n }\r\n\r\n this.activeObject = null;\r\n await store.dispatch(\"dynamicStore/setDynamic\",{\"pathSet\":\"/portal/setContact\", \"retour\":res.object})\r\n this.GetContact();\r\n this.pass = \"ok\";\r\n },\r\n async GetContact(){\r\n await store.dispatch('dynamicStore/getDynamic','/portal/getcontactempty');\r\n this.activeObject = (store.state as any).dynamicStore['/portal/getcontactempty'];\r\n }\r\n },\r\n async created(){\r\n this.GetContact();\r\n }\r\n});\r\n","import { render } from \"./Contact.vue?vue&type=template&id=3031f6df&ts=true\"\nimport script from \"./Contact.vue?vue&type=script&lang=ts\"\nexport * from \"./Contact.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent } from \"vue\";\r\n\r\nimport Left from \"../../src/components/Home/Left.vue\"\r\nimport Right from \"../../src/components/Home/Right.vue\"\r\nimport Contact from \"../../src/components/Home/Contact.vue\"\r\n\r\nexport default defineComponent({\r\n name: \"Home\",\r\n components:{\r\n Left, \r\n Right,\r\n Contact\r\n },\r\n methods:{\r\n Home(){\r\n window.scrollTo(0, 0);\r\n },\r\n Projects(){\r\n const yOffset = -100; \r\n const element = document.getElementById(\"Projects\");\r\n if(element)\r\n {\r\n const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;\r\n window.scrollTo({top: y, behavior: 'smooth'});\r\n }\r\n },\r\n Contact(){\r\n const yOffset = -60; \r\n const element = document.getElementById(\"Contact\");\r\n if(element)\r\n {\r\n const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;\r\n window.scrollTo({top: y, behavior: 'smooth'});\r\n }\r\n },\r\n What(){\r\n const yOffset = -60; \r\n const element = document.getElementById(\"What\");\r\n if(element)\r\n {\r\n const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;\r\n window.scrollTo({top: y, behavior: 'smooth'});\r\n }\r\n }\r\n },\r\n});\r\n","import { render } from \"./TumiHome.vue?vue&type=template&id=27eba18e&ts=true\"\nimport script from \"./TumiHome.vue?vue&type=script&lang=ts\"\nexport * from \"./TumiHome.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\benja\\\\Desktop\\\\Tumi\\\\Frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHashHistory, createWebHistory, RouteRecordRaw } from 'vue-router'\nimport HomePortal from '../views/Home.vue'\nimport SignUp from '../views/SignUp.vue'\nimport ConfirmMail from '../views/ConfirmMail.vue'\nimport RetrievePass from '../views/RetrievePass.vue'\nimport SetNewPass from '../views/SetNewPass.vue'\nimport Portal from '../views/Portal/Portal.vue'\nimport Home from '../views/TumiHome.vue'\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Home',\n component: Home\n },\n {\n path: '/PortalHome',\n name: 'PortalHome',\n component: HomePortal\n },\n {\n path: '/SignUp',\n name: 'SignUp',\n component: SignUp\n },\n {\n path: '/ConfirmMail/:id',\n name: 'ConfirmMail',\n component: ConfirmMail\n },\n {\n path: '/RetrievePass',\n name: 'RetrievePass',\n component: RetrievePass\n },\n {\n path: '/SetNewPass/:id',\n name: 'SetNewPass',\n component: SetNewPass\n },\n {\n path: '/Portal',\n name: 'Portal',\n component: Portal\n }\n]\n\nconst router = createRouter({\n history: createWebHashHistory(),\n routes\n})\n\nrouter.beforeEach((to, from, next) => {\n // redirect to login page if not logged in and trying to access a restricted page\n const privatePages = ['/portal'];\n const authRequired = privatePages.includes(to.path.toLowerCase());\n const loggedIn = localStorage.getItem('user');\n\n if (authRequired && !loggedIn) {\n return next('/');\n }\n\n next();\n})\n\nexport default router\n","import { createApp } from 'vue'\r\nimport AOS from 'aos'\r\nimport 'aos/dist/aos.css'\r\nimport App from './App.vue'\r\nimport router from '../src/router'\r\nimport store from '../BLL/store'\r\nimport \"bootstrap/dist/css/bootstrap.min.css\"\r\nimport \"bootstrap\"\r\n\r\nAOS.init();\r\n\r\ncreateApp(App).use(store).use(router).mount('#app')\r\n","module.exports = __webpack_public_path__ + \"img/logo.704e9524.png\";","module.exports = __webpack_public_path__ + \"img/ProjectLifeKey.2590f935.png\";","module.exports = __webpack_public_path__ + \"img/CRR.6c0060eb.png\";"],"sourceRoot":""}