{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7e02","webpack:///./src/plugins/vuetify.ts","webpack:///./src/service/user/ability.ts","webpack:///./src/service/options-issuances/options-issuances.service.ts","webpack:///./src/service/stakeholders/stakeholders.service.ts","webpack:///./src/App.vue?c58e","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?bff9","webpack:///./src/service/user/user.service.ts","webpack:///./src/service/valuations/valuations.service.ts","webpack:///./src/core/store.ts","webpack:///./src/service/paging.ts","webpack:///./src/service/share-classes/__mocks__/data.ts","webpack:///./src/service/companies/__mocks__/data.ts","webpack:///./src/service/companies/__mocks__/handlers.ts","webpack:///./src/service/documents/__mocks__/data.ts","webpack:///./src/service/options-pools/__mocks__/data.ts","webpack:///./src/service/options-issuances/__mocks__/data.ts","webpack:///./src/service/user/__mocks__/data.ts","webpack:///./src/service/shares-issuances/__mocks__/data.ts","webpack:///./src/service/stakeholders/__mocks__/data.ts","webpack:///./src/service/stakeholders/__mocks__/handlers.ts","webpack:///./src/service/user/__mocks__/handlers.ts","webpack:///./src/service/options-pools/__mocks__/handlers.ts","webpack:///./src/service/documents/__mocks__/helpers.ts","webpack:///./src/service/options-issuances/__mocks__/handlers.ts","webpack:///./src/service/shares-issuances/__mocks__/handlers.ts","webpack:///./src/service/valuations/__mocks__/data.ts","webpack:///./src/service/documents/__mocks__/handlers.ts","webpack:///./src/service/share-classes/__mocks__/handlers.ts","webpack:///./src/service/valuations/__mocks__/handlers.ts","webpack:///./src/service/mocks.ts","webpack:///./src/service/api.ts","webpack:///./src/service/share-classes/share-classes.service.ts","webpack:///./src/service/options-pools/options-pools.service.ts","webpack:///./src/service/companies/companies.store.ts","webpack:///./src/service/documents/documents.service.ts","webpack:///./src/lang/en.ts","webpack:///./src/app.store.ts","webpack:///./src/views/Login.vue?adc0","webpack:///src/views/Login.vue","webpack:///./src/views/Login.vue?5da6","webpack:///./src/views/Login.vue","webpack:///./src/views/SignUp.vue?0582","webpack:///./src/views/SignUp.vue","webpack:///./src/views/SignUp.vue?d586","webpack:///./src/views/SignUp.vue?8193","webpack:///./src/views/contactus/ContactUs.vue?f90f","webpack:///./src/views/contactus/ContactUs.vue","webpack:///./src/views/contactus/ContactUs.vue?505c","webpack:///./src/views/contactus/ContactUs.vue?7e18","webpack:///./src/views/Glossary/Glossary.vue?f279","webpack:///./src/views/Glossary/Glossary.vue","webpack:///./src/views/Glossary/Glossary.vue?622a","webpack:///./src/views/Glossary/Glossary.vue?3279","webpack:///./src/views/PageNotFound.vue?a957","webpack:///./src/views/PageNotFound.vue","webpack:///./src/views/RequestResetPassword.vue?5fff","webpack:///./src/views/RequestResetPassword.vue","webpack:///./src/views/RequestResetPassword.vue?fe37","webpack:///./src/views/RequestResetPassword.vue?ba26","webpack:///./src/views/Forbidden.vue?9f60","webpack:///./src/views/Forbidden.vue","webpack:///./src/router/index.ts","webpack:///./src/service/shares-issuances/shares-issuances.service.ts","webpack:///./src/plugins/validation.ts","webpack:///./src/service/companies/companies.service.ts","webpack:///./src/main.ts","webpack:///./src/lang/el.ts","webpack:///./src/plugins/i18n.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","use","lang","params","toString","theme","options","customProperties","themes","light","primary","secondary","accent","warning","info","success","ability","setUser","user","role","update","action","subject","conditions","$in","getOptionsIssuanceAnalysis","id","grantDate","Date","vestingStartDate","vestingEndDate","getOptionsIssuanceDetails","getOptionsIssuancesAnalysisOfCompany","companyId","map","x","getOptionsIssuancesAnalysisOfStakeholder","stakeholderId","optionStatus","filter","status","getOptionsIssuancesOverviewOfStakeholder","createOptionsIssuance","optionsIssuance","post","createOptionsIssuanceDraft","cancelOptionsIssuance","postForm","vestOptionsIssuance","exerciseOptionsIssuance","updateOptionsIssuance","patch","updateOptionsIssuanceDraft","deleteOptionsIssuanceDraft","delete","getStakeholdersOfCompany","include","join","getStakeholdersOfPool","poolId","getStakeholder","createStakeholder","stakeholder","createEmailForAllStakeholders","updateStakeholder","put","deleteStakeholder","render","_vm","this","_h","$createElement","_c","_self","attrs","staticClass","_l","link","index","to","_v","_s","text","$can","companies","list","$t","on","onCompanyChanged","model","callback","$$v","$set","expression","_e","scopedSlots","_u","fn","ref","_g","_b","userInitials","fullname","logout","companySettings","$event","$router","app","snackbar","color","icon","label","getFullYear","staticRenderFns","extend","state","computed","isAuthenticated","firstName","charAt","lastName","footerLinks","links","includes","moduleNavLinks","mounted","fetchList","methods","setCompany","currentId","location","replace","path","component","anonymous","observable","accessToken","refreshToken","setup","router","localStorage","getItem","a","interceptors","config","token","headers","Authorization","response","originalRequest","url","_retry","refreshAccessToken","currentUserApi","login","username","password","loginApi","loginSession","onAuthenticated","refreshAccessTokenApi","clearCompany","setItem","session","sendUserInvitation","invitation","sendContactUsMail","mailRequest","sendResetPasswordNotification","resetDto","revokeUserInvitation","acceptUserInvitation","getValuationsOfCompany","createdDate","expDate","activatedDate","createValuationForCompany","valuation","files","valuationResponse","file","attachDocumentOnValuation","valuationId","vm","expOrFn","$watch","newState","set","FilterLogic","FilterCondition","shareClassId","fakeIdGenerator","sharesClassesData","Array","fill","faker","word","canVote","boolean","companiesData","companyName","sharePrice","number","min","max","taxId","routingNumber","shares","taxPercent","classes","getManyRandom","actualMarketValue","unrestrictedMarketValue","future","address","uuid","city","country","streetAddress","postCode","zipCode","incorporationDate","past","taxOffice","string","companyType","accountingStartDate","accountingEndDate","isFree","crnNumber","distinctiveName","req","res","ctx","json","company","getOneById","item","analysis","directors","total","shareHolders","sharesIssuances","optionsIssuances","documentId","documentsData","mimeType","words","getOneRandom","optionsPoolsData","directorFile","exercisePrice","exerciseDuration","optionsRemaining","optionsTotal","rules","paragraph","shareClass","shareholderFile","vestingDuration","vestingPercent","optionsIssuanceId","optionsIssuanceData","count","exercisedCount","expiredCount","vestedCount","vestingCount","optionsAggreementFile","pool","usersData","sharesIssuancesId","sharesIssuancesData","grantPrice","issueDate","shareCertificateFile","shareholderAgreementFile","stakeHolderId","stakeholdersData","isBoardMember","datatype","isEmployee","vatNumber","lorem","contact","email","internet","phone","phoneNumber","sharesTotal","isCompany","stakeHoldersHandlers","queryInclude","searchParams","split","optionsOverview","draft","vested","exercised","pending","resource","stakeHolder","body","userHandlers","authToken","startsWith","userId","find","payload","expiresAt","accepted","optionsPoolshandlers","pendingAcceptance","optionsInDraft","optionsInPools","vesting","createDocumentFromFile","documentType","documentStatus","optionsIssuancesHandlers","companyPercentage","totalValue","yetToVest","newResource","optionsAggrementFile","sharesIssuanceshandlers","accCount","profit","profitAfterTax","currentPrice","valuationsData","documentsHandlers","filterQueryParam","entity","entityId","doc","some","shareClassesHandlers","valuationsHandlers","startWorker","debug","handlers","worker","start","onUnhandledRequest","lastId","picks","pick","indexOf","findIndex","init","baseURL","mocked","defaults","resolveUrl","isApiError","isApiErrorOf","api","del","patchForm","getError","form","convertTObjecToFormData","obj","formData","FormData","element","File","append","toISOString","isArray","forEach","el","getAllShareClassesOfCompany","getShareClass","createShareClassForCompany","updateShareClass","removeShareClass","getOnePool","getPoolsOverviewOfCompany","getPoolsOfCompany","createOptionsPoolOfCompany","deletePool","CompaniesStore","current","companiesStore","removeItem","getDocumentsOf","filterParam","getDocument","getDocumentsAnalysisOf","uploadForCompany","companyFile","docType","documentResponse","$vuetify","$validator","messages","required","min_value","max_value","numeric","decimal_greater_than_zero","decimal","shared","new","save","next","previous","add","edit","ok","done","cancel","genericError","successfulExecution","stepNumber","selectFile","documentRequired","active","shareHolder","totalPrice","optionHolders","optionHolder","vestingDate","exerciseBy","exerciseDate","exercisePriceTooltip","exerciseDurationTooltip","projectedProfit","projectedNetOfTax","yearsAfterTheVestingDate","percentage","projectedPricePrompt","typeOfShares","numberofShares","sharesIssued","remaining","approved","created","issued","or","className","totalOwnership","manage","view","capitalOwnership","simulateOptionsExercised","viewVotingShareholdersOnly","simulateNewIssuance","sharesIssuance","capTableSubtitle","viewOptions","simulationWarning","overallOwnership","shareClasses","companyTypes","grantOptions","vestingPaceValue","vestingPace","shareClassRestrictions","companySharePercent","stakeholders","remainingOptions","live","pendingApproval","back","addressState","companyDistinctiveName","amv","umv","documents","shareholdersListTitle","totalOptions","vestedOptions","vestingOptions","exercisedOptions","expiredOptions","poolOptionTypes","manualKpi","valuations","send","newSharesIssuance","newBatchSharesIssuance","issuanceDate","isFullTimeEmployee","isFullTimeEmployeeTooltip","createValuationTitle","createValuationSubtitle","addStakeholder","submit","cancelAll","cancelPartial","cancelOptions","vestOptions","vestAll","vestPartial","TotalInvestment","optionsModule","proofOfPayment","overview","poolName","poolSize","vestingPeriod","vestingPeriodTooltip","vestingPercentTooltip","totalVestingPeriod","totalVestingPeriodTooltip","documentInstuctions","createCertificate","navHeader","pagePrompt","viewCreatePoolPrompt","addValuation","grantOptionsPrompt","grant","createAnOptionPool","uploadResolutionPrompt","shareholderResolution","directorResolution","directorShareholderResolution","poolAttributes","beneficiary","createPool","restrictionsSummaryLabel","noRestrictionDeclarationText","widgets","optionsInPool","optionsIssued","myDashboard","companyModule","capTable","documentsModule","uploadDocumentTitle","addDocuments","allDocuments","pendingSign","signedDocuments","stakeholdersModule","addNewStakeholder","greekCompanyTypes","ae","ike","adminModule","companySettingsModule","navHeaderNormalized","saveAsDraft","notSelected","typeConfirmCodePrompt","confirmShareIssuanceMessage","confirmOptionsIssuanceMessage","confirmCreatePoolMessage","emailAll","resolution","optionAgreement","share","certificate","other","companyPolicy","employmentContracts","sharesAgreement","articlesofAssociation","confirmPoolDeleteMessage","confirmOptionsIssuanceDeleteMessage","confirmSharesIssuanceDeleteMessage","confirmSharesIssuanceRowDeleteMessage","availableOptionsExceededException","invalidVestingStartDateException","poolNameAlreadyExistsException","maxPoolLimitExceededdException","CannotGiveOptionsToNonEmployeesException","vestingProgress","sendInvitation","revokeInvitation","resendInvitation","confirmation","exerciseOptions","sharesInputMessage","signUp","signup","title","prompt","reset","password2","forgotPassword","requestReset","Contactus","Title","optionsIssuanceDetails","addOne","addBatch","AppStore","visible","invalidateModules","log","can","appStore","valid","usernameRules","passwordRules","loading","props","nextUrl","String","default","source","password2Rules","invitationRules","v","test","$refs","ContactUs","cc","staticStyle","_m","go","resetUrl","origin","routes","Login","SignUp","route","query","Glossary","RequestResetPassword","PageNotFound","Forbidden","beforeEnter","from","meta","allow","children","optionHolderId","tab","base","beforeEach","unwatch","allowNavigation","matched","allowRules","every","rule","fields","getSharesIssuancesAnalysisOfCompany","getSharesIssuancesAnalysis","getSharesIssuanceDraft","getSharesIssuancesAnalysisOfStakeholder","createSharesIssuance","issuance","startBatchSharesIssuanceTransaction","createBatchSharesIssuance","issuances","onProgress","transactionId","updateSharesIssuance","deleteSharesIssuance","plugin","Vue","validate","num","parseFloat","isNaN","Infinity","defaultMessage","field","values","_field_","_rule_","getAllCompanies","getCompany","getCompanyAnalysis","run","useMockAPI","process","NODE_ENV","productionTip","vuetify","i18n","h","$mount","stocks","readyToExercise","en","numberFormats","currency","style","dateTimeFormats","short","year","month","day","long","locale"],"mappings":"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","file":"js/app.85a64cab.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"admin\":\"admin\",\"cap-table~company~documents~my-dashboard~options~shares~stakeholders\":\"cap-table~company~documents~my-dashboard~options~shares~stakeholders\",\"cap-table~my-dashboard\":\"cap-table~my-dashboard\",\"cap-table\":\"cap-table\",\"my-dashboard\":\"my-dashboard\",\"company\":\"company\",\"documents\":\"documents\",\"options\":\"options\",\"shares\":\"shares\",\"stakeholders\":\"stakeholders\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"7253354e\",\"cap-table~company~documents~my-dashboard~options~shares~stakeholders\":\"b29ced03\",\"cap-table~my-dashboard\":\"a5eb0977\",\"cap-table\":\"86137dc7\",\"my-dashboard\":\"0c2234e6\",\"company\":\"3048e896\",\"documents\":\"f3c5f9a7\",\"options\":\"8c8f29e7\",\"shares\":\"63929d52\",\"stakeholders\":\"75b61527\",\"chunk-2d21a3d2\":\"c998afa3\"}[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 = {\"cap-table\":1,\"company\":1,\"documents\":1,\"options\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"admin\":\"admin\",\"cap-table~company~documents~my-dashboard~options~shares~stakeholders\":\"cap-table~company~documents~my-dashboard~options~shares~stakeholders\",\"cap-table~my-dashboard\":\"cap-table~my-dashboard\",\"cap-table\":\"cap-table\",\"my-dashboard\":\"my-dashboard\",\"company\":\"company\",\"documents\":\"documents\",\"options\":\"options\",\"shares\":\"shares\",\"stakeholders\":\"stakeholders\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"31d6cfe0\",\"cap-table~company~documents~my-dashboard~options~shares~stakeholders\":\"31d6cfe0\",\"cap-table~my-dashboard\":\"31d6cfe0\",\"cap-table\":\"6863efa8\",\"my-dashboard\":\"31d6cfe0\",\"company\":\"911d6ffc\",\"documents\":\"89e7d3e7\",\"options\":\"4cab28ba\",\"shares\":\"31d6cfe0\",\"stakeholders\":\"31d6cfe0\",\"chunk-2d21a3d2\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([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--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","import Vue from \"vue\";\nimport Vuetify from \"vuetify\";\nimport \"vuetify/dist/vuetify.min.css\";\nimport { i18n } from \"./i18n\";\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n\n lang: {\n t: (key, ...params) => i18n.t(key, params).toString(),\n },\n theme: {\n options: {\n customProperties: true,\n },\n themes: {\n light: {\n primary: \"#4C8BF5\",\n secondary: \"#1C6CF2\",\n accent: \"#b74cf5\",\n error: \"#ff5722\",\n warning: \"#ff9800\",\n info: \"#009688\",\n success: \"#4caf50\"\n },\n },\n },\n});\n","import { Ability, Subject } from '@casl/ability';\nimport { UserDto } from './user.service';\n\ntype Actions = 'create' | 'read' | 'update' | 'delete';\ntype Subjects = Subject | 'Valuation' | 'OptionsPool' | 'OptionsIssuance' | 'Stakeholder' | 'Document' | 'Module' | 'ShareIssuance' | 'Company'\n\nexport type UserAbility = Ability<[Actions, Subjects]>;\nexport const ability = new Ability<[Actions, Subjects]>();\n\nexport function setUser(user: UserDto): void {\n switch (user.role) {\n case \"manager\":\n ability.update([\n { action: ['read'], subject: 'Company' },\n { action: ['read', 'create'], subject: 'Valuation' },\n { action: ['read', 'create', 'delete'], subject: 'OptionsPool' },\n { action: ['read', 'create', 'update', 'delete'], subject: 'OptionsIssuance' },\n { action: ['read', 'create', 'update', 'delete'], subject: 'Stakeholder' },\n { action: ['read', 'create', 'update'], subject: 'Document' },\n { action: ['read'], subject: 'Module', conditions: { type: { $in: ['company', 'options', 'cap-table', 'documents', 'stakeholders', 'guides'] } } },\n { action: ['read', 'create', 'update'], subject: 'ShareIssuance' },\n { action: ['read', 'create'], subject: 'StakeholderEmailNotification' },\n { action: ['read', 'create', 'delete'], subject: 'StakeholderInvitation' },\n ]);\n break;\n case \"viewer\":\n ability.update([\n { action: ['read'], subject: 'Company' },\n { action: ['read'], subject: 'Valuation' },\n { action: ['read'], subject: 'OptionsPool' },\n { action: ['read'], subject: 'OptionsIssuance' },\n { action: ['read'], subject: 'Stakeholder' },\n { action: ['read'], subject: 'Document' },\n { action: ['read'], subject: 'Module', conditions: { type: { $in: ['company', 'options', 'cap-table', 'documents', 'stakeholders', 'guides'] } } },\n { action: ['read'], subject: 'ShareIssuance' }\n ]);\n break;\n case \"stakeholder\":\n ability.update([\n { action: ['read'], subject: 'Module', conditions: { type: { $in: ['my-dashboard'] } } },\n ])\n break;\n case \"backoffice\":\n ability.update([\n { action: ['read'], subject: 'Company' },\n { action: ['read'], subject: 'Module', conditions: { type: { $in: ['admin', 'guides'] } } },\n ])\n break;\n default:\n ability.update([]);\n }\n}","export * from \"./options-issuances.service.dto\";\nimport { api, convertTObjecToFormData } from \"@/service\"\nimport { OptionsIssuancesOverviewDto, OptionsIssuanceCreateDto, OptionsIssuancesAnalysisDto, OptionsIssuancesDto, OptionsIssuanceStatus, OptionsIssuanceCancelDto, OptionsIssuanceDraftDto, OptionsIssuanceExerciseDto, OptionsIssuanceDetailsDto, OptionsIssuanceVestDto } from \"./options-issuances.service.dto\";\n\n/* ================================================================================== */\n/* GET ============================================================================= */\n/* ================================================================================== */\n\nexport async function getOptionsIssuancesOfCompany(companyId: string, optionStatus?: OptionsIssuanceStatus): Promise> {\n let result = await api.get>(`/api/options-issuances`, { companyId });\n\n if (optionStatus)\n result = result.filter(x => x.status == optionStatus);\n\n return result;\n}\n\nexport async function getOptionsIssuanceAnalysis(id: string): Promise {\n const result = await api.get(`/api/options-issuances/analysis/${id}`);\n\n result.grantDate = new Date(result.grantDate);\n result.vestingStartDate = new Date(result.vestingStartDate);\n result.vestingEndDate = new Date(result.vestingEndDate);\n\n return result;\n}\n\nexport async function getOptionsIssuanceDetails(id: string): Promise {\n const result = await api.get(`/api/options-issuances/${id}/details`);\n return result;\n}\n\nexport async function getOptionsIssuancesAnalysisOfCompany(companyId: string): Promise> {\n const result = await api.get>(`/api/options-issuances/analysis`, { companyId });\n return result.map(x => {\n x.grantDate = new Date(x.grantDate);\n x.vestingStartDate = new Date(x.vestingStartDate);\n x.vestingEndDate = new Date(x.vestingEndDate);\n return x;\n });\n}\n\nexport async function getOptionsIssuancesAnalysisOfStakeholder(stakeholderId?: string, optionStatus?: OptionsIssuanceStatus): Promise> {\n let result = await api.get>(`/api/options-issuances/analysis`, { stakeholderId });\n\n if (optionStatus)\n result = result.filter(x => x.status == optionStatus);\n\n return result.map(x => {\n x.grantDate = new Date(x.grantDate);\n x.vestingStartDate = new Date(x.vestingStartDate);\n x.vestingEndDate = new Date(x.vestingEndDate);\n return x;\n });\n}\n\nexport async function getOptionsIssuancesOverviewOfStakeholder(stakeholderId?: string): Promise {\n return api.get(`/api/options-issuances/overview`, { stakeholderId });\n}\n\n/* ================================================================================== */\n/* POST ============================================================================= */\n/* ================================================================================== */\n\n/**\n * @throws AvailableOptionsExceededException\n */\nexport function createOptionsIssuance(optionsIssuance: OptionsIssuanceCreateDto): Promise {\n return api.post(`/api/options-issuances`, optionsIssuance);\n}\n\nexport function createOptionsIssuanceDraft(optionsIssuance: OptionsIssuanceDraftDto): Promise {\n return api.post(`/api/options-issuances`, optionsIssuance);\n}\n\nexport function cancelOptionsIssuance(optionsIssuance: OptionsIssuanceCancelDto): Promise {\n return api.postForm(`/api/options-issuances/cancellation`, convertTObjecToFormData(optionsIssuance));\n}\n\nexport function vestOptionsIssuance(optionsIssuance: OptionsIssuanceVestDto): Promise {\n return api.postForm(`/api/options-issuances/manualVest`, convertTObjecToFormData(optionsIssuance));\n}\n\nexport function exerciseOptionsIssuance(optionsIssuance: OptionsIssuanceExerciseDto): Promise {\n return api.postForm(`/api/options-issuances/exercise`, convertTObjecToFormData(optionsIssuance));\n}\n\n/* ================================================================================== */\n/* PATCH ============================================================================= */\n/* ================================================================================== */\n\nexport function updateOptionsIssuance(optionsIssuance: OptionsIssuanceCreateDto): Promise {\n return api.patch(`/api/options-issuances`, optionsIssuance);\n}\n\nexport function updateOptionsIssuanceDraft(optionsIssuance: OptionsIssuanceDraftDto): Promise {\n return api.patch(`/api/options-issuances`, optionsIssuance);\n}\n\n/* ================================================================================== */\n/* DELETE ============================================================================= */\n/* ================================================================================== */\n\nexport function deleteOptionsIssuanceDraft(id: string): Promise {\n return api.delete(`/api/options-issuances/${id}`);\n}\n\n\n\n","export * from \"./stakeholders.service.dto\";\nimport { api } from \"@/service\";\nimport { StakeholderDto, StakeholderIncludeProperty } from \"./stakeholders.service.dto\";\n\nexport type StakeholderType = \"any\" | \"shareHolder\" | \"optionsHolder\" | \"director\";\n\n/* ================================================================================== */\n/* GET ============================================================================== */\n/* ================================================================================== */\n\nexport async function getStakeholdersOfCompany(companyId: string, include?: Array, type?: StakeholderType): Promise> {\n return api.get(`/api/stakeholders`, { companyId, include: include?.join(\",\"), type });\n}\n\nexport async function getStakeholdersOfPool(poolId: string, include?: Array): Promise> {\n return await api.get(`/api/stakeholders`, { poolId, include: include?.join(\",\") });\n}\n\nexport async function getStakeholder(id: string): Promise> {\n return await api.get(`/api/stakeholders/${id}`);\n}\n\n/* ================================================================================== */\n/* CREATE =========================================================================== */\n/* ================================================================================== */\n\n\nexport async function createStakeholder(companyId: string, stakeholder: StakeholderDto): Promise {\n return await api.post(`/api/stakeholders`, stakeholder, { companyId });\n}\n\nexport async function createEmailForAllStakeholders(companyId: string): Promise {\n return await api.post(`/api/stakeholders/email`, undefined, { companyId });\n}\n\n/* ================================================================================== */\n/* UPDATE =========================================================================== */\n/* ================================================================================== */\n\nexport async function updateStakeholder(stakeholder: StakeholderDto): Promise {\n return await api.put(`/api/stakeholders/${stakeholder.id}`, stakeholder);\n}\n\n/* ================================================================================== */\n/* DELETE =========================================================================== */\n/* ================================================================================== */\n\nexport async function deleteStakeholder(id: string): Promise {\n return await api.delete(`/api/stakeholders/${id}`);\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-app-bar',{attrs:{\"app\":\"\",\"color\":\"primary\",\"flat\":\"\"}},[_c('v-img',{staticClass:\"ml-3\",attrs:{\"src\":\"OptIn_Logo_White_1200x1200-trimmed.png\",\"max-height\":\"44\",\"max-width\":\"140\",\"contain\":\"\"}}),_c('v-container',[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"md\":\"6\"}},_vm._l((_vm.moduleNavLinks),function(link,index){return _c('v-btn',{key:index,attrs:{\"to\":link.to,\"text\":\"\",\"x-large\":\"\",\"color\":\"white\"}},[_vm._v(\" \"+_vm._s(link.text)+\" \")])}),1),_c('v-spacer'),_c('v-col',{attrs:{\"md\":\"3\"}})],1)],1),(_vm.$can('read', 'Company'))?_c('v-select',{staticClass:\"mt-7 mr-2\",attrs:{\"items\":_vm.companies.list,\"item-text\":\"name\",\"item-value\":\"id\",\"outlined\":\"\",\"dense\":\"\",\"dark\":\"\",\"label\":_vm.$t('company')},on:{\"change\":_vm.onCompanyChanged},model:{value:(_vm.companies.currentId),callback:function ($$v) {_vm.$set(_vm.companies, \"currentId\", $$v)},expression:\"companies.currentId\"}}):_vm._e(),(_vm.isAuthenticated)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-avatar',_vm._g(_vm._b({staticClass:\"mr-10\",attrs:{\"color\":\"secondary\",\"size\":\"42\"}},'v-avatar',attrs,false),on),[_c('span',{staticClass:\"white--text\"},[_vm._v(_vm._s(_vm.userInitials))])])]}}],null,false,1329216654)},[_c('v-card',{attrs:{\"width\":\"300px\"}},[_c('v-list',[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.fullname))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.role))])],1),_c('v-list-item-action',[_c('v-btn',{on:{\"click\":_vm.logout}},[_vm._v(_vm._s(_vm.$t(\"app.logout\")))])],1)],1),_c('v-list-item',[_c('v-list-item-content'),_c('v-list-item-action',[_c('v-btn',{on:{\"click\":_vm.companySettings}},[_vm._v(_vm._s(_vm.$t(\"Settings\")))])],1)],1)],1)],1)],1):_c('v-btn',{on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('login'))+\" \")])],1),_c('v-main',{staticClass:\"white\"},[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-sheet',{staticClass:\"mx-auto\",attrs:{\"min-height\":\"70vh\",\"max-width\":\"1264px\",\"rounded\":\"md\"}},[_c('router-view')],1)],1)],1)],1),_c('v-snackbar',{attrs:{\"color\":_vm.app.snackbar.color,\"timeout\":_vm.app.snackbar.timeout},model:{value:(_vm.app.snackbar.visible),callback:function ($$v) {_vm.$set(_vm.app.snackbar, \"visible\", $$v)},expression:\"app.snackbar.visible\"}},[_vm._v(\" \"+_vm._s(_vm.app.snackbar.text)+\" \")])],1),_c('v-footer',{attrs:{\"dark\":\"\",\"padless\":\"\"}},[_c('v-card',{staticClass:\"grey white--text text-center\",attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',{staticClass:\"white--text pa-2\"},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('div',_vm._l((_vm.footerLinks),function(link,index){return _c('v-btn',{key:index,staticClass:\"mx-1 white--text\",attrs:{\"href\":link.href,\"target\":\"_blank\",\"icon\":link.icon ? true : null,\"text\":\"\"}},[_vm._v(\" \"+_vm._s(link.label)+\" \"),(link.icon)?_c('v-icon',{attrs:{\"size\":\"24px\"}},[_vm._v(\" \"+_vm._s(link.icon)+\" \")]):_vm._e()],1)}),1)]),_c('v-col',{attrs:{\"cols\":\"4\"}}),_c('v-col',{staticClass:\"text-subtitle-1\",attrs:{\"cols\":\"4\"}},[_c('div',[_vm._v(\"OptIn © \"+_vm._s(new Date().getFullYear()))])])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport { state as authState, logout } from \"@/service/user/user.service\";\nimport { appStore } from \"@/app.store\";\nimport { companiesStore } from \"@/service/companies/companies.store\";\n\ninterface ModuleNavLink {\n text: string,\n to: string\n}\n\ninterface FooterNavLink {\n href: string,\n icon: string,\n label?: string\n}\n\nexport default Vue.extend({\n name: \"App\",\n data() {\n return {\n app: appStore.state,\n companies: companiesStore.state\n };\n },\n computed: {\n isAuthenticated(): boolean {\n return authState.user.role != \"anonymous\";\n },\n userInitials(): string {\n return (\n (authState.user?.firstName ?? \"?\").charAt(0) +\n (authState.user?.lastName ?? \"?\").charAt(0)\n );\n },\n fullname(): string {\n return authState.user?.firstName + \" \" + authState.user?.lastName;\n },\n role(): string {\n return authState.user.role;\n },\n footerLinks(): Array {\n const links = [\n { href: 'https://www.facebook.com/Optin-IKE-104432238875883', icon: 'mdi-facebook' },\n { href: 'https://www.linkedin.com/company/optin-ike/', icon: 'mdi-linkedin' },\n { href: 'https://optin.com.gr/blog', icon: '', label: 'Blog' }\n ];\n \n if (this.app.modules.includes(\"guides\"))\n links.push({ href: '/glossary', icon: '', label: 'Guides' });\n\n links.push({ href: '/contact', icon: '', label: 'Contact Us' })\n\n return links;\n },\n moduleNavLinks(): Array {\n const links = [];\n\n if (this.app.modules.includes(\"my-dashboard\"))\n links.push({ text: this.$t(\"myDashboard.navHeader\").toString(), to: \"/my-dashboard\" });\n\n if (this.app.modules.includes(\"company\"))\n links.push({ text: this.$t(\"companyModule.navHeader\").toString(), to: \"/company\" });\n\n if (this.app.modules.includes(\"options\"))\n links.push({ text: this.$t(\"optionsModule.navHeader\").toString(), to: \"/options\" });\n\n if (this.app.modules.includes(\"cap-table\"))\n links.push({ text: this.$t(\"capTable.navHeader\").toString(), to: \"/cap-table\" });\n\n if (this.app.modules.includes(\"documents\"))\n links.push({ text: this.$t(\"documentsModule.navHeader\").toString(), to: \"/documents\" });\n\n if (this.app.modules.includes(\"stakeholders\"))\n links.push({ text: this.$t(\"stakeholdersModule.navHeader\").toString(), to: \"/stakeholders\" });\n\n if (this.app.modules.includes(\"admin\"))\n links.push({ text: this.$t(\"adminModule.navHeader\").toString(), to: \"/admin\" });\n\n return links;\n },\n },\n mounted() {\n companiesStore.fetchList();\n },\n methods: {\n onCompanyChanged() {\n companiesStore.setCompany(companiesStore.state.currentId ?? \"\");\n window.location.replace(\"/\");\n },\n logout() {\n logout();\n this.$router.push(\"/login\");\n },\n companySettings() {\n this.$router.push({ path: \"/settings\" });\n },\n },\n});\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7e22c39d&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"./user.service.dto\";\nimport Vue from \"vue\";\nimport axios from \"axios\";\nimport { api, convertTObjecToFormData } from \"@/service\"\nimport { Invitation, InvitationCreateDto, InvitationPatchDto, LoginResponse, ResetPasswordCreateDto, UserDto, MailRequestDto } from \"./user.service.dto\";\nimport VueRouter from \"vue-router\";\nimport { companiesStore } from \"@/service/companies/companies.store\";\nimport { appStore } from \"@/app.store\";\nimport { setUser as setAbilityUser } from \"@/service/user/ability\"\n\nexport const anonymous: UserDto = {\n firstName: \"Anonymous\",\n lastName: \"User\",\n id: \"\",\n role: \"anonymous\"\n}\n\nexport const state = Vue.observable({\n accessToken: null as string | null,\n refreshToken: null as string | null,\n user: anonymous as UserDto\n});\n\nexport async function setup(router: VueRouter): Promise {\n\n state.refreshToken = window.localStorage.getItem(\"refreshToken\");\n state.accessToken = window.localStorage.getItem(\"accessToken\");\n\n // Do something before request is sent\n axios.interceptors.request.use(\n function (config) {\n const token = state.accessToken;\n if (token) {\n config.headers.Authorization = `Bearer ${token}`;\n }\n return config;\n },\n function (error) {\n // Do something with request error\n return Promise.reject(error);\n }\n );\n\n // Add a response interceptor\n axios.interceptors.response.use(\n function (response) {\n // Any status code that lie within the range of 2xx cause this function to trigger\n // Do something with response data\n return response;\n },\n async function (error) {\n // Any status codes that falls outside the range of 2xx cause this function to trigger\n // Do something with response error\n const originalRequest = error.config;\n if (\n error.response.status === 401 &&\n originalRequest.url.includes(\"api/auth/refresh-token\")\n ) {\n logout();\n router.push(\"/login\");\n return Promise.reject(error);\n } else if (error.response.status === 401 && !originalRequest._retry) {\n originalRequest._retry = true;\n await refreshAccessToken();\n return axios(originalRequest);\n }\n return Promise.reject(error);\n }\n );\n\n try {\n const user = await currentUserApi();\n state.user = user;\n setAbilityUser(state.user);\n appStore.setUser(state.user);\n\n\n } catch (error) {\n state.user = anonymous;\n setAbilityUser(state.user);\n appStore.setUser(state.user);\n\n }\n}\n\nexport async function login(\n username: string,\n password: string\n): Promise {\n try {\n const loginSession = await loginApi(username, password);\n await onAuthenticated(loginSession);\n return true;\n } catch (error) {\n return false;\n }\n}\n\nexport async function refreshAccessToken(): Promise {\n try {\n if (state.refreshToken) {\n const loginSession = await refreshAccessTokenApi(state.refreshToken);\n await onAuthenticated(loginSession);\n return true;\n }\n return false;\n } catch (error) {\n return false;\n }\n}\n\nexport function logout(): void {\n state.user = anonymous;\n setAbilityUser(state.user);\n appStore.setUser(state.user);\n companiesStore.clearCompany();\n state.refreshToken = \"\";\n state.accessToken = \"\";\n window.localStorage.setItem(\"refreshToken\", state.refreshToken);\n window.localStorage.setItem(\"accessToken\", state.accessToken);\n}\n\nasync function onAuthenticated(session: LoginResponse) {\n state.user = session.user;\n setAbilityUser(state.user);\n appStore.setUser(state.user);\n state.refreshToken = session.refreshToken.token;\n state.accessToken = session.accessToken.token;\n window.localStorage.setItem(\"refreshToken\", state.refreshToken);\n window.localStorage.setItem(\"accessToken\", state.accessToken);\n\n await companiesStore.fetchList()\n}\n\nasync function loginApi(\n username: string,\n password: string\n): Promise {\n return api.post(\"/api/auth/login\", { username, password });\n}\n\nasync function refreshAccessTokenApi(\n refreshToken: string\n): Promise {\n return api.post(\"/api/auth/refresh-token\", { refreshToken })\n}\n\nasync function currentUserApi(): Promise {\n return api.get(\"/api/auth/user\");\n}\n\nexport async function sendUserInvitation(invitation: InvitationCreateDto): Promise {\n return await api.post(`/api/auth/invitations`, invitation);\n}\n\nexport async function sendContactUsMail(mailRequest: MailRequestDto): Promise {\n return await api.postForm(`/api/email/Send`, convertTObjecToFormData(mailRequest));\n}\n\nexport async function sendResetPasswordNotification(resetDto: ResetPasswordCreateDto): Promise {\n return await api.post(`/api/auth/reset`, resetDto);\n}\n\nexport async function revokeUserInvitation(id: string): Promise {\n return await api.delete(`/api/auth/invitations/${id}`);\n}\n\nexport async function acceptUserInvitation(id: string, password: string): Promise {\n return await api.patch(`/api/auth/invitations/${id}`, { password: password } as InvitationPatchDto);\n}\n","import { ValuationCreateDto, ValuationDto } from \"./valuations.service.dto\";\nimport { api, convertTObjecToFormData } from \"@/service\";\n\n/* ================================================================================= */\n/* GET ============================================================================= */\n/* ================================================================================= */\n\nexport async function getValuationsOfCompany(companyId: string): Promise> {\n const result = await api.get>(`/api/valuations`, { companyId });\n return result.map( x=> { \n x.createdDate = new Date(x.createdDate); \n x.expDate = x.expDate ? new Date(x.expDate) : undefined; \n x.activatedDate = x.activatedDate ? new Date(x.activatedDate) : undefined; \n return x \n });\n}\n\n\n/* ================================================================================== */\n/* POST ============================================================================= */\n/* ================================================================================== */\n\nexport async function createValuationForCompany(companyId: string, valuation: ValuationCreateDto, files: Array): Promise {\n \n // Step 1: Create a Valuation with no files\n const valuationResponse = await api.post(`/api/valuations`, valuation, { companyId });\n\n // Step 2: Attach any files in parallel and wait for them to upload\n const promises = files.map( file => attachDocumentOnValuation(valuationResponse.id, file ))\n await Promise.all(promises);\n\n // Step 3: Finally return ID of the new Valuation\n return valuationResponse.id;\n\n}\n\nexport function attachDocumentOnValuation(valuationId: string, document: File): Promise {\n return api.postForm(`/api/valuations/${valuationId}/documents`, convertTObjecToFormData({ file: document}));\n}\n\n","import Vue, { WatchOptions } from 'vue'\n\nexport class Store> {\n\n public state!: TState;\n private vm: Vue;\n \n constructor(state: TState) {\n this.vm = new Vue();\n this.state = Vue.observable(state);\n }\n\n /**\n * Watches for changes for the specified property. See docs of Vue.js $watch() method for more\n */\n $watch(expOrFn: () => T, callback: (n: T, o: T) => void, options?: WatchOptions): (() => void) {\n return this.vm.$watch(expOrFn, callback, options);\n }\n\n /**\n * Updates the existing state with a \"fresh\" one. Use this when you need to \n * replace all the original data. Useful when you get \"fresh\" data from another\n * service call and need to update the store\n */\n public updateAll(newState: TState): void {\n for (const key in newState) {\n if (!(key in this.state)) {\n Vue.set(this.state, key, newState[key])\n }\n else {\n this.state[key] = newState[key];\n }\n }\n }\n\n}","export enum FilterLogic {\n and,\n or\n}\n\nexport enum FilterCondition {\n equals,\n contains,\n containsCaseInsensitive,\n greaterThan\n}\n\nexport interface PageFilter {\n field: string\n value: string\n condition: FilterCondition\n}\n\nexport interface SortOption {\n field: string;\n asc: boolean;\n}\n\nexport interface PageQuery {\n page: number;\n size: number;\n filterLogic?: FilterLogic;\n filters?: Array;\n sorting?: Array;\n include?: Array;\n}\n\nexport function encodeAsQueryParam(value: PageQuery): string {\n return btoa(unescape(encodeURIComponent(JSON.stringify(value, null, 0))))\n}","import { ShareClassDto } from \"../share-classes.service.dto\";\nimport { fakeIdGenerator } from \"@/service/mocks\";\nimport * as faker from \"faker\";\n\nconst shareClassId = fakeIdGenerator();\n\nexport const sharesClassesData:Array = new Array(10).fill({}).map( x => ({\n id: shareClassId(),\n name: `Class ${faker.random.word()}`,\n canVote: faker.datatype.boolean()\n}));","import { CompanyDto } from \"../companies.service.dto\";\nimport { fakeIdGenerator, getManyRandom } from \"@/service/mocks\";\nimport * as faker from \"faker\";\nimport { sharesClassesData } from \"@/service/share-classes/__mocks__/data\";\n\nconst companyId = fakeIdGenerator();\n\nexport const companiesData: Array = new Array(10).fill({}).map(x => ({\n id: companyId(),\n name: faker.company.companyName(),\n sharePrice: faker.datatype.number({ min: 1, max: 1000 }),\n taxId: faker.finance.routingNumber(),\n shares: faker.datatype.number({ min: 100, max: 100000 }),\n taxPercent: faker.datatype.number({ min: 8, max: 25 }),\n classes: getManyRandom(sharesClassesData, 2),\n valuation: {\n actualMarketValue: faker.datatype.number({ min: 1000000, max: 5000000 }),\n unrestrictedMarketValue: faker.datatype.number({ min: 1000000, max: 5000000 }),\n expDate: faker.date.future(1),\n },\n address : {\n id: faker.datatype.uuid(),\n city: faker.address.city(),\n country: faker.address.country(),\n streetAddress: faker.address.streetAddress(),\n state: faker.address.state(),\n postCode: faker.address.zipCode()\n },\n incorporationDate: faker.date.past(),\n taxOffice: faker.datatype.string(),\n companyType: faker.datatype.string(),\n accountingStartDate: faker.date.past(),\n accountingEndDate: faker.date.future(),\n isFree: true,\n crnNumber: faker.datatype.string(),\n distinctiveName: faker.datatype.string()\n}));","\nimport { getOneById } from '@/service/mocks';\nimport { rest } from 'msw'\nimport { CompanyAnalysisDto, CompanyDto } from \"../companies.service.dto\";\nimport { companiesData } from \"./data\";\nimport * as faker from \"faker\";\n\n\nexport const handlers = [\n \n rest.get>(\"*/api/companies\", (req, res, ctx) => {\n return res(ctx.status(200), ctx.json(companiesData))\n }),\n\n rest.get(\"*/api/companies/:id/analysis\", (req, res, ctx) => {\n const company = getOneById(companiesData, req.params.id);\n\n if (!company.item)\n return res(ctx.status(404));\n\n const analysis: CompanyAnalysisDto = {\n ...company.item,\n directors:{\n total: faker.datatype.number({min: 0, max: 1000})\n },\n shareHolders:{\n total: faker.datatype.number({min: 0, max: 1000})\n },\n sharesIssuances:{\n total: faker.datatype.number({min: 0, max: 1000})\n },\n optionsIssuances:{\n total: faker.datatype.number({min: 0, max: 1000})\n }\n }\n \n return res(ctx.status(200), ctx.json(analysis))\n })\n];","import * as faker from \"faker\";\nimport { fakeIdGenerator, getOneRandom } from \"@/service/mocks\"\nimport { DocumentDto } from \"@/service/documents/documents.service.dto\";\n\nexport const documentId = fakeIdGenerator();\n\nexport const documentsData: Array = new Array(100).fill({}).map(x => ({\n id: documentId(),\n mimeType: \"application/pdf\",\n name: `${faker.lorem.words(2)}.pdf`,\n type: getOneRandom([\"Resolution\", \"OptionAgreement\", \"Share\", \"Certificate\", \"Other\"]),\n createdDate: faker.date.past()\n} as DocumentDto));","import * as faker from \"faker\";\nimport { fakeIdGenerator, getOneRandom } from \"@/service/mocks\"\nimport { documentsData } from \"@/service/documents/__mocks__/data\";\nimport { sharesClassesData } from \"@/service/share-classes/__mocks__/data\";\nimport { OptionsPoolDto } from \"../options-pools.service.dto\";\n\nconst id = fakeIdGenerator();\n\nexport const optionsPoolsData: Array = new Array(100).fill({}).map(x => ({\n id: id(),\n directorFile: faker.datatype.string(),\n exercisePrice: faker.datatype.number({ min: 1, max: 100 }),\n exerciseDuration: faker.datatype.number({ min: 12, max: 48 }),\n name: \"Pool \" + faker.lorem.word(),\n optionsRemaining: faker.datatype.number({ min: 100, max: 200 }),\n optionsTotal: faker.datatype.number({ min: 200, max: 10000 }),\n rules: faker.lorem.paragraph(),\n shareClass: getOneRandom(sharesClassesData),\n shareholderFile: getOneRandom(documentsData),\n status: getOneRandom([\"Pending\", \"Live\"]),\n vestingDuration: faker.datatype.number({ min: 3, max: 12 }),\n vestingPercent: faker.datatype.number({ min: 1, max: 100 }),\n} as OptionsPoolDto));","import * as faker from \"faker\";\nimport { fakeIdGenerator, getOneRandom } from \"@/service/mocks\"\nimport { OptionsIssuancesDto } from \"../options-issuances.service.dto\";\nimport { optionsPoolsData } from \"@/service/options-pools/__mocks__/data\";\nimport { documentsData } from \"@/service/documents/__mocks__/data\";\n\nexport const optionsIssuanceId = fakeIdGenerator();\n\nexport const optionsIssuanceData: Array = new Array(100).fill({}).map(x => ({\n id: optionsIssuanceId(),\n count: faker.datatype.number({ min: 1, max: 10000 }),\n exercisedCount: faker.datatype.number({ min: 1, max: 10000 }),\n expiredCount: faker.datatype.number({ min: 1, max: 10000 }),\n vestedCount: faker.datatype.number({ min: 1, max: 10000 }),\n vestingCount: faker.datatype.number({ min: 1, max: 10000 }), \n grantDate: faker.date.past(),\n optionsAggreementFile: getOneRandom(documentsData),\n status: getOneRandom([\"Drafted\", \"Pending\", \"Vesting\", \"Vested\", \"Exercised\"]),\n vestingEndDate: faker.date.future(2),\n vestingStartDate: faker.date.past(),\n pool: getOneRandom(optionsPoolsData)\n} as OptionsIssuancesDto));","import { fakeIdGenerator, getManyRandom, getOneRandom } from \"@/service/mocks\";\nimport * as faker from \"faker\";\n\nimport { documentsData } from \"@/service/documents/__mocks__/data\";\nimport { UserDto } from \"../user.service.dto\";\n\nexport const userId = fakeIdGenerator();\n\ninterface UserModel extends UserDto {\n username: string\n password: string\n}\n\nexport const usersData: Array = [\n {\n id: userId(),\n firstName: \"Test\",\n lastName: \"Manager\",\n role: \"manager\",\n username: \"manager@test.com\",\n password: \"P@ssw0rd\"\n },\n {\n id: userId(),\n firstName: \"Test\",\n lastName: \"Stakeholder\",\n role: \"stakeholder\",\n username: \"stakeholder@test.com\",\n password: \"P@ssw0rd\"\n },\n {\n id: userId(),\n firstName: \"Test\",\n lastName: \"Viewer\",\n role: \"viewer\",\n username: \"viewer@test.com\",\n password: \"P@ssw0rd\"\n },\n {\n id: userId(),\n firstName: \"Test\",\n lastName: \"Back Office\",\n role: \"backoffice\",\n username: \"backoffice@test.com\",\n password: \"P@ssw0rd\"\n }\n];","import * as faker from \"faker\";\nimport { fakeIdGenerator, getOneRandom } from \"@/service/mocks\";\nimport { SharesIssuanceDto, SharesIssuanceStatus } from \"../shares-issuances.service.dto\";\nimport { sharesClassesData } from \"@/service/share-classes/__mocks__/data\";\nimport { documentsData } from \"@/service/documents/__mocks__/data\";\n\nexport const sharesIssuancesId = fakeIdGenerator();\n\nexport const sharesIssuancesData: Array = new Array(100).fill({}).map(x => ({\n id: sharesIssuancesId(),\n count: faker.datatype.number({ min: 1, max: 10000 }),\n grantPrice: faker.datatype.number({ min: 1, max: 10000 }),\n issueDate: faker.date.past(),\n shareClass: getOneRandom(sharesClassesData),\n shareCertificateFile: getOneRandom(documentsData),\n shareholderAgreementFile: getOneRandom(documentsData),\n status: getOneRandom([\"drafted\", \"pending\", \"issued\"])\n} as SharesIssuanceDto));","import faker from \"faker\";\nimport { fakeIdGenerator, getOneRandom } from \"@/service/mocks\";\nimport { StakeholderDto, StakeholderType } from \"../stakeholders.service.dto\";\nimport { optionsIssuanceData } from \"@/service/options-issuances/__mocks__/data\";\nimport { usersData } from \"@/service/user/__mocks__/data\";\nimport { sharesIssuancesData } from \"@/service/shares-issuances/__mocks__/data\";\n\nexport const stakeHolderId = fakeIdGenerator();\n\nexport const stakeholdersData: Array = new Array(100).fill({}).map(x => ({\n id: stakeHolderId(),\n name: faker.company.companyName(),\n isBoardMember: faker.datatype.boolean(),\n isEmployee: faker.datatype.boolean(),\n type: getOneRandom([\"company\", \"individual\"]),\n vatNumber: faker.lorem.word(10),\n taxOffice: faker.lorem.word(200),\n user: getOneRandom(usersData),\n contact: {\n firstName: faker.name.firstName(),\n lastName: faker.name.lastName(),\n email: faker.internet.email(),\n phone: faker.phone.phoneNumber(),\n address: {\n id: faker.datatype.uuid(),\n city: faker.address.city(),\n country: faker.address.country(),\n streetAddress: faker.address.streetAddress(),\n state: faker.address.state(),\n postCode: faker.address.zipCode()\n }\n },\n sharesTotal: faker.datatype.number({ min: 0, max: 1000 }),\n shares: [\n getOneRandom(sharesIssuancesData)\n ],\n optionsTotal: faker.datatype.number({ min: 0, max: 1000 }),\n options: [\n getOneRandom(optionsIssuanceData)\n ],\n isCompany: faker.datatype.boolean(),\n crnNumber: faker.datatype.string()\n} as StakeholderDto));","import { getOneById } from \"@/service/mocks\";\nimport { rest } from \"msw\";\nimport { StakeholderDto, StakeholderIncludeProperty } from \"../stakeholders.service.dto\";\nimport { stakeholdersData, stakeHolderId as stakeHolderNextId } from \"./data\";\nimport * as faker from \"faker\";\n\n\ninterface GetStakeHoldersParams {\n include?: Array,\n companyId?: string,\n poolId?: string\n}\n\nexport const stakeHoldersHandlers = [\n\n rest.get, GetStakeHoldersParams>(\"*/api/stakeholders\", (req, res, ctx) => {\n\n let result = stakeholdersData;\n const queryInclude = req.url.searchParams.get(\"include\") ? req.url.searchParams.get(\"include\")?.split(\",\") as Array : undefined;\n\n if (queryInclude?.includes(\"options-overview\")) {\n result = result.map(x => {\n return {\n ...x,\n optionsOverview: {\n draft: faker.datatype.number({ min: 0, max: 10000 }),\n vested: faker.datatype.number({ min: 0, max: 10000 }),\n total: faker.datatype.number({ min: 0, max: 10000 }),\n exercised: faker.datatype.number({ min: 0, max: 10000 }),\n pending: faker.datatype.number({ min: 0, max: 10000 })\n }\n }\n })\n }\n\n return res(ctx.status(200), ctx.json(result));\n }),\n\n\n rest.get(\"*/api/stakeholders/:stakeholderId\", (req, res, ctx) => {\n const { stakeholderId } = req.params;\n const resource = getOneById(stakeholdersData, stakeholderId);\n if (resource)\n return res(ctx.status(200), ctx.json(resource.item));\n else\n return res(ctx.status(404));\n }),\n\n rest.put(\"*/api/stakeholders/:stakeholderId\", (req, res, ctx) => {\n const { stakeholderId } = req.params;\n const stakeHolder = getOneById(stakeholdersData, stakeholderId);\n if (stakeHolder.item) {\n stakeholdersData[stakeHolder.index] = req.body;\n return res(ctx.status(200), ctx.json(stakeholdersData[stakeHolder.index]));\n }\n else\n return res(ctx.status(404));\n }),\n\n rest.post(\"*/api/stakeholders\",\n (req, res, ctx) => {\n const companyId = req.url.searchParams.get(\"companyId\")!;\n req.body.id = stakeHolderNextId();\n stakeholdersData.push(req.body);\n return res(ctx.status(200), ctx.json(req.body));\n }),\n\n rest.delete(\"*/api/stakeholders/:stakeholderId\", (req, res, ctx) => {\n const { stakeholderId } = req.params;\n const stakeHolder = getOneById(stakeholdersData, stakeholderId);\n if (stakeHolder.item) {\n stakeholdersData.splice(stakeHolder.index, 1);\n return res(ctx.status(200));\n }\n else\n return res(ctx.status(404));\n }),\n];\n","import { getOneById } from \"@/service/mocks\";\nimport { rest } from \"msw\";\nimport { Invitation, InvitationCreateDto, InvitationPatchDto, LoginResponse, UserDto } from \"../user.service.dto\";\nimport { usersData } from \"./data\";\n\ninterface LoginRequestDto {\n username: string;\n password: string;\n}\n\nexport const userHandlers = [\n rest.get(\"*/api/auth/user\", (req, res, ctx) => {\n const authToken = req.headers.get(\"Authorization\");\n if (authToken && authToken.startsWith(\"Bearer mock-access-token\")) {\n const userId = authToken.split(\"|\")[1];\n\n const user = getOneById(usersData, userId);\n\n if (!user.item)\n return res(ctx.status(403));\n\n return res(ctx.status(200), ctx.json({\n firstName: user.item.firstName,\n lastName: user.item.lastName,\n id: user.item.id,\n role: user.item.role\n }));\n } else {\n return res(ctx.status(403));\n }\n }),\n\n rest.post(\n \"*/api/auth/login\",\n (req, res, ctx) => {\n\n const user = usersData.find(x => x.username == req.body.username && x.password == req.body.password)\n\n if (user) {\n const payload: LoginResponse = {\n accessToken: {\n token: `mock-access-token|${user.id}`,\n expiresAt: new Date(\"12-12-2100 00:00:00\"),\n },\n refreshToken: {\n token: \"mock-refresh-token\",\n },\n user: {\n firstName: user.firstName,\n lastName: user.lastName,\n id: user.id,\n role: user.role\n },\n };\n return res(ctx.status(200), ctx.json(payload));\n } else {\n return res(ctx.status(403));\n }\n }\n ),\n\n rest.post(\n \"*/api/auth/invitations\",\n (req, res, ctx) => {\n\n const user = usersData.find(x => x.id == req.body.userId)\n\n if (user) {\n const payload: Invitation = {\n id: `mock-token-${user.id}`,\n accepted: false\n };\n user.invitation = payload;\n return res(ctx.status(200), ctx.json(payload));\n } else {\n return res(ctx.status(403));\n }\n }\n ),\n\n rest.delete(\"*/api/auth/invitations/:id\", (req, res, ctx) => {\n const user = usersData.find(x => x.invitation?.id == req.params.id)\n\n if (user) {\n delete user.invitation;\n return res(ctx.status(200));\n } else {\n return res(ctx.status(403));\n }\n }\n ),\n\n rest.patch(\"*/api/auth/invitations/:id\", (req, res, ctx) => {\n const user = usersData.find(x => x.invitation?.id == req.params.id)\n\n if (user && user.invitation && !user.invitation.accepted) {\n user.invitation.accepted = true;\n user.password = req.body.password;\n return res(ctx.status(200));\n } else {\n return res(ctx.status(404));\n }\n }\n ),\n];\n","import { rest } from 'msw'\nimport * as faker from \"faker\";\nimport { optionsPoolsData } from \"./data\";\nimport { OptionsPoolCreateDto, OptionsPoolDto, OptionsPoolsOverviewDto } from '../options-pools.service.dto';\n\nexport const optionsPoolshandlers = [\n\n rest.get(\"*/api/options-pools/overview\", (req, res, ctx) => {\n return res(ctx.status(200), ctx.json({\n pendingAcceptance: faker.datatype.number({ min: 0, max: 1000 }),\n optionsInDraft: faker.datatype.number({ min: 0, max: 1000 }),\n optionsInPools: faker.datatype.number({ min: 0, max: 1000 }),\n vesting: faker.datatype.number({ min: 0, max: 1000 }),\n vested: faker.datatype.number({ min: 0, max: 1000 }),\n exercised: faker.datatype.number({ min: 0, max: 1000 })\n }))\n }),\n\n rest.get(\"*/api/options-pools/:poolId\", (req, res, ctx) => {\n const { poolId } = req.params;\n const pool = optionsPoolsData.find(x => x.id == poolId)\n if (pool)\n return res(ctx.status(200), ctx.json(pool));\n else\n return res(ctx.status(404));\n }),\n\n\n\n rest.get>(\"*/api/options-pools\", (req, res, ctx) => {\n return res(ctx.status(200), ctx.json(optionsPoolsData))\n }),\n\n rest.post(\"*/api/options-pools\", (req, res, ctx) => {\n\n return res(ctx.status(200))\n\n // optionsPoolsData.push({\n // id: (optionsPoolsData.length + 1).toString(),\n // name: req.body.name,\n // optionsRemaining: req.body.optionsTotal,\n // status: \"Pending\",\n // optionsTotal: req.body.optionsTotal,\n // vestingPercent: req.body.vestingPercent,\n // rules: req.body.rules,\n // exercisePrice: req.body.exercisePrice,\n // shareClass: getOneRandom(sharesClassesData),\n // directorFile: createDocumentFromFile(req.body.directorFile, \"Resolution\"),\n // shareholderFile: createDocumentFromFile(req.body.shareholderFile, \"Resolution\"),\n // exerciseDuration: req.body.exerciseDuration,\n // vestingDuration: req.body.vestingDuration\n // })\n })\n];\n\n","import { DocumentDto, DocumentType, DocumentStatus } from \"../documents.service.dto\";\nimport { documentId } from \"./data\";\nimport { documentsData } from \"./data\";\n\nexport function createDocumentFromFile(file: File, documentType: DocumentType, documentStatus: DocumentStatus): DocumentDto {\n\n const item = {\n mimeType: file.type,\n name: file.name,\n type: documentType,\n id: documentId(),\n createdDate: new Date(),\n status: documentStatus\n }\n\n documentsData.push(item);\n\n return item;\n}","import { rest } from 'msw'\nimport { optionsIssuanceData, optionsIssuanceId } from \"./data\";\nimport { stakeholdersData } from \"@/service/stakeholders/__mocks__/data\";\nimport { optionsPoolsData } from \"@/service/options-pools/__mocks__/data\";\nimport { OptionsIssuanceCancelDto, OptionsIssuanceCreateDto, OptionsIssuancesAnalysisDto, OptionsIssuancesDto, OptionsIssuancesOverviewDto } from '../options-issuances.service.dto';\nimport { getOneById, getOneRandom } from \"@/service/mocks\";\nimport * as faker from \"faker\";\nimport { createDocumentFromFile } from '@/service/documents/__mocks__/helpers';\n\nexport const optionsIssuancesHandlers = [\n\n rest.get>(\"*/api/options-issuances\", (req, res, ctx) => {\n return res(ctx.status(200), ctx.json(optionsIssuanceData));\n }),\n\n rest.get>(\"*/api/options-issuances/analysis\", (req, res, ctx) => {\n const result: Array = optionsIssuanceData.map(x => {\n return {\n ...x,\n stakeholder: getOneRandom(stakeholdersData),\n companyPercentage: faker.datatype.number({ min: 1, max: 100 }),\n exercisedCount: faker.datatype.number({ min: 1, max: 1000 }),\n expiredCount: faker.datatype.number({ min: 1, max: 1000 }),\n vestedCount: faker.datatype.number({ min: 1, max: 1000 }),\n vestingCount: faker.datatype.number({ min: 1, max: 1000 }),\n };\n })\n return res(ctx.status(200), ctx.json(result));\n }),\n\n rest.get(\"*/api/options-issuances/overview\", (req, res, ctx) => {\n return res(ctx.status(200), ctx.json({\n total: {\n count: faker.datatype.number({ min: 0, max: 10000 }),\n exercisePrice: faker.datatype.number({ min: 1, max: 100 }),\n totalValue: faker.datatype.number({ min: 1, max: 10000 }),\n },\n vested: {\n count: faker.datatype.number({ min: 0, max: 10000 }),\n exercisePrice: faker.datatype.number({ min: 1, max: 100 }),\n totalValue: faker.datatype.number({ min: 1, max: 10000 }),\n },\n yetToVest: {\n count: faker.datatype.number({ min: 0, max: 10000 }),\n exercisePrice: faker.datatype.number({ min: 1, max: 100 }),\n totalValue: faker.datatype.number({ min: 1, max: 10000 }),\n },\n exercised: {\n count: faker.datatype.number({ min: 0, max: 10000 }),\n exercisePrice: faker.datatype.number({ min: 1, max: 100 }),\n totalValue: faker.datatype.number({ min: 1, max: 10000 }),\n }\n }));\n }),\n\n rest.post(\"*/api/options-issuances\", (req, res, ctx) => {\n\n const { stakeholderId } = req.params;\n const stakeHolder = getOneById(stakeholdersData, stakeholderId);\n const pool = getOneById(optionsPoolsData, req.body.poolId);\n\n if (!stakeHolder.item || !pool.item)\n return res(ctx.status(400))\n\n const newResource: OptionsIssuancesDto = {\n id: optionsIssuanceId(),\n count: req.body.count,\n exercisedCount: 0,\n expiredCount: 0,\n vestedCount: 0,\n vestingCount: req.body.count,\n grantDate: req.body.grantDate,\n pool: pool.item,\n status: \"Pending\",\n vestingEndDate: faker.date.future(2),\n vestingStartDate: req.body.vestingStartDate,\n optionsAggrementFile: req.body.optionsAggrementFile ? createDocumentFromFile(req.body.optionsAggrementFile, \"OptionAgreement\", \"pending\") : undefined,\n }\n\n optionsIssuanceData.push(newResource);\n\n return res(ctx.status(200), ctx.json(newResource));\n }),\n\n rest.get(\"*/api/options-issuances/analysis/:id\", (req, res, ctx) => {\n const { id } = req.params;\n const result = getOneById(optionsIssuanceData, id)\n const stakeholder = getOneRandom(stakeholdersData);\n\n if (result.item) {\n const analysis = {\n ...result.item,\n stakeholder: stakeholder,\n companyPercentage: faker.datatype.number({ min: 1, max: 100 }),\n exercisedCount: faker.datatype.number({ min: 1, max: 1000 }),\n expiredCount: faker.datatype.number({ min: 1, max: 1000 }),\n vestedCount: faker.datatype.number({ min: 1, max: 1000 }),\n vestingCount: faker.datatype.number({ min: 1, max: 1000 }),\n }\n return res(ctx.status(200), ctx.json(analysis));\n }\n else\n return res(ctx.status(404));\n }),\n\n rest.post(\"*/api/options-issuances/cancellation/\", (req, res, ctx) => {\n return res(ctx.status(200));\n }),\n];\n\n","import { rest } from 'msw'\nimport * as faker from \"faker\";\nimport { sharesIssuancesData } from \"./data\";\nimport { NewSharesIssuanceDto, SharesIssuanceAnalysisDto, SharesIssuanceDto } from '../shares-issuances.service.dto';\nimport { getOneById, getOneRandom } from '@/service/mocks';\nimport { stakeholdersData } from '@/service/stakeholders/__mocks__/data';\n\nexport const sharesIssuanceshandlers = [\n\n rest.get>(\"*/api/shares-issuances\", (req, res, ctx) => {\n return res(ctx.status(200), ctx.json(sharesIssuancesData));\n }),\n\n\n\n rest.get>(\"*/api/shares-issuances/analysis\", (req, res, ctx) => {\n\n const result: Array = sharesIssuancesData.map(x => {\n return {\n ...x,\n stakeholder: getOneRandom(stakeholdersData),\n accCount: faker.datatype.number({ min: 1, max: 1000 }),\n profit: faker.datatype.number({ min: 1, max: 1000 }),\n profitAfterTax: faker.datatype.number({ min: 1, max: 1000 }),\n currentPrice: faker.datatype.number({ min: 1, max: 1000 }),\n totalValue: faker.datatype.number({ min: 1, max: 1000 })\n }\n })\n\n return res(ctx.status(200), ctx.json(result));\n\n }),\n\n rest.get(\"*/api/shares-issuances/:id\", (req, res, ctx) => {\n const { id } = req.params;\n const result = getOneById(sharesIssuancesData, id);\n if (result.item) {\n result.item.stakeholderId = \"2\";\n result.item.shareholderFile = {\n createdDate: faker.date.past(),\n mimeType: \"application/pdf\",\n name: \"My Shareholder File.pdf\",\n type: \"Resolution\",\n id: \"12345\",\n status: \"pending\"\n }\n\n\n return res(ctx.status(200), ctx.json(result.item));\n }\n else\n return res(ctx.status(404));\n }),\n\n rest.post(\"*/api/shares-issuances\", (req, res, ctx) => {\n return res(ctx.status(200)) // TODO: Return created resource\n }),\n\n rest.get(\"*/api/shares-issuances/analysis/:id\", (req, res, ctx) => {\n const { id } = req.params;\n const result = getOneById(sharesIssuancesData, id)\n if (result.item) {\n const analysis = {\n ...result.item,\n stakeholder: getOneRandom(stakeholdersData),\n accCount: faker.datatype.number({ min: 1, max: 1000 }),\n profit: faker.datatype.number({ min: 1, max: 1000 }),\n profitAfterTax: faker.datatype.number({ min: 1, max: 1000 }),\n currentPrice: faker.datatype.number({ min: 1, max: 1000 }),\n totalValue: faker.datatype.number({ min: 1, max: 1000 })\n }\n return res(ctx.status(200), ctx.json(analysis));\n }\n else\n return res(ctx.status(404));\n }),\n\n];\n\n","import { ValuationDto } from \"../valuations.service.dto\";\nimport { fakeIdGenerator, getManyRandom, getOneRandom } from \"@/service/mocks\";\nimport * as faker from \"faker\";\n\nimport { documentsData } from \"@/service/documents/__mocks__/data\";\n\nexport const valuationId = fakeIdGenerator();\n\nexport const valuationsData: Array = new Array(10).fill({}).map(x => ({\n id: valuationId(),\n type: getOneRandom([\"options\", \"shares\"]),\n createdDate: new Date(),\n status: getOneRandom([\"pending\", \"active\"]),\n actualMarketValue: faker.datatype.number({ min: 1000000, max: 5000000 }),\n unrestrictedMarketValue: faker.datatype.number({ min: 1000000, max: 5000000 }),\n expDate: faker.date.future(1),\n files: getManyRandom(documentsData, 3)\n} as ValuationDto));","import { rest } from 'msw'\nimport { documentsData } from \"@/service/documents/__mocks__/data\";\nimport { DocumentDto } from '../documents.service.dto';\nimport { getOneById } from \"@/service/mocks\";\nimport { Entity } from '../documents.service';\nimport { valuationsData } from \"@/service/valuations/__mocks__/data\";\n\nexport const documentsHandlers = [\n\n rest.get>(\"*/api/documents\", (req, res, ctx) => {\n\n const filterQueryParam = req.url.searchParams.get(\"filter\");\n if (!filterQueryParam)\n return res(ctx.status(400));\n\n const [entity, entityId] = filterQueryParam.split(',') as [Entity, string]\n\n // Filter logic\n switch (entity) {\n case \"company\":\n return res(ctx.status(200), ctx.json(documentsData));\n case \"valuation\":\n return res(ctx.status(200), ctx.json(documentsData.filter(doc => valuationsData.find(x => x.id == entityId)?.files.some(x => x.id == doc.id))));\n default:\n return res(ctx.status(400));\n }\n\n }),\n\n rest.get(\"*/api/documents/:id\", (req, res, ctx) => {\n const result = getOneById(documentsData, req.params.id);\n if (!result.item)\n return res(ctx.status(404));\n else\n return res(ctx.status(200), ctx.json(result.item));\n }),\n\n];\n\n","import { rest } from 'msw'\nimport { sharesClassesData } from \"./data\";\nimport { ShareClassDto } from '../share-classes.service.dto';\n\nexport const shareClassesHandlers = [\n\n rest.get>(\"*/api/share-classes/\", (req, res, ctx) => {\n return res(ctx.status(200), ctx.json(sharesClassesData));\n })\n\n];\n\n","\nimport { getOneById } from '@/service/mocks';\nimport { rest } from 'msw'\nimport { ValuationCreateDto, ValuationDto } from \"../valuations.service.dto\";\nimport { valuationsData, valuationId } from \"./data\";\nimport { createDocumentFromFile } from '@/service/documents/__mocks__/helpers';\n\nexport const valuationsHandlers = [\n \n rest.get>(\"*/api/valuations\", (req, res, ctx) => {\n return res(ctx.status(200), ctx.json(valuationsData))\n }),\n\n rest.post(\"*/api/valuations\", (req, res, ctx) => {\n const id = valuationId();\n valuationsData.push({\n id: id,\n createdDate: new Date(),\n files: [],\n unrestrictedMarketValue: 0,\n actualMarketValue: 0,\n status: \"pending\",\n type: req.body.type \n })\n\n return res(ctx.status(201), ctx.json(id))\n }),\n\n rest.post(\"*/api/valuations/:id/documents\", (req, res, ctx) => {\n \n const valuation = getOneById(valuationsData, req.params.id);\n if (!valuation.item)\n return res(ctx.status(404));\n\n valuation.item.files.push(createDocumentFromFile(req.body.file, \"Other\", \"pending\"));\n\n return res(ctx.status(201))\n }),\n\n];","import { setupWorker } from \"msw\";\nimport * as faker from \"faker\";\nimport { handlers as companyHandlers } from \"./companies/__mocks__/handlers\";\nimport { stakeHoldersHandlers } from \"./stakeholders/__mocks__/handlers\";\nimport { userHandlers } from \"./user/__mocks__/handlers\";\nimport { optionsPoolshandlers } from \"./options-pools/__mocks__/handlers\";\nimport { optionsIssuancesHandlers } from \"./options-issuances/__mocks__/handlers\";\nimport { sharesIssuanceshandlers } from \"@/service/shares-issuances/__mocks__/handlers\";\nimport { documentsHandlers } from \"@/service/documents/__mocks__/handlers\";\nimport { shareClassesHandlers } from \"@/service/share-classes/__mocks__/handlers\";\nimport { valuationsHandlers } from \"@/service/valuations/__mocks__/handlers\";\nimport { Resource } from \".\";\n\n\nexport async function startWorker() {\n\n console.debug(\"Starting worker...\");\n\n const handlers = [\n ...companyHandlers,\n ...stakeHoldersHandlers,\n ...userHandlers,\n ...optionsPoolshandlers,\n ...optionsIssuancesHandlers,\n ...sharesIssuanceshandlers,\n ...documentsHandlers,\n ...shareClassesHandlers,\n ...valuationsHandlers\n ];\n\n const worker = setupWorker(...handlers);\n\n return worker.start({\n onUnhandledRequest: \"bypass\"\n });\n\n}\n\nexport function fakeIdGenerator(): () => string {\n let lastId = 0;\n return function (): string {\n lastId++;\n return lastId.toString();\n }\n}\n\nexport function getOneRandomOrDefault(data: Array): T | undefined {\n return data.length ?\n data[faker.datatype.number({ min: 0, max: data.length - 1 })] :\n undefined\n}\n\nexport function getOneRandom(data: Array): T {\n if (!data.length)\n throw new Error(\"Collection is empty\")\n\n return data[faker.datatype.number({ min: 0, max: data.length - 1 })];\n}\n\nexport function getManyRandom(data: Array, count: number): Array {\n if (data.length < count)\n throw new Error(\"Collection is smaller than specified count\")\n\n const picks: Array = []\n\n while (picks.length < count) {\n const pick = faker.datatype.number({ min: 0, max: data.length - 1 })\n if (picks.indexOf(pick) == -1)\n picks.push(pick);\n }\n\n return picks.map(x => data[x]);\n}\n\ninterface RetrievedResource {\n index: number\n item?: T\n}\nexport function getOneById(data: Array, id: string): RetrievedResource {\n const index = (data as unknown as Array).findIndex(x => x.id == id);\n return index == - -1 ? { index: -1, item: undefined } : { index, item: data[index] };\n}","import axios from \"axios\";\nimport { startWorker as startMockedServicesApi } from \"./mocks\";\n\nexport async function init(baseURL: string, mocked: boolean) {\n\n axios.defaults.baseURL = baseURL\n\n if (mocked)\n return startMockedServicesApi();\n else\n Promise.resolve();\n}\n\n\nfunction resolveUrl(url: string): string {\n return url;\n}\n\nexport function isApiError(error: any): error is ApiError {\n return ('type' in error && 'reason' in error);\n}\n\nexport function isApiErrorOf(error: any, type: T[\"type\"]): error is T {\n return ('type' in error && 'reason' in error && error.type == type);\n}\n\nexport interface ApiError {\n type: string;\n reason: string;\n}\n\nexport const api = {\n delete: del,\n get: get,\n put: put,\n post: post,\n patch: patch,\n patchForm: patchForm,\n postForm: postForm\n}\n\nfunction getError(error: any): any {\n if (isApiError(error)) {\n return error\n }\n else {\n if (error.response) {\n // The request was made and the server responded with a status code\n // that falls out of the range of 2xx\n console.error(error.response.data);\n console.error(error.response.status);\n console.error(error.response.headers);\n return error.response.data;\n } else if (error.request) {\n // The request was made but no response was received\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\n // http.ClientRequest in node.js\n console.error(error.request);\n } else {\n // Something happened in setting up the request that triggered an Error\n console.error('Error', error.message);\n }\n return error;\n }\n}\n\nasync function get(url: string, params?: any): Promise {\n try {\n const result = await axios.get(resolveUrl(url), { params });\n return result.data as T;\n }\n catch (error) {\n throw getError(error);\n }\n}\n\nasync function post(url: string, data?: any, params?: any): Promise {\n try {\n const result = await axios.post(resolveUrl(url), data, { params });\n return result.data as T;\n }\n catch (error) {\n throw getError(error);\n }\n}\n\nasync function postForm(url: string, form: FormData, params?: any): Promise {\n try {\n const result = await axios.post(resolveUrl(url), form, {\n params, headers: {\n 'Content-Type': 'multipart/form-data'\n }\n });\n return result.data as T;\n }\n catch (error) {\n throw getError(error);\n }\n}\n\nasync function patch(url: string, data?: any, params?: any): Promise {\n try {\n const result = await axios.patch(resolveUrl(url), data, { params });\n return result.data as T;\n }\n catch (error) {\n throw getError(error);\n }\n}\n\nasync function patchForm(url: string, form?: FormData, params?: any): Promise {\n try {\n const result = await axios.patch(resolveUrl(url), form, {\n params, headers: {\n 'Content-Type': 'multipart/form-data'\n }\n });\n return result.data as T;\n }\n catch (error) {\n throw getError(error);\n }\n}\n\nasync function del(url: string, params?: any): Promise {\n try {\n const result = await axios.delete(resolveUrl(url), { params });\n return result.data as T;\n }\n catch (error) {\n throw getError(error);\n }\n}\n\n\nasync function put(url: string, data?: any, params?: any): Promise {\n try {\n const result = await axios.put(resolveUrl(url), data, { params });\n return result.data as T;\n }\n catch (error) {\n throw getError(error);\n }\n}\n\n\n\nexport function convertTObjecToFormData(obj: any): FormData {\n const formData = new FormData();\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n const element = obj[key];\n if (typeof element != \"undefined\") {\n if (typeof element == \"string\") {\n formData.append(key, element);\n }\n else if (element instanceof File) {\n formData.append(key, element);\n }\n else if (element instanceof Date) {\n formData.append(key, element.toISOString());\n }\n else if (Array.isArray(element)) {\n element.forEach((el, index) => {\n formData.append(key + \"-\" + index, el);\n })\n }\n else {\n formData.append(key, element.toString());\n }\n }\n }\n }\n\n return formData;\n\n}\n\n","export * from \"./share-classes.service.dto\";\nimport { ShareClassDto } from \"./share-classes.service.dto\";\nimport { api } from \"@/service\"\n\nexport async function getAllShareClassesOfCompany(companyId: string): Promise> {\n return api.get(`/api/share-classes/`, { companyId });\n}\n\nexport async function getShareClass(id: string): Promise {\n return api.get(`/api/share-classes/${id}`);\n}\n\nexport async function createShareClassForCompany(companyId: string, resource: ShareClassDto): Promise {\n return api.post(`/api/share-classes`, resource, { companyId });\n}\n\nexport async function updateShareClass(id: string, resource: ShareClassDto): Promise {\n return api.put(`/api/share-classes/${id}`, resource);\n}\n\nexport async function removeShareClass(id: string): Promise {\n return api.delete(`/api/share-classes/${id}`);\n}","export * from \"./options-pools.service.dto\";\nimport { api, convertTObjecToFormData } from \"@/service\";\nimport { OptionsPoolCreateDto, OptionsPoolDto, OptionsPoolsOverviewDto } from \"./options-pools.service.dto\";\n\n/* ================================================================================= */\n/* GET ============================================================================= */\n/* ================================================================================= */\n\nexport async function getOnePool (id: string): Promise {\n return api.get(`/api/options-pools/${id}`);\n}\n\nexport async function getPoolsOverviewOfCompany (companyId: string): Promise {\n return api.get(`/api/options-pools/overview`, { companyId });\n}\n\nexport async function getPoolsOfCompany (companyId: string): Promise> {\n return api.get(`/api/options-pools`, { companyId });\n}\n\n/* ================================================================================= */\n/* POST ============================================================================ */\n/* ================================================================================= */\n\nexport function createOptionsPoolOfCompany (companyId: string, pool: OptionsPoolCreateDto): Promise {\n return api.postForm(`/api/options-pools`, convertTObjecToFormData(pool), { companyId });\n}\n\n/* ================================================================================= */\n/* DELETE ============================================================================ */\n/* ================================================================================= */\n\nexport function deletePool (poolId: string,): Promise {\n return api.delete(`/api/options-pools/${poolId}`,);\n}","import { Store } from \"@/core\"\nimport { CompanyDto } from \"./companies.service.dto\";\nimport * as service from \"./companies.service\";\n\ninterface StoreData {\n list: Array\n currentId: string\n current?: CompanyDto\n}\n\nclass CompaniesStore extends Store {\n async fetchList() {\n this.state.list = await service.getAllCompanies();\n if (!this.state.currentId && this.state.list.length) {\n this.setCompany(window.localStorage.getItem(\"companyId\") ?? this.state.list[0].id);\n }\n }\n\n setCompany(id: string) {\n this.state.current = companiesStore.state.list.find(x => x.id == id);\n\n if (this.state.current) {\n this.state.currentId = this.state.current.id;\n window.localStorage.setItem(\"companyId\", id);\n }\n }\n\n clearCompany() {\n this.state.currentId = '';\n this.state.current = undefined;\n window.localStorage.removeItem(\"companyId\");\n }\n\n}\n\nexport const companiesStore = new CompaniesStore({ list: [], currentId: \"\" });","export * from \"./documents.service.dto\";\nimport { api, convertTObjecToFormData } from \"@/service\"\nimport { DocumentDto, DocumentsAnalysisDto, DocumentStatus } from \"./documents.service.dto\";\n\n/* ================================================================================== */\n/* GET ============================================================================= */\n/* ================================================================================== */\n\nexport type Entity = \"company\" | \"valuation\";\nexport interface Filter {\n entity: Entity\n id: string\n}\n\nexport async function getDocumentsOf(filter: Filter, documentType?: DocumentType): Promise> {\n const filterParam = filter ? `${filter.entity},${filter.id}` : undefined;\n let result = await api.get>(`/api/documents`, { filter: filterParam});\n result.forEach(x => x.createdDate = new Date(x.createdDate))\n\n if (documentType)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n result = result.filter(x => x.type == documentType);\n\n return result;\n}\n\nexport async function getDocument(id: string): Promise {\n const result = await api.get(`/api/documents/${id}`);\n result.createdDate = new Date(result.createdDate);\n return result;\n}\n\nexport async function getDocumentsAnalysisOf(filter: Filter): Promise {\n const filterParam = filter ? `${filter.entity},${filter.id}` : undefined;\n return await api.get(`/api/documents/analysis`, { filter: filterParam });\n}\n\nexport async function uploadForCompany(companyId: string, documentType: string, document?: File): Promise {\n \n // Step 1: Create a Valuation with no files\n const documentResponse = await api.postForm(`/api/documents/UploadDocument`, convertTObjecToFormData( {companyFile: document, companyId: companyId, docType:documentType}));\n\n // Step 2: Attach any files in parallel and wait for them to upload\n\n // Step 3: Finally return ID of the new Valuation\n return documentResponse.id??\"\";\n\n}","import vuetify from 'vuetify/src/locale/en'\nexport default {\n $vuetify: vuetify,\n app: {\n logout: \"Log out\",\n },\n $validator: {\n messages: {\n required: 'The field is required',\n min: 'The field should be at least {length} characters',\n max: 'The field should be at the most {length} characters',\n min_value: 'Min allowed value is {min}',\n max_value: 'Max allowed value is {max}',\n numeric: 'The field should contain only numbers',\n vestingPercent: 'The field should be a numeric value from 1 to 100',\n decimal_greater_than_zero: 'The field should be a number greater than zero',\n decimal: 'The field should be a number'\n }\n },\n shared: {\n new: \"New\",\n save: \"Save\",\n create: \"Create\",\n next: \"Next\",\n previous: \"Previous\",\n add: \"Add\",\n edit: \"Edit\",\n delete: \"Delete\",\n ok: \"OK\",\n done: \"Done\",\n cancel: 'Cancel',\n genericError: \"Something went wrong\",\n successfulExecution: \"Success\",\n stepNumber: \"Step {number}\",\n selectFile: \"Select File\",\n documentRequired: \"Must provide at least one Resolution\"\n },\n draft: \"Draft\",\n pending: \"Pending\",\n active: \"Active\",\n activatedDate: \"Activated At\",\n shareHolder: \"Shareholder\",\n shareHolders: \"Shareholders\",\n totalPrice: \"Total Price\",\n optionHolders: \"Option Holders\",\n optionHolder: \"Option Holder\",\n pool: \"Share Options Pool\",\n options: \"Share Options\",\n shares: \"Shares\",\n vesting: \"Vesting\",\n vestingDate: \"Vesting Date\",\n exerciseBy: \"Exercise By\",\n exercised: \"Exercised\",\n exercisePrice: \"Exercise Price\",\n exerciseDate: \"Exercise Date\",\n exercisePriceTooltip: \"Price is calculated using a Weighted Average formula\",\n exerciseDuration: \"Exercise Duration (in months)\",\n exerciseDurationTooltip: \"For how long, in months, can Option Holders exercise their options after being vested\",\n projectedProfit: \"Projected Profit\",\n projectedNetOfTax: \"Projected Profit (after tax)\",\n profit: \"Profit\",\n profitAfterTax: \"Profit (after tax)\",\n vested: \"Vested\",\n vestingStartDate: \"Vesting Start Date\",\n yetToVest: \"Yet to Vest\",\n yearsAfterTheVestingDate: \"{years} years after the vesting date\",\n percentage: \"Percentage\",\n projectedPricePrompt: \"Type your price to project profit\",\n typeOfShares: \"Type of Shares\",\n numberofShares: \"Number of Shares\",\n sharesIssued: \"Shares Issued\",\n sharePrice: \"Share Price (€)\",\n totalValue: \"Total Value\",\n type: \"Type\",\n total: \"Total\",\n remaining: \"Remaining\",\n status: \"Status\",\n approved: \"Approved\",\n created: \"Created\",\n grantPrice: \"Grant Price\",\n issueDate: \"Issue Date\",\n issued: \"Issued\",\n or: \"or\",\n name: \"Name\",\n className: \"Class Name\",\n totalOwnership: \"Total Ownership\",\n manage: \"Manage\",\n view: \"View\",\n all: \"All\",\n capitalOwnership: \"Capital Ownership\",\n simulateOptionsExercised: \"Simulate Options Exercised\",\n viewVotingShareholdersOnly: \"View Voting Shareholders Only\",\n simulateNewIssuance: \"Simulate New Issuance\",\n sharesIssuances: \"Shares Issuances\",\n sharesIssuance: \"Shares Issuance\",\n optionsIssuances: \"Share Options Issuances\",\n optionsIssuance: \"Share Options Issuance\",\n shareClass: \"Share Class\",\n capTableSubtitle: \"View/Simulate Your Cap Table\",\n viewOptions: \"View Options\",\n simulationWarning: \"You have simulation options applied. View may not reflect actual data\",\n overallOwnership: \"Overall Ownership\",\n shareClasses: \"Share Classes\",\n companyTypes: \"Company Types\",\n companyType: \"Company Type\",\n grantOptions: \"Grant Options\",\n vestingPaceValue: \"{percent}% every {months} months\",\n vestingPace: \"Vesting Pace\",\n shareClassRestrictions: \"Share Class Rules\",\n companySharePercent: \"Company Shares Percent\",\n stakeholder: \"Stakeholder\",\n stakeholders: \"Stakeholders\",\n directors: \"Directors\",\n email: \"e-mail\",\n phone: \"Phone\",\n address: \"Address\",\n postCode: \"Post Code\",\n firstName: \"First Name\",\n lastName: \"Last Name\",\n remainingOptions: \"Remaining Options\",\n contact: \"Contact\",\n live: \"Live\",\n pendingApproval: \"Pending Approval\",\n update: \"Update\",\n back: \"Back\",\n city: \"City\",\n country: \"Country\",\n addressState: \"State\",\n streetAddress: \"Street Address\",\n incorporationDate: \"Incorporation Date\",\n companyDistinctiveName: \"Distinctive Name\",\n crnNumber: \"CRN Number\",\n accountingStartDate: \"Accounting Start Date\",\n accountingEndDate: \"Accounting End Date\",\n taxId: \"Tax ID\",\n taxOffice: \"Tax Office\",\n amv: \"AMV\",\n umv: \"UMV\",\n expDate: \"Exp. Date\",\n documents: \"Documents\",\n shareholdersListTitle: \"Shareholders\",\n totalOptions: \"Total Options\",\n vestedOptions: \"Vested Options\",\n vestingOptions: \"Vesting Options\",\n exercisedOptions: \"Exercised Options\",\n expiredOptions: \"Expired Options\",\n poolOptionTypes: \"Type\",\n manualKpi: \"Manual KPI\",\n valuations: \"Valuations\",\n mimeType: \"File Type\",\n send: \"Send\",\n isBoardMember: \"Board Member\",\n newSharesIssuance: \"New Shares Issuance\",\n newBatchSharesIssuance: \"New Shares Issuances Batch\",\n issuanceDate: \"Grant Date\",\n isEmployee: \"Employee\",\n isFullTimeEmployee: \"Full-time\",\n isFullTimeEmployeeTooltip: \"You can only give Options to full-time employees\",\n createValuationTitle: \"Add Valuation\",\n createValuationSubtitle: \"Submit the form for review\",\n addStakeholder: \"New Stakeholder\",\n company: \"Company\",\n submit: \"Submit\",\n rules: \"Rules\",\n cancelAll: \"Cancel All\",\n cancelPartial: \"Cancel Partial\",\n cancelOptions: \"Cancel Share Options\",\n vestOptions: \"Vest Share Options\",\n vestAll: \"Vest All\",\n vestPartial: \"Vest Partial\",\n isCompany: \"Legal Entity\",\n TotalInvestment: \"Total Investment\",\n optionsModule: {\n proofOfPayment: \"Payment Receipt\",\n overview: \"Overview\",\n poolName: \"Pool Name\",\n poolSize: \"Pool Size\",\n vestingPeriod: \"Vesting Period (in months)\",\n vestingPeriodTooltip: \"How often, in months, the specified percent of options will be vested\",\n vestingPercent: \"Vesting Percent per Period (%)\",\n vestingPercentTooltip: \"The percent of options to vest at the end of each period\",\n totalVestingPeriod: \"Total Vesting Period (in years)\",\n totalVestingPeriodTooltip: \"How long will it take, in years, for all options to be vested\",\n documentInstuctions: \"Select the template document in order to create new document that will request signatures from the director and the shareholder. \\nSelect any other document in order to link it with the option issuance.\",\n createCertificate: \"Generate Share Certificate\",\n navHeader: \"SHARE OPTIONS\",\n pagePrompt: \"Create and manage your scheme\",\n viewCreatePoolPrompt: \"Create an Option Pool\",\n addValuation: \"Add Valuation\",\n grantOptionsPrompt: \"Grant Options\",\n grant: \"Grant\",\n createAnOptionPool: \"Create an Option Pool\",\n uploadResolutionPrompt: \"Upload Resolution Documents\",\n shareholderResolution: \"Shareholder Resolution\",\n directorResolution: \"Director Resolution\",\n directorShareholderResolution: \"Director/Shareholder Resolution\",\n poolAttributes: \"Pool Attributes\",\n beneficiary: \"Beneficiary\",\n createPool: {\n restrictionsSummaryLabel: \"Existing share class restrictions summary (optional)\",\n noRestrictionDeclarationText: \"There are no restrictions on the shares being offered or I am only issuing unapproved options\"\n },\n widgets: {\n optionsInPool: \"Share Options Pools\",\n optionsInDraft: \"Draft Share Options\",\n pendingAcceptance: \"Pending Acceptance Share Options\",\n vested: \"Vested Share Options\",\n vesting: \"Vesting Share Options\",\n exercised: \"Exercised Share Options\",\n optionsIssued: \"Issued Share Options\"\n }\n },\n myDashboard: {\n navHeader: \"DASHBOARD\",\n },\n companyModule: {\n navHeader: \"COMPANY\",\n },\n capTable: {\n navHeader: \"CAP TABLE\",\n },\n documentsModule: {\n uploadDocumentTitle: \"Upload a Document\",\n navHeader: \"DOCUMENTS\",\n pagePrompt: \"Create and manage your documents\",\n addDocuments: \"Add Documents\",\n widgets: {\n allDocuments: \"All Documents\",\n pendingSign: \"Pending Signatures\",\n signedDocuments: \"Signed Documents\"\n }\n },\n stakeholdersModule: {\n navHeader: \"STAKEHOLDERS\",\n addNewStakeholder: \"Add New Stakeholder\",\n updateStakeholder: \"Edit Stakeholder\"\n },\n greekCompanyTypes: {\n ae: \"S.A.\",\n ike: \"P.C.\"\n },\n adminModule: {\n navHeader: \"ADMIN\"\n },\n companySettingsModule: {\n navHeader: \"SETTINGS\",\n navHeaderNormalized: \"Settings\"\n },\n saveAsDraft: \"Save as a draft\",\n notSelected: \"Not Selected\",\n typeConfirmCodePrompt: \"Type the code to proceed\",\n confirmShareIssuanceMessage: \"The share issuance will be pending for review. After the review, this action will impact your cap table! Do you want to proceed?\",\n confirmOptionsIssuanceMessage: \"The options issuance will be pending for review. Do you want to proceed?\",\n confirmCreatePoolMessage: \"The options pool will be pending for review. Do you want to proceed?\",\n emailAll: \"Email All\",\n docType: {\n resolution: \"Resolution\",\n optionAgreement: \"Options Agreement\",\n share: \"Shares\",\n certificate: \"Shares Certificate\",\n other: \"Other\",\n companyPolicy: \"Company Policy\",\n employmentContracts: \"Employment Contracts\",\n sharesAgreement: \"Shareholder Agreement File\",\n articlesofAssociation: \"Articles of Association\",\n },\n confirmPoolDeleteMessage: \"You are about to delete pool '{poolName}'. Delete?\",\n confirmOptionsIssuanceDeleteMessage: \"You are about to delete options for '{name}'. Delete?\",\n confirmSharesIssuanceDeleteMessage: \"You are about to delete this draft. Delete?\",\n confirmSharesIssuanceRowDeleteMessage: \"You are about to delete this row. Delete?\",\n availableOptionsExceededException: \"You have exceeded the max available options\",\n invalidVestingStartDateException: \"You cannot pick vesting date more than {years} years ago\",\n poolNameAlreadyExistsException: \"Pool name already exists\",\n maxPoolLimitExceededdException: \"More than {percentage}% of company shares is not allowed\",\n CannotGiveOptionsToNonEmployeesException: \"You cannot give options to non employess\",\n vatNumber: \"Tax ID Number\",\n vestingProgress: \"Vesting Progress\",\n sendInvitation: \"Send Invitation\",\n revokeInvitation: \"Revoke Invitation\",\n resendInvitation: \"Resend Invitation\",\n delete: \"Delete\",\n confirmation: \"Confirmation\",\n exerciseOptions: \"Exercise Share Options\",\n sharesInputMessage: '{vested} available share options to exercise',\n signUp: {\n signup: {\n title: 'Sign-up',\n prompt: 'Enter your credentials',\n },\n reset: {\n title: 'Reset you password',\n prompt: 'Type a new password',\n },\n password: 'Enter a password',\n password2: 'Re-enter the password',\n submit: 'Submit'\n },\n forgotPassword: 'Forgot Password?',\n requestReset: {\n title: 'Request password reset',\n prompt: 'Enter your email',\n submit: 'Submit'\n },\n Contactus: {\n Title: 'Contact Us',\n body: 'Message',\n subject: 'Subject',\n submit: 'Submit'\n },\n optionsIssuanceDetails: \"Share Options Details\",\n addOne: \"New Shares\",\n addBatch: \"New Multiple Shares\"\n}","import { Store } from \"@/core\"\nimport { UserDto } from \"./service/user/user.service\";\nimport { ability } from \"@/service/user/ability\"\nimport { subject } from \"@casl/ability\";\n\ntype Color = \"primary\" | \"secondary\" | \"accent\" | \"info\" | \"success\" | \"warning\" | \"error\";\ntype Module = 'my-dashboard' | 'company' | 'options' | 'cap-table' | 'documents' | 'stakeholders' | 'admin' | 'guides'\n\ninterface AppStoreData {\n user?: UserDto,\n snackbar: {\n visible: boolean,\n text: string,\n timeout: number,\n color: Color\n },\n modules: Array\n}\n\nclass AppStore extends Store {\n\n snackbar(text: string, color: Color = \"info\") {\n this.state.snackbar.text = text;\n this.state.snackbar.visible = true;\n this.state.snackbar.color = color;\n }\n\n setUser(user: UserDto) {\n this.state.user = user;\n this.invalidateModules();\n }\n\n invalidateModules() {\n console.log(\"invalidateModules\");\n this.state.modules = [];\n\n if (ability.can('read', subject(\"Module\", { type: \"my-dashboard\" })))\n this.state.modules.push(\"my-dashboard\");\n\n if (ability.can('read', subject(\"Module\", { type: \"company\" })))\n this.state.modules.push(\"company\");\n\n if (ability.can('read', subject(\"Module\", { type: \"options\" })))\n this.state.modules.push(\"options\");\n\n if (ability.can('read', subject(\"Module\", { type: \"cap-table\" })))\n this.state.modules.push(\"cap-table\");\n\n if (ability.can('read', subject(\"Module\", { type: \"documents\" })))\n this.state.modules.push(\"documents\");\n\n if (ability.can('read', subject(\"Module\", { type: \"stakeholders\" })))\n this.state.modules.push(\"stakeholders\");\n\n if (ability.can('read', subject(\"Module\", { type: \"admin\" })))\n this.state.modules.push(\"admin\");\n\n if (ability.can('read', subject(\"Module\", { type: \"guides\" })))\n this.state.modules.push(\"guides\");\n }\n}\n\nexport const appStore = new AppStore({\n modules: [],\n snackbar: {\n visible: false,\n text: \"\",\n timeout: 3000,\n color: \"info\"\n }\n})","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('h2',{staticClass:\"mb-5\"},[_vm._v(\"Login\")]),_c('h4',{staticClass:\"mb-4\"},[_vm._v(\"Enter your credentials\")]),_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"rules\":_vm.usernameRules,\"label\":\"Email\",\"required\":\"\",\"outlined\":\"\",\"placeholder\":\" \",\"auto\":\"\",\"autocomplete\":\"username\"},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"type\":\"password\",\"rules\":_vm.passwordRules,\"label\":\"Password\",\"required\":\"\",\"outlined\":\"\",\"placeholder\":\" \",\"autocomplete\":\"current-password\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('router-link',{attrs:{\"to\":{ path: '/request-reset-password' }}},[_vm._v(\" \"+_vm._s(_vm.$t('forgotPassword'))+\" \")])],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[(_vm.error)?_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"mr-4\",attrs:{\"disabled\":!_vm.valid,\"color\":\"primary\",\"depressed\":\"\",\"loading\":_vm.loading},on:{\"click\":_vm.login}},[_vm._v(\" Login \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=2205776f&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('h2',{staticClass:\"mb-5\"},[_vm._v(_vm._s(_vm.$t((\"signUp.\" + _vm.source + \".title\"))))]),_c('h4',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm.$t((\"signUp.\" + _vm.source + \".prompt\"))))]),_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"value\":_vm.email,\"label\":\"Email\",\"outlined\":\"\",\"readonly\":\"\",\"disabled\":\"\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{ref:\"password\",attrs:{\"type\":\"password\",\"rules\":_vm.passwordRules,\"label\":_vm.$t('signUp.password'),\"required\":\"\",\"outlined\":\"\",\"placeholder\":\" \"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"type\":\"password\",\"rules\":_vm.password2Rules,\"label\":_vm.$t('signUp.password2'),\"required\":\"\",\"outlined\":\"\",\"placeholder\":\" \"},model:{value:(_vm.password2),callback:function ($$v) {_vm.password2=$$v},expression:\"password2\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[(_vm.error)?_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"mr-4\",attrs:{\"disabled\":!_vm.valid,\"color\":\"primary\",\"depressed\":\"\",\"loading\":_vm.loading},on:{\"click\":_vm.signUp}},[_vm._v(\" \"+_vm._s(_vm.$t('signUp.submit'))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { PropType } from \"vue\";\nimport * as auth from \"@/service/user/user.service\";\n\nexport default Vue.extend({\n props: {\n token: {\n required: false,\n type: String,\n default: \"\",\n },\n source: {\n type: String as PropType<'signup' | 'reset'>,\n default: 'signup'\n },\n email: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n loading: false,\n error: \"\",\n valid: false,\n invitationRules: [\n (v: any) => !!v || \"Invitation Code is required\"\n ],\n passwordRules: [\n (v: any) => !!v || \"Password is required\",\n (v: any) => (v && v.length > 5) || \"Password must be more than 5 characters\",\n (v: any) => (v && /[A-Z]/.test(v) || \"Password must contain 1 uppercase letter\"),\n (v: any) => (v && /\\d/.test(v) || \"Password must contain 1 number\"),\n (v: any) => (v && /[!@#$%^&*]/.test(v) || \"Password must contain 1 special symbol\"),\n ],\n password2Rules: [\n (v: any) => !!v || \"Password is required\",\n (v: any) => (v && v.length > 5) || \"Password must be more than 5 characters\",\n (v: any) => (v && /[A-Z]/.test(v) || \"Password must contain 1 uppercase letter\"),\n (v: any) => (v && /\\d/.test(v) || \"Password must contain 1 number\"),\n (v: any) => (v && /[!@#$%^&*]/.test(v) || \"Password must contain 1 special symbol\"),\n (v: any) => ((this.$refs.password as any).value == v || \"Password doesn't match\"),\n ],\n invitation: this.token,\n password: \"\",\n password2: \"\"\n };\n },\n methods: {\n async signUp() {\n try {\n this.loading = true;\n this.error = \"\";\n await auth.acceptUserInvitation(this.invitation, this.password);\n this.$router.replace(\"/\");\n } catch (error) {\n this.error = \"Invalid Invitation Code\";\n }\n this.loading = false;\n },\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUp.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUp.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignUp.vue?vue&type=template&id=5f271b90&\"\nimport script from \"./SignUp.vue?vue&type=script&lang=ts&\"\nexport * from \"./SignUp.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('h2',{staticClass:\"mb-5\"},[_vm._v(_vm._s(_vm.$t(\"Contactus.Title\")))]),_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"value\":_vm.email,\"label\":\"Email\",\"outlined\":\"\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{ref:\"Subject\",attrs:{\"label\":_vm.$t('Contactus.subject'),\"required\":\"\",\"outlined\":\"\",\"placeholder\":\" \"},model:{value:(_vm.subject),callback:function ($$v) {_vm.subject=$$v},expression:\"subject\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-textarea',{attrs:{\"label\":_vm.$t('Contactus.body'),\"required\":\"\",\"outlined\":\"\",\"placeholder\":\" \"},model:{value:(_vm.body),callback:function ($$v) {_vm.body=$$v},expression:\"body\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[(_vm.error)?_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"mr-4\",attrs:{\"disabled\":!_vm.valid,\"color\":\"primary\",\"depressed\":\"\",\"loading\":_vm.loading},on:{\"click\":_vm.ContactUs}},[_vm._v(\" \"+_vm._s(_vm.$t('Contactus.submit'))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { PropType } from \"vue\";\nimport * as userService from \"@/service/user/user.service\";\n\nexport default Vue.extend({\n props: {\n source: {\n type: String as PropType<'Contactus' | 'reset'>,\n default: 'ContactUs'\n },\n },\n data() {\n return {\n loading: false,\n error: \"\",\n valid: false,\n subject: \"\",\n body: \"\",\n email: \"\"\n };\n },\n methods: {\n async ContactUs() {\n try {\n this.loading = true;\n this.error = \"\";\n await userService.sendContactUsMail({subject: this.subject,body: this.body,cc: this.email});\n this.$router.replace(\"/\");\n } catch (error) {\n this.error = \"Failed to send email\";\n }\n this.loading = false;\n },\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactUs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactUs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContactUs.vue?vue&type=template&id=0f287f4e&\"\nimport script from \"./ContactUs.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContactUs.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-tabs',[_c('v-tab',[_vm._v(_vm._s(_vm.$t('Glossary ENG')))]),_c('v-tab',[_vm._v(_vm._s(_vm.$t('Glossary GR')))]),_c('v-tab',[_vm._v(_vm._s(_vm.$t('Guided Videos')))]),_c('v-tab-item',[_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Issue new Shares:\")]),_vm._v(\" For each of your shareholders, you need to share new issuances with the number of shares, price of share, grant date etc., the software will update your cap-table automatically. \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Share Option Pool:\")]),_vm._v(\" For each one of your schemes, you can use a Share Option Pool, so it's easy to get the rules right and not repeat yourself during the process. So we create the Share Option Pool for you based on your board minutes authorisation. \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Cliff Date:\")]),_vm._v(\" Firstly, you need to decide if there is a cliff date or if the vesting of the share options will start immediately from the grant date. It's super easy to choose that when you grant the option to one of your employees by stating the \\\"Vesting Start Date\\\". \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Vesting Schedule:\")]),_vm._v(\" You don't have to worry about that when it is a vesting share option scheme and not KPI based. The software calculates automatically and sends reminders to the relevant people. \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Distribution:\")]),_vm._v(\" Everything is done automatically through our platform; once you create an option for the employee and grant it, the contracts are automatically generated and sent to the relevant people for signatures; once accepted, the employees have their agreement and bespoke dashboard access to view their equity growth. \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Exercise of the rights:\")]),_vm._v(\" That can be requested from the option holder, and you will be notified so you can accept the request. Equally, you can also exercise employee rights with administrator access to the platform. \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Share Certificates:\")]),_vm._v(\" Now that the exercise of share options has occurred, you need to issue a share certificate; wrong, we do that for you automatically when the exercise happens within our platform. We send it to the relevant people for signature and then to the shareowners for their records. \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Valuations:\")]),_vm._v(\" To do all the above, you need a valuation; we also managed to automate that process. All you need to do is keep the platform up to date with one Balance Sheet, and then our algorithm takes over and generates the valuations for you. \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Salary Certificates:\")]),_vm._v(\" No worries, we got you covered. In some countries like Greece, you must issue salary certificates for the option shareholders for tax purposes. We generate that automatically through our software and send it via email. But also can be found in the individual's dashboard. \")])])])],1)],1),_c('v-tab-item',[_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Cap-table:\")]),_vm._v(\" Βιβλίο μετόχων ή Βιβλίο πραγματικών δικαιούχων \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Shares:\")]),_vm._v(\" Αριθμός μετοχών (Α.Ε.) ή εταιρικών μεριδίων (Ι.Κ.Ε.) \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Share Class:\")]),_vm._v(\" Είδος μετοχών \")])])])],1),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\" Ordinary:\")]),_vm._v(\" Κοινές \")])])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\" Preferred:\")]),_vm._v(\" Προνομιούχες \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Total Ownership:\")]),_vm._v(\" Ποσοστό ιδιοκτησίας \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Valuation:\")]),_vm._v(\" Αποτίμηση της εταιρείας \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Actual Market Value (AMV):\")]),_vm._v(\" Αποτίμηση της εταιρείας με βάση της οικονομικές καταστάσεις \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Unrestricted Market Value (UMV):\")]),_vm._v(\" Αποτίμηση της εταιρείας χωρίς περιορισμούς \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Director and Shareholders Resolution:\")]),_vm._v(\" Γενική Συνέλευση (Γ.Σ.) \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Grant Date:\")]),_vm._v(\" Ημερομηνία Αγοράς \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Grant Price:\")]),_vm._v(\" Αγοραία αξία \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Share Certificate:\")]),_vm._v(\" Τίτλος κυριότητας μετοχών (Α.Ε.) ή Τίτλος κυριότητας μεριδίων (Ι.Κ.Ε.) \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Share Options Pool:\")]),_vm._v(\" Κοινόχρηστη κανόνες δικαιωμάτων προαίρεσης απόκτησης μετοχών \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Share Options:\")]),_vm._v(\" Δικαίωμα προαιρετικής απόκτησης μετοχών \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Cliff Date (Vesting Start Date): \")]),_vm._v(\" Ημερομηνία που αρχίζει η ωρίμανση του δικαιώματος απόκτησης μετοχών \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Issued Share Options:\")]),_vm._v(\" Διατεθειμένα δικαιώματα προαίρεσης απόκτησης μετοχών \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Draft Share Options:\")]),_vm._v(\" Πρόχειρα δικαιώματα προαίρεσης απόκτησης μετοχών \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Vesting Share Options:\")]),_vm._v(\" Δικαιώματα προαίρεσης απόκτησης μετοχών σε ωρίμανση \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Vested Share Options:\")]),_vm._v(\" Κατοχυρωμένο δικαίωμα προαίρεσης απόκτησης μετοχών \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Vesting period:\")]),_vm._v(\" Περίοδος κατοχύρωσης \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Exercise:\")]),_vm._v(\" Άσκηση δικαιώματος \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Exercice Price:\")]),_vm._v(\" Τιμή άσκησης δικαιώματος (τιμή αγοράς της μετοχής του δικαιώματος) \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Transfer Price:\")]),_vm._v(\" Τιμή μεταβίβασης μετοχής ή εταιρικού μεριδίου \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Share Options Agreement:\")]),_vm._v(\" Ιδιωτικό Συμφωνητικό μεταξύ της εταιρίας και του κατόχου δικαιώματος απόκτησης μετοχών \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Stakeholders:\")]),_vm._v(\" Ενδιαφερόμενα μέρη \")])])])],1),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Directors:\")]),_vm._v(\" Διοικητικά μέλη \")])])])],1),_c('br'),_c('v-row',{staticClass:\"grey lighten-4\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1 text-subtitle-1\"},[_c('b',[_vm._v(\"Shareholders:\")]),_vm._v(\" Μέτοχοι (Α.Ε.) ή Εταίροι (Ι.Κ.Ε.) \")])])])],1)],1),_c('v-tab-item',[_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/b9c35a5b1bce48fd93a0fa0d70ea5f56\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})]),_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/4af2122383a4484494b9746691f92570\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})]),_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/cb49e64233494572bda342777b34d382\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})]),_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/679f81f428f7446c84a98f3de3f93990\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})]),_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/29dd993ad86c454485a74496504d5666\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})]),_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/a2d300096ff842d3be85dd4e5a76f17b\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})]),_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/445da2e8e9a342e595b8e07fdcaafb64\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})]),_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/fbc52843a55e42e386256e591dab48bc\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})]),_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/ff43bfb269ef425a8c51e26cc1e1856e\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})]),_c('br'),_c('div',{staticStyle:{\"position\":\"relative\",\"padding-bottom\":\"59.11330049261084%\",\"height\":\"0\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":\"https://www.loom.com/embed/524ee23d0cdf490a92abc14ee2f31b91\",\"frameborder\":\"0\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}})])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue, { PropType } from \"vue\";\n\nexport default Vue.extend({\n props: {\n source: {\n type: String as PropType<'Glossary' | 'reset'>,\n default: 'Glossary'\n },\n }})\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Glossary.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Glossary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Glossary.vue?vue&type=template&id=05d4f61a&\"\nimport script from \"./Glossary.vue?vue&type=script&lang=ts&\"\nexport * from \"./Glossary.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h1',[_vm._v(\"404 - Page not found\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./PageNotFound.vue?vue&type=template&id=e90a69dc&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('h2',{staticClass:\"mb-5\"},[_vm._v(_vm._s(_vm.$t('requestReset.title')))]),_c('h4',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm.$t('requestReset.prompt')))]),_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"rules\":_vm.usernameRules,\"label\":\"Email\",\"required\":\"\",\"outlined\":\"\",\"placeholder\":\" \",\"auto\":\"\",\"autocomplete\":\"username\"},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[(_vm.error)?_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"mr-4\",attrs:{\"disabled\":!_vm.valid,\"color\":\"primary\",\"depressed\":\"\",\"loading\":_vm.loading},on:{\"click\":_vm.requestReset}},[_vm._v(\" \"+_vm._s(_vm.$t('requestReset.submit'))+\" \")]),_c('v-btn',{staticClass:\"mr-4\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_vm._v(\" \"+_vm._s(_vm.$t('shared.cancel'))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport * as auth from \"@/service/user/user.service\";\nimport { appStore } from \"@/app.store\";\n\nexport default Vue.extend({\n data() {\n return {\n username: '',\n loading: false,\n error: \"\",\n valid: false,\n usernameRules: [\n (v: any) => !!v || \"E-mail is required\",\n (v: any) => /.+@.+\\..+/.test(v) || \"E-mail must be valid\",\n ],\n };\n },\n methods: {\n async requestReset() {\n if (!this.username)\n return;\n\n try {\n this.loading = true;\n await auth.sendResetPasswordNotification({\n username: this.username,\n resetUrl: `${location.origin}/reset-password?token={token}&email={email}`\n });\n\n appStore.snackbar(this.$t(\"shared.successfulExecution\").toString(), \"success\");\n this.$router.replace(\"/login\");\n } catch (error) {\n appStore.snackbar(this.$t(\"shared.genericError\").toString(), \"error\");\n }\n finally {\n this.loading = false;\n }\n }\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestResetPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestResetPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RequestResetPassword.vue?vue&type=template&id=038008fe&\"\nimport script from \"./RequestResetPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./RequestResetPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h1',[_vm._v(\"403 - Forbidden\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Forbidden.vue?vue&type=template&id=843d1102&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport VueRouter, { RouteConfig } from \"vue-router\";\nimport * as auth from \"@/service/user/user.service\";\nimport Login from \"../views/Login.vue\";\nimport SignUp from \"../views/SignUp.vue\";\nimport ContactUs from \"../views/contactus/ContactUs.vue\";\nimport Glossary from \"../views/Glossary/Glossary.vue\";\nimport PageNotFound from \"../views/PageNotFound.vue\";\nimport RequestResetPassword from \"../views/RequestResetPassword.vue\";\nimport Forbidden from \"../views/Forbidden.vue\";\nimport { companiesStore } from \"@/service/companies/companies.store\";\nimport { subject } from \"@casl/ability\";\nimport { ability } from \"@/service/user/ability\";\nimport { appStore } from \"@/app.store\";\n\nVue.use(VueRouter);\n\n\nconst routes: Array = [\n { path: \"/login\", name: \"login\", component: Login, props: true },\n {\n path: \"/sign-up\", name: \"sign-up\", component: SignUp,\n props: route => ({ token: route.query.token, email: route.query.email })\n },\n {\n path: \"/contact\", name: \"contact\", component: ContactUs\n },\n {\n path: \"/glossary\", name: \"glossary\", component: Glossary\n },\n {\n path: \"/reset-password\", name: \"reset-password\", component: SignUp,\n props: route => ({ token: route.query.token, email: route.query.email, source: 'reset' })\n },\n {\n path: \"/request-reset-password\", name: \"request-reset-password\", component: RequestResetPassword\n },\n { path: \"*\", component: PageNotFound },\n { path: \"/forbidden\", name: \"forbidden\", component: Forbidden },\n {\n path: \"/\",\n beforeEnter(to, from, next) {\n if (appStore.state.modules.length > 0)\n next({ name: appStore.state.modules[0] });\n else\n next();\n },\n component: () => import(\"../views/Home.vue\")\n },\n {\n path: \"/options\",\n name: 'options',\n meta: { allow: [{ action: 'read', subject: subject(\"Module\", { type: \"options\" }) }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/ViewOptions.vue\"),\n children: [\n { path: \"\", component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/SubViewOverview.vue\") },\n { path: \"pools\", component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/SubViewPoolsList.vue\") },\n { path: \"drafted\", component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/SubViewOptionsInDraft.vue\") },\n { path: \"pending\", component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/SubViewOptionsPendingAcceptance.vue\") },\n { path: \"vesting\", component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/SubViewOptionsVesting.vue\") },\n { path: \"vested\", component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/SubViewOptionsVested.vue\") },\n { path: \"exercised\", component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/SubViewOptionsExercised.vue\") },\n { path: \"issued\", component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/SubViewOptionsIssued.vue\") }\n ]\n },\n {\n path: \"/options/create\",\n meta: { allow: [{ action: 'create', subject: \"OptionsPool\" }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/ViewCreatePool.vue\"),\n },\n {\n name: \"create-options-issuance\",\n path: \"/options/grant-options\",\n meta: { allow: [{ action: 'create', subject: \"OptionsIssuance\" }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/ViewGrantOptions.vue\"),\n props: route => ({ poolId: route.query.poolId, id: route.query.id })\n },\n {\n path: \"/options/pool\",\n meta: { allow: [{ action: 'read', subject: \"OptionsPool\" }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/ViewPool.vue\"),\n props: route => ({ id: route.query.id })\n },\n {\n name: \"view-options-issuance\",\n path: \"/options/view/:id\",\n meta: { allow: [{ action: 'read', subject: \"OptionsIssuance\" }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/ViewOptionsIssuance.vue\"),\n props: route => ({ id: route.params.id })\n },\n {\n name: \"view-options-issuance-details\",\n path: \"/options/view/:id/details\",\n meta: { allow: [{ action: 'read', subject: \"OptionsIssuance\" }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/ViewOptionsIssuanceDetails.vue\"),\n props: route => ({ id: route.params.id })\n },\n {\n name: \"cancel-options-issuance\",\n path: \"/options/cancel/:id\",\n meta: { allow: [{ action: 'update', subject: \"OptionsIssuance\" }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/CancelOptionsIssuance.vue\"),\n props: route => ({ id: route.params.id })\n }, {\n name: \"vest-options-issuance\",\n path: \"/options/vest/:id\",\n meta: { allow: [{ action: 'update', subject: \"OptionsIssuance\" }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/VestOptionsIssuance.vue\"),\n props: route => ({ id: route.params.id })\n },\n {\n name: \"exercise-options-issuance\",\n path: \"/shares/exercise-options-issuance/:id\",\n meta: { allow: [{ action: 'create', subject: \"OptionsIssuance\" }, { action: 'update', subject: \"OptionsIssuance\" }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/ViewExerciseOptions.vue\"),\n props: route => ({ id: route.params.id })\n },\n {\n name: \"view-options-issuance-list-of-option-holder\",\n path: \"/option-holder/:id/options\",\n meta: { allow: [{ action: 'read', subject: \"OptionsIssuance\" }] },\n component: () => import(/* webpackChunkName: \"options\" */ \"../views/options/ViewOptionsIssuancesListOfOptionHolder.vue\"),\n props: route => ({ optionHolderId: route.params.id })\n },\n {\n path: \"/my-dashboard\",\n name: \"my-dashboard\",\n meta: { allow: [{ action: 'read', subject: subject(\"Module\", { type: \"my-dashboard\" }) }] },\n component: () => import(/* webpackChunkName: \"my-dashboard\" */ \"../views/my-dashboard/MyDashboard.vue\")\n },\n {\n path: \"/cap-table\",\n name: \"cap-table\",\n meta: { allow: [{ action: 'read', subject: subject(\"Module\", { type: \"cap-table\" }) }] },\n component: () => import(/* webpackChunkName: \"cap-table\" */ \"../views/cap-table/CapTable.vue\")\n },\n {\n path: \"/stakeholders\",\n name: \"stakeholders\",\n meta: { allow: [{ action: 'read', subject: subject(\"Module\", { type: \"stakeholders\" }) }] },\n component: () => import(/* webpackChunkName: \"stakeholders\" */ \"../views/stakeholders/ViewStakeholders.vue\"),\n props: route => ({ tab: route.query.tab })\n },\n {\n path: \"/stakeholders/:id\",\n meta: { allow: [{ action: 'read', subject: \"Stakeholder\" }] },\n component: () => import(/* webpackChunkName: \"stakeholders\" */ \"../views/stakeholders/ViewStakeholder.vue\"),\n props: route => ({ id: route.params.id })\n },\n {\n path: \"/create-stakeholder\",\n meta: { allow: [{ action: 'create', subject: \"Stakeholder\" }] },\n component: () => import(/* webpackChunkName: \"stakeholders\" */ \"../views/stakeholders/ViewStakeholder.vue\"),\n props: route => ({ id: 0 })\n },\n {\n path: \"/documents\",\n name: \"documents\",\n meta: { allow: [{ action: 'read', subject: subject(\"Module\", { type: \"documents\" }) }] },\n component: () => import(/* webpackChunkName: \"documents\" */ \"../views/documents/ViewDocuments.vue\"),\n children: [\n { path: \"\", component: () => import(/* webpackChunkName: \"documents\" */ \"../views/documents/DocumentsSubViewOverview.vue\") },\n { path: \"All\", component: () => import(/* webpackChunkName: \"documents\" */ \"../views/documents/SubViewAllDocuments.vue\") },\n { path: \"Pending\", component: () => import(/* webpackChunkName: \"documents\" */ \"../views/documents/SubViewPendingSignDocuments.vue\") },\n { path: \"Signed\", component: () => import(/* webpackChunkName: \"documents\" */ \"../views/documents/SubViewSignedDocuments.vue\") },\n { path: \"Create\", component: () => import(/* webpackChunkName: \"documents\" */ \"../views/documents/ViewUploadDocument.vue\") }\n ],\n props: route => {\n if (typeof route.query.filter == \"string\") {\n const [entity, id] = route.query.filter.split(',');\n return {\n filter: {\n entity,\n id\n }\n }\n }\n }\n },\n {\n name: \"view-document\",\n path: \"/documents/:id\",\n meta: { allow: [{ action: 'read', subject: \"Document\" }] },\n component: () => import(/* webpackChunkName: \"documents\" */ \"../views/documents/ViewDocument.vue\"),\n props: route => ({ id: route.params.id })\n },\n {\n path: \"/company\",\n name: \"company\",\n meta: { allow: [{ action: 'read', subject: subject(\"Module\", { type: \"company\" }) }] },\n component: () => import(/* webpackChunkName: \"company\" */ \"../views/company/ViewCompany.vue\")\n },\n {\n path: \"/company/valuations\",\n meta: { allow: [{ action: 'read', subject: \"Valuation\" }] },\n component: () => import(/* webpackChunkName: \"company\" */ \"../views/company/ViewValuations.vue\")\n },\n {\n path: \"/company/valuations/create\",\n meta: { allow: [{ action: 'create', subject: \"Valuation\" }] },\n component: () => import(/* webpackChunkName: \"company\" */ \"../views/company/ViewCreateValuation.vue\")\n },\n {\n path: \"/shares/shares-issuances\",\n meta: { allow: [{ action: 'read', subject: \"ShareIssuance\" }] },\n component: () => import(/* webpackChunkName: \"shares\" */ \"../views/shares/ViewShareIssuancesList.vue\")\n },\n {\n name: \"create-shares-issuance\",\n path: \"/shares/create-shares-issuance\",\n meta: { allow: [{ action: 'create', subject: \"ShareIssuance\" }, { action: 'update', subject: \"ShareIssuance\" }] },\n component: () => import(/* webpackChunkName: \"shares\" */ \"../views/shares/CreateShareIssuance.vue\"),\n },\n {\n name: \"create-batch-shares-issuance\",\n path: \"/shares/create-batch-shares-issuance\",\n meta: { allow: [{ action: 'create', subject: \"ShareIssuance\" }, { action: 'update', subject: \"ShareIssuance\" }] },\n component: () => import(/* webpackChunkName: \"shares\" */ \"../views/shares/CreateBatchShareIssuances.vue\"),\n },\n {\n name: \"edit-shares-issuance\",\n path: \"/shares/shares-issuance/:id\",\n meta: { allow: [{ action: 'create', subject: \"ShareIssuance\" }, { action: 'update', subject: \"ShareIssuance\" }] },\n component: () => import(/* webpackChunkName: \"shares\" */ \"../views/shares/ViewEditShareIssuance.vue\"),\n props: route => ({ id: route.params.id })\n },\n {\n name: \"view-shares-issuance\",\n path: \"/shares/view/:id\",\n meta: { allow: [{ action: 'read', subject: \"ShareIssuance\" }] },\n component: () => import(/* webpackChunkName: \"shares\" */ \"../views/shares/ViewShareIssuance.vue\"),\n props: route => ({ id: route.params.id })\n },\n {\n path: \"/settings\",\n meta: { allow: [{ action: 'read', subject: \"Company\" }] },\n component: () => import(/* webpackChunkName: \"company\" */ \"../views/company/ViewCompanySettings.vue\")\n },\n {\n path: \"/admin\",\n name: \"admin\",\n meta: { allow: [{ action: 'read', subject: subject(\"Module\", { type: \"admin\" }) }] },\n component: () => import(/* webpackChunkName: \"admin\" */ \"../views/admin/ViewAdmin.vue\")\n },\n];\n\nconst router = new VueRouter({\n mode: \"history\",\n base: process.env.BASE_URL,\n routes,\n});\n\nrouter.beforeEach((to, from, next) => {\n if (auth.state.user.role != \"anonymous\" && !companiesStore.state.currentId) {\n\n const unwatch = companiesStore.$watch(() => companiesStore.state.currentId, () => {\n unwatch();\n next();\n });\n }\n else {\n next();\n }\n})\n\n// Check User's abitiliies\nrouter.beforeEach((to, from, next) => {\n let allowNavigation = true;\n\n if (to.matched[0].meta.allow) {\n const allowRules: Array = to.matched[0].meta.allow;\n allowNavigation = allowRules.every(rule => {\n return ability.can(rule.action, rule.subject, rule.fields)\n });\n }\n\n next(allowNavigation ? undefined : { name: 'forbidden' })\n});\n\nexport default router;\n\n","export * from \"./shares-issuances.service.dto\";\nimport { api, convertTObjecToFormData } from \"@/service\";\nimport { NewSharesIssuanceDto, SharesIssuanceAnalysisDto, SharesIssuanceDraftDto, SharesIssuanceDto, UpdateSharesIssuanceDto } from \"./shares-issuances.service.dto\";\n\n/* ================================================================================= */\n/* GET ============================================================================= */\n/* ================================================================================= */\n\nexport async function getSharesIssuancesAnalysisOfCompany(companyId: string): Promise> {\n const result = await api.get>(`/api/shares-issuances/analysis`, { companyId });\n return result.map(x => {\n x.issueDate = new Date(x.issueDate);\n return x;\n });\n}\n\nexport async function getSharesIssuancesAnalysis(id: string): Promise {\n const result = await api.get(`/api/shares-issuances/analysis/${id}`);\n result.issueDate = new Date(result.issueDate);\n return result;\n}\n\nexport async function getSharesIssuanceDraft(id: string): Promise {\n const result = await api.get(`/api/shares-issuances/${id}`);\n result.issueDate = new Date(result.issueDate);\n return result;\n}\n\nexport async function getSharesIssuancesAnalysisOfStakeholder(stakeholderId?: string): Promise> {\n const result = await api.get>(`/api/shares-issuances/analysis`, { stakeholderId });\n return result.map(x => {\n x.issueDate = new Date(x.issueDate);\n return x;\n });\n}\n\n/* ================================================================================= */\n/* POST ============================================================================= */\n/* ================================================================================= */\n\nexport function createSharesIssuance(issuance: NewSharesIssuanceDto): Promise {\n return api.postForm(`/api/shares-issuances`, convertTObjecToFormData(issuance));\n}\n\nfunction startBatchSharesIssuanceTransaction(count: number): Promise {\n return api.post(`/api/shares-issuances/batch-transaction`, { count });\n}\n\nexport async function createBatchSharesIssuance(issuances: Array, onProgress?: (uploaded: number, total: number) => void): Promise {\n const transactionId = await startBatchSharesIssuanceTransaction(issuances.length);\n\n for (let index = 0; index < issuances.length; index++) {\n issuances[index].transactionId = transactionId;\n await createSharesIssuance(issuances[index]);\n onProgress?.(index + 1, issuances.length);\n }\n}\n\n/* ================================================================================= */\n/* PATCH ============================================================================= */\n/* ================================================================================= */\n\nexport function updateSharesIssuance(issuance: UpdateSharesIssuanceDto): Promise {\n return api.patchForm(`/api/shares-issuances`, convertTObjecToFormData(issuance));\n}\n\n/* ================================================================================= */\n/* DELETE ============================================================================= */\n/* ================================================================================= */\n\nexport function deleteSharesIssuance(id: string): Promise {\n return api.delete(`/api/shares-issuances/${id}`);\n}","import _Vue from \"vue\";\nimport { extend, ValidationProvider, ValidationObserver } from 'vee-validate';\nimport { required, min, min_value, numeric, max_value, email, double } from 'vee-validate/dist/rules'\nimport { localize, configure } from 'vee-validate';\nimport { i18n } from \"./i18n\";\nimport el from \"../lang/el\";\nimport en from \"../lang/en\";\n\n\nlocalize('el', el.$validator);\nlocalize('en', en.$validator);\n\nconfigure({\n\n defaultMessage: (field, values) => {\n values._field_ = i18n.t(`fields.${field}`);\n return i18n.t(`$validator.messages.${values._rule_}`, values).toString();\n }\n});\n\nexport function plugin(Vue: typeof _Vue): void {\n\n Vue.component('ValidationProvider', ValidationProvider);\n Vue.component('ValidationObserver', ValidationObserver);\n\n extend('required', required);\n extend('min', min);\n extend('min_value', min_value);\n extend('numeric', numeric);\n extend('max_value', max_value);\n extend('decimal', {\n validate: (value: any): boolean => {\n return /^\\d*\\.?\\d+$/.test(value);\n }\n }\n );\n extend('vestingPercent', {\n validate: (value: any): boolean => {\n const num = parseFloat(value);\n return typeof num == \"number\" && !isNaN(num) && num != Infinity && num >= 1 && num <= 100\n }\n });\n\n extend('decimal_greater_than_zero', {\n validate: (value: any): boolean => {\n const num = parseFloat(value);\n return typeof num == \"number\" && !isNaN(num) && num != Infinity && num > 0\n }\n });\n}\n","import { CompanyAnalysisDto, CompanyDto } from \"./companies.service.dto\";\nimport { api } from \"@/service\";\n\n/* ================================================================================= */\n/* GET ============================================================================= */\n/* ================================================================================= */\n\nexport async function getAllCompanies(): Promise> {\n const result = await api.get>(\"/api/companies\");\n return result.map( x=> { \n x.valuation.expDate = new Date(x.valuation.expDate.toString()+\"Z\"); \n x.incorporationDate = new Date(x.incorporationDate.toString()+\"Z\");\n x.accountingStartDate = new Date(x.accountingStartDate.toString()+\"Z\");\n x.accountingEndDate = new Date(x.accountingEndDate.toString()+\"Z\"); \n return x \n } );\n}\n\nexport async function getCompany(companyId: string): Promise {\n const result = await api.get(`/api/companies/${companyId}`);\n result.valuation.expDate = new Date(result.valuation.expDate.toString()+\"Z\");\n result.incorporationDate = new Date(result.incorporationDate.toString()+\"Z\");\n result.accountingStartDate = new Date(result.accountingStartDate.toString()+\"Z\");\n result.accountingEndDate = new Date(result.accountingEndDate.toString()+\"Z\");\n return result;\n}\n\nexport async function getCompanyAnalysis(companyId: string): Promise {\n const result = await api.get(`/api/companies/${companyId}/analysis`);\n result.valuation.expDate = new Date(result.valuation.expDate.toString()+\"Z\");\n result.incorporationDate = new Date(result.incorporationDate.toString()+\"Z\");\n result.accountingStartDate = new Date(result.accountingStartDate.toString()+\"Z\");\n result.accountingEndDate = new Date(result.accountingEndDate.toString()+\"Z\");\n return result;\n}\n\n/* ================================================================================== */\n/* POST ============================================================================= */\n/* ================================================================================== */\n\n\nexport async function createCompany(companyId: string, resource: CompanyDto): Promise {\n return api.post(`/api/companies/${companyId}`, resource);\n}\n\n/* ================================================================================= */\n/* PUT ============================================================================= */\n/* ================================================================================= */\n\nexport async function update(companyId: string, resource: CompanyDto): Promise {\n return api.put(`/api/companies/${companyId}`, resource);\n}\n\n/* ==================================================================================== */\n/* DELETE ============================================================================= */\n/* ==================================================================================== */\n\nexport async function remove(companyId: string): Promise {\n return api.delete(`/api/companies/${companyId}`);\n}\n\n\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport { anonymous, setup as initAuth, state as userState } from \"@/service/user/user.service\";\nimport { plugin as ValidationPlugin } from \"./plugins/validation\"\nimport vuetify from \"./plugins/vuetify\";\nimport { i18n } from \"./plugins/i18n\"\nimport \"roboto-fontface/css/roboto/roboto-fontface.css\";\nimport \"@mdi/font/css/materialdesignicons.css\";\nimport { init as initApi } from \"@/service\";\nimport { abilitiesPlugin } from '@casl/vue';\nimport { ability } from \"@/service/user/ability\"\n\nimport dayjs from \"dayjs\";\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone' // dependent on utc plugin\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\nasync function run() {\n\n const useMockAPI = false;\n\n if (process?.env?.NODE_ENV == \"development\") {\n await initApi(\"https://localhost:5001\", useMockAPI)\n }\n else {\n await initApi(\"\", false)\n }\n\n await initAuth(router);\n\n Vue.config.productionTip = false;\n\n Vue.use(ValidationPlugin);\n Vue.use(abilitiesPlugin, ability)\n\n new Vue({\n router,\n vuetify,\n i18n,\n render: (h) => h(App),\n }).$mount(\"#app\");\n}\n\nrun();\n","import vuetify from 'vuetify/src/locale/el'\nexport default {\n $vuetify: vuetify,\n app:{\n logout: \"Αποσύνδεση\",\n \n },\n $validator:{\n messages: {\n required: 'Το πεδίο είναι υποχρεωτικό',\n min: 'Το πεδίο θέλει το ελάχιστο {length} χαρακτήρες',\n max: 'Το πεδίο θέλει το μέγιστο {length} χαρακτήρες'\n }\n },\n shared: {\n new: \"Νέο\",\n save: \"Αποθήκευση\",\n add: \"Προσθήκη\",\n edit: \"Επεξεργασία\",\n delete: \"Διαγραφή\",\n ok: \"Εντάξει\",\n cancel: 'Άκυρο',\n genericError: \"Κάτι δεν πήγε κάλα. Ξαναδοκιμάστε.\",\n successfulExecution: \"Επιτυχής εκτέλεση\"\n },\n stocks: {\n navHeader: \"ΜΕΤΟΧΕΣ\",\n pagePrompt: \"Δημιουργήστε και διαχειριστείτε μετοχές\",\n addValuation: \"Add Valuation\",\n createAnOptionPool:\"Create an Option Pool\",\n widgets: {\n amv: \"AMV\",\n umv: \"UMV\",\n expDate: \"Exp. Date\",\n optionsInPool: \"Options in Pools\",\n optionsInDraft: \"Options in Draft\",\n pendingAcceptance: \"Pending Acceptance\",\n readyToExercise: \"Ready to Exercise\",\n vesting: \"Vesting\",\n }\n },\n greekCompanyTypes :{\n ae : \"Α.Ε.\",\n ike: \"Ι.Κ.Ε.\"\n },\n myDashboard: {\n navHeader: \"DASHBOARD\",\n },\n company: {\n navHeader: \"COMPANY\",\n },\n capTable: {\n navHeader: \"CAP TABLE\",\n },\n documents: {\n navHeader: \"DOCUMENTS\",\n }\n}","import Vue from \"vue\";\nimport VueI18n from 'vue-i18n'\nimport el from \"../lang/el\";\nimport en from \"../lang/en\";\n\nVue.use(VueI18n);\n\nconst messages = {\n el: el,\n en: en\n};\n\nconst numberFormats = {\n 'en-US': {\n currency: {\n style: 'currency',\n currency: 'EUR' // Workaround to allow English with EUR\n }\n },\n 'el-GR': {\n currency: {\n style: 'currency',\n currency: 'EUR'\n }\n }\n}\n\nconst dateTimeFormats: VueI18n.DateTimeFormats = {\n 'en-GB': {\n short: {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n }\n },\n 'el-GR': {\n short: {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric'\n },\n long: {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n }\n }\n}\n\nexport const i18n = new VueI18n({\n messages,\n numberFormats,\n dateTimeFormats\n})\n\ni18n.locale = 'en-GB'\n"],"sourceRoot":""}