{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/eierskifteStore.ts","webpack:///./src/store/store.ts","webpack:///./src/main.validate.ts","webpack:///./src/main.router.ts","webpack:///./src/components/app/App.vue?762d","webpack:///./src/components/app/App.vue","webpack:///./src/components/app/App.vue?02fd","webpack:///./src/main.ts","webpack:///./src/components/app/App.vue?b2f5","webpack:///./src/types/enums.ts","webpack:///./src/services/EierskifteService.ts","webpack:///./src/services/EksportService.ts","webpack:///./src/services/ImportavgiftService.ts","webpack:///./src/services/TemplateService.ts","webpack:///./src/services/TextService.ts","webpack:///./src/services/KvkListService.ts","webpack:///./src/services/OmbyggingService.ts","webpack:///./src/other/helpers.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","eierskifte","lookupType","regnr","kjoretoyType","kjoretoyTypeDesc","egenvektType","totalvektType","registrertAr","vektAarDesc","useEierskifteStore","defineStore","state","language","getters","getState","getLanguage","getEierskifte","actions","setLanguage","this","$patch","setValidationLanguage","useStore","version","steps","texts","lang","localize","defineRule","required","between","numeric","min_value","max_value","regex","configure","generateMessage","nb","messages","numberThousandSeparator","nn","en","test","args","field","valid","limit","replaced","toString","replace","RegExp","num","Number","dateInput","dayjs","dateToCompare","isBefore","isAfter","Eierskifte","EierskifteStep1","EierskifteStep2","EierskifteStep3","Eksport","Home","Import","Kvklist","Ombygging","Vektaarsavgift","VektaarsavgiftSteg1","VektaarsavgiftSteg2","VektaarsavgiftSteg3","loadTextsVektaar","to","_","next","query","skeno","load","loadTextsEierskifte","loadTextsKvkList","KvkList","loadTextsImport","Importavgift","responseTexts","responseInputs","vm","loadTextsEksport","loadTextsOmbygging","routes","Array","path","component","beforeEnter","children","props","httpStatusCode","router","createRouter","history","createWebHistory","_hoisted_1","id","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_createBlock","$route","defineComponent","__exports__","VueFlatPickr","defineAsyncComponent","HelpText","WizStep","WizAlert","WizResult","VektaarsavgiftSteg1Summary","VektaarsavgiftSteg2Summary","HengerKombinasjon","EierskifteStep1Summary","EierskifteStep2Summary","ImportRadioIterator","ImportDate","ImportDropdown","ImportNumber","ImportSearch","ImportText","DebugTools","HttpErrorMessage","app","createApp","h","App","provide","use","createPinia","mount","VeeForm","VeeField","ErrorMessage","locale","extend","LocalizedFormat","utc","String","addPlusIfPositive","dis","format","arguments","match","number","x","re","toFixed","Math","max","Calculator","EierskifteService","log","resolveLoad","fetchFormData","axios","res","kjoretoyTyper","vektklasserLett","vektklasserMedium","vektklasserTung","registrertArAlternativer","catch","ex","dto","store","endpoint","post","KjoretoyTyper","VektklasserLett","VektklasserMedium","VektklasserTung","RegistrertArAlternativer","Success","EksportService","getFormData","vektklasser","VektklasseTyper","vektklasseTyper","drivstoffTyper","eksport","Version","KjoretoyType","Totalvektklasse","totalvekt","DatoForstegangsRegistreringNorge","registeredDt","Date","DatoEksporteringFraNorge","exportDt","DatoForstegangsRegistreringUtland","AlternativtBruksfradrag","MotoreffektKw","motoreffektType","motoreffekt","Co2GramPerKm","co2","NoxMgPerKm","nox","EgenvektKg","egenvekt","SlagvolumCcm","engineDisplacement","Drivstofftype","resolveBeregn","resultat","success","TotalvektklasseId","KjoretoyTypeId","MotorvognTekniskeParametere","fuelType","ImportavgiftService","importavgift","map","ForsteRegistrasjonsdatoIUtland","Innkjopspris","currentUsedPrice","CO2GramPerKm","AlternativBeregning","GjeldendeBruktprisINorge","HistoriskNypris","histNewPrice","Kilometerstand","mileage","GjennomsnitteligKjorteKm","avgMileage","TemplateService","fakeApiCall","json","kjoretoyList","resolveKjoretoyList","TextService","_importavgift","_eksport","_ombygging","calculator","axiosGet","fetch","txt","_eierskifte","_kvklist","_vektaarsavgift","ref","getText","_engangsavgift","KvkListService","response","allData","initData","categories","Kategori_Kjoretoytype","drivhjulTyper","Kategori_Drivhjul","Kategori_Drivstoff","girTyper","Kategori_Girtype","karosseriTyper","Kategori_Karosseri","selectedYear","selectedBrand","OmbyggingService","kjoretoyTypeListeGammeltKjoretoy","KjoretoyTypeListeGammeltKjoretoy","kjoretoyTypeListeNyttKjoretoyAlternativer","KjoretoyTypeListeNyttKjoretoyAlternativer","kjoretoyTypeListeNyttKjoretoy","KjoretoyTypeListeNyttKjoretoy","ombygging","NyKjoretoyType","kjoretoyTypeNy","registeredAbroadDt","NyDrivstofftype","fuelTypeNy","NyCO2GramPerKm","co2Ny","NyNoxMgPerKm","noxNy","slagvolum","NySlagvolumCcm","slagvolumNy","Totalvekt","NyTotalvekt","totalvektNy","NyMotoreffektKw","motoreffektNy","setData","responseInputsData","forEach","item","isHidden","getTextAndInputsAsync","GetInputsMethod","getInputs","GetTextForCalculator"],"mappings":"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AK,IACLN,MAAO,CACL,CACEM,IAAK,GACLN,MAAO,iBAET,CACEM,IAAK,IACLN,MAAO,SAET,CACEM,IAAK,KACLN,MAAO,gCAET,CACEM,IAAK,KACLN,MAAO,mCAET,CACEM,IAAK,IACLN,MAAO,gEAET,CACEM,IAAK,KACLN,MAAO,eAIb,CACEM,IAAK,IACLN,MAAO,CACL,CACEM,IAAK,GACLN,MAAO,iBAET,CACEM,IAAK,IACLN,MAAO,gEAET,CACEM,IAAK,KACLN,MAAO,aAET,CACEM,IAAK,KACLN,MAAO,kCAIb,CACEM,IAAK,KACLN,MAAO,CACL,CACEM,IAAK,GACLN,MAAO,iBAET,CACEM,IAAK,KACLN,MAAO,cAIb,CACEM,IAAK,KACLN,MAAO,CACL,CACEM,IAAK,GACLN,MAAO,iBAET,CACEM,IAAK,KACLN,MAAO,gDAET,CACEM,IAAK,KACLN,MAAO,gCAET,CACEM,IAAK,KACLN,MAAO,aAET,CACEM,IAAK,IACLN,MAAO,kEAIb,CACEM,IAAK,IACLN,MAAO,CACL,CACEM,IAAK,GACLN,MAAO,iBAET,CACEM,IAAK,IACLN,MAAO,iBAIb,CACEM,IAAK,IACLN,MAAO,CACL,CACEM,IAAK,GACLN,MAAO,iBAET,CACEM,IAAK,IACLN,MAAO,gBAIb,CACEM,IAAK,KACLN,MAAO,CACL,CACEM,IAAK,GACLN,MAAO,iBAET,CACEM,IAAK,KACLN,MAAO,kCAIb,CACEM,IAAK,KACLN,MAAO,CACL,CACEM,IAAK,GACLN,MAAO,iBAET,CACEM,IAAK,KACLN,MAAO,aAET,CACEM,IAAK,KACLN,MAAO,mCAET,CACEM,IAAK,KACLN,MAAO,gCAET,CACEM,IAAK,IACLN,MAAO,mEAKfwS,8BAA+B,CAC7B,CACElS,IAAK,GACLN,MAAO,iBAET,CACEM,IAAK,KACLN,MAAO,aAET,CACEM,IAAK,IACLN,MAAO,cAET,CACEM,IAAK,KACLN,MAAO,gCAET,CACEM,IAAK,KACLN,MAAO,mCAET,CACEM,IAAK,KACLN,MAAO,gDAET,CACEM,IAAK,IACLN,MAAO,SAET,CACEM,IAAK,IACLN,MAAO,gEAET,CACEM,IAAK,KACLN,MAAO,YAET,CACEM,IAAK,IACLN,MAAO,eAET,CACEM,IAAK,IACLN,MAAO,eAGX+M,gBAAiB,CACf,CACEzM,IAAK,GACLN,MAAO,kBAET,CACEM,IAAK,UACLN,MAAO,kBAET,CACEM,IAAK,WACLN,MAAO,iBAGX2M,SAAS,OA5Yf,K,eAAauF,E,mCAC4D,I,eAD5DA,E,4CAEqE,I,eAFrEA,E,gCAGyD,I,eAHzDA,E,cAIuC,I,8BCA9C,SAAUyB,EAAQlO,EAA6BW,EAAoBC,GACvE,IAAM8F,EAAQ5J,iBACRzB,OAAQ4B,MAAQ0D,EAActM,KAAK4I,MACzC,IAAMkR,EAAqBvN,EAAevM,MAAQ,GAIlD8Z,EAAmBC,SAAQ,SAASC,GAClCA,EAAKC,UAAW,KAGlB5H,EAAM1J,MAAQmR,EACdzH,EAAMzJ,MAAQ0D,EAActM,KAAK4I,MAM7B,SAAUsR,EAAsBvD,EAA8BhL,GAClE,IAAM0G,EAAQ5J,iBACRI,EAAO8C,EAAGG,MAAM/D,UAAsB,KAC5CsK,EAAMhK,YAAYQ,GAElB,IAEIsR,EAFEzR,EAAUiD,EAAGG,MAAMpD,SAAqB,QAI9C,OAHA2J,EAAM3J,QAAUA,EAGRiO,GACN,KAAK5K,EAAiBM,aACpB8N,EAAkB,kBAAMpO,EAA0BqO,aAClD,MACF,KAAKrO,EAAiBd,QACpBkP,EAAkB,kBAAMpO,EAAqBqO,aAC7C,MACF,KAAKrO,EAAiBV,UACpB8O,EAAkB,kBAAMpO,EAAuBqO,aAC/C,MACF,QAEE,MADAtT,QAAQ0K,IAAI,QACN,SAEV,OAAOjP,QAAQ+C,IAAI,CAACyG,EAAkBsO,qBAAqB1D,EAAYtE,EAAM3J,QAAS2J,EAAMtK,UAAWoS","file":"dist/js/app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"dist/js/\" + ({}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-028df381\":1,\"chunk-43f9535d\":1,\"chunk-67a0a9dc\":1,\"chunk-70865d4e\":1,\"chunk-7de16e18\":1,\"chunk-e9f05b50\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"dist/css/\" + ({}[chunkId]||chunkId) + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { defineStore } from \"pinia\";\r\n\r\nimport { setValidationLanguage } from \"../main.validate\";\r\nimport * as skeno from \"../types\";\r\n\r\nconst eierskifte: skeno.EierskifteForm = {\r\n lookupType: \"auto\",\r\n regnr: \"\",\r\n kjoretoyType: \"\",\r\n kjoretoyTypeDesc: \"\",\r\n egenvektType: \"\",\r\n totalvektType: \"\",\r\n registrertAr: \"\",\r\n vektAarDesc: \"\",\r\n};\r\n\r\nexport const useEierskifteStore = defineStore(\"eierskifteStore\", {\r\n state: () => {\r\n return {\r\n eierskifte,\r\n language: \"\"\r\n }\r\n },\r\n\r\n getters: {\r\n getState: (state) => state,\r\n getLanguage: (state) => {\r\n return state.language;\r\n },\r\n getEierskifte: (state) => {\r\n return state.eierskifte;\r\n },\r\n },\r\n actions: {\r\n setLanguage(language: string) {\r\n this.$patch({\r\n language: language,\r\n });\r\n setValidationLanguage(language);\r\n },\r\n }\r\n});\r\n","import { defineStore } from \"pinia\";\r\n\r\nimport { setValidationLanguage } from \"../main.validate\";\r\nimport * as skeno from \"../types\";\r\n\r\nexport const useStore = defineStore(\"importStore\", {\r\n state: () => {\r\n return {\r\n version: \"\",\r\n language: \"\",\r\n steps: [] as Array,\r\n texts: {} as any\r\n }\r\n },\r\n actions: {\r\n setLanguage(language: string) {\r\n this.$patch({\r\n language: language,\r\n });\r\n setValidationLanguage(language);\r\n },\r\n }\r\n});\r\n","import { CustomWindow } from \"./types\";\r\nimport dayjs from \"dayjs\";\r\n\r\nimport { defineRule, configure } from 'vee-validate';\r\nimport { required, between, numeric, min_value, max_value, regex } from '@vee-validate/rules';\r\nimport { localize } from '@vee-validate/i18n';\r\n\r\ndefineRule('required', required);\r\ndefineRule('between', between);\r\ndefineRule('numeric', numeric);\r\ndefineRule('min_value', min_value);\r\ndefineRule('max_value', max_value);\r\ndefineRule('regex', regex);\r\n\r\ndeclare let window: CustomWindow;\r\n\r\nconfigure({\r\n // Generates an English message locale generator\r\n generateMessage: localize({\r\n nb: {\r\n messages:\r\n {\r\n max_value: '{field}-feltet kan ikke være lengre enn ${length} tegn.',\r\n min_value: '{field}-feltet må være minst ${length} tegn.',\r\n numeric: '{field}-feltet kan bare inneholde tall.',\r\n regex: '{field}-feltet sin formatering er ugyldig.',\r\n required: '{field}-feltet må fylles ut.',\r\n numberThousandSeparator: '{field}-feltet kan bare inneholde tall.'\r\n },\r\n },\r\n nn: {\r\n messages:\r\n {\r\n max_value: '{field}-feltet kan ikke være lengre enn ${length} tegn.',\r\n min_value: '{field}-feltet må være minst ${length} tegn.',\r\n numeric: '{field}-feltet kan berre innehalde nummer.',\r\n regex: '{field}-feltet har ugyldig formatering.',\r\n required: '{field}-feltet må fyllast ut.',\r\n numberThousandSeparator: '{field}-feltet kan berre innehalde tal.'\r\n }\r\n },\r\n en: {\r\n messages:\r\n {\r\n numeric: 'The {field}-field can only contain numbers.',\r\n regex: 'The {field}-field has invalid formatting.',\r\n required: 'The {field}-field must be completed.',\r\n numberThousandSeparator: 'The {field}-field can only contain numbers.'\r\n }\r\n }\r\n }),\r\n});\r\n\r\ndefineRule(\"numberDecimal\", (value: string) => {\r\n return /^\\d+(?:,\\d)?$/.test(value);\r\n});\r\n\r\n\r\n\r\ndefineRule(\"numberThousandSeparator\", (value: string, args: any, field: any) => {\r\n if (value) {\r\n var valid = /^\\d+(\\s\\d{3})*?$/.test(value);\r\n if (valid) return true;\r\n return window.texts[\"Validering_Nummer_ThousandSeparator\"];\r\n }\r\n return true;\r\n});\r\n\r\ndefineRule(\"minValueNor\", (value: any, args: any) => {\r\n var limit = args[0];\r\n if (value) {\r\n var replaced = value.toString().replace(/,/g, \".\");\r\n replaced = replaced.toString().replace(new RegExp(/\\s/, 'g'), \"\");\r\n var num = Number(replaced);\r\n var valid = num >= limit;\r\n return valid;\r\n }\r\n return false;\r\n});\r\n\r\ndefineRule(\"maxValueNor\", (value: any, args: any) => {\r\n var limit = args[0];\r\n var replaced = value.toString().replace(/,/g, \".\");\r\n replaced = replaced.toString().replace(new RegExp(/\\s/, 'g'), \"\");\r\n var num = Number(replaced);\r\n return num <= limit;\r\n});\r\n\r\ndefineRule(\"before\", (value: any, args: any) => {\r\n var dateInput;\r\n if (value) {\r\n dateInput = dayjs(value);\r\n\r\n var dateToCompare = dayjs(args);\r\n return dateInput.isBefore(dateToCompare);\r\n }\r\n return false;\r\n});\r\n\r\ndefineRule(\"dateRegUtlandMustBeBeforeRegNorge\", (value: any, args: any) => {\r\n var dateInput;\r\n if (value) {\r\n dateInput = dayjs(value);\r\n\r\n var dateToCompare = dayjs(args);\r\n return dateInput.isBefore(dateToCompare);\r\n }\r\n return false;\r\n});\r\n\r\ndefineRule(\"after\", (value: any, args: any) => {\r\n var dateInput;\r\n if (value) {\r\n dateInput = dayjs(value);\r\n\r\n var dateToCompare = dayjs(args);\r\n return dateInput.isAfter(dateToCompare);\r\n }\r\n return false;\r\n});\r\n\r\ndefineRule(\"dateFraNorgeMustBeAfterRegNorge\", (value: any, args: any) => {\r\n var dateInput;\r\n if (value) {\r\n dateInput = dayjs(value);\r\n\r\n var dateToCompare = dayjs(args);\r\n return dateInput.isAfter(dateToCompare);\r\n }\r\n return false;\r\n});\r\n\r\nexport function setValidationLanguage(lang: string) {\r\n // supported langauges\r\n switch (lang) {\r\n case \"no\":\r\n localize(\"nb\");\r\n break;\r\n case \"nn\":\r\n localize(\"nn\");\r\n break;\r\n default:\r\n localize(\"en\");\r\n break;\r\n }\r\n}\r\n","import * as skeno from \"./types\";\r\nimport { createWebHistory, createRouter, RouteRecordRaw } from \"vue-router\";\r\n\r\nconst Eierskifte = () => import(\"./components/eierskifte/Eierskifte.vue\");\r\nconst EierskifteStep1 = () => import(\"./components/eierskifte/EierskifteStep1.vue\");\r\nconst EierskifteStep2 = () => import(\"./components/eierskifte/EierskifteStep2.vue\");\r\nconst EierskifteStep3 = () => import(\"./components/eierskifte/EierskifteStep3.vue\");\r\nconst Eksport = () => import(\"./components/eksport/Eksport.vue\");\r\n\r\nconst Home = () => import(\"./components/home/Home.vue\");\r\nconst Import = () => import(\"./components/import/import.vue\");\r\nconst Kvklist = () => import(\"./components/kvklist/kvklist.vue\");\r\nconst Ombygging = () => import(\"./components/ombygging/Ombygging.vue\");\r\nconst Vektaarsavgift = () => import(\"./components/vektaarsavgift/Vektaarsavgift.vue\");\r\nconst VektaarsavgiftSteg1 = () => import(\"./components/vektaarsavgift/VektaarsavgiftSteg1.vue\");\r\nconst VektaarsavgiftSteg2 = () => import(\"./components/vektaarsavgift/VektaarsavgiftSteg2.vue\");\r\nconst VektaarsavgiftSteg3 = () => import(\"./components/vektaarsavgift/VektaarsavgiftSteg3.vue\");\r\n\r\nconst Error = () => import(\"./components/error/Error.vue\");\r\n\r\nfunction loadTextsVektaar(to: any, _: any, next: Function) {\r\n const lang = to.query.language || \"no\";\r\n const version = to.query.version || \"v2021\";\r\n Promise.all([\r\n skeno.TextService.load(skeno.Calculator.Vektaarsavgift, version, lang)\r\n ]).then(() => {\r\n next()\r\n });\r\n}\r\n\r\nfunction loadTextsEierskifte(to: any, _: any, next: Function) {\r\n const lang = to.query.language || \"no\";\r\n const version = to.query.version || \"v2018\";\r\n Promise.all([\r\n skeno.TextService.load(skeno.Calculator.Eierskifte, version, lang),\r\n skeno.EierskifteService.load(version, lang)\r\n ]).then(() => {\r\n next()\r\n });\r\n}\r\n\r\nfunction loadTextsKvkList(to: any, _: any, next: Function) {\r\n const lang = to.query.language || \"no\";\r\n const version = to.query.version || \"v2018\";\r\n Promise.all([\r\n skeno.TextService.load(skeno.Calculator.KvkList, version, lang),\r\n skeno.KvkListService.load(version, lang)\r\n ]).then(() => {\r\n next()\r\n });\r\n}\r\n\r\nfunction loadTextsImport(to: any, _: any, next: Function) {\r\n skeno.getTextAndInputsAsync(skeno.Calculator.Importavgift, to).then(([responseTexts, responseInputs]) => {\r\n // call vue-router next().\r\n skeno.setData(to, responseTexts, responseInputs);\r\n next((vm: any) => {\r\n });\r\n });\r\n}\r\n\r\nfunction loadTextsEksport(to: any, _: any, next: Function) {\r\n skeno.getTextAndInputsAsync(skeno.Calculator.Eksport, to).then(([responseTexts, responseInputs]) => {\r\n // call vue-router next().\r\n skeno.setData(to, responseTexts, responseInputs);\r\n next((vm: any) => {\r\n });\r\n });\r\n}\r\n\r\nfunction loadTextsOmbygging(to: any, _: any, next: Function) {\r\n skeno.getTextAndInputsAsync(skeno.Calculator.Ombygging, to).then(([responseTexts, responseInputs]) => {\r\n // call vue-router next().\r\n skeno.setData(to, responseTexts, responseInputs);\r\n next((vm: any) => {\r\n });\r\n });\r\n}\r\n\r\nconst routes = Array();\r\n\r\nroutes.push({ path: \"\", name: \"Home\", component: Home });\r\n\r\n/// ##############\r\n/// Important: only route to components that are imported! No 'require' !\r\n/// ##############\r\n\r\nroutes.push({\r\n path: \"/import\",\r\n beforeEnter: [loadTextsImport],\r\n component: Import\r\n});\r\n\r\nroutes.push({\r\n path: \"/eksport\",\r\n beforeEnter: [loadTextsEksport],\r\n component: Eksport\r\n});\r\n\r\nroutes.push({\r\n path: \"/ombygging\",\r\n beforeEnter: [loadTextsOmbygging],\r\n component: Ombygging\r\n});\r\n\r\nroutes.push({\r\n path: \"/kvklist\",\r\n beforeEnter: [loadTextsKvkList],\r\n component: Kvklist\r\n});\r\n\r\nroutes.push({\r\n path: \"/eierskifte-spa\",\r\n component: Eierskifte,\r\n beforeEnter: [loadTextsEierskifte],\r\n children: [\r\n { name: \"eierskifte_step1\", path: \"\", component: EierskifteStep1 },\r\n { name: \"eierskifte_step2\", path: \"step2\", component: EierskifteStep2 },\r\n { name: \"eierskifte_step3\", path: \"step3\", component: EierskifteStep3 },\r\n ]\r\n});\r\n\r\nroutes.push({\r\n path: \"/vektaarsavgift\",\r\n component: Vektaarsavgift,\r\n beforeEnter: [ loadTextsVektaar ],\r\n children: [\r\n { name: \"vektaarsavgift_step1\", path: \"\", component: VektaarsavgiftSteg1 },\r\n { name: \"vektaarsavgift_step2\", path: \"step2\", component: VektaarsavgiftSteg2 },\r\n { name: \"vektaarsavgift_step3\", path: \"step3\", component: VektaarsavgiftSteg3 }\r\n ]\r\n});\r\n\r\nroutes.push({\r\n path: \"/:catchAll(.*)\",\r\n name: \"pageNotFound\",\r\n component: Error,\r\n props: { httpStatusCode: \"404\" }\r\n});\r\n\r\n\r\nvar router = createRouter({\r\n history: createWebHistory(),\r\n routes,\r\n});\r\n\r\nexport default router;\r\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"app-root\" }\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(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createBlock(_component_router_view, {\n key: _ctx.$route.path\n }))\n ]))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\n export default defineComponent({\r\n name: \"App\",\r\n });\r\n","import { render } from \"./App.vue?vue&type=template&id=2a93a659&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=2a93a659&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\SKENO.Calculators\\\\SKENO.Calculators.Web\\\\ClientApp\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport \"./main.validate\";\r\nimport \"bootstrap/js/dist/util\";\r\nimport \"bootstrap/js/dist/collapse\";\r\nimport \"iframe-resizer/js/iframeResizer.contentWindow.min\";\r\n\r\nimport { createApp, h, defineAsyncComponent } from 'vue';\r\nimport { createPinia } from \"pinia\";\r\nimport { Form as VeeForm, Field as VeeField, ErrorMessage, configure } from \"vee-validate\";\r\n\r\nimport LocalizedFormat from \"dayjs/plugin/localizedFormat\";\r\nimport dayjs from \"dayjs\";\r\nimport nb from \"dayjs/locale/nb\";\r\nimport router from \"./main.router\";\r\nimport utc from \"dayjs/plugin/utc\";\r\n\r\nimport App from \"./components/app/App.vue\";\r\n\r\nconst VueFlatPickr = defineAsyncComponent(() => import(\"vue-flatpickr-component\"));\r\nconst HelpText = defineAsyncComponent(() => import(\"./components/shared/HelpText.vue\"));\r\nconst WizStep = defineAsyncComponent(() => import(\"./components/shared/wizard/WizStep.vue\"));\r\nconst WizAlert = defineAsyncComponent(() => import(\"./components/shared/wizard/wizalert.vue\"));\r\nconst WizResult = defineAsyncComponent(() => import(\"./components/shared/wizard/wizresult.vue\"));\r\nconst VektaarsavgiftSteg1Summary = defineAsyncComponent(() => import(\"./components/vektaarsavgift/VektaarsavgiftSteg1Summary.vue\"));\r\nconst VektaarsavgiftSteg2Summary = defineAsyncComponent(() => import(\"./components/vektaarsavgift/VektaarsavgiftSteg2Summary.vue\"));\r\nconst HengerKombinasjon = defineAsyncComponent(() => import(\"./components/vektaarsavgift/HengerKombinasjon.vue\"));\r\nconst EierskifteStep1Summary = defineAsyncComponent(() => import(\"./components/eierskifte/EierskifteStep1Summary.vue\"));\r\nconst EierskifteStep2Summary = defineAsyncComponent(() => import(\"./components/eierskifte/EierskifteStep2Summary.vue\"));\r\n\r\nconst ImportRadioIterator = defineAsyncComponent(() => import(\"./components/shared/IeRadioIterator.vue\"));\r\nconst ImportDate = defineAsyncComponent(() => import(\"./components/shared/IeDate.vue\"));\r\nconst ImportDropdown = defineAsyncComponent(() => import(\"./components/shared/IeDropdown.vue\"));\r\nconst ImportNumber = defineAsyncComponent(() => import(\"./components/shared/IeNumber.vue\"));\r\nconst ImportSearch = defineAsyncComponent(() => import(\"./components/shared/IeSearch.vue\"));\r\nconst ImportText = defineAsyncComponent(() => import(\"./components/shared/IeText.vue\"));\r\nconst DebugTools = defineAsyncComponent(() => import(\"./components/shared/DebugTools.vue\"));\r\nconst HttpErrorMessage = defineAsyncComponent(() => import(\"./components/shared/HttpErrorMessage.vue\"));\r\n\r\n// root component, mounted on the Vue instance\r\n\r\nvar app = createApp({\r\n render: () => h(App)\r\n});\r\napp.provide(\"instance\", app);\r\napp.use(createPinia());\r\napp.use(router);\r\napp.mount(\"#app-root\");\r\n\r\n// GLOBALLY AVAILABLE COMPONENTS. Put them here\r\napp.component(\"help-text\", HelpText);\r\napp.component(\"flat-pickr\", VueFlatPickr);\r\napp.component(\"VeeForm\", VeeForm);\r\napp.component(\"VeeField\", VeeField);\r\napp.component(\"ErrorMessage\", ErrorMessage);\r\napp.component(\"wiz-step\", WizStep);\r\napp.component(\"wiz-result\", WizResult);\r\napp.component(\"wiz-alert\", WizAlert);\r\napp.component(\"steg1-summary\", VektaarsavgiftSteg1Summary);\r\napp.component(\"steg2-summary\", VektaarsavgiftSteg2Summary);\r\napp.component(\"henger-kombinasjon\", HengerKombinasjon);\r\napp.component('eierskifte-step1-summary', EierskifteStep1Summary);\r\napp.component('eierskifte-step2-summary', EierskifteStep2Summary);\r\n\r\napp.component('ie-radio-iterator', ImportRadioIterator);\r\napp.component(\"ie-dropdown\", ImportDropdown);\r\napp.component(\"ie-date\", ImportDate);\r\napp.component(\"ie-number\", ImportNumber);\r\napp.component(\"ie-text\", ImportText);\r\napp.component(\"ie-search\", ImportSearch);\r\napp.component(\"debug-tools\", DebugTools);\r\napp.component(\"http-error-message\", HttpErrorMessage);\r\n\r\n/* Didn't find a suitable place to put below code without breaking something... so I put it here */\r\n\r\ndayjs.locale(nb);\r\ndayjs.extend(LocalizedFormat);\r\ndayjs.extend(utc);\r\n\r\ndeclare global {\r\n export interface Number {\r\n format: (n: any, x: any, s: any, c: any) => string;\r\n }\r\n\r\n export interface String {\r\n addPlusIfPositive: (value: number) => string;\r\n format(...replacements: string[]): string;\r\n }\r\n}\r\n\r\nString.prototype.addPlusIfPositive = function(value: number): string {\r\n var dis = this as string;\r\n return value >= 0 ? \"+ \" + dis : dis;\r\n};\r\n\r\nString.prototype.format = function(): string {\r\n var args = arguments;\r\n return this.replace(/{(\\d+)}/g, function(match, number) {\r\n return typeof args[number] != \"undefined\" ? args[number] : match;\r\n });\r\n};\r\n\r\n/**\r\n * Number.prototype.format(n, x, s, c)\r\n *\r\n * @param integer n: length of decimal\r\n * @param integer x: length of whole part\r\n * @param mixed s: sections delimiter\r\n * @param mixed c: decimal delimiter\r\n */\r\nNumber.prototype.format = function(n, x, s, c): string {\r\n var re = \"\\\\d(?=(\\\\d{\" + (x || 3) + \"})+\" + (n > 0 ? \"\\\\D\" : \"$\") + \")\",\r\n num = this.toFixed(Math.max(0, ~~n));\r\n\r\n return (c ? num.replace(\".\", c) : num).replace(new RegExp(re, \"g\"), \"$&\" + (s || \",\"));\r\n};\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../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=2a93a659&lang=scss\"","export enum Calculator {\r\n Eierskifte,\r\n Importavgift,\r\n Eksport,\r\n KvkList,\r\n Ombygging,\r\n Vektaarsavgift\r\n}\r\n","import axios from \"axios\";\r\nimport * as skeno from \"../types\";\r\nimport { useEierskifteStore } from \"../store/eierskifteStore\";\r\n\r\nexport class EierskifteService {\r\n public static kjoretoyTyper: skeno.KeyValuePair[] = [];\r\n public static vektklasserLett: skeno.KeyValuePair[] = [];\r\n public static vektklasserMedium: skeno.KeyValuePair[] = [];\r\n public static vektklasserTung: skeno.KeyValuePair[] = [];\r\n public static registrertArAlternativer: skeno.KeyValuePair[] = [];\r\n\r\n public static load(version: string, language: string): Promise {\r\n console.log(\"EierskifteService: Loading..\");\r\n let resolveLoad: Function = () => {};\r\n const promise: Promise = new Promise((resolve: Function, reject: Function) => {\r\n resolveLoad = resolve;\r\n });\r\n this.fetchFormData(version, language, resolveLoad);\r\n return promise;\r\n }\r\n\r\n private static fetchFormData(version: string, language: string, resolveLoad: Function) {\r\n axios\r\n .get(\"/omregistreringsavgift/init?language=\" + language)\r\n .then(res => {\r\n EierskifteService.kjoretoyTyper = res.data.kjoretoyTyper;\r\n EierskifteService.vektklasserLett = res.data.vektklasserLett;\r\n EierskifteService.vektklasserMedium = res.data.vektklasserMedium;\r\n EierskifteService.vektklasserTung = res.data.vektklasserTung;\r\n EierskifteService.registrertArAlternativer = res.data.registrertArAlternativer;\r\n resolveLoad();\r\n })\r\n .catch(ex => console.log(ex));\r\n }\r\n\r\n public static lookup(dto: any): Promise {\r\n console.log(\"EierskifteService: Lookup..\");\r\n const store = useEierskifteStore();\r\n\r\n const lang = store.language;\r\n const endpoint = \"/omregistreringsavgift/beregn?language=\" + lang;\r\n return axios.post(endpoint, dto);\r\n }\r\n\r\n private static getFormData(): any {\r\n return {\r\n KjoretoyTyper: [\r\n {\r\n key: \"\",\r\n value: \"\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n },\r\n {\r\n key: \"B1\",\r\n value: \"Varebil\"\r\n },\r\n {\r\n key: \"B2\",\r\n value: \"Lastebil\"\r\n },\r\n {\r\n key: \"C\",\r\n value: \"Bobil\"\r\n },\r\n {\r\n key: \"F\",\r\n value: \"Motorsykkel\"\r\n },\r\n {\r\n key: \"Kombinertbil\",\r\n value: \"Kombinert bil\"\r\n },\r\n {\r\n key: \"Moped\",\r\n value: \"Moped\"\r\n },\r\n {\r\n key: \"Biltilhenger\",\r\n value: \"Tilhenger\"\r\n },\r\n {\r\n key: \"UkjentCampingvogn\",\r\n value: \"Campingvogn\"\r\n },\r\n {\r\n key: \"G\",\r\n value: \"Snøscooter\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss\"\r\n },\r\n {\r\n key: \"Trekkbil\",\r\n value: \"Trekkbil\"\r\n }\r\n ],\r\n VektklasserLett: [\r\n {\r\n key: \"\",\r\n value: \"Velg egenvekt\"\r\n },\r\n {\r\n key: \"Max350\",\r\n value: \"Opptil 350 kg\"\r\n },\r\n {\r\n key: \"Over350\",\r\n value: \"Over 350 kg\"\r\n }\r\n ],\r\n VektklasserMedium: [\r\n {\r\n key: \"\",\r\n value: \"Velg egenvekt\"\r\n },\r\n {\r\n key: \"Max1200\",\r\n value: \"Opptil 1200 kg\"\r\n },\r\n {\r\n key: \"Over1200\",\r\n value: \"Over 1200 kg\"\r\n }\r\n ],\r\n VektklasserTung: [\r\n {\r\n key: \"\",\r\n value: \"Velg totalvekt\"\r\n },\r\n {\r\n key: \"Max7500\",\r\n value: \"Opptil 7500 kg\"\r\n },\r\n {\r\n key: \"Over7500\",\r\n value: \"Over 7500 kg\"\r\n }\r\n ],\r\n RegistrertArAlternativer: [\r\n {\r\n key: \"\",\r\n value: \"Velg år\"\r\n },\r\n {\r\n key: \"NullTilTreAr\",\r\n value: \"0 til 3 år siden (2017 - 2014)\"\r\n },\r\n {\r\n key: \"FireTilElleveAr\",\r\n value: \"4 til 11 år siden (2013 - 2006)\"\r\n },\r\n {\r\n key: \"TolvTilTjueniAr\",\r\n value: \"12 til 29 år siden\"\r\n },\r\n {\r\n key: \"TrettiEllerFlereAr\",\r\n value: \"30 eller mer år siden\"\r\n }\r\n ],\r\n Success: true\r\n };\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport * as skeno from \"../types\";\r\nimport { useStore } from \"../store/store\";\r\n\r\nexport class EksportService {\r\n public static kjoretoyTyper: skeno.KeyValuePair[];\r\n public static vektklasser: skeno.KeyValuePair[];\r\n public static drivstoffTyper: skeno.KeyValuePair[];\r\n\r\n public static load(version: string, language: string): Promise {\r\n console.log(\"EksportService: Loading..\");\r\n\r\n let resolveLoad: Function = () => {};\r\n const promise: Promise = new Promise((resolve: Function, reject: Function) => {\r\n resolveLoad = resolve;\r\n });\r\n\r\n const data = EksportService.getFormData();\r\n\r\n this.kjoretoyTyper = data.KjoretoyTyper;\r\n this.vektklasser = data.VektklasseTyper;\r\n resolveLoad();\r\n\r\n return promise;\r\n }\r\n\r\n private static fetchFormData(version: string, language: string, resolveLoad: Function) {\r\n axios\r\n .get(\"/api/eksport?version=\" + version + \"&language=\" + language)\r\n .then(res => {\r\n EksportService.kjoretoyTyper = res.data.kjoretoyTyper;\r\n EksportService.vektklasser = res.data.vektklasseTyper;\r\n EksportService.drivstoffTyper = res.data.drivstoffTyper;\r\n resolveLoad();\r\n })\r\n .catch(ex => console.log(ex));\r\n }\r\n\r\n public static getInputs(): Promise {\r\n return axios.get(\"/api/eksport/\" + \"init?version=v2018&language=no\");\r\n }\r\n\r\n public static calculate(eksport: skeno.EksportForm): Promise {\r\n console.log(\"EksportService: Calculate..\");\r\n const store = useStore();\r\n\r\n // todo: remote next statement when server endpoint is ready\r\n //return this.calculateTest(eksport);\r\n\r\n // todo: remove next statement and map to dto here..\r\n // (ie. use the property-names from the server data-transfer-object)\r\n\r\n const lang = store.language;\r\n const version = \"v2018\";\r\n const endpoint = \"/api/eksport?version=\" + version + \"&language=\" + lang;\r\n\r\n let dto = {\r\n Version: version,\r\n KjoretoyType: eksport.kjoretoyType,\r\n Totalvektklasse: eksport.totalvekt,\r\n DatoForstegangsRegistreringNorge: eksport.registeredDt !== undefined ? new Date(eksport.registeredDt) : null,\r\n DatoEksporteringFraNorge: eksport.exportDt !== undefined ? new Date(eksport.exportDt) : null,\r\n DatoForstegangsRegistreringUtland: null,\r\n AlternativtBruksfradrag: null,\r\n\r\n // Kjøretøyteknisk\r\n MotoreffektKw: eksport.motoreffektType === \"kw\" ? eksport.motoreffekt : eksport.motoreffekt * 0.7355,\r\n Co2GramPerKm: eksport.co2,\r\n NoxMgPerKm: eksport.nox,\r\n EgenvektKg: eksport.egenvekt,\r\n SlagvolumCcm: eksport.engineDisplacement, //Mangler\r\n Drivstofftype: -1 //parseInt(eksport.fuelType) Mangler\r\n\r\n // Alternativ beregning\r\n //AlternativBeregningKilometerstand: null,\r\n //AlternativBeregningHistoriskNypris: null,\r\n //AlternativBeregningGjeldendeBruktprisINorge: null,\r\n //AlternativBeregningGjennomsnitteligKjorteKm: null\r\n };\r\n\r\n return axios.post(endpoint, dto);\r\n }\r\n\r\n public static calculateTest(eksport: skeno.EksportForm): Promise {\r\n console.log(\"EksportService: Calculate Test..\");\r\n\r\n let resolveBeregn: Function = () => {};\r\n let rejectBeregn: Function = () => {};\r\n const promise: Promise = new Promise((resolve: Function, reject: Function) => {\r\n resolveBeregn = resolve;\r\n rejectBeregn = reject;\r\n });\r\n\r\n setTimeout(() => {\r\n const data = {\r\n resultat: {\r\n success: true,\r\n message: \"Her kommer resultat når backend er ferdig!..\"\r\n }\r\n };\r\n resolveBeregn(data);\r\n }, 2000);\r\n\r\n return promise;\r\n }\r\n\r\n private static map(eksport: skeno.EksportForm) {\r\n return {\r\n DatoForstegangsRegistreringNorge: eksport.registeredDt,\r\n DatoEksporteringFraNorge: eksport.exportDt,\r\n TotalvektklasseId: eksport.totalvekt,\r\n KjoretoyTypeId: eksport.kjoretoyType,\r\n MotorvognTekniskeParametere: {\r\n MotoreffektKw: eksport.motoreffekt,\r\n Co2GramPerKm: eksport.co2,\r\n NoxMgPerKm: eksport.nox,\r\n EgenvektKg: eksport.egenvekt,\r\n SlagvolumCcm: 0,\r\n Drivstofftype: eksport.fuelType\r\n }\r\n };\r\n }\r\n\r\n static getFormData(): any {\r\n const data = {\r\n KjoretoyTyper: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n },\r\n {\r\n key: \"A4\",\r\n value: \"Ladbar hybridbil\"\r\n },\r\n {\r\n key: \"A5\",\r\n value: \"Ikke-ladbar hybridbil\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n },\r\n {\r\n key: \"B1\",\r\n value: \"Varebil klasse 2 (grønne skilt)\"\r\n },\r\n {\r\n key: \"C\",\r\n value: \"Bobil\"\r\n },\r\n {\r\n key: \"F\",\r\n value: \"Motorsykkel\"\r\n },\r\n {\r\n key: \"G\",\r\n value: \"Snøscooter\"\r\n },\r\n {\r\n key: \"H\",\r\n value: \"Drosjer m.m.\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss under 6 meter med minst 10 seteplasser i fartsretningen\"\r\n },\r\n {\r\n key: \"A3\",\r\n value: \"Minibuss\"\r\n }\r\n ],\r\n VektklasseTyper: [\r\n {\r\n key: \"\",\r\n value: \"Velg totalvekt\"\r\n },\r\n {\r\n key: \"Max2500\",\r\n value: \"Opptil 2500 kg\"\r\n },\r\n {\r\n key: \"Over2500\",\r\n value: \"Over 2500 kg\"\r\n }\r\n ],\r\n Success: true\r\n };\r\n\r\n return data;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport * as skeno from \"../types\";\r\nimport { useStore } from \"../store/store\";\r\n\r\nexport class ImportavgiftService {\r\n public static kjoretoyTyper: skeno.KeyValuePair[];\r\n public static vektklasser: skeno.KeyValuePair[];\r\n\r\n public static load(version: string, language: string): Promise {\r\n console.log(\"ImportavgiftService: Loading..\");\r\n\r\n let resolveLoad: Function = () => {};\r\n const promise: Promise = new Promise((resolve: Function, reject: Function) => {\r\n resolveLoad = resolve;\r\n });\r\n\r\n // todo: remote next statement and create method for fetching form data from server end-point\r\n // see Eierskifte.fetchFormData() for reference\r\n const data = ImportavgiftService.getFormData();\r\n\r\n this.kjoretoyTyper = data.KjoretoyTyper;\r\n this.vektklasser = data.VektklasseTyper;\r\n resolveLoad();\r\n\r\n return promise;\r\n }\r\n\r\n public static getInputs(): Promise {\r\n return axios.get(\"/api/import/init?version=v2018&language=no\");\r\n }\r\n\r\n public static calculate(importavgift: skeno.ImportavgiftForm): Promise {\r\n console.log(\"ImportavgiftService: Calculate..\");\r\n const store = useStore();\r\n\r\n // todo: remote next statement when server endpoint is ready\r\n //return this.calculateTest(importavgift);\r\n\r\n const version = importavgift.version;\r\n const lang = store.language;\r\n const endpoint = `/api/import/beregn?language=${lang}&version=${version}`;\r\n const dto = this.map(importavgift);\r\n return axios.post(endpoint, dto);\r\n }\r\n\r\n public static map(importavgift: skeno.ImportavgiftForm): any {\r\n return {\r\n Version: importavgift.version,\r\n KjoretoyType: importavgift.kjoretoyType,\r\n ForsteRegistrasjonsdatoIUtland: importavgift.registeredDt,\r\n Innkjopspris: importavgift.currentUsedPrice,\r\n Drivstofftype: importavgift.fuelType,\r\n CO2GramPerKm: importavgift.co2,\r\n NoxMgPerKm: importavgift.nox,\r\n EgenvektKg: importavgift.egenvekt,\r\n MotoreffektKw: importavgift.motoreffektType == \"kw\" ? importavgift.motoreffekt : importavgift.motoreffekt * 1.5,\r\n AlternativBeregning: {\r\n GjeldendeBruktprisINorge: importavgift.currentUsedPrice,\r\n HistoriskNypris: importavgift.histNewPrice,\r\n Kilometerstand: importavgift.mileage,\r\n GjennomsnitteligKjorteKm: importavgift.avgMileage\r\n }\r\n };\r\n }\r\n\r\n public static calculateTest(importavgift: skeno.ImportavgiftForm): Promise {\r\n console.log(\"ImportavgiftService: Calculate Test..\");\r\n\r\n let resolveBeregn: Function = () => {};\r\n let rejectBeregn: Function = () => {};\r\n const promise: Promise = new Promise((resolve: Function, reject: Function) => {\r\n resolveBeregn = resolve;\r\n rejectBeregn = reject;\r\n });\r\n\r\n setTimeout(() => {\r\n const data = {\r\n resultat: {\r\n success: true,\r\n message: \"Her kommer resultat når backend er ferdig!..\"\r\n }\r\n };\r\n resolveBeregn(data);\r\n }, 2000);\r\n\r\n return promise;\r\n }\r\n\r\n static getFormData(): any {\r\n const data = {\r\n KjoretoyTyper: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n },\r\n {\r\n key: \"I2\",\r\n value: \"Elbil\"\r\n },\r\n {\r\n key: \"A4\",\r\n value: \"Ladbar hybridbil\"\r\n },\r\n {\r\n key: \"A5\",\r\n value: \"Ikke-ladbar hybridbil\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n },\r\n {\r\n key: \"B1\",\r\n value: \"Varebil klasse 2 (grønne skilt)\"\r\n },\r\n {\r\n key: \"B2\",\r\n value: \"Lastebil under 7501 kg, ramme maks 300x190cm\"\r\n },\r\n {\r\n key: \"C\",\r\n value: \"Bobil\"\r\n },\r\n {\r\n key: \"I\",\r\n value: \"Veteranbil\"\r\n },\r\n {\r\n key: \"F\",\r\n value: \"Motorsykkel\"\r\n },\r\n {\r\n key: \"X\",\r\n value: \"Veteranmotorsykkel\"\r\n },\r\n {\r\n key: \"G\",\r\n value: \"Snøscooter\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss under 6 meter med minst 10 seteplasser i fartsretningen\"\r\n },\r\n {\r\n key: \"A3\",\r\n value: \"Minibuss\"\r\n }\r\n ],\r\n VektklasseTyper: [\r\n {\r\n key: \"\",\r\n value: \"Velg totalvekt\"\r\n },\r\n {\r\n key: \"Max2500\",\r\n value: \"Opptil 2500 kg\"\r\n },\r\n {\r\n key: \"Over2500\",\r\n value: \"Over 2500 kg\"\r\n }\r\n ],\r\n Success: true\r\n };\r\n\r\n return data;\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport * as skeno from \"../types\";\r\n\r\nexport class TemplateService {\r\n private static resolveKjoretoyList: Function;\r\n\r\n static kjoretoyList: Promise = new Promise((resolve, reject) => {\r\n TemplateService.resolveKjoretoyList = resolve;\r\n });\r\n\r\n static fetchData() {\r\n var fakeApiCall = new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n var json = {\r\n kjoretoyList: [{ key: \"1\", value: \"Personbil\" }, { key: \"2\", value: \"Lastebil\" }, { key: \"3\", value: \"Buss\" }]\r\n };\r\n\r\n resolve(json);\r\n }, 2000);\r\n });\r\n\r\n fakeApiCall\r\n .then((res: any) => {\r\n TemplateService.resolveKjoretoyList(res.kjoretoyList);\r\n console.log(\"fetch-data completed.\");\r\n })\r\n .catch(ex => console.log(ex));\r\n }\r\n}\r\n","import * as skeno from \"../types\";\r\n\r\nimport axios from \"axios\";\r\n\r\nexport class TextService {\r\n public static _engangsavgift: any;\r\n public static getEngangsavgiftText: Function = (key: string) => {\r\n return TextService.getText(TextService._engangsavgift, key);\r\n };\r\n\r\n public static _eierskifte: any;\r\n public static getEierskifteText: Function = (key: string) => {\r\n return TextService.getText(TextService._eierskifte, key);\r\n };\r\n\r\n private static _importavgift: any;\r\n public static getImportavgiftText: Function = (key: string) => {\r\n return TextService.getText(TextService._importavgift, key);\r\n };\r\n\r\n public static getImportTextObject(): string[] {\r\n return TextService._importavgift;\r\n }\r\n\r\n public static getImportavgiftArray(): any {\r\n return TextService._importavgift;\r\n }\r\n\r\n private static _eksport: any;\r\n public static getEksportText: Function = (key: string) => {\r\n return TextService.getText(TextService._eksport, key);\r\n };\r\n\r\n public static getEksportTextObject(): string[] {\r\n return TextService._eksport;\r\n }\r\n\r\n private static _kvklist: any;\r\n public static getKvkText: Function = (key: string) => {\r\n return TextService.getText(TextService._kvklist, key);\r\n };\r\n\r\n private static _ombygging: any;\r\n public static getOmbyggingText: Function = (key: string) => {\r\n return TextService.getText(TextService._ombygging, key);\r\n };\r\n\r\n public static _vektaarsavgift: any;\r\n public static getVektaaravgiftText: Function = (key: string) => {\r\n return TextService.getText(TextService._vektaarsavgift, key);\r\n };\r\n\r\n public static getOmbyggingTextObject(): string[] {\r\n return TextService._ombygging;\r\n }\r\n\r\n public static GetTextForCalculator(calculator: skeno.Calculator, version: string, language: string): Promise {\r\n switch (calculator) {\r\n case skeno.Calculator.Eierskifte:\r\n return this.axiosGet(\"omregistreringavkjoretoy\", version, language);\r\n case skeno.Calculator.Importavgift:\r\n return this.axiosGet(\"ImportAvKjoretoy\", version, language);\r\n case skeno.Calculator.Eksport:\r\n return this.axiosGet(\"EksportAvKjoretoy\", version, language);\r\n case skeno.Calculator.KvkList:\r\n return this.axiosGet(\"kvk\", version, language);\r\n case skeno.Calculator.Ombygging:\r\n return this.axiosGet(\"OmbyggingAvKjoretoy\", version, language);\r\n case skeno.Calculator.Vektaarsavgift:\r\n return this.axiosGet(\"Vektaarsavgift\", version, language);\r\n default:\r\n throw \"Calculator doesn't exist.\";\r\n }\r\n }\r\n\r\n public static load(calculator: skeno.Calculator, version: string, language: string): Promise {\r\n console.log(`TextService: Loading ${skeno.Calculator[calculator]}..`);\r\n let resolveLoad: Function = () => { };\r\n const promise: Promise = new Promise((resolve: Function, reject: Function) => {\r\n resolveLoad = resolve;\r\n });\r\n switch (calculator) {\r\n case skeno.Calculator.Eierskifte:\r\n this.fetch(\r\n \"omregistreringavkjoretoy\",\r\n version,\r\n language,\r\n (txt: any) => {\r\n this._eierskifte = txt;\r\n },\r\n resolveLoad\r\n );\r\n break;\r\n case skeno.Calculator.Importavgift:\r\n this.fetch(\r\n \"ImportAvKjoretoy\",\r\n version,\r\n language,\r\n (txt: any) => {\r\n this._importavgift = txt;\r\n },\r\n resolveLoad\r\n );\r\n break;\r\n case skeno.Calculator.Eksport:\r\n this.fetch(\r\n \"EksportAvKjoretoy\",\r\n version,\r\n language,\r\n (txt: any) => {\r\n this._eksport = txt;\r\n },\r\n resolveLoad\r\n );\r\n break;\r\n case skeno.Calculator.KvkList:\r\n this.fetch(\r\n \"kvk\",\r\n version,\r\n language,\r\n (txt: any) => {\r\n this._kvklist = txt;\r\n },\r\n resolveLoad\r\n );\r\n break;\r\n case skeno.Calculator.Ombygging:\r\n this.fetch(\r\n \"OmbyggingAvKjoretoy\",\r\n version,\r\n language,\r\n (txt: any) => {\r\n this._ombygging = txt;\r\n },\r\n resolveLoad\r\n );\r\n break;\r\n case skeno.Calculator.Vektaarsavgift:\r\n this.fetch(\r\n \"Vektaarsavgift\",\r\n version,\r\n language,\r\n (txt: any) => {\r\n this._vektaarsavgift = txt;\r\n },\r\n resolveLoad\r\n );\r\n break;\r\n default:\r\n throw \"Calculator doesn't exist.\";\r\n }\r\n\r\n return promise;\r\n }\r\n\r\n private static axiosGet(calculator: string, version: string, language: string) {\r\n return axios.get(`/api/texts?calculator=${calculator}&version=${version}&language=${language}`);\r\n }\r\n\r\n private static fetch(calculator: string, version: string, language: string, ref: Function, resolveLoad: Function) {\r\n axios\r\n .get(`/api/texts?calculator=${calculator}&version=${version}&language=${language}`)\r\n .then(res => {\r\n var txt = res.data.texts;\r\n ref(res.data.texts);\r\n resolveLoad();\r\n })\r\n .catch(ex => console.log(ex));\r\n }\r\n\r\n private static getText(texts: any, key: string) {\r\n if (texts != null) {\r\n if (texts.hasOwnProperty(key)) return texts[key];\r\n }\r\n console.log(\"Attempt to get missing text with key: \" + key);\r\n return \"[Mangler tekstverdi (key: \" + key + \")]\";\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport * as skeno from \"../types\";\r\nimport KvkListComponent from \"../components/kvklist/kvklist.vue\";\r\n\r\nexport class KvkListService {\r\n public static allData: any[] = [];\r\n public static initData: any[] = [];\r\n public static categories: any[] = [];\r\n public static kjoretoyTyper: skeno.KeyValuePair[] = [];\r\n public static drivhjulTyper: skeno.KeyValuePair[] = [];\r\n public static drivstoffTyper: skeno.KeyValuePair[] = [];\r\n public static girTyper: skeno.KeyValuePair[] = [];\r\n public static karosseriTyper: skeno.KeyValuePair[] = [];\r\n\r\n public static load(version: string, language: string): Promise {\r\n console.log(\"KvkListService: Loading..\");\r\n let resolveLoad: Function = () => {};\r\n const promise: Promise = new Promise((resolve: Function, reject: Function) => {\r\n resolveLoad = resolve;\r\n });\r\n\r\n //this.setStaticData(resolveLoad);\r\n this.fetch(version, language, resolveLoad);\r\n\r\n return promise;\r\n }\r\n\r\n static fetch(version: string, language: string, resolveLoad: Function) {\r\n axios\r\n .get(\"api/Kvk/InitData\")\r\n .then(response => {\r\n this.allData = response.data;\r\n this.initData = response.data.initData;\r\n this.categories = response.data.categories;\r\n this.kjoretoyTyper = response.data.categories.Kategori_Kjoretoytype;\r\n this.drivhjulTyper = response.data.categories.Kategori_Drivhjul;\r\n this.drivstoffTyper = response.data.categories.Kategori_Drivstoff;\r\n this.girTyper = response.data.categories.Kategori_Girtype;\r\n this.karosseriTyper = response.data.categories.Kategori_Karosseri;\r\n\r\n resolveLoad();\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n });\r\n }\r\n\r\n static lookup(selectedYear: string, selectedBrand: string): Promise {\r\n console.log(\"KvkListService: Lookup..\");\r\n\r\n return axios.get(`api/Kvk/lookup?year=${selectedYear}&brand=${selectedBrand}`);\r\n }\r\n\r\n // static setStaticData(resolveLoad: Function) {\r\n // const data = KvkListService.getStaticData();\r\n // this.allData = data;\r\n // this.initData = data.InitData;\r\n // this.categories = data.Categories;\r\n // this.kjoretoyTyper = data.Categories.Kategori_Kjoretoytype;\r\n // this.drivhjulTyper = data.Categories.Kategori_Drivhjul;\r\n // this.drivstoffTyper = data.Categories.Kategori_Drivstoff;\r\n // this.girTyper = data.Categories.Kategori_Girtype;\r\n // this.karosseriTyper = data.Categories.Kategori_Karosseri;\r\n // resolveLoad();\r\n // }\r\n\r\n // static getStaticData(): any {\r\n // return {\r\n // InitData: {\r\n // \"1983\": [\"MERCEDES-BENZ\", \"VOLVO\"],\r\n // \"1984\": [\"MERCEDES-BENZ\", \"PORSCHE\", \"TOYOTA\", \"VOLVO\"],\r\n // \"1985\": [\"BMW\", \"MERCEDES-BENZ\", \"SUBARU\", \"VOLVO\"],\r\n // \"1986\": [\r\n // \"KAWASAKI\",\r\n // \"MERCEDES-BENZ\",\r\n // \"PORSCHE\",\r\n // \"SAAB\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1987\": [\r\n // \"BMW\",\r\n // \"MERCEDES-BENZ\",\r\n // \"PORSCHE\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1988\": [\r\n // \"ALFA ROMEO\",\r\n // \"BMW\",\r\n // \"CITROEN\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"SAAB\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1989\": [\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CHRYSLER (USA)\",\r\n // \"MERCEDES-BENZ\",\r\n // \"NISSAN\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"ROLLS-ROYCE\",\r\n // \"SAAB\",\r\n // \"VOLVO\",\r\n // \"YAMAHA\"\r\n // ],\r\n // \"1990\": [\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"FORD\",\r\n // \"MERCEDES-BENZ\",\r\n // \"PORSCHE\",\r\n // \"SAAB\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1991\": [\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CITROEN\",\r\n // \"FORD\",\r\n // \"MAZDA\",\r\n // \"MERCEDES-BENZ\",\r\n // \"OPEL\",\r\n // \"PORSCHE\",\r\n // \"SAAB\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1992\": [\r\n // \"BMW\",\r\n // \"CITROEN\",\r\n // \"FORD\",\r\n // \"JEEP\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"OPEL\",\r\n // \"PONTIAC\",\r\n // \"PORSCHE\",\r\n // \"VOLKSWAGEN\"\r\n // ],\r\n // \"1993\": [\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"FIAT\",\r\n // \"MAZDA\",\r\n // \"MERCEDES-BENZ\",\r\n // \"PORSCHE\",\r\n // \"SAAB\",\r\n // \"TOYOTA\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1994\": [\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CITROEN\",\r\n // \"FORD\",\r\n // \"JAGUAR\",\r\n // \"LANCIA\",\r\n // \"MERCEDES-BENZ\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"SAAB\",\r\n // \"SEAT\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1995\": [\r\n // \"ALFA ROMEO\",\r\n // \"ALPINA\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"FORD\",\r\n // \"LAND ROVER\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"PORSCHE\",\r\n // \"SAAB\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1996\": [\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"FORD\",\r\n // \"JAGUAR\",\r\n // \"LAND ROVER\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PONTIAC\",\r\n // \"PORSCHE\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1997\": [\r\n // \"ALFA ROMEO\",\r\n // \"ASTON MARTIN\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CITROEN\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"JAGUAR\",\r\n // \"JEEP\",\r\n // \"LEXUS\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PORSCHE\",\r\n // \"RENAULT\",\r\n // \"SAAB\",\r\n // \"UKJENT FABRIKAT\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1998\": [\r\n // \"ALPINA\",\r\n // \"ASTON MARTIN\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"BUICK\",\r\n // \"CADILLAC\",\r\n // \"CHEVROLET\",\r\n // \"CHRYSLER (USA)\",\r\n // \"CITROEN\",\r\n // \"DAIHATSU\",\r\n // \"DODGE\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"JAGUAR\",\r\n // \"LEXUS\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MERCURY\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"RENAULT\",\r\n // \"SAAB\",\r\n // \"SEAT\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"1999\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"JAGUAR\",\r\n // \"LEXUS\",\r\n // \"LTI\",\r\n // \"MAZDA\",\r\n // \"MERCEDES-BENZ\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PORSCHE\",\r\n // \"RENAULT\",\r\n // \"ROVER\",\r\n // \"SAAB\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2000\": [\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"DAEWOO\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"HARLEY-DAVIDSON\",\r\n // \"HONDA\",\r\n // \"JAGUAR\",\r\n // \"LANCIA\",\r\n // \"LAND ROVER\",\r\n // \"LEXUS\",\r\n // \"MASERATI\",\r\n // \"MAZDA\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"RENAULT\",\r\n // \"SAAB\",\r\n // \"SEAT\",\r\n // \"SMART\",\r\n // \"SUBARU\",\r\n // \"SUZUKI\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2001\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"JAGUAR\",\r\n // \"LAND ROVER\",\r\n // \"LEXUS\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"PEUGEOT\",\r\n // \"QUATTRO\",\r\n // \"RENAULT\",\r\n // \"ROVER\",\r\n // \"SAAB\",\r\n // \"SEAT\",\r\n // \"SMART\",\r\n // \"SUBARU\",\r\n // \"SUZUKI\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2002\": [\r\n // \"AUDI\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CHEVROLET\",\r\n // \"CHRYSLER (USA)\",\r\n // \"CITROEN\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"JAGUAR\",\r\n // \"LANCIA\",\r\n // \"LAND ROVER\",\r\n // \"LINCOLN\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"RENAULT\",\r\n // \"SAAB\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2003\": [\r\n // \"ALFA ROMEO\",\r\n // \"ALPINA\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"FERRARI\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"HYUNDAI\",\r\n // \"JAGUAR\",\r\n // \"JEEP\",\r\n // \"LANCIA\",\r\n // \"LAND ROVER\",\r\n // \"MAZDA\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"OPEL\",\r\n // \"PORSCHE\",\r\n // \"QUATTRO\",\r\n // \"RENAULT\",\r\n // \"ROVER\",\r\n // \"SAAB\",\r\n // \"SKODA\",\r\n // \"SMART\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2004\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"CHRYSLER (USA)\",\r\n // \"CITROEN\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"JAGUAR\",\r\n // \"LANCIA\",\r\n // \"LINCOLN\",\r\n // \"MAZDA\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MG\",\r\n // \"MITSUBISHI\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"QUATTRO\",\r\n // \"RENAULT\",\r\n // \"SAAB\",\r\n // \"SEAT\",\r\n // \"SKODA\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2005\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CHRYSLER (USA)\",\r\n // \"CITROEN\",\r\n // \"DODGE\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"LAMBORGHINI\",\r\n // \"LEXUS\",\r\n // \"MASERATI\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"RENAULT\",\r\n // \"ROVER\",\r\n // \"SAAB\",\r\n // \"SKODA\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2006\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"CHRYSLER (USA)\",\r\n // \"CITROEN\",\r\n // \"DUCATI\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"HYUNDAI\",\r\n // \"JAGUAR\",\r\n // \"LAMBORGHINI\",\r\n // \"LAND ROVER\",\r\n // \"LEXUS\",\r\n // \"MAZDA\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"QUATTRO\",\r\n // \"RENAULT\",\r\n // \"SEAT\",\r\n // \"SKODA\",\r\n // \"TOYOTA\",\r\n // \"UKJENT FABRIKAT\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2007\": [\r\n // \"ACURA\",\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"CHEVROLET\",\r\n // \"CHRYSLER (USA)\",\r\n // \"CITROEN\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"HYUNDAI\",\r\n // \"INFINITI\",\r\n // \"JAGUAR\",\r\n // \"LADA-VAZ\",\r\n // \"LAND ROVER\",\r\n // \"MASERATI\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"QUATTRO\",\r\n // \"RENAULT\",\r\n // \"SAAB\",\r\n // \"SEAT\",\r\n // \"SKODA\",\r\n // \"SSANGYONG\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2008\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"DAIHATSU\",\r\n // \"DODGE\",\r\n // \"FERRARI\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"JAGUAR\",\r\n // \"LAMBORGHINI\",\r\n // \"LAND ROVER\",\r\n // \"LINCOLN\",\r\n // \"MASERATI\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"RENAULT\",\r\n // \"SAAB\",\r\n // \"SKODA\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2009\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"DACIA\",\r\n // \"FERRARI\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"FORD-CNG-TECHNIK\",\r\n // \"HONDA\",\r\n // \"HYUNDAI\",\r\n // \"JAGUAR\",\r\n // \"JEEP\",\r\n // \"LAND ROVER\",\r\n // \"LEXUS\",\r\n // \"MASERATI\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MINI\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"QUATTRO\",\r\n // \"RENAULT\",\r\n // \"SAAB\",\r\n // \"SEAT\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2010\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BMW\",\r\n // \"CHEVROLET\",\r\n // \"CHRYSLER (USA)\",\r\n // \"CITROEN\",\r\n // \"DACIA\",\r\n // \"DODGE\",\r\n // \"DUCATI\",\r\n // \"FERRARI\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"HYUNDAI\",\r\n // \"ISUZU\",\r\n // \"JAGUAR\",\r\n // \"KIA\",\r\n // \"LAND ROVER\",\r\n // \"LEXUS\",\r\n // \"LINCOLN\",\r\n // \"MASERATI\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MINI\",\r\n // \"MITSUBISHI\",\r\n // \"MORGAN\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"QUATTRO\",\r\n // \"RENAULT\",\r\n // \"ROLLS-ROYCE\",\r\n // \"SAAB\",\r\n // \"SUBARU\",\r\n // \"SUZUKI\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2011\": [\r\n // \"ALFA ROMEO\",\r\n // \"ASTON MARTIN\",\r\n // \"AUDI\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"CHEVROLET\",\r\n // \"CHRYSLER (USA)\",\r\n // \"CITROEN\",\r\n // \"DODGE\",\r\n // \"FERRARI\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"HYUNDAI\",\r\n // \"LAND ROVER\",\r\n // \"LEXUS\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MINI\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"QUATTRO\",\r\n // \"RENAULT\",\r\n // \"SAAB\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2012\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CITROEN\",\r\n // \"DUCATI\",\r\n // \"FERRARI\",\r\n // \"FORD\",\r\n // \"HONDA\",\r\n // \"HYUNDAI\",\r\n // \"LAND ROVER\",\r\n // \"MASERATI\",\r\n // \"MAZDA\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MINI\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"QUATTRO\",\r\n // \"SEAT\",\r\n // \"SKODA\",\r\n // \"SSANGYONG\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2013\": [\r\n // \"ALFA ROMEO\",\r\n // \"ASTON MARTIN\",\r\n // \"AUDI\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"DODGE\",\r\n // \"FERRARI\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"IVECO\",\r\n // \"JAGUAR\",\r\n // \"JAGUAR LAND ROVER LIMITED\",\r\n // \"JEEP\",\r\n // \"LAND ROVER\",\r\n // \"LEXUS\",\r\n // \"MASERATI\",\r\n // \"MAZDA\",\r\n // \"MCLAREN\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MINI\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"RENAULT\",\r\n // \"ROLLS-ROYCE\",\r\n // \"SEAT\",\r\n // \"SKODA\",\r\n // \"SMART\",\r\n // \"SUBARU\",\r\n // \"TOYOTA\",\r\n // \"TRIUMPH\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2014\": [\r\n // \"ALFA ROMEO\",\r\n // \"ALPINA\",\r\n // \"AUDI\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"DODGE\",\r\n // \"FERRARI\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"JAGUAR (JAGUAR LAND ROVER LI\",\r\n // \"JAGUAR LAND ROVER LIMITED\",\r\n // \"JEEP\",\r\n // \"KIA\",\r\n // \"LAMBORGHINI\",\r\n // \"LAND ROVER\",\r\n // \"LEXUS\",\r\n // \"MASERATI\",\r\n // \"MCLAREN\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MINI\",\r\n // \"MITSUBISHI\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"RENAULT\",\r\n // \"ROLLS-ROYCE\",\r\n // \"SEAT\",\r\n // \"SUZUKI\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2015\": [\r\n // \"ASTON MARTIN\",\r\n // \"AUDI\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CADILLAC\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"DODGE\",\r\n // \"FERRARI\",\r\n // \"FIAT\",\r\n // \"FORD\",\r\n // \"FORD-CNG-TECHNIK\",\r\n // \"JAGUAR\",\r\n // \"JAGUAR LAND ROVER LIMITED\",\r\n // \"LAMBORGHINI\",\r\n // \"LAND ROVER\",\r\n // \"LEXUS\",\r\n // \"MASERATI\",\r\n // \"MCLAREN\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MINI\",\r\n // \"MITSUBISHI\",\r\n // \"NISSAN\",\r\n // \"OPEL\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"RAM\",\r\n // \"RENAULT\",\r\n // \"ROLLS-ROYCE\",\r\n // \"SEAT\",\r\n // \"SKODA\",\r\n // \"SUZUKI\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2016\": [\r\n // \"ASTON MARTIN\",\r\n // \"AUDI\",\r\n // \"AUTOMOBILI LAMBORGHINI S.P.A\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"DODGE\",\r\n // \"FERRARI\",\r\n // \"FORD\",\r\n // \"FORD-CNG-TECHNIK\",\r\n // \"GMC\",\r\n // \"JAGUAR\",\r\n // \"LAMBORGHINI\",\r\n // \"LAND ROVER\",\r\n // \"MCLAREN\",\r\n // \"MERCEDES-AMG\",\r\n // \"MERCEDES-BENZ\",\r\n // \"MITSUBISHI\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"SEAT\",\r\n // \"SKODA\",\r\n // \"TOYOTA\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2017\": [\r\n // \"ALFA ROMEO\",\r\n // \"AUDI\",\r\n // \"AUTOMOBILI LAMBORGHINI S.P.A\",\r\n // \"BENTLEY\",\r\n // \"BMW\",\r\n // \"CHEVROLET\",\r\n // \"CITROEN\",\r\n // \"FERRARI\",\r\n // \"FORD\",\r\n // \"GMC\",\r\n // \"MERCEDES-BENZ\",\r\n // \"PEUGEOT\",\r\n // \"PORSCHE\",\r\n // \"ROLLS-ROYCE\",\r\n // \"SEAT\",\r\n // \"VOLKSWAGEN\",\r\n // \"VOLVO\"\r\n // ],\r\n // \"2018\": [\"BMW\"]\r\n // },\r\n // Categories: {\r\n // Kategori_Kjoretoytype: [\r\n // {\r\n // Verdi: \"Personbil\",\r\n // Tekst: \"Personbil\"\r\n // },\r\n // {\r\n // Verdi: \"Ladbar hybridbil\",\r\n // Tekst: \"Ladbar hybridbil\"\r\n // },\r\n // {\r\n // Verdi: \"Ikke-ladbar hybridbil\",\r\n // Tekst: \"Ikke-ladbar hybridbil\"\r\n // },\r\n // {\r\n // Verdi: \"Varebil klasse 1\",\r\n // Tekst: \"Varebil klasse 1\"\r\n // },\r\n // {\r\n // Verdi: \"Varebil klasse 2\",\r\n // Tekst: \"Varebil klasse 2\"\r\n // },\r\n // {\r\n // Verdi: \"Motorsykkel\",\r\n // Tekst: \"Motorsykkel\"\r\n // },\r\n // {\r\n // Verdi: \"Drosje\",\r\n // Tekst: \"Drosje\"\r\n // },\r\n // {\r\n // Verdi: \"Minibuss\",\r\n // Tekst: \"Minibuss\"\r\n // }\r\n // ],\r\n // Kategori_Karosseri: [\r\n // {\r\n // Verdi: \"Cabriolet\",\r\n // Tekst: \"Cabriolet\"\r\n // },\r\n // {\r\n // Verdi: \"Combi coupe\",\r\n // Tekst: \"Combi coupe\"\r\n // },\r\n // {\r\n // Verdi: \"Coupe\",\r\n // Tekst: \"Coupe\"\r\n // },\r\n // {\r\n // Verdi: \"Flerbruksbil\",\r\n // Tekst: \"Flerbruksbil\"\r\n // },\r\n // {\r\n // Verdi: \"Kassebil\",\r\n // Tekst: \"Kassebil\"\r\n // },\r\n // {\r\n // Verdi: \"Pick-up\",\r\n // Tekst: \"Pick-up\"\r\n // },\r\n // {\r\n // Verdi: \"SUV\",\r\n // Tekst: \"SUV\"\r\n // },\r\n // {\r\n // Verdi: \"Sedan\",\r\n // Tekst: \"Sedan\"\r\n // },\r\n // {\r\n // Verdi: \"Stasjonsvogn\",\r\n // Tekst: \"Stasjonsvogn\"\r\n // }\r\n // ],\r\n // Kategori_Drivstoff: [\r\n // {\r\n // Verdi: \"Bensin\",\r\n // Tekst: \"Bensin\"\r\n // },\r\n // {\r\n // Verdi: \"Dieselolje\",\r\n // Tekst: \"Dieselolje\"\r\n // },\r\n // {\r\n // Verdi: \"Hybrid\",\r\n // Tekst: \"Hybrid\"\r\n // }\r\n // ],\r\n // Kategori_Drivhjul: [\r\n // {\r\n // Verdi: \"F\",\r\n // Tekst: \"Forhjulstrekk\"\r\n // },\r\n // {\r\n // Verdi: \"B\",\r\n // Tekst: \"Bakhjulstrekk\"\r\n // },\r\n // {\r\n // Verdi: \"4WD\",\r\n // Tekst: \"Firehjulstrekk\"\r\n // }\r\n // ],\r\n // Kategori_Girtype: [\r\n // {\r\n // Verdi: \"A\",\r\n // Tekst: \"Automat\"\r\n // },\r\n // {\r\n // Verdi: \"M\",\r\n // Tekst: \"Manuel\"\r\n // }\r\n // ]\r\n // },\r\n // Success: true\r\n // };\r\n // }\r\n}\r\n","import axios from \"axios\";\r\nimport * as skeno from \"../types\";\r\nimport { useStore } from \"../store/store\";\r\n\r\nexport class OmbyggingService {\r\n public static kjoretoyTypeListeGammeltKjoretoy: skeno.KeyValuePair[] = [];\r\n public static kjoretoyTypeListeNyttKjoretoyAlternativer: skeno.KeyValuePair[] = [];\r\n public static kjoretoyTypeListeNyttKjoretoy: skeno.KeyValuePair[] = [];\r\n public static vektklasser: skeno.KeyValuePair[] = [];\r\n\r\n public static getInputs(): Promise {\r\n return axios.get(\"/api/Ombygging/init?version=v2018&language=no\");\r\n }\r\n\r\n public static load(version: string, language: string): Promise {\r\n console.log(\"OmbyggingService: Loading..\");\r\n let resolveLoad: Function = () => {};\r\n const promise: Promise = new Promise((resolve: Function, reject: Function) => {\r\n resolveLoad = resolve;\r\n });\r\n\r\n var data = this.getFormData();\r\n OmbyggingService.kjoretoyTypeListeGammeltKjoretoy = data.KjoretoyTypeListeGammeltKjoretoy;\r\n OmbyggingService.kjoretoyTypeListeNyttKjoretoyAlternativer = data.KjoretoyTypeListeNyttKjoretoyAlternativer;\r\n OmbyggingService.kjoretoyTypeListeNyttKjoretoy = data.KjoretoyTypeListeNyttKjoretoy;\r\n OmbyggingService.vektklasser = data.VektklasseTyper;\r\n resolveLoad();\r\n\r\n return promise;\r\n }\r\n\r\n public static calculate(ombygging: skeno.OmbyggingForm): Promise {\r\n console.log(\"OmbyggingService: Calculate..\");\r\n const store = useStore();\r\n\r\n const version = ombygging.version;\r\n const lang = store.language;\r\n const endpoint = `/api/Ombygging/Beregn?language=${lang}&version=${version}`;\r\n const dto = this.map(ombygging);\r\n return axios.post(endpoint, dto);\r\n }\r\n\r\n public static map(ombygging: skeno.OmbyggingForm): any {\r\n return {\r\n Version: ombygging.version,\r\n KjoretoyType: ombygging.kjoretoyType,\r\n NyKjoretoyType: ombygging.kjoretoyTypeNy,\r\n DatoForstegangsRegistreringNorge: ombygging.registeredDt,\r\n DatoForstegangsRegistreringUtland: ombygging.registeredAbroadDt,\r\n Drivstofftype: ombygging.fuelType,\r\n NyDrivstofftype: ombygging.fuelTypeNy,\r\n CO2GramPerKm: ombygging.co2,\r\n NyCO2GramPerKm: ombygging.co2Ny,\r\n NoxMgPerKm: ombygging.nox,\r\n NyNoxMgPerKm: ombygging.noxNy,\r\n SlagvolumCcm: ombygging.slagvolum,\r\n NySlagvolumCcm: ombygging.slagvolumNy,\r\n Totalvekt: ombygging.totalvekt,\r\n NyTotalvekt: ombygging.totalvektNy,\r\n EgenvektKg: ombygging.egenvekt,\r\n MotoreffektKw: ombygging.motoreffekt,\r\n NyMotoreffektKw: ombygging.motoreffektNy\r\n };\r\n }\r\n\r\n public static calculateTest(ombygging: skeno.OmbyggingForm): Promise {\r\n console.log(\"OmbyggingService: Calculate Test..\");\r\n\r\n let resolveBeregn: Function = () => {};\r\n let rejectBeregn: Function = () => {};\r\n const promise: Promise = new Promise((resolve: Function, reject: Function) => {\r\n resolveBeregn = resolve;\r\n rejectBeregn = reject;\r\n });\r\n\r\n setTimeout(() => {\r\n const data = {\r\n resultat: {\r\n success: true,\r\n message: \"Her kommer resultat når backend er ferdig!..\"\r\n }\r\n };\r\n resolveBeregn(data);\r\n }, 2000);\r\n\r\n return promise;\r\n }\r\n\r\n private static getFormData(): any {\r\n return {\r\n KjoretoyTypeListeGammeltKjoretoy: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n },\r\n {\r\n key: \"Z\",\r\n value: \"Avgiftsfri\"\r\n },\r\n {\r\n key: \"C\",\r\n value: \"Bobil\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss under 6 meter med minst 10 seteplasser i fartsretningen\"\r\n },\r\n {\r\n key: \"A3\",\r\n value: \"Minibuss\"\r\n },\r\n {\r\n key: \"B2\",\r\n value: \"Lastebil under 7501 kg, ramme maks 300x190cm\"\r\n },\r\n {\r\n key: \"F\",\r\n value: \"Motorsykkel\"\r\n },\r\n {\r\n key: \"G\",\r\n value: \"Snøscooter\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n },\r\n {\r\n key: \"B1\",\r\n value: \"Varebil klasse 2 (grønne skilt)\"\r\n }\r\n ],\r\n KjoretoyTypeListeNyttKjoretoyAlternativer: [\r\n {\r\n key: \"A1\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n }\r\n ]\r\n },\r\n {\r\n key: \"Z\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"Z\",\r\n value: \"Avgiftsfri\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n },\r\n {\r\n key: \"B1\",\r\n value: \"Varebil klasse 2 (grønne skilt)\"\r\n },\r\n {\r\n key: \"B2\",\r\n value: \"Lastebil under 7501 kg, ramme maks 300x190cm\"\r\n },\r\n {\r\n key: \"C\",\r\n value: \"Bobil\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss under 6 meter med minst 10 seteplasser i fartsretningen\"\r\n }\r\n ]\r\n },\r\n {\r\n key: \"C\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"C\",\r\n value: \"Bobil\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n },\r\n {\r\n key: \"B1\",\r\n value: \"Varebil klasse 2 (grønne skilt)\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss under 6 meter med minst 10 seteplasser i fartsretningen\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n }\r\n ]\r\n },\r\n {\r\n key: \"J\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss under 6 meter med minst 10 seteplasser i fartsretningen\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n }\r\n ]\r\n },\r\n {\r\n key: \"A3\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"A3\",\r\n value: \"Minibuss\"\r\n }\r\n ]\r\n },\r\n {\r\n key: \"B2\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"B2\",\r\n value: \"Lastebil under 7501 kg, ramme maks 300x190cm\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss under 6 meter med minst 10 seteplasser i fartsretningen\"\r\n }\r\n ]\r\n },\r\n {\r\n key: \"F\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"F\",\r\n value: \"Motorsykkel\"\r\n }\r\n ]\r\n },\r\n {\r\n key: \"G\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"G\",\r\n value: \"Snøscooter\"\r\n }\r\n ]\r\n },\r\n {\r\n key: \"A2\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n }\r\n ]\r\n },\r\n {\r\n key: \"B1\",\r\n value: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n },\r\n {\r\n key: \"B1\",\r\n value: \"Varebil klasse 2 (grønne skilt)\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss under 6 meter med minst 10 seteplasser i fartsretningen\"\r\n }\r\n ]\r\n }\r\n ],\r\n KjoretoyTypeListeNyttKjoretoy: [\r\n {\r\n key: \"\",\r\n value: \"Velg kjøretøy\"\r\n },\r\n {\r\n key: \"A1\",\r\n value: \"Personbil\"\r\n },\r\n {\r\n key: \"Z\",\r\n value: \"Avgiftsfri\"\r\n },\r\n {\r\n key: \"A2\",\r\n value: \"Varebil klasse 1 (personbil)\"\r\n },\r\n {\r\n key: \"B1\",\r\n value: \"Varebil klasse 2 (grønne skilt)\"\r\n },\r\n {\r\n key: \"B2\",\r\n value: \"Lastebil under 7501 kg, ramme maks 300x190cm\"\r\n },\r\n {\r\n key: \"C\",\r\n value: \"Bobil\"\r\n },\r\n {\r\n key: \"J\",\r\n value: \"Buss under 6 meter med minst 10 seteplasser i fartsretningen\"\r\n },\r\n {\r\n key: \"A3\",\r\n value: \"Minibuss\"\r\n },\r\n {\r\n key: \"F\",\r\n value: \"Motorsykkel\"\r\n },\r\n {\r\n key: \"G\",\r\n value: \"Snøscooter\"\r\n }\r\n ],\r\n VektklasseTyper: [\r\n {\r\n key: \"\",\r\n value: \"Velg totalvekt\"\r\n },\r\n {\r\n key: \"Max2500\",\r\n value: \"Opptil 2500 kg\"\r\n },\r\n {\r\n key: \"Over2500\",\r\n value: \"Over 2500 kg\"\r\n }\r\n ],\r\n Success: true\r\n };\r\n }\r\n}\r\n","import * as skeno from \"../types\";\r\n\r\nimport { useStore } from \"../store/store\";\r\nimport { RouteLocationNormalized } from \"vue-router\";\r\n\r\n/**\r\n * Sets data on the Vue instance from a reponse\r\n */\r\nexport function setData(to: RouteLocationNormalized, responseTexts: any, responseInputs: any): void {\r\n const store = useStore();\r\n (window).texts = responseTexts.data.texts;\r\n const responseInputsData = responseInputs.data || {};\r\n\r\n // add property \"isHidden\" before putting it into Vue's data\r\n // this will ensure that the property is observable\r\n responseInputsData.forEach(function(item: any) {\r\n item.isHidden = false;\r\n });\r\n\r\n store.steps = responseInputsData;\r\n store.texts = responseTexts.data.texts;\r\n}\r\n\r\n/**\r\n * Picks the right async methods to use for calculator and returns a Promise\r\n */\r\nexport function getTextAndInputsAsync(calculator: skeno.Calculator, to: any): Promise {\r\n const store = useStore();\r\n const lang = to.query.language as string || \"no\";\r\n store.setLanguage(lang);\r\n\r\n const version = to.query.version as string || \"v2018\";\r\n store.version = version;\r\n var GetInputsMethod: () => Promise;\r\n\r\n switch (calculator) {\r\n case skeno.Calculator.Importavgift:\r\n GetInputsMethod = () => skeno.ImportavgiftService.getInputs();\r\n break;\r\n case skeno.Calculator.Eksport:\r\n GetInputsMethod = () => skeno.EksportService.getInputs();\r\n break;\r\n case skeno.Calculator.Ombygging:\r\n GetInputsMethod = () => skeno.OmbyggingService.getInputs();\r\n break;\r\n default:\r\n console.log(\"WHAT\");\r\n throw \"No way\";\r\n }\r\n return Promise.all([skeno.TextService.GetTextForCalculator(calculator, store.version, store.language), GetInputsMethod()]);\r\n}\r\n"],"sourceRoot":""}