{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/_helpers/RestrictHelper.js","webpack:///./src/_helpers/DateHelper.js","webpack:///./src/api/repositories/settingRepository.js","webpack:///./src/_helpers/CsharpEnum.js","webpack:///./src/languages/locales/en.js","webpack:///./src/languages/locales/sv.js","webpack:///./src/languages/locales/da.js","webpack:///./src/languages/index.js","webpack:///./src/api/repositories/featureAccessRepository.js","webpack:///./src/components/company/CompanySwitcher.vue?5d5d","webpack:///./src/_helpers/apiHelper.js","webpack:///./src/api/repositories/tagRepository.js","webpack:///./src/plugins/vuetify.js","webpack:///./src/router.js","webpack:///./src/api/repositories/opcRepository.js","webpack:///./src/api/repositories/mqttRepository.js","webpack:///./src/App.vue?b219","webpack:///./src/components/common/Notification.vue?e0be","webpack:///./src/_helpers/companySettings.js","webpack:///./src/api/repositories/companyRepository.js","webpack:///./src/App.vue","webpack:///./src/components/NavBar.vue","webpack:///./src/components/common/Notification.vue","webpack:///src/components/common/Notification.vue","webpack:///./src/components/common/Notification.vue?073e","webpack:///./src/components/common/Notification.vue?e1f0","webpack:///./src/components/dashboard/DashboardTreeSelect.vue","webpack:///src/components/dashboard/DashboardTreeSelect.vue","webpack:///./src/components/dashboard/DashboardTreeSelect.vue?9cee","webpack:///./src/components/dashboard/DashboardTreeSelect.vue?0793","webpack:///./src/components/common/Search.vue","webpack:///src/components/common/Search.vue","webpack:///./src/components/common/Search.vue?8663","webpack:///./src/components/common/Search.vue?5233","webpack:///./src/components/company/CompanySwitcher.vue","webpack:///src/components/company/CompanySwitcher.vue","webpack:///./src/components/company/CompanySwitcher.vue?eb82","webpack:///./src/components/company/CompanySwitcher.vue?9ffb","webpack:///src/components/NavBar.vue","webpack:///./src/components/NavBar.vue?d62f","webpack:///./src/components/NavBar.vue?bca4","webpack:///./src/components/events/DataHub.vue","webpack:///src/components/events/DataHub.vue","webpack:///./src/components/events/DataHub.vue?8368","webpack:///./src/components/events/DataHub.vue?e11e","webpack:///./src/components/license/LicenseNotification.vue","webpack:///src/components/license/LicenseNotification.vue","webpack:///./src/components/license/LicenseNotification.vue?9df7","webpack:///./src/components/license/LicenseNotification.vue?00a4","webpack:///src/App.vue","webpack:///./src/App.vue?0daa","webpack:///./src/App.vue?315a","webpack:///./src/components/common/DatePicker.vue","webpack:///src/components/common/DatePicker.vue","webpack:///./src/components/common/DatePicker.vue?9ff7","webpack:///./src/components/common/DatePicker.vue?89a0","webpack:///./src/_helpers/moduleSettingsHelper.js","webpack:///./src/_helpers/commonHelper.js","webpack:///./src/components/common/PhonenumberInput.vue","webpack:///src/components/common/PhonenumberInput.vue","webpack:///./src/components/common/PhonenumberInput.vue?0baf","webpack:///./src/components/common/PhonenumberInput.vue?a203","webpack:///./src/_helpers/mapsHelper.js","webpack:///./src/_helpers/themeMixin.js","webpack:///./src/main.js","webpack:///./src/api/repositories/dashboardRepository.js","webpack:///./src/components/events/DataHub.vue?dff3","webpack:///./src/_helpers/DecoderHelper.js","webpack:///./src/_helpers/tagHelper.js","webpack:///./src/components/NavBar.vue?2847","webpack:///./src/api/repositories/actionRepository.js","webpack:///./src/components/NavBar.vue?7f5c","webpack:///./src/api/repositories/usersRepository.js","webpack:///./src/api/repositories/applicationRepository.js","webpack:///./src/api/repositories/alarmRepository.js","webpack:///./src/api/repositories/scriptRepository.js","webpack:///./src/api/repositories/reportRepository.js","webpack:///./src/api/repositories/moduleRepository.js","webpack:///./src/api/repositories/logRepository.js","webpack:///./src/api/repositories/notificationRepository.js","webpack:///./src/api/repositories/signalTestRepository.js","webpack:///./src/api/repositories/gatewayRepository.js","webpack:///./src/api/repositories/downlinkRepository.js","webpack:///./src/api/repositories/roleRepository.js","webpack:///./src/api/repositories/tagJournalFileRepository.js","webpack:///./src/api/RepositoryFactory.js","webpack:///./src/stores/modules/accessToken.js","webpack:///./src/stores/modules/action.js","webpack:///./src/stores/modules/alarm.js","webpack:///./src/stores/modules/alert.js","webpack:///./src/stores/modules/application.js","webpack:///./src/api/repositories/contactRepository.js","webpack:///./src/stores/modules/contact.js","webpack:///./src/api/repositories/camOnlineRepository.js","webpack:///./src/stores/modules/camOnline.js","webpack:///./src/stores/modules/company.js","webpack:///./src/stores/modules/configuration.js","webpack:///./src/stores/modules/dashboard.js","webpack:///./src/stores/modules/downlinks.js","webpack:///./src/stores/modules/event.js","webpack:///./src/stores/modules/featureAccess.js","webpack:///./src/stores/modules/gateway.js","webpack:///./src/stores/modules/language.js","webpack:///./src/stores/modules/log.js","webpack:///./src/stores/modules/modbus.js","webpack:///./src/stores/modules/modules.js","webpack:///./src/stores/modules/mqtt.js","webpack:///./src/stores/modules/notification.js","webpack:///./src/stores/modules/opc.js","webpack:///./src/stores/modules/report.js","webpack:///./src/stores/modules/roles.js","webpack:///./src/stores/modules/scripts.js","webpack:///./src/stores/modules/settings.js","webpack:///./src/stores/modules/signalTest.js","webpack:///./src/stores/modules/slots.js","webpack:///./src/stores/modules/tag.js","webpack:///./src/stores/modules/tagdata.js","webpack:///./src/api/repositories/templateDashboard.js","webpack:///./src/stores/modules/templateDashboard.js","webpack:///./src/stores/modules/user.js","webpack:///./src/stores/modules/tagJournal.js","webpack:///./src/stores/modules/tagJournalFile.js","webpack:///./src/stores/store.js","webpack:///./src/api/repositories/licenseRepository.js","webpack:///./src/api/repositories/tagDataRepository.js","webpack:///./src/api/repositories/tagJournalRepository.js","webpack:///./src/_helpers/metricHelper.js","webpack:///./src/api/repositories/integrationsRepository.js","webpack:///./src/components/dashboard/DashboardCategoryViewer.vue","webpack:///./src/components/common/IconSelector.vue","webpack:///src/components/common/IconSelector.vue","webpack:///./src/components/common/IconSelector.vue?669a","webpack:///./src/components/common/IconSelector.vue?b02f","webpack:///src/components/dashboard/DashboardCategoryViewer.vue","webpack:///./src/components/dashboard/DashboardCategoryViewer.vue?0cf1","webpack:///./src/components/dashboard/DashboardCategoryViewer.vue?0cdc","webpack:///./src/_helpers/Role.js","webpack:///./src/plugins/i18n.js","webpack:///./src/api/Repository.js","webpack:///./src/components/dashboard/DashboardCategoryViewer.vue?59d5","webpack:///./src/api/repositories/modbusRepository.js","webpack:///./src/components/common/Search.vue?5bba","webpack:///./src/components/common/IconSelector.vue?9ee0"],"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","FEATURES","MAP_DASHBOARD","CAM_ONLINE","MULTI_COMPANY","PER_COMPANY_BRANDING","OPC","LICENSE_FEATURES","whiteLabelSettings","methods","_objectSpread","mapActions","isSuperAdmin","this","permitted","canMask","allowed","route","roles","arguments","role","store","state","users","currentUser","charAt","substring","routeArr","split","router","options","routes","forEach","path","children","meta","authorize","includes","owns","oid","cmpId","getters","permission","prefix","fullPermission","filter","resourceIdentifier","canAccessFeature","feature","find","license","toLowerCase","allowedToEdit","targetRole","Roles","Admin","SuperAdmin","CompanyAdmin","limitedToWhiteLabel","WHITE_LABEL","whiteLabelActive","computed","mapState","whiteLabel","humanDate","date","formatString","format","Date","timeFromDays","days","timeFromHours","hours","timeFromMinutes","minutes","timeWithinMinutes","date1","date2","timeWithinHours","timeWithinDays","distanceAgo","i18n","locale","sv","formatDistance","toApiDate","encode","dt","encodeURIComponent","resource","Repository","concat","apiConfig","set","payload","post","getGlobal","setGlobal","getCompanyFields","getCompany","company","setCompany","put","getVersions","getIntegrationSettings","createIntegrationSetting","removeIntegrationSetting","id","delete","DaysOfWeek","sunday","monday","tuesday","wednesday","thursday","friday","saturday","AlertType","A","B","C","D","NodeTypes","LORAWAN","API","MQTT","NODERED","SPARKPLUG","SPOTIO","MODBUS","Priority","LimitType","LOW","HIGH","ContactType","SMS","EMAIL","BOTH","ModuleType","CHART","GAUGE","TEXT","IMAGE","MAP","COMPANYINFO","IFRAME","WEATHER","SINGLE","RAWTABLE","MULTICHART","IMAGEMAP","FUNCTIONBUTTON","INFOCARD","TRENDCHART","SENSOROVERVIEW","TILTCHART","FILLINDICATOR","CONTROLSLIDERS","CAMONLINE","LogType","label","color","colors","blue","accent1","green","accent3","yellow","red","CompanySettingFieldType","STRING","NUMBER","DATE","SELECT","CHECKBOX","PASSWORD","NONE","NODE_TABLE_COLUMNS","COORDINATE","FunctionTypes","SCRIPT","VALUEINPUT","DASHBOARD","DOWNLINK","ONOFFSWITCH","ConditionTypes","SENSORVALUE","text","icon","EMPTY","DashboardTypes","DEFAULT","IntegrationTypes","CHARGE_AMPS","IntegrationValueTypes","JSON","home","login","register","registerCompany","logout","dashboard","application","alarm","user","tagdata","report","contact","apiRef","shop","manual","userEdit","settings","signalTest","gateway","news","superadmin","integrations","title","chargeAmps","fields","apiKey","organizationId","useRfid","organizationIdDescription","useRfidDescription","apiKeyDescription","actions","toolbar","edit","deleteError","deleteSuccess","notify","noCooldownActive","onCooldown","noCooldownDescription","resetCooldownActionDescription","resetCooldown","resetAllCooldown","config","emailTitleConfigDescription","availableTitleVariables","variables","description","eventType","actionTypesString","sms","email","cooldownOnAction","cooldownMinutes","cooldownUntil","manualCooldown","duration","emailTitleTemplate","isOnCooldown","identifier","hints","details","cooldowns","history","resources","selectResource","selectAll","addToAction","errors","noActionIdFound","eventTypes","0","1","2","widget","weather","pickTitle","form","step1","step2","step3","opc","server","autocomplete","opcServerId","serverUrl","useUsernameAndPassword","updatedAt","createdAt","node","serverId","nodeId","modbus","master","tryReconnect","modbusMasterId","host","port","status","poll","polledValue","modbusRegisterId","slave","pollInterval","registerType","valueType","action","byteOrder","valueTypes","3","4","5","6","types","byteOrders","validation","required","slaveMinVal","slaveMaxVal","registerMaxVal","registerMinVal","pollIntervalMin","registerAllreadyReadFrom","spotIo","spotIoKeyRequired","spotIoKeyUnique","templateDashboard","saveDashboard","defaults","dashboardType","addSlot","numberOfAvailableSlots","dashboardTypeTitle","slots","slot","addHint","resetSlots","slotIndex","priorityTitle","priorityDescription","colorPicker","colorForExpressionLabel","so_style_meta_title_text","so_style_meta_title_background","so_style_meta_content_title","so_style_meta_content_background","so_style_meta_fill_level_color","so_style_meta_color_for_expression","so_style_meta_action_for_content","iconColor","backgroundColor","camOnline","servers","couldNotFetchServers","couldNotCreateServer","couldNotDeleteServer","serverSelect","streamSelect","createDialogTitle","tabTitle","url","accessToken","isGlobal","toolbarTitle","permissionCounts","missingRecommendedTitle","missingRecommendedButton","pickPermissionsTitle","pickPermissionsDesc","layerTypes","permissionCount","isDefault","isSuper","eventhub","waiting","copySuccess","copyError","events","endpoint","downlinks","editorTitle","conditionTree","selectValueTypeTitle","selectType","selectValue","chooseSensor","textInputPlaceholder","numberInputPlaceholder","ops","greater","less","equal","greaterOrEqual","lessOrEqual","notEqual","newToken","cardNewTitle","cardTitle","token","isCompany","cannotGetNews","bestGw","pickLocationButton","macAddress","latitude","longitude","lastSeen","startTest","endTest","peekTest","createToolbar","rawData","updateTimer","testId","active","avgSnr","avgRssi","rssi","snr","lat","lng","lastGateway","tab","map","trend","res","week","day","hour","five","notifications","clearNotifications","noNotifications","landing","slogan","or","usecases","12","help","sensors","api","siencepark","address","postal","country","phoneTitle","phonenumber","phonenumber2","emailTitle","imageMap","chooseTag","log","app","warning","userevent","logTable","activeAlarms","activeUsersTable","lastAction","messageSent","common","yes","no","on","off","timestamp","lang","reset","purge","submit","update","updateAll","run","link","height","width","new","newValue","nothingToSee","next","editLabel","explanation","clear","never","upload","click","various","system","download","default","previousStep","mintues","search","close","cancel","success","password","confirmPassword","newPassword","forgotPassword","save","show","updated","created","deleted","back","send","refresh","preview","previewSpacing","saveColor","alarmColorPrecedence","add","noTagOrAppChoosen","noDataFound","darkTheme","notActive","sent","notSent","loginOrRegister","copy","verify","verifyDelete","disagree","accept","switchCompany","inactiveSensors","activeSensors","sensorStatus","sensorName","updatesPending","pickLocationConfirm","toFewBytes","byteInputRequired","getMorePages","size","test","select","selected","searchType","TAG","ALARM","APPLICATION","GATEWAY","ATTRIBUTE","dateLabel","timeLabel","time","quarterHour","minute","dateRange","dateRangeShort","staticinformation","datapoints","datapointsLastWeek","weekday","getDecoders","backendConnection","createCategory","editCategory","remove","createDashboard","copyDashboard","iconSelector","selectIcon","searchPlaceholder","userSettings","themes","general","branding","brandingTitle","toolbarTransparancy","stickySideMenu","global","powered_by","SMS_PROVIDER","SMS_IP1_FROM","SMS_IP1_USERNAME","SMS_IP1_PASSWORD","SMS_TWILIO_ACCOUNTSID","SMS_TWILIO_ACCESSTOKEN","SMS_TWILIO_NUMBER","companysetting","field","smsprovider","alarmTitle","inactivityAlarmContact","nodeTitle","nodeAlias","mapTitle","coordinates","companyLocation","hint","ip1","username","from","table","subtitle","displayed","columntitle","placeholder","twilio","number","accountSid","setPosFormTitle","currentPosition","displayHistory","useNodePosition","dateTimeSpanSelection","dateFrom","dateTo","clearPositions","stepPositions","iconStyling","livemap","legend","picklocation","alltags","selectDashboard","createTitleClean","copyDeleteTitle","createTitle","chooseTitle","changeTitle","navigationTitle","nameReq","categories","tooltip","public","createNew","copiedSuccessful","copiedUnsuccessful","URL","expiresAt","expired","copyAction","dashboardName","noData","metas","colorFormTitle","chart","line","area","bar","scatter","vertical","mapMarkers","sensor","opacity","paletteToModuleMode","paletteToCardMode","valueMatch","styles","textcolor","background","titleBackground","single","sparkline","sparklineLabel","cardBackground","titleText","valueBackground","valueText","fontStyleTypes","content","keys","so_own_axis","value_match","sufix","deveui","maxheight","scriptid","tagkey","tagkey_x","tagkey_y","tagkey_x_max","tagkey_y_max","forceColors","decimal_rounding","dashboard_id","sync_y","zoom_slider","digital","alarm_id","so_chart_type","so_ignore_body","min_value","max_value","axis_label","default_timespan","font_size","hide_trend_icon","horizontel_single_title","so_hide_node_info","font_style_large","so_single_sparkline","gauge_180","button_label","button_label_on","button_label_off","hide_title","so_slots_count","font_style_title","font_style_content","chart_type","ignoreBody","so_font_style_title","so_font_style_content","weight","desc","sm","md","min","max","image","sync_chart","enum","xs","lg","7","8","9","10","11","13","14","15","16","17","18","19","functionButtonTypes","input","navigation","downlink","onoffSwitch","temp","windDir","windSpeed","humidity","thunder","precipitation","descriptionTitle","phoneOne","phoneTwo","locationSiencepark","locationStreet","locationPostalcode","locationCountry","contacts","selectContact","selectContacts","emailFormatError","orgNumber","associatedCompanies","externalUsers","companyInfo","addUser","invite","inviteSent","inviteFailed","shareApp","whiteLabelLogo","postalAdress","deliveryAdress","contactPhonenumber","invoiceAdress","refrenceNmuber","nameRequired","nameMax","orgNumberRequired","orgNumberFormatError","emailRequired","passwordMissmatch","refrenceDateDesc","exportDownload","export","downloadFailed","tempo","refrenceDate","reportContacts","lastSent","regular","tagsTitle","placeHolderContent","examples","helpTitle","interval","lastRun","enabled","boundTag","intervalRequired","intervalMinValue","userInfo","loginFailed","signInFailed","signInError","loginSuccessful","updateFailed","firstName","lastName","phoneNumber","passwordConfirm","phoneNumerHint","noCompanyError","applicationCreated","choose","owner","affirmation","acknowledgeButton","activeAlarm","priority","a","b","alertType","alarmDelay","autoAcknowledge","tagDataKey","lH","lL","limitHigh","limitLow","contactType","alarmContacts","activeDays","limit","triggered","signalType","digitalTrigger","triggerHigh","triggerLow","advanced","alarmComment","logicalOperator","noEmptySpaces","noWhitespaceOnly","noExcessiveRepetition","containsLetter","notOnlySymbols","tabs","allAlarms","batteryStatus","levels","amount","notation","latestactivity","latestvalue","defaultKey","publishKey","searchDecoder","searchApp","chooseDecoder","decoder","removeImage","chooseKey","saveKeyAsDefault","newKey","generateId","uploadExplanation","uploadExplanationHint","exampleLink","errorTogglePublishKey","publishing","mqtt","sparkplug","picker","journal","entryTitle","commentPlaceholder","chooseFile","journalEntry","journalEntries","comment","file","files","alert","updateEntry","uploadFileFailed","addJournalFailed","noChanges","deleteJournalFail","journalAdded","journalUpdated","journalDeleted","createSteps","step4","step5","step6","finish","spotIo4","modbus4","tagPool","hide","hiddenTags","take","appKey","appEui","applicationId","profile","long","latAndLng","battery","activeData","latestValue","location","dataPoints","nodeType","attributes","nodeTypes","titleSingular","usedGateways","usedNodes","editMaxTitle","companySettings","licenseManagement","publicKey","uploadHint","licensee","coveredFeatures","maxCompanies","maxGateways","maxNodes","decoderIncluded","licenseId","expires","limitations","companyId","companyName","currentNodes","currentGateways","expiresIn","couldNotSetLimits","tos","checkbox","requiredSingle","toLong","contryCodeError","deveuiConflict","passwordLength","passwordUpperAndLower","settingsTabTitle","brokerListTitle","updateTitle","selectBroker","testBroker","topicCreateTitle","topicDescription","topicAdd","topicAlreadyExists","createTopicTitle","use","edgeId","groupId","useNameForPublish","topic","publishTopic","publishTopicHint","parsingTopic","payloadTest","testTopic","sslmodes","versions","notfound","hostname","version","sslmode","CACertificate","ClientCertificate","ClientKey","KeyPassPhrase","useAuth","metrics","messages","total","publish","valueForm","actionType","actionTypes","colorBackground","colorBorder","colorText","op","eq","notEq","greaterOrEq","lessOrEq","iconFormTitle","anchorx","anchory","fontSelectorTitle","nodeSelection","valueFormPanel","border","nextStep","welcome","addSlider","tagDeveui","titile","titel","en","da","debug","getAllFeatures","featureAccessId","companies","toggleFeature","getCompanyFeatures","getAuthHeader","Authorization","headers","HttpStatus","ok","accepted","no_content","bad_request","unauthorized","forbidden","not_found","conflict","checkForConflict","response","Deveui","decoderResource","tagId","getById","getByCompanyId","getTagAttributesByCompanyId","getByCurrentCompany","getKeys","getAllKeys","getTagWithMetaAndKeys","deveuiAndKeys","uploadImage","deleteImage","setDefaultKey","getTagPool","updateTagPoolStatus","addTagKey","updateTagKey","deleteTagKey","getKeyLabel","setData","getDetails","getTagWithInformation","updateSparkplugMeta","getPositions","to","DateHelper","removePublishing","publishingType","togglePublishKey","Vue","Vuetify","opts","iconfont","theme","dark","light","primary","accent","info","grey","lighten5","altBg","lighten3","darken3","secondary","darken1","lightBlue","accent4","Home","CommonParent","CleanDashboard","AdminDashboard","Company","CompanyUsers","CompanyEdit","CompanyCreate","CreateUser","CompanyApps","UserCompanyRegister","EditUser","ForgotPassword","ForgotPasswordComponent","NewPassword","Application","ApplicationCreate","ApplicationEdit","Tag","TagList","TagCreate","TagPool","TagMap","TagDetail","Alarm","AlarmCreate","AlarmEdit","AlarmList","ActiveAlarms","Login","Register","Logout","ScriptView","ScriptList","ScriptCreate","ScriptEdit","Report","ReportList","ReportCreate","ReportEdit","DashboardModule","DashboardPublic","Contact","News","SettingView","Settings","SingalTest","PeekSignalTest","GatewayView","GatewayList","GatewayCreate","RoleContainer","RoleList","RoleCreate","RoleEdit","BaseView","TemplateDashboard","TemplateDashboardForm","DbMapCreateDashboard","ActionView","ActionList","ActionCreate","ActionDetail","Router","component","permit","CompanyOrUser","duplicateNavigationPolicy","beforeEach","languages","language","dispatch","navigator","root","restrictHelper","getServers","createServer","serverDto","getServersById","updateServer","deleteServer","getNodesByServerId","getNodesByDeveui","createNode","nodeDto","updateNode","deleteNode","addNodeMonitoring","getBrokers","getBrokersWithMetrics","getBroker","brokerId","createBroker","updateBroker","deleteBroker","getMqttMeta","mqttMetaId","createMqttMeta","updateMqttMeta","deleteTopic","topicId","testDecode","_store$state","catch","_d$response$data","_d$response","companySettingKeys","nodeTableColumns","getAll","getAllUserCompanies","userId","toggleUserCompany","getAllExternalUsers","getCompanyById","getCompanyUsers","getCompanyApplications","getCompanyTagData","header","getTagDataWithMetrics","getTagDataDefaults","getTagDataPoints","createUser","userPayload","postWhiteLabelImage","postImage","latestActivity","getBatteryStatuses","getLatestTagData","getDatapointsLastWeek","getDatapointsLastDay","getSensorDatapointsLastDay","getTagsWithInformation","getShared","staticClass","staticStyle","class","sientificLight","sientificDark","backgdark","darkmode","_c","model","_vm","callback","expression","attrs","staticRenderFns","render","darkSientific","lightSientific","lightDrawer","drawer","$$v","sensorShopLink","externalRoute","$t","notificationTray","_v","_s","_arguments","_this","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","deactivateAllNotifications","abrupt","deactivateNotification","$router","stop","_this2","_callee2","_context2","getNotifications","setInterval","beforeDestroy","clearInterval","watch","val","fn","_ref","dialog","components","DashboardCategoryViewer","showResults","items","style","typeColor","getRoute","_e","hub","searchTerm","debounceTimer","loading","newResult","values","connectionState","HubConnectionState","Connected","invoke","blur","item","navigate","duplicateNav","preventDefault","userCompany","setUserCompany","checkDuplicateNavigation","go","$route","connect","_this3","SO_API_BASE_URL","HubConnectionBuilder","withUrl","skipNegotiation","transport","HttpTransportType","WebSockets","accessTokenFactory","configureLogging","LogLevel","Warning","withAutomaticReconnect","build","start","_this4","_callee3","_context3","unmounted","cs","idx","findIndex","cmp","getCompanySettings","refreshUserData","props","sync","$vuetify","showManualLink","process","showShopLink","temporaryNavBar","appBarColor","setDarkmode","getBaseUrl","ci","storeCompany","isInsideDashboard","loggedIn","mapGetters","viewableLinks","links","authLinks","permitBackend","guestLinks","apiLink","apiUrl","manualLink","getLicenseTerms","v","Notification","DashboardTreeSelect","Search","CompanySwitcher","searchTags","scopedSlots","filterNodes","domProps","containerWidth","updateInterval","filteredEvents","deveuis","names","tags","nameWithDeveui","addToEvent","openWindow","addEvent","unshift","pop","syntaxHighlight","json","replace","match","cls","index","getTags","$forceUpdate","isInValidPath","canCreateGateway","canCreateNode","canCreateCompany","showLicenseExpiery","getCanCreateBools","setLicenseNotification","NavBar","DataHub","LicenseNotification","currentRoute","documentTitle","beforeMount","favi","getGlobalSettings","getUserSettings","getElementById","origin","clearAlert","ranges","displayName","isPresetValue","end","setRanges","range","changeRange","newRanges","setHours","setMinutes","$emit","storeTimeOffset","dashboardModuleId","timeOffset","addModuleSetting","getModuleSettingsTimeOffset","moduleSettings","reg","_self","validate","String","phoneNumberValid","countryCallingCode","phoneNumberRules","phoneValidation","isValid","getAddress","latLng","geocoder","mixinGoogleMaps","maps","Geocoder","geocode","results","formatted_address","reverseGeoCode","gmapApi","soTheme","currentTheme","isDark","defaultTextColor","addDays","zeroTime","valueOf","setDate","getDate","addYears","years","addHours","h","setTime","getTime","zeroTimeFromMinutes","$todo","CanvasRenderer","BarChart","LineChart","GaugeChart","PieChart","GridComponent","TooltipComponent","TitleComponent","LegendComponent","DataZoomComponent","MarkLineComponent","ScatterChart","PolarComponent","ECharts","PhonenumberInput","VueFriendlyIframe","DatePicker","mixin","ModuleSettingHelper","RestrictHelper","GoogleMapsHelper","CommonHelper","themeMixin","productionTip","Particles","VueScrollTo","container","easing","offset","force","cancelable","onStart","onDone","onCancel","x","y","VueGoogleMaps","load","plugins","installComponents","VCalendar","componentPrefix","vuetify","App","$mount","companyResource","getDashboards","getDashboard","dashboardId","duplicate","createForCompany","setDefault","getDefault","createPublicDashboard","getPublicDashboards","getPublicDashboard","publicDashboardId","deletePublicDashboard","getDashboardCategories","createDashboardCategories","updateDashboardCategories","categoryId","updateDashboardIndexes","removeDashboardIndexes","removeDashboardMarker","markerId","createOrUpdateMarker","decoders","normalize","inp","trim","toUpperCase","tagsWithAttributeDict","_step","ts","_iterator","_createForOfIteratorHelper","_loop","obj","normalizedName","attributeDict","done","f","getDefaultNodeTableHeaders","langLine","useLangLine","sortable","getActions","actionId","features","resetResourceCooldown","actionResourceId","updateRole","targetUserId","createUserWithCompany","forgotPasswordUpdate","guid","applicationPayload","alarmId","alarmPayload","getActiveAlarms","getAlarmHistory","setActiveAlarmStatus","activeAlarmId","testSettings","getScripts","getScript","scriptId","execute","getReport","reportId","getReports","multiExport","responseType","moduleResource","getModule","updateModules","getTagDataForModule","getTagDataForModuleByLimit","getLatestTagDataForModule","copyModule","getActiveUsers","getDatapoints","deactivate","notificationId","deactivateAll","getTests","peek","getTest","deleteTest","gatewayPayload","gatewayId","getByCompany","updatePosition","position","getForTag","removeDownlink","downlinkQueueId","createDownlink","getAllByCompany","getPermissions","getRecommendedPermissions","getUserPermissionsByUserId","userRoleId","uploadJournalFile","repositories","ActionRepository","UsersRepository","CompanyRepository","applications","AppsRepository","TagDataRepository","TagRepository","AlarmRepository","ScriptRepository","ReportRepository","DashboardRepository","ModuleRepository","LogRepository","notification","NotificationRepository","SignalTestRepository","LicenseRepository","gateways","GatewayRepository","IntegrationsRepository","DownlinkRepository","RoleRepository","tagJournal","TagJournalRepository","tagJournalFile","TagJournalFileRepository","RepositoryFactory","IntegrationRepository","accessTokens","namespaced","getAccessTokens","rootState","deleteAccessToken","_ref2","tokenId","deleteToken","createToken","_ref3","mutations","getAction","commit","createAction","_","updateAction","deleteAction","_callee4","_context4","getFeatures","_callee5","_context5","getEventTypes","_ref4","_callee6","_context6","_callee7","_context7","_callee8","_context8","SET_ACTION","SET_ACTIONS","SET_FEATURES","SET_EVENT_TYPES","getActionById","getFeatureById","alarms","currentAlarm","settingResponse","getAlarms","createAlarm","credentials","updateAlarm","_ref5","_ref6","setCurrentAlarm","_ref7","getAlarmById","_ref8","_ref9","_ref10","setAlarmStatus","_ref11","_ref12","_callee9","_context9","resetState","_ref13","removeAlarm","_ref14","_callee10","_context10","duplicateAlarm","_ref15","_callee11","_context11","clearTestResponse","_ref16","LOADING","SET_CURRENT","GET_ALARM","GET_ACTIVE_ALARM","CREATE_ALARM","SET_SETTING_RESPONSE","RESET_STATE","AppRepository","currentApplication","tagData","createApplication","deleteApplication","getApplication","setApplication","CREATE_APPLICATION","DELETE_APPLICATION","GET_TAG_DATA","SET_APPLICATION","getContacts","contactId","ContactRepository","createContact","deleteContact","SET_CONTACTS","getContactById","camOnlineServerId","CORepository","getStreams","axios","t0","SET_SERVERS","getServer","shared","companyUsers","companyApps","apps","editCompany","createCompany","getLatestActivity","activity","statuses","_ref17","_callee12","_context12","SET_LATEST_ACTIVITY","GET_COMPANIES","GET_COMPANY_USERS","GET_SHARED","GET_COMPANY_APPLICATION","CREATE_COMPANY","EDIT_COMPANY","getSharedName","rootGetters","configuration","toolbarTransparent","globalSettings","companyFields","serverMeta","nodesLeftForCompany","lastShownExpiery","showLicenseNotification","uploadWhiteLabelImage","getNodesLeftForCompany","getServerMeta","licenseRepository","getLicenseServerMeta","envConfig","envJson","fetch","VUE_APP_SO_API_BASE_URL","getTerms","SettingRepository","setUserSettings","setGlobalSettings","setCompanySettings","setCompanySettingLocal","_callee13","_context13","canCreate","SET_CAN_CREATE","_data$canCreateCompan","_data$canCreateGatewa","_data$canCreateNode","_data$expiresIn","SET_SERVER_META","SET_DARKMODE","SET_BASE_URL","SET_USER_SETTINGS","SET_LICENSE","SET_GLOBAL_SETTINGS","SET_COMPANY","SET_COMPANY_FIELDS","SET_COMPANY_SETTING","keyValue","SHOW_LICENSE_NOTIFICATION","SET_NODES_LEFT_COMPANY","_state$globalSettings","_state$globalSettings2","whiteLabelLogoForce","wl","logoPath","_vuetify$framework2","_state$SO_API_BASE_UR2","_vuetify$framework","framework","_state$SO_API_BASE_UR","baseImage","_unused","getCompanySetting","getCompanyCoordinates","parse","warn","dashboards","currentDashboard","defaultDashboard","publicDashboard","publicDashboards","hasDefault","setDashboard","_ref8$dashboardType","_ref18","_ref19","_ref20","_callee14","_context14","_ref21","_callee15","_context15","_ref22","_ref23","_callee16","_context16","updateDashboardCategoryIndexes","_ref24","_callee17","_context17","removeDashboardCategory","_ref25","_callee18","_context18","SET_DASHBOARD_CATEGORIES","SET_PUBLIC_DASHBOARD","SET_PUBLIC_DASHBOARDS","SET_DEFAULT","entries","SET_DASHBOARDS","SET_DASHBOARD","GET_DOWNLINKS","SET_EVENT","lastEvent","featureAccess","companyFeatures","FeatureAccessRepository","SET_COMPANY_FEATURES","Gateway","currentGateway","createGateway","deleteGateway","getGateway","getGateways","CREATE_GATEWAY","SET_GATEWAY","SET_GATEWAYS","VueLocalStorage","supportedLanguages","getOwnPropertyNames","Languages","localStorage","SET_LANGUAGE","setLanguage","sl","RegExp","logs","staticLogs","activeUsers","lastRequestLogs","clearLog","MetricHelper","getMetricsUrlParams","points","GET_DATAPOINTS","GET_ALARMS","GET_STATIC_LOGS","GET_LOGS","reverse","len","GET_ACTIVEUSERS","CLEAR_LOG","masters","getMasters","ModbusRepository","SET_MASTERS","getMasterNameById","_state$masters$find$n","_state$masters$find","currentModule","getModules","mod","setModules","CsharpEnum","updateIndex","ADD_MODULE","SET_MODULES","brokers","brokersWithMetrics","mqttMeta","MqttRepository","SET_BROKERS","SET_BROKERS_WITH_METRICS","GET_NOTIFICATIONS","nodes","OpcRepository","SET_NODES","getServerUrlById","reports","currentReport","saveAs","Blob","GET_REPORTS","GET_CURRENT","recommended","permissions","getRolesByCompany","getRoleById","createRole","ids","setRole","SET_ROLE","SET_ROLES","SET_RECOMMENDED","SET_PERMISSIONS","defaultsWithPermissions","permittedRoles","scripts","currentScript","validScript","valid","msg","setCurrentScript","resetValidScript","GET_SCRIPTS","SET_VALIDSCRIPT","googleMapsZoom","googleMapsLatLng","googleMapsViewType","imageMapZoom","setGoogleMapsZoom","level","setLatnLng","latnlng","setMapType","viewType","setImageMapZoom","ADD_MODULE_SETTING","SET_GOOGLEMAPS_ZOOM","SET_LAT_LNG","latnLng","SET_VIEW_TYPE","SET_IMAGE_MAP_ZOOM","Repo","signalTests","currentTest","testData","SET_TEST","SET_TEST_DATAS","datas","SET_TESTS","tests","slotId","ADD_SLOT","_state$slots","crypto","randomUUID","ADD_KEY_TO_SLOT","slotIdx","RESET_SLOTS","getSlot","getSlotNameById","getSlotName","currentTag","currentLabel","tagsAttributes","tagsWithKeys","tagsWithMeta","batteryStatuses","tagsInPool","detail","apiErrors","openPanels","getAllTagAttributes","getTagAsync","createTag","ApiHelper","updateTag","_ref9$fetch","disptach","deleteTag","setTag","getKeysForTag","getKeysForTagAsync","getTagWithKeys","uploadTagImage","_ref26","_ref27","_ref28","_ref29","_ref30","_callee19","_context19","_ref31","_ref32","_callee20","_context20","_ref33","_ref34","_callee21","_context21","_ref35","_ref36","_callee22","_context22","_ref37","_callee23","_context23","_ref38","_callee24","_context24","setBatteryStatuses","_ref39","_ref40","_callee25","_context25","companyRepository","_callee26","_context26","getLatestForCompany","_ref41","_callee27","_context27","vdd","latestTime","_ref42","_callee28","_context28","DecoderHelper","setTagData","_ref43","_ref44","_callee29","_context29","updateOpenPanels","_ref45","initializeOpenPanels","_ref46","SET_KEYS","SET_TAGPOOL","SET_BATTERY_STATUSES","GET_TAGS","GET_ALL_TAG_ATTRIBUTES","CREATED_TAG","DELETED_TAG","SET_TAG","SET_LABEL","SET_TAG_WITH_KEY","SET_TAG_WITH_META","SET_ERRORS","CLEAR_ERRORS","SET_DECODERS","SET_DETAIL","SET_OPEN_PANELS","getOpenPanels","getTableHeaders","__","tableheaders","currentTagData","currents","tagsWithData","tdKeys","tagDataCount","hasDefaults","dataLoading","getTagData","getTagDataKeys","getTagDataAsync","tagDatas","getTagDataWithMultiTag","getTagDataWithMultiTagAsync","td","resetDefaults","setTagDataDefaults","getTagdataDatapoints","toISOString","count","setTagDataKeys","clearTagData","getTrendDataForTag","tagKey","getCurrentTagdata","getCurrentsForTag","getCurrentsForDevice","SET_META","TAGLOADING","SET_TAG_DATA","SET_CURRENT_TAGDATA","SET_CURRENTS","_toConsumableArray","Set","GET_TAG_DATA_MULTI","GET_TAG_DATA_KEYS","GET_DEFAULTS","SET_DEFAULTS","GET_TOTAL_DP","dp","RESET_DEFAULTS","CLEAR_TAGDATA","templateDashboardId","getWidgets","updateWidgets","removeWidget","widgetId","getTemplateDashboards","widgets","saveDashboardToState","removeWidgetFromState","getTemplateDashboard","TemplateDashboardRepository","commitToStore","getDashboardWidgets","setWidgets","addOrUpdateWidget","createTemplateDashboard","updateTemplateDashboard","saveTemplateDashboardWidgets","tId","deleteTemplateDashboard","REMOVE_WIDGET","templateWidgetId","w","RESET_DASHBOARD","SET_TEMPLATE_DASHBOARDS","SET_WIDGETS","ADD_OR_UPDATE_WIDGET","_state$widgets","widgetIdx","_step2","_iterator2","_state$dashboard$temp","_state$dashboard","UserRepository","hasCompany","updateCounter","getUserCompany","_company$country","setUserByPublicDashboard","editUser","_x","getUserPermissionsByCurrentUser","createUserAndCompany","GET_USER","GET_USERS","GET_USER_COMPANY","SET_CREDENTIALS","EDIT_USER","LOGIN_USER","LOGIN_FAILED","LOGOUT_USER","UPDATE","_state$currentUser$to","_state$currentUser","currentJournal","journals","getJournalsForTag","getJournalByTagJournalId","tagJournalId","createJournal","updateJournal","deleteJournal","SET_JOURNALS","SET_CURRENT_JOURNAL","REMOVE_JOURNAL_ENTRY","Vuex","Store","createPersistedState","getLicenses","uploadLicense","activate","removeLicense","getCompanyLimitations","createOrUpdateCompanyLimitation","getUserAcceptedTos","acceptTos","tagDataResource","getCurrentForTags","tagIds","queries","metricHelper","getCurrentsMultiKey","tagKeys","getTimeSeriesTagData","getTimeSeriesTagDataSingle","getCurrentsMultiTagAndKey","deveuisAndKeys","getTagdataWithLimit","sortorder","_store$state2","params","k","Array","isArray","join","tokenResource","seedNordpool","year","month","goToDashboard","isLeaf","editMode","showMenu","displayActions","$event","handleCreate","showCreateDialog","showRemoveDialog","showDashboardCreateOrCopy","setValue","open","iconValue","display","page","avaliableIcons","icons","toggleDisplay","isDashboard","typeSelected","currentNode","editAction","createDashboardAction","copyDashboardAction","removeAction","storeCategories","element","shouldDisplay","displayArr","navigateToDbMapCreate","dashboardCategoryId","updateIndexes","parentGuid","getCategoryItems","handleDashboardCopyOrCreate","_this5","deleteConfirmed","_this6","onNodeRightClicked","tree","$refs","_this7","updateDraggable","isDraggable","isSelectable","_this8","SlVueTree","IconSelector","hex","User","Guest","PublicDashboard","AdminOrUser","AdminOrCompanyAdmin","VueI18n","fallbackLocale","axiosConnection","interceptors","baseURL","getOccupiedRegisters","masterId","createMaster","updateMaster","removeMaster","createRegister","removeRegister","registerId","registers","getAllRegisters"],"mappings":"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A,qBACA,0BACA,qBACA,oBACA,sBACA,eACA,oCACA,4BACA,YACA,oBACA,aACA,wBACA,gBACA,gBACA,WACA,iBACA,sBACA,cACA,sBACA,kBACA,0BACA,6BACA,yBACA,2BACA,2BACA,2BACA,oBACA,mBACA,6BACA,qCACA,6BACA,qBACA,qBACA,qBACA,kBACA,8BACA,wBACA,4BACA,4BACA,4BACA,sBACA,sBACA,oBACA,oBACA,oBACA,oBACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,uBAKA7lE,SAAA,CACA8lE,MAAA,eAAAj9B,EAAA,KACA,eAAAkC,YAAA,WAAAA,WACA,KAAA86B,eAAA7mE,QAAA,SAAA3H,GAAA,OAAAA,EAAAmH,SAAAqqC,EAAAkC,eACA,KAAA86B,iBAIAjpE,QAAA,CACA4oE,SAAA,SAAAp2B,GACA,KAAAs2B,UAAAt2B,EACA,KAAA0D,MAAA,SAAA1D,IAGA22B,cAAA,WACA,KAAAJ,SAAA,KAAAA,UAIA17B,MAAA,CACAliC,KAAA,SAAAqnC,GACA,KAAAs2B,UAAAt2B,GAGAq2B,KAAA,SAAAr2B,GACA,KAAAu2B,QAAAv2B,MC5KqT,I,wBCQjTvM,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,yCC2MA,GACfzoC,KAAA,0BACAnF,KAAA,WACA,OACA2iD,EAAA,EACAC,EAAA,EACA2b,OAAA,EACAhpD,MAAA,EACA+R,MAAA,EACA0oD,UAAA,EACAe,aAAA,EACAX,kBAAA,EACAC,kBAAA,EACAC,2BAAA,EACAP,UAAA,EACA5+D,MAAA,UACAud,cAAA,GACAsiD,cAAA,EACAhkE,QAAA,CACA4H,MAAA,GACA9B,KAAA,oBACA3B,MAAA,WAEA8/D,YAAA,GACAjjD,WAAA,GACA3Y,QAAA,CACA,CACAT,MAAA,KAAA2+B,GAAA,iCACAv5B,OAAA,KAAAoyC,aACAskB,QAAA,SAEA,CACA97D,MAAA,KAAA2+B,GAAA,+BACAv5B,OAAA,KAAAk3D,WACAR,QAAA,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","file":"js/app.95cf9f37.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/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0b753a08\":\"6b779786\",\"chunk-e739c210\":\"10ba3de0\",\"chunk-7ad4a58d\":\"ef9fd16e\",\"chunk-2d0a2df0\":\"1b25f79c\",\"chunk-0f5abfe9\":\"598c7886\",\"chunk-179798b4\":\"cdb49dca\",\"chunk-1a6c1e29\":\"92f34939\",\"chunk-1aa3de19\":\"c340be41\",\"chunk-1c5d8a24\":\"a4629cba\",\"chunk-1f1da650\":\"5d780b21\",\"chunk-20c90825\":\"93e053d5\",\"chunk-292f98e6\":\"8b90eed4\",\"chunk-2b552467\":\"d0b7841d\",\"chunk-2d0aaf55\":\"c2fd0caf\",\"chunk-2d0cc068\":\"3ee1b8c8\",\"chunk-2d0ceb52\":\"7b6ad397\",\"chunk-2d0d6d35\":\"ac9fbe14\",\"chunk-2d20813a\":\"d637e45b\",\"chunk-2d215fa4\":\"f955316f\",\"chunk-2d225be7\":\"e4206765\",\"chunk-2d22c101\":\"5d2ba425\",\"chunk-2d2383db\":\"72a6feb4\",\"chunk-339156c9\":\"ef783e18\",\"chunk-355d8890\":\"a98753a5\",\"chunk-360401a8\":\"8b9e8c45\",\"chunk-37e378e4\":\"01bb83c6\",\"chunk-2d0c1d69\":\"99dd5cf2\",\"chunk-3e50b9dc\":\"f66396d8\",\"chunk-40862cb0\":\"fa1d4640\",\"chunk-46284c0b\":\"830409f3\",\"chunk-48696312\":\"b0344ca4\",\"chunk-d7fe899a\":\"d477ceb2\",\"chunk-4f91ce06\":\"e98e72ef\",\"chunk-5bdb9c32\":\"7ed00cf3\",\"chunk-70caee82\":\"88a52143\",\"chunk-072cb208\":\"f0e42710\",\"chunk-1077446e\":\"7c7113b3\",\"chunk-18e42ec4\":\"ab998cde\",\"chunk-284375f3\":\"2c0d1bab\",\"chunk-973f8b90\":\"50c0bea9\",\"chunk-07fa3c36\":\"d7980cce\",\"chunk-4bffd648\":\"1cd882dc\",\"chunk-dffb445c\":\"4d516167\",\"chunk-3974515c\":\"94c35674\",\"chunk-4a3baafc\":\"fb224fa6\",\"chunk-2db09554\":\"c303fe7f\",\"chunk-209a3d91\":\"02a04159\",\"chunk-3e4205cb\":\"d9df710c\",\"chunk-3e02a0b6\":\"3f705254\",\"chunk-2e1b84b1\":\"5dc3d1ad\",\"chunk-44336e19\":\"315afc7a\",\"chunk-14b16dd8\":\"5305b9a6\",\"chunk-740a2805\":\"32adba94\",\"chunk-3e3c126b\":\"b117c422\",\"chunk-54f4cbb2\":\"c03eef5c\",\"chunk-6c13da5b\":\"effe991d\",\"chunk-fa6ec2cc\":\"2538a1d5\",\"chunk-2d0cebfe\":\"80730a3c\",\"chunk-2d0d0029\":\"516376df\",\"chunk-2d0f11b4\":\"d0e0d79f\",\"chunk-2d2170db\":\"5febf131\",\"chunk-69db505c\":\"89b6058e\",\"chunk-7e3b7070\":\"dd8acbb1\",\"chunk-796c2356\":\"ac95d742\",\"chunk-7f2042e6\":\"36e039c7\",\"chunk-77afd2ec\":\"63169d81\",\"chunk-79b16637\":\"6208acba\",\"chunk-8f39bdc0\":\"98ef9009\",\"chunk-9502a794\":\"ba6dff4d\",\"chunk-9b88896c\":\"80d65bf8\",\"chunk-b11f49c8\":\"d98cddd0\",\"chunk-c2b4d8da\":\"e30ef4a6\",\"chunk-d1b435dc\":\"ef45d560\",\"chunk-2d0d9f9f\":\"df411d52\",\"chunk-614d23b5\":\"1bf92cd3\",\"chunk-ef0f9c7e\":\"728a56da\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-0b753a08\":1,\"chunk-7ad4a58d\":1,\"chunk-0f5abfe9\":1,\"chunk-179798b4\":1,\"chunk-1a6c1e29\":1,\"chunk-1aa3de19\":1,\"chunk-1c5d8a24\":1,\"chunk-1f1da650\":1,\"chunk-339156c9\":1,\"chunk-355d8890\":1,\"chunk-360401a8\":1,\"chunk-37e378e4\":1,\"chunk-3e50b9dc\":1,\"chunk-40862cb0\":1,\"chunk-46284c0b\":1,\"chunk-48696312\":1,\"chunk-d7fe899a\":1,\"chunk-5bdb9c32\":1,\"chunk-70caee82\":1,\"chunk-072cb208\":1,\"chunk-1077446e\":1,\"chunk-284375f3\":1,\"chunk-973f8b90\":1,\"chunk-07fa3c36\":1,\"chunk-4bffd648\":1,\"chunk-dffb445c\":1,\"chunk-3974515c\":1,\"chunk-4a3baafc\":1,\"chunk-2db09554\":1,\"chunk-209a3d91\":1,\"chunk-3e4205cb\":1,\"chunk-3e02a0b6\":1,\"chunk-2e1b84b1\":1,\"chunk-14b16dd8\":1,\"chunk-740a2805\":1,\"chunk-3e3c126b\":1,\"chunk-54f4cbb2\":1,\"chunk-6c13da5b\":1,\"chunk-fa6ec2cc\":1,\"chunk-69db505c\":1,\"chunk-7e3b7070\":1,\"chunk-796c2356\":1,\"chunk-7f2042e6\":1,\"chunk-77afd2ec\":1,\"chunk-79b16637\":1,\"chunk-9502a794\":1,\"chunk-9b88896c\":1,\"chunk-b11f49c8\":1,\"chunk-c2b4d8da\":1,\"chunk-d1b435dc\":1,\"chunk-ef0f9c7e\":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/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0b753a08\":\"3de502ed\",\"chunk-e739c210\":\"31d6cfe0\",\"chunk-7ad4a58d\":\"506a27c6\",\"chunk-2d0a2df0\":\"31d6cfe0\",\"chunk-0f5abfe9\":\"8ea9a58f\",\"chunk-179798b4\":\"3ab7a86c\",\"chunk-1a6c1e29\":\"3ab7a86c\",\"chunk-1aa3de19\":\"ea016fc1\",\"chunk-1c5d8a24\":\"726b3234\",\"chunk-1f1da650\":\"3ab7a86c\",\"chunk-20c90825\":\"31d6cfe0\",\"chunk-292f98e6\":\"31d6cfe0\",\"chunk-2b552467\":\"31d6cfe0\",\"chunk-2d0aaf55\":\"31d6cfe0\",\"chunk-2d0cc068\":\"31d6cfe0\",\"chunk-2d0ceb52\":\"31d6cfe0\",\"chunk-2d0d6d35\":\"31d6cfe0\",\"chunk-2d20813a\":\"31d6cfe0\",\"chunk-2d215fa4\":\"31d6cfe0\",\"chunk-2d225be7\":\"31d6cfe0\",\"chunk-2d22c101\":\"31d6cfe0\",\"chunk-2d2383db\":\"31d6cfe0\",\"chunk-339156c9\":\"ff6e6614\",\"chunk-355d8890\":\"4124631f\",\"chunk-360401a8\":\"3ab7a86c\",\"chunk-37e378e4\":\"726b3234\",\"chunk-2d0c1d69\":\"31d6cfe0\",\"chunk-3e50b9dc\":\"ff6e6614\",\"chunk-40862cb0\":\"3ab7a86c\",\"chunk-46284c0b\":\"3ab7a86c\",\"chunk-48696312\":\"394e6f4a\",\"chunk-d7fe899a\":\"a8664c0a\",\"chunk-4f91ce06\":\"31d6cfe0\",\"chunk-5bdb9c32\":\"f80181b2\",\"chunk-70caee82\":\"b417237c\",\"chunk-072cb208\":\"693491d7\",\"chunk-1077446e\":\"3ab7a86c\",\"chunk-18e42ec4\":\"31d6cfe0\",\"chunk-284375f3\":\"4d9d63af\",\"chunk-973f8b90\":\"96b08369\",\"chunk-07fa3c36\":\"5e9b8589\",\"chunk-4bffd648\":\"c601cfc2\",\"chunk-dffb445c\":\"a28e8f8c\",\"chunk-3974515c\":\"15a2f0ca\",\"chunk-4a3baafc\":\"2144da3e\",\"chunk-2db09554\":\"c0f7e4c7\",\"chunk-209a3d91\":\"e1362ebc\",\"chunk-3e4205cb\":\"51c26852\",\"chunk-3e02a0b6\":\"3450220b\",\"chunk-2e1b84b1\":\"70c28190\",\"chunk-44336e19\":\"31d6cfe0\",\"chunk-14b16dd8\":\"666ccf84\",\"chunk-740a2805\":\"3ab7a86c\",\"chunk-3e3c126b\":\"3ab7a86c\",\"chunk-54f4cbb2\":\"a694e574\",\"chunk-6c13da5b\":\"9b681d7c\",\"chunk-fa6ec2cc\":\"455d87c4\",\"chunk-2d0cebfe\":\"31d6cfe0\",\"chunk-2d0d0029\":\"31d6cfe0\",\"chunk-2d0f11b4\":\"31d6cfe0\",\"chunk-2d2170db\":\"31d6cfe0\",\"chunk-69db505c\":\"fc47a565\",\"chunk-7e3b7070\":\"d586320b\",\"chunk-796c2356\":\"ff6e6614\",\"chunk-7f2042e6\":\"3ab7a86c\",\"chunk-77afd2ec\":\"726b3234\",\"chunk-79b16637\":\"06a3d15e\",\"chunk-8f39bdc0\":\"31d6cfe0\",\"chunk-9502a794\":\"3ab7a86c\",\"chunk-9b88896c\":\"4124631f\",\"chunk-b11f49c8\":\"f80181b2\",\"chunk-c2b4d8da\":\"3ab7a86c\",\"chunk-d1b435dc\":\"d9bf43ef\",\"chunk-2d0d9f9f\":\"31d6cfe0\",\"chunk-614d23b5\":\"31d6cfe0\",\"chunk-ef0f9c7e\":\"3ab7a86c\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import router from \"@/router\";\nimport store from \"@/stores/store\";\nimport { mapActions, mapState } from \"vuex\";\nimport { Roles } from \"@/_helpers/Role\";\n\nexport const FEATURES = {\n  MAP_DASHBOARD: \"FEATURE_MAP_DASHBOARD\",\n  CAM_ONLINE: \"CAM_ONLINE\",\n  MULTI_COMPANY: \"FEATURE_MULTI_COMPANY\",\n  PER_COMPANY_BRANDING: \"FEATURE_PER_COMPANY_BRANDING\",\n  OPC: \"FEATURE_OPC_UA\",\n};\n\nexport const LICENSE_FEATURES = [FEATURES.MAP_DASHBOARD];\n\nexport default {\n  data() {\n    return {\n      whiteLabelSettings: [\"powered_by\", \"branding\"],\n    };\n  },\n  methods: {\n    ...mapActions(\"configuration\", [\"getLicenseTerms\"]),\n\n    isSuperAdmin() {\n      return this.permitted(\"SuperAdmin\");\n    },\n\n    canMask() {\n      return this.permitted(\"Companies.Masquerade\");\n    },\n\n    allowed(route, roles = null) {\n      if (roles == \"all\")\n        // TODO: This is a hack fix this\n        return true;\n\n      var role = store.state.users.currentUser.role;\n\n      var allowed = false;\n\n      if (route !== null) {\n        if (route.charAt(0) === \"/\") {\n          route = route.substring(1, route.length);\n        }\n\n        var routeArr = route.split(\"/\");\n\n        if (routeArr.length > 0) {\n          router.options.routes.forEach((e) => {\n            if (e.path === \"/\" + routeArr[0]) {\n              if (e.children) {\n                e.children.forEach((c) => {\n                  if (c.path === routeArr[1]) {\n                    if (c.meta) {\n                      if (!c.meta.authorize) allowed = true;\n\n                      allowed = c.meta.authorize.includes(role);\n                    }\n                  }\n                });\n              }\n            }\n          });\n        }\n      } else if (roles !== null) {\n        allowed = roles.includes(role);\n      }\n\n      return allowed;\n    },\n\n    // Check if the current state company owns the requested resource\n    owns(oid) {\n      var cmpId = store.getters[\"users/companyId\"];\n      if (cmpId == null) return false;\n\n      return oid == cmpId;\n    },\n\n    permitted(permission, prefix = \"Frontend.SO.\") {\n      if (permission == \"ALL\") return true;\n\n      var fullPermission = prefix + permission;\n      var result = store.getters[\"users/permissions\"].filter(\n        (e) => e.resourceIdentifier == fullPermission\n      );\n      return result == null || result.length <= 0 ? false : true;\n    },\n\n    canAccessFeature(feature) {\n      let result = store.getters[\"featureAccess/companyFeatures\"].find(\n        (e) => e.name === feature\n      );\n\n      // Check if the feature is also controled by the license\n      if (result !== undefined && LICENSE_FEATURES.includes(result.name)) {\n        let license = store.getters[\"configuration/license\"];\n        if (license === undefined || license[result.name] === undefined)\n          return false;\n        if (license[result.name].toLowerCase() === \"true\") return true;\n\n        return false;\n      }\n\n      return result !== undefined;\n    },\n\n    // Check if the user is allowed to be edited by the current user\n    allowedToEdit(role, targetRole) {\n      let allowed = false;\n\n      if (role === Roles.Admin || role === Roles.SuperAdmin) {\n        allowed = targetRole !== Roles.SuperAdmin;\n      }\n\n      if (role === Roles.CompanyAdmin) {\n        allowed =\n          targetRole !== Roles.Admin &&\n          targetRole !== Roles.SuperAdmin &&\n          targetRole !== Roles.CompanyAdmin;\n      }\n\n      return allowed;\n    },\n\n    // Returns true if access is restricted to setting due to white labeling not being included in the license\n    limitedToWhiteLabel(key) {\n      if (this.license.WHITE_LABEL) return false;\n\n      return this.whiteLabelSettings.includes(key);\n    },\n\n    whiteLabelActive() {\n      return this.license.WHITE_LABEL;\n    },\n  },\n\n  computed: {\n    ...mapState(\"configuration\", [\"userSettings\", \"license\"]),\n\n    FEATURES() {\n      return FEATURES;\n    },\n\n    whiteLabel() {\n      if (\n        this.license.WHITE_LABEL == undefined ||\n        this.license.WHITE_LABEL == null\n      )\n        return false;\n\n      return this.license.WHITE_LABEL.toLowerCase() == \"true\";\n    },\n  },\n};\n","import { format, formatDistance } from \"date-fns\";\nimport i18n from \"@/plugins/i18n.js\";\nimport { sv } from \"date-fns/locale\";\n\nexport default {\n  methods: {\n    humanDate(date, formatString = undefined) {\n      if (date == \"0001-01-01T00:00:00\") return \"N/A\";\n      return date !== undefined && date !== null\n        ? format(\n            typeof date === \"string\" ? new Date(date) : date,\n            formatString !== undefined ? formatString : \"dd MMM - HH:mm\"\n          )\n        : \"N/A\";\n    },\n\n    timeFromDays(days) {\n      return days * 24 * 60 * 60 * 1000;\n    },\n\n    timeFromHours(hours) {\n      return hours * 60 * 60 * 1000;\n    },\n\n    timeFromMinutes(minutes) {\n      return minutes * 60 * 1000;\n    },\n\n    timeWithinMinutes(date1, minutes, date2) {\n      if (date2 == undefined) date2 = new Date();\n      return date2 - new Date(date1) < this.timeFromMinutes(minutes);\n    },\n\n    timeWithinHours(date, hours) {\n      return new Date() - new Date(date) < this.timeFromHours(hours);\n    },\n\n    timeWithinDays(date, days) {\n      return new Date() - new Date(date) < this.timeFromDays(days);\n    },\n\n    distanceAgo(date) {\n      if (date == null) return \"\";\n\n      let options = {};\n      if (i18n.locale == \"sv\") options = { locale: sv };\n\n      return formatDistance(new Date(date), new Date(), options);\n    },\n\n    toApiDate(date, encode = false) {\n      let dt = this.humanDate(date, \"yyyy-MM-dd HH:mm:ss\");\n\n      return encode ? encodeURIComponent(dt) : dt;\n    },\n  },\n};\n","import Repository from \"../Repository\";\r\nimport { apiConfig, company } from \"../../_helpers/apiHelper\";\r\n\r\nconst resource = \"/settings\";\r\n\r\nexport default {\r\n  get() {\r\n    return Repository.get(`${resource}`, apiConfig());\r\n  },\r\n\r\n  set(payload) {\r\n    return Repository.post(`${resource}`, payload, apiConfig());\r\n  },\r\n\r\n  getGlobal() {\r\n    return Repository.get(`${resource}/global`, apiConfig());\r\n  },\r\n\r\n  setGlobal(payload) {\r\n    return Repository.post(`${resource}/global`, payload, apiConfig());\r\n  },\r\n\r\n  getCompanyFields() {\r\n    return Repository.get(`${resource}/company/fields`, apiConfig());\r\n  },\r\n\r\n  getCompany() {\r\n    return Repository.get(`${resource}/company/${company()}`, apiConfig());\r\n  },\r\n\r\n  setCompany(payload) {\r\n    return Repository.put(\r\n      `${resource}/company/${company()}`,\r\n      payload,\r\n      apiConfig()\r\n    );\r\n  },\r\n\r\n  getVersions() {\r\n    return Repository.get(`${resource}/versions`);\r\n  },\r\n\r\n  getIntegrationSettings() {\r\n    return Repository.get(`${resource}/integration`, apiConfig());\r\n  },\r\n\r\n  createIntegrationSetting(payload) {\r\n    return Repository.post(`${resource}/integration`, payload, apiConfig());\r\n  },\r\n\r\n  removeIntegrationSetting(id) {\r\n    return Repository.delete(`${resource}/integration/${id}`, apiConfig());\r\n  },\r\n};\r\n","import i18n from \"@/plugins/i18n\";\r\nimport { colors } from \"vuetify/lib\";\r\n\r\nexport default {\r\n  DaysOfWeek: {\r\n    sunday: 0,\r\n    monday: 1,\r\n    tuesday: 2,\r\n    wednesday: 3,\r\n    thursday: 4,\r\n    friday: 5,\r\n    saturday: 6,\r\n  },\r\n\r\n  AlertType: {\r\n    A: 0,\r\n    B: 1,\r\n    C: 2,\r\n    D: 3,\r\n  },\r\n\r\n  NodeTypes: {\r\n    LORAWAN: 0,\r\n    API: 1,\r\n    MQTT: 2,\r\n    NODERED: 3,\r\n    SPARKPLUG: 4,\r\n    SPOTIO: 5,\r\n    MODBUS: 6,\r\n    OPC: 7,\r\n  },\r\n\r\n  Priority: {\r\n    A: 0,\r\n    B: 1,\r\n    C: 2,\r\n  },\r\n\r\n  LimitType: {\r\n    LOW: 0,\r\n    HIGH: 1,\r\n  },\r\n\r\n  ContactType: {\r\n    SMS: 0,\r\n    EMAIL: 1,\r\n    BOTH: 2,\r\n  },\r\n\r\n  ModuleType: {\r\n    CHART: 0,\r\n    GAUGE: 1,\r\n    TEXT: 2,\r\n    IMAGE: 3,\r\n    MAP: 4,\r\n    COMPANYINFO: 5,\r\n    IFRAME: 6,\r\n    WEATHER: 7,\r\n    SINGLE: 8,\r\n    RAWTABLE: 9,\r\n    MULTICHART: 10,\r\n    IMAGEMAP: 11,\r\n    FUNCTIONBUTTON: 12,\r\n    INFOCARD: 13,\r\n    TRENDCHART: 14,\r\n    SENSOROVERVIEW: 15,\r\n    TILTCHART: 16,\r\n    FILLINDICATOR: 17,\r\n    CONTROLSLIDERS: 18,\r\n    CAMONLINE: 19,\r\n  },\r\n\r\n  LogType: [\r\n    { type: \"SMS\", label: i18n.t(\"log.type.sms\"), color: colors.blue.accent1 },\r\n    {\r\n      type: \"APP\",\r\n      label: i18n.t(\"log.type.app\"),\r\n      color: colors.green.accent3,\r\n    },\r\n    {\r\n      type: \"WARNING\",\r\n      label: i18n.t(\"log.type.warning\"),\r\n      color: colors.yellow.accent1,\r\n    },\r\n    {\r\n      type: \"ERROR\",\r\n      label: i18n.t(\"log.type.error\"),\r\n      color: colors.red.accent1,\r\n    },\r\n    {\r\n      type: \"USEREVENT\",\r\n      label: i18n.t(\"log.type.userevent\"),\r\n      color: colors.green.accent1,\r\n    },\r\n    {\r\n      type: \"LOGIN\",\r\n      label: i18n.t(\"log.type.login\"),\r\n      color: colors.blue.accent1,\r\n    },\r\n  ],\r\n\r\n  CompanySettingFieldType: {\r\n    STRING: 0,\r\n    NUMBER: 1,\r\n    DATE: 2,\r\n    SELECT: 3,\r\n    CHECKBOX: 4,\r\n    PASSWORD: 5,\r\n    NONE: 6,\r\n    NODE_TABLE_COLUMNS: 7,\r\n    COORDINATE: 8,\r\n  },\r\n\r\n  FunctionTypes: {\r\n    SCRIPT: 0,\r\n    VALUEINPUT: 1,\r\n    DASHBOARD: 2,\r\n    DOWNLINK: 3,\r\n    ONOFFSWITCH: 4,\r\n  },\r\n\r\n  ConditionTypes: {\r\n    SENSORVALUE: {\r\n      value: 0,\r\n      text: i18n.t(\"conditionTree.types.0\"),\r\n      icon: \"mdi-thermometer\",\r\n    },\r\n    TEXT: { value: 1, text: i18n.t(\"conditionTree.types.1\"), icon: \"mdi-text\" },\r\n    NUMBER: {\r\n      value: 2,\r\n      text: i18n.t(\"conditionTree.types.2\"),\r\n      icon: \"mdi-counter\",\r\n    },\r\n    DATE: {\r\n      value: 3,\r\n      text: i18n.t(\"conditionTree.types.3\"),\r\n      icon: \"mdi-calendar-range\",\r\n    },\r\n    EMPTY: {\r\n      value: 4,\r\n      text: i18n.t(\"conditionTree.types.4\"),\r\n      icon: \"mdi-circle-off-outline\",\r\n    },\r\n  },\r\n\r\n  DashboardTypes: DashboardTypes,\r\n};\r\n\r\nexport const DashboardTypes = {\r\n  DEFAULT: 0,\r\n  MAP: 1,\r\n  IMAGEMAP: 2,\r\n};\r\n\r\nexport const IntegrationTypes = {\r\n  CHARGE_AMPS: 0,\r\n};\r\n\r\nexport const IntegrationValueTypes = {\r\n  STRING: 0,\r\n  JSON: 1,\r\n};\r\n","export default {\r\n  routes: {\r\n    home: \"Home\",\r\n    login: \"Login\",\r\n    register: \"Register\",\r\n    registerCompany: \"New Company\",\r\n    logout: \"Logout\",\r\n\r\n    company: \"Company\",\r\n    dashboard: \"Dashboard\",\r\n    application: \"Applications\",\r\n    alarm: \"Alarm Management\",\r\n\r\n    user: \"Users\",\r\n    tagdata: \"Data\",\r\n    tag: \"Nodes\",\r\n    script: \"Script Engine\",\r\n    report: \"Reports\",\r\n    contact: \"Contact\",\r\n    apiRef: \"API-Documentation\",\r\n    shop: \"Buy nodes\",\r\n    manual: \"Manual\",\r\n    userEdit: \"Account\",\r\n    settings: \"Settings\",\r\n    signalTest: \"Field testing\",\r\n    gateway: \"Gateways\",\r\n    news: \"News\",\r\n    roles: \"Roles\",\r\n\r\n    superadmin: \"Admin\",\r\n  },\r\n\r\n  integrations: {\r\n    title: \"Integrations\",\r\n    chargeAmps: {\r\n      fields: {\r\n        apiKey: \"API Key\",\r\n        organizationId: \"Organization ID\",\r\n        useRfid: \"Use RFID as Identifier\",\r\n      },\r\n\r\n      organizationIdDescription: \"Organization ID for ChargeAmps\",\r\n      useRfidDescription:\r\n        \"Use RFID as identifier, this makes it possible to categorize the data by the user that has utilized the charging station instead of by the charging station itself or its connector\",\r\n      apiKeyDescription:\r\n        \"API Key for ChargeAmps that is provided by ChargeAmps support\",\r\n    },\r\n  },\r\n\r\n  actions: {\r\n    title: \"Actions\",\r\n    toolbar: \"Actions\",\r\n    create: \"Create Action\",\r\n    edit: \"Edit Action\",\r\n    delete: \"Delete Action\",\r\n    deleteError: \"Could not delete action\",\r\n    deleteSuccess: \"Deleted\",\r\n    notify: \"Notify-methods\",\r\n    noCooldownActive: \"Not on Cooldown\",\r\n    onCooldown: \"On Cooldown\",\r\n    noCooldownDescription: \"There is no active cooldowns to take action on\",\r\n    resetCooldownActionDescription:\r\n      \"Reset the cooldown for this action, this makes it possible to trigger the action again\",\r\n    resetCooldown: \"Reset cooldown\",\r\n    resetAllCooldown: \"Reset all cooldowns\",\r\n\r\n    config: {\r\n      emailTitleConfigDescription:\r\n        \"Email title template makes it possible to customize the title of the email (Example to include node names in the title: 'Nodes {node_name} is offline')\",\r\n      availableTitleVariables: \"Available variables\",\r\n      variables: \"{node_name}, {node_deveui} and {node_name_and_deveui}\",\r\n    },\r\n\r\n    fields: {\r\n      title: \"Title\",\r\n      description: \"Description\",\r\n      eventType: \"Event type\",\r\n      actionTypesString: \"Action type\",\r\n      sms: \"Sms\",\r\n      email: \"Email\",\r\n      cooldownOnAction: \"Cooldown on action\",\r\n      cooldownMinutes: \"Cooldown in minutes\",\r\n      cooldownUntil: \"Cooldown until\",\r\n      manualCooldown: \"Manual Acknowledge\",\r\n      duration: \"Duration\",\r\n      emailTitleTemplate: \"Email title template\",\r\n      isOnCooldown: \"Cooldown\",\r\n      identifier: \"Identifier\",\r\n    },\r\n\r\n    hints: {\r\n      duration: \"Duration in minutes for the selected event\",\r\n      manualCooldown:\r\n        \"When activated, the user must manually acknowledge the event for a new event to be triggered.\",\r\n    },\r\n\r\n    details: {\r\n      edit: \"Edit Action\",\r\n      cooldowns: \"Actions on cooldown\",\r\n      history: \"Action history\",\r\n    },\r\n\r\n    resources: {\r\n      title: \"Resources\",\r\n      create: \"Create Resource\",\r\n      edit: \"Edit Resource\",\r\n      delete: \"Delete Resource\",\r\n      deleteError: \"Could not delete resource\",\r\n      deleteSuccess: \"Deleted\",\r\n      selectResource: \"Choose Resource\",\r\n      selectAll: \"Select all\",\r\n\r\n      fields: {},\r\n    },\r\n\r\n    actions: {\r\n      title: \"Actions\",\r\n      description: \"The actions is what happens when an event is triggered\",\r\n      sms: \"SMS\",\r\n      email: \"Email\",\r\n      addToAction: \"Add to action\",\r\n    },\r\n\r\n    errors: {\r\n      noActionIdFound: \"No Action with the ID specified found\",\r\n    },\r\n\r\n    eventTypes: {\r\n      0: \"Data Ingest Error\",\r\n      1: \"Node Offline\",\r\n      2: \"Add Node to Action\",\r\n    },\r\n  },\r\n\r\n  widget: {\r\n    weather: {\r\n      pickTitle: \"Position for SMHI Weather-data\",\r\n    },\r\n\r\n    form: {\r\n      step1: \"Widget\",\r\n      step2: \"Slots / Keys\",\r\n      step3: \"Attributes\",\r\n    },\r\n  },\r\n\r\n  opc: {\r\n    title: \"OPC-UA\",\r\n    server: {\r\n      title: \"OPC-UA Servrers\",\r\n      autocomplete: \"Select a OPC-Server\",\r\n      fields: {\r\n        opcServerId: \"OPC Server ID\",\r\n        serverUrl: \"Server URL\",\r\n        useUsernameAndPassword: \"Använd Användarnamn och Lösenord\",\r\n        updatedAt: \"Uppdaterad\",\r\n        createdAt: \"Skapad\",\r\n      },\r\n    },\r\n\r\n    node: {\r\n      fields: {\r\n        serverId: \"Server\",\r\n        key: \"Key\",\r\n        nodeId: \"NodeID\",\r\n      },\r\n\r\n      hints: {\r\n        nodeId: \"Example, ns=1;i=1001\",\r\n      },\r\n    },\r\n  },\r\n\r\n  modbus: {\r\n    title: \"Modbus\",\r\n\r\n    master: {\r\n      title: \"Modbus Masters\",\r\n      create: \"Add new Master\",\r\n      tryReconnect: \"Try to reconnect\",\r\n\r\n      fields: {\r\n        modbusMasterId: \"Master ID\",\r\n        name: \"Title\",\r\n        host: \"IP\",\r\n        port: \"Port\",\r\n        status: \"Status\",\r\n      },\r\n    },\r\n\r\n    register: {\r\n      title: \"Modbus Register\",\r\n      create: \"Add a new register\",\r\n      poll: \"Poll registers\",\r\n      polledValue: \"Polled value\",\r\n\r\n      fields: {\r\n        modbusRegisterId: \"Register ID\",\r\n        modbusMasterId: \"Master ID\",\r\n        master: \"Master\",\r\n        slave: \"Slav ID\",\r\n        nodeId: \"Node ID\",\r\n        key: \"Sensor key\",\r\n        register: \"Register\",\r\n        pollInterval: \"Poll interval (Seconds)\",\r\n        registerType: \"Register-type\",\r\n        valueType: \"Value-type\",\r\n        action: \"Poll/Push\",\r\n        byteOrder: \"Byte-order\",\r\n        createdAt: \"Created\",\r\n        updatedAt: \"Updated\",\r\n      },\r\n\r\n      valueTypes: {\r\n        0: \"FLOAT\",\r\n        1: \"DOUBLE\",\r\n        2: \"INT16\",\r\n        3: \"UINT16\",\r\n        4: \"INT32\",\r\n        5: \"UINT32\",\r\n        6: \"BOOL\",\r\n      },\r\n\r\n      types: {\r\n        0: \"Holding Register\",\r\n        1: \"Coil\",\r\n        2: \"Analog Input\",\r\n        3: \"Digital Input\",\r\n      },\r\n\r\n      byteOrders: {\r\n        0: \"ABCD\",\r\n        1: \"DCBA (Default)\",\r\n        2: \"BADC\",\r\n        3: \"CDAB\",\r\n      },\r\n    },\r\n\r\n    validation: {\r\n      required: \"This field is required\",\r\n      slaveMinVal: \"SlavID must be greater than 1\",\r\n      slaveMaxVal: \"SlavID must be less than 255\",\r\n      registerMaxVal: \"Register must be less than 67000\",\r\n      registerMinVal: \"Register must be greater or equal to 0\",\r\n      pollIntervalMin: \"Poll Interval cannot be less than 60 seconds\",\r\n      registerAllreadyReadFrom: \"This register is allready in use\",\r\n    },\r\n  },\r\n\r\n  spotIo: {\r\n    fields: {\r\n      key: \"SpotIO Key\",\r\n    },\r\n    validation: {\r\n      spotIoKeyRequired: \"'SpotIO Key' is required\",\r\n      spotIoKeyUnique: \"'SpotIO Key' must be unique for the Node\",\r\n    },\r\n  },\r\n\r\n  templateDashboard: {\r\n    title: \"Dashboard Templates\",\r\n    deleteError: \"Could not delete template\",\r\n    deleteSuccess: \"Deleted\",\r\n\r\n    saveDashboard: \"Save\",\r\n\r\n    defaults: {\r\n      name: \"New template dashboard\",\r\n    },\r\n\r\n    fields: {\r\n      name: \"Name\",\r\n      dashboardType: \"Type\",\r\n      createdAt: \"Created\",\r\n      updatedAt: \"Updated\",\r\n    },\r\n\r\n    addSlot: \"Add Node-Slot\",\r\n    numberOfAvailableSlots: \"Amount of Node-Slots: {num}\",\r\n\r\n    dashboardTypeTitle: \"Dashboard type\",\r\n    dashboardType: {\r\n      0: \"Full Dashboard\",\r\n      1: \"Side / Map Dashboard\",\r\n      2: \"Node Dashboard\",\r\n    },\r\n\r\n    slots: {},\r\n  },\r\n\r\n  slot: {\r\n    addHint: \"Add a Node Slot\",\r\n    resetSlots: \"Reset all Slots\",\r\n    slotIndex: \"Slot Index\",\r\n    priorityTitle: \"Slot priority\",\r\n    priorityDescription:\r\n      \"Slot priority is used to select which sensors that should be showed first\",\r\n  },\r\n\r\n  colorPicker: {\r\n    colorForExpressionLabel: \"Color for expression\",\r\n\r\n    so_style_meta_title_text: \"Title text color\",\r\n    so_style_meta_title_background: \"Title background color\",\r\n    so_style_meta_content_title: \"Content text color\",\r\n    so_style_meta_content_background: \"Content background color\",\r\n    so_style_meta_fill_level_color: \"Color of fill-level\",\r\n    so_style_meta_color_for_expression: \"Color for value\",\r\n    so_style_meta_action_for_content: \"Color for value\",\r\n\r\n    iconColor: \"Icon color\",\r\n    backgroundColor: \"Background color\",\r\n  },\r\n\r\n  camOnline: {\r\n    servers: \"Cam-Online Servers\",\r\n    couldNotFetchServers: \"Could not fetch CamOnline Servers\",\r\n    couldNotCreateServer: \"Something went wrong when creating CamOnline Server\",\r\n    couldNotDeleteServer: \"Something went wrong when deleting CamOnline Server\",\r\n\r\n    serverSelect: \"Choose Cam-Online Server\",\r\n    streamSelect: \"Choose a camera\",\r\n    createDialogTitle: \"Add a new Server\",\r\n    tabTitle: \"Cam-Online\",\r\n    fields: {\r\n      url: \"Url (Ex: https://portal.cam-online.se)\",\r\n      accessToken: \"AccessToken\",\r\n      isGlobal: \"Global Server\",\r\n    },\r\n  },\r\n  roles: {\r\n    toolbarTitle: \"Roles\",\r\n    permissionCounts: \"Permissions\",\r\n\r\n    missingRecommendedTitle:\r\n      \"Seems like you are missing some Recommended permissions do you want to add them?\",\r\n    missingRecommendedButton: \"Click Me!\",\r\n\r\n    pickPermissionsTitle: \"Pick Permissions for this Role\",\r\n    pickPermissionsDesc:\r\n      \"When picking Permissions you might encounter <b class='yellow--text text--darken-3'>Orange</b> Permissions. These Permissions are <b>Recommended</b> to make the base functionallity work. You can choose one of the default roles below to use them as a template.\",\r\n\r\n    layerTypes: {\r\n      0: \"Frontend Essentials\",\r\n      1: \"Frontend\",\r\n      2: \"Backend\",\r\n    },\r\n\r\n    fields: {\r\n      name: \"Role Name\",\r\n      permissionCount: \"Number of Permissions\",\r\n      isDefault: \"Is Default\",\r\n      isSuper: \"Is Admin\",\r\n    },\r\n  },\r\n\r\n  eventhub: {\r\n    waiting: \"Waiting for new events...\",\r\n\r\n    copySuccess: \"Payload is in the clipboard\",\r\n    copyError: \"Could not copy the Payload to clipboard\",\r\n\r\n    events: {\r\n      data: \"New Data\",\r\n      endpoint: \"Endpoint event\",\r\n    },\r\n  },\r\n\r\n  downlinks: {\r\n    editorTitle: \"Downlinks\",\r\n\r\n    validation: {\r\n      port: \"Port must be greater than 0\",\r\n    },\r\n  },\r\n\r\n  conditionTree: {\r\n    selectValueTypeTitle: \"Select value type\",\r\n    selectType: \"Select type\",\r\n    selectValue: \"Select value\",\r\n    chooseSensor: \"Select Sensor\",\r\n\r\n    textInputPlaceholder: \"Text value\",\r\n    numberInputPlaceholder: \"Number value\",\r\n\r\n    types: {\r\n      0: \"Sensor Value\",\r\n      1: \"Text\",\r\n      2: \"Number\",\r\n      3: \"Time\",\r\n      4: \"No Value\",\r\n    },\r\n\r\n    ops: {\r\n      greater: \"Greater than\",\r\n      less: \"Less than\",\r\n      equal: \"Equal to\",\r\n      greaterOrEqual: \"Greater or equal than\",\r\n      lessOrEqual: \"Less or equal than\",\r\n      notEqual: \"Not\",\r\n    },\r\n  },\r\n\r\n  accessToken: {\r\n    title: \"Access Tokens\",\r\n    newToken: \"Create a Token\",\r\n    cardNewTitle: \"New Token\",\r\n    cardTitle: \"Access Token\",\r\n    fields: {\r\n      id: \"Id\",\r\n      label: \"Title\",\r\n      token: \"Token\",\r\n      isCompany: \"Company Token\",\r\n    },\r\n  },\r\n\r\n  news: {\r\n    cannotGetNews: \"Could not fetch the news from Nodeledge AB.\",\r\n  },\r\n\r\n  gateway: {\r\n    toolbar: \"Gateways\",\r\n    toolbarTitle: \"Gateways\",\r\n    bestGw: \"Best gateway\",\r\n\r\n    pickLocationButton: \"Set latitude and longitude\",\r\n    fields: {\r\n      name: \"Name\",\r\n      macAddress: \"GatewayEUI\",\r\n      latitude: \"Latitude\",\r\n      longitude: \"Longitude\",\r\n      createdAt: \"Created\",\r\n      lastSeen: \"Last Seen\",\r\n    },\r\n  },\r\n\r\n  signalTest: {\r\n    toolbarTitle: \"Field tests\",\r\n    startTest: \"Start a new test\",\r\n    endTest: \"Complete test\",\r\n    peekTest: \"Look at test\",\r\n    createToolbar: \"Start a new test\",\r\n    rawData: \"Raw data\",\r\n    updateTimer: \"Update timer\",\r\n\r\n    fields: {\r\n      testId: \"Test ID\",\r\n      description: \"Description\",\r\n      startTest: \"Start\",\r\n      endTest: \"End\",\r\n      active: \"Active\",\r\n\r\n      avgSnr: \"Average SNR\",\r\n      avgRssi: \"Average RSSI\",\r\n\r\n      data: {\r\n        rssi: \"RSSI\",\r\n        snr: \"SNR\",\r\n        lat: \"LATITUDE\",\r\n        lng: \"LONGITUDE\",\r\n        createdAt: \"TIME\",\r\n        lastGateway: \"GATEWAY\",\r\n      },\r\n    },\r\n\r\n    tab: {\r\n      map: \"MAP\",\r\n      data: \"STATS\",\r\n    },\r\n  },\r\n\r\n  trend: {\r\n    res: {\r\n      week: \"Resolution: Week\",\r\n      day: \"Resolution: Day\",\r\n      hour: \"Resolution: Hour\",\r\n      five: \"Resolution: 5 Hours\",\r\n    },\r\n  },\r\n\r\n  notifications: {\r\n    clearNotifications: \"Mark all as read\",\r\n    noNotifications: \"You are all up to date.\",\r\n  },\r\n\r\n  landing: {\r\n    slogan: \"VISUALIZATION MADE EASY\",\r\n    or: \"OR\",\r\n    key: {\r\n      title: \"Key features\",\r\n      1: \"Nodemanagement\",\r\n      2: \"Visualization\",\r\n      3: \"Custom dashboards\",\r\n      4: \"Alarm management\",\r\n      5: \"Personnel management\",\r\n      6: \"Script engine\",\r\n\r\n      description: {\r\n        1: \"Manage sensors for handling data\",\r\n        2: \"Get your sensor data visualized the way you like to observe the data\",\r\n        3: \"Create your own dashboard specialized for YOUR area of ​​use\",\r\n        4: \"Alarm management for critical use cases\",\r\n        5: \"To manage the personnel of your company\",\r\n        6: \"Advanced users can use the script engine to manipulate data\",\r\n      },\r\n    },\r\n\r\n    usecases: {\r\n      title: \"Use cases\",\r\n      1: \"Environment sensors\",\r\n      2: \"Electricity sensors\",\r\n      3: \"Movement sensors\",\r\n      4: \"Temperature sensors\",\r\n\r\n      description: {\r\n        1: \"Great fit for smart farming solutions like Ljusgarda making use of the portal. The alarm feature of SENSORONLINE is the key to keeping your assets safe.\",\r\n        12: \"Read more about Ljusgarda\",\r\n        2: \"Measure current for streetlights in your city. With the script engine to make sense of the data gathered.\",\r\n        3: \"Measure how many people or cars are leaving or entering your facility.\",\r\n        4: \"Of course temperature measurements are a key part of our platform. Many companies use and keep track of their asset's temperatures.\",\r\n      },\r\n    },\r\n\r\n    help: {\r\n      title: \"Contact us\",\r\n\r\n      sensors: {\r\n        title: \"Need to get some new nodes?\",\r\n        description:\r\n          \"If you need any help to solve a problem, be it what sensor to use or how you could visualize your data in a better way. Don't be afraid to reach out to us so we can make your life easier. \\n You can check out our portfolio of \",\r\n        store: \"nodes that we sell here at Nodeledge AB.\",\r\n      },\r\n\r\n      api: {\r\n        title: \"API for your convenience\",\r\n        description:\r\n          \"You can of course get or insert data from your other applications to the platform, check out our API endpoints \",\r\n      },\r\n\r\n      contact: {\r\n        title: \"Are you interested? Contact us!\",\r\n        siencepark: \"Skövde Science Park\",\r\n        address: \"Kaplansgatan 16B\",\r\n        postal: \"521 32 Skövde\",\r\n        country: \"Sweden\",\r\n        phoneTitle: \"Phone\",\r\n        phonenumber: \"+46 (0) 500 600 022\",\r\n        phonenumber2: \"+46 (0) 733 165 100\",\r\n        emailTitle: \"Email\",\r\n        email: \"info@sensor-online.se\",\r\n      },\r\n    },\r\n  },\r\n\r\n  imageMap: {\r\n    chooseTag: \"Choose type of marker\",\r\n  },\r\n\r\n  log: {\r\n    type: {\r\n      sms: \"SMS\",\r\n      app: \"Application\",\r\n      warning: \"Warning\",\r\n      error: \"Error\",\r\n      userevent: \"User event\",\r\n      login: \"Login\",\r\n    },\r\n\r\n    logTable: {\r\n      title: \"Log\",\r\n    },\r\n\r\n    activeAlarms: {\r\n      title: \"Active alarms\",\r\n    },\r\n\r\n    activeUsersTable: {\r\n      title: \"Logged in users\",\r\n    },\r\n\r\n    fields: {\r\n      type: \"Type\",\r\n      user: \"User\",\r\n      message: \"Message\",\r\n      createdAt: \"Created\",\r\n\r\n      status: \"Status\",\r\n      lastAction: \"Event\",\r\n      lastSeen: \"Timestamp\",\r\n\r\n      alarm: {\r\n        name: \"Name\",\r\n        value: \"Value\",\r\n        messageSent: \"Sent notification\",\r\n      },\r\n    },\r\n  },\r\n  common: {\r\n    yes: \"Yes\",\r\n    no: \"No\",\r\n    on: \"On\",\r\n    off: \"Off\",\r\n    timestamp: \"Timestamp\",\r\n    lang: \"Language\",\r\n    error: \"An error occured, try again later\",\r\n    edit: \"Edit\",\r\n    delete: \"Delete\",\r\n    reset: \"Reset\",\r\n    purge: \"Erase\",\r\n    submit: \"Send\",\r\n    create: \"Create\",\r\n    update: \"Update\",\r\n    updateAll: \"Update all\",\r\n    get: \"Get\",\r\n    run: \"Run\",\r\n    address: \"Address\",\r\n    link: \"Link\",\r\n    height: \"Height\",\r\n    width: \"Width\",\r\n    new: \"New\",\r\n    value: \"Value\",\r\n    newValue: \"New Value\",\r\n    nothingToSee: \"Nothing to see here\",\r\n    next: \"Next\",\r\n    label: \"Label\",\r\n    editLabel: \"Edit Label\",\r\n    explanation: \"Explanation\",\r\n    clear: \"Clear\",\r\n    never: \"Never\",\r\n    upload: \"Upload\",\r\n    click: \"Click\",\r\n    required: \"Required\",\r\n    various: \"(Various)\",\r\n    system: \"System\",\r\n    download: \"Download\",\r\n    default: \"Default\",\r\n\r\n    previousStep: \"Back\",\r\n    hours: \"Hours\",\r\n    mintues: \"Minutes\",\r\n\r\n    search: \"Search\",\r\n    close: \"Close\",\r\n    cancel: \"Cancel\",\r\n    success: \"Successful!\",\r\n\r\n    login: \"Login\",\r\n    register: \"Enroll\",\r\n    email: \"Email\",\r\n    password: \"Password\",\r\n    confirmPassword: \"Confirm Password\",\r\n    newPassword: \"New Password\",\r\n    forgotPassword: \"Forgot Password\",\r\n\r\n    createdAt: \"Created\",\r\n    updatedAt: \"Updated\",\r\n\r\n    save: \"Save\",\r\n    show: \"Show\",\r\n    updated: \"Updated\",\r\n    created: \"Created\",\r\n    deleted: \"Erased\",\r\n    back: \"Return\",\r\n    send: \"Send\",\r\n    refresh: \"Refresh\",\r\n\r\n    preview: \"Preview\",\r\n    previewSpacing: \"Space for other modules\",\r\n\r\n    saveColor: \"Save color\",\r\n    alarmColorPrecedence:\r\n      \"Alarm colors will always take precedence over manually picked colors, force override in attributes if this is not what you want.\",\r\n\r\n    add: \"Add\",\r\n\r\n    settings: \"Setup\",\r\n\r\n    noTagOrAppChoosen: \"Node and/or application missing\",\r\n    noDataFound: \"No data found\",\r\n    darkTheme: \"Dark theme\",\r\n\r\n    active: \"Active\",\r\n    notActive: \"Inactive\",\r\n\r\n    sent: \"Sent\",\r\n    notSent: \"Unsent\",\r\n\r\n    loginOrRegister: \"Login or enroll\",\r\n\r\n    copy: \"Copy\",\r\n    verify: \"Are you sure you want to continue?\",\r\n    verifyDelete: \"Are you sure you want to remove this resource?\",\r\n\r\n    disagree: \"No\",\r\n    accept: \"Yes\",\r\n\r\n    or: \"Or\",\r\n\r\n    registerCompany: \"Create new company\",\r\n\r\n    dashboard: \"Go to Dashboard\",\r\n    switchCompany: \"Switch Company\",\r\n\r\n    inactiveSensors: \"Inactive Sensors\",\r\n    activeSensors: \"Active Sensors\",\r\n    sensorStatus: \"Node-status\",\r\n    sensorName: \"Node-name\",\r\n\r\n    updatesPending: \"Changes awaiting refresh\",\r\n    pickLocationConfirm: \"Do you want to save the position of this resource?\",\r\n\r\n    toFewBytes: \"To few bytes\",\r\n    byteInputRequired: \"You need to fill this field\",\r\n\r\n    getMorePages: \"Load more\",\r\n\r\n    size: \"Size\",\r\n    test: \"Test\",\r\n\r\n    select: \"Select\",\r\n    selected: \"Selected\",\r\n\r\n    searchType: {\r\n      TAG: \"Nodes\",\r\n      ALARM: \"Alarms\",\r\n      APPLICATION: \"Applications\",\r\n      DASHBOARD: \"Dashboards\",\r\n      GATEWAY: \"Gateways\",\r\n      SCRIPT: \"Scripts\",\r\n      ATTRIBUTE: \"Attributes\",\r\n    },\r\n\r\n    dateLabel: \"Date\",\r\n    timeLabel: \"Time\",\r\n\r\n    time: {\r\n      day: \"Day\",\r\n      hour: \"Hour\",\r\n      quarterHour: \"Quarter-hour\",\r\n      minute: \"Minute\",\r\n    },\r\n\r\n    days: {\r\n      monday: \"Monday\",\r\n      tuesday: \"Tuesday\",\r\n      wednesday: \"Wednesday\",\r\n      thursday: \"Thursday\",\r\n      friday: \"Friday\",\r\n      saturday: \"Saturday\",\r\n      sunday: \"Sunday\",\r\n    },\r\n\r\n    dateRange: {\r\n      0: \"Last hour\",\r\n      1: \"Last 5 hours\",\r\n      2: \"Last 24 hours\",\r\n      3: \"Last 7 days\",\r\n      4: \"Last 30 days\",\r\n    },\r\n\r\n    dateRangeShort: {\r\n      0: \"1H\",\r\n      1: \"5H\",\r\n      2: \"24H\",\r\n      3: \"7D\",\r\n      4: \"30D\",\r\n    },\r\n\r\n    staticinformation: {\r\n      datapoints: \"Datapoints last 24 hours\",\r\n      inactiveSensors: \"Inactive sensors\",\r\n      activeAlarms: \"Active alarms\",\r\n      datapointsLastWeek: \"Datapoints last week by day\",\r\n      weekday: \"Weekday\",\r\n    },\r\n\r\n    errors: {\r\n      getDecoders: \"Could not fetch decoders\",\r\n      backendConnection: \"No connection to backend could be established.\",\r\n    },\r\n\r\n    actions: {\r\n      createCategory: \"Create Category\",\r\n      editCategory: \"Edit Category\",\r\n      remove: \"Remove\",\r\n\r\n      createDashboard: \"Create Dashboard\",\r\n      copyDashboard: \"Copy Dashboard\",\r\n    },\r\n\r\n    iconSelector: {\r\n      selectIcon: \"Choose Icon\",\r\n      searchPlaceholder: \"Search for Icons\",\r\n    },\r\n  },\r\n\r\n  settings: {\r\n    title: \"Settings\",\r\n    userSettings: \"User Settings\",\r\n    themes: \"Themes\",\r\n\r\n    company: {\r\n      title: \"Company Settings\",\r\n      general: \"General settings\",\r\n      branding: \"White label\",\r\n      brandingTitle: \"White Label Title\",\r\n    },\r\n\r\n    data: {\r\n      toolbarTransparancy: \"Transparent toolbar\",\r\n      stickySideMenu: \"Sticky sidemenu\",\r\n    },\r\n\r\n    global: {\r\n      name: \"Global Settings\",\r\n      branding: \"Branding\",\r\n      powered_by: \"Powered By\",\r\n      SMS_PROVIDER: \"SMS Provider\",\r\n      SMS_IP1_FROM: \"IP1 Sender name\",\r\n      SMS_IP1_USERNAME: \"IP1 Username\",\r\n      SMS_IP1_PASSWORD: \"IP1 Password\",\r\n      SMS_TWILIO_ACCOUNTSID: \"Twilio AccountSID\",\r\n      SMS_TWILIO_ACCESSTOKEN: \"Twilio AccessToken\",\r\n      SMS_TWILIO_NUMBER: \"Twilio Number\",\r\n    },\r\n  },\r\n\r\n  companysetting: {\r\n    field: {\r\n      smsprovider: \"SMS Provider\",\r\n      alarmTitle: \"Alarm\",\r\n      inactivityAlarmContact: \"Mail for inactivity alarm\",\r\n      nodeTitle: \"Node Settings\",\r\n      nodeAlias: \"Node Alias\",\r\n      mapTitle: \"Map Settings\",\r\n      coordinates: \"Latitude & Longitude in DD-format\",\r\n      companyLocation: \"Default coordinates for the company\",\r\n\r\n      hint: {\r\n        inactivityAlarmContact:\r\n          \"Email address to recieve alarms when nodes have been inactive for at least 6 hours\",\r\n        nodeAlias: \"This assists in suggesting and creating the node name\",\r\n      },\r\n\r\n      ip1: {\r\n        username: \"IP1 Username\",\r\n        password: \"IP1 AccessToken / Password\",\r\n        from: \"Sender Name\",\r\n        hint: {\r\n          from: \"This is a name that will be used when SensorOnline is sending SMS\",\r\n          username:\r\n            \"If you want to find your username please visit the documentation: https://docs.sensor-online.se\",\r\n          password:\r\n            \"If you want to find your username please visit the documentation: https://docs.sensor-online.se\",\r\n        },\r\n      },\r\n\r\n      table: {\r\n        title: \"Table Settings\",\r\n        subtitle:\r\n          \"The Nodetable can be modified by adding/deleting columns and by dragging the column names into desired orders.\",\r\n        displayed: \"Displayed\",\r\n        create: {\r\n          title: \"New Table Column\",\r\n          columntitle: \"Optional: Custom Column Name\",\r\n          placeholder: \"Select Table Column\",\r\n        },\r\n      },\r\n\r\n      twilio: {\r\n        number: \"Twilio Number\",\r\n        accountSid: \"Twilio AccountSID\",\r\n        accessToken: \"Twilio AccessToken\",\r\n        hint: {\r\n          number:\r\n            \"A number you own on twilio that you are able to send messages with.\",\r\n          accountSid:\r\n            \"You can find more information where to find AccountSID in our documentation: https://docs.sensor-online.se\",\r\n          accessToken:\r\n            \"You can find more information where to find AccessToken in our documentation: https://docs.sensor-online.se\",\r\n        },\r\n      },\r\n    },\r\n  },\r\n\r\n  map: {\r\n    create: \"Create Map\",\r\n    setPosFormTitle: \"Choose sensor to change position\",\r\n    currentPosition: \"Current position\",\r\n    displayHistory: \"Historic positions\",\r\n    useNodePosition: \"Use the Nodes position\",\r\n    dateTimeSpanSelection: \"Date to show\",\r\n    dateFrom: \"Start date\",\r\n    dateTo: \"End date\",\r\n    clearPositions: \"Clear routes\",\r\n    stepPositions: \"Step through positions\",\r\n    select: {\r\n      node: \"Select Node\",\r\n      dashboard: \"Select Dashboard\",\r\n    },\r\n    iconStyling: \"Icon Styling\",\r\n    livemap: {\r\n      legend: {\r\n        title: \"Description\",\r\n        description: {\r\n          1: \"The color of the node indicates its RSSI and SNR status. Either of them can alter the color.\",\r\n          2: \"Press the node to get more detailed information.\",\r\n          3: \"Having yellow or red nodes isn't necessarily a problem but it means the battery will deplete faster\",\r\n        },\r\n      },\r\n    },\r\n    picklocation: {\r\n      legend: {\r\n        title: \"Description\",\r\n        description: {\r\n          1: \"The current position is marked on the map with a fixed marker.\",\r\n          2: \"Klick on the map to pick a position. You may drag around the placed marker\",\r\n        },\r\n      },\r\n    },\r\n    alltags: \"Positions\",\r\n  },\r\n\r\n  dashboard: {\r\n    name: \"Dashboards\",\r\n    selectDashboard: \"Dashboards\",\r\n    createTitleClean: \"Create new Dashboard\",\r\n    copyDeleteTitle: \"Delete or copy dashboard\",\r\n    createTitle: \"Or create a new dashboard\",\r\n    chooseTitle: \"Choose dashboard\",\r\n    changeTitle: \"Switch dashboard\",\r\n    navigationTitle: \"Navigation menu\",\r\n\r\n    fields: { name: \"Name\" },\r\n    nameReq: \"This field must be filled in\",\r\n\r\n    dashboardType: {\r\n      1: \"Standard Dashboard\",\r\n      2: \"Map Dashboard\",\r\n      3: \"Image-Map Dashboard\",\r\n    },\r\n\r\n    categories: {\r\n      create: \"Create Category\",\r\n      title: \"Title\",\r\n      icon: \"Icon\",\r\n    },\r\n\r\n    copy: {\r\n      tooltip: \"Kopiera widget\",\r\n    },\r\n\r\n    public: {\r\n      title: \"Public dashboards\",\r\n      create: \"Create a public dashboard\",\r\n      createNew: \"Create a new public dashboard\",\r\n      copiedSuccessful: \"Copied link to clipboard\",\r\n      copiedUnsuccessful: \"Could not copy link {link}\",\r\n      URL: \"Dashboard URL\",\r\n      yes: \"Yes\",\r\n      no: \"No\",\r\n      remove: \"Remove\",\r\n\r\n      fields: {\r\n        host: \"Host\",\r\n        expiresAt: \"Valid until\",\r\n        expired: \"Active\",\r\n        copyAction: \"Link\",\r\n        dashboardName: \"Dashboard\",\r\n      },\r\n    },\r\n  },\r\n\r\n  module: {\r\n    noData: \"Could not find any data\",\r\n    create: \"Create a new element\",\r\n    edit: \"Edit element\",\r\n    metas: \"Attributes\",\r\n\r\n    colorFormTitle: \"Color settings\",\r\n\r\n    chart: {\r\n      types: {\r\n        line: \"Line\",\r\n        area: \"Area\",\r\n        bar: \"Bar\",\r\n        scatter: \"Scatter\",\r\n        vertical: \"Vertical\",\r\n        trend: \"Trend Chart\",\r\n      },\r\n    },\r\n\r\n    mapMarkers: {\r\n      node: \"Pin with node info\",\r\n      sensor: \"Text label with latest sensor value\",\r\n    },\r\n\r\n    meta: {\r\n      label: \"Attributes\",\r\n      save: \"Save attributes\",\r\n      opacity: \"Opacity\",\r\n\r\n      paletteToModuleMode: \"Change Module Colors\",\r\n      paletteToCardMode: \"Change Card Colors\",\r\n\r\n      valueMatch: \"Attribute 1\",\r\n      value: \"Attribute 2\",\r\n      key: \"Sensor\",\r\n      icon: \"Icon\",\r\n\r\n      styles: {\r\n        text: {\r\n          textcolor: \"Text Color\",\r\n          background: \"Background - Content\",\r\n          titleBackground: \"Background - Title\",\r\n        },\r\n\r\n        single: {\r\n          textcolor: \"Text Color\",\r\n          background: \"Background - Content\",\r\n          titleBackground: \"Background - Title\",\r\n          sparkline: \"Sparkline\",\r\n          sparklineLabel: \"Sparkline label\",\r\n        },\r\n\r\n        color: {\r\n          cardBackground: \"Card Background\",\r\n          titleBackground: \"Title Background\",\r\n          titleText: \"Title Text\",\r\n          valueBackground: \"Value Background\",\r\n          valueText: \"Value Text\",\r\n        },\r\n      },\r\n\r\n      fontStyleTypes: {\r\n        title: \"Title\",\r\n        value: \"Value\",\r\n        content: \"Content\",\r\n      },\r\n\r\n      keys: {\r\n        so_own_axis: \"Own Y-Axel\",\r\n        value_match: \"Value name\",\r\n        icon: \"Suffix icon\",\r\n        sufix: \"Suffix\",\r\n        prefix: \"Prefix\",\r\n        deveui: \"Node\",\r\n        maxheight: \"Max height\",\r\n        scriptid: \"Script ID\",\r\n        target: \"Target\",\r\n        tagkey: \"Sensor\",\r\n        tagkey_x: \"Sensor X\",\r\n        tagkey_y: \"Sensor Y\",\r\n        tagkey_x_max: \"Sensor X Max\",\r\n        tagkey_y_max: \"Sensor X Min\",\r\n        forceColors: \"Force colors\",\r\n        decimal_rounding: \"Decimal rounding\",\r\n        dashboard_id: \"Dashboard ID\",\r\n        sync_y: \"Synchronize Y-axis\",\r\n        zoom_slider: \"Zoom Slider\",\r\n        digital: \"Squarewave\",\r\n        alarm_id: \"Alarmlimits\",\r\n        so_chart_type: \"Chart Type\",\r\n        so_ignore_body: \"Only title\",\r\n        min_value: \"Minimum Value\",\r\n        max_value: \"Maximum Value\",\r\n        axis_label: \"Axis Label\",\r\n        default_timespan: \"Default Timespan\",\r\n        font_size: \"Font Size\",\r\n        hide_trend_icon: \"Hide Trend Icon\",\r\n        horizontel_single_title: \"Horizontal title\",\r\n        so_hide_node_info: \"Hide Node Information\",\r\n        font_style_large: \"Font Style\",\r\n        so_single_sparkline: \"Sparkline\",\r\n        gauge_180: \"180° Gauge\",\r\n        button_label: \"Button Label\",\r\n        button_label_on: \"Label On-button\",\r\n        button_label_off: \"Label Off-button\",\r\n        hide_title: \"Hide Title\",\r\n        so_slots_count: \"Amount of Slots to display\",\r\n        font_style_title: \"Font Style for Title\",\r\n        font_style_content: \"Typsnitt for content\",\r\n      },\r\n\r\n      fields: {\r\n        value_match: \"Value\",\r\n        name: \"Name\",\r\n        icon: \"Suffix icon\",\r\n        sufix: \"Suffix\",\r\n        prefix: \"Prefix\",\r\n        deveui: \"Node\",\r\n        maxheight: \"Max height (e.g. 300 for 300px)\",\r\n        scriptid: \"Script ID\",\r\n        target: \"Target\",\r\n        tagkey: \"Sensor\",\r\n        tagkey_x: \"Sensor X\",\r\n        tagkey_y: \"Sensor Y\",\r\n        tagkey_x_max: \"Sensor X Max\",\r\n        tagkey_y_max: \"Sensor X Min\",\r\n        forceColors: \"Force colors\",\r\n        decimal_rounding: \"Digits\",\r\n        dashboard_id: \"Dashboard ID\",\r\n        sync_y: \"Synchronize Y-axis\",\r\n        zoom_slider: \"Show Zoom Slider\",\r\n        digital: \"Squarewave\",\r\n        alarm_id: \"Alarmlimits\",\r\n        chart_type: \"Chart Type\",\r\n        ignoreBody: \"Only title\",\r\n        min_value: \"Minimum Value\",\r\n        max_value: \"Maximum Value\",\r\n        axis_label: \"Axis Label\",\r\n        default_timespan: \"Default Timespan\",\r\n        so_font_style_title: \"Font Style for Title\",\r\n        so_font_style_content: \"Font Style for Content\",\r\n        font_style_large: {\r\n          type: \"Type\",\r\n          size: \"Size\",\r\n          weight: \"Weight\",\r\n        },\r\n      },\r\n\r\n      desc: {\r\n        forceColors:\r\n          \"Force the selected colors to take precedence over alarm colors\",\r\n      },\r\n    },\r\n\r\n    fields: {\r\n      title: \"Title\",\r\n      types: \"Type\",\r\n      content: \"Content\",\r\n      sm: \"Size on small screen\",\r\n      md: \"Size on mid-sized screen\",\r\n      min: \"Min value\",\r\n      max: \"Max value\",\r\n      image: \"Image\",\r\n      url: \"URL\",\r\n      sync_chart: `Synchronize all series on the X-axis\r\n(when you have widely differing data formats)`,\r\n    },\r\n\r\n    enum: {\r\n      size: { xs: \"XSMALL\", sm: \"SMALL\", md: \"MEDIUM\", lg: \"LARGE\" },\r\n      types: {\r\n        0: \"Chart\",\r\n        1: \"Gauge\",\r\n        2: \"Text\",\r\n        3: \"Image\",\r\n        4: \"Google Map\",\r\n        5: \"Company information\",\r\n        6: \"IFrame\",\r\n        7: \"SMHI\",\r\n        8: \"Latest value\",\r\n        9: \"Raw table\",\r\n        10: \"Chart\",\r\n        11: \"Image map\",\r\n        12: \"Function Button\",\r\n        13: \"Node-Info\",\r\n        14: \"Trend Chart\",\r\n        15: \"Node-Overview\",\r\n        16: \"360° Tilt Visualizer\",\r\n        17: \"Fill Level Indicator\",\r\n        18: \"Value Setting Sliders\",\r\n        19: \"Camera\",\r\n\r\n        desc: {\r\n          0: \"Displays a graph\",\r\n          1: \"Displays a gauge\",\r\n          2: \"Displays text\",\r\n          3: \"Displays a image\",\r\n          4: \"Displays a map\",\r\n          5: \"Displays a company information\",\r\n          6: \"Displays a IFrame\",\r\n          7: \"Displays SMHI weather data\",\r\n          8: \"Displays the latest value\",\r\n          9: \"Displays a raw-value table\",\r\n          10: \"Displays a graph\",\r\n          11: \"Displays a image-map\",\r\n          12: \"Displays function button\",\r\n          13: \"Displays node information\",\r\n          14: \"Displays consumption graph\",\r\n          15: \"Displays a node-overview\",\r\n          16: \"Displays 360°-tilt viewer\",\r\n          17: \"Displays fill-level\",\r\n          18: \"Displays target level meter\",\r\n          19: \"Displays camera stream from CamOnline\",\r\n        },\r\n      },\r\n    },\r\n\r\n    functionButtonTypes: {\r\n      script: \"Script Execution\",\r\n      input: \"Direct Value Input\",\r\n      navigation: \"Dashboard Link\",\r\n      downlink: \"Downlinks\",\r\n      onoffSwitch: \"ON/OFF switch\",\r\n    },\r\n  },\r\n\r\n  weather: {\r\n    title: \"SMHI Weather forecast\",\r\n    icon: \"Weather\",\r\n    temp: \"Temperature\",\r\n    windDir: \"Wind direction\",\r\n    windSpeed: \"Wind speed\",\r\n    humidity: \"Moisture\",\r\n    thunder: \"Thunder\",\r\n    date: \"Date\",\r\n    precipitation: \"Precipitation\",\r\n  },\r\n\r\n  contact: {\r\n    title: \"Contact us\",\r\n    descriptionTitle: \"Sensor-Online\",\r\n    description:\r\n      \"We know it can be hard to get started, Dont hesitate to contact us and we will help answer your questions\",\r\n    emailTitle: \"Email\",\r\n    email: \"info@sensor-online.se\",\r\n    phoneTitle: \"Phone\",\r\n    phoneOne: \"+46 (0) 500 6000 22\",\r\n    phoneTwo: \"+46 (0) 733 165 100\",\r\n    locationSiencepark: \"Skövde Science Park\",\r\n    locationStreet: \"Kaplansgatan 16B\",\r\n    locationPostalcode: \"521 32 Skövde\",\r\n    locationCountry: \"Sweden\",\r\n  },\r\n\r\n  contacts: {\r\n    title: \"Contacts\",\r\n    selectContact: \"Choose contact\",\r\n    selectContacts: \"Choose contacts\",\r\n\r\n    fields: {\r\n      name: \"Name\",\r\n      email: \"Email\",\r\n      message: \"Message\",\r\n    },\r\n\r\n    validation: {\r\n      emailFormatError: \"You must enter a valid email\",\r\n    },\r\n  },\r\n\r\n  company: {\r\n    name: \"Company name\",\r\n    orgNumber: \"Organization number\",\r\n    associatedCompanies: \"Associated companies\",\r\n    externalUsers: \"External users\",\r\n\r\n    companyInfo: \"Company information\",\r\n\r\n    addUser: \"Add new user\",\r\n\r\n    invite: \"Invite new user\",\r\n    inviteSent: \"Invitation sent\",\r\n    inviteFailed:\r\n      \"Could not find the user, Make sure the user is registrered before!\",\r\n\r\n    shareApp: \"Share Application\",\r\n\r\n    whiteLabelLogo: \"Company logo\",\r\n\r\n    fields: {\r\n      name: \"Company name\",\r\n      orgNumber: \"Organization number\",\r\n      postalAdress: \"Postal adress\",\r\n      deliveryAdress: \"Delivery adress\",\r\n      contactPhonenumber: \"Contact phone number\",\r\n      invoiceAdress: \"Email for contact\",\r\n      refrenceNmuber: \"Reference number\",\r\n      image: \"Company logotype\",\r\n    },\r\n\r\n    validation: {\r\n      nameRequired: \"You must enter a company name\",\r\n      nameMax: \"Company name must not be more than 255 characters\",\r\n\r\n      orgNumberRequired: \"You have to fill in you company VAT number\",\r\n      orgNumberFormatError: \"Wrong format VAT number\",\r\n\r\n      emailRequired: \"You have to fill in email address\",\r\n      emailFormatError: \"Add valid email adress\",\r\n\r\n      passwordMissmatch: \"Passwords do not match\",\r\n    },\r\n  },\r\n\r\n  report: {\r\n    title: \"Reports\",\r\n    refrenceDateDesc:\r\n      \"The reference day is the day referred to when sending a report, if the interval is monthly, select the day on which it is sent (1st of each month, for example). Or weekly (where day is Mon - Fri for when the report is to be sent out).\",\r\n    create: \"Create report subscription\",\r\n    update: \"Update report subscription\",\r\n    exportDownload: \"Report download\",\r\n    export: \"Export\",\r\n    downloadFailed: \"The report could not be fetched, try again later!\",\r\n    noData: \"There was no data found in the selected time span\",\r\n    fields: {\r\n      name: \"Report name\",\r\n      type: \"Type\",\r\n      tempo: \"Interval\",\r\n      createdAt: \"Created\",\r\n      updatedAt: \"Updated\",\r\n      id: \"ID\",\r\n      refrenceDate: \"Reference day\",\r\n      reportContacts: \"Report contacts\",\r\n      lastSent: \"Last Sent\",\r\n    },\r\n\r\n    tempo: {\r\n      desc: {\r\n        0: \"Send the daily report from now on at 03:00\",\r\n        1: \"Send the weekly report on mondays with the previous week's data.\",\r\n        2: \"Send the monthly report on the 1st day of the month for the previous month.\",\r\n      },\r\n\r\n      0: \"Daily\",\r\n      1: \"Weekly\",\r\n      2: \"Monthly\",\r\n    },\r\n\r\n    types: {\r\n      regular: \"Regular\",\r\n      trend: \"Trend\",\r\n    },\r\n  },\r\n\r\n  script: {\r\n    name: \"Scripts\",\r\n    create: \"Create a new Script\",\r\n    edit: \"Edit Script\",\r\n    tagsTitle: \"Node ID and Sensors\",\r\n    placeHolderContent: `   // Convert the temperature to fahrenheit \r\n    var tempToFahrenheit = Data.Read(\"INSERT-DEVEUI\", \"INSERT-KEY\") *  9/5 + 32;\r\n\r\n    // Write the new value to a new key\r\n    Data.Write(\"INSERT-DEVEUI\", \"INSERT-KEY\", tempToFahrenheit);`,\r\n    examples: \"Examples\",\r\n    helpTitle: \"Examples and help\",\r\n\r\n    type: {\r\n      0: \"Looping Script\",\r\n      1: \"Invoked Script\",\r\n      2: \"Triggered Script\",\r\n    },\r\n\r\n    fields: {\r\n      name: \"Name\",\r\n      type: \"Type\",\r\n      interval: \"Interval\",\r\n      lastRun: \"Last run time\",\r\n      enabled: \"Enabled\",\r\n      boundTag: \"Triggering tag\",\r\n    },\r\n\r\n    validation: {\r\n      intervalRequired: \"This field must be filled\",\r\n      intervalMinValue: \"The minimum value for the interval is 0\",\r\n    },\r\n  },\r\n\r\n  user: {\r\n    name: \"User\",\r\n\r\n    email: \"Email\",\r\n    role: \"Role\",\r\n\r\n    userInfo: \"Personal information\",\r\n\r\n    loginFailed: \"Login failed\",\r\n    signInFailed: \"Email/password do not match try again.\",\r\n    signInError: \"Unexpected error during login\",\r\n    loginSuccessful: \"Logged in\",\r\n    updateFailed: \"Update failed\",\r\n    edit: \"Edit\",\r\n    forgotPassword: \"Forgot password?\",\r\n\r\n    fields: {\r\n      firstName: \"First name\",\r\n      lastName: \"Last name\",\r\n      phoneNumber: \"Phone number\",\r\n      email: \"Email\",\r\n      password: \"Password\",\r\n      newPassword: \"New Password\",\r\n      passwordConfirm: \"Confirm Password\",\r\n\r\n      phoneNumerHint:\r\n        \"Hint: Use international formatting. Ex for a Swedish number (46703292943)\",\r\n    },\r\n  },\r\n\r\n  application: {\r\n    name: \"Application | Applications\",\r\n    noCompanyError: \"You must register a company first to create applications\",\r\n    applicationCreated: \"Your new application has been created\",\r\n    choose: \"Choose a Application\",\r\n    create: \"Create a new Application\",\r\n    validation: {\r\n      nameRequired: \"Your application must have a name\",\r\n      nameMax: \"Name must be fewer than 255 characters\",\r\n    },\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Name\",\r\n      createdAt: \"Created\",\r\n      owner: \"Owner\",\r\n    },\r\n  },\r\n\r\n  alarm: {\r\n    name: \"Alarm\",\r\n    create: \"Add new alarm rule\",\r\n    affirmation: \"Confirm\",\r\n    history: \"Alarm history\",\r\n    acknowledgeButton: \"Click to Acknowledge\",\r\n    activeAlarm: \"Alarm warnings\",\r\n\r\n    test: {\r\n      title: \"Test of settings\",\r\n      settings: \"Test email and sms settings\",\r\n      email: \"Email address\",\r\n      phonenumber: \"Phonenumber (46....)\",\r\n    },\r\n\r\n    priority: {\r\n      desc: {\r\n        a: \"High\",\r\n        b: \"Medium\",\r\n        c: \"Low\",\r\n      },\r\n    },\r\n\r\n    alertType: {\r\n      desc: {\r\n        a: \"Send Email + SMS + Log\",\r\n        b: \"Send SMS + Log\",\r\n        c: \"Send Email + Log\",\r\n        d: \"Send to Log only\",\r\n      },\r\n    },\r\n\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Name\",\r\n      alertType: \"Alarm notification method\",\r\n      priority: \"Priority\",\r\n      alarmDelay: \"Delay time before alarm is raised\",\r\n      autoAcknowledge: \"Auto-Acknowledge\",\r\n      active: \"On/Off\",\r\n      tagDataKey: \"Sensor\",\r\n      tag: \"Node\",\r\n      message: \"Message Content\",\r\n      lH: \"HT\",\r\n      lL: \"LT\",\r\n      limitHigh: \"High Threshold\",\r\n      limitLow: \"Low Threshold\",\r\n      contactType: \"Contact type\",\r\n      alarmContacts: \"Alarm contacts\",\r\n      activeDays: \"Days activated\",\r\n      limit: \"Low and high alarm thresholds\",\r\n      activeAlarms: \"Actions\",\r\n      messageSent: \"Message Sent\",\r\n      reset: \"Reset\",\r\n      triggered: \"Triggered\",\r\n      user: \"Reset By\",\r\n      value: \"Triggering Value\",\r\n      signalType: \"Signal Type\",\r\n      digitalTrigger: \"Trigger On\",\r\n      triggerHigh: \"Signal High\",\r\n      triggerLow: \"Signal Low\",\r\n      advanced: \"Advanced\",\r\n      alarmComment: \"Acknowledge Reason\",\r\n      logicalOperator: \"Operator\",\r\n    },\r\n\r\n    validation: {\r\n      nameRequired: \"This field must be filled in.\",\r\n      max: \"Cannot exceed {count} characters.\",\r\n      min: \"Must be at least {count} characters long.\",\r\n      noEmptySpaces: \"Cannot be empty or just spaces.\",\r\n      noWhitespaceOnly: \"Cannot consist of only whitespace.\",\r\n      noExcessiveRepetition: \"Please avoid excessive repetition of characters.\",\r\n      containsLetter: \"Must contain at least one letter.\",\r\n      notOnlySymbols: \"Cannot consist of only symbols.\",\r\n    },\r\n\r\n    tabs: {\r\n      triggered: \"Triggered Alarms\",\r\n      allAlarms: \"All Alarms\",\r\n      history: \"Alarm History\",\r\n    },\r\n  },\r\n\r\n  batteryStatus: {\r\n    levels: \"Battery level\",\r\n    value: \"Value\",\r\n    lastSeen: \"The latest value\",\r\n    label: \"Battery voltage\",\r\n  },\r\n\r\n  tagdata: {\r\n    name: \"Data\",\r\n    amount: \"Number of data points collected:\",\r\n    notation: \"{0}\",\r\n    latestactivity: \"Latest activity\",\r\n    latestvalue: \"Latest value\",\r\n    defaultKey: \"Standard key\",\r\n\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Name\",\r\n      key: \"Sensor\",\r\n      value: \"Value\",\r\n      createdAt: \"Created\",\r\n      label: \"Label\",\r\n      publishKey: \"Publish Sensor\",\r\n    },\r\n  },\r\n\r\n  tag: {\r\n    sensor: {\r\n      title: \"Sensors\",\r\n      add: \"Add new sensor\",\r\n    },\r\n    choose: \"Choose Node\",\r\n    search: \"Search Node\",\r\n    searchDecoder: \"Search Decoder\",\r\n    searchApp: \"Search Application\",\r\n    chooseDecoder: \"Choose a decoder\",\r\n    decoder: \"Decoder\",\r\n    name: \"Nodes\",\r\n    amount: \"Number of nodes:\",\r\n    notation: \"{0}\",\r\n    details: \"Sensor details\",\r\n    removeImage: \"Delete image\",\r\n    chooseKey: \"Choose key\",\r\n    saveKeyAsDefault: \"Default\",\r\n    newKey: \"New Sensor\",\r\n    filter: \"Filter Nodes\",\r\n    generateId: \"Generate ID\",\r\n\r\n    uploadExplanation: \"Drag your Csv file or click here to upload Nodes\",\r\n    uploadExplanationHint: \"You can download a example csv file here: \",\r\n    exampleLink: \"CSV Example\",\r\n\r\n    errorTogglePublishKey:\r\n      \"Something went wrong when trying to toggle publishing\",\r\n\r\n    publishing: {\r\n      title: \"Publishing\",\r\n      reset: {\r\n        0: \"Reset MQTT Publishing\",\r\n        1: \"Reset Sparkplug Publishing\",\r\n        2: \"Reset Modbus Publishing\",\r\n        3: \"Reset OPC-UA Publishing\",\r\n      },\r\n\r\n      mqtt: \"MQTT\",\r\n      modbus: \"Modbus\",\r\n      sparkplug: \"Sparkplug\",\r\n      opc: \"OPC-UA\",\r\n    },\r\n\r\n    tabs: {\r\n      settings: \"Settings\",\r\n      sensors: \"Sensors\",\r\n      data: \"Data\",\r\n    },\r\n\r\n    log: {\r\n      title: \"Log\",\r\n      events: \"Event\",\r\n      picker: \"Select Option\",\r\n      journal: {\r\n        title: \"Journal\",\r\n        entryTitle: \"Add Comment or Image\",\r\n        commentPlaceholder: \"Write a comment ...\",\r\n        chooseFile: \"Choose File\",\r\n        journalEntry: \"Add Entry\",\r\n        journalEntries: \"Journal Entries\",\r\n        comment: \"Comment\",\r\n        file: \"File\",\r\n        files: \"Files\",\r\n        alert: \"This journal has no attached files.\",\r\n        updateEntry: \"Update Entry\",\r\n        updatedAt: \"Updated\",\r\n        createdAt: \"Created\",\r\n        error: {\r\n          general: \"An unexpected error occurred.\",\r\n          uploadFileFailed: \"Failed to upload file.\",\r\n          addJournalFailed: \"Failed to add journal entry.\",\r\n          noChanges: \"No changes to update\",\r\n          deleteJournalFail: \"Failed to delete entry\",\r\n        },\r\n        success: {\r\n          journalAdded: \"Journal entry added successfully.\",\r\n          journalUpdated: \"Journal entry updated\",\r\n          journalDeleted: \"Journal deleted successfully\",\r\n        },\r\n      },\r\n    },\r\n\r\n    createSteps: {\r\n      step1: \"Type of Node\",\r\n      step2: \"Choose Application\",\r\n      step3: \"Choose Decoder\",\r\n      step4: \"Set Keys\",\r\n      step5: \"MQTT\",\r\n      step6: \"Attributes\",\r\n      finish: \"Done\",\r\n\r\n      spotIo4: \"SpotIO selection\",\r\n      modbus4: \"Modbus\",\r\n      opc: \"OPC-UA\",\r\n    },\r\n\r\n    picker: {\r\n      step1: \"Select a Node\",\r\n      step2: \"Select a Sensor\",\r\n    },\r\n\r\n    tagPool: {\r\n      tagPool: \"Nodes pool\",\r\n      deveui: \"Deveui\",\r\n      createdAt: \"Created\",\r\n      hide: \"Hide from list\",\r\n      show: \"Show in default list\",\r\n      hiddenTags: \"Hidden nodes\",\r\n      take: \"Add sensor\",\r\n    },\r\n\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Name\",\r\n      deveui: \"DevEUI\",\r\n      appKey: \"AppKey\",\r\n      appEui: \"AppEUI\",\r\n      applicationId: \"Application\",\r\n      profile: \"Profile\",\r\n      lat: \"Latitude\",\r\n      long: \"Longitude\",\r\n      latAndLng: \"Latitude and Longitude\",\r\n      image: \"Image of sensor installation\",\r\n      battery: \"Battery Level\",\r\n      activeAlarm: \"Alarm\",\r\n      activeData: \"Active\",\r\n      latestValue: \"Latest Value\",\r\n      location: \"Location\",\r\n      dataPoints: \"Datapoints/24h\",\r\n      type: \"Type\",\r\n      nodeType: \"Node Type\",\r\n      attributes: \"Attributes\",\r\n    },\r\n\r\n    nodeTypes: {\r\n      0: \"LORA\",\r\n      1: \"API\",\r\n      2: \"MQTT\",\r\n      3: \"NR\",\r\n      4: \"SPARKPLUG\",\r\n      5: \"SpotIO\",\r\n      6: \"Modbus\",\r\n      7: \"Opc-UA\",\r\n    },\r\n\r\n    attributes: {\r\n      name: \"Name\",\r\n      value: \"Value\",\r\n      title: \"Attributes\",\r\n      titleSingular: \"Attribute\",\r\n    },\r\n  },\r\n\r\n  license: {\r\n    usedGateways: \"Total used Gateways in License\",\r\n    usedNodes: \"Total used Nodes in License\",\r\n    editMaxTitle: \"Edit limits\",\r\n    companySettings: \"Account settings\",\r\n    licenseManagement: \"License management\",\r\n    publicKey: \"Public key\",\r\n    upload: \"Upload a new License file\",\r\n    uploadHint: \"Drag and drop you'r new License-file\",\r\n    license: \"License\",\r\n    licensee: \"License Holder\",\r\n    coveredFeatures: \"Covered Features\",\r\n    fields: {\r\n      email: \"Email\",\r\n      name: \"Name\",\r\n      maxCompanies: \"Max Companies\",\r\n      maxGateways: \"Max Gateways\",\r\n      maxNodes: \"Max Nodes\",\r\n      decoderIncluded: \"Decoder Included\",\r\n      whiteLabel: \"White-Label\",\r\n\r\n      licenseId: \"License ID\",\r\n      status: \"Status\",\r\n      publicKey: \"Public Key\",\r\n      expires: \"Expires\",\r\n    },\r\n\r\n    limitations: {\r\n      fields: {\r\n        companyId: \"Account ID\",\r\n        companyName: \"Account\",\r\n        maxGateways: \"Max Gateways (0 = Unlimited)\",\r\n        maxNodes: \"Max Nodes (0 = Unlimited)\",\r\n        updatedAt: \"Updated\",\r\n\r\n        currentNodes: \"Current Noder\",\r\n        currentGateways: \"Current Gateways\",\r\n      },\r\n\r\n      errors: {\r\n        gateway:\r\n          \"License does't allow for more Gateways, contact your distributer to extend\",\r\n        tag: \"License does't allow for more Nodes, contact your distributer to extend\",\r\n        company:\r\n          \"License does't allow for more Accounts, contact your distributer to extend\",\r\n        expiresIn:\r\n          \"License expires in {0} days, contact your distributer to extend\",\r\n      },\r\n    },\r\n\r\n    errors: {\r\n      couldNotSetLimits: \"Could not set the limits for the selected Account\",\r\n    },\r\n\r\n    tos: {\r\n      title: \"License Agreement\",\r\n      description: \"Read and accept the license agreement to proceed to login\",\r\n      accept: \"Accept\",\r\n      checkbox: \"Accept License Agreement\",\r\n    },\r\n  },\r\n\r\n  validation: {\r\n    required: \"{0} must be filled in\",\r\n    max: \"{0} must be {1} characters\",\r\n    requiredSingle: \"This field must be filled in\",\r\n    toLong: \"This field contains too many characters\",\r\n    contryCodeError:\r\n      \"Don't forget that the phone number must have country code (e.g. 4607xxxxxxxx)\",\r\n    passwordMissmatch: \"Passwords do not match\",\r\n    deveuiConflict: \"Node with this DevEUI already exists on this server\",\r\n    passwordLength: \"Password is required to be atleast 6 characters long\",\r\n    passwordUpperAndLower:\r\n      \"Password must contain atleast one big and one small letter\",\r\n  },\r\n\r\n  warning: {\r\n    amount: \"Active Alarms:\",\r\n    notation: \"{0}\",\r\n  },\r\n\r\n  mqtt: {\r\n    settingsTabTitle: \"MQTT Brokers\",\r\n    brokerListTitle: \"MQTT Brokers\",\r\n    createTitle: \"Add a new MQTT Broker\",\r\n    updateTitle: \"Update MQTT Broker\",\r\n    selectBroker: \"Select a MQTT Broker\",\r\n    testBroker: \"Test Configuration\",\r\n    topicCreateTitle: \"MQTT Topics\",\r\n    topicDescription:\r\n      \"The topics selected will be subscribed to through the configured broker. The topics should be specific to the device, if wildcard is used (+) it should be a single level wildcard. Multilevel wildcards (#) will be transformed into single level wildcards.\",\r\n    topicAdd: \"Add a new Topic\",\r\n    topicAlreadyExists: \"The selected topic already exists\",\r\n    createTopicTitle: \"Create a new Subscription\",\r\n\r\n    sparkplug: {\r\n      use: \"Use Sparkplug Publishing\",\r\n      meta: {\r\n        hint: {\r\n          edgeId: \"Sparkplug edge id\",\r\n          groupId: \"Sparkplug group id\",\r\n        },\r\n\r\n        edgeId: \"Edge ID\",\r\n        groupId: \"Grupp ID\",\r\n        useNameForPublish: \"Use name instead of NodeID\",\r\n      },\r\n    },\r\n\r\n    meta: {\r\n      fields: {\r\n        topic: \"Topic\",\r\n        publishTopic: \"Publish Topic (Optional)\",\r\n        publishTopicHint: \"Cannot be the same as any of the Subscribe Topics\",\r\n        parsingTopic: \"Decoder Type\",\r\n        payloadTest: \"Payload to test\",\r\n        testTopic: \"Expected topic in Decode function\",\r\n      },\r\n    },\r\n\r\n    sslmodes: {\r\n      0: \"None\",\r\n      1: \"CA Signed server certificate\",\r\n      2: \"Self-signed server certificate\",\r\n    },\r\n\r\n    versions: {\r\n      0: \"3.1.1\",\r\n      1: \"3.1.0\",\r\n    },\r\n\r\n    validation: {\r\n      notfound: \"Could not find Broker\",\r\n    },\r\n\r\n    fields: {\r\n      status: \"Status\",\r\n      hostname: \"Hostname\",\r\n      port: \"Port\",\r\n      version: \"MQTT Version\",\r\n      sslmode: \"SSL/TLS Mode\",\r\n      CACertificate: \"CA Certificate\",\r\n      ClientCertificate: \"Client Certificate\",\r\n      ClientKey: \"Client Key\",\r\n      KeyPassPhrase: \"Key Passphrase (Optional)\",\r\n      useAuth: \"Use Authentication\",\r\n      username: \"Username\",\r\n      password: \"Password\",\r\n      isGlobal: \"Is Global Broker\",\r\n\r\n      metrics: {\r\n        messages: {\r\n          total: \"Total Messages\",\r\n          week: \"Messages this Week\",\r\n          day: \"Messages this Day\",\r\n        },\r\n\r\n        publish: {\r\n          total: \"Total Published\",\r\n          week: \"Week Published\",\r\n          day: \"Day Published\",\r\n        },\r\n      },\r\n    },\r\n  },\r\n};\r\n","export default {\r\n  routes: {\r\n    home: \"Hem\",\r\n    login: \"Login\",\r\n    register: \"Registrera\",\r\n    registerCompany: \"Nytt Konto\",\r\n    logout: \"Logout\",\r\n\r\n    company: \"Företag\",\r\n    dashboard: \"Dashboard\",\r\n    application: \"Applikationer\",\r\n    alarm: \"Larmhantering\",\r\n\r\n    user: \"Användare\",\r\n    tagdata: \"Data\",\r\n    tag: \"Noder\",\r\n    script: \"Script-motor\",\r\n    report: \"Rapport\",\r\n    contact: \"Kontakt\",\r\n    apiRef: \"API-Dokumentation\",\r\n    shop: \"Köp noder\",\r\n    manual: \"Manual\",\r\n    settings: \"Inställningar\",\r\n    signalTest: \"Fälttestare\",\r\n    gateway: \"Gateways\",\r\n    news: \"Nyheter\",\r\n    roles: \"Roller\",\r\n\r\n    userEdit: \"Konto\",\r\n\r\n    superadmin: \"Admin\",\r\n  },\r\n\r\n  integrations: {\r\n    title: \"Integrationer\",\r\n    chargeAmps: {\r\n      fields: {\r\n        apiKey: \"API Key\",\r\n        organizationId: \"Orginisations ID\",\r\n        useRfid: \"Använd RFID som identifierare\",\r\n      },\r\n\r\n      organizationIdDescription: \"Orginsiations ID för ChargeAmps\",\r\n      useRfidDescription:\r\n        \"Använd RFID som identifierare för att göra det möjligt att katigoriesera datan per användare\",\r\n      apiKeyDescription:\r\n        \"API Key för ChargeAmps som distributeras av ChargeAmps support\",\r\n    },\r\n  },\r\n\r\n  actions: {\r\n    title: \"Actions\",\r\n    toolbar: \"Actions\",\r\n    create: \"Skapa en Action\",\r\n    edit: \"Redigera Action\",\r\n    delete: \"Tabort Action\",\r\n    deleteError: \"Kunde inte tabort Action\",\r\n    deleteSuccess: \"Borttagen\",\r\n    notify: \"Notifierings-metoder\",\r\n    noCooldownActive: \"Inga aktiva cooldowns\",\r\n    onCooldown: \"Aktiv Cooldown\",\r\n    noCooldownDescription: \"Det är inga aktiva cooldowns att agera på\",\r\n    resetCooldownActionDescription:\r\n      \"Återställ cooldown för denna action, detta gör det möjligt att trigga actionen igen\",\r\n    resetCooldown: \"Återställ cooldown\",\r\n    resetAllCooldown: \"Återställ alla cooldowns\",\r\n\r\n    config: {\r\n      emailTitleConfigDescription:\r\n        \"Email titel template gör det möjligt att anpassa titeln på e-posten (Exempel för att inkludera nodnamn i titeln: 'Noder {node_name} är offline')\",\r\n      availableTitleVariables: \"Tillgängliga variabler\",\r\n      variables: \"{node_name}, {node_deveui} och {node_name_and_deveui}\",\r\n    },\r\n\r\n    fields: {\r\n      title: \"Titel\",\r\n      description: \"Beskrivning\",\r\n      eventType: \"Event typ\",\r\n      actionTypesString: \"Action typ\",\r\n      sms: \"Sms\",\r\n      email: \"Email\",\r\n      cooldownOnAction: \"Cooldown på action\",\r\n      cooldownMinutes: \"Cooldown i minutes\",\r\n      cooldownUntil: \"Cooldown till\",\r\n      manualCooldown: \"Manuell bekräftelse\",\r\n      duration: \"Varaktighet\",\r\n      emailTitleTemplate: \"Email titel template\",\r\n      isOnCooldown: \"Cooldown\",\r\n      identifier: \"Identifierare\",\r\n    },\r\n\r\n    hints: {\r\n      duration: \"Varaktighet i minuter för det valda eventet\",\r\n      manualCooldown: \"Manuell bekräftelse krävs för att trigga ett nytt event\",\r\n    },\r\n\r\n    details: {\r\n      edit: \"Redigera Action\",\r\n      cooldowns: \"Actions på cooldown\",\r\n      history: \"Action historik\",\r\n    },\r\n\r\n    resources: {\r\n      title: \"Resurser\",\r\n      create: \"Skapa en resurs\",\r\n      edit: \"Redigera resurs\",\r\n      delete: \"Tabort resurs\",\r\n      deleteError: \"Kunde inte tabort resurs\",\r\n      deleteSuccess: \"Borttagen\",\r\n      selectResource: \"Välj resurs\",\r\n      selectAll: \"Välj alla\",\r\n\r\n      fields: {},\r\n    },\r\n\r\n    actions: {\r\n      title: \"Actions\",\r\n      description: \"Actions är vad som händer när ett event är triggat\",\r\n      sms: \"SMS\",\r\n      email: \"Email\",\r\n      addToAction: \"Lägg till i Action\",\r\n    },\r\n\r\n    errors: {\r\n      noActionIdFound: \"Ingen Action med det ID som angavs hittades\",\r\n    },\r\n\r\n    eventTypes: {\r\n      0: \"Data Ingest Error\",\r\n      1: \"Node Offline\",\r\n      2: \"Lägg till Node till Action\",\r\n    },\r\n  },\r\n\r\n  opc: {\r\n    title: \"OPC-UA\",\r\n\r\n    server: {\r\n      autocomplete: \"Välj server\",\r\n      title: \"OPC-UA Servrar\",\r\n      fields: {\r\n        opcServerId: \"OPC Server ID\",\r\n        serverUrl: \"Server URL\",\r\n        useUsernameAndPassword: \"Använd Användarnamn och Lösenord\",\r\n        updatedAt: \"Uppdaterad\",\r\n        createdAt: \"Skapad\",\r\n      },\r\n    },\r\n\r\n    node: {\r\n      fields: {\r\n        serverId: \"Server\",\r\n        key: \"Nyckel\",\r\n        nodeId: \"NodeID\",\r\n      },\r\n\r\n      hints: {\r\n        nodeId: \"Exempel, ns=1;i=1001\",\r\n      },\r\n    },\r\n  },\r\n\r\n  modbus: {\r\n    title: \"Modbus\",\r\n\r\n    master: {\r\n      title: \"Modbus Masters\",\r\n      create: \"Lägg till en ny Master\",\r\n      tryReconnect: \"Försök att återansluta\",\r\n\r\n      fields: {\r\n        modbusMasterId: \"Master ID\",\r\n        name: \"Benämning\",\r\n        host: \"IP\",\r\n        port: \"Port\",\r\n        status: \"Status\",\r\n      },\r\n    },\r\n\r\n    register: {\r\n      title: \"Modbus Register\",\r\n      create: \"Lägg till ett nytt register\",\r\n      poll: \"Poll registers\",\r\n      polledValue: \"Hämtat värde\",\r\n\r\n      fields: {\r\n        modbusRegisterId: \"Register ID\",\r\n        modbusMasterId: \"Master ID\",\r\n        master: \"Master\",\r\n        slave: \"Slav ID\",\r\n        nodeId: \"Nod ID\",\r\n        key: \"Sensor nyckel\",\r\n        register: \"Register\",\r\n        pollInterval: \"Poll interval (Sekunder)\",\r\n        registerType: \"Register-typ\",\r\n        valueType: \"Värde-typ\",\r\n        action: \"Pull/Push\",\r\n        byteOrder: \"Byte-order\",\r\n        createdAt: \"Skapad\",\r\n        updatedAt: \"Uppdaterad\",\r\n      },\r\n\r\n      valueTypes: {\r\n        0: \"FLOAT\",\r\n        1: \"DOUBLE\",\r\n        2: \"INT16\",\r\n        3: \"UINT16\",\r\n        4: \"INT32\",\r\n        5: \"UINT32\",\r\n        6: \"BOOL\",\r\n      },\r\n\r\n      types: {\r\n        0: \"Holding Register\",\r\n        1: \"Coil\",\r\n        2: \"Analog Input\",\r\n        3: \"Digital Input\",\r\n      },\r\n\r\n      byteOrders: {\r\n        0: \"ABCD\",\r\n        1: \"DCBA (Default)\",\r\n        2: \"BADC\",\r\n        3: \"CDAB\",\r\n      },\r\n    },\r\n\r\n    validation: {\r\n      required: \"Detta fält krävs\",\r\n      slaveMinVal: \"SlavID måste vara större än 1\",\r\n      slaveMaxVal: \"SlavID måste vara mindre än 255\",\r\n      registerMaxVal: \"Register måste vara mindre än 67000\",\r\n      registerMinVal: \"Register måste vara större eller lika med 0\",\r\n      pollIntervalMin: \"Poll Interval kan inte vara mindre än 60 sekunder\",\r\n      registerAllreadyReadFrom:\r\n        \"Detta register används redan av någon av dina andra register\",\r\n    },\r\n  },\r\n\r\n  spotIo: {\r\n    fields: {\r\n      key: \"SpotIO Nykel\",\r\n    },\r\n    validation: {\r\n      spotIoKeyRequired: \"'SpotIO Nykel' måste vara ifyld\",\r\n      spotIoKeyUnique: \"'SpotIO Nykel' måste vara unik för Noden\",\r\n    },\r\n  },\r\n\r\n  colorPicker: {\r\n    colorForExpressionLabel: \"Färg för värde\",\r\n\r\n    so_style_meta_title_text: \"Titel textfärg\",\r\n    so_style_meta_title_background: \"Titel bakgrundsfärg\",\r\n    so_style_meta_content_title: \"Innehåll textfärg\",\r\n    so_style_meta_content_background: \"Innehåll bakgrundsfärg\",\r\n    so_style_meta_fill_level_color: \"Fyllnads-färg\",\r\n    so_style_meta_color_for_expression: \"Färg för värde\",\r\n    so_style_meta_action_for_content: \"Färg för värde\",\r\n\r\n    iconColor: \"Ikon färg\",\r\n    backgroundColor: \"Bakgrundsfärg\",\r\n  },\r\n\r\n  widget: {\r\n    weather: {\r\n      pickTitle: \"Position för SMHI väder-data\",\r\n    },\r\n\r\n    form: {\r\n      step1: \"Widget\",\r\n      step2: \"Slots / Keys\",\r\n      step3: \"Attributes\",\r\n    },\r\n  },\r\n\r\n  slot: {\r\n    addHint: \"Lägg till en Nod Slot\",\r\n    resetSlots: \"Återställ alla slots\",\r\n    slotIndex: \"Slot Index\",\r\n    priorityTitle: \"Slot prioritet\",\r\n    priorityDescription:\r\n      \"Slot prioriteten används för att välja vilka Sensorer som ska visas först\",\r\n  },\r\n\r\n  templateDashboard: {\r\n    title: \"Dashboard Mallar\",\r\n    deleteError: \"Kunde inte tabort template\",\r\n    deleteSuccess: \"Borttagen\",\r\n\r\n    saveDashboard: \"Spara\",\r\n\r\n    defaults: {\r\n      name: \"Ny Mall Dashboard\",\r\n    },\r\n\r\n    fields: {\r\n      name: \"Namn\",\r\n      dashboardType: \"Typ\",\r\n      createdAt: \"Skapad\",\r\n      updatedAt: \"Uppdaterad\",\r\n    },\r\n\r\n    addSlot: \"Lägg till Nod-Slot\",\r\n    numberOfAvailableSlots: \"Antal Nod-Slots: {num}\",\r\n\r\n    dashboardTypeTitle: \"Dashboard typ\",\r\n    dashboardType: {\r\n      0: \"Full Dashboard\",\r\n      1: \"Sido / Kart Dashboard\",\r\n      2: \"Nod Dashboard\",\r\n    },\r\n\r\n    slots: {},\r\n  },\r\n\r\n  camOnline: {\r\n    servers: \"Cam-Online Servers\",\r\n    couldNotFetchServers: \"Kunde inte hämta Cam-Online Servrar\",\r\n    couldNotCreateServer: \"Något gick fel när Cam-Online Server lades till\",\r\n    couldNotDeleteServer: \"Något gick fel vid borttagande av Cam-Online Server\",\r\n    serverSelect: \"Välj Cam-Online Server\",\r\n    streamSelect: \"Välj en kamera\",\r\n    createDialogTitle: \"Lägg till en ny server\",\r\n    tabTitle: \"Cam-Online\",\r\n    fields: {\r\n      url: \"Url (Ex: https://portal.cam-online.se)\",\r\n      accessToken: \"AccessToken\",\r\n      isGlobal: \"Global Server\",\r\n    },\r\n  },\r\n\r\n  roles: {\r\n    toolbarTitle: \"Roller\",\r\n    permissionCounts: \"Rättigheter\",\r\n\r\n    missingRecommendedTitle: \"Alla rekommenderade rättigheter ej valda.\",\r\n    missingRecommendedButton: \"Klicka här för att lägga till saknade\",\r\n\r\n    pickPermissionsTitle: \"Rättighetsväljare\",\r\n    pickPermissionsDesc:\r\n      \"Du kan välja en basroll att basera den nya rollen på nedan eller börja helt från noll. Om du väljer rättigheter som behöver andra kommer du rekommenderas dessa. De visas i listan med <b class='yellow--text text--darken-3'>Orange</b> färg.\",\r\n\r\n    fields: {\r\n      name: \"Namn\",\r\n      permissionCount: \"Antal Rättigheter\",\r\n      isDefault: \"Är Basroll\",\r\n      isSuper: \"Är Admin\",\r\n    },\r\n\r\n    layerTypes: {\r\n      0: \"Grundrättigheter För Gränssnittet\",\r\n      1: \"Huvudrättigheter För Gränssnittet\",\r\n      2: \"Rättigheter Till API\",\r\n    },\r\n  },\r\n\r\n  eventhub: {\r\n    waiting: \"Väntar på nya meddelanden...\",\r\n\r\n    copySuccess: \"Payload är kopierad\",\r\n    copyError: \"Kunde inte kopiera payload\",\r\n\r\n    events: {\r\n      data: \"Ny data\",\r\n      endpoint: \"ENDPOINT\",\r\n    },\r\n  },\r\n\r\n  downlinks: {\r\n    editorTitle: \"Downlinks\",\r\n\r\n    validation: {\r\n      port: \"Port måste vara över 0\",\r\n    },\r\n  },\r\n\r\n  conditionTree: {\r\n    selectValueTypeTitle: \"Välj värdes typ\",\r\n    selectType: \"Välj typ\",\r\n    selectValue: \"Välj värde\",\r\n    chooseSensor: \"Välj Sensor\",\r\n\r\n    textInputPlaceholder: \"Text Värde\",\r\n    numberInputPlaceholder: \"Nummer Värde\",\r\n\r\n    types: {\r\n      0: \"Sensor Value\",\r\n      1: \"Text\",\r\n      2: \"Number\",\r\n      3: \"Time\",\r\n      4: \"Inget Värde\",\r\n    },\r\n\r\n    ops: {\r\n      greater: \"Större än\",\r\n      less: \"Mindre än\",\r\n      equal: \"Samma som\",\r\n      greaterOrEqual: \"Större eller lika än\",\r\n      lessOrEqual: \"Mindre eller lika än\",\r\n      notEqual: \"Inte\",\r\n    },\r\n  },\r\n\r\n  accessToken: {\r\n    title: \"Åtkomsttoken\",\r\n    newToken: \"Skapa en ny token\",\r\n    cardNewTitle: \"Ny token\",\r\n    cardTitle: \"Åtkomsttoken\",\r\n    fields: {\r\n      id: \"Id\",\r\n      label: \"Titel\",\r\n      token: \"Token\",\r\n      isCompany: \"Företagstoken\",\r\n    },\r\n  },\r\n\r\n  news: {\r\n    cannotGetNews: \"Kunde inte hämta nyheterna från Nodeledge AB.\",\r\n  },\r\n\r\n  gateway: {\r\n    toolbar: \"Gateways\",\r\n    toolbarTitle: \"Gateways\",\r\n    bestGw: \"Bästa gateway\",\r\n\r\n    pickLocationButton: \"Ange position\",\r\n    fields: {\r\n      name: \"Namn\",\r\n      macAddress: \"GatewayEUI\",\r\n      latitude: \"Latitude\",\r\n      longitude: \"Longitude\",\r\n      createdAt: \"Skapad\",\r\n      lastSeen: \"Senast sedd\",\r\n    },\r\n  },\r\n\r\n  signalTest: {\r\n    toolbarTitle: \"Fälttestare\",\r\n    startTest: \"Starta ett nytt test\",\r\n    endTest: \"Avsluta test\",\r\n    peekTest: \"Titta på test\",\r\n    createToolbar: \"Starta ett nytt test\",\r\n    rawData: \"Rådata\",\r\n    updateTimer: \"Uppdateringstimer\",\r\n\r\n    fields: {\r\n      testId: \"Test-ID\",\r\n      description: \"Beskrivning\",\r\n      startTest: \"Start\",\r\n      endTest: \"Slut\",\r\n      active: \"Aktiv\",\r\n\r\n      avgSnr: \"Genomsnittlig SNR\",\r\n      avgRssi: \"Genomsnittlig RSSI\",\r\n\r\n      data: {\r\n        rssi: \"RSSI\",\r\n        snr: \"SNR\",\r\n        lat: \"LATITUDE\",\r\n        lng: \"LONGITUDE\",\r\n        createdAt: \"TID\",\r\n        lastGateway: \"GATEWAY\",\r\n      },\r\n    },\r\n\r\n    tab: {\r\n      map: \"MAP\",\r\n      data: \"STATISTIK\",\r\n    },\r\n  },\r\n\r\n  trend: {\r\n    res: {\r\n      week: \"Upplösning: Vecka\",\r\n      day: \"Upplösning: Dag\",\r\n      hour: \"Upplösning: 1 Timme\",\r\n      five: \"Upplösning: 5 Timmar\",\r\n    },\r\n  },\r\n\r\n  notifications: {\r\n    clearNotifications: \"Markera alla som lästa\",\r\n    noNotifications: \"Det finns inga nya notiser.\",\r\n  },\r\n\r\n  landing: {\r\n    slogan: \"VISUALIZATION MADE EASY\",\r\n    or: \"ELLER\",\r\n    key: {\r\n      title: \"Funktioner\",\r\n      1: \"Nodhantering\",\r\n      2: \"Visualisering\",\r\n      3: \"Flera Dashboards\",\r\n      4: \"Alarmhantering\",\r\n      5: \"Personalhantering\",\r\n      6: \"Skriptmotor\",\r\n\r\n      description: {\r\n        1: \"Hantera sensorer för datahantering.\",\r\n        2: \"Få din sensordata visualiserad på det sätt du vill se din information.\",\r\n        3: \"Skapa egna dashboards för ditt användningsområde.\",\r\n        4: \"Alarmhantering för kritiska användningsområden.\",\r\n        5: \"Hantera användarkonton för ditt företag.\",\r\n        6: \"Avancerade användare kan skapa script för att manipulera data.\",\r\n      },\r\n    },\r\n\r\n    usecases: {\r\n      title: \"Applikation\",\r\n      1: \"Miljösensorer\",\r\n      2: \"Elsensorer\",\r\n      3: \"Rörelsesensorer\",\r\n      4: \"Temperatursensor\",\r\n\r\n      description: {\r\n        1: \"SENSORONLINE passar otroligt bra för smarta jordbrukslösningar så som de på Ljusgårda redan bygger.\",\r\n        12: \"Läs mer om Ljusgårda.\",\r\n        2: \"Mät ström för gatlyktor i din stad. Med skriptmotorn kan du göra så att datan blir lätt att tyda.\",\r\n        3: \"Mät hur många människor som kommer och går från din anläggning.\",\r\n        4: \"Självklart är temperatur-visualisering en nyckel för SENSORONLINE-platformen. Företag väljer att mäta och hantera sina temperaturer med SENSORONLINE.\",\r\n      },\r\n    },\r\n\r\n    help: {\r\n      title: \"KONTAKTA OSS\",\r\n\r\n      sensors: {\r\n        title: \"Behöver du några nya sensorer?\",\r\n        description:\r\n          \"Om du behöver hjälp med att lösa ett problem eller få mer kontroll på dina tillgångar. Eller hur du kan visualisera dina sensorer på ett sätt som underlättar för din verksamhet. Tveka inte att höra av dig till oss för att få hjälp. \\n Du kan kolla vårt portfolio av \",\r\n        store: \"noder som vi säljer hos Nodeledge AB.\",\r\n      },\r\n\r\n      api: {\r\n        title: \"Använd vårt API\",\r\n        description:\r\n          \"Du kan givetvis använda vårt API för att sätta in data eller hämta data från och till befintliga system. \",\r\n      },\r\n\r\n      contact: {\r\n        title: \"Är du intresserad? Ta kontakt!\",\r\n        siencepark: \"Skövde Science Park\",\r\n        address: \"Kaplansgatan 16B\",\r\n        postal: \"521 32 Skövde\",\r\n        country: \"Sverige\",\r\n        phoneTitle: \"Telefon\",\r\n        phonenumber: \"+46 (0) 500 600 022\",\r\n        phonenumber2: \"+46 (0) 733 165 100\",\r\n        emailTitle: \"Email\",\r\n        email: \"info@sensor-online.se\",\r\n      },\r\n    },\r\n  },\r\n\r\n  valueForm: {\r\n    target: \"Värde\",\r\n\r\n    actionType: \"Typ\",\r\n\r\n    actionTypes: {\r\n      color: \"Färg\",\r\n      value: \"Värde\",\r\n\r\n      desc: {\r\n        colorBackground: \"Bakgrundsfärg\",\r\n        colorBorder: \"Borderfärg\",\r\n        colorText: \"Textfärg\",\r\n        value: \"Värde för värde\",\r\n      },\r\n    },\r\n\r\n    op: \"Operation\",\r\n    ops: {\r\n      eq: \"<b>lika</b> än\",\r\n      notEq: \"inte <b>lika</b> än\",\r\n      greater: \"<b>större</b> än\",\r\n      less: \"<b>mindre</b> än\",\r\n      greaterOrEq: \"<b>större</b> eller lika än\",\r\n      lessOrEq: \"<b>mindre</b> eller lika än\",\r\n    },\r\n  },\r\n\r\n  imageMap: {\r\n    chooseTag: \"Välj typ av markör\",\r\n    iconFormTitle: \"Ikon\",\r\n    icon: {\r\n      width: \"Ikon Bredd\",\r\n      height: \"Ikon Höjd\",\r\n      anchorx: \"Ikon Offset Bredd\",\r\n      anchory: \"Ikon Offset Höjd\",\r\n    },\r\n\r\n    fontSelectorTitle: \"Teckenstorlek\",\r\n    nodeSelection: \"Nod\",\r\n    valueFormPanel: \"Värden\",\r\n\r\n    colors: {\r\n      background: \"Bakgrund\",\r\n      border: \"Border\",\r\n      text: \"Text\",\r\n    },\r\n  },\r\n\r\n  log: {\r\n    type: {\r\n      sms: \"SMS\",\r\n      app: \"Applikation\",\r\n      warning: \"Varning\",\r\n      error: \"Error\",\r\n      userevent: \"Userevent\",\r\n      login: \"Login\",\r\n    },\r\n\r\n    logTable: {\r\n      title: \"Logg\",\r\n    },\r\n\r\n    activeAlarms: {\r\n      title: \"Aktiva larm\",\r\n    },\r\n\r\n    activeUsersTable: {\r\n      title: \"Inloggade användare\",\r\n    },\r\n\r\n    fields: {\r\n      type: \"Typ\",\r\n      user: \"Användare\",\r\n      message: \"Meddelande\",\r\n      createdAt: \"Skapad\",\r\n\r\n      status: \"Status\",\r\n      lastAction: \"Event\",\r\n      lastSeen: \"Timestamp\",\r\n\r\n      alarm: {\r\n        name: \"Namn\",\r\n        value: \"Värde\",\r\n        messageSent: \"Skickat notifikation\",\r\n      },\r\n    },\r\n  },\r\n\r\n  common: {\r\n    yes: \"Ja\",\r\n    no: \"Nej\",\r\n    on: \"På\",\r\n    off: \"Av\",\r\n    timestamp: \"Tidsstämpel\",\r\n    lang: \"Språk\",\r\n    error: \"Ett fel uppstod försök igen senare\",\r\n    edit: \"Redigera\",\r\n    delete: \"Ta bort\",\r\n    reset: \"Återställ\",\r\n    purge: \"Radera\",\r\n    submit: \"Skicka\",\r\n    create: \"Skapa\",\r\n    update: \"Uppdatera\",\r\n    updateAll: \"Uppdatera alla\",\r\n    get: \"Hämta\",\r\n    run: \"Kör\",\r\n    address: \"Adress\",\r\n    link: \"Länk\",\r\n    height: \"Höjd\",\r\n    width: \"Bredd\",\r\n    new: \"Ny\",\r\n    value: \"Värde\",\r\n    newValue: \"Nytt Värde\",\r\n    nothingToSee: \"Inget att se här\",\r\n    next: \"Nästa\",\r\n    label: \"Label\",\r\n    editLabel: \"Redigera Label\",\r\n    explanation: \"Förklaring\",\r\n    never: \"Aldrig\",\r\n    upload: \"Ladda upp\",\r\n    click: \"Klicka\",\r\n    required: \"Krävs\",\r\n\r\n    hours: \"Timmar\",\r\n    mintues: \"Minuter\",\r\n\r\n    search: \"Sök\",\r\n    close: \"Stäng\",\r\n    cancel: \"Avbryt\",\r\n\r\n    login: \"Logga in\",\r\n    register: \"Registrera dig\",\r\n    email: \"Email\",\r\n    password: \"Lösenord\",\r\n    confirmPassword: \"Upprepa lösenord\",\r\n    newPassword: \"Nytt lösenord\",\r\n    forgotPassword: \"Glömt lösenord\",\r\n\r\n    createdAt: \"Skapad\",\r\n    updatedAt: \"Uppdaterad\",\r\n\r\n    save: \"Spara\",\r\n    show: \"Visa\",\r\n    updated: \"Uppdaterad\",\r\n    created: \"Skapad\",\r\n    deleted: \"Raderad\",\r\n    back: \"Tillbaka\",\r\n    send: \"Skicka\",\r\n    refresh: \"Uppdatera\",\r\n    preview: \"Preview\",\r\n    previewSpacing: \"Plats för andra komponenter\",\r\n    saveColor: \"Spara färg\",\r\n    alarmColorPrecedence:\r\n      \"Larmfärger kommer alltid väljas före de manuellt valda färgerna, tvinga överskrivning i attributer om detta inte är vad som önskas.\",\r\n\r\n    add: \"Lägg till\",\r\n    clear: \"Rensa\",\r\n    success: \"OK!\",\r\n\r\n    settings: \"Inställningar\",\r\n\r\n    noTagOrAppChoosen: \"Noder och/eller Applikation saknas\",\r\n    noDataFound: \"Ingen data funnen\",\r\n    darkTheme: \"Mörkt tema\",\r\n\r\n    active: \"Aktiverat\",\r\n    notActive: \"Avstängt\",\r\n\r\n    sent: \"Skickat\",\r\n    notSent: \"Inte Skickat\",\r\n\r\n    loginOrRegister: \"Logga in eller registrera dig\",\r\n\r\n    or: \"Eller\",\r\n\r\n    dashboard: \"Gå till Dashboard\",\r\n    switchCompany: \"Växla Konto\",\r\n\r\n    copy: \"Kopiera\",\r\n    disagree: \"Nej\",\r\n    verify: \"Är du säker att du vill fortsätta?\",\r\n    verifyDelete: \"Är du säker att du vill ta bort denna resurs?\",\r\n\r\n    accept: \"Ja\",\r\n\r\n    registerCompany: \"Skapa nytt konto\",\r\n\r\n    inactiveSensors: \"Inaktiva sensorer\",\r\n    activeSensors: \"Aktiva sensorer\",\r\n    sensorStatus: \"Nod-status\",\r\n    sensorName: \"Nod-namn\",\r\n\r\n    updatesPending: \"Ändringar sker vid sidomladdning\",\r\n    pickLocationConfirm: \"Vill du spara positionen på denna resurs?\",\r\n\r\n    getMorePages: \"Ladda mer\",\r\n\r\n    nextStep: \"Nästa\",\r\n    previousStep: \"Tillbaka\",\r\n\r\n    toFewBytes: \"För lite bytes\",\r\n    byteInputRequired: \"Du måste fylla i detta fält\",\r\n\r\n    size: \"Storlek\",\r\n    test: \"Testa\",\r\n\r\n    select: \"Välj\",\r\n    selected: \"Vald\",\r\n\r\n    searchType: {\r\n      TAG: \"Noder\",\r\n      ALARM: \"Alarm\",\r\n      APPLICATION: \"Applikationer\",\r\n      DASHBOARD: \"Dashboards\",\r\n      GATEWAY: \"Gateways\",\r\n      SCRIPT: \"Scripts\",\r\n    },\r\n\r\n    dateLabel: \"Datum\",\r\n    timeLabel: \"Tid\",\r\n\r\n    time: {\r\n      day: \"Dag\",\r\n      hour: \"Timma\",\r\n      quarterHour: \"Kvart\",\r\n      minute: \"Minut\",\r\n    },\r\n\r\n    days: {\r\n      monday: \"Måndag\",\r\n      tuesday: \"Tisdag\",\r\n      wednesday: \"Onsdag\",\r\n      thursday: \"Torsdag\",\r\n      friday: \"Fredag\",\r\n      saturday: \"Lördag\",\r\n      sunday: \"Söndag\",\r\n    },\r\n\r\n    dateRange: {\r\n      0: \"Senaste timmen\",\r\n      1: \"Senaste 5 timmarna\",\r\n      2: \"Senaste 24 timmarna\",\r\n      3: \"Senaste 7 dagarna\",\r\n      4: \"Senaste 30 dagarna\",\r\n    },\r\n\r\n    staticinformation: {\r\n      datapoints: \"Datapunkter senaste 24 timmarna\",\r\n      inactiveSensors: \"Inaktiva sensorer\",\r\n      activeAlarms: \"Aktiva alarm\",\r\n      datapointsLastWeek: \"Datapunkter under senaste veckan\",\r\n      weekday: \"Veckodag\",\r\n    },\r\n\r\n    welcome: \"Hej, {user} !\",\r\n\r\n    errors: {\r\n      getDecoders: \"Kunde inte hämta decoders\",\r\n      backendConnection: \"Ingen anslutning till backend kunde upprättas\",\r\n    },\r\n\r\n    actions: {\r\n      createCategory: \"Skapa Kategori\",\r\n      editCategory: \"Redigera Kategori\",\r\n      remove: \"Ta bort\",\r\n\r\n      createDashboard: \"Skapa Dashboard\",\r\n      copyDashboard: \"Kopiera Dashboard\",\r\n    },\r\n\r\n    iconSelector: {\r\n      selectIcon: \"Välj ikon\",\r\n      searchPlaceholder: \"Sök på ikoner (ex. weather)\",\r\n    },\r\n  },\r\n\r\n  settings: {\r\n    title: \"Inställningar\",\r\n    userSettings: \"Användarinställningar\",\r\n    themes: \"Teman\",\r\n\r\n    company: {\r\n      title: \"Företagsinställningar\",\r\n      general: \"Inställningar\",\r\n      branding: \"White label\",\r\n      brandingTitle: \"White Label titel\",\r\n    },\r\n\r\n    data: {\r\n      toolbarTransparancy: \"Transparent toolbar\",\r\n      stickySideMenu: \"Sticky sidmeny\",\r\n    },\r\n\r\n    global: {\r\n      name: \"Globala inställningar\",\r\n      branding: \"Märkning\",\r\n      powered_by: \"Powered By\",\r\n      SMS_PROVIDER: \"SMS Leverantör\",\r\n      SMS_IP1_FROM: \"Avsändarnamn\",\r\n      SMS_IP1_USERNAME: \"IP1 Användarnamn\",\r\n      SMS_IP1_PASSWORD: \"IP1 Password\",\r\n      SMS_TWILIO_ACCOUNTSID: \"Twilio AccountSID\",\r\n      SMS_TWILIO_ACCESSTOKEN: \"Twilio AccessToken\",\r\n      SMS_TWILIO_NUMBER: \"Twilio Number\",\r\n    },\r\n  },\r\n\r\n  companysetting: {\r\n    field: {\r\n      smsprovider: \"SMS Leverantör\",\r\n      alarmTitle: \"Larm\",\r\n      inactivityAlarmContact: \"Mail för inaktivitets larm\",\r\n      nodeTitle: \"Nod\",\r\n      nodeAlias: \"Nodalias\",\r\n      mapTitle: \"Kartainställningar\",\r\n      coordinates: \"Latitude & Longitude i DD-format\",\r\n      companyLocation: \"Hem position för företaget\",\r\n\r\n      hint: {\r\n        inactivityAlarmContact:\r\n          \"Mailaddress för att få mail när sensorer har varit inaktiva i mer än 6 timmar\",\r\n        nodeAlias: \"Detta hjälper till att föreslå och skapa nodnamnet\",\r\n      },\r\n\r\n      ip1: {\r\n        from: \"Avsändarnamn\",\r\n        username: \"IP1 Användarnamn\",\r\n        password: \"IP1 AccessToken / Lösenord\",\r\n        hint: {\r\n          from: \"Detta är ett namn som kommer användas som avsändare av sms från SensorOnline\",\r\n          username:\r\n            \"Vill du hitta ditt användarnamn finns dokumentation här: https://docs.sensor-online.se\",\r\n          password:\r\n            \"Vill du hitta Access Token / Lösenord kan du se dokumentationen här https://docs.sensor-online.se\",\r\n        },\r\n      },\r\n\r\n      twilio: {\r\n        number: \"Twilio Nummer\",\r\n        accountSid: \"Twilio AccountSID\",\r\n        accessToken: \"Twilio AccessToken\",\r\n        hint: {\r\n          number:\r\n            \"Detta är det nummer du vill skicka dina meddelanden från och som du har på Twilio\",\r\n          accountSid:\r\n            \"Du kan hitta ditt AccountSid genom att följa vår dokumentation här: https://docs.sensor-online.se\",\r\n          accessToken:\r\n            \"Du kan hitta din AccessToken genom att följa vår dokumentation här: https://docs.sensor-online.se\",\r\n        },\r\n      },\r\n    },\r\n  },\r\n\r\n  map: {\r\n    create: \"Skapa kart-dashboard\",\r\n    setPosFormTitle: \"Välj sensor för position\",\r\n    currentPosition: \"Nuvarande position\",\r\n    useNodePosition: \"Använd nodens position\",\r\n    displayHistory: \"Historiska positioner\",\r\n    dateTimeSpanSelection: \"Datum att visa\",\r\n    dateFrom: \"Start datum\",\r\n    dateTo: \"Slut datum\",\r\n    clearPositions: \"Rensa rutter\",\r\n    stepPositions: \"Stega genom resan\",\r\n    select: {\r\n      node: \"Välj Nod\",\r\n      dashboard: \"Välj Dashboard\",\r\n    },\r\n    iconStyling: \"Ikon-stil\",\r\n    livemap: {\r\n      legend: {\r\n        title: \"Information\",\r\n        description: {\r\n          1: \"Nodens färg är baserad på dess RSSI och SNR värde.\",\r\n          2: \"Klicka på en nod för en mer detaljerad beskrivning\",\r\n          3: \"Gula eller röda noder innebär nödvändigtvis inget problem men då kommer batteriet att laddas ur fortfare\",\r\n        },\r\n      },\r\n    },\r\n    picklocation: {\r\n      legend: {\r\n        title: \"Information\",\r\n        description: {\r\n          1: \"The current position is marked on the map with a fixed marker.\",\r\n          2: \"Klick on the map to pick a position. You may drag around the placed marker\",\r\n        },\r\n      },\r\n    },\r\n    alltags: \"Positions\",\r\n  },\r\n\r\n  dashboard: {\r\n    name: \"Dashboards\",\r\n    createTitleClean: \"Skapa ny Dashboard\",\r\n    copyDeleteTitle: \"Ta bort eller kopiera Dashboard\",\r\n    createTitle: \"Eller skapa ett nytt Dashboard\",\r\n    chooseTitle: \"Välj Dashboard\",\r\n    changeTitle: \"Byt Dashboard\",\r\n    selectDashboard: \"Dashboards\",\r\n    navigationTitle: \"Navigationsmeny\",\r\n\r\n    fields: { name: \"Namn\" },\r\n    nameReq: \"Detta fält måste vara ifyllt\",\r\n\r\n    dashboardType: {\r\n      1: \"Standard Dashboard\",\r\n      2: \"Kart Dashboard\",\r\n      3: \"Bild-kart Dashboard\",\r\n    },\r\n\r\n    categories: {\r\n      create: \"Skapa Kategori\",\r\n      title: \"Titel\",\r\n      icon: \"Ikon\",\r\n    },\r\n\r\n    copy: {\r\n      tooltip: \"Kopiera widget\",\r\n    },\r\n\r\n    public: {\r\n      title: \"Publika dashboards\",\r\n      create: \"Skapa en publik dashboard\",\r\n      createNew: \"Skapa en ny publik dashboard\",\r\n      copiedSuccessful: \"Kopierade länk till clipboard\",\r\n      copiedUnsuccessful: \"Kunde inte kopiera {link}\",\r\n      URL: \"Dashboard-URL\",\r\n      yes: \"Ja\",\r\n      no: \"Nej\",\r\n      remove: \"Ta bort\",\r\n\r\n      fields: {\r\n        host: \"Ansvarig\",\r\n        expiresAt: \"Giltig till\",\r\n        expired: \"Aktiv\",\r\n        copyAction: \"Länk\",\r\n        dashboardName: \"Dashboard\",\r\n      },\r\n    },\r\n  },\r\n\r\n  module: {\r\n    noData: \"Kunde inte hitta någon data\",\r\n    create: \"Skapa ett nytt element\",\r\n    edit: \"Redigera elementet\",\r\n    metas: \"Attribut\",\r\n\r\n    colorFormTitle: \"Färg inställningar\",\r\n\r\n    chart: {\r\n      types: {\r\n        line: \"Linje\",\r\n        area: \"Area\",\r\n        bar: \"Stapeldiagram\",\r\n        scatter: \"Spridningsdiagram\",\r\n        vertical: \"Vertikal\",\r\n        trend: \"Förändringsgraf\",\r\n      },\r\n    },\r\n\r\n    mapMarkers: {\r\n      node: \"Nål med Nodinformation\",\r\n      sensor: \"Label med senast sensorvärde\",\r\n    },\r\n\r\n    meta: {\r\n      label: \"Attribut\",\r\n      save: \"Spara attribut\",\r\n      addSlider: \"Lägg till slider\",\r\n      opacity: \"Opacitet\",\r\n\r\n      paletteToModuleMode: \"Ändra Modulfärger\",\r\n      paletteToCardMode: \"Ändra Kortfärger\",\r\n\r\n      valueMatch: \"Attribut 1\",\r\n      value: \"Attribut 2\",\r\n      key: \"Sensor\",\r\n      icon: \"Ikon\",\r\n\r\n      styles: {\r\n        text: {\r\n          textcolor: \"Textfärg\",\r\n          background: \"Bakgrund - Innehåll\",\r\n          titleBackground: \"Bakgrund - Titel\",\r\n        },\r\n\r\n        single: {\r\n          textcolor: \"Textfärg\",\r\n          background: \"Bakgrund - Innehåll\",\r\n          titleBackground: \"Bakgrund - Titel\",\r\n          sparkline: \"Sparkline\",\r\n          sparklineLabel: \"Sparkline textfärg\",\r\n        },\r\n\r\n        color: {\r\n          cardBackground: \"Kortbakgrund\",\r\n          titleBackground: \"Titelbakgrund\",\r\n          titleText: \"Titeltext\",\r\n          valueBackground: \"Värdesbakgrund\",\r\n          valueText: \"Värdestext\",\r\n        },\r\n      },\r\n\r\n      fontStyleTypes: {\r\n        title: \"Titel\",\r\n        value: \"Värde\",\r\n        content: \"Innehåll\",\r\n      },\r\n\r\n      keys: {\r\n        so_own_axis: \"Egen Y-Axel\",\r\n        value_match: \"Namn för värde\",\r\n        icon: \"Ikon-suffix\",\r\n        sufix: \"Suffix\",\r\n        prefix: \"Prefix\",\r\n        deveui: \"Nod\",\r\n        maxheight: \"Maxhöjd\",\r\n        scriptid: \"Skript-ID\",\r\n        target: \"Börvärde\",\r\n        tagkey: \"Sensor\",\r\n        tagkey_x: \"Sensor X-led\",\r\n        tagkey_y: \"Sensor Y-led\",\r\n        tagkey_x_max: \"Sensor Max X-led\",\r\n        tagkey_y_max: \"Sensor Max Y-led\",\r\n        forceColors: \"Tvinga färger\",\r\n        decimal_rounding: \"Decimalavrundning\",\r\n        dashboard_id: \"Dashboard-ID\",\r\n        sync_y: \"Synkronisera Y-axel\",\r\n        zoom_slider: \"Zoom-reglage\",\r\n        digital: \"Fyrkantsvåg\",\r\n        alarm_id: \"Larmgränser\",\r\n        so_chart_type: \"Diagramtyp\",\r\n        so_ignore_body: \"Endast titel\",\r\n        min_value: \"Minimumvärde\",\r\n        max_value: \"Maxvärde\",\r\n        axis_label: \"Axel-etikett\",\r\n        default_timespan: \"Standardtidsspann\",\r\n        font_size: \"Textstorlek\",\r\n        hide_trend_icon: \"Göm Trend Ikon\",\r\n        horizontel_single_title: \"Horisontell titel\",\r\n        so_hide_node_info: \"Göm Nodinformation\",\r\n        font_style_large: \"Typsnitt\",\r\n        so_single_sparkline: \"Sparkline\",\r\n        gauge_180: \"180°-visning\",\r\n        button_label: \"Knapptext\",\r\n        button_label_on: \"Text Påknapp\",\r\n        button_label_off: \"Text Avknapp\",\r\n        hide_title: \"Göm Titel\",\r\n        so_slots_count: \"Antal Slots att visa\",\r\n        font_style_title: \"Typsnitt för titel\",\r\n        font_style_content: \"Typsnitt för innehåll\",\r\n      },\r\n\r\n      desc: {\r\n        forceColors:\r\n          \"Tvingar de valda färgerna att ha prioritet över larmfärger\",\r\n      },\r\n\r\n      fields: {\r\n        value_match: \"Matchande värde\",\r\n        name: \"Text\",\r\n        icon: \"Ikon-suffix\",\r\n        sufix: \"Suffix\",\r\n        prefix: \"Prefix\",\r\n        deveui: \"Nod\",\r\n        maxheight: \"Maxhöjd (ex 300 för 300px)\",\r\n        scriptid: \"Skript ID\",\r\n        target: \"Börvärde\",\r\n        tagkey: \"Sensor\",\r\n        tagkey_x: \"Sensor X-led\",\r\n        tagkey_y: \"Sensor Y-led\",\r\n        tagkey_x_max: \"Sensor Max X-led\",\r\n        tagkey_y_max: \"Sensor Max Y-led\",\r\n        forceColors: \"Tvinga färger\",\r\n        decimal_rounding: \"Antal Siffror\",\r\n        dashboard_id: \"Dashboard-ID\",\r\n        sync_y: \"Synkronisera Y-axel\",\r\n        so_own_axis: \"Own Y-Axel\",\r\n        zoom_slider: \"Visa zoom-reglage\",\r\n        digital: \"Fyrkantsvåg\",\r\n        alarm_id: \"Visa Larmgränser\",\r\n        chart_type: \"Diagramtyp\",\r\n        ignoreBody: \"Endast titel\",\r\n        min_value: \"Minimumvärde\",\r\n        max_value: \"Maxvärde\",\r\n        axis_label: \"Axel-etikett\",\r\n        default_timespan: \"Standardtidsspann\",\r\n        so_font_style_title: \"Typsnitt för titel\",\r\n        so_font_style_content: \"Typsnitt för innehåll\",\r\n        font_style_large: {\r\n          type: \"Typ\",\r\n          size: \"Storlek\",\r\n          weight: \"Tjocklek\",\r\n        },\r\n      },\r\n    },\r\n\r\n    fields: {\r\n      title: \"Titel\",\r\n      types: \"Typ\",\r\n      content: \"Content\",\r\n      sm: \"Storlek liten skärm\",\r\n      md: \"Storlek medelstor skärm\",\r\n      min: \"Min-värde\",\r\n      max: \"Max-värde\",\r\n      image: \"Bild\",\r\n      url: \"URL\",\r\n      sync_chart: `Synkronisera X-axeln för alla dataserier\r\n(när du har olika dataformat i samma graf)`,\r\n    },\r\n\r\n    enum: {\r\n      size: { xs: \"XSMALL\", sm: \"SMALL\", md: \"MEDIUM\", lg: \"LARGE\" },\r\n      types: {\r\n        0: \"Graf\",\r\n        1: \"Visarinstrument\",\r\n        2: \"Text\",\r\n        3: \"Bild\",\r\n        4: \"Karta\",\r\n        5: \"Företagsinformation\",\r\n        6: \"IFrame\",\r\n        7: \"SMHI\",\r\n        8: \"Senaste värdet\",\r\n        9: \"Tabell rådata\",\r\n        10: \"Graf\",\r\n        11: \"Bild-karta\",\r\n        12: \"Funktionsknapp\",\r\n        13: \"Nod-info\",\r\n        14: \"Förändringsgraf\",\r\n        15: \"Nod-översikt\",\r\n        16: \"360°-tiltvisare\",\r\n        17: \"Fyllnadsgrad\",\r\n        18: \"Börvärdessättare\",\r\n        19: \"Kamera\",\r\n\r\n        desc: {\r\n          0: \"Visar en graf\",\r\n          1: \"Visar ett visarinstrument\",\r\n          2: \"Visar text\",\r\n          3: \"Visar en bild\",\r\n          4: \"Visar en karta\",\r\n          5: \"Visar företagsinformation\",\r\n          6: \"Visar IFrame\",\r\n          7: \"Visar SMHI\",\r\n          8: \"Visar det senaste värdet\",\r\n          9: \"Visar rådata-tabell\",\r\n          10: \"Visar en Graf\",\r\n          11: \"Visar en bild-karta\",\r\n          12: \"Visar en funktionsknapp\",\r\n          13: \"Visar nod-information\",\r\n          14: \"Visar en förändringsgraf\",\r\n          15: \"Visar nod-översikt\",\r\n          16: \"Visar en 360°-tiltvisare\",\r\n          17: \"Visar en fyllnadsgrad\",\r\n          18: \"Visar en börvärdessättare\",\r\n          19: \"Visar en kamera ström\",\r\n        },\r\n      },\r\n    },\r\n\r\n    functionButtonTypes: {\r\n      script: \"Skriptkörning\",\r\n      input: \"Värdeinput\",\r\n      navigation: \"Dashboard-länk\",\r\n      downlink: \"Downlinks\",\r\n      onoffSwitch: \"ON/OFF-switch\",\r\n    },\r\n  },\r\n\r\n  weather: {\r\n    title: \"SMHI Väderdata\",\r\n    icon: \"Väder\",\r\n    temp: \"Temperatur\",\r\n    windDir: \"Vindriktning\",\r\n    windSpeed: \"Vind\",\r\n    humidity: \"Fukt\",\r\n    thunder: \"Åska\",\r\n    date: \"Datum\",\r\n    precipitation: \"Nederbörd\",\r\n  },\r\n\r\n  contact: {\r\n    title: \"Kontakta oss\",\r\n    descriptionTitle: \"Sensor-Online\",\r\n    description:\r\n      \"Vi på SensorOnline vet att det kan vara svårt att komma igång med dina sensorer. Tveka inte att kontakta oss vid frågor eller för rådgivning.\",\r\n    emailTitle: \"Email\",\r\n    email: \"info@sensor-online.se\",\r\n    phoneTitle: \"Telefon\",\r\n    phoneOne: \"+46 (0) 500 6000 22\",\r\n    phoneTwo: \"+46 (0) 733 165 100\",\r\n    locationSiencepark: \"Skövde Science Park\",\r\n    locationStreet: \"Kaplansgatan 16B\",\r\n    locationPostalcode: \"521 32 Skövde\",\r\n    locationCountry: \"Sweden\",\r\n  },\r\n\r\n  company: {\r\n    name: \"Företag\",\r\n    orgNumber: \"Organisationsnummer\",\r\n    associatedCompanies: \"Anslutna företag\",\r\n    externalUsers: \"Externa användare\",\r\n\r\n    companyInfo: \"Företagsinformation\",\r\n\r\n    addUser: \"Lägg till användare\",\r\n\r\n    invite: \"Bjud in en användare\",\r\n    inviteSent: \"Inbjudan skickad\",\r\n    inviteFailed:\r\n      \"Kunde inte hitta användaren. Se till att användaren är registrerad och inte redan tillhör ett företag!\",\r\n\r\n    shareApp: \"Dela Applikation\",\r\n\r\n    whiteLabelLogo: \"Företag logotyp\",\r\n\r\n    fields: {\r\n      name: \"Företagsnamn\",\r\n      orgNumber: \"Organisationsnummer\",\r\n      postalAdress: \"Postadress\",\r\n      deliveryAdress: \"Leveransadress\",\r\n      contactPhonenumber: \"Kontakt telefonnummer\",\r\n      invoiceAdress: \"Epost för faktura\",\r\n      refrenceNmuber: \"Referensnummer\",\r\n      image: \"Företagslogotyp\",\r\n    },\r\n\r\n    validation: {\r\n      nameRequired: \"Du måste fylla i Företagsnamn\",\r\n      nameMax: \"Företagsnamn kan högst vara 255 tecken\",\r\n\r\n      orgNumberRequired: \"Du måste fylla i Organisationsnummer\",\r\n      orgNumberFormatError: \"Fel format på Organisationsnummer\",\r\n\r\n      emailRequired: \"Du måste fylla i Email\",\r\n      emailFormatError: \"Ange giltig Email-address\",\r\n\r\n      passwordMissmatch: \"Lösenorden matchar inte\",\r\n    },\r\n  },\r\n\r\n  report: {\r\n    title: \"Rapporter\",\r\n    refrenceDateDesc:\r\n      \"Referensdagen är den dagen som refereras till vid utskick av rapport, om intervallen är månadsvis väljer du dagen som den ska skickas på(1:a varje månad till exempel). Eller veckovis (vilken dag mån - fre som rapporten ska skickas ut).\",\r\n    create: \"Skapa Rapport-prenumeration\",\r\n    update: \"Uppdatera Rapport-prenumeration\",\r\n    exportDownload: \"Raportnedladdning\",\r\n    export: \"Exportera\",\r\n    downloadFailed: \"Det gick inte att hämta rapporten, försök igen senare.\",\r\n    noData: \"Ingen data hittades i det valda tidsspannet\",\r\n    fields: {\r\n      name: \"Namn\",\r\n      type: \"Typ\",\r\n      tempo: \"Intervall\",\r\n      createdAt: \"Skapad\",\r\n      updatedAt: \"Uppdaterad\",\r\n      id: \"ID\",\r\n      refrenceDate: \"Referensdag\",\r\n      reportContacts: \"Rapport-kontakter\",\r\n      lastSent: \"Senast skickad\",\r\n    },\r\n\r\n    tempo: {\r\n      desc: {\r\n        0: \"Skickas varje dag med rapport för dagen.\",\r\n        1: \"Skickas varje måndag med rapport för veckan innan.\",\r\n        2: \"Skickas 1:a varje månad med rapport för månaden innan.\",\r\n      },\r\n\r\n      0: \"Dagligen\",\r\n      1: \"Veckovis\",\r\n      2: \"Månadsvis\",\r\n    },\r\n\r\n    types: {\r\n      regular: \"Standard\",\r\n      trend: \"Förbrukning\",\r\n    },\r\n  },\r\n\r\n  script: {\r\n    name: \"Skript\",\r\n    create: \"Skapa nytt Skript\",\r\n    edit: \"Redigera Skript\",\r\n    tagsTitle: \"Nod-ID och Sensorer\",\r\n    placeHolderContent: `   // Convert the temperature to fahrenheit \r\n    var tempToFahrenheit = Data.Read(\"INSERT-DEVEUI\", \"INSERT-KEY\") *  9/5 + 32;\r\n\r\n    // Write the new value to a new key\r\n    Data.Write(\"INSERT-DEVEUI\", \"INSERT-KEY\", tempToFahrenheit);`,\r\n    examples: \"Exempel\",\r\n    helpTitle: \"Exempel och hjälp\",\r\n\r\n    type: {\r\n      0: \"Loopat Skript\",\r\n      1: \"Anropat Skript\",\r\n      2: \"Triggat Skript\",\r\n    },\r\n\r\n    fields: {\r\n      name: \"Namn\",\r\n      type: \"Typ\",\r\n      interval: \"Intervall\",\r\n      lastRun: \"Senaste körning\",\r\n      enabled: \"Aktiverat\",\r\n      boundTag: \"Triggande tag\",\r\n    },\r\n\r\n    validation: {\r\n      intervalRequired: \"Detta fält måste vara ifyllt\",\r\n      intervalMinValue: \"Det minsta värdet för Intervall är 0\",\r\n    },\r\n  },\r\n\r\n  user: {\r\n    name: \"Användare\",\r\n\r\n    email: \"Email\",\r\n    role: \"Roll\",\r\n\r\n    userInfo: \"Personliga uppgifter\",\r\n\r\n    loginFailed: \"Inloggning misslyckades\",\r\n    signInFailed: \"Email/lösenord matchar inte försök igen\",\r\n    signInError: \"Oväntat fel inträffade under inloggning\",\r\n    loginSuccessful: \"Inloggad\",\r\n    updateFailed: \"Uppdateringen misslyckades\",\r\n    edit: \"Redigera\",\r\n    forgotPassword: \"Glömt lösenord?\",\r\n\r\n    fields: {\r\n      firstName: \"Förnamn\",\r\n      lastName: \"Efternamn\",\r\n      phoneNumber: \"Telefonnummer\",\r\n      email: \"Email\",\r\n      password: \"Lösenord\",\r\n      newPassword: \"Nytt Lösenord\",\r\n      passwordConfirm: \"Bekräfta Lösenord\",\r\n\r\n      phoneNumerHint:\r\n        \"Hint: Använd internationell formatering. Ex för Svenskt nummer (46703292943)\",\r\n    },\r\n  },\r\n\r\n  application: {\r\n    name: \"Applikation | Applikationer\",\r\n    noCompanyError: \"För att skapa en Applikation måste du ha ett företag\",\r\n    applicationCreated: \"En ny applikation har skapats\",\r\n    choose: \"Välj en Applikation\",\r\n    create: \"Skapa en ny Applikation\",\r\n    validation: {\r\n      nameRequired: \"Din applikation måste ha ett namn\",\r\n      nameMax: \"Namn kan högst vara 255 tecken\",\r\n    },\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Namn\",\r\n      createdAt: \"Skapad\",\r\n      owner: \"Ägare\",\r\n    },\r\n  },\r\n\r\n  alarm: {\r\n    name: \"Larm\",\r\n    create: \"Lägg till nytt larm\",\r\n    affirmation: \"Bekräfta\",\r\n    history: \"Larmhistorik\",\r\n\r\n    activeAlarm: \"Alarm-varningar\",\r\n\r\n    test: {\r\n      title: \"Test av inställningar\",\r\n      settings: \"Testa mejl och sms inställningar\",\r\n      email: \"Email adress\",\r\n      phonenumber: \"Telefonnummer (46....)\",\r\n    },\r\n\r\n    priority: {\r\n      desc: {\r\n        a: \"Hög\",\r\n        b: \"Medium\",\r\n        c: \"Låg\",\r\n      },\r\n    },\r\n\r\n    alertType: {\r\n      desc: {\r\n        a: \"Skickar E-post + SMS + Logg\",\r\n        b: \"Skickar SMS + Logg\",\r\n        c: \"Skickar E-post + Logg\",\r\n        d: \"Skickar endast till Logg\",\r\n      },\r\n    },\r\n\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Namn\",\r\n      alertType: \"Metod för larmavisering\",\r\n      priority: \"Prioritetsnivå för larm\",\r\n      alarmDelay: \"Fördröjning innan larm\",\r\n      autoAcknowledge: \"Auto-Bekräftelse\",\r\n      active: \"Larm På/Av\",\r\n      tagDataKey: \"Sensor\",\r\n      tag: \"Nod\",\r\n      message: \"Larm-meddelande\",\r\n      limitHigh: \"Hög larmgräns\",\r\n      limitLow: \"Låg larmgräns\",\r\n      contactType: \"Kontakttyp\",\r\n      alarmContacts: \"Alarm-kontakter\",\r\n      activeDays: \"Aktiva dagar\",\r\n      limit: \"Låg och Hög larmgräns\",\r\n      activeAlarms: \"Okvitterade Larm\",\r\n      messageSent: \"Skickat meddelande\",\r\n      reset: \"Kvitterat\",\r\n      triggered: \"Utlöst\",\r\n      user: \"Kvitterat av\",\r\n      value: \"Utlösande värde\",\r\n      signalType: \"Typ av Signal\",\r\n      digitalTrigger: \"Utlös Vid\",\r\n      triggerHigh: \"Hög Signal\",\r\n      triggerLow: \"Låg Signal\",\r\n      advanced: \"Avancerat larm\",\r\n      alarmComment: \"Erkänn förnuftet\",\r\n      logicalOperator: \"Operator\",\r\n    },\r\n\r\n    validation: {\r\n      nameRequired: \"Detta fält måste vara ifyllt\",\r\n      max: \"Maxgränsen är 255\",\r\n      min: \"Mingränsen är \",\r\n    },\r\n\r\n    tabs: {\r\n      triggered: \"Utlösta larm\",\r\n      allAlarms: \"Alla Larm\",\r\n      history: \"Larmhistorik\",\r\n    },\r\n  },\r\n\r\n  batteryStatus: {\r\n    levels: \"Batterinivåer\",\r\n    value: \"Värde\",\r\n    lastSeen: \"Senaste värdet\",\r\n    label: \"Batterispänning\",\r\n  },\r\n\r\n  tagdata: {\r\n    name: \"Data\",\r\n    amount: \"Antal datapunkter:\",\r\n    notation: \"{0} st\",\r\n    latestactivity: \"Senaste aktivitet\",\r\n    latestvalue: \"Senaste värdet\",\r\n    defaultKey: \"Standardnyckel\",\r\n\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Namn\",\r\n      key: \"Sensor\",\r\n      value: \"Värde\",\r\n      createdAt: \"Skapad\",\r\n      label: \"Label\",\r\n      tagDeveui: \"Node\",\r\n      publishKey: \"Publicera Sensor\",\r\n    },\r\n  },\r\n\r\n  tag: {\r\n    sensor: {\r\n      titile: \"Sensorer\",\r\n      add: \"Lägg till ny Sensor\",\r\n    },\r\n    choose: \"Sensor väljare\",\r\n    search: \"Sök Nod\",\r\n    chooseDecoder: \"Välj en decoder\",\r\n    decoder: \"Decoder\",\r\n    name: \"Noder\",\r\n    amount: \"Antal noder:\",\r\n    notation: \"{0} st\",\r\n    details: \"Sensordetaljer\",\r\n    removeImage: \"Ta bort bild\",\r\n    chooseKey: \"Välj nyckel\",\r\n    saveKeyAsDefault: \"Standard\",\r\n    newKey: \"Ny Sensor\",\r\n    filter: \"Filtrera Noder\",\r\n    generateId: \"Generera ID\",\r\n\r\n    uploadExplanation:\r\n      \"Dra in din csv fil eller klicka här för att ladda upp Noder\",\r\n    uploadExplanationHint: \"Du kan ladda ner en exempel fil på formatet här: \",\r\n    exampleLink: \"CSV Exempel\",\r\n\r\n    errorTogglePublishKey:\r\n      \"Något gick fel vid försök att växlande av publicering\",\r\n\r\n    publishing: {\r\n      title: \"Publicering\",\r\n      reset: {\r\n        0: \"Återställ MQTT Publicering\",\r\n        1: \"Återställ Sparkplug Publicering\",\r\n        2: \"Återställ Modbus Publicering\",\r\n        3: \"Återställ OPC-UA Publicering\",\r\n      },\r\n\r\n      mqtt: \"MQTT\",\r\n      modbus: \"Modbus\",\r\n      sparkplug: \"Sparkplug\",\r\n    },\r\n\r\n    tabs: {\r\n      settings: \"Inställningar\",\r\n      data: \"Data\",\r\n      events: \"Event Logg\",\r\n      sensors: \"Sensorer\",\r\n    },\r\n\r\n    createSteps: {\r\n      step1: \"Typ av Nod\",\r\n      step2: \"Välj Application\",\r\n      step3: \"Välj Decoder\",\r\n      step4: \"Ange Nycklar\",\r\n      step5: \"MQTT\",\r\n      step6: \"Attribut\",\r\n      finish: \"Klar\",\r\n\r\n      spotIo4: \"SpotIO val\",\r\n      modbus4: \"Modbus\",\r\n    },\r\n\r\n    picker: {\r\n      step1: \"Välj en Nod\",\r\n      step2: \"Välj en Sensor\",\r\n    },\r\n\r\n    tagPool: {\r\n      tagPool: \"Nod-pool\",\r\n      deveui: \"Deveui\",\r\n      createdAt: \"Created\",\r\n      hide: \"Göm från lista\",\r\n      take: \"Lägg till sensor\",\r\n      show: \"Visa i listan\",\r\n      hiddenTags: \"Gömda noder\",\r\n    },\r\n\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Namn\",\r\n      deveui: \"DevEUI\",\r\n      appKey: \"AppKey\",\r\n      appEui: \"AppEUI\",\r\n      applicationId: \"Applikation\",\r\n      profile: \"Profil\",\r\n      lat: \"Latitud\",\r\n      long: \"Longitud\",\r\n      latAndLng: \"Latitud och Longitud\",\r\n      image: \"Bild på installation\",\r\n      battery: \"Batterinivå\",\r\n      activeAlarm: \"Larmar\",\r\n      activeData: \"Aktiv\",\r\n      latestValue: \"Senaste Värde\",\r\n      location: \"Placering\",\r\n      dataPoints: \"Datapunkter/24h\",\r\n      type: \"Typ\",\r\n      nodeType: \"Nod Typ\",\r\n    },\r\n\r\n    nodeTypes: {\r\n      0: \"LORA\",\r\n      1: \"API\",\r\n      2: \"MQTT\",\r\n      3: \"NR\",\r\n      4: \"SPARKPLUG\",\r\n      5: \"SpotIO\",\r\n      6: \"Modbus\",\r\n    },\r\n\r\n    attributes: {\r\n      name: \"Namn\",\r\n      value: \"Värde\",\r\n      title: \"Attribut\",\r\n    },\r\n  },\r\n\r\n  license: {\r\n    usedGateways: \"Totalt använda Gateways i Licensen\",\r\n    usedNodes: \"Totalt använda Noder i Licensen\",\r\n    editMaxTitle: \"Redigera gränser\",\r\n    companySettings: \"Konto inställningar\",\r\n    licenseManagement: \"Licens hantering\",\r\n    publicKey: \"Publik nyckel\",\r\n    upload: \"Ladda upp ny licens\",\r\n    uploadHint: \"Dra din nya licens eller tryck för att välja licens-fil\",\r\n    license: \"Licens\",\r\n    licensee: \"Licenshavare\",\r\n    coveredFeatures: \"Täckt Funktionalitet\",\r\n    fields: {\r\n      email: \"Email\",\r\n      name: \"Namn\",\r\n      maxCompanies: \"Max Antal Företag\",\r\n      decoderIncluded: \"Decoder Inkluderad\",\r\n      whiteLabel: \"White-Label\",\r\n\r\n      licenseId: \"Licens ID\",\r\n      status: \"Status\",\r\n      publicKey: \"Publik Nyckel\",\r\n      maxGateways: \"Max Antal Gateways\",\r\n      maxNodes: \"Max Antal Noder\",\r\n      expires: \"Löper ut\",\r\n    },\r\n\r\n    limitations: {\r\n      fields: {\r\n        companyId: \"Konto ID\",\r\n        companyName: \"Konto\",\r\n        maxGateways: \"Max Gateways (0 = Obegränsad)\",\r\n        maxNodes: \"Max Noder (0 = Obegränsad)\",\r\n        updatedAt: \"Uppdaterad\",\r\n\r\n        currentNodes: \"Nuvarande Noder\",\r\n        currentGateways: \"Nuvarande Gateways\",\r\n      },\r\n\r\n      errors: {\r\n        gateway:\r\n          \"Licensen måste utökas för att kunna lägga till fler Gateways, ta kontakt med din leverantör.\",\r\n        tag: \"Licensen måste utökas för att kunna lägga till fler Noder, ta kontakt med din leverantör.\",\r\n        company:\r\n          \"Licensen måste utökas för att kunna lägga till fler Konton, ta kontakt med din leverantör.\",\r\n        expiresIn:\r\n          \"Licensen går ut om {0} dagar, ta kontakt med din leverantör.\",\r\n      },\r\n\r\n      tos: {\r\n        title: \"Licenseavtal\",\r\n        description: \"Läs licenseavtalet och acceptera för att logga in\",\r\n        accept: \"Acceptera\",\r\n        checkbox: \"Acceptera licenseavtal\",\r\n      },\r\n    },\r\n\r\n    errors: {\r\n      couldNotSetLimits: \"Kunde inte sätta limitationer för det valda kontot\",\r\n    },\r\n  },\r\n\r\n  validation: {\r\n    required: \"{0} måste vara ifylld\",\r\n    max: \"{0} får max vara {1} tecken\",\r\n    requiredSingle: \"Detta fält måste vara ifyllt\",\r\n    toLong: \"Detta fält överstiger maxlängd\",\r\n    contryCodeError:\r\n      \"Glöm inte att telefonnumret måste ha en landskod (ex 4607xxxxxxxx)\",\r\n    passwordMissmatch: \"Lösenorden matchar inte\",\r\n    deveuiConflict: \"Nod med detta DevEUI finns redan på servern\",\r\n    passwordLength: \"Lösenordet måste vara minst 6 karaktärer långt\",\r\n    passwordUpperAndLower:\r\n      \"Lösenordet måste innehålla minst en versal och minst en liten bokstav\",\r\n  },\r\n\r\n  warning: {\r\n    amount: \"Aktiva Larm:\",\r\n    notation: \"{0} st\",\r\n  },\r\n\r\n  mqtt: {\r\n    settingsTabTitle: \"MQTT Brokers\",\r\n    brokerListTitle: \"MQTT Brokers\",\r\n    createTitle: \"Lägg till MQTT Broker\",\r\n    updateTitle: \"Uppdatera MQTT Broker\",\r\n    selectBroker: \"Välj en MQTT Broker\",\r\n    testBroker: \"Testa anslutning\",\r\n    topicCreateTitle: \"MQTT Topics\",\r\n    topicDescription:\r\n      \"Dem topics som är valda kommer prenumereras på genom den valda MQTT Broker. Varje topic ska vara specifik för Noden, om wildcards (+) används i topic bör det inte vara ett 'Multilevel Wildcard (#)', om det används kommer det ändras till ett vanligt wildcard.\",\r\n    topicAdd: \"Lägg till en Topic\",\r\n    topicAlreadyExists: \"Den valda Topicen finns redan på denna enheten\",\r\n    createTopicTitle: \"Skapa en ny Prenumeration\",\r\n\r\n    sparkplug: {\r\n      use: \"Använd Sparkplug Publicering\",\r\n      meta: {\r\n        hint: {\r\n          edgeId: \"Sparkplug edge id\",\r\n          groupId: \"Sparkplug grupp id\",\r\n        },\r\n\r\n        edgeId: \"Edge ID\",\r\n        groupId: \"Grupp ID\",\r\n        useNameForPublish: \"Använd namn istället för NodID\",\r\n      },\r\n    },\r\n\r\n    meta: {\r\n      fields: {\r\n        topic: \"Topic\",\r\n        publishTopic: \"Publicerings Topic (Valfri)\",\r\n        publishTopicHint: \"Kan inte vara samma Topic som en prenumeration\",\r\n        parsingTopic: \"Dekoder typ\",\r\n        payloadTest: \"Payload att testa\",\r\n        testTopic: \"Förväntad topic i Decode funktionen\",\r\n      },\r\n    },\r\n\r\n    sslmodes: {\r\n      0: \"None\",\r\n      1: \"CA Signed server certificate\",\r\n      2: \"Self-signed server certificate\",\r\n    },\r\n\r\n    versions: {\r\n      0: \"3.1.1\",\r\n      1: \"3.1.0\",\r\n    },\r\n\r\n    validation: {\r\n      notfound: \"Kunde inte hitta Broker\",\r\n    },\r\n\r\n    fields: {\r\n      status: \"Status\",\r\n      hostname: \"Hostnamn\",\r\n      port: \"Port\",\r\n      version: \"MQTT Version\",\r\n      sslmode: \"SSL/TLS Mode\",\r\n      CACertificate: \"CA Certificate\",\r\n      ClientCertificate: \"Client Certificate\",\r\n      ClientKey: \"Client Key\",\r\n      KeyPassPhrase: \"Key Passphrase (Optional)\",\r\n      useAuth: \"Använd Autentisering\",\r\n      username: \"Användarnamn\",\r\n      password: \"Lösenord\",\r\n      isGlobal: \"Är Global Broker\",\r\n\r\n      metrics: {\r\n        messages: {\r\n          total: \"Totalt antal Meddelanden\",\r\n          week: \"Meddelanden denna Vecka\",\r\n          day: \"Meddelanden denna Dag\",\r\n        },\r\n\r\n        publish: {\r\n          total: \"Totalt antal Publicerade\",\r\n          week: \"Publicerat denna Vecka\",\r\n          day: \"Publicerat denna Dag\",\r\n        },\r\n      },\r\n    },\r\n  },\r\n};\r\n","export default {\r\n  routes: {\r\n    home: \"Hjem\",\r\n    login: \"Log ind\",\r\n    register: \"Registrer\",\r\n    registerCompany: \"Ny virksomhed\",\r\n    logout: \"Log ud\",\r\n\r\n    company: \"Virksomhed\",\r\n    dashboard: \"Dashboard\",\r\n    application: \"Applikationer\",\r\n    alarm: \"Alarmhåndtering\",\r\n\r\n    user: \"Brugere\",\r\n    tagdata: \"Data\",\r\n    tag: \"Noder\",\r\n    script: \"Script Engine\",\r\n    report: \"Rapporter\",\r\n    contact: \"Kontakt\",\r\n    apiRef: \"API-Dokumentation\",\r\n    shop: \"Køb noder\",\r\n    manual: \"Manual\",\r\n    userEdit: \"Konto\",\r\n    settings: \"Indstillinger\",\r\n    signalTest: \"Felttest\",\r\n    gateway: \"Gateways\",\r\n    news: \"Nyheder\",\r\n    roles: \"Roller\",\r\n\r\n    superadmin: \"Admin\",\r\n  },\r\n\r\n  camOnline: {\r\n    servers: \"Cam-Online Servere\",\r\n    couldNotFetchServers: \"Kunne ikke hente CamOnline Servere\",\r\n    couldNotCreateServer: \"Noget gik galt ved oprettelse af CamOnline Server\",\r\n    couldNotDeleteServer: \"Noget gik galt ved sletning af CamOnline Server\",\r\n\r\n    serverSelect: \"Vælg Cam-Online Server\",\r\n    streamSelect: \"Vælg et kamera\",\r\n    createDialogTitle: \"Tilføj en ny server\",\r\n    tabTitle: \"Cam-Online\",\r\n    fields: {\r\n      url: \"URL (f.eks. https://portal.cam-online.se)\",\r\n      accessToken: \"Adgangstoken\",\r\n      isGlobal: \"Global Server\",\r\n    },\r\n  },\r\n  roles: {\r\n    toolbarTitle: \"Roller\",\r\n    permissionCounts: \"Tilladelser\",\r\n\r\n    missingRecommendedTitle:\r\n      \"Det ser ud til, at du mangler nogle anbefalede tilladelser. Ønsker du at tilføje dem?\",\r\n    missingRecommendedButton: \"Klik her!\",\r\n\r\n    pickPermissionsTitle: \"Vælg tilladelser for denne rolle\",\r\n    pickPermissionsDesc:\r\n      \"Når du vælger tilladelser, kan du støde på <b class='yellow--text text--darken-3'>Orange</b> tilladelser. Disse tilladelser anbefales for at få den grundlæggende funktionalitet til at fungere. Du kan vælge en af standardrollerne nedenfor for at bruge dem som skabelon.\",\r\n\r\n    layerTypes: {\r\n      0: \"Frontend-essentials\",\r\n      1: \"Frontend\",\r\n      2: \"Backend\",\r\n    },\r\n\r\n    fields: {\r\n      name: \"Rollenavn\",\r\n      permissionCount: \"Antal tilladelser\",\r\n      isDefault: \"Er standard\",\r\n      isSuper: \"Er administrator\",\r\n    },\r\n  },\r\n\r\n  eventhub: {\r\n    waiting: \"Venter på nye begivenheder...\",\r\n\r\n    events: {\r\n      data: \"Ny data\",\r\n      endpoint: \"Endpoint-begivenhed\",\r\n    },\r\n  },\r\n\r\n  downlinks: {\r\n    editorTitle: \"Downlinks\",\r\n\r\n    validation: {\r\n      port: \"Porten skal være større end 0\",\r\n    },\r\n  },\r\n\r\n  conditionTree: {\r\n    selectValueTypeTitle: \"Vælg værditype\",\r\n    selectType: \"Vælg type\",\r\n    selectValue: \"Vælg værdi\",\r\n    chooseSensor: \"Vælg sensor\",\r\n\r\n    textInputPlaceholder: \"Tekstværdi\",\r\n    numberInputPlaceholder: \"Talværdi\",\r\n\r\n    types: {\r\n      0: \"Sensorværdi\",\r\n      1: \"Tekst\",\r\n      2: \"Tal\",\r\n      3: \"Tid\",\r\n      4: \"Ingen værdi\",\r\n    },\r\n\r\n    ops: {\r\n      greater: \"Større end\",\r\n      less: \"Mindre end\",\r\n      equal: \"Lig med\",\r\n      greaterOrEqual: \"Større eller lig med\",\r\n      lessOrEqual: \"Mindre eller lig med\",\r\n      notEqual: \"Ikke\",\r\n    },\r\n  },\r\n\r\n  accessToken: {\r\n    title: \"Adgangstokens\",\r\n    newToken: \"Opret en token\",\r\n    cardNewTitle: \"Ny token\",\r\n    cardTitle: \"Adgangstoken\",\r\n    fields: {\r\n      id: \"Id\",\r\n      label: \"Titel\",\r\n      token: \"Token\",\r\n      isCompany: \"Firma-token\",\r\n    },\r\n  },\r\n\r\n  news: {\r\n    cannotGetNews: \"Kunne ikke hente nyheder fra portalen.\",\r\n  },\r\n\r\n  gateway: {\r\n    toolbar: \"Gateways\",\r\n    toolbarTitle: \"Gateways\",\r\n    bestGw: \"Bedste gateway\",\r\n\r\n    pickLocationButton: \"Indstil breddegrad og længdegrad\",\r\n    fields: {\r\n      name: \"Navn\",\r\n      macAddress: \"GatewayEUI\",\r\n      latitude: \"Breddegrad\",\r\n      longitude: \"Længdegrad\",\r\n      createdAt: \"Oprettet\",\r\n    },\r\n  },\r\n\r\n  signalTest: {\r\n    toolbarTitle: \"Feltests\",\r\n    startTest: \"Start en ny test\",\r\n    endTest: \"Afslut test\",\r\n    peekTest: \"Se på test\",\r\n    createToolbar: \"Start en ny test\",\r\n    rawData: \"Rådata\",\r\n    updateTimer: \"Opdateringstimer\",\r\n\r\n    fields: {\r\n      testId: \"Test-id\",\r\n      description: \"Beskrivelse\",\r\n      startTest: \"Start\",\r\n      endTest: \"Afslut\",\r\n      active: \"Aktiv\",\r\n\r\n      avgSnr: \"Gennemsnitlig SNR\",\r\n      avgRssi: \"Gennemsnitlig RSSI\",\r\n\r\n      data: {\r\n        rssi: \"RSSI\",\r\n        snr: \"SNR\",\r\n        lat: \"BREDDEGRAD\",\r\n        lng: \"LENGDEGRAD\",\r\n        createdAt: \"TID\",\r\n      },\r\n    },\r\n\r\n    tab: {\r\n      map: \"KORT\",\r\n      data: \"STATISTIK\",\r\n    },\r\n  },\r\n\r\n  trend: {\r\n    res: {\r\n      week: \"Opløsning: Uge\",\r\n      day: \"Opløsning: Dag\",\r\n      hour: \"Opløsning: Time\",\r\n      five: \"Opløsning: 5 Timer\",\r\n    },\r\n  },\r\n\r\n  notifications: {\r\n    clearNotifications: \"Marker alle som læst\",\r\n    noNotifications: \"Du er opdateret.\",\r\n  },\r\n\r\n  landing: {\r\n    slogan: \"VISUALISERING GJORT LET\",\r\n    or: \"ELLER\",\r\n    key: {\r\n      title: \"Nøglefunktioner\",\r\n      1: \"Nodeadministration\",\r\n      2: \"Visualisering\",\r\n      3: \"Tilpassede dashboards\",\r\n      4: \"Alarmstyring\",\r\n      5: \"Personalestyring\",\r\n      6: \"Scriptmotor\",\r\n\r\n      description: {\r\n        1: \"Administrer sensorer til håndtering af data\",\r\n        2: \"Få dine sensordata visualiseret, så du kan observere dataene på den ønskede måde\",\r\n        3: \"Opret dit eget dashboard specialiseret til DIT anvendelsesområde\",\r\n        4: \"Alarmstyring til kritiske anvendelsestilfælde\",\r\n        5: \"Til styring af dit firmas personale\",\r\n        6: \"Avancerede brugere kan bruge scriptmotoren til at bearbejde data\",\r\n      },\r\n    },\r\n\r\n    usecases: {\r\n      title: \"Anvendelsesområder\",\r\n      1: \"Miljøsensorer\",\r\n      2: \"Elektricitetssensorer\",\r\n      3: \"Bevægelsessensorer\",\r\n      4: \"Temperatursensorer\",\r\n\r\n      description: {\r\n        1: \"Perfekt til smarte landbrugsløsninger som Ljusgarda, der bruger portalen. Alarmfunktionen i SENSORONLINE er nøglen til at holde dine aktiver sikre.\",\r\n        12: \"Læs mere om Ljusgarda\",\r\n        2: \"Mål strømmen til gadelamper i din by. Brug scriptmotoren til at forstå de indsamlede data.\",\r\n        3: \"Mål, hvor mange personer eller biler der forlader eller indtaster din facilitet.\",\r\n        4: \"Selvfølgelig er temperaturmålinger en vigtig del af vores platform. Mange virksomheder bruger og holder øje med deres aktivers temperaturer.\",\r\n      },\r\n    },\r\n\r\n    help: {\r\n      title: \"Kontakt os\",\r\n\r\n      sensors: {\r\n        title: \"Har brug for nye noder?\",\r\n        description:\r\n          \"Hvis du har brug for hjælp til at løse et problem, om det så er hvilken sensor du skal bruge eller hvordan du kan visualisere dine data på en bedre måde. Tøv ikke med at kontakte os, så vi kan gøre dit liv lettere. \\n Du kan se vores portefølje af \",\r\n        store: \"noder, som vi sælger her hos KK Partner A/S.\",\r\n      },\r\n\r\n      api: {\r\n        title: \"API til din bekvemmelighed\",\r\n        description:\r\n          \"Du kan selvfølgelig få eller indsætte data fra dine andre applikationer til platformen. Se vores API-slutpunkter \",\r\n      },\r\n\r\n      contact: {\r\n        title: \"Er du interesseret? Kontakt os!\",\r\n        siencepark: \"Skövde Science Park\",\r\n        address: \"Kaplansgatan 16B\",\r\n        postal: \"521 32 Skövde\",\r\n        country: \"Sverige\",\r\n        phoneTitle: \"Telefon\",\r\n        phonenumber: \"+46 (0) 500 600 022\",\r\n        phonenumber2: \"+46 (0) 733 165 100\",\r\n        emailTitle: \"Email\",\r\n        email: \"info@sensor-online.se\",\r\n      },\r\n    },\r\n  },\r\n\r\n  imageMap: {\r\n    chooseTag: \"Vælg type markør\",\r\n  },\r\n\r\n  log: {\r\n    type: {\r\n      sms: \"SMS\",\r\n      app: \"Applikation\",\r\n      warning: \"Advarsel\",\r\n      error: \"Fejl\",\r\n      userevent: \"Brugerbegivenhed\",\r\n      login: \"Login\",\r\n    },\r\n\r\n    logTable: {\r\n      title: \"Log\",\r\n    },\r\n\r\n    activeAlarms: {\r\n      title: \"Aktive alarmer\",\r\n    },\r\n\r\n    activeUsersTable: {\r\n      title: \"Logget ind brugere\",\r\n    },\r\n\r\n    fields: {\r\n      type: \"Type\",\r\n      user: \"Bruger\",\r\n      message: \"Besked\",\r\n      createdAt: \"Oprettet\",\r\n\r\n      status: \"Status\",\r\n      lastAction: \"Begivenhed\",\r\n      lastSeen: \"Tidsstempel\",\r\n\r\n      alarm: {\r\n        name: \"Navn\",\r\n        value: \"Værdi\",\r\n        messageSent: \"Sendt besked\",\r\n      },\r\n    },\r\n  },\r\n  common: {\r\n    yes: \"Ja\",\r\n    no: \"Nej\",\r\n    on: \"Tændt\",\r\n    off: \"Slukket\",\r\n    timestamp: \"Tidsstempel\",\r\n    lang: \"Sprog\",\r\n    error: \"Der opstod en fejl, prøv igen senere\",\r\n    edit: \"Rediger\",\r\n    delete: \"Slet\",\r\n    reset: \"Nulstil\",\r\n    purge: \"Sletning\",\r\n    submit: \"Send\",\r\n    create: \"Opret\",\r\n    update: \"Opdater\",\r\n    get: \"Få\",\r\n    run: \"Kør\",\r\n    address: \"Adresse\",\r\n    link: \"Link\",\r\n    height: \"Højde\",\r\n    width: \"Bredde\",\r\n    new: \"Ny\",\r\n    value: \"Værdi\",\r\n    newValue: \"Ny værdi\",\r\n    nothingToSee: \"Intet at se her\",\r\n    next: \"Næste\",\r\n    label: \"Mærkat\",\r\n    editLabel: \"Rediger mærkat\",\r\n    explanation: \"Forklaring\",\r\n    clear: \"Ryd\",\r\n    never: \"Aldrig\",\r\n    upload: \"Uploade\",\r\n    click: \"Klik\",\r\n    required: \"Kræves\",\r\n\r\n    previousStep: \"Tilbage\",\r\n    hours: \"Timer\",\r\n    mintues: \"Minutter\",\r\n\r\n    search: \"Søg\",\r\n    close: \"Luk\",\r\n    cancel: \"Annuller\",\r\n    success: \"Succesfuldt!\",\r\n\r\n    login: \"Login\",\r\n    register: \"Tilmeld\",\r\n    email: \"Email\",\r\n    password: \"Kodeord\",\r\n    confirmPassword: \"Bekræft kodeord\",\r\n    newPassword: \"Nyt kodeord\",\r\n    forgotPassword: \"Glemt kodeord\",\r\n\r\n    createdAt: \"Oprettet\",\r\n    updatedAt: \"Opdateret\",\r\n\r\n    save: \"Gem\",\r\n    show: \"Vis\",\r\n    updated: \"Opdateret\",\r\n    created: \"Oprettet\",\r\n    deleted: \"Slettet\",\r\n    back: \"Tilbage\",\r\n    send: \"Send\",\r\n    refresh: \"Opdater\",\r\n\r\n    preview: \"Forhåndsvisning\",\r\n    previewSpacing: \"Plads til andre moduler\",\r\n\r\n    saveColor: \"Gem farve\",\r\n    alarmColorPrecedence:\r\n      \"Alarmfarver vil altid have forrang over manuelt valgte farver. Tving overordning i attributter, hvis dette ikke er det ønskede.\",\r\n\r\n    add: \"Tilføj\",\r\n\r\n    settings: \"Indstillinger\",\r\n\r\n    noTagOrAppChoosen: \"Node og/eller applikation mangler\",\r\n    noDataFound: \"Ingen data fundet\",\r\n    darkTheme: \"Mørkt tema\",\r\n\r\n    active: \"Aktiv\",\r\n    notActive: \"Inaktiv\",\r\n\r\n    sent: \"Sendt\",\r\n    notSent: \"Ikke sendt\",\r\n\r\n    loginOrRegister: \"Log ind eller registrer\",\r\n\r\n    copy: \"Kopier\",\r\n    verify: \"Er du sikker på, at du vil fortsætte?\",\r\n    verifyDelete: \"Er du sikker på, at du vil fjerne denne ressource?\",\r\n\r\n    disagree: \"Nej\",\r\n    accept: \"Ja\",\r\n\r\n    or: \"Eller\",\r\n\r\n    registerCompany: \"Opret nyt firma\",\r\n\r\n    dashboard: \"Gå til oversigt\",\r\n    switchCompany: \"Skift firma\",\r\n\r\n    inactiveSensors: \"Inaktive sensorer\",\r\n    activeSensors: \"Aktive sensorer\",\r\n    sensorStatus: \"Node-status\",\r\n    sensorName: \"Node-navn\",\r\n\r\n    updatesPending: \"Ændringer afventer opdatering\",\r\n    pickLocationConfirm: \"Ønsker du at gemme positionen for denne ressource?\",\r\n\r\n    toFewBytes: \"For få bytes\",\r\n    byteInputRequired: \"Du skal udfylde dette felt\",\r\n\r\n    getMorePages: \"Indlæs flere\",\r\n\r\n    searchType: {\r\n      TAG: \"Noder\",\r\n      ALARM: \"Alarmer\",\r\n      APPLICATION: \"Applikationer\",\r\n      DASHBOARD: \"Oversigter\",\r\n      GATEWAY: \"Gateways\",\r\n      SCRIPT: \"Scripts\",\r\n    },\r\n\r\n    time: {\r\n      day: \"Dag\",\r\n      hour: \"Time\",\r\n      quarterHour: \"Kvart time\",\r\n      minute: \"Minut\",\r\n    },\r\n\r\n    days: {\r\n      monday: \"Mandag\",\r\n      tuesday: \"Tirsdag\",\r\n      wednesday: \"Onsdag\",\r\n      thursday: \"Torsdag\",\r\n      friday: \"Fredag\",\r\n      saturday: \"Lørdag\",\r\n      sunday: \"Søndag\",\r\n    },\r\n\r\n    dateRange: {\r\n      0: \"Seneste time\",\r\n      1: \"Seneste 5 timer\",\r\n      2: \"Seneste 24 timer\",\r\n      3: \"Seneste 7 dage\",\r\n      4: \"Seneste 30 dage\",\r\n    },\r\n\r\n    staticinformation: {\r\n      datapoints: \"Datapunkter seneste 24 timer\",\r\n      inactiveSensors: \"Inaktive sensorer\",\r\n      activeAlarms: \"Aktive alarmer\",\r\n      datapointsLastWeek: \"Datapunkter sidste uge pr. dag\",\r\n      weekday: \"Ugedag\",\r\n    },\r\n\r\n    errors: {\r\n      getDecoders: \"Kunne ikke hente dekodere\",\r\n      backendConnection: \"Der kunne ikke oprettes forbindelse til backend.\",\r\n    },\r\n\r\n    actions: {\r\n      createCategory: \"Opret kategori\",\r\n      editCategory: \"Rediger kategori\",\r\n      remove: \"Fjern\",\r\n\r\n      createDashboard: \"Opret oversigt\",\r\n      copyDashboard: \"Kopier oversigt\",\r\n    },\r\n\r\n    iconSelector: {\r\n      selectIcon: \"Vælg ikon\",\r\n      searchPlaceholder: \"Søg efter ikoner\",\r\n    },\r\n  },\r\n\r\n  settings: {\r\n    title: \"Indstillinger\",\r\n    userSettings: \"Brugerindstillinger\",\r\n    themes: \"Temaer\",\r\n\r\n    company: {\r\n      title: \"Firma indstillinger\",\r\n    },\r\n\r\n    data: {\r\n      toolbarTransparancy: \"Gennemsigtig værktøjslinje\",\r\n      stickySideMenu: \"Fast side-menu\",\r\n    },\r\n\r\n    global: {\r\n      name: \"Generelle indstillinger\",\r\n      branding: \"Branding\",\r\n      powered_by: \"Drevet af\",\r\n      SMS_PROVIDER: \"SMS-udbyder\",\r\n      SMS_IP1_FROM: \"IP1 Afsendernavn\",\r\n      SMS_IP1_USERNAME: \"IP1 Brugernavn\",\r\n      SMS_IP1_PASSWORD: \"IP1 Adgangskode\",\r\n      SMS_TWILIO_ACCOUNTSID: \"Twilio AccountSID\",\r\n      SMS_TWILIO_ACCESSTOKEN: \"Twilio AccessToken\",\r\n      SMS_TWILIO_NUMBER: \"Twilio-nummer\",\r\n    },\r\n  },\r\n\r\n  companysetting: {\r\n    field: {\r\n      smsprovider: \"SMS-udbyder\",\r\n      alarmTitle: \"Alarm\",\r\n      nodeTitle: \"Node\",\r\n      nodeAlias: \"Node Alias\",\r\n\r\n      inactivityAlarmContact: \"E-mail til inaktivitetsalarm\",\r\n\r\n      hint: {\r\n        inactivityAlarmContact:\r\n          \"E-mail-adresse til modtagelse af alarmer, når enheder har været inaktive i mindst 6 timer\",\r\n        nodeAlias: \"Dette hjælper med at foreslå og oprette nodenavnet\",\r\n      },\r\n\r\n      ip1: {\r\n        username: \"IP1-brugernavn\",\r\n        password: \"IP1-adgangstoken / adgangskode\",\r\n        from: \"Afsendernavn\",\r\n        hint: {\r\n          from: \"Dette er et navn, der vil blive brugt, når SensorOnline sender SMS'er\",\r\n          username:\r\n            \"Hvis du vil finde dit brugernavn, skal du besøge dokumentationen: https://docs.sensor-online.se\",\r\n          password:\r\n            \"Hvis du vil finde din adgangskode, skal du besøge dokumentationen: https://docs.sensor-online.se\",\r\n        },\r\n      },\r\n\r\n      twilio: {\r\n        number: \"Twilio-nummer\",\r\n        accountSid: \"Twilio AccountSID\",\r\n        accessToken: \"Twilio AccessToken\",\r\n        hint: {\r\n          number:\r\n            \"Et nummer, du ejer på Twilio, som du kan sende beskeder med.\",\r\n          accountSid:\r\n            \"Du kan finde flere oplysninger om, hvor du finder AccountSID, i vores dokumentation: https://docs.sensor-online.se\",\r\n          accessToken:\r\n            \"Du kan finde flere oplysninger om, hvor du finder AccessToken, i vores dokumentation: https://docs.sensor-online.se\",\r\n        },\r\n      },\r\n    },\r\n  },\r\n\r\n  map: {\r\n    setPosFormTitle: \"Vælg sensor for at ændre position\",\r\n  },\r\n\r\n  dashboard: {\r\n    name: \"Dashboards\",\r\n    selectDashboard: \"Dashboards\",\r\n    createTitleClean: \"Opret nyt dashboard\",\r\n    copyDeleteTitle: \"Slet eller kopier dashboard\",\r\n    createTitle: \"Eller opret et nyt dashboard\",\r\n    chooseTitle: \"Vælg dashboard\",\r\n    changeTitle: \"Skift dashboard\",\r\n    navigationTitle: \"Navigationsmenu\",\r\n\r\n    fields: { name: \"Navn\" },\r\n    nameReq: \"Dette felt skal udfyldes\",\r\n\r\n    categories: {\r\n      create: \"Opret kategori\",\r\n      title: \"Titel\",\r\n      icon: \"Ikon\",\r\n    },\r\n\r\n    copy: {\r\n      tooltip: \"Kopier widget\",\r\n    },\r\n\r\n    public: {\r\n      title: \"Offentlige dashboards\",\r\n      create: \"Opret et offentligt dashboard\",\r\n      createNew: \"Opret et nyt offentligt dashboard\",\r\n      copiedSuccessful: \"Link kopieret til udklipsholderen\",\r\n      copiedUnsuccessful: \"Kunne ikke kopiere link {link}\",\r\n      URL: \"Dashboard-URL\",\r\n      yes: \"Ja\",\r\n      no: \"Nej\",\r\n      remove: \"Fjern\",\r\n\r\n      fields: {\r\n        host: \"Vært\",\r\n        expiresAt: \"Gyldig indtil\",\r\n        expired: \"Aktiv\",\r\n        copyAction: \"Link\",\r\n        dashboardName: \"Dashbaord\",\r\n      },\r\n    },\r\n  },\r\n  module: {\r\n    create: \"Opret en ny enhed\",\r\n    edit: \"Rediger enhed\",\r\n    metas: \"Attributter\",\r\n\r\n    chart: {\r\n      types: {\r\n        line: \"Linje\",\r\n        area: \"Område\",\r\n        bar: \"Søjle\",\r\n        scatter: \"Spredning\",\r\n        vertical: \"Vertikal\",\r\n      },\r\n    },\r\n\r\n    mapMarkers: {\r\n      node: \"Peg med nodens info\",\r\n      sensor: \"Tekstetiket med seneste sensorværdi\",\r\n    },\r\n\r\n    meta: {\r\n      label: \"Attributter\",\r\n      save: \"Gem attributter\",\r\n      opacity: \"Gennemsigtighed\",\r\n\r\n      paletteToModuleMode: \"Skift modulfarver\",\r\n      paletteToCardMode: \"Skift kortfarver\",\r\n\r\n      valueMatch: \"Attribut 1\",\r\n      value: \"Attribut 2\",\r\n      key: \"Sensor\",\r\n      icon: \"Ikon\",\r\n\r\n      styles: {\r\n        text: {\r\n          textcolor: \"Tekstfarve\",\r\n          background: \"Baggrund - Indhold\",\r\n          titleBackground: \"Baggrund - Titel\",\r\n        },\r\n\r\n        single: {\r\n          textcolor: \"Tekstfarve\",\r\n          background: \"Baggrund - Indhold\",\r\n          titleBackground: \"Baggrund - Titel\",\r\n          sparkline: \"Linjediagram\",\r\n          sparklineLabel: \"Linjediagram mærkat\",\r\n        },\r\n\r\n        color: {\r\n          cardBackground: \"Kortbaggrund\",\r\n          titleBackground: \"Titelbaggrund\",\r\n          titleText: \"Titeltekst\",\r\n          valueBackground: \"Værdi-baggrund\",\r\n          valueText: \"Værdi-tekst\",\r\n        },\r\n      },\r\n\r\n      fontStyleTypes: {\r\n        title: \"Titel\",\r\n        value: \"Værdi\",\r\n        content: \"Indhold\",\r\n      },\r\n\r\n      keys: {\r\n        value_match: \"Værdi-navn\",\r\n        icon: \"Suffiksikon\",\r\n        sufix: \"Suffiks\",\r\n        prefix: \"Præfiks\",\r\n        deveui: \"Node\",\r\n        maxheight: \"Maksimal højde\",\r\n        scriptid: \"Script-ID\",\r\n        target: \"Mål\",\r\n        tagkey: \"Sensor\",\r\n        tagkey_x: \"Sensor X\",\r\n        tagkey_y: \"Sensor Y\",\r\n        tagkey_x_max: \"Sensor X Maks.\",\r\n        tagkey_y_max: \"Sensor X Min.\",\r\n        forceColors: \"Tving farver\",\r\n        decimal_rounding: \"Decimal afrunding\",\r\n        dashboard_id: \"Dashboard-ID\",\r\n        sync_y: \"Synkroniser Y-akse\",\r\n        zoom_slider: \"Zoomslider\",\r\n        digital: \"Firkantsbølge\",\r\n        alarm_id: \"Alarmgrænser\",\r\n        so_chart_type: \"Diagramtype\",\r\n        so_ignore_body: \"Kun titel\",\r\n        min_value: \"Minimumsværdi\",\r\n        max_value: \"Maksimumsværdi\",\r\n        axis_label: \"Akselmærkat\",\r\n        default_timespan: \"Standard tidsinterval\",\r\n        font_size: \"Skriftstørrelse\",\r\n        hide_trend_icon: \"Skjul trendikon\",\r\n        horizontel_single_title: \"Vandret titel\",\r\n        so_hide_node_info: \"Skjul nodens information\",\r\n        font_style_large: \"Skrifttype\",\r\n        so_single_sparkline: \"Linjediagram\",\r\n        gauge_180: \"180° måler\",\r\n        button_label: \"Knapmærkat\",\r\n        button_label_on: \"Mærkat for TÆND-knap\",\r\n        button_label_off: \"Mærkat for SLUK-knap\",\r\n        hide_title: \"Skjul titel\",\r\n      },\r\n\r\n      fields: {\r\n        value_match: \"Værdi\",\r\n        name: \"Navn\",\r\n        icon: \"Suffiksikon\",\r\n        sufix: \"Suffiks\",\r\n        prefix: \"Præfiks\",\r\n        deveui: \"Node\",\r\n        maxheight: \"Maksimal højde (f.eks. 300 for 300px)\",\r\n        scriptid: \"Script-ID\",\r\n        target: \"Mål\",\r\n        tagkey: \"Sensor\",\r\n        tagkey_x: \"Sensor X\",\r\n        tagkey_y: \"Sensor Y\",\r\n        tagkey_x_max: \"Sensor X Maks.\",\r\n        tagkey_y_max: \"Sensor X Min.\",\r\n        forceColors: \"Tving farver\",\r\n        decimal_rounding: \"Decimaler\",\r\n        dashboard_id: \"Dashboard-ID\",\r\n        sync_y: \"Synkroniser Y-akse\",\r\n        zoom_slider: \"Vis zoomslider\",\r\n        digital: \"Firkantsbølge\",\r\n        alarm_id: \"Alarmgrænser\",\r\n        chart_type: \"Diagramtype\",\r\n        ignoreBody: \"Kun titel\",\r\n        min_value: \"Minimumsværdi\",\r\n        max_value: \"Maksimumsværdi\",\r\n        axis_label: \"Akselmærkat\",\r\n        default_timespan: \"Standard tidsinterval\",\r\n        font_style_large: {\r\n          type: \"Type\",\r\n          size: \"Størrelse\",\r\n          weight: \"Vægt\",\r\n        },\r\n      },\r\n\r\n      desc: {\r\n        forceColors:\r\n          \"Tving de valgte farver til at tage forrang over alarmfarver\",\r\n      },\r\n    },\r\n\r\n    fields: {\r\n      title: \"Titel\",\r\n      types: \"Type\",\r\n      content: \"Indhold\",\r\n      sm: \"Størrelse på lille skærm\",\r\n      md: \"Størrelse på mellemstor skærm\",\r\n      min: \"Min. værdi\",\r\n      max: \"Maks. værdi\",\r\n      image: \"Billede\",\r\n      url: \"URL\",\r\n      sync_chart: `Synkroniser alle serier på X-aksen\r\nnår dataformaterne er meget forskellige)`,\r\n    },\r\n\r\n    enum: {\r\n      size: { xs: \"EKSTRA LILLE\", sm: \"LILLE\", md: \"MEDIUM\", lg: \"STOR\" },\r\n      types: {\r\n        0: \"Diagram\",\r\n        1: \"Måler\",\r\n        2: \"Tekst\",\r\n        3: \"Billede\",\r\n        4: \"Google Kort\",\r\n        5: \"Virksomhedsoplysninger\",\r\n        6: \"IFrame\",\r\n        7: \"SMHI\",\r\n        8: \"Seneste værdi\",\r\n        9: \"Rå tabel\",\r\n        10: \"Diagram\",\r\n        11: \"Billedkort\",\r\n        12: \"Funktionsknap\",\r\n        13: \"Node-Info\",\r\n        14: \"Trenddiagram\",\r\n        15: \"Node-overblik\",\r\n        16: \"360° Vippevisualisering\",\r\n        17: \"Fyldniveauindikator\",\r\n        18: \"Værdiindstillingslåse\",\r\n        19: \"Kamera\",\r\n      },\r\n    },\r\n\r\n    functionButtonTypes: {\r\n      script: \"Scriptudførelse\",\r\n      input: \"Direkte værdiindtastning\",\r\n      navigation: \"Dashboard Link\",\r\n      downlink: \"Downlinks\",\r\n      onoffSwitch: \"TÆND/SLUK-knap\",\r\n    },\r\n  },\r\n\r\n  weather: {\r\n    title: \"SMHI Vejrudsigt\",\r\n    icon: \"Vejr\",\r\n    temp: \"Temperatur\",\r\n    windDir: \"Vindretning\",\r\n    windSpeed: \"Vindhastighed\",\r\n    humidity: \"Fugtighed\",\r\n    thunder: \"Torden\",\r\n    date: \"Dato\",\r\n    precipitation: \"Nedbør\",\r\n  },\r\n\r\n  contact: {\r\n    titel: \"Kontakt os\",\r\n    descriptionTitle: \"Sensor-Online\",\r\n    description:\r\n      \"Vi ved, at det kan være svært at komme i gang. Tøv ikke med at kontakte os, og vi vil gerne hjælpe med at besvare dine spørgsmål.\",\r\n    emailTitle: \"Email\",\r\n    email: \"info@sensor-online.se\",\r\n    phoneTitle: \"Telefon\",\r\n    phoneOne: \"+46 (0) 500 6000 22\",\r\n    phoneTwo: \"+46 (0) 733 165 100\",\r\n    locationSiencepark: \"Skövde Science Park\",\r\n    locationStreet: \"Kaplansgatan 16B\",\r\n    locationPostalcode: \"521 32 Skövde\",\r\n    locationCountry: \"Sverige\",\r\n  },\r\n\r\n  company: {\r\n    name: \"Firmanavn\",\r\n    orgNumber: \"Moms nummer\",\r\n\r\n    companyInfo: \"Firmaoplysninger\",\r\n\r\n    addUser: \"Tilføj ny bruger\",\r\n\r\n    invite: \"Inviter ny bruger\",\r\n    inviteSent: \"Invitation sendt\",\r\n    inviteFailed:\r\n      \"Kunne ikke finde brugeren. Sørg for, at brugeren er registreret!\",\r\n\r\n    shareApp: \"Del applikation\",\r\n\r\n    fields: {\r\n      name: \"Firmanavn\",\r\n      orgNumber: \"Organisationsnummer\",\r\n      postalAdress: \"Postadresse\",\r\n      deliveryAdress: \"Leveringsadresse\",\r\n      contactPhonenumber: \"Kontakt telefonnummer\",\r\n      invoiceAdress: \"Email for kontakt\",\r\n      refrenceNmuber: \"Reference nummer\",\r\n      image: \"Firma logo\",\r\n    },\r\n\r\n    validation: {\r\n      nameRequired: \"Du skal indtaste et firmanavn\",\r\n      nameMax: \"Firmanavnet må ikke være mere end 255 tegn\",\r\n\r\n      orgNumberRequired: \"Du skal indtaste dit CVR-nummer\",\r\n      orgNumberFormatError: \"Forkert format for CVR-nummer\",\r\n\r\n      emailRequired: \"Du skal indtaste en email-adresse\",\r\n      emailFormatError: \"Indtast en gyldig email-adresse\",\r\n\r\n      passwordMissmatch: \"Adgangskoderne stemmer ikke overens\",\r\n    },\r\n  },\r\n\r\n  report: {\r\n    title: \"Rapporter\",\r\n    refrenceDateDesc:\r\n      \"Referencedagen er den dag, der refereres til ved afsendelse af en rapport. Hvis intervallet er månedligt, skal du vælge den dag, den sendes (f.eks. den 1. i hver måned). Eller ugentligt (hvor dagen er mandag til fredag, når rapporten skal sendes ud).\",\r\n    create: \"Opret rapportkørsel\",\r\n    update: \"Opdater rapportkørsel\",\r\n    exportDownload: \"Download rapport\",\r\n    export: \"Eksporter\",\r\n    downloadFailed: \"Rapporten kunne ikke hentes. Prøv igen senere!\",\r\n    noData: \"Der blev ikke fundet data inden for det valgte tidsrum\",\r\n    fields: {\r\n      name: \"Rapportnavn\",\r\n      type: \"Type\",\r\n      tempo: \"Interval\",\r\n      createdAt: \"Oprettet\",\r\n      updatedAt: \"Opdateret\",\r\n      id: \"ID\",\r\n      refrenceDate: \"Referencedag\",\r\n      reportContacts: \"Rapportkontakter\",\r\n      lastSent: \"Sidst sendt\",\r\n    },\r\n\r\n    tempo: {\r\n      desc: {\r\n        0: \"Send den daglige rapport fra nu af kl. 03:00\",\r\n        1: \"Send den ugentlige rapport om mandagen med data fra den foregående uge.\",\r\n        2: \"Send den månedlige rapport den 1. dag i måneden for den foregående måned.\",\r\n      },\r\n\r\n      0: \"Daglig\",\r\n      1: \"Ugentlig\",\r\n      2: \"Månedlig\",\r\n    },\r\n\r\n    types: {\r\n      regular: \"Almindelig\",\r\n      trend: \"Trend\",\r\n    },\r\n  },\r\n\r\n  script: {\r\n    name: \"Scripts\",\r\n    create: \"Opret en ny script\",\r\n    edit: \"Rediger script\",\r\n    tagsTitle: \"Node ID og sensorer\",\r\n    placeHolderContent: ` // Konverter temperaturen til fahrenheit\r\n  var tempToFahrenheit = Data.Read(\"INSERT-DEVEUI\", \"INSERT-KEY\") * 9/5 + 32;\r\n\r\n  // Skriv den nye værdi til en ny nøgle\r\nData.Write(\"INSERT-DEVEUI\", \"INSERT-KEY\", tempToFahrenheit);`,\r\n    examples: \"Eksempler\",\r\n    helpTitle: \"Eksempler og hjælp\",\r\n\r\n    type: {\r\n      0: \"Gentagende Script\",\r\n      1: \"Kaldt Script\",\r\n      2: \"Udløst Script\",\r\n    },\r\n\r\n    fields: {\r\n      name: \"Navn\",\r\n      type: \"Type\",\r\n      interval: \"Interval\",\r\n      lastRun: \"Sidst kørt tidspunkt\",\r\n      enabled: \"Aktiveret\",\r\n      boundTag: \"Udløsende tag\",\r\n    },\r\n\r\n    validation: {\r\n      intervalRequired: \"Dette felt skal udfyldes\",\r\n      intervalMinValue: \"Den mindste værdi for intervallet er 0\",\r\n    },\r\n  },\r\n\r\n  user: {\r\n    name: \"Bruger\",\r\n\r\n    email: \"Email\",\r\n    role: \"Rolle\",\r\n\r\n    userInfo: \"Personlige oplysninger\",\r\n\r\n    loginFailed: \"Login mislykkedes\",\r\n    signInFailed: \"Email/adgangskode matcher ikke. Prøv igen.\",\r\n    signInError: \"Uventet fejl under login\",\r\n    loginSuccessful: \"Logget ind\",\r\n    updateFailed: \"Opdatering mislykkedes\",\r\n    edit: \"Rediger\",\r\n    forgotPassword: \"Glemt adgangskode?\",\r\n\r\n    fields: {\r\n      firstName: \"Fornavn\",\r\n      lastName: \"Efternavn\",\r\n      phoneNumber: \"Telefonnummer\",\r\n      email: \"Email\",\r\n      password: \"Adgangskode\",\r\n      newPassword: \"Ny adgangskode\",\r\n      passwordConfirm: \"Bekræft adgangskode\",\r\n\r\n      phoneNumerHint:\r\n        \"Tip: Brug international formatering. F.eks. for et svensk nummer (4575381414)\",\r\n    },\r\n  },\r\n\r\n  application: {\r\n    name: \"Applikation | Applikationer\",\r\n    noCompanyError:\r\n      \"Du skal først registrere en virksomhed for at oprette applikationer\",\r\n    applicationCreated: \"Din nye applikation er oprettet\",\r\n    choose: \"Vælg en applikation\",\r\n    create: \"Opret en ny applikation\",\r\n    validation: {\r\n      nameRequired: \"Din applikation skal have et navn\",\r\n      nameMax: \"Navnet må ikke være længere end 255 tegn\",\r\n    },\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Navn\",\r\n      createdAt: \"Oprettet\",\r\n      owner: \"Ejer\",\r\n    },\r\n  },\r\n\r\n  alarm: {\r\n    name: \"Alarm\",\r\n    create: \"Tilføj ny alarmregel\",\r\n    affirmation: \"Bekræft\",\r\n    history: \"Alarmhistorik\",\r\n\r\n    activeAlarm: \"Alarmadvarsler\",\r\n\r\n    test: {\r\n      title: \"Test af indstillinger\",\r\n      settings: \"Test email- og sms-indstillinger\",\r\n      email: \"Email-adresse\",\r\n      phonenumber: \"Telefonnummer (45....)\",\r\n    },\r\n\r\n    priority: {\r\n      desc: {\r\n        a: \"Høj\",\r\n        b: \"Medium\",\r\n        c: \"Lav\",\r\n      },\r\n    },\r\n\r\n    alertType: {\r\n      desc: {\r\n        a: \"Send Email + SMS + Log\",\r\n        b: \"Send SMS + Log\",\r\n        c: \"Send Email + Log\",\r\n        d: \"Send kun til Log\",\r\n      },\r\n    },\r\n\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Navn\",\r\n      alertType: \"Metode til alarmmeddelelse\",\r\n      priority: \"Alarmprioritetsniveau\",\r\n      alarmDelay: \"Forsinkelsestid før alarm udløses\",\r\n      autoAcknowledge: \"Auto-Bekræftelse\",\r\n      active: \"Alarm Til/Fra\",\r\n      tagDataKey: \"Sensor\",\r\n      tag: \"Node\",\r\n      message: \"Alarmbesked\",\r\n      limitHigh: \"Høj grænse\",\r\n      limitLow: \"Lav grænse\",\r\n      contactType: \"Kontakttype\",\r\n      alarmContacts: \"Alarmkontakter\",\r\n      activeDays: \"Aktive dage\",\r\n      limit: \"Lav og høj alarmgrænser\",\r\n      activeAlarms: \"Alarmadvarsler\",\r\n      messageSent: \"Alarmbesked sendt\",\r\n      reset: \"Nulstil\",\r\n      triggered: \"Udløst\",\r\n      user: \"Nulstillet af\",\r\n      value: \"Udløsende værdi\",\r\n      signalType: \"Signaltype\",\r\n      digitalTrigger: \"Udløs ved\",\r\n      triggerHigh: \"Høj signalværdi\",\r\n      triggerLow: \"Lav signalværdi\",\r\n      advanced: \"Avanceret alarm\",\r\n      alarmComment: \"Anerkend årsag\",\r\n    },\r\n\r\n    validation: {\r\n      nameRequired: \"Dette felt skal udfyldes\",\r\n      max: \"Maksimalt antal tegn er 255\",\r\n      min: \"Mindste antal tegn er \",\r\n    },\r\n\r\n    tabs: {\r\n      triggered: \"Udløste Alarmer\",\r\n      allAlarms: \"Alle Alarmer\",\r\n      history: \"Alarm Historie\",\r\n    },\r\n  },\r\n\r\n  batteryStatus: {\r\n    levels: \"Batteriniveau\",\r\n    value: \"Værdi\",\r\n    lastSeen: \"Seneste værdi\",\r\n    label: \"Batterispænding\",\r\n  },\r\n\r\n  tagdata: {\r\n    name: \"Data\",\r\n    amount: \"Antal datapunkter indsamlet:\",\r\n    notation: \"{0}\",\r\n    latestactivity: \"Seneste aktivitet\",\r\n    latestvalue: \"Seneste værdi\",\r\n    defaultKey: \"Standard nøgle\",\r\n\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Navn\",\r\n      key: \"Sensor\",\r\n      value: \"Værdi\",\r\n      createdAt: \"Oprettet\",\r\n      label: \"Mærkat\",\r\n    },\r\n  },\r\n\r\n  tag: {\r\n    choose: \"Vælg Node\",\r\n    search: \"Søg Node\",\r\n    chooseDecoder: \"Vælg en dekoder\",\r\n    decoder: \"Dekoder\",\r\n    name: \"Noder\",\r\n    amount: \"Antal noder:\",\r\n    notation: \"{0}\",\r\n    details: \"Sensoroplysninger\",\r\n    removeImage: \"Slet billede\",\r\n    chooseKey: \"Vælg nøgle\",\r\n    saveKeyAsDefault: \"Standard\",\r\n    newKey: \"Ny Sensor\",\r\n    filter: \"Filtrer Noder\",\r\n    generateId: \"Generér ID\",\r\n\r\n    uploadExplanation:\r\n      \"Træk din Csv-fil herover, eller klik her for at uploade Noder\",\r\n    uploadExplanationHint: \"Du kan downloade en eksempelfil i csv-format her: \",\r\n    exampleLink: \"CSV Eksempel\",\r\n\r\n    createSteps: {\r\n      step1: \"Type af Node\",\r\n      step2: \"Vælg Applikation\",\r\n      step3: \"Vælg Dekoder\",\r\n      step4: \"Indstil Nøgler\",\r\n      step5: \"MQTT\",\r\n      finish: \"Færdig\",\r\n    },\r\n\r\n    picker: {\r\n      step1: \"Vælg en Node\",\r\n      step2: \"Vælg en Sensor\",\r\n    },\r\n\r\n    tagPool: {\r\n      tagPool: \"Nodes pulje\",\r\n      deveui: \"DevEUI\",\r\n      createdAt: \"Oprettet\",\r\n      hide: \"Skjul på liste\",\r\n      show: \"Vis i standardliste\",\r\n      hiddenTags: \"Skjulte noder\",\r\n      take: \"Tilføj sensor\",\r\n    },\r\n\r\n    fields: {\r\n      id: \"ID\",\r\n      name: \"Navn\",\r\n      deveui: \"DevEUI\",\r\n      appKey: \"AppKey\",\r\n      appEui: \"AppEUI\",\r\n      applicationId: \"Applikation\",\r\n      profile: \"Profil\",\r\n      lat: \"Breddegrad\",\r\n      long: \"Længdegrad\",\r\n      latAndLng: \"Breddegrad og Længdegrad\",\r\n      image: \"Billede af sensorinstallation\",\r\n      battery: \"Batteriniveau\",\r\n      activeAlarm: \"Alarm\",\r\n      activeData: \"Aktiv\",\r\n      latestValue: \"Seneste værdi\",\r\n      location: \"Placering\",\r\n      dataPoints: \"Datapunkter/24h\",\r\n      type: \"Type\",\r\n      nodeType: \"Nodetype\",\r\n    },\r\n\r\n    nodeTypes: {\r\n      0: \"LORA\",\r\n      1: \"API\",\r\n      2: \"MQTT\",\r\n      3: \"NR\",\r\n    },\r\n  },\r\n\r\n  license: {\r\n    license: \"Licens\",\r\n    licensee: \"Licensindehaver\",\r\n    coveredFeatures: \"Dækkede funktioner\",\r\n    fields: {\r\n      email: \"Email\",\r\n      name: \"Navn\",\r\n      maxCompanies: \"Maks. antal virksomheder\",\r\n      decoderIncluded: \"Dekoder inkluderet\",\r\n      whiteLabel: \"White-Label\",\r\n    },\r\n  },\r\n\r\n  validation: {\r\n    required: \"{0} skal udfyldes\",\r\n    max: \"{0} skal være {1} tegn\",\r\n    requiredSingle: \"Dette felt skal udfyldes\",\r\n    toLong: \"Dette felt indeholder for mange tegn\",\r\n    contryCodeError:\r\n      \"Glem ikke, at telefonnummeret skal have landekode (f.eks. 4512345678)\",\r\n    passwordMissmatch: \"Adgangskoderne stemmer ikke overens\",\r\n    deveuiConflict: \"Node med denne DevEUI findes allerede på denne server\",\r\n  },\r\n\r\n  warning: {\r\n    amount: \"Aktive alarmer:\",\r\n    notation: \"{0}\",\r\n  },\r\n\r\n  mqtt: {\r\n    settingsTabTitle: \"MQTT Brokere\",\r\n    brokerListTitle: \"MQTT Brokere\",\r\n    createTitle: \"Tilføj en ny MQTT Broker\",\r\n    updateTitle: \"Opdater MQTT Broker\",\r\n    selectBroker: \"Vælg en MQTT Broker\",\r\n    testBroker: \"Test Konfiguration\",\r\n    topicCreateTitle: \"MQTT Emner\",\r\n    topicDescription:\r\n      \"De valgte emner vil blive abonneret på via den konfigurerede broker. Emnerne skal være specifikke for enheden, og hvis jokertegnet (+) bruges, skal det være et enkelt niveau jokertegn. Multiniveau jokertegn (#) vil blive omdannet til enkelt niveau jokertegn.\",\r\n    topicAdd: \"Tilføj et nyt Emne\",\r\n    topicAlreadyExists: \"Det valgte emne findes allerede\",\r\n    createTopicTitle: \"Opret et nyt abonnement\",\r\n\r\n    meta: {\r\n      fields: {\r\n        topic: \"Emne\",\r\n        publishTopic: \"Offentliggør Emne (Valgfrit)\",\r\n        publishTopicHint:\r\n          \"Kan ikke være det samme som nogen af ​​Abonnér Emnerne\",\r\n        parsingTopic: \"Dekodertype\",\r\n      },\r\n    },\r\n\r\n    sslmodes: {\r\n      0: \"Ingen\",\r\n      1: \"CA signerede servercertifikater\",\r\n      2: \"Selvsignerede servercertifikater\",\r\n    },\r\n\r\n    versions: {\r\n      0: \"3.1.1\",\r\n      1: \"3.1.0\",\r\n    },\r\n\r\n    validation: {\r\n      notfound: \"Kunne ikke finde Broker\",\r\n    },\r\n\r\n    fields: {\r\n      status: \"Status\",\r\n      hostname: \"Værtsnavn\",\r\n      port: \"Port\",\r\n      version: \"MQTT-version\",\r\n      sslmode: \"SSL/TLS-tilstand\",\r\n      CACertificate: \"CA-certifikat\",\r\n      ClientCertificate: \"Klientcertifikat\",\r\n      ClientKey: \"Klientnøgle\",\r\n      KeyPassPhrase: \"Nøglefrase (Valgfri)\",\r\n      useAuth: \"Brug godkendelse\",\r\n      username: \"Brugernavn\",\r\n      password: \"Adgangskode\",\r\n      isGlobal: \"Er global broker\",\r\n\r\n      metrics: {\r\n        messages: {\r\n          total: \"Samlede beskeder\",\r\n          week: \"Beskeder denne uge\",\r\n          day: \"Beskeder i dag\",\r\n        },\r\n\r\n        publish: {\r\n          total: \"Samlet offentliggørelser\",\r\n          week: \"Offentliggørelser denne uge\",\r\n          day: \"Offentliggørelser i dag\",\r\n        },\r\n      },\r\n    },\r\n  },\r\n};\r\n","import en from \"./locales/en\";\nimport sv from \"./locales/sv\";\nimport da from \"./locales/da\";\n\nexport default {\n  sv,\n  en,\n  da,\n};\n","import Repository from \"../Repository\";\nimport { apiConfig, company } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/features\";\nconst debug = false;\n\nexport default {\n  getAllFeatures() {\n    // SuperAdmin Endpoint\n    if (debug)\n      return [\n        {\n          featureAccessId: 1,\n          name: \"FEATURE_MAP_DASHBOARD\",\n          //          companies: [],\n          companies: [{ name: \"IotAB\", companyId: 1 }],\n        },\n      ];\n\n    return Repository.get(`${resource}`, apiConfig());\n  },\n\n  toggleFeature(featureAccessId, companyId) {\n    return Repository.put(\n      `${resource}/${featureAccessId}/${companyId}`,\n      null,\n      apiConfig()\n    );\n  },\n\n  getCompanyFeatures() {\n    return Repository.get(`${resource}/${company()}`, apiConfig());\n  },\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompanySwitcher.vue?vue&type=style&index=0&id=ebb4d6aa&prod&lang=css\"","import store from \"../stores/store\";\n\nexport default {\n  HttpStatus: {\n    ok: 200,\n    created: 201,\n    accepted: 202,\n    no_content: 204,\n    bad_request: 400,\n    unauthorized: 401,\n    forbidden: 403,\n    not_found: 404,\n    conflict: 409,\n  },\n\n  checkForConflict(response) {\n    if (\n      response.status === this.HttpStatus.bad_request &&\n      response.data.errors != null &&\n      response.data.errors.Deveui != null\n    )\n      return true;\n    else return false;\n  },\n};\n\nexport function getAuthHeader(user) {\n  return {\n    \"Access-Control-Allow-Origin\": true,\n    Authorization: `Bearer ${user.token}`,\n    \"Content-Type\": \"application/json\",\n  };\n}\n\nexport function apiConfig() {\n  let user = store.getters[\"users/user\"];\n  if (user?.token == undefined)\n    return {\n      headers: {\n        \"Access-Control-Allow-Origin\": true,\n        \"Content-Type\": \"application/json\",\n      },\n    };\n\n  return {\n    headers: {\n      \"Access-Control-Allow-Origin\": true,\n      Authorization: `Bearer ${user.token}`,\n      \"Content-Type\": \"application/json\",\n    },\n  };\n}\n\nexport function company() {\n  return store.getters[\"users/companyId\"];\n}\n\nexport function tagsWithKeyQueryParameter(tagsWithKeys) {\n  if (typeof tagsWithKeys !== \"object\") return \"\";\n\n  return (\n    \"twk=\" +\n    encodeURIComponent(\n      Buffer.from(JSON.stringify(tagsWithKeys)).toString(\"base64\")\n    )\n  );\n}\n","import Repository from \"../Repository\";\nimport { apiConfig, getAuthHeader, company } from \"../../_helpers/apiHelper\";\nimport DateHelper from \"../../_helpers/DateHelper\";\nimport store from \"../../stores/store\";\n\nconst resource = \"/tag\";\nconst decoderResource = \"/decoder\";\n\nexport default {\n  get(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}`, config);\n  },\n\n  create(user, applicationId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `/applications/${applicationId}/tag`,\n      payload,\n      config\n    );\n  },\n\n  update(user, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/${payload.deveui}`, payload, config);\n  },\n\n  delete(user, tagId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/${tagId}`, config);\n  },\n\n  getById(user, tagId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${tagId}`, config);\n  },\n\n  getByCompanyId(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/company/${companyId}`, config);\n  },\n\n  getTagAttributesByCompanyId() {\n    return Repository.get(\n      `${resource}/company/${company()}/attributes`,\n      apiConfig()\n    );\n  },\n\n  getByCurrentCompany() {\n    return Repository.get(`${resource}/company/${company()}`, apiConfig());\n  },\n\n  getKeys(user, tagId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${tagId}/keys`, config);\n  },\n\n  getAllKeys(user) {\n    var config = { headers: getAuthHeader(user) };\n\n    return Repository.get(`${resource}/keys/all`, config);\n  },\n\n  getTagWithMetaAndKeys(deveuiAndKeys) {\n    return Repository.post(\n      `${resource}/meta-with-keys`,\n      deveuiAndKeys,\n      apiConfig()\n    );\n  },\n\n  uploadImage(user, tagId, image) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}/${tagId}/image`, image, config);\n  },\n\n  deleteImage(user, tagId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/${tagId}/image`, config);\n  },\n\n  setDefaultKey(user, tagId, key) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/${tagId}/default/${encodeURIComponent(key)}`,\n      null,\n      config\n    );\n  },\n\n  getTagPool(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/pool`, config);\n  },\n\n  updateTagPoolStatus(user, deveui) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/pool/${deveui}`, null, config);\n  },\n\n  addTagKey(user, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}/key/add`, payload, config);\n  },\n\n  updateTagKey(user, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}/key/update`, payload, config);\n  },\n\n  deleteTagKey(user, deveui, key) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(\n      `${resource}/key/delete/${deveui}/${encodeURIComponent(key)}`,\n      config\n    );\n  },\n\n  getKeyLabel(user, deveui, key) {\n    if (user === undefined) user = store.getters[\"users/user\"];\n\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(\n      `${resource}/key/label/${deveui}/${encodeURIComponent(key)}`,\n      config\n    );\n  },\n\n  getDecoders(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${decoderResource}`, config);\n  },\n\n  setData(user, tagId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}/${tagId}/tagdata`, payload, config);\n  },\n\n  getDetails(user, tagId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/detail/${tagId}`, config);\n  },\n\n  getTagWithInformation(deveui) {\n    if (deveui === undefined || deveui === \"\") return {};\n\n    return Repository.get(`${resource}/info/${deveui}`, apiConfig());\n  },\n\n  updateSparkplugMeta(user, deveui, meta) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/${deveui}/sparkplug`, meta, config);\n  },\n\n  getPositions(deveui, from, to) {\n    return Repository.get(\n      `${resource}/${deveui}/positions/${encodeURIComponent(\n        DateHelper.methods.toApiDate(from)\n      )}/${encodeURIComponent(DateHelper.methods.toApiDate(to))}`,\n      apiConfig()\n    );\n  },\n\n  removePublishing(deveui, publishingType) {\n    return Repository.delete(\n      `${resource}/publishing/${deveui}/${publishingType}`,\n      apiConfig()\n    );\n  },\n\n  togglePublishKey(deveui, key) {\n    return Repository.put(\n      `${resource}/publish-key/toggle/${deveui}/${key}`,\n      null,\n      apiConfig()\n    );\n  },\n};\n","import Vue from \"vue\";\nimport Vuetify from \"vuetify/lib\";\nimport \"vuetify/dist/vuetify.min.css\";\nimport \"@mdi/font/css/materialdesignicons.css\";\nimport { colors } from \"vuetify/lib\";\n\nVue.use(Vuetify);\n\nconst opts = {\n  iconfont: \"mdi\",\n  theme: {\n    dark: false,\n    themes: {\n      light: {\n        primary: \"#2196F3\",\n        accent: colors.blue.accent1,\n        success: colors.green,\n        info: colors.yellow.accent3,\n        error: colors.red.accent1,\n        background: colors.grey.lighten5,\n        altBg: colors.grey.lighten3,\n      },\n      dark: {\n        primary: colors.blue.darken3, //\"#5b4fd6\",\n        secondary: colors.blue.darken1,\n        accent: colors.lightBlue.accent4,\n        success: colors.green,\n        info: colors.yellow.accent3,\n        error: colors.red.accent1,\n        background: colors.grey.darken3,\n        altBg: colors.grey.darken1,\n      },\n    },\n  },\n};\n\nexport default new Vuetify(opts);\n","import Vue from \"vue\";\nimport Router from \"vue-router\";\nimport store from \"@/stores/store\";\nimport i18n from \"@/plugins/i18n.js\";\nimport restrictHelper from \"./_helpers/RestrictHelper.js\";\n\n// Import components\n// const Home = () => import(\"@/views/Home.vue\");\nconst Home = () => import(\"@/views/Landing.vue\");\nconst CommonParent = () => import(\"@/views/CommonParent.vue\");\nconst CleanDashboard = () => import(\"@/views/CleanDashboard.vue\");\nconst AdminDashboard = () => import(\"@/views/AdminDashboard.vue\");\n\nconst Company = () => import(\"@/views/company/Company.vue\");\nconst CompanyUsers = () => import(\"@/components/company/Users.vue\");\nconst CompanyEdit = () => import(\"@/components/company/Edit.vue\");\nconst CompanyCreate = () => import(\"@/components/company/Create.vue\");\nconst CreateUser = () => import(\"@/components/company/CreateUser.vue\");\nconst CompanyApps = () => import(\"@/components/company/Applications.vue\");\n\nconst UserCompanyRegister = () => import(\"@/components/user/Register\");\nconst EditUser = () => import(\"@/components/user/Detail\");\n\nconst ForgotPassword = () => import(\"@/views/ForgotPassword.vue\");\nconst ForgotPasswordComponent = () =>\n  import(\"@/components/password/ForgotPasswordComponent.vue\");\nconst NewPassword = () => import(\"@/components/password/NewPassword.vue\");\n\nconst Application = () => import(\"@/views/Application.vue\");\nconst ApplicationCreate = () => import(\"@/components/application/Create.vue\");\nconst ApplicationEdit = () => import(\"@/components/application/Edit.vue\");\n\nconst Tag = () => import(\"@/views/Tag.vue\");\nconst TagList = () => import(\"@/components/tag/Tag.vue\");\nconst TagCreate = () => import(\"@/components/tag/Create.vue\");\nconst TagPool = () => import(\"@/components/tag/TagPool.vue\");\nconst TagMap = () => import(\"@/components/tag/TagMap.vue\");\n\nconst TagDetail = () => import(\"@/views/TagDetail.vue\");\n\nconst Alarm = () => import(\"@/views/Alarm.vue\");\nconst AlarmCreate = () => import(\"@/components/alarm/Create.vue\");\nconst AlarmEdit = () => import(\"@/components/alarm/Edit.vue\");\nconst AlarmList = () => import(\"@/components/alarm/AlarmList.vue\");\nconst ActiveAlarms = () => import(\"@/components/alarm/ActiveAlarms.vue\");\n\nconst Login = () => import(\"@/views/Login.vue\");\nconst Register = () => import(\"@/views/Register.vue\");\nconst Logout = () => import(\"@/views/Logout.vue\");\n\nconst ScriptView = () => import(\"@/views/Script.vue\");\nconst ScriptList = () => import(\"@/components/script/ScriptList.vue\");\nconst ScriptCreate = () => import(\"@/components/script/ScriptCreate.vue\");\nconst ScriptEdit = () => import(\"@/components/script/ScriptEdit.vue\");\n\nconst Report = () => import(\"@/views/Report.vue\");\nconst ReportList = () => import(\"@/components/report/ReportList.vue\");\nconst ReportCreate = () => import(\"@/components/report/ReportCreate.vue\");\nconst ReportEdit = () => import(\"@/components/report/ReportEdit.vue\");\nconst DashboardModule = () => import(\"@/components/common/ModuleGrid\");\nconst DashboardPublic = () => import(\"@/views/DashboardPublic.vue\");\n\nconst Contact = () => import(\"@/views/Contact.vue\");\nconst News = () => import(\"@/views/News.vue\");\nconst SettingView = () => import(\"@/views/Setting.vue\");\nconst Settings = () => import(\"@/components/setting/SettingEdit.vue\");\n\nconst SingalTest = () => import(\"@/views/SignalTest.vue\");\nconst PeekSignalTest = () =>\n  import(\"@/components/signaltest/PeekSignalTest.vue\");\n\nconst GatewayView = () => import(\"@/views/Gateway.vue\");\nconst GatewayList = () => import(\"@/components/gateway/GatewayList.vue\");\nconst GatewayCreate = () => import(\"@/components/gateway/CreateGateway.vue\");\n\nconst RoleContainer = () => import(\"@/views/RolesContainer.vue\");\nconst RoleList = () => import(\"@/components/roles/RoleList.vue\");\nconst RoleCreate = () => import(\"@/components/roles/RoleCreate.vue\");\nconst RoleEdit = () => import(\"@/components/roles/RoleEdit.vue\");\n\nconst BaseView = () => import(\"@/views/BaseView.vue\");\nconst TemplateDashboard = () => import(\"@/components/db/TemplateDashboard.vue\");\nconst TemplateDashboardForm = () =>\n  import(\"@/components/db/TemplateDashboardForm.vue\");\n\nconst DbMapCreateDashboard = () =>\n  import(\"@/components/db/dbMap/DbMapCreateDashboard.vue\");\n\nconst ActionView = () => import(\"@/views/Action.vue\");\nconst ActionList = () => import(\"@/components/action/ActionList.vue\");\nconst ActionCreate = () => import(\"@/components/action/ActionCreate.vue\");\nconst ActionDetail = () => import(\"@/components/action/ActionDetail.vue\");\n\nimport { Roles } from \"@/_helpers/Role\";\n\nVue.use(Router);\n\nconst router = new Router({\n  routes: [\n    {\n      path: \"/\",\n      name: \"home\",\n      component: Home,\n      meta: { authorize: [] },\n    },\n\n    {\n      path: \"/actions\",\n      component: ActionView,\n      meta: { permit: \"Gateway.Update\" },\n      children: [\n        {\n          path: \"\",\n          name: \"actions\",\n          component: ActionList,\n          meta: { permit: \"Gateway.Update\" },\n        },\n        {\n          path: \"create\",\n          name: \"actions/create\",\n          component: ActionCreate,\n          meta: { permit: \"Actions.Create\" },\n        },\n        {\n          path: \":id\",\n          name: \"actions/update\",\n          component: ActionDetail,\n          meta: { permit: \"Actions.View\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/settings\",\n      component: SettingView,\n      meta: { authorize: Roles.CompanyOrUser },\n      children: [\n        {\n          path: \"\",\n          name: \"setting/edit\",\n          component: Settings,\n        },\n      ],\n    },\n\n    {\n      path: \"/template-dashboard\",\n      component: BaseView,\n      meta: { permit: \"Dashboard.View\" },\n      children: [\n        {\n          path: \"\",\n          component: TemplateDashboard,\n          name: \"TemplateDashboardBase\",\n          meta: { permit: \"Dashboard.View\" },\n        },\n        {\n          path: \"create\",\n          name: \"TemplateDashboardCreate\",\n          component: TemplateDashboardForm,\n          meta: { permit: \"Dashboard.Create\" },\n        },\n        {\n          path: \"update/:id\",\n          name: \"TemplateDashboardUpdate\",\n          component: TemplateDashboardForm,\n          meta: { permit: \"Dashboard.Update\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/map\",\n      name: \"MapDashboard\",\n      meta: { permit: \"Dashboard.View\" },\n      component: BaseView,\n      children: [\n        // {\n        //   path: \"\",\n        //   name: \"MapDashboard.View\",\n        //   component: ViewMapDashboard,\n        //   meta: { permit: \"Dashboard.View\"}\n        // },\n\n        {\n          path: \"create\",\n          name: \"MapDashboard.Create\",\n          component: DbMapCreateDashboard,\n          meta: { permit: \"Dashboard.Create\" },\n          children: [\n            {\n              path: \":dashboardCategoryId\",\n              name: \"MapDashboard.CreateWithCategory\",\n              meta: { permit: \"Dashboard.Create\" },\n            },\n          ],\n        },\n      ],\n    },\n\n    {\n      path: \"/dashboard\",\n      name: \"dashboardChooser\",\n      component: CleanDashboard,\n      meta: { permit: \"Dashboard.View\" },\n    },\n\n    {\n      path: \"/dashboard/:id\",\n      component: DashboardModule,\n      meta: { permit: \"Dashboard.View\" },\n    },\n\n    {\n      path: \"/public/:id\",\n      component: DashboardPublic,\n      meta: { permit: \"ALL\" },\n    },\n\n    {\n      path: \"/alarm\",\n      component: Alarm,\n      children: [\n        {\n          path: \"\",\n          name: \"alarm\",\n          component: AlarmList,\n          meta: { permit: \"Alarm.View\" },\n        },\n        {\n          path: \"active\",\n          component: ActiveAlarms,\n          meta: { permit: \"Alarm.View\" },\n        },\n        {\n          path: \"create\",\n          component: AlarmCreate,\n          meta: { permit: \"Alarm.Create\" },\n        },\n        {\n          path: \":id\",\n          component: AlarmEdit,\n          meta: { permit: \"Alarm.Update\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/gateways\",\n      component: GatewayView,\n      children: [\n        {\n          path: \"\",\n          component: GatewayList,\n          meta: { permit: \"Gateway.View\" },\n        },\n        {\n          path: \"create\",\n          component: GatewayCreate,\n          meta: { permit: \"Gateway.Create\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/signaltest\",\n      component: CommonParent,\n      meta: { permit: \"SignalTest.View\" },\n      children: [\n        {\n          path: \"\",\n          component: SingalTest,\n          meta: { permit: \"SignalTest.View\" },\n        },\n        {\n          path: \"peek/:id\",\n          component: PeekSignalTest,\n          meta: { permit: \"SignalTest.View\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/script\",\n      component: ScriptView,\n      children: [\n        {\n          path: \"\",\n          component: ScriptList,\n          meta: { permit: \"Script.View\" },\n        },\n\n        {\n          path: \"create\",\n          component: ScriptCreate,\n          meta: { permit: \"Script.Create\" },\n        },\n\n        {\n          path: \":id\",\n          component: ScriptEdit,\n          meta: { permit: \"Script.Update\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/company\",\n      component: Company,\n      children: [\n        {\n          path: \"\",\n          component: CompanyUsers,\n          meta: { permit: \"Company.View\" },\n        },\n        {\n          path: \"edit\",\n          component: CompanyEdit,\n          meta: { permit: \"Company.Update\" },\n        },\n        {\n          path: \"create\",\n          component: CompanyCreate,\n          meta: { permit: \"Company.Create\" },\n        },\n        {\n          path: \"applications\",\n          component: CompanyApps,\n          meta: { permit: \"Application.View\" },\n        },\n        {\n          path: \"usercreate\",\n          component: CreateUser,\n          meta: { permit: \"User.Create\" },\n        },\n        {\n          path: \"user/:id\",\n          component: EditUser,\n          meta: { permit: \"User.Update\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/forgot\",\n      component: ForgotPassword,\n      children: [\n        {\n          path: \"\",\n          component: ForgotPasswordComponent,\n        },\n        {\n          path: \":id\",\n          component: NewPassword,\n        },\n      ],\n    },\n\n    {\n      path: \"/application\",\n      component: Application,\n      children: [\n        {\n          path: \"\",\n          component: CompanyApps,\n          meta: { permit: \"Application.View\" },\n        },\n        {\n          path: \"create\",\n          component: ApplicationCreate,\n          meta: { permit: \"Application.Create\" },\n        },\n        {\n          path: \":id\",\n          component: ApplicationEdit,\n          meta: { permit: \"Application.Update\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/superadmin\",\n      component: AdminDashboard,\n      meta: { permit: \"SuperAdmin\" },\n    },\n\n    {\n      path: \"/report\",\n      component: Report,\n      children: [\n        {\n          path: \"\",\n          component: ReportList,\n          meta: { permit: \"Report.View\" },\n        },\n        {\n          path: \"create\",\n          component: ReportCreate,\n          meta: { permit: \"Report.Create\" },\n        },\n\n        {\n          path: \":id\",\n          component: ReportEdit,\n          meta: { permit: \"Report.Update\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/tag\",\n      component: Tag,\n      children: [\n        {\n          path: \"\",\n          component: TagList,\n          meta: { permit: \"Tag.View\" },\n        },\n        {\n          path: \"create\",\n          component: TagCreate,\n          meta: { permit: \"Tag.Create\" },\n        },\n        {\n          path: \"create/:deveui\",\n          component: TagCreate,\n          meta: { permit: \"Tag.Update\" },\n        },\n        {\n          path: \"pool\",\n          component: TagPool,\n          meta: { permit: \"TagPool.View\" },\n        },\n        {\n          path: \"map\",\n          component: TagMap,\n          meta: { permit: \"Tag.View\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/roles\",\n      component: RoleContainer,\n      children: [\n        {\n          path: \"\",\n          component: RoleList,\n          meta: { permit: \"Roles.View\" },\n        },\n        {\n          path: \"create\",\n          component: RoleCreate,\n          meta: { permit: \"Roles.Create\" },\n        },\n\n        {\n          path: \"edit/:id\",\n          component: RoleEdit,\n          meta: { permit: \"Roles.Update\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/tagdetails/:deveui\",\n      component: TagDetail,\n      meta: { permit: \"Tag.View\" },\n    },\n\n    {\n      path: \"/register\",\n      component: Register,\n      meta: { permit: \"Company.Create\" },\n      children: [\n        {\n          path: \"\",\n          component: UserCompanyRegister,\n          meta: { permit: \"Company.Create\" },\n        },\n      ],\n    },\n\n    {\n      path: \"/login\",\n      name: \"Login\",\n      component: Login,\n    },\n    {\n      path: \"/logout\",\n      name: \"Logout\",\n      component: Logout,\n    },\n\n    {\n      path: \"/contact\",\n      name: \"Contact\",\n      component: Contact,\n    },\n\n    {\n      path: \"/news\",\n      name: \"News\",\n      component: News,\n    },\n  ],\n\n  duplicateNavigationPolicy: \"reload\",\n});\n\nrouter.beforeEach((to, from, next) => {\n  if (\n    store.state.languages !== undefined &&\n    store.state.languages.language &&\n    store.state.languages.language !== i18n.locale\n  ) {\n    i18n.locale = store.state.languages.language;\n    next();\n  } else if (\n    store.state.languages === undefined ||\n    !store.state.languages.language\n  ) {\n    store\n      .dispatch(\"languages/setLanguage\", navigator.languages, { root: true })\n      .then(() => {\n        i18n.locale = store.state.languages.language;\n        next();\n      });\n  }\n\n  if (to.meta.authorize) {\n    if (restrictHelper.methods.permitted(to.meta.permit)) {\n      next();\n    } else {\n      return;\n    }\n  }\n\n  next();\n});\n\nexport default router;\n","import Repository from \"@/api/Repository\";\nimport { apiConfig } from \"@/_helpers/apiHelper\";\n\nconst resource = \"/opc\";\n\nexport default {\n  getServers() {\n    return Repository.get(`${resource}/servers`, apiConfig());\n  },\n\n  createServer(serverDto) {\n    return Repository.post(`${resource}/servers/create`, serverDto, apiConfig());\n  },\n\n  getServersById(serverId) {\n    return Repository.get(`${resource}/servers/${serverId}`, apiConfig());\n  },\n\n  updateServer(serverId, serverDto) {\n    return Repository.put(`${resource}/servers/${serverId}`, serverDto, apiConfig());\n  },\n\n  deleteServer(serverId) {\n    return Repository.delete(`${resource}/servers/${serverId}`, apiConfig());\n  },\n\n  getNodesByServerId(serverId) {\n    return Repository.get(`${resource}/servers/${serverId}/nodes`, apiConfig());\n  },\n\n  getNodesByDeveui(deveui) {\n    return Repository.get(`${resource}/nodes/${deveui}`, apiConfig());\n  },\n\n  createNode(deveui, nodeDto) {\n    return Repository.post(`${resource}/nodes/${deveui}`, nodeDto, apiConfig());\n  },\n\n  updateNode(nodeId, nodeDto) {\n    return Repository.put(`${resource}/nodes/${nodeId}`, nodeDto, apiConfig());\n  },\n\n  deleteNode(nodeId) {\n    return Repository.delete(`${resource}/nodes/${nodeId}`, apiConfig());\n  },\n\n  addNodeMonitoring(serverId, nodeId) {\n    return Repository.post(`${resource}/monitoring/${serverId}/${nodeId}`, apiConfig());\n  }\n};","import Repository from \"../Repository\";\r\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\r\nimport store from \"../../stores/store.js\";\r\n\r\nconst resource = \"/mqtt\";\r\n\r\nexport default {\r\n  getBrokers(user, companyId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.get(`${resource}/company/${companyId}`, config);\r\n  },\r\n\r\n  getBrokersWithMetrics(user, companyId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.get(`${resource}/metrics/company/${companyId}`, config);\r\n  },\r\n\r\n  getBroker(user, brokerId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.get(`${resource}/${brokerId}`, config);\r\n  },\r\n\r\n  createBroker(user, companyId, payload) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.post(`${resource}/${companyId}`, payload, config);\r\n  },\r\n\r\n  updateBroker(user, brokerId, payload) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.put(`${resource}/${brokerId}`, payload, config);\r\n  },\r\n\r\n  deleteBroker(user, brokerId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.delete(`${resource}/${brokerId}`, config);\r\n  },\r\n\r\n  getMqttMeta(user, mqttMetaId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.get(`${resource}/mqttmeta/${mqttMetaId}`, config);\r\n  },\r\n\r\n  createMqttMeta(user, brokerId, deveui, payload) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.post(\r\n      `${resource}/mqttmeta/${brokerId}/${deveui}`,\r\n      payload,\r\n      config\r\n    );\r\n  },\r\n\r\n  updateMqttMeta(user, mqttMetaId, brokerId, payload) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    var url = `${resource}/mqttmeta/${brokerId}/null`;\r\n    if (mqttMetaId) url = `${resource}/mqttmeta/${brokerId}/${mqttMetaId}`;\r\n    return Repository.put(url, payload, config);\r\n  },\r\n\r\n  deleteTopic(user, topicId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.delete(`${resource}/mqttmeta/topic/${topicId}`, config);\r\n  },\r\n\r\n  testBroker(user, payload) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.post(`${resource}/mqttbroker/test`, payload, config);\r\n  },\r\n\r\n  testDecode(payload) {\r\n    let user = store.state?.users?.currentUser;\r\n    if (!user) return undefined;\r\n\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.post(`${resource}/topic/decode/test`, payload, config)\r\n      .then((d) => {\r\n        return { success: true, response: d.data };\r\n      })\r\n      .catch((d) => {\r\n        return { success: false, response: d.response?.data ?? \"Unkown error\" };\r\n      });\r\n  },\r\n};\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=26abbeb8&prod&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=style&index=0&id=3d3ef689&prod&lang=css\"","export const companySettingKeys = {\n  nodeAlias: \"NODE_ALIAS\",\n  nodeTableColumns: \"NODE_TABLE_COLUMNS\",\n};\n","import Repository from \"../Repository\";\nimport { getAuthHeader, apiConfig, company } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/companies\";\n\nexport default {\n  get(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}`, config);\n  },\n\n  getAll(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/all`, config);\n  },\n\n  getAllUserCompanies(userId) {\n    return Repository.get(`${resource}/all/${userId}`, apiConfig());\n  },\n\n  toggleUserCompany(userId, companyId) {\n    return Repository.put(\n      `${resource}/toggle/${userId}/${companyId}`,\n      null,\n      apiConfig()\n    );\n  },\n\n  getAllExternalUsers() {\n    return Repository.get(\n      `${resource}/external/users/${company()}`,\n      apiConfig()\n    );\n  },\n\n  getCompany(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}`, config);\n  },\n\n  getCompanyById(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}`, config);\n  },\n\n  getCompanyUsers(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/users`, config);\n  },\n\n  getCompanyApplications(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/applications`, config);\n  },\n\n  getCompanyTagData(user, companyId) {\n    var header = getAuthHeader(user);\n    header[\"Accept-Encoding\"] = \"br\";\n\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/tagdata`, config);\n  },\n\n  create(user, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}`, payload, config);\n  },\n\n  edit(user, companyId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/${companyId}`, payload, config);\n  },\n\n  delete(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/${companyId}`, config);\n  },\n\n  getTagDataWithMetrics(user, companyId, metrics) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/tagdata${metrics}`, config);\n  },\n\n  getTagDataDefaults(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/defaults`, config);\n  },\n\n  getTagDataPoints(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/tagdata/count`, config);\n  },\n\n  createUser(user, companyId, userPayload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/${companyId}/user`,\n      userPayload,\n      config\n    );\n  },\n\n  postWhiteLabelImage(image) {\n    return Repository.post(\n      `${resource}/white-label/${company()}`,\n      image,\n      apiConfig()\n    );\n  },\n\n  postImage(user, companyId, image) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}/${companyId}/image`, image, config);\n  },\n\n  deleteImage(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/${companyId}/image`, config);\n  },\n\n  latestActivity(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/tag/activity`, config);\n  },\n\n  getBatteryStatuses(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/tag/batteries`, config);\n  },\n\n  getLatestTagData(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/latesttagdata`, config);\n  },\n\n  getDatapointsLastWeek(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/datapointsweek`, config);\n  },\n\n  getDatapointsLastDay(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${companyId}/datapointsday`, config);\n  },\n\n  getSensorDatapointsLastDay(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(\n      `${resource}/${companyId}/sensordatapoints/day`,\n      config\n    );\n  },\n\n  getTagsWithInformation() {\n    return Repository.get(`${resource}/${company()}/tags`, apiConfig());\n  },\n\n  getShared(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/shared`, config);\n  },\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.SO_API_BASE_URL != null)?_c('v-app',{key:_vm.updateCounter,staticClass:\"grey lighten-4\",staticStyle:{\"max-height\":\"100vh\"}},[_c('license-notification'),(\n      _vm.$router.currentRoute.name !== 'home' &&\n      _vm.currentUser.role != 'PublicDashboard'\n    )?_c('NavBar'):_vm._e(),_c('v-main',{class:{\n      sientificLight: !this.darkmode && _vm.userSettings.theme != 'Colors',\n      sientificDark: this.darkmode && _vm.userSettings.theme != 'Colors',\n      backg: _vm.userSettings.theme == 'Colors' && !this.darkmode,\n      backgdark: _vm.userSettings.theme == 'Colors' && this.darkmode,\n    },staticStyle:{\"padding\":\"0\"}},[_c('router-view')],1),(_vm.message != '')?_c('v-snackbar',{attrs:{\"bottom\":\"\",\"right\":\"\",\"timeout\":3000,\"color\":_vm.alertType == 'error' ? 'red' : 'green'},model:{value:(_vm.refresh),callback:function ($$v) {_vm.refresh=$$v},expression:\"refresh\"}},[_vm._v(_vm._s(_vm.message)+\" \")]):_vm._e(),(_vm.$router.currentRoute.name === 'dashboardChooser')?_c('v-footer',{attrs:{\"app\":\"\"}},[_c('span',[_vm._v(\" \"+_vm._s(this.globalSettings.powered_by ? this.globalSettings.powered_by : \"Nodeledge AB\"))])]):_vm._e(),(_vm.permitted('Tag.View'))?_c('data-hub'):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('nav',[_c('v-app-bar',{style:(_vm.userSettings != undefined && _vm.userSettings.toolbarTransparent\n        ? 'background: transparent;box-shadow:none;'\n        : ''),attrs:{\"app\":\"\",\"clipped\":\"\"}},[_c('v-app-bar-nav-icon',{on:{\"click\":function($event){$event.stopPropagation();_vm.drawer = !_vm.drawer}}}),_c('v-spacer'),(_vm.status.loggedIn)?_c('div',{staticClass:\"d-flex justify-center align-center\"},[_c('search'),(_vm.permitted('Dashboard.View'))?_c('DashboardTreeSelect'):_vm._e(),(_vm.permitted('Settings.GetSettings', ''))?_c('Notification'):_vm._e()],1):_vm._e()],1),_c('v-navigation-drawer',{class:{\n      darkSientific: _vm.darkTheme && _vm.userSettings.theme == 'Scientific',\n      lightSientific: !_vm.darkTheme && _vm.userSettings.theme == 'Scientific',\n      lightDrawer: !_vm.darkTheme && _vm.userSettings.theme != 'Scientific',\n      darkDrawer: _vm.darkTheme && _vm.userSettings.theme != 'Scientific',\n      primary: _vm.userSettings.theme != 'Scientific',\n      'white--text': !_vm.darkTheme,\n      'dark--text': _vm.darkTheme,\n    },attrs:{\"app\":\"\",\"temporary\":!_vm.userSettings.stickySideMenu},model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('v-list',[_c('v-list-item',[_c('v-list-item-content',[_c('v-img',{attrs:{\"height\":\"75px\",\"width\":\"200px\",\"src\":_vm.logoPath,\"contain\":\"\"}})],1)],1),_c('v-divider'),_vm._l((_vm.viewableLinks),function(link){return _c('v-list-item',{key:link.text,attrs:{\"router\":\"\",\"to\":link.route}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(_vm._s(link.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(link.text)+\" \")])],1)],1)}),_c('v-divider'),_c('v-list-item',{attrs:{\"href\":this.SO_API_BASE_URL,\"target\":\"_blank\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(_vm._s(_vm.apiLink.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.apiLink.text)+\" \")])],1)],1),(_vm.showShopLink == true)?_c('v-list-item',{attrs:{\"href\":_vm.sensorShopLink.externalRoute,\"target\":\"_blank\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(_vm._s(_vm.sensorShopLink.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.sensorShopLink.text)+\" \")])],1)],1):_vm._e(),_c('v-divider'),_c('v-list-item',[_c('v-list-item-content',[_c('v-switch',{attrs:{\"label\":_vm.$t('common.darkTheme')},model:{value:(_vm.darkTheme),callback:function ($$v) {_vm.darkTheme=$$v},expression:\"darkTheme\"}})],1)],1),_c('v-divider'),(_vm.companies.length > 1)?_c('v-container',{staticClass:\"mg-5\"},[_c('company-switcher')],1):_vm._e()],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"fab\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-badge',{attrs:{\"content\":_vm.notifications.length,\"value\":_vm.notifications.length,\"color\":\"error\",\"overlap\":\"\"}},[_c('v-icon',{attrs:{\"medium\":\"\"}},[_vm._v(_vm._s(_vm.notifications.length > 0 ? \"mdi-bell-ring\" : \"mdi-bell\"))])],1)],1)]}}]),model:{value:(_vm.notificationTray),callback:function ($$v) {_vm.notificationTray=$$v},expression:\"notificationTray\"}},[_vm._l((_vm.notifications),function(notification){return _c('v-list',{key:notification.notificationId,staticClass:\"hide-scrollbar\",staticStyle:{\"overflow\":\"scroll\",\"padding\":\"1rem\"},attrs:{\"max-width\":\"600px\",\"min-height\":\"80px\",\"max-height\":\"600px\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.clearNotifications(notification.notificationId, notification.route)}}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(notification.label)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(notification.message)+\" \")])],1)],1),_c('v-divider')],1)}),(_vm.notifications.length <= 0)?_c('v-list',{attrs:{\"max-width\":\"600px\",\"min-width\":\"450px\"}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t(\"notifications.noNotifications\")))]),_c('v-list-item-subtitle')],1)],1):_vm._e(),_c('v-btn',{attrs:{\"color\":\"primary\",\"block\":\"\"},on:{\"click\":function($event){return _vm.clearNotifications(null)}}},[_vm._v(_vm._s(_vm.$t(\"notifications.clearNotifications\")))])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-menu bottom offset-y v-model=\"notificationTray\">\n    <template v-slot:activator=\"{ on, attrs }\">\n      <v-btn fab small v-bind=\"attrs\" v-on=\"on\">\n        <v-badge\n          :content=\"notifications.length\"\n          :value=\"notifications.length\"\n          color=\"error\"\n          overlap\n        >\n          <v-icon medium>{{\n            notifications.length > 0 ? \"mdi-bell-ring\" : \"mdi-bell\"\n          }}</v-icon>\n        </v-badge>\n      </v-btn>\n    </template>\n    <v-list\n      v-for=\"notification in notifications\"\n      v-bind:key=\"notification.notificationId\"\n      max-width=\"600px\"\n      min-height=\"80px\"\n      max-height=\"600px\"\n      style=\"overflow: scroll; padding: 1rem\"\n      class=\"hide-scrollbar\"\n    >\n      <v-list-item\n        @click=\"\n          clearNotifications(notification.notificationId, notification.route)\n        \"\n      >\n        <v-list-item-content>\n          <v-list-item-title>\n            {{ notification.label }}\n          </v-list-item-title>\n          <v-list-item-subtitle>\n            {{ notification.message }}\n          </v-list-item-subtitle>\n        </v-list-item-content>\n      </v-list-item>\n      <v-divider></v-divider>\n    </v-list>\n    <v-list\n      v-if=\"notifications.length <= 0\"\n      max-width=\"600px\"\n      min-width=\"450px\"\n    >\n      <v-list-item-content>\n        <v-list-item-title class=\"text-center\">{{\n          $t(\"notifications.noNotifications\")\n        }}</v-list-item-title>\n        <v-list-item-subtitle></v-list-item-subtitle>\n      </v-list-item-content>\n    </v-list>\n    <v-btn color=\"primary\" block @click=\"clearNotifications(null)\">{{\n      $t(\"notifications.clearNotifications\")\n    }}</v-btn>\n  </v-menu>\n</template>\n\n<script>\nimport { mapActions, mapState } from \"vuex\";\nexport { Roles } from \"@/_helpers/Role.js\";\n\nexport default {\n  name: \"Notification\",\n  data() {\n    return {\n      notificationTray: false,\n      interval: undefined,\n    };\n  },\n\n  computed: {\n    ...mapState(\"notifications\", [\"notifications\"]),\n    ...mapState(\"users\", [\"currentUser\"]),\n  },\n\n  methods: {\n    ...mapActions(\"notifications\", [\n      \"deactivateAllNotifications\",\n      \"deactivateNotification\",\n      \"getNotifications\",\n    ]),\n\n    async clearNotifications(id, route = \"\") {\n      if (id == null || id == undefined) {\n        this.deactivateAllNotifications();\n        return;\n      }\n\n      await this.deactivateNotification(id);\n      if (route != \"\") this.$router.push(route);\n    },\n  },\n\n  async created() {\n    await this.getNotifications();\n    this.interval = setInterval(() => this.getNotifications(), 10 * 60 * 1000);\n  },\n\n  beforeDestroy() {\n    clearInterval(this.interval);\n  },\n\n  watch: {\n    notificationTray(val) {\n      if (val) {\n        this.getNotifications();\n      }\n    },\n  },\n};\n</script>\n<style>\n.hide-scrollbar {\n  -ms-overflow-style: none;\n  scrollbar-width: none;\n}\n\n.hide-scrollbar::-webkit-scrollbar {\n  display: none;\n}\n</style>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Notification.vue?vue&type=template&id=3d3ef689\"\nimport script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\nimport style0 from \"./Notification.vue?vue&type=style&index=0&id=3d3ef689&prod&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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"max-width\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"color\":\"primary\",\"text\":\"\"}},on),[_vm._v(\" \"+_vm._s(_vm.$t(\"dashboard.selectDashboard\"))+\" \")])]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"dashboard.navigationTitle\")))]),_c('v-card-text',[(_vm.dialog)?_c('DashboardCategoryViewer',{on:{\"close\":function($event){_vm.dialog = false}}}):_vm._e()],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary lighten-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(_vm._s(_vm.$t(\"common.close\")))])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <v-dialog v-model=\"dialog\" max-width=\"600\">\r\n    <template v-slot:activator=\"{ on }\">\r\n      <v-btn v-on=\"on\" color=\"primary\" text>\r\n        {{ $t(\"dashboard.selectDashboard\") }}\r\n      </v-btn>\r\n    </template>\r\n    <v-card>\r\n      <v-card-title>{{ $t(\"dashboard.navigationTitle\") }}</v-card-title>\r\n      <v-card-text>\r\n        <DashboardCategoryViewer v-if=\"dialog\" v-on:close=\"dialog = false\" />\r\n      </v-card-text>\r\n      <v-card-actions>\r\n        <v-spacer></v-spacer>\r\n\r\n        <v-btn color=\"primary lighten-1\" text @click=\"dialog = false\">{{\r\n          $t(\"common.close\")\r\n        }}</v-btn>\r\n      </v-card-actions>\r\n    </v-card>\r\n  </v-dialog>\r\n</template>\r\n\r\n<script>\r\nimport DashboardCategoryViewer from \"./DashboardCategoryViewer.vue\";\r\nexport default {\r\n  name: \"DashboardTreeSelect\",\r\n  data() {\r\n    return {\r\n      dialog: false,\r\n    };\r\n  },\r\n\r\n  components: {\r\n    DashboardCategoryViewer,\r\n  },\r\n};\r\n</script>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardTreeSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardTreeSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DashboardTreeSelect.vue?vue&type=template&id=b6f82782\"\nimport script from \"./DashboardTreeSelect.vue?vue&type=script&lang=js\"\nexport * from \"./DashboardTreeSelect.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 render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"searchbox\"},[_c('v-text-field',{staticStyle:{\"max-width\":\"400px\",\"justify-self\":\"center\",\"align-self\":\"center\"},attrs:{\"prepend-inner-icon\":\"mdi-magnify\",\"label\":\"Search\",\"counter\":\"\",\"hide-details\":\"\",\"autocomplete\":\"off\"},on:{\"change\":_vm.search,\"keydown\":_vm.search,\"focus\":function($event){_vm.showResults = true},\"blur\":_vm.blur},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),(_vm.showResults == true)?_c('v-card',{staticClass:\"item-box\"},[(Object.keys(_vm.items).length <= 0 && !_vm.loading)?_c('div',[_c('h4',{staticStyle:{\"padding\":\"1rem\"}},[_vm._v(_vm._s(_vm.$t(\"common.nothingToSee\")))])]):_vm._e(),(_vm.loading)?_c('v-progress-linear',{staticStyle:{\"width\":\"100%\"},attrs:{\"height\":5,\"color\":\"primary\",\"indeterminate\":\"\"}}):_vm._e(),_vm._l((_vm.items),function(value,key){return _c('div',{key:key,staticClass:\"item-category\",style:(`background: ${_vm.typeColor(key)}40`)},[_c('h3',[_vm._v(_vm._s(_vm.$t(`common.searchType.${key}`)))]),_c('v-divider',{attrs:{\"color\":_vm.typeColor(key)}}),_vm._l((value),function(item,i){return _c('div',{key:i,staticClass:\"item\"},[_c('h5',{staticClass:\"text--darken\",attrs:{\"href\":_vm.getRoute(item)},on:{\"mousedown\":(e) => _vm.navigate(e, item)}},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('p',[_vm._v(_vm._s(item.description))])])}),_c('v-divider',{attrs:{\"color\":_vm.typeColor(key)}})],2)})],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <v-container class=\"searchbox\">\r\n    <v-text-field\r\n      prepend-inner-icon=\"mdi-magnify\"\r\n      label=\"Search\"\r\n      style=\"max-width: 400px; justify-self: center; align-self: center\"\r\n      v-model=\"searchTerm\"\r\n      @change=\"search\"\r\n      @keydown=\"search\"\r\n      counter\r\n      hide-details\r\n      autocomplete=\"off\"\r\n      @focus=\"showResults = true\"\r\n      @blur=\"blur\"\r\n    ></v-text-field>\r\n\r\n    <v-card class=\"item-box\" v-if=\"showResults == true\">\r\n      <div v-if=\"Object.keys(items).length <= 0 && !loading\">\r\n        <h4 style=\"padding: 1rem\">{{ $t(\"common.nothingToSee\") }}</h4>\r\n      </div>\r\n      <v-progress-linear\r\n        v-if=\"loading\"\r\n        style=\"width: 100%\"\r\n        :height=\"5\"\r\n        color=\"primary\"\r\n        indeterminate\r\n      ></v-progress-linear>\r\n\r\n      <div\r\n        class=\"item-category\"\r\n        :style=\"`background: ${typeColor(key)}40`\"\r\n        v-for=\"(value, key) in items\"\r\n        :key=\"key\"\r\n      >\r\n        <h3>{{ $t(`common.searchType.${key}`) }}</h3>\r\n        <v-divider :color=\"typeColor(key)\"></v-divider>\r\n        <div class=\"item\" v-for=\"(item, i) in value\" :key=\"i\">\r\n          <h5\r\n            :href=\"getRoute(item)\"\r\n            @mousedown=\"(e) => navigate(e, item)\"\r\n            class=\"text--darken\"\r\n          >\r\n            {{ item.title }}\r\n          </h5>\r\n          <p>{{ item.description }}</p>\r\n        </div>\r\n        <v-divider :color=\"typeColor(key)\"></v-divider>\r\n      </div>\r\n    </v-card>\r\n  </v-container>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n  HubConnectionBuilder,\r\n  LogLevel,\r\n  HttpTransportType,\r\n  HubConnectionState,\r\n} from \"@microsoft/signalr\";\r\nimport { mapState, mapActions } from \"vuex\";\r\n\r\nexport default {\r\n  name: \"Search\",\r\n\r\n  data() {\r\n    return {\r\n      hub: null,\r\n      searchTerm: \"\",\r\n      debounceTimer: null,\r\n      showResults: false,\r\n      items: [],\r\n      loading: false,\r\n    };\r\n  },\r\n\r\n  methods: {\r\n    ...mapActions(\"companies\", [\"getById\"]),\r\n    ...mapActions(\"users\", [\"setUserCompany\"]),\r\n\r\n    newResult(values) {\r\n      this.items = values;\r\n    },\r\n\r\n    search() {\r\n      if (this.hub.connectionState != HubConnectionState.Connected) {\r\n        clearTimeout(this.debounceTimer);\r\n        return;\r\n      }\r\n\r\n      if (this.searchTerm == \"\" || this.searchTerm == null) {\r\n        this.items = [];\r\n        clearTimeout(this.debounceTimer);\r\n        return;\r\n      }\r\n\r\n      if (this.debounceTimer != null) clearTimeout(this.debounceTimer);\r\n\r\n      this.loading = true;\r\n      this.showResults = true;\r\n\r\n      this.debounceTimer = setTimeout(() => {\r\n        if (this.searchTerm.length > 1)\r\n          this.hub.invoke(\"Search\", this.searchTerm);\r\n\r\n        this.loading = false;\r\n        clearTimeout(this.debounceTimer);\r\n      }, 500);\r\n    },\r\n\r\n    blur() {\r\n      this.showResults = false;\r\n      this.loading = false;\r\n      clearTimeout(this.debounceTimer);\r\n    },\r\n\r\n    getRoute(item) {\r\n      switch (item.type) {\r\n        case 0:\r\n          return `/alarm/${item.identifier}`;\r\n        case 1:\r\n          return `/application/${item.identifier}`;\r\n        case 2:\r\n          return `/dashboard/${item.identifier}`;\r\n        case 3:\r\n          return `/gateways`;\r\n        case 4:\r\n          return `/script/${item.identifier}`;\r\n        case 5:\r\n          return `/tagdetails/${item.identifier}`;\r\n        case 6:\r\n          return `/tagdetails/${item.identifier}`;\r\n      }\r\n\r\n      return `/`;\r\n    },\r\n\r\n    async navigate(e, item) {\r\n      e.preventDefault();\r\n\r\n      if (item.companyId !== this.userCompany.companyId) {\r\n        await this.getById({ companyId: item.companyId });\r\n        this.setUserCompany({ company: this.company });\r\n      }\r\n\r\n      this.searchTerm = \"\";\r\n      this.showResults = false;\r\n      clearTimeout(this.debounceTimer);\r\n      let route = this.getRoute(item);\r\n      let duplicateNav = this.checkDuplicateNavigation(item.type);\r\n      this.$router.push(route);\r\n      if (duplicateNav) this.$router.go();\r\n    },\r\n\r\n    checkDuplicateNavigation(type) {\r\n      let t = 0;\r\n      switch (type) {\r\n        case 0:\r\n          t = `alarm`;\r\n          break;\r\n        case 1:\r\n          t = `application`;\r\n          break;\r\n        case 2:\r\n          t = `dashboard`;\r\n          break;\r\n        case 3:\r\n          t = `gateways`;\r\n          break;\r\n        case 4:\r\n          t = `script`;\r\n          break;\r\n        case 5:\r\n          t = `tagdetails`;\r\n          break;\r\n        case 6:\r\n          t = `tagdetails`;\r\n          break;\r\n      }\r\n\r\n      return this.$route.path.includes(t);\r\n    },\r\n\r\n    async connect() {\r\n      var url = this.SO_API_BASE_URL;\r\n      url = url + \"/search-hub\";\r\n\r\n      this.hub = new HubConnectionBuilder()\r\n        .withUrl(url, {\r\n          skipNegotiation: true,\r\n          transport: HttpTransportType.WebSockets,\r\n          accessTokenFactory: () => this.currentUser.token,\r\n        })\r\n        .configureLogging(LogLevel.Warning)\r\n        .withAutomaticReconnect()\r\n        .build();\r\n\r\n      this.hub.on(\"BroadcastSearch\", this.newResult);\r\n      await this.hub.start();\r\n    },\r\n\r\n    typeColor(type) {\r\n      switch (type) {\r\n        case \"TAG\":\r\n          return \"#3D56B2\";\r\n        case \"ALARM\":\r\n          return \"#911F27\";\r\n        case \"APPLICATION\":\r\n          return \"#57CC99\";\r\n        case \"DASHBOARD\":\r\n          return \"#FFC074\";\r\n        case \"GATEWAY\":\r\n          return \"#00A19D\";\r\n        case \"SCRIPT\":\r\n          return \"#FFEF78\";\r\n        case \"ATTRIBUTE\":\r\n          return \"#EDA519\";\r\n      }\r\n\r\n      return \"\";\r\n    },\r\n  },\r\n\r\n  computed: {\r\n    ...mapState(\"configuration\", [\"SO_API_BASE_URL\"]),\r\n    ...mapState(\"users\", [\"currentUser\", \"userCompany\"]),\r\n    ...mapState(\"companies\", [\"company\"]),\r\n  },\r\n\r\n  async created() {\r\n    await this.connect();\r\n  },\r\n\r\n  unmounted() {\r\n    if (this.debounceTimer != null) clearTimeout(this.debounceTimer);\r\n\r\n    this.hub.off(\"BroadcastSearch\", this.newResult);\r\n    this.hub.stop();\r\n  },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.searchbox {\r\n  max-width: 400px;\r\n}\r\n\r\n.item-box {\r\n  position: absolute;\r\n  max-width: 100%;\r\n  width: 400px;\r\n  border-radius: 10px;\r\n  max-height: 600px;\r\n  overflow-y: scroll;\r\n  overflow-x: hidden;\r\n  .item-category {\r\n    padding: 1rem;\r\n    .item {\r\n      padding: 0.5rem;\r\n      h5 {\r\n        margin-bottom: 0px;\r\n        font-weight: bolder;\r\n        font-size: 1rem;\r\n        text-decoration: none;\r\n        cursor: pointer;\r\n      }\r\n\r\n      p {\r\n        font-size: 0.7rem;\r\n        margin: 0;\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n  .item-box {\r\n    width: 100%;\r\n    left: 0;\r\n  }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Search.vue?vue&type=template&id=52d93865&scoped=true\"\nimport script from \"./Search.vue?vue&type=script&lang=js\"\nexport * from \"./Search.vue?vue&type=script&lang=js\"\nimport style0 from \"./Search.vue?vue&type=style&index=0&id=52d93865&prod&lang=scss&scoped=true\"\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  \"52d93865\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('h4',[_vm._v(_vm._s(_vm.userCompany?.name ?? \"\"))]),_c('v-btn',{attrs:{\"block\":\"\"},on:{\"click\":() => (_vm.dialog = true)}},[_vm._v(_vm._s(_vm.$t(\"common.switchCompany\")))]),_c('v-dialog',{attrs:{\"max-width\":\"700px\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"common.switchCompany\")))]),_c('v-card-text',{staticStyle:{\"max-height\":\"400px !important\",\"height\":\"400px\",\"overflow-y\":\"scroll\"}},[_c('v-text-field',{attrs:{\"prepend-inner-icon\":\"mdi-home-search\",\"label\":_vm.$t('common.search')},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_vm._l((_vm.cs),function(c){return _c('div',{key:c.companyId,staticClass:\"d-flex justify-space-between pa-4 mb-2 rounded-lg company-row\"},[_c('div',[_c('h2',[_vm._v(_vm._s(c.name))]),_c('span',[_vm._v(_vm._s(c.companyId)+\" - \"+_vm._s(c.orgNumber))])]),_c('div',[_c('v-btn',{attrs:{\"light\":\"\",\"disabled\":_vm.userCompany.companyId == c.companyId},on:{\"click\":function($event){return _vm.select(c.companyId)}}},[_vm._v(\" \"+_vm._s(_vm.userCompany.companyId == c.companyId ? _vm.$t(\"common.selected\") : _vm.$t(\"common.select\"))+\" \")])],1)])})],2),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"grey\"},on:{\"click\":() => (_vm.dialog = false)}},[_vm._v(\"Close\")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <h4>{{ userCompany?.name ?? \"\" }}</h4>\n    <v-btn @click=\"() => (dialog = true)\" block>{{\n      $t(\"common.switchCompany\")\n    }}</v-btn>\n\n    <v-dialog v-model=\"dialog\" max-width=\"700px\">\n      <v-card>\n        <v-card-title>{{ $t(\"common.switchCompany\") }}</v-card-title>\n\n        <v-card-text\n          style=\"\n            max-height: 400px !important;\n            height: 400px;\n            overflow-y: scroll;\n          \"\n        >\n          <v-text-field\n            v-model=\"searchTerm\"\n            prepend-inner-icon=\"mdi-home-search\"\n            :label=\"$t('common.search')\"\n          />\n          <div\n            v-for=\"c in cs\"\n            :key=\"c.companyId\"\n            class=\"d-flex justify-space-between pa-4 mb-2 rounded-lg company-row\"\n          >\n            <div>\n              <h2>{{ c.name }}</h2>\n              <span>{{ c.companyId }} - {{ c.orgNumber }}</span>\n            </div>\n            <div>\n              <v-btn\n                light\n                @click=\"select(c.companyId)\"\n                :disabled=\"userCompany.companyId == c.companyId\"\n              >\n                {{\n                  userCompany.companyId == c.companyId\n                    ? $t(\"common.selected\")\n                    : $t(\"common.select\")\n                }}\n              </v-btn>\n            </div>\n          </div>\n        </v-card-text>\n\n        <v-card-actions>\n          <v-spacer />\n          <v-btn @click=\"() => (dialog = false)\" text color=\"grey\">Close</v-btn>\n        </v-card-actions>\n      </v-card>\n    </v-dialog>\n  </div>\n</template>\n\n<script>\nimport { mapActions, mapState } from \"vuex\";\n\nexport default {\n  name: \"CompanySwitcher\",\n\n  data() {\n    return {\n      dialog: false,\n      searchTerm: \"\",\n    };\n  },\n\n  computed: {\n    ...mapState(\"companies\", [\"companies\", \"company\"]),\n    ...mapState(\"users\", [\"userCompany\"]),\n\n    cs() {\n      let temp = this.companies.slice(0, this.companies.length);\n      if (temp.length <= 1) return temp;\n\n      let idx = this.companies.findIndex(\n        (d) => d?.companyId == this.userCompany.companyId\n      );\n      if (idx != undefined) {\n        var cmp = temp[0];\n        temp[0] = temp[idx];\n        temp[idx] = cmp;\n      }\n\n      return temp.filter((d) =>\n        d?.name.toLowerCase().includes(this.searchTerm.toLowerCase())\n      );\n    },\n  },\n\n  methods: {\n    ...mapActions(\"companies\", [\"getAll\", \"getById\"]),\n    ...mapActions(\"users\", [\"setUserCompany\", \"refreshUserData\"]),\n    ...mapActions(\"configuration\", [\"getCompanySettings\"]),\n\n    async select(companyId) {\n      await this.getById({ companyId: companyId });\n      if (this.company.companyId != companyId) return;\n\n      this.setUserCompany({ company: this.company });\n      await this.getCompanySettings();\n      this.refreshUserData();\n    },\n  },\n\n  async created() {\n    await this.getAll();\n  },\n};\n</script>\n\n<style>\n.company-row {\n  border: 1px solid #cfcfcf;\n  padding: 1rem;\n  background-color: #e6e6e6 !important;\n  color: black;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompanySwitcher.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompanySwitcher.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CompanySwitcher.vue?vue&type=template&id=ebb4d6aa\"\nimport script from \"./CompanySwitcher.vue?vue&type=script&lang=js\"\nexport * from \"./CompanySwitcher.vue?vue&type=script&lang=js\"\nimport style0 from \"./CompanySwitcher.vue?vue&type=style&index=0&id=ebb4d6aa&prod&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","<template>\n  <nav>\n    <v-app-bar\n      app\n      clipped\n      :style=\"\n        userSettings != undefined && userSettings.toolbarTransparent\n          ? 'background: transparent;box-shadow:none;'\n          : ''\n      \"\n    >\n      <v-app-bar-nav-icon @click.stop=\"drawer = !drawer\"></v-app-bar-nav-icon>\n      <v-spacer />\n      <div v-if=\"status.loggedIn\" class=\"d-flex justify-center align-center\">\n        <search />\n        <DashboardTreeSelect v-if=\"permitted('Dashboard.View')\" />\n        <Notification v-if=\"permitted('Settings.GetSettings', '')\" />\n      </div>\n    </v-app-bar>\n\n    <v-navigation-drawer\n      app\n      v-model=\"drawer\"\n      v-bind:class=\"{\n        darkSientific: darkTheme && userSettings.theme == 'Scientific',\n        lightSientific: !darkTheme && userSettings.theme == 'Scientific',\n        lightDrawer: !darkTheme && userSettings.theme != 'Scientific',\n        darkDrawer: darkTheme && userSettings.theme != 'Scientific',\n        primary: userSettings.theme != 'Scientific',\n        'white--text': !darkTheme,\n        'dark--text': darkTheme,\n      }\"\n      :temporary=\"!userSettings.stickySideMenu\"\n    >\n      <v-list>\n        <v-list-item>\n          <v-list-item-content>\n            <v-img height=\"75px\" width=\"200px\" :src=\"logoPath\" contain />\n          </v-list-item-content>\n        </v-list-item>\n        <v-divider></v-divider>\n        <v-list-item\n          v-for=\"link in viewableLinks\"\n          :key=\"link.text\"\n          router\n          :to=\"link.route\"\n        >\n          <v-list-item-action>\n            <v-icon>{{ link.icon }}</v-icon>\n          </v-list-item-action>\n          <v-list-item-content>\n            <v-list-item-title>\n              {{ link.text }}\n            </v-list-item-title>\n          </v-list-item-content>\n        </v-list-item>\n\n        <v-divider></v-divider>\n        <v-list-item :href=\"this.SO_API_BASE_URL\" target=\"_blank\">\n          <v-list-item-action>\n            <v-icon>{{ apiLink.icon }}</v-icon>\n          </v-list-item-action>\n          <v-list-item-content>\n            <v-list-item-title>\n              {{ apiLink.text }}\n            </v-list-item-title>\n          </v-list-item-content>\n        </v-list-item>\n        <v-list-item\n          :href=\"sensorShopLink.externalRoute\"\n          v-if=\"showShopLink == true\"\n          target=\"_blank\"\n        >\n          <v-list-item-action>\n            <v-icon>{{ sensorShopLink.icon }}</v-icon>\n          </v-list-item-action>\n          <v-list-item-content>\n            <v-list-item-title>\n              {{ sensorShopLink.text }}\n            </v-list-item-title>\n          </v-list-item-content>\n        </v-list-item>\n\n        <v-divider></v-divider>\n        <v-list-item>\n          <v-list-item-content>\n            <v-switch\n              :label=\"$t('common.darkTheme')\"\n              v-model=\"darkTheme\"\n            ></v-switch>\n          </v-list-item-content>\n        </v-list-item>\n        <v-divider></v-divider>\n        <v-container class=\"mg-5\" v-if=\"companies.length > 1\">\n          <company-switcher />\n        </v-container>\n      </v-list>\n    </v-navigation-drawer>\n  </nav>\n</template>\n\n<script>\nimport { mapState, mapActions, mapGetters } from \"vuex\";\nimport { Roles } from \"@/_helpers/Role\";\nimport Notification from \"@/components/common/Notification\";\nimport DashboardTreeSelect from \"@/components/dashboard/DashboardTreeSelect\";\nimport Search from \"./common/Search.vue\";\nimport CompanySwitcher from \"./company/CompanySwitcher\";\n\nexport default {\n  name: \"NavBar\",\n\n  props: [\"dark\"],\n\n  sync: true,\n\n  data() {\n    return {\n      drawer: false,\n      darkTheme: this.$vuetify.theme.dark,\n      company: \"\",\n      showManualLink: process.env.VUE_APP_SO_MANUAL_LINK_BOOL,\n      showShopLink: process.env.VUE_APP_SO_SHOP_LINK_BOOL,\n      temporaryNavBar: false,\n      appBarColor: \"\",\n    };\n  },\n\n  methods: {\n    ...mapActions({\n      setDarkmode: \"configuration/setDarkmode\",\n      getBaseUrl: \"configuration/getBaseUrl\",\n    }),\n    ...mapActions(\"companies\", [\"getAll\", \"setRootCompany\", \"getById\"]),\n    ...mapActions(\"users\", [\"setUserCompany\"]),\n    ...mapActions(\"configuration\", [\"getLicenseTerms\"]),\n\n    async submit() {\n      var ci = this.company;\n      await this.getById({ companyId: this.company });\n      if (this.storeCompany.companyId != ci) return;\n\n      this.setUserCompany({ company: this.storeCompany });\n      if (this.isInsideDashboard) {\n        this.$router.push(\"/dashboard\");\n      } else {\n        this.$router.go();\n      }\n    },\n\n    isSuperAdmin() {\n      if (this.status.loggedIn) {\n        if (\n          this.permitted(\"Masquerade\", \"Companies.\") ||\n          this.permitted(\"SuperAdmin\")\n        ) {\n          return true;\n        } else {\n          return false;\n        }\n      }\n    },\n  },\n\n  computed: {\n    ...mapState(\"configuration\", [\n      \"SO_API_BASE_URL\",\n      \"userSettings\",\n      \"license\",\n    ]),\n    ...mapState(\"users\", [\"currentUser\", \"status\", \"userCompany\"]),\n    ...mapState(\"companies\", {\n      companies: \"companies\",\n      storeCompany: \"company\",\n    }),\n    ...mapGetters(\"configuration\", [\"logoPath\"]),\n\n    Roles() {\n      return Roles;\n    },\n\n    viewableLinks() {\n      var links = [];\n      if (this.status.loggedIn) {\n        var authLinks = this.authLinks.filter((l) => {\n          if (this.whiteLabel && l.whiteLabel) return false;\n\n          return l.permit == null\n            ? this.permitted(l.permitBackend, \"\")\n            : this.permitted(l.permit);\n        });\n\n        links = links.concat(authLinks);\n      } else {\n        links = this.guestLinks;\n      }\n\n      return links;\n    },\n\n    guestLinks() {\n      return [\n        {\n          icon: \"mdi-home\",\n          text: this.$t(\"routes.home\"),\n          route: \"/\",\n          permit: \"ALL\",\n        },\n        {\n          icon: \"mdi-login\",\n          text: this.$t(\"routes.login\"),\n          route: \"/login\",\n          permit: \"ALL\",\n        },\n      ];\n    },\n\n    authLinks() {\n      return [\n        {\n          icon: \"mdi-view-dashboard\",\n          text: this.$t(\"routes.dashboard\"),\n          route: \"/dashboard\",\n          permit: \"Dashboard.View\",\n        },\n        {\n          icon: \"mdi-domain\",\n          text: this.$t(\"routes.company\"),\n          route: \"/company\",\n          permit: \"Company.View\",\n        },\n\n        {\n          icon: \"mdi-apps\",\n          text: this.$t(\"routes.application\"),\n          route: \"/application\",\n          permit: \"Application.View\",\n        },\n        {\n          icon: \"mdi-connection\",\n          text: this.$t(\"routes.tag\"),\n          route: \"/tag\",\n          permit: \"Tag.View\",\n        },\n        {\n          icon: \"mdi-access-point\",\n          text: this.$t(\"routes.gateway\"),\n          route: \"/gateways\",\n          permit: \"Gateways.View\",\n        },\n        {\n          icon: \"mdi-alarm\",\n          text: this.$t(\"routes.alarm\"),\n          route: \"/alarm\",\n          permit: \"Alarm.View\",\n        },\n        {\n          icon: \"mdi-language-javascript\",\n          text: this.$t(\"routes.script\"),\n          route: \"/script\",\n          permit: \"Script.View\",\n        },\n\n        {\n          icon: \"mdi-file-export\",\n          text: this.$t(\"routes.report\"),\n          route: \"/report\",\n          permit: \"Report.Update\",\n        },\n        {\n          icon: \"mdi-refresh-auto\",\n          text: this.$t(\"actions.title\"),\n          route: \"/actions\",\n          permit: \"Actions.View\",\n        },\n        {\n          icon: \"mdi-account-plus\",\n          text: this.$t(\"routes.registerCompany\"),\n          route: \"/register\",\n          permitBackend: \"Users.CreateCompanyWithUser\",\n        },\n\n        {\n          icon: \"mdi-cog\",\n          text: this.$t(\"routes.settings\"),\n          route: \"/settings\",\n          permitBackend: \"Settings.GetSettings\",\n        },\n\n        {\n          icon: \"mdi-logout\",\n          text: this.$t(\"routes.logout\"),\n          route: \"/logout\",\n          permit: \"ALL\",\n        },\n      ];\n    },\n\n    apiLink() {\n      // Get env\n      let apiUrl = this.SO_API_BASE_URL;\n      return {\n        icon: \"mdi-api\",\n        text: this.$t(\"routes.apiRef\"),\n        externalRoute: apiUrl,\n      };\n    },\n\n    manualLink() {\n      return {\n        icon: \"mdi-file-document-box\",\n        text: this.$t(\"routes.manual\"),\n        externalRoute: \"https://docs.sensor-online.se/\",\n      };\n    },\n\n    sensorShopLink() {\n      return {\n        icon: \"mdi-store\",\n        text: this.$t(\"routes.shop\"),\n        externalRoute: \"https://www.eyeo.se/IOT-AB-products.pdf\",\n      };\n    },\n  },\n\n  async created() {\n    await this.getBaseUrl();\n    await this.getLicenseTerms();\n\n    if (this.status.loggedIn) {\n      await this.getAll();\n      this.company = this.storeCompany.companyId;\n      this.userSettings.stickySideMenu\n        ? (this.drawer = true)\n        : (this.drawer = false);\n    }\n  },\n\n  watch: {\n    darkTheme(v) {\n      this.$vuetify.theme.dark = v;\n      this.setDarkmode(v);\n      return this.$vuetify.theme.dark;\n    },\n\n    storeCompany(v) {\n      if (v == undefined) return;\n      this.company = v.companyId;\n    },\n  },\n\n  components: {\n    Notification,\n    DashboardTreeSelect,\n    Search,\n    CompanySwitcher,\n  },\n};\n</script>\n<style>\n.lightDrawer {\n  background: rgb(33, 150, 243);\n  background: linear-gradient(\n    0deg,\n    rgba(33, 150, 243, 1) 0%,\n    rgba(255, 255, 255, 1) 100%\n  );\n}\n\n.darkDrawer {\n  background: rgb(30, 63, 90);\n  background: linear-gradient(\n    0deg,\n    rgba(30, 63, 90, 1) 0%,\n    rgb(218, 227, 235) 100%\n  );\n}\n\n.darkSientific {\n  background: #383838 !important;\n}\n\n.lightSientific {\n  background: #e9e9e9 !important;\n}\n\n.dark--text {\n  color: rgba(0, 0, 0, 0.87) !important;\n}\n</style>\n\n<style scoped>\n.white--text {\n  color: #fff !important;\n}\n\n.dark-background {\n  background-color: rgba(0, 0, 0, 0.4);\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??ref--13-1!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??ref--13-1!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NavBar.vue?vue&type=template&id=0e72c996&scoped=true\"\nimport script from \"./NavBar.vue?vue&type=script&lang=js\"\nexport * from \"./NavBar.vue?vue&type=script&lang=js\"\nimport style0 from \"./NavBar.vue?vue&type=style&index=0&id=0e72c996&prod&lang=css\"\nimport style1 from \"./NavBar.vue?vue&type=style&index=1&id=0e72c996&prod&scoped=true&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  \"0e72c996\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-btn',{staticClass:\"event-container-button slide-out\",staticStyle:{\"right\":\"0px\"},attrs:{\"fab\":\"\",\"small\":\"\",\"dark\":\"\",\"color\":\"grey darken-2\",\"fixed\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.openWindow()}}},[_c('v-icon',[_vm._v(\"mdi-connection\")])],1),_c('div',{staticClass:\"event-container slide-out\",style:(`width: ${_vm.window ? _vm.containerWidth : '0px'} `)},[_c('div',{staticClass:\"event-container-header\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"small\":\"\",\"dark\":\"\",\"color\":\"grey darken-2\"},on:{\"click\":function($event){_vm.window = !_vm.window}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1),_c('v-autocomplete',{staticClass:\"pl-2\",attrs:{\"items\":_vm.searchTags,\"filled\":\"\",\"chips\":\"\",\"item-text\":\"nameWithDeveui\",\"return-object\":\"\",\"multiple\":\"\",\"dark\":\"\",\"placeholder\":_vm.$t('tag.filter'),\"label\":_vm.$t('tag.filter')},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({staticStyle:{\"color\":\"white\"},attrs:{\"input-value\":data.selected,\"color\":\"#2e4250\",\"close\":\"\"},on:{\"click\":data.select,\"click:close\":function($event){return _vm.remove(data.item)}}},'v-chip',data.attrs,false),[_vm._v(_vm._s(data.item.name))])]}}]),model:{value:(_vm.filterNodes),callback:function ($$v) {_vm.filterNodes=$$v},expression:\"filterNodes\"}})],1),(_vm.window && _vm.events.length <= 0)?_c('div',{staticClass:\"events-loading\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}}),_c('h4',[_vm._v(_vm._s(_vm.$t(\"eventhub.waiting\")))])],1):_vm._e(),(_vm.window)?_c('div',{staticClass:\"event-messages-container\"},_vm._l((_vm.filteredEvents),function(event){return _c('div',{key:event.id,staticClass:\"event-message\"},[_c('div',{staticClass:\"event-message-header\"},[_c('h3',[_vm._v(\" \"+_vm._s(event.tag.name)+\" \")]),_c('h5',[_vm._v(\" \"+_vm._s(_vm.distanceAgo(event.date))+\" \")])]),_c('span',{staticClass:\"font-size: 1rem\"}),_c('pre',{domProps:{\"innerHTML\":_vm._s(\n            event.data\n              ? _vm.syntaxHighlight(JSON.stringify(event.data, undefined, 2))\n              : ''\n          )}})])}),0):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div>\r\n    <v-btn\r\n      fab\r\n      small\r\n      dark\r\n      color=\"grey darken-2\"\r\n      fixed\r\n      right\r\n      class=\"event-container-button slide-out\"\r\n      style=\"right: 0px\"\r\n      @click=\"openWindow()\"\r\n    >\r\n      <v-icon>mdi-connection</v-icon></v-btn\r\n    >\r\n    <div\r\n      class=\"event-container slide-out\"\r\n      :style=\"`width: ${window ? containerWidth : '0px'} `\"\r\n    >\r\n      <div class=\"event-container-header\">\r\n        <v-btn fab small dark color=\"grey darken-2\" @click=\"window = !window\">\r\n          <v-icon>mdi-close</v-icon>\r\n        </v-btn>\r\n\r\n        <v-autocomplete\r\n          v-model=\"filterNodes\"\r\n          :items=\"searchTags\"\r\n          filled\r\n          chips\r\n          item-text=\"nameWithDeveui\"\r\n          return-object\r\n          multiple\r\n          dark\r\n          class=\"pl-2\"\r\n          :placeholder=\"$t('tag.filter')\"\r\n          :label=\"$t('tag.filter')\"\r\n        >\r\n          <template v-slot:selection=\"data\">\r\n            <v-chip\r\n              v-bind=\"data.attrs\"\r\n              :input-value=\"data.selected\"\r\n              color=\"#2e4250\"\r\n              close\r\n              @click=\"data.select\"\r\n              @click:close=\"remove(data.item)\"\r\n              style=\"color: white\"\r\n              >{{ data.item.name }}</v-chip\r\n            >\r\n          </template>\r\n        </v-autocomplete>\r\n      </div>\r\n\r\n      <div class=\"events-loading\" v-if=\"window && events.length <= 0\">\r\n        <v-progress-circular\r\n          indeterminate\r\n          color=\"primary\"\r\n        ></v-progress-circular>\r\n        <h4>{{ $t(\"eventhub.waiting\") }}</h4>\r\n      </div>\r\n\r\n      <div class=\"event-messages-container\" v-if=\"window\">\r\n        <div\r\n          class=\"event-message\"\r\n          v-for=\"event in filteredEvents\"\r\n          :key=\"event.id\"\r\n        >\r\n          <div class=\"event-message-header\">\r\n            <h3>\r\n              {{ event.tag.name }}\r\n            </h3>\r\n\r\n            <h5>\r\n              {{ distanceAgo(event.date) }}\r\n            </h5>\r\n          </div>\r\n\r\n          <span class=\"font-size: 1rem\"></span>\r\n          <pre\r\n            v-html=\"\r\n              event.data\r\n                ? syntaxHighlight(JSON.stringify(event.data, undefined, 2))\r\n                : ''\r\n            \"\r\n          ></pre>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n<script>\r\nimport { mapState, mapActions } from \"vuex\";\r\nimport {\r\n  HubConnectionBuilder,\r\n  LogLevel,\r\n  HttpTransportType,\r\n} from \"@microsoft/signalr\";\r\n\r\nexport default {\r\n  name: \"EventHub\",\r\n\r\n  data() {\r\n    return {\r\n      hub: null,\r\n      window: false,\r\n      containerWidth: \"650px\",\r\n      updateInterval: null,\r\n      filterNodes: [],\r\n      events: [],\r\n    };\r\n  },\r\n\r\n  computed: {\r\n    ...mapState(\"configuration\", [\"SO_API_BASE_URL\"]),\r\n    ...mapState(\"users\", [\"currentUser\"]),\r\n    ...mapState(\"tag\", [\"tags\"]),\r\n\r\n    filteredEvents() {\r\n      if (this.filterNodes.length <= 0) return this.events;\r\n\r\n      let deveuis = this.filterNodes.map((e) => e.deveui);\r\n      let names = this.filterNodes.map((e) => e.name);\r\n\r\n      return this.events.filter(\r\n        (e) => deveuis.includes(e.tag.deveui) || names.includes(e.tag.name)\r\n      );\r\n    },\r\n\r\n    searchTags() {\r\n      return this.tags.map((e) => {\r\n        e.nameWithDeveui = `${e.name} - ${e.deveui}`;\r\n\r\n        return e;\r\n      });\r\n    },\r\n  },\r\n\r\n  methods: {\r\n    ...mapActions(\"tag\", [\"getTags\"]),\r\n    ...mapActions(\"event\", { addToEvent: \"addEvent\" }),\r\n\r\n    openWindow() {\r\n      this.window = !this.window;\r\n    },\r\n\r\n    addEvent(payload) {\r\n      this.events.unshift(payload);\r\n      if (this.events.length > 50) this.events.pop();\r\n\r\n      this.addToEvent(payload);\r\n    },\r\n\r\n    syntaxHighlight(json) {\r\n      json = json\r\n        .replace(/&/g, \"&amp;\")\r\n        .replace(/</g, \"&lt;\")\r\n        .replace(/>/g, \"&gt;\");\r\n      return json.replace(\r\n        /(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\\\-]?\\d+)?)/g,\r\n        function (match) {\r\n          var cls = \"number\";\r\n          if (/^\"/.test(match)) {\r\n            if (/:$/.test(match)) {\r\n              cls = \"key\";\r\n            } else {\r\n              cls = \"string\";\r\n            }\r\n          } else if (/true|false/.test(match)) {\r\n            cls = \"boolean\";\r\n          } else if (/null/.test(match)) {\r\n            cls = \"null\";\r\n          }\r\n          return '<span class=\"' + cls + '\">' + match + \"</span>\";\r\n        }\r\n      );\r\n    },\r\n\r\n    remove(item) {\r\n      if (item == null && item.deveui == undefined) return;\r\n\r\n      let index = this.filterNodes.findIndex((e) => e.deveui == item.deveui);\r\n      this.filterNodes.splice(index, 1);\r\n    },\r\n  },\r\n\r\n  async created() {\r\n    if (this.tags.length <= 0) await this.getTags();\r\n\r\n    var url = this.SO_API_BASE_URL;\r\n    url = url + \"/events\";\r\n\r\n    this.hub = new HubConnectionBuilder()\r\n      .withUrl(url, {\r\n        skipNegotiation: true,\r\n        transport: HttpTransportType.WebSockets,\r\n        accessTokenFactory: () => this.currentUser.token,\r\n      })\r\n      .configureLogging(LogLevel.Warning)\r\n      .withAutomaticReconnect()\r\n      .build();\r\n\r\n    this.hub.on(\"BroadcastEvent\", this.addEvent);\r\n    await this.hub.start();\r\n\r\n    this.updateInterval = setInterval(\r\n      () => this.$forceUpdate(this.events),\r\n      30000\r\n    );\r\n  },\r\n\r\n  async beforeDestroy() {\r\n    this.hub.off(\"BroadcastEvent\", this.addEvent);\r\n    await this.hub.stop();\r\n    clearInterval(this.updateInterval);\r\n  },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.event-container {\r\n  width: 0px;\r\n  height: 100%;\r\n  max-width: 100%;\r\n  top: 0px;\r\n  right: 0px;\r\n  position: fixed;\r\n  background-color: #1b262c;\r\n  z-index: 9999;\r\n  color: white;\r\n  text-align: left;\r\n\r\n  .event-container-header {\r\n    padding: 1rem;\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-content: center;\r\n  }\r\n\r\n  pre {\r\n    padding: 1rem;\r\n  }\r\n\r\n  .event-messages-container {\r\n    padding: 1rem;\r\n    max-height: 93%;\r\n    overflow-y: scroll;\r\n\r\n    .event-message {\r\n      background: #24323a;\r\n      margin: 0.5rem;\r\n      border-radius: 20px;\r\n\r\n      pre {\r\n        overflow-x: auto;\r\n      }\r\n\r\n      .event-message-header {\r\n        border-radius: 20px 20px 0 0;\r\n        padding: 1rem 1rem 1rem 1rem;\r\n        background: #2e4250;\r\n        color: #d1d4c9;\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        text-align: center;\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n.event-container-button {\r\n  top: 50vh;\r\n  display: block !important;\r\n  z-index: 999;\r\n}\r\n\r\n.slide-out {\r\n  transition: all 0.75s ease;\r\n}\r\n\r\n.events-loading {\r\n  display: flex;\r\n  justify-content: center;\r\n  align-items: center;\r\n  flex-direction: column;\r\n  height: 100%;\r\n  width: 100%;\r\n}\r\n\r\n.string {\r\n  color: #33ae81;\r\n}\r\n.number {\r\n  color: #dd915f;\r\n}\r\n.boolean {\r\n  color: #95c8f0;\r\n}\r\n.null {\r\n  color: #dc5b57;\r\n}\r\n.key {\r\n  color: #4a8ddc;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataHub.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataHub.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DataHub.vue?vue&type=template&id=51dd616c\"\nimport script from \"./DataHub.vue?vue&type=script&lang=js\"\nexport * from \"./DataHub.vue?vue&type=script&lang=js\"\nimport style0 from \"./DataHub.vue?vue&type=style&index=0&id=51dd616c&prod&lang=scss\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('v-snackbar',{staticStyle:{\"z-index\":\"99999999\"},attrs:{\"timeout\":30000,\"value\":_vm.showLicenseNotification && _vm.isInValidPath,\"absolute\":\"\",\"center\":\"\",\"rounded\":\"\",\"top\":\"\",\"color\":\"warning\"},on:{\"input\":(v) => _vm.setLicenseNotification(v)},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":() => _vm.setLicenseNotification(false)}},'v-btn',attrs,false),[_c('v-icon',[_vm._v(\"mdi-alpha-x\")])],1)]}}])},[(_vm.$route.path.includes('gateways/create'))?_c('span',[_vm._v(_vm._s(_vm.$t(\"license.limitations.errors.gateway\")))]):(_vm.$route.path.includes('tag/create'))?_c('span',[_vm._v(_vm._s(_vm.$t(\"license.limitations.errors.tag\")))]):(_vm.$route.path.includes('company/create'))?_c('span',[_vm._v(_vm._s(_vm.$t(\"license.limitations.errors.company\")))]):_c('span',[_vm._v(_vm._s(_vm.$t(\"license.limitations.errors.expiresIn\", [_vm.expiresIn])))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <v-snackbar\r\n    style=\"z-index: 99999999\"\r\n    :timeout=\"30000\"\r\n    :value=\"showLicenseNotification && isInValidPath\"\r\n    @input=\"(v) => setLicenseNotification(v)\"\r\n    absolute\r\n    center\r\n    rounded\r\n    top\r\n    color=\"warning\"\r\n  >\r\n    <span v-if=\"$route.path.includes('gateways/create')\">{{\r\n      $t(\"license.limitations.errors.gateway\")\r\n    }}</span>\r\n    <span v-else-if=\"$route.path.includes('tag/create')\">{{\r\n      $t(\"license.limitations.errors.tag\")\r\n    }}</span>\r\n    <span v-else-if=\"$route.path.includes('company/create')\">{{\r\n      $t(\"license.limitations.errors.company\")\r\n    }}</span>\r\n    <span v-else>{{\r\n      $t(\"license.limitations.errors.expiresIn\", [expiresIn])\r\n    }}</span>\r\n\r\n    <template v-slot:action=\"{ attrs }\">\r\n      <v-btn icon v-bind=\"attrs\" @click=\"() => setLicenseNotification(false)\">\r\n        <v-icon>mdi-alpha-x</v-icon>\r\n      </v-btn>\r\n    </template>\r\n  </v-snackbar>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapState } from \"vuex\";\r\nexport default {\r\n  name: \"LicenseNotification\",\r\n\r\n  data() {\r\n    return {};\r\n  },\r\n\r\n  computed: {\r\n    ...mapState(\"configuration\", [\r\n      \"showLicenseNotification\",\r\n      \"canCreateGateway\",\r\n      \"canCreateNode\",\r\n      \"canCreateCompany\",\r\n      \"showLicenseExpiery\",\r\n      \"expiresIn\",\r\n    ]),\r\n\r\n    isInValidPath() {\r\n      if (\r\n        (this.$route.path.includes(\"gateways/create\") &&\r\n          !this.canCreateGateway) ||\r\n        (this.$route.path.includes(\"tag/create\") && !this.canCreateNode) ||\r\n        ((this.$route.path.includes(\"company/create\") ||\r\n          this.$route.path.includes(\"register\")) &&\r\n          !this.canCreateCompany)\r\n      )\r\n        return true;\r\n\r\n      if (this.showLicenseExpiery) return true;\r\n\r\n      return false;\r\n    },\r\n  },\r\n\r\n  methods: {\r\n    ...mapActions(\"configuration\", [\r\n      \"getCanCreateBools\",\r\n      \"setLicenseNotification\",\r\n    ]),\r\n  },\r\n\r\n  async created() {\r\n    await this.getCanCreateBools();\r\n    this.setLicenseNotification(true);\r\n  },\r\n};\r\n</script>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LicenseNotification.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LicenseNotification.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LicenseNotification.vue?vue&type=template&id=69dca006\"\nimport script from \"./LicenseNotification.vue?vue&type=script&lang=js\"\nexport * from \"./LicenseNotification.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","<template>\r\n  <v-app\r\n    class=\"grey lighten-4\"\r\n    style=\"max-height: 100vh\"\r\n    v-if=\"SO_API_BASE_URL != null\"\r\n    :key=\"updateCounter\"\r\n  >\r\n    <license-notification />\r\n    <NavBar\r\n      v-if=\"\r\n        $router.currentRoute.name !== 'home' &&\r\n        currentUser.role != 'PublicDashboard'\r\n      \"\r\n    />\r\n\r\n    <v-main\r\n      v-bind:class=\"{\r\n        sientificLight: !this.darkmode && userSettings.theme != 'Colors',\r\n        sientificDark: this.darkmode && userSettings.theme != 'Colors',\r\n        backg: userSettings.theme == 'Colors' && !this.darkmode,\r\n        backgdark: userSettings.theme == 'Colors' && this.darkmode,\r\n      }\"\r\n      style=\"padding: 0\"\r\n    >\r\n      <router-view></router-view>\r\n    </v-main>\r\n\r\n    <v-snackbar\r\n      v-model=\"refresh\"\r\n      v-if=\"message != ''\"\r\n      bottom\r\n      right\r\n      :timeout=\"3000\"\r\n      :color=\"alertType == 'error' ? 'red' : 'green'\"\r\n      >{{ message }}\r\n    </v-snackbar>\r\n\r\n    <v-footer app v-if=\"$router.currentRoute.name === 'dashboardChooser'\">\r\n      <span>\r\n        {{\r\n          this.globalSettings.powered_by\r\n            ? this.globalSettings.powered_by\r\n            : \"Nodeledge AB\"\r\n        }}</span\r\n      >\r\n    </v-footer>\r\n\r\n    <data-hub v-if=\"permitted('Tag.View')\" />\r\n  </v-app>\r\n</template>\r\n\r\n<script>\r\nimport NavBar from \"@/components/NavBar\";\r\nimport { Roles } from \"@/_helpers/Role\";\r\nimport DataHub from \"@/components/events/DataHub.vue\";\r\nimport LicenseNotification from \"./components/license/LicenseNotification.vue\";\r\n\r\nimport { mapGetters, mapActions, mapState } from \"vuex\";\r\n\r\nexport default {\r\n  name: \"App\",\r\n  components: {\r\n    NavBar,\r\n    DataHub,\r\n    LicenseNotification,\r\n  },\r\n\r\n  data() {\r\n    return {\r\n      refresh: false,\r\n      landing: false,\r\n    };\r\n  },\r\n\r\n  updated() {\r\n    if (this.$router.currentRoute.name == \"home\") {\r\n      this.landing = true;\r\n    }\r\n\r\n    document.title = this.documentTitle;\r\n  },\r\n\r\n  async beforeMount() {\r\n    this.$vuetify.theme.dark = this.darkmode;\r\n    await this.getBaseUrl();\r\n    await this.getGlobalSettings();\r\n\r\n    if (this.status.loggedIn && this.currentUser.role != \"PublicDashboard\") {\r\n      await this.getUserSettings();\r\n      await this.getCompanySettings();\r\n      await this.getCompanyFeatures();\r\n    }\r\n\r\n    document.title = this.documentTitle;\r\n\r\n    if (this.whiteLabel) {\r\n      const favi = document.getElementById(\"favicon\");\r\n      favi.href = window.location.origin + \"/so-white-label-favicon.ico\";\r\n    }\r\n\r\n    this.clearAlert();\r\n  },\r\n\r\n  computed: {\r\n    ...mapGetters(\"users\", [\"companyId\"]),\r\n    ...mapState(\"alert\", [\"active\", \"message\", \"alertType\"]),\r\n    ...mapState(\"configuration\", [\r\n      \"darkmode\",\r\n      \"userSettings\",\r\n      \"globalSettings\",\r\n    ]),\r\n    ...mapState(\"users\", [\r\n      \"status\",\r\n      \"currentUser\",\r\n      \"userCompany\",\r\n      \"updateCounter\",\r\n    ]),\r\n    ...mapGetters(\"configuration\", [\"documentTitle\"]),\r\n\r\n    Roles() {\r\n      return Roles;\r\n    },\r\n  },\r\n  methods: {\r\n    ...mapActions(\"featureAccess\", [\"getCompanyFeatures\"]),\r\n    ...mapActions({ clearAlert: \"alert/clear\" }),\r\n    ...mapActions(\"configuration\", [\r\n      \"getGlobalSettings\",\r\n      \"getUserSettings\",\r\n      \"getCompanySettings\",\r\n      \"getBaseUrl\",\r\n      \"SO_API_BASE_URL\",\r\n    ]),\r\n  },\r\n\r\n  watch: {\r\n    message(val) {\r\n      if (val) {\r\n        this.refresh = true;\r\n      } else {\r\n        this.refresh = false;\r\n      }\r\n    },\r\n\r\n    refresh(value) {\r\n      if (value === false) this.clearAlert();\r\n    },\r\n  },\r\n};\r\n</script>\r\n\r\n<style>\r\n.backg {\r\n  /* background: rgb(235, 235, 235); */\r\n  background-image: url(\"/bg.jpg\");\r\n  background-size: cover;\r\n}\r\n\r\n.backgdark {\r\n  background-image: url(\"/bgdark.jpg\");\r\n  background-size: cover;\r\n}\r\n\r\n.sientificLight {\r\n  background-color: #e9e9e9;\r\n}\r\n\r\n.sientificDark {\r\n  background-color: #121212;\r\n}\r\n</style>\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??ref--13-1!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??ref--13-1!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=26abbeb8\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=26abbeb8&prod&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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"7\"}},[_c('vc-date-picker',{staticStyle:{\"max-width\":\"100%\"},attrs:{\"mode\":\"range\",\"is-inline\":\"\",\"is-range\":\"\"},model:{value:(_vm.ranges),callback:function ($$v) {_vm.ranges=$$v},expression:\"ranges\"}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"5\"}},[_c('v-row',_vm._l((_vm.setRanges),function(r){return _c('v-col',{key:r.index,attrs:{\"sm\":\"12\",\"md\":\"12\"}},[_c('v-chip',{staticClass:\"text-center\",staticStyle:{\"width\":\"100%\"},attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.changeRange(r.range)}}},[_vm._v(_vm._s(r.displayName))])],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-row>\n    <v-col sm=\"12\" md=\"7\">\n      <vc-date-picker\n        mode=\"range\"\n        v-model=\"ranges\"\n        is-inline\n        is-range\n        style=\"max-width: 100%\"\n      />\n    </v-col>\n\n    <v-col sm=\"12\" md=\"5\">\n      <v-row>\n        <v-col sm=\"12\" md=\"12\" v-for=\"r in setRanges\" v-bind:key=\"r.index\">\n          <v-chip\n            style=\"width: 100%\"\n            class=\"text-center\"\n            color=\"primary\"\n            @click=\"changeRange(r.range)\"\n            >{{ r.displayName }}</v-chip\n          >\n        </v-col>\n      </v-row>\n    </v-col>\n  </v-row>\n</template>\n\n<script>\nexport default {\n  name: \"DatePicker\",\n\n  props: {\n    module: {\n      type: Object,\n      default: undefined,\n    },\n  },\n\n  data() {\n    return {\n      isPresetValue: false,\n      ranges: {\n        start: new Date(new Date() - this.timeFromHours(24)),\n        end: new Date(),\n      },\n      setRanges: [\n        {\n          index: 0,\n          displayName: this.$t(\"common.dateRange.0\"),\n          range: {\n            end: new Date(),\n            start: new Date(new Date() - this.timeFromHours(1)),\n          },\n        },\n\n        {\n          index: 1,\n          displayName: this.$t(\"common.dateRange.1\"),\n          range: {\n            end: new Date(),\n            start: new Date(new Date() - this.timeFromHours(5)),\n          },\n        },\n\n        {\n          index: 2,\n          displayName: this.$t(\"common.dateRange.2\"),\n          range: {\n            end: new Date(),\n            start: new Date(new Date() - this.timeFromHours(24)),\n          },\n        },\n\n        {\n          index: 3,\n          displayName: this.$t(\"common.dateRange.3\"),\n          range: {\n            end: new Date(),\n            start: new Date(new Date() - this.timeFromDays(7)),\n          },\n        },\n\n        {\n          index: 4,\n          displayName: this.$t(\"common.dateRange.4\"),\n          range: {\n            end: new Date(),\n            start: new Date(new Date() - this.timeFromDays(30)),\n          },\n        },\n      ],\n    };\n  },\n\n  methods: {\n    changeRange(newRanges) {\n      this.ranges = newRanges;\n      this.isPresetValue = true;\n    },\n  },\n\n  watch: {\n    ranges(value) {\n      if (!this.isPresetValue) {\n        value.start.setHours(0);\n        value.end.setHours(23);\n        value.end.setMinutes(59);\n      }\n\n      this.$emit(\"update-range\", value);\n      this.isPresetValue = false;\n      if (this.module !== undefined) {\n        this.storeTimeOffset(\n          this.module.dashboardModuleId,\n          new Date() - value.start\n        );\n      }\n    },\n  },\n};\n</script>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DatePicker.vue?vue&type=template&id=2b982a75\"\nimport script from \"./DatePicker.vue?vue&type=script&lang=js\"\nexport * from \"./DatePicker.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","import { mapActions, mapState } from \"vuex\";\n\nexport default {\n  computed: {\n    ...mapState(\"settings\", [\"moduleSettings\"]),\n  },\n  methods: {\n    ...mapActions(\"settings\", [\"addModuleSetting\"]),\n\n    storeTimeOffset(moduleId, timeOffset) {\n      this.addModuleSetting({ moduleId, timeOffset });\n    },\n\n    getModuleSettingsTimeOffset(moduleId) {\n      if (moduleId != undefined || moduleId != null)\n        return this.moduleSettings[moduleId] != undefined ||\n          this.moduleSettings[moduleId] != null\n          ? this.moduleSettings[moduleId]\n          : undefined;\n\n      return undefined;\n    },\n  },\n};\n","export default {\r\n  computed: {\r\n    isInsideDashboard() {\r\n      let reg = this.$route.path.match(\r\n        /^\\/dashboard\\/((?:[^\\\\/]+?))(?:\\/(?=$))?$/i\r\n      );\r\n\r\n      return reg != null && reg.length > 0;\r\n    }\r\n  },\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-text-field',{attrs:{\"label\":_vm.$t('user.fields.phoneNumber'),\"hint\":_vm.$t('user.fields.phoneNumerHint'),\"persistent-hint\":\"\",\"prepend-icon\":\"mdi-phone\",\"rules\":_vm.validate ? _vm.phoneNumberRules : []},model:{value:(_vm.number),callback:function ($$v) {_vm.number=$$v},expression:\"number\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <v-text-field\r\n    v-model=\"number\"\r\n    :label=\"$t('user.fields.phoneNumber')\"\r\n    :hint=\"$t('user.fields.phoneNumerHint')\"\r\n    persistent-hint\r\n    prepend-icon=\"mdi-phone\"\r\n    :rules=\"validate ? phoneNumberRules : []\"\r\n  />\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from \"vuex\";\r\nexport default {\r\n  name: \"PhonenumberInput\",\r\n\r\n  props: {\r\n    value: {\r\n      type: String,\r\n      default: \"\",\r\n    },\r\n\r\n    validate: {\r\n      default: false,\r\n    },\r\n  },\r\n\r\n  data() {\r\n    return {\r\n      number: \"\",\r\n      phoneNumberValid: true,\r\n      countryCallingCode: \"\",\r\n      phoneNumberRules: [\r\n        (v) => !!v || this.$t(\"validation.requiredSingle\"),\r\n        (v) =>\r\n          (v !== undefined && v[0] !== \"0\") ||\r\n          this.$t(\"validation.contryCodeError\"),\r\n      ],\r\n    };\r\n  },\r\n\r\n  computed: {\r\n    ...mapState(\"configuration\", [\"darkmode\"]),\r\n  },\r\n\r\n  methods: {\r\n    phoneValidation(val) {\r\n      this.countryCallingCode = val.countryCallingCode;\r\n      this.phoneNumberValid = this.number == \"\" || val.isValid;\r\n    },\r\n  },\r\n\r\n  watch: {\r\n    value(val) {\r\n      if (val == null) {\r\n        this.number = \"\";\r\n        return;\r\n      }\r\n\r\n      this.number = val.replace(\"+\", \"\").replace(\"-\", \"\").replace(\" \", \"\");\r\n    },\r\n\r\n    number(val) {\r\n      if (val == null || val == \"\") this.number = \"\";\r\n\r\n      this.number.replace(\"-\", \"\").replace(\" \", \"\");\r\n      this.$emit(\"input\", this.number);\r\n    },\r\n  },\r\n};\r\n</script>\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhonenumberInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhonenumberInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PhonenumberInput.vue?vue&type=template&id=1361e62c\"\nimport script from \"./PhonenumberInput.vue?vue&type=script&lang=js\"\nexport * from \"./PhonenumberInput.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","import { gmapApi } from \"vue2-google-maps\";\r\n\r\nexport default {\r\n  methods: {\r\n    getAddress(latLng) {\r\n      return new Promise((resolve, reject) => {\r\n        const geocoder = new this.mixinGoogleMaps.maps.Geocoder();\r\n        geocoder.geocode({ location: latLng }, (results, status) => {\r\n          if (status == \"OK\") {\r\n            resolve(results[0].formatted_address);\r\n          } else {\r\n            reject(status);\r\n          }\r\n        });\r\n      });\r\n    },\r\n\r\n    async reverseGeoCode(latLng) {\r\n      if (!latLng) return;\r\n      return await this.getAddress(latLng);\r\n    },\r\n  },\r\n\r\n  computed: {\r\n    mixinGoogleMaps: gmapApi,\r\n  },\r\n};\r\n","export default {\r\n  computed: {\r\n    soTheme() {\r\n      return this.$vuetify.theme.currentTheme;\r\n    },\r\n\r\n    isDark() {\r\n      return this.$vuetify.theme.dark;\r\n    },\r\n\r\n    defaultTextColor() {\r\n      return this.$vuetify.theme.dark ? \"#ffffff\" : \"#0a0a0a\";\r\n    },\r\n  },\r\n};\r\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./stores/store\";\nimport vuetify from \"./plugins/vuetify\";\nimport i18n from \"@/plugins/i18n\";\nimport VCalendar from \"v-calendar\";\nimport * as VueGoogleMaps from \"vue2-google-maps\";\nimport VueFriendlyIframe from \"vue-friendly-iframe\";\nimport VueScrollTo from \"vue-scrollto\";\nimport DatePicker from \"@/components/common/DatePicker\";\nimport ModuleSettingHelper from \"@/_helpers/moduleSettingsHelper\";\nimport CommonHelper from \"@/_helpers/commonHelper\";\nimport DateHelper from \"@/_helpers/DateHelper\";\nimport RestrictHelper from \"@/_helpers/RestrictHelper\";\nimport PhonenumberInput from \"@/components/common/PhonenumberInput\";\nimport GoogleMapsHelper from \"@/_helpers/mapsHelper\";\nimport Particles from \"particles.vue\";\nimport themeMixin from \"./_helpers/themeMixin\";\n\nimport ECharts from \"vue-echarts\";\nimport { use } from \"echarts/core\";\nimport { CanvasRenderer } from \"echarts/renderers\";\nimport {\n  ScatterChart,\n  BarChart,\n  LineChart,\n  GaugeChart,\n  PieChart,\n} from \"echarts/charts\";\nimport {\n  GridComponent,\n  TooltipComponent,\n  TitleComponent,\n  LegendComponent,\n  DataZoomComponent,\n  MarkLineComponent,\n  PolarComponent,\n} from \"echarts/components\";\n\nDate.prototype.addDays = function (days, zeroTime = true) {\n  var date = new Date(this.valueOf());\n  date.setDate(date.getDate() + days);\n  if (zeroTime) date.setHours(0, 0, 0, 0);\n\n  return date;\n};\n\nDate.prototype.addYears = function (years, zeroTime = true) {\n  var date = new Date(this.valueOf());\n  date.setDate(date.getDate() + years * 365);\n  if (zeroTime) date.setHours(0, 0, 0, 0);\n\n  return date;\n};\n\nDate.prototype.addHours = function (h) {\n  this.setTime(this.getTime() + h * 60 * 60 * 1000);\n  return this;\n};\n\nDate.prototype.zeroTime = function () {\n  var date = new Date(this.valueOf());\n  date.setHours(0, 0, 0, 0);\n\n  return date;\n};\n\nDate.prototype.zeroTimeFromMinutes = function () {\n  var date = new Date(this.valueOf());\n  date.setMinutes(0, 0, 0);\n\n  return date;\n};\n\nVue.prototype.$todo = function () {\n  throw \"Not implemented yet\";\n};\n\nuse([\n  CanvasRenderer,\n  BarChart,\n  LineChart,\n  GaugeChart,\n  PieChart,\n  GridComponent,\n  TooltipComponent,\n  TitleComponent,\n  LegendComponent,\n  DataZoomComponent,\n  MarkLineComponent,\n  ScatterChart,\n  PolarComponent,\n]);\n\nVue.component(\"e-chart\", ECharts);\nVue.component(\"phone-number-input\", PhonenumberInput);\nVue.component(\"vue-friendly-iframe\", VueFriendlyIframe);\nVue.component(\"DatePicker\", DatePicker);\n\nVue.mixin(ModuleSettingHelper);\nVue.mixin(DateHelper);\nVue.mixin(RestrictHelper);\nVue.mixin(GoogleMapsHelper);\nVue.mixin(CommonHelper);\nVue.mixin(themeMixin);\n\nVue.config.productionTip = false;\nVue.use(Particles);\n\nVue.use(VueScrollTo);\nVue.use(VueScrollTo, {\n  container: \"body\",\n  duration: 500,\n  easing: \"ease\",\n  offset: 0,\n  force: true,\n  cancelable: true,\n  onStart: false,\n  onDone: false,\n  onCancel: false,\n  x: false,\n  y: true,\n});\n\nVue.use(VueGoogleMaps, {\n  load: {\n    plugins: [\"places\", \"drawing\", \"visualization\", \"geometry\"],\n    key: process.env.VUE_APP_GOOGLE_MAPS_API_KEY,\n  },\n  installComponents: true,\n});\n\nVue.use(VCalendar, {\n  componentPrefix: \"vc\",\n});\n\nnew Vue({\n  store,\n  router,\n  vuetify,\n  i18n,\n  render: (h) => h(App),\n}).$mount(\"#app\");\n","import Repository from \"../Repository\";\nimport { company, apiConfig, getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/dashboards\";\nconst companyResource = \"/companies\";\n\nexport default {\n  getDashboards(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${companyResource}/${companyId}/dashboards`, config);\n  },\n\n  getDashboard(user, dashboardId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${dashboardId}`, config);\n  },\n\n  duplicate(user, dashboardId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/${dashboardId}/duplicate`,\n      payload,\n      config\n    );\n  },\n\n  create(user, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}`, payload, config);\n  },\n\n  createForCompany(payload, dashboardType = undefined) {\n    let url =\n      `${resource}/create/${company()}` +\n      (dashboardType !== undefined ? \"/\" + dashboardType : \"\");\n    return Repository.post(url, payload, apiConfig());\n  },\n\n  update(user, dashboardId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/${dashboardId}`, payload, config);\n  },\n\n  delete(user, dashboardId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/${dashboardId}`, config);\n  },\n\n  setDefault(user, dashboardId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/${dashboardId}/default`, null, config);\n  },\n\n  getDefault(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/default`, config);\n  },\n\n  createPublicDashboard(user, companyId, dashboardId, expiresAt) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/public/${companyId}/${dashboardId}/${expiresAt}`,\n      null,\n      config\n    );\n  },\n\n  getPublicDashboards(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/public/company/${companyId}`, config);\n  },\n\n  getPublicDashboard(publicDashboardId) {\n    return Repository.get(`${resource}/public/${publicDashboardId}`);\n  },\n\n  deletePublicDashboard(user, publicDashboardId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/public/${publicDashboardId}`, config);\n  },\n\n  getDashboardCategories(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/categories/${companyId}`, config);\n  },\n\n  createDashboardCategories(user, companyId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/categories/${companyId}`,\n      payload,\n      config\n    );\n  },\n\n  updateDashboardCategories(user, categoryId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(\n      `${resource}/categories/${categoryId}`,\n      payload,\n      config\n    );\n  },\n\n  updateDashboardIndexes(user, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/categories/indexes`, payload, config);\n  },\n\n  removeDashboardIndexes(user, categoryId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/categories/${categoryId}`, config);\n  },\n\n  removeDashboardMarker(markerId) {\n    return Repository.delete(`${resource}/map/marker/${markerId}`, apiConfig());\n  },\n\n  createOrUpdateMarker(dashboardId, payload) {\n    return Repository.post(\n      `${resource}/map/marker/${dashboardId}`,\n      payload,\n      apiConfig()\n    );\n  },\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataHub.vue?vue&type=style&index=0&id=51dd616c&prod&lang=scss\"","import i18n from \"@/plugins/i18n\";\n\nexport default {\n  decoders: [\n    { name: i18n.t(\"tag.chooseDecoder\"), key: \"\" },\n    { name: \"Acrios LoadCell\", key: \"acrios_load\" },\n    { name: \"Adeunis Temp\", key: \"adeunis_temp\" },\n    { name: \"Adeunis 4DI\", key: \"adeunis_4di\" },\n    { name: \"Adeunis 50A\", key: \"adeunis50a\" },\n    { name: \"Adeunis 100A\", key: \"adeunis100a\" },\n    { name: \"Aqualabo\", key: \"aqualabo\" },\n    { name: \"Ellenex\", key: \"ellenex\" },\n    { name: \"Elsys\", key: \"elsys\" },\n    { name: \"Hummbox\", key: \"hummbox\" },\n    { name: \"Tecscale\", key: \"tecscale\" },\n    { name: \"Yabby Gps\", key: \"yabby_gps\" },\n    { name: \"Guppy Gps\", key: \"guppy_gps\" },\n    { name: \"Oyster Gps\", key: \"oyster_gps\" },\n    { name: \"Ursalink N1\", key: \"ursalink_n1\" },\n    { name: \"Ursalink T1\", key: \"ursalink_t1\" },\n    { name: \"Radiobrige DI\", key: \"radiobridge_di\" },\n    { name: \"SigFox Tempguard\", key: \"sigfox_tempguard\" },\n    { name: \"Sensative Strips\", key: \"strips\" },\n    { name: \"Axiom Water Gauge\", key: \"axiom_water_guage\" },\n    { name: \"Epic Sensor\", key: \"epicwlt\" },\n    { name: \"Ecoadapt\", key: \"ecoadapt\" },\n    { name: \"Squid Decoder\", key: \"squid\" },\n    { name: \"IMBuildings People Counter\", key: \"people_counter\" },\n    { name: \"EnLink\", key: \"enlink\" },\n    { name: \"Ursalink AM100\", key: \"ursalink_am100\" },\n    { name: \"Ursalink EM500\", key: \"ursalink_em500\" },\n    { name: \"Digital Matter Sensordata\", key: \"dm_sensordata\" },\n    { name: \"MCF88\", key: \"mcf88\" },\n    { name: \"ELA Innovation\", key: \"ela_innovation\" },\n    { name: \"Polysense\", key: \"polysense\" },\n    { name: \"Robeau DN20\", key: \"robeau_dn20\" },\n    { name: \"Robeau DN25\", key: \"robeau_dn25\" },\n    { name: \"Pycom Scale\", key: \"pycomscale\" },\n    {\n      name: \"MCF88 RS485 Thermoelement\",\n      key: \"mcf88_rs485_thermoelement\",\n    },\n    { name: \"Raw Data\", key: \"raw\" },\n    { name: \"Netvox 150\", key: \"netvox_150\" },\n    { name: \"Tekbox TBS12\", key: \"tekbox_tbs12\" },\n    { name: \"Tektelic Agri\", key: \"tektelic_agri\" },\n    { name: \"Talkpool OY1210\", key: \"talkpool_oy1210\" },\n    { name: \"IoT-AB Pycom\", key: \"iot_pycom\" },\n    { name: \"Keller ADT1\", key: \"keller_adt1\" },\n    { name: \"Snow Depth Lidar\", key: \"snow_depth\" },\n    { name: \"Laird RS1XX\", key: \"laird_rs1xx\" },\n    { name: \"Browan TBMS100\", key: \"browan_tbms100\" },\n    { name: \"Infinite Informatics ADS270\", key: \"infinite_ads270\" },\n    { name: \"ParametricPCR2\", key: \"parametric_pcr2\" },\n    { name: \"Adeunis Field Tester\", key: \"adeunis_ftd\" },\n    { name: \"ICT International EF NODE\", key: \"ict_ef_node\" },\n    { name: \"Decentlab Depth Temp\", key: \"dl_depth\" },\n    { name: \"Decentlab Range Finder\", key: \"decentlab_range_finder\" },\n    { name: \"Decentlab Pressure Temp\", key: \"decentlab_pressure_temp\" },\n    { name: \"Decentlab 10HS\", key: \"decentlab_10hs\" },\n    { name: \"Decentlab 5TE\", key: \"decentlab_5te\" },\n    { name: \"Decentlab 5TM\", key: \"decentlab_5tm\" },\n    { name: \"Decentlab AC\", key: \"decentlab_ac\" },\n    { name: \"Decentlab ATM22\", key: \"decentlab_atm22\" },\n    { name: \"Decentlab ATM41\", key: \"decentlab_atm41\" },\n    { name: \"Decentlab CTD10\", key: \"decentlab_ctd10\" },\n    { name: \"Decentlab DLR2002\", key: \"decentlab_dlr2002\" },\n    { name: \"Decentlab DLR2003\", key: \"decentlab_dlr2003\" },\n    { name: \"Decentlab DLR2004\", key: \"decentlab_dlr2004\" },\n    { name: \"Decentlab DLR2005\", key: \"decentlab_dlr2005\" },\n    { name: \"Decentlab DLR2006\", key: \"decentlab_dlr2006\" },\n    { name: \"Decentlab DLR2008\", key: \"decentlab_dlr2008\" },\n    { name: \"Decentlab DLR20010\", key: \"decentlab_dlr20010\" },\n    { name: \"Decentlab DLR20012\", key: \"decentlab_dlr20012\" },\n    { name: \"Decentlab DS18\", key: \"decentlab_ds18\" },\n    { name: \"Decentlab GS3\", key: \"decentlab_gs3\" },\n    { name: \"Decentlab IAM\", key: \"decentlab_iam\" },\n    { name: \"Decentlab ITST\", key: \"decentlab_itst\" },\n    { name: \"Decentlab KL66\", key: \"decentlab_kl66\" },\n    { name: \"Decentlab LP8P\", key: \"decentlab_lp8p\" },\n    { name: \"Decentlab MBX\", key: \"decentlab_mbx\" },\n    { name: \"Decentlab OPTOD\", key: \"decentlab_optod\" },\n    { name: \"Decentlab PAR\", key: \"decentlab_par\" },\n    { name: \"Decentlab PR21\", key: \"decentlab_pr21\" },\n    { name: \"Decentlab PR26\", key: \"decentlab_pr26\" },\n    { name: \"Decentlab PR36\", key: \"decentlab_pr36\" },\n    { name: \"Decentlab PR36CTD\", key: \"decentlab_pr36ctd\" },\n    { name: \"Decentlab PYR\", key: \"decentlab_pyr\" },\n    { name: \"Decentlab RHC\", key: \"decentlab_rhc\" },\n    { name: \"Decentlab SHT21\", key: \"decentlab_sht21\" },\n    { name: \"Decentlab SHT35\", key: \"decentlab_sht35\" },\n    { name: \"Decentlab SMTP\", key: \"decentlab_smtp\" },\n    { name: \"Decentlab TBRG\", key: \"decentlab_tbrg\" },\n    { name: \"Decentlab TRS11\", key: \"decentlab_trs11\" },\n    { name: \"Decentlab TRS12\", key: \"decentlab_trs12\" },\n    { name: \"Decentlab TRS21\", key: \"decentlab_trs21\" },\n    { name: \"Decentlab ZN1\", key: \"decentlab_zn1\" },\n    { name: \"Decentlab ZN2\", key: \"decentlab_zn2\" },\n  ],\n};\n","/**\n * Normalizes the attribute name for DB. This normalization needs to mirror the same function in Backend in TagAttribute.cs\n * @param inp\n * @returns\n */\nexport function normalize(inp) {\n  return inp.trim().replace(\" \", \"_\").replace(\"-\", \"_\").toUpperCase();\n}\n\n/**\n * Converts tags.attribute array to a dictionary of k-v pairs\n * tags.attribute: [] => tags.attribute: {}\n * Needed to map attribute values\n * @param tags\n */\nexport function tagsWithAttributeDict(tags) {\n  if (!tags) return [];\n\n  let ts = tags;\n  for (var tag of ts) {\n    const obj = {};\n    tag.attributes.forEach(\n      (value) => (obj[value.normalizedName] = value.value)\n    );\n    tag.attributeDict = obj;\n  }\n  return ts;\n}\n\nexport const getDefaultNodeTableHeaders = [\n  {\n    title: \"\",\n    langLine: \"tag.fields.deveui\",\n    key: \"deveui\",\n    useLangLine: true,\n  },\n  {\n    title: \"\",\n    langLine: \"tag.fields.nodeType\",\n    key: \"nodeType\",\n    useLangLine: true,\n  },\n  {\n    title: \"\",\n    langLine: \"tag.fields.name\",\n    key: \"name\",\n    useLangLine: true,\n  },\n  {\n    title: \"\",\n    langLine: \"tag.fields.type\",\n    key: \"decoder\",\n    useLangLine: true,\n  },\n  {\n    title: \"\",\n    langLine: \"tag.fields.battery\",\n    key: \"battery\",\n    useLangLine: true,\n  },\n  {\n    title: \"RSSI\",\n    key: \"rssi\",\n    useLangLine: false,\n  },\n  {\n    title: \"\",\n    langLine: \"tag.fields.latestValue\",\n    key: \"lastContact\",\n    useLangLine: true,\n  },\n  {\n    title: \"\",\n    langLine: \"tag.fields.dataPoints\",\n    key: \"count\",\n    useLangLine: true,\n  },\n  {\n    title: \"\",\n    langLine: \"tag.fields.activeData\",\n    key: \"active\",\n    useLangLine: true,\n    sortable: false,\n  },\n  {\n    title: \"\",\n    langLine: \"tag.fields.activeAlarm\",\n    key: \"alarm\",\n    useLangLine: true,\n    sortable: false,\n  },\n];\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=style&index=0&id=0e72c996&prod&lang=css\"","import Repository from \"@/api/Repository\";\nimport { apiConfig, company } from \"@/_helpers/apiHelper\";\n\nconst resource = \"/action\";\n\nexport default {\n  getActions() {\n    return Repository.get(`${resource}/${company()}`, apiConfig());\n  },\n\n  create(payload) {\n    return Repository.post(`${resource}/${company()}`, payload, apiConfig());\n  },\n\n  update(actionId, payload) {\n    return Repository.put(`${resource}/${actionId}`, payload, apiConfig());\n  },\n\n  delete(actionId) {\n    return Repository.delete(`${resource}/${actionId}`, apiConfig());\n  },\n\n  features() {\n    return Repository.get(`${resource}/features`, apiConfig());\n  },\n\n  eventTypes() {\n    return Repository.get(`${resource}/event-types`, apiConfig());\n  },\n\n  resetCooldown(actionId) {\n    return Repository.put(\n      `${resource}/cooldown/reset/${actionId}`,\n      {},\n      apiConfig()\n    );\n  },\n\n  resetResourceCooldown(actionResourceId) {\n    return Repository.put(\n      `${resource}/cooldown/reset/resource/${actionResourceId}`,\n      {},\n      apiConfig()\n    );\n  },\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=style&index=1&id=0e72c996&prod&scoped=true&lang=css\"","import Repository from \"../Repository\";\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/users\";\n\nexport default {\n  get(user) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.get(`${resource}`, config);\n  },\n\n  getAll(user) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.get(`${resource}/all`, config);\n  },\n\n  getById(user, userId) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.get(`${resource}/${userId}`, config);\n  },\n\n  getCompany(user) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.get(`${resource}/${user.userId}/company`, config);\n  },\n\n  register(payload) {\n    return Repository.post(`${resource}`, payload);\n  },\n\n  edit(user, userId, payload) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.put(`${resource}/${userId}`, payload, config);\n  },\n\n  delete(user, userId) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.delete(`${resource}/${userId}`, config);\n  },\n\n  updateRole(user, targetUserId, role) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.put(\n      `${resource}/${targetUserId}/role/${role}`,\n      null,\n      config\n    );\n  },\n\n  login(email, password) {\n    const data = {\n      email: email,\n      password: password\n    };\n\n    return Repository.post(`${resource}/authenticate`, data);\n  },\n\n  createUserWithCompany(user, payload) {\n    var config = {\n      headers: getAuthHeader(user)\n    }\n    return Repository.post(`${resource}/create/company`, payload, config);\n  },\n\n  forgotPassword(email) {\n    return Repository.post(`${resource}/forgot/${email}`, null);\n  },\n\n  forgotPasswordUpdate(guid, password) {\n    return Repository.put(`${resource}/forgot/${guid}`, { password: password });\n  }\n};\n","import Repository from \"../Repository\";\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/applications\";\n\nexport default {\n  create(user, companyId, applicationPayload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/${companyId}`,\n      applicationPayload,\n      config\n    );\n  },\n\n  update(user, id, applicationPayload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/${id}`, applicationPayload, config);\n  },\n\n  delete(user, applicationId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/${applicationId}`, config);\n  },\n\n  get(user, applicationId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${applicationId}`, config);\n  },\n};\n","import Repository from \"../Repository\";\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/alarms\";\nconst companyResource = \"/companies\";\n\nexport default {\n  get(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${companyResource}/${companyId}/alarm`, config);\n  },\n\n  getById(user, alarmId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${alarmId}`, config);\n  },\n\n  create(user, companyId, alarmPayload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${companyResource}/${companyId}/alarm`,\n      alarmPayload,\n      config\n    );\n  },\n\n  update(user, companyId, alarmId, alarmPayload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(\n      `${companyResource}/${companyId}/alarm/${alarmId}`,\n      alarmPayload,\n      config\n    );\n  },\n\n  getActiveAlarms(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(\n      `${companyResource}/${companyId}/alarm/active`,\n      config\n    );\n  },\n\n  getAlarmHistory(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(\n      `${companyResource}/${companyId}/alarm/history`,\n      config\n    );\n  },\n\n  setActiveAlarmStatus(user, activeAlarmId, comment) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/active/${activeAlarmId}/status`,\n      comment,\n      config\n    );\n  },\n\n  delete(user, alarmId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/${alarmId}`, config);\n  },\n\n  duplicate(user, alarmId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}/copy/${alarmId}`, null, config);\n  },\n\n  testSettings(user, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}/setting/test`, payload, config);\n  },\n};\n","import Repository from \"../Repository\";\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/script\";\n\nexport default {\n  getScripts(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.get(`${resource}/company/${companyId}`, config);\n  },\n\n  getScript(user, scriptId) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.get(`${resource}/${scriptId}`, config);\n  },\n\n  create(user, companyId, payload) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.post(`${resource}/${companyId}`, payload, config);\n  },\n\n  put(user, scriptId, payload) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.put(`${resource}/${scriptId}`, payload, config);\n  },\n\n  delete(user, scriptId) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.delete(`${resource}/${scriptId}`, config);\n  },\n\n  test(user, payload, companyId) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.post(`${resource}/test/${companyId}`, payload, config);\n  },\n  execute(user, scriptId) {\n    var config = {\n      headers: getAuthHeader(user)\n    };\n\n    return Repository.get(`${resource}/run/${scriptId}`, config);\n  }\n};\n","import Repository from \"../Repository\";\nimport { company, getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/report\";\n\nexport default {\n  getReport(user, reportId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${reportId}`, config);\n  },\n\n  getReports(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/company/${companyId}`, config);\n  },\n\n  create(user, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}/${company()}`, payload, config);\n  },\n\n  update(user, reportId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/${reportId}`, payload, config);\n  },\n\n  delete(user, reportId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/${reportId}`, config);\n  },\n\n  multiExport(user, payload, companyId = null) {\n    var config = {\n      headers: getAuthHeader(user),\n      responseType: \"blob\",\n    };\n\n    return Repository.post(\n      `${resource}/multiexport/${companyId}`,\n      payload,\n      config\n    );\n  },\n};\n","import Repository from \"../Repository\";\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/dashboards\";\nconst moduleResource = \"modules\";\n\nexport default {\n  get(user, dashboardId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(\n      `${resource}/${dashboardId}/${moduleResource}`,\n      config\n    );\n  },\n\n  getModule(user, moduleId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/modules/${moduleId}`, config);\n  },\n\n  create(user, dashboardId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/${dashboardId}/${moduleResource}`,\n      payload,\n      config\n    );\n  },\n\n  update(user, moduleId, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(\n      `${resource}/${moduleResource}/${moduleId}`,\n      payload,\n      config\n    );\n  },\n\n  updateModules(user, payload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(\n      `${resource}/${moduleResource}/multiple`,\n      payload,\n      config\n    );\n  },\n\n  delete(user, moduleId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(\n      `${resource}/${moduleResource}/${moduleId}`,\n      config\n    );\n  },\n\n  postImage(user, moduleId, image) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/modules/${moduleId}/image`,\n      image,\n      config\n    );\n  },\n\n  deleteImage(user, moduleId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/modules/${moduleId}/image`, config);\n  },\n\n  getTagDataForModule(user, moduleId, metrics) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(\n      `${resource}/modules/${moduleId}/tagdata${metrics}`,\n      config\n    );\n  },\n\n  getTagDataForModuleByLimit(user, moduleId, limit) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(\n      `${resource}/modules/${moduleId}/tagdata/limit/${limit}`,\n      config\n    );\n  },\n\n  getLatestTagDataForModule(user, moduleId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(\n      `${resource}/modules/${moduleId}/tagdata/latest`,\n      config\n    );\n  },\n\n  copyModule(user, moduleId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/modules/copy/${moduleId}`,\n      null,\n      config\n    );\n  },\n};\n","import Repository from \"../Repository\";\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/logs\";\n\nexport default {\n  get(user, metrics) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}${metrics}`, config);\n  },\n\n  getActiveUsers(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/activeusers`, config);\n  },\n\n  getDatapoints(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/datapoints`, config);\n  },\n\n  getActiveAlarms(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`/alarms/active/all`, config);\n  },\n};\n","import Repository from \"../Repository\";\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/notification\";\n\nexport default {\n    get(user, userId) {\n        var config = {\n            headers: getAuthHeader(user)\n        };\n\n        return Repository.get(`${resource}/${userId}`, config);\n    },\n\n    deactivate(user, notificationId) {\n        var config = {\n            headers: getAuthHeader(user)\n        };\n\n        return Repository.put(`${resource}/deactivate/${notificationId}`, {}, config);\n    },\n\n    deactivateAll(user, userId) {\n        var config = {\n            headers: getAuthHeader(user)\n        };\n\n        return Repository.put(`${resource}/deactivate/all/${userId}`, {}, config);\n    }\n};\n","import Repository from \"../Repository\";\r\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\r\n\r\nconst resource = \"/signaltest\";\r\n\r\nexport default {\r\n  getTests(user, companyId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.get(`${resource}/${companyId}`, config);\r\n  },\r\n\r\n  peek(user, testId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.get(`${resource}/peek/${testId}`, config);\r\n  },\r\n\r\n  getTest(user, testId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.get(`${resource}/single/${testId}`, config);\r\n  },\r\n\r\n  startTest(user, companyId, deveui, payload) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.post(\r\n      `${resource}/${companyId}/${deveui}`,\r\n      payload,\r\n      config\r\n    );\r\n  },\r\n\r\n  endTest(user, testId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.put(`${resource}/end/${testId}`, null, config);\r\n  },\r\n\r\n  deleteTest(user, testId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.delete(`${resource}/${testId}`, config);\r\n  },\r\n};\r\n","import Repository from \"../Repository\";\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/gateway\";\n\nexport default {\n  create(user, applicationId, gatewayPayload) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/${applicationId}`,\n      gatewayPayload,\n      config\n    );\n  },\n\n  delete(user, gatewayId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/${gatewayId}`, config);\n  },\n\n  getByCompany(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/company/${companyId}`, config);\n  },\n\n  getById(user, gatewayId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${gatewayId}`, config);\n  },\n\n  updatePosition(user, gatewayId, position) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/${gatewayId}/pos`, position, config);\n  },\n};\n","import Repository from \"../Repository\";\r\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\r\n\r\nconst resource = \"/downlink\";\r\n\r\nexport default {\r\n  getForTag(user, deveui) {\r\n    var config = {\r\n      headers: getAuthHeader(user)\r\n    };\r\n\r\n    return Repository.get(`${resource}/tag/${deveui}`, config);\r\n  },\r\n\r\n  removeDownlink(user, downlinkQueueId) {\r\n    var config = {\r\n      headers: getAuthHeader(user)\r\n    };\r\n\r\n    return Repository.delete(`${resource}/${downlinkQueueId}`, config);\r\n  },\r\n\r\n  createDownlink(user, deveui, payload) {\r\n    var config = {\r\n      headers: getAuthHeader(user)\r\n    };\r\n\r\n    return Repository.post(`${resource}/${deveui}`, payload, config);\r\n  }\r\n};\r\n","import Repository from \"../Repository\";\r\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\r\n\r\nconst resource = \"/roles\";\r\n\r\nexport default {\r\n    getAllByCompany(user, companyId) {\r\n        var config = {\r\n            headers: getAuthHeader(user),\r\n        };\r\n\r\n        return Repository.get(`${resource}/${companyId}`, config);\r\n    },\r\n\r\n    getPermissions(user) {\r\n        var config = {\r\n            headers: getAuthHeader(user),\r\n        };\r\n\r\n        return Repository.get(`${resource}/permissions`, config);\r\n    },\r\n\r\n\r\n    getRecommendedPermissions(user, payload) {\r\n        var config = {\r\n            headers: getAuthHeader(user),\r\n        };\r\n\r\n        return Repository.post(`${resource}/recommended-permissions`, payload, config);\r\n    },\r\n\r\n    getUserPermissionsByUserId(user) {\r\n        var config = {\r\n            headers: getAuthHeader(user)\r\n        }\r\n\r\n        return Repository.get(`${resource}/current-user-permissions`, config);\r\n    },\r\n\r\n    create(user, companyId, payload) {\r\n        var config = {\r\n            headers: getAuthHeader(user),\r\n        };\r\n\r\n        return Repository.post(`${resource}/${companyId}`, payload, config);\r\n    },\r\n\r\n\r\n    update(user, userRoleId, payload) {\r\n        var config = {\r\n            headers: getAuthHeader(user),\r\n        };\r\n\r\n        return Repository.put(`${resource}/${userRoleId}`, payload, config);\r\n    },\r\n\r\n\r\n    delete(user, userRoleId) {\r\n        var config = {\r\n            headers: getAuthHeader(user),\r\n        };\r\n\r\n        return Repository.delete(`${resource}/${userRoleId}`, config);\r\n    },\r\n};\r\n","import Repository from \"../Repository\";\nimport { apiConfig } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/tagJournalFile\";\n\nexport default {\n  uploadJournalFile(payload) {\n    return Repository.post(`${resource}/upload`, payload, apiConfig());\n  },\n};\n","import ActionRepository from \"./repositories/actionRepository\";\nimport UsersRepository from \"./repositories/usersRepository\";\nimport CompanyRepository from \"./repositories/companyRepository\";\nimport AppsRepository from \"./repositories/applicationRepository\";\nimport TagDataRepository from \"./repositories/tagDataRepository\";\nimport TagRepository from \"./repositories/tagRepository\";\nimport AlarmRepository from \"./repositories/alarmRepository\";\nimport ScriptRepository from \"./repositories/scriptRepository\";\nimport ReportRepository from \"./repositories/reportRepository\";\nimport DashboardRepository from \"./repositories/dashboardRepository\";\nimport ModuleRepository from \"./repositories/moduleRepository\";\nimport LogRepository from \"./repositories/logRepository\";\nimport NotificationRepository from \"./repositories/notificationRepository\";\nimport SignalTestRepository from \"./repositories/signalTestRepository\";\nimport LicenseRepository from \"./repositories/licenseRepository\";\nimport GatewayRepository from \"./repositories/gatewayRepository\";\nimport IntegrationsRepository from \"./repositories/integrationsRepository\";\nimport DownlinkRepository from \"./repositories/downlinkRepository\";\nimport RoleRepository from \"./repositories/roleRepository\";\nimport TagJournalRepository from \"./repositories/tagJournalRepository\";\nimport TagJournalFileRepository from \"./repositories/tagJournalFileRepository\";\n\nconst repositories = {\n  actions: ActionRepository,\n  users: UsersRepository,\n  companies: CompanyRepository,\n  applications: AppsRepository,\n  tagdata: TagDataRepository,\n  tag: TagRepository,\n  alarm: AlarmRepository,\n  script: ScriptRepository,\n  report: ReportRepository,\n  dashboard: DashboardRepository,\n  module: ModuleRepository,\n  log: LogRepository,\n  notification: NotificationRepository,\n  signalTest: SignalTestRepository,\n  license: LicenseRepository,\n  gateways: GatewayRepository,\n  integrations: IntegrationsRepository,\n  downlinks: DownlinkRepository,\n  roles: RoleRepository,\n  tagJournal: TagJournalRepository,\n  tagJournalFile: TagJournalFileRepository,\n};\n\nexport const RepositoryFactory = {\n  get: (name) => repositories[name],\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\r\n\r\nconst IntegrationRepository = RepositoryFactory.get(\"integrations\");\r\n\r\nexport const accessTokens = {\r\n  namespaced: true,\r\n  state: {\r\n  },\r\n\r\n  actions: {\r\n    async getAccessTokens({rootState}) {\r\n      var user = rootState.users.currentUser\r\n\r\n      return await IntegrationRepository.getAccessTokens(user, rootState.users.userCompany.companyId)\r\n        .then(d => d.data);\r\n    },\r\n\r\n    async deleteAccessToken({rootState}, tokenId) {\r\n        var user = rootState.users.currentUser\r\n        await IntegrationRepository.deleteToken(user, tokenId);\r\n    },\r\n\r\n    async createToken({rootState}, payload) {\r\n        await IntegrationRepository.createToken(rootState.users.currentUser, rootState.users.userCompany.companyId, payload);\r\n    }\r\n\r\n    \r\n  },\r\n\r\n  mutations: {\r\n  },\r\n};\r\n","import ActionRepository from \"@/api/repositories/actionRepository\";\n\nexport const actions = {\n  namespaced: true,\n  state: {\n    action: {},\n    actions: [],\n    features: {},\n    eventTypes: [],\n  },\n\n  actions: {\n    getAction({ commit, state }, actionId) {\n      let result = state.actions.find((a) => a.actionId === actionId);\n\n      commit(\"SET_ACTION\", result ?? {});\n    },\n\n    async getActions({ commit }) {\n      await ActionRepository.getActions()\n        .then((d) => commit(\"SET_ACTIONS\", d.data))\n        .catch((e) => {\n          commit(\"SET_ACTIONS\", []);\n          console.error(\"Error fetching the actions for company\", e);\n        });\n    },\n\n    async createAction(_, payload) {\n      return await ActionRepository.create(payload)\n        .then(() => true)\n        .catch(() => false);\n    },\n\n    async updateAction(_, payload) {\n      if (payload?.actionId === undefined) return false;\n\n      return await ActionRepository.update(payload.actionId, payload)\n        .then(() => true)\n        .catch(() => false);\n    },\n\n    async deleteAction(_, actionId) {\n      return await ActionRepository.delete(actionId)\n        .then(() => true)\n        .catch(() => false);\n    },\n\n    async getFeatures({ commit }) {\n      await ActionRepository.features()\n        .then((d) => commit(\"SET_FEATURES\", d.data))\n        .catch((e) => {\n          commit(\"SET_FEATURES\", {});\n          console.error(\"Error fetching the features for company\", e);\n        });\n    },\n\n    async getEventTypes({ commit }) {\n      await ActionRepository.eventTypes()\n        .then((d) => commit(\"SET_EVENT_TYPES\", d.data))\n        .catch((e) => {\n          commit(\"SET_EVENT_TYPES\", []);\n          console.error(\"Error fetching the event types for company\", e);\n        });\n    },\n\n    async resetCooldown(_, actionId) {\n      return await ActionRepository.resetCooldown(actionId)\n        .then(() => true)\n        .catch(() => false);\n    },\n\n    async resetResourceCooldown(_, actionResourceId) {\n      return await ActionRepository.resetResourceCooldown(actionResourceId)\n        .then(() => true)\n        .catch(() => false);\n    },\n  },\n\n  mutations: {\n    SET_ACTION(state, payload) {\n      state.action = payload;\n    },\n\n    SET_ACTIONS(state, payload) {\n      state.actions = payload;\n    },\n\n    SET_FEATURES(state, payload) {\n      state.features = payload;\n    },\n\n    SET_EVENT_TYPES(state, payload) {\n      state.eventTypes = payload;\n    },\n  },\n\n  getters: {\n    getActionById: (state) => (id) => {\n      return state.actions.find((d) => d.actionId === id);\n    },\n\n    getFeatureById: (state) => (id) => {\n      return state.features[id];\n    },\n  },\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\nconst AlarmRepository = RepositoryFactory.get(\"alarm\");\n\nexport const alarms = {\n  namespaced: true,\n  state: {\n    currentAlarm: {},\n    activeAlarms: [],\n    alarms: [],\n    settingResponse: {},\n    status: {\n      loading: false,\n    },\n  },\n\n  actions: {\n    async testSettings({ commit, rootState }, payload) {\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.testSettings(user, payload)\n        .then((res) => {\n          commit(\"SET_SETTING_RESPONSE\", res.data);\n        })\n        .catch((res) => {\n          commit(\"SET_SETTING_RESPONSE\", res.response.data);\n        });\n    },\n\n    async getAlarms({ commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.get(user, rootState.users.userCompany.companyId)\n        .then((alarms) => {\n          commit(\"GET_ALARM\", alarms.data);\n          commit(\"LOADING\", false);\n        })\n        .catch(() => {\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async createAlarm({ dispatch, commit, rootState }, { alarmPayload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.create(\n        user,\n        rootState.users.userCompany.companyId,\n        alarmPayload\n      )\n        .then((alarm) => {\n          dispatch(\"getAlarms\");\n          commit(\"CREATE_ALARM\", alarm.data);\n          commit(\"LOADING\", false);\n          dispatch(\"alert/success\", i18n.t(\"common.created\"), { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async updateAlarm({ dispatch, commit, rootState }, { payload, alarmId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.update(\n        user,\n        rootState.users.userCompany.companyId,\n        alarmId,\n        payload\n      )\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"alert/success\", i18n.t(\"common.updated\"), { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n        });\n\n      await dispatch(\"getAlarms\");\n    },\n\n    async setCurrentAlarm({ commit }, alarm) {\n      commit(\"SET_CURRENT\", alarm);\n    },\n\n    async getAlarmById({ commit, rootState }, alarmId) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.getById(user, alarmId)\n        .then((alarm) => {\n          commit(\"SET_CURRENT\", alarm.data);\n          commit(\"LOADING\", false);\n        })\n        .catch(() => {\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getActiveAlarms({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.getActiveAlarms(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((alarms) => {\n          commit(\"GET_ACTIVE_ALARM\", alarms.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getAlarmHistory({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.getAlarmHistory(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((alarms) => {\n          commit(\"GET_ACTIVE_ALARM\", alarms.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async setAlarmStatus(\n      { dispatch, commit, rootState },\n      { activeAlarmId, comment }\n    ) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.setActiveAlarmStatus(user, activeAlarmId, comment)\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n\n      await dispatch(\"getActiveAlarms\");\n    },\n\n    resetState({ commit }) {\n      commit(\"RESET_STATE\");\n    },\n\n    async removeAlarm({ dispatch, commit, rootState }, id) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.delete(user, id)\n        .then(() => {\n          dispatch(\"getAlarms\");\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async duplicateAlarm({ dispatch, commit, rootState }, id) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AlarmRepository.duplicate(user, id)\n        .then(() => {\n          dispatch(\"getAlarms\");\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    clearTestResponse({ commit }) {\n      commit(\"SET_SETTING_RESPONSE\", {});\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    SET_CURRENT(state, alarm) {\n      state.currentAlarm = alarm;\n    },\n\n    GET_ALARM(state, alarms) {\n      state.alarms = alarms;\n    },\n\n    GET_ACTIVE_ALARM(state, alarms) {\n      state.activeAlarms = alarms;\n    },\n\n    CREATE_ALARM(state, alarm) {\n      state.currentAlarm = alarm;\n    },\n\n    SET_SETTING_RESPONSE(state, res) {\n      state.settingResponse = res;\n    },\n\n    // eslint-disable-next-line\n    RESET_STATE(state) {\n      state = {\n        currentAlarm: {},\n        activeAlarms: [],\n        alarms: [],\n        status: {\n          loading: false,\n        },\n      };\n    },\n  },\n};\n","const state = {\n  active: false,\n  message: null,\n  alertType: \"success\",\n};\n\nconst actions = {\n  success({ commit }, message) {\n    commit(\"success\", message);\n  },\n  error({ commit }, message) {\n    commit(\"error\", message);\n  },\n  clear({ commit }, message) {\n    commit(\"success\", message);\n  },\n};\n\nconst mutations = {\n  success(state, message) {\n    state.active = true;\n    state.message = message;\n    state.alertType = \"success\";\n  },\n  error(state, message) {\n    state.active = true;\n    state.message = message;\n    state.alertType = \"error\";\n  },\n  clear(state) {\n    state.active = false;\n    state.message = null;\n    state.alertType = \"success\";\n  },\n};\n\nexport const alert = {\n  namespaced: true,\n  state,\n  actions,\n  mutations,\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\nconst AppRepository = RepositoryFactory.get(\"applications\");\n\nexport const applications = {\n  namespaced: true,\n  state: {\n    currentApplication: {},\n    tags: [],\n    gateways: [],\n    tagData: [],\n    status: {\n      loading: false,\n      loggedIn: false,\n    },\n  },\n\n  actions: {\n    async createApplication(\n      { dispatch, commit, rootState },\n      { applicationPayload }\n    ) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      var companyId = rootState.users.userCompany.companyId;\n\n      await AppRepository.create(user, companyId, applicationPayload)\n        .then((application) => {\n          commit(\"CREATE_APPLICATION\", application);\n          commit(\"LOADING\", false);\n          dispatch(\"alert/success\", i18n.t(\"common.created\"), { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async update({ dispatch, commit, rootState }, { id, applicationPayload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AppRepository.update(user, id, applicationPayload)\n        .then(() => {\n          dispatch(\"alert/success\", i18n.t(\"common.updated\"), { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async deleteApplication(\n      { dispatch, commit, rootState },\n      { applicationId }\n    ) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AppRepository.delete(user, applicationId)\n        .then(() => {\n          commit(\"DELETE_APPLICATION\");\n          dispatch(\"alert/success\", i18n.t(\"common.deleted\"), { root: true });\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getApplication({ dispatch, commit, rootState }, id) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await AppRepository.get(user, id)\n        .then((res) => {\n          commit(\"SET_APPLICATION\", res.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response !== undefined && res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async setApplication({ commit }, application) {\n      commit(\"SET_APPLICATION\", application);\n    },\n\n    resetState({ commit }) {\n      commit(\"RESET_STATE\");\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    CREATE_APPLICATION(state, application) {\n      state.currentApplication = application;\n    },\n\n    DELETE_APPLICATION(state) {\n      state.currentApplication = {};\n    },\n\n    GET_TAG_DATA(state, tagData) {\n      state.tagData = tagData;\n    },\n\n    SET_APPLICATION(state, application) {\n      state.currentApplication = application;\n    },\n\n    // eslint-disable-next-line\n    RESET_STATE(state) {\n      state = {\n        currentApplication: {},\n        tags: [],\n        gateways: [],\n        tagData: [],\n        status: {\n          loading: false,\n          loggedIn: false,\n        },\n      };\n    },\n  },\n};\n","import Repository from \"@/api/Repository\";\nimport { apiConfig, company } from \"@/_helpers/apiHelper\";\n\nconst resource = \"/contact\";\n\nexport default {\n  getContacts() {\n    return Repository.get(`${resource}/${company()}`, apiConfig());\n  },\n\n  create(payload) {\n    return Repository.post(`${resource}/${company()}`, payload, apiConfig());\n  },\n\n  delete(contactId) {\n    return Repository.delete(`${resource}/${contactId}`, apiConfig());\n  },\n};\n","import ContactRepository from \"@/api/repositories/contactRepository\";\n\nexport const contacts = {\n  namespaced: true,\n  state: {\n    contacts: [],\n  },\n\n  actions: {\n    async getContacts({ commit }) {\n      await ContactRepository.getContacts()\n        .then((d) => commit(\"SET_CONTACTS\", d.data))\n        .catch((e) => {\n          commit(\"SET_CONTACTS\", []);\n          console.error(\"Error fetching the contacts for company\", e);\n        });\n    },\n\n    async createContact(_, payload) {\n      return await ContactRepository.create(payload)\n        .then(() => true)\n        .catch(() => false);\n    },\n\n    async deleteContact(_, actionId) {\n      return await ContactRepository.delete(actionId)\n        .then(() => true)\n        .catch(() => false);\n    },\n  },\n\n  mutations: {\n    SET_CONTACTS(state, payload) {\n      state.contacts = payload;\n    },\n  },\n\n  getters: {\n    getContactById: (state) => (id) => {\n      return state.contacts.find((d) => d.contactId === id);\n    },\n  },\n};\n","import Repository from \"../Repository\";\r\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\r\n\r\nconst resource = \"/camonline\";\r\n\r\nexport default {\r\n  get(user, companyId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.get(`${resource}/${companyId}`, config);\r\n  },\r\n\r\n  create(user, companyId, payload) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.post(`${resource}/${companyId}`, payload, config);\r\n  },\r\n\r\n  delete(user, camOnlineServerId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.delete(`${resource}/${camOnlineServerId}`, config);\r\n  },\r\n};\r\n","import axios from \"axios\";\r\nimport CORepository from \"../../api/repositories/camOnlineRepository\";\r\nimport i18n from \"../../plugins/i18n\";\r\n\r\nexport const camOnline = {\r\n  namespaced: true,\r\n  state: {\r\n    servers: [],\r\n  },\r\n\r\n  actions: {\r\n    async getServers({ dispatch, commit, rootState }) {\r\n      var user = rootState.users.currentUser;\r\n      var company = rootState.users.userCompany.companyId;\r\n\r\n      await CORepository.get(user, company)\r\n        .then((d) => commit(\"SET_SERVERS\", d.data))\r\n        .catch(() =>\r\n          dispatch(\"alert/error\", i18n.t(\"camOnline.couldNotFetchServers\"), {\r\n            root: true,\r\n          })\r\n        );\r\n    },\r\n\r\n    async createServer({ dispatch, rootState }, payload) {\r\n      var user = rootState.users.currentUser;\r\n      var company = rootState.users.userCompany.companyId;\r\n      await CORepository.create(user, company, payload)\r\n        .then(async () => await dispatch(\"getServers\"))\r\n        .catch(() =>\r\n          dispatch(\"alert/error\", i18n.t(\"camOnline.couldNotCreateServer\"), {\r\n            root: true,\r\n          })\r\n        );\r\n    },\r\n\r\n    async deleteServer({ dispatch, rootState }, serverId) {\r\n      var user = rootState.users.currentUser;\r\n\r\n      await CORepository.delete(user, serverId)\r\n        .then(async () => await dispatch(\"getServers\"))\r\n        .catch(() =>\r\n          dispatch(\"alert/error\", i18n.t(\"camOnline.couldNotDeleteServer\"), {\r\n            root: true,\r\n          })\r\n        );\r\n    },\r\n\r\n    async getStreams({ state }, serverId) {\r\n      var server = state.servers.find((e) => e.camOnlineServerId == serverId);\r\n      if (server == undefined) {\r\n        console.error(\"Could not find the requested server: \" + serverId);\r\n        return [];\r\n      }\r\n\r\n      try {\r\n        var result = await axios.get(server.url + \"/api/stream/all\", {\r\n          headers: {\r\n            Authorization: `Bearer ${server.accessToken}`,\r\n          },\r\n        });\r\n\r\n        return result.data;\r\n      } catch {\r\n        console.error(\"Something went wrong while fetching streams\");\r\n        return [];\r\n      }\r\n    },\r\n  },\r\n\r\n  mutations: {\r\n    SET_SERVERS(state, servers) {\r\n      state.servers = servers;\r\n    },\r\n  },\r\n\r\n  getters: {\r\n    getServer: (state) => (id) => {\r\n      var server = state.servers.find((e) => e.camOnlineServerId == id);\r\n      return server ?? {};\r\n    },\r\n  },\r\n};\r\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\n\nconst CompanyRepository = RepositoryFactory.get(\"companies\");\n\nexport const companies = {\n  namespaced: true,\n  state: {\n    company: {},\n    companies: [],\n    shared: {},\n    companyUsers: [],\n    companyApps: [], // Note: This should always be empty from now on to not hit the limit of vuex\n    latestActivity: {},\n    status: {\n      loading: false,\n      loggedIn: false,\n    },\n  },\n\n  actions: {\n    async getCompanyUsers({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      var company = rootState.users.userCompany;\n\n      await CompanyRepository.getCompanyUsers(user, company.companyId).then(\n        (users) => {\n          commit(\"GET_COMPANY_USERS\", users.data);\n          commit(\"LOADING\", false);\n        },\n        (error) => {\n          dispatch(\"alert/error\", error, { root: true });\n          commit(\"LOADING\", false);\n        }\n      );\n\n      commit(\"LOADING\", false);\n    },\n\n    async getCompanyApplications({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      var company = rootState.users.userCompany;\n\n      return await CompanyRepository.getCompanyApplications(\n        user,\n        company.companyId\n      )\n        .then((apps) => {\n          commit(\"GET_COMPANY_APPLICATION\", []);\n          commit(\"LOADING\", false);\n          return apps.data;\n        })\n        .catch(() => {\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          return [];\n        });\n    },\n\n    // Get all companies\n    async getAll({ commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await CompanyRepository.getAll(user)\n        .then((companies) => {\n          commit(\"GET_COMPANIES\", companies.data);\n          commit(\"LOADING\", false);\n        })\n        .catch(() => {\n          commit(\"GET_COMPANIES\", []);\n          commit(\"LOADING\", false);\n        });\n\n      commit(\"LOADING\", false);\n    },\n\n    async getById({ commit, dispatch, rootState }, { companyId }) {\n      commit(\"LOADING\", true);\n      var user = rootState.users.currentUser;\n\n      await CompanyRepository.getCompanyById(user, companyId)\n        .then((company) => {\n          commit(\"EDIT_COMPANY\", company.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        });\n      commit(\"LOADING\", false);\n    },\n\n    // Edit a company\n    async editCompany({ dispatch, commit, rootState }, { company }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      var companyId = rootState.users.userCompany.companyId;\n\n      await CompanyRepository.edit(user, companyId, company).then(\n        (company) => {\n          commit(\"EDIT_COMPANY\", company.data);\n          dispatch(\n            \"languages/setLanguage\",\n            rootState.users.userCompany.country,\n            {\n              root: true,\n            }\n          );\n          dispatch(\"alert/success\", i18n.t(\"common.updated\"), { root: true });\n          commit(\"LOADING\", false);\n        },\n        (res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        }\n      );\n    },\n\n    // Create a company\n    async createCompany({ dispatch, commit, rootState }, { company }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await CompanyRepository.create(user, company).then(\n        (company) => {\n          commit(\"CREATE_COMPANY\", company);\n\n          dispatch(\"alert/success\", i18n.t(\"common.created\"), { root: true });\n          commit(\"LOADING\", false);\n        },\n        (res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        }\n      );\n    },\n\n    async createUser({ dispatch, commit, rootState }, payload) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await CompanyRepository.createUser(\n        user,\n        rootState.users.userCompany.companyId,\n        payload\n      )\n        .then(() => {\n          dispatch(\"alert/success\", i18n.t(\"common.created\"), { root: true });\n          dispatch(\"getCompanyUsers\");\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    resetState({ commit }) {\n      commit(\"RESET_STATE\");\n    },\n\n    async postImage({ dispatch, commit, rootState }, { image }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await CompanyRepository.postImage(\n        user,\n        rootState.users.userCompany.companyId,\n        image\n      )\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n        });\n    },\n\n    async deleteImage({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await CompanyRepository.deleteImage(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n        });\n    },\n\n    async getLatestActivity({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await CompanyRepository.latestActivity(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((activity) => {\n          commit(\"LOADING\", false);\n          commit(\"SET_LATEST_ACTIVITY\", activity.data);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n        });\n    },\n\n    async getBatteryStatuses({ commit, dispatch, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await CompanyRepository.getBatteryStatuses(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((statuses) => {\n          commit(\"LOADING\", false);\n          dispatch(\"tag/setBatteryStatuses\", statuses.data, { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n        });\n    },\n\n    async getShared({ commit, rootState }) {\n      await CompanyRepository.getShared(rootState.users.currentUser)\n        .then((d) => commit(\"GET_SHARED\", d.data))\n        .catch((d) => {\n          console.error(d);\n        });\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    SET_LATEST_ACTIVITY(state, activity) {\n      state.latestActivity = activity;\n    },\n\n    GET_COMPANIES(state, companies) {\n      state.companies = companies;\n    },\n\n    GET_COMPANY_USERS(state, users) {\n      state.companyUsers = users;\n    },\n\n    GET_SHARED(state, shared) {\n      state.shared = shared;\n    },\n\n    GET_COMPANY_APPLICATION(state) {\n      state.companyApps = [];\n    },\n\n    CREATE_COMPANY(state, company) {\n      state.company = company;\n    },\n\n    EDIT_COMPANY(state, company) {\n      state.company = company;\n    },\n\n    // eslint-disable-next-line\n    RESET_STATE(state) {\n      state = {\n        company: {},\n        companies: [],\n        companyUsers: [],\n        companyApps: [],\n        status: {\n          loading: false,\n          loggedIn: false,\n        },\n      };\n    },\n  },\n\n  getters: {\n    // eslint-disable-next-line\n    getSharedName: (state, getters, rootState, rootGetters) => (id) => {\n      if (rootGetters[\"users/companyId\"] == id)\n        return rootGetters[\"users/companyName\"];\n      return state.shared[id];\n    },\n  },\n};\n","import SettingRepository from \"../../api/repositories/settingRepository\";\r\nimport LicenseRepository from \"../../api/repositories/licenseRepository\";\r\nimport licenseRepository from \"../../api/repositories/licenseRepository\";\r\n\r\nimport { addHours } from \"date-fns\";\r\nimport CompanyRepository from \"@/api/repositories/companyRepository\";\r\nimport vuetify from \"../../plugins/vuetify\";\r\nimport RestrictHelper, { FEATURES } from \"../../_helpers/RestrictHelper\";\r\n\r\nexport const configuration = {\r\n  namespaced: true,\r\n  state: {\r\n    darkmode: false,\r\n    SO_API_BASE_URL: null,\r\n    userSettings: {\r\n      theme: \"Scientific\",\r\n      toolbarTransparent: true,\r\n      stickySideMenu: true,\r\n    },\r\n    globalSettings: {},\r\n    license: {},\r\n    companyFields: [],\r\n    companySettings: {},\r\n    serverMeta: {},\r\n    nodesLeftForCompany: 9999,\r\n    expiresIn: 999,\r\n    lastShownExpiery: undefined,\r\n    showLicenseNotification: false,\r\n    showLicenseExpiery: false,\r\n    canCreateCompany: false,\r\n    canCreateGateway: false,\r\n    canCreateNode: false,\r\n  },\r\n\r\n  actions: {\r\n    async uploadWhiteLabelImage(_, image) {\r\n      await CompanyRepository.postWhiteLabelImage(image)\r\n        .then(() => undefined)\r\n        .catch(() => undefined);\r\n    },\r\n\r\n    async getNodesLeftForCompany({ commit, rootState }) {\r\n      var user = rootState.users.currentUser;\r\n      var company = rootState.users.userCompany.companyId;\r\n      await LicenseRepository.nodesLeftForCompany(user, company)\r\n        .then((d) => commit(\"SET_NODES_LEFT_COMPANY\", d.data))\r\n        .catch(() => commit(\"SET_NODES_LEFT_COMPANY\", 9999));\r\n    },\r\n\r\n    setLicenseNotification({ commit }, val) {\r\n      commit(\"SHOW_LICENSE_NOTIFICATION\", val);\r\n    },\r\n\r\n    setDarkmode({ commit }, message) {\r\n      if (typeof message == \"boolean\") {\r\n        commit(\"SET_DARKMODE\", message);\r\n      }\r\n    },\r\n\r\n    async getServerMeta({ commit, rootState }) {\r\n      var result = await licenseRepository\r\n        .getLicenseServerMeta(rootState.users.currentUser)\r\n        .then((d) => {\r\n          commit(\"SET_SERVER_META\", d.data);\r\n          return true;\r\n        })\r\n        .catch(() => false);\r\n      if (!result) console.error(\"Could not fetch server meta\");\r\n    },\r\n\r\n    async getBaseUrl({ commit, rootState }) {\r\n      if (\r\n        rootState.configuration.SO_API_BASE_URL == undefined ||\r\n        rootState.configuration.SO_API_BASE_URL == null\r\n      ) {\r\n        try {\r\n          const envConfig = await fetch(\"/environmentConfig.json\");\r\n          var envJson = await envConfig.json();\r\n          commit(\"SET_BASE_URL\", envJson.SO_API_BASE_URL);\r\n        } catch (exception) {\r\n          commit(\"SET_BASE_URL\", process.env.VUE_APP_SO_API_BASE_URL);\r\n        }\r\n      }\r\n    },\r\n\r\n    async getLicenseTerms({ commit, rootState }, force = false) {\r\n      if (\r\n        !force &&\r\n        rootState.configuration.license &&\r\n        Object.keys(rootState.configuration.license).length !== 0\r\n      ) {\r\n        return;\r\n      }\r\n\r\n      // If the base url is not set we cannot get the terms\r\n      // This will probably be resolved during existing requests.\r\n      if (rootState.configuration.SO_API_BASE_URL == null) return;\r\n\r\n      await LicenseRepository.getTerms().then((res) =>\r\n        commit(\"SET_LICENSE\", res.data)\r\n      );\r\n    },\r\n\r\n    async getUserSettings({ commit, rootState, dispatch }) {\r\n      var user = rootState.users.currentUser;\r\n      if (user === undefined || user === null) return;\r\n\r\n      await SettingRepository.get().then((data) =>\r\n        commit(\"SET_USER_SETTINGS\", data.data)\r\n      );\r\n\r\n      await dispatch(\"users/getUserPermissionsByCurrentUser\", null, {\r\n        root: true,\r\n      });\r\n    },\r\n\r\n    async setUserSettings({ dispatch }, payload) {\r\n      await SettingRepository.set(payload).then(() =>\r\n        dispatch(\"getUserSettings\")\r\n      );\r\n    },\r\n\r\n    async getGlobalSettings({ commit, rootState }) {\r\n      var user = rootState.users.currentUser;\r\n      if (user === undefined || user === null) return;\r\n\r\n      await SettingRepository.getGlobal().then((data) => {\r\n        commit(\"SET_GLOBAL_SETTINGS\", data.data);\r\n      });\r\n    },\r\n\r\n    async setGlobalSettings({ dispatch }, payload) {\r\n      await SettingRepository.setGlobal(payload).then(() =>\r\n        dispatch(\"getGlobalSettings\")\r\n      );\r\n    },\r\n\r\n    async setCompanySettings({ dispatch }, payload) {\r\n      await SettingRepository.setCompany(payload).then(() =>\r\n        dispatch(\"getCompanySettings\")\r\n      );\r\n    },\r\n\r\n    async getCompanySettings({ dispatch, commit }) {\r\n      // Make sure to reset the fields and settings before\r\n      commit(\"SET_COMPANY_FIELDS\", []);\r\n      commit(\"SET_COMPANY\", {});\r\n      await SettingRepository.getCompany()\r\n        .then((data) => {\r\n          commit(\"SET_COMPANY\", data.data);\r\n        })\r\n        .catch(() => commit(\"SET_COMPANY\", {}));\r\n\r\n      // Get the fields\r\n      await dispatch(\"getCompanyFields\");\r\n    },\r\n\r\n    async getCompanyFields({ commit }) {\r\n      await SettingRepository.getCompanyFields().then((data) => {\r\n        commit(\"SET_COMPANY_FIELDS\", data.data);\r\n      });\r\n    },\r\n\r\n    setCompanySettingLocal({ commit }, { key, value }) {\r\n      commit(\"SET_COMPANY_SETTING\", { key, value });\r\n    },\r\n\r\n    async getCanCreateBools({ commit, rootState }) {\r\n      var user = rootState.users.currentUser;\r\n      var company = rootState.users.userCompany.companyId;\r\n\r\n      await LicenseRepository.canCreate(user, company)\r\n        .then((d) => commit(\"SET_CAN_CREATE\", d.data))\r\n        .catch(() => commit(\"SET_CAN_CREATE\", undefined));\r\n    },\r\n  },\r\n\r\n  mutations: {\r\n    SET_CAN_CREATE(state, data) {\r\n      state.canCreateCompany = data?.canCreateCompany ?? false;\r\n      state.canCreateGateway = data?.canCreateGateway ?? false;\r\n      state.canCreateNode = data?.canCreateNode ?? false;\r\n      state.expiresIn = data?.expiresIn ?? 999;\r\n      state.showLicenseExpiery = false;\r\n      if (\r\n        state.expiresIn <= 30 &&\r\n        (state.lastShownExpiery === undefined ||\r\n          state.lastShownExpiery < new Date())\r\n      ) {\r\n        state.lastShownExpiery = addHours(new Date(), 24);\r\n        state.showLicenseExpiery = true;\r\n      }\r\n    },\r\n\r\n    SET_SERVER_META(state, data) {\r\n      state.serverMeta = data;\r\n    },\r\n\r\n    SET_DARKMODE(state, message) {\r\n      state.darkmode = message;\r\n    },\r\n    SET_BASE_URL(state, url) {\r\n      state.SO_API_BASE_URL = url;\r\n    },\r\n\r\n    SET_USER_SETTINGS(state, payload) {\r\n      for (var i in Object.keys(payload)) {\r\n        let key = Object.keys(payload)[i];\r\n        if (payload[key] == \"true\" || payload[key] == \"false\")\r\n          payload[key] = payload[key] == \"true\" ? true : false;\r\n      }\r\n\r\n      state.userSettings = payload;\r\n    },\r\n\r\n    SET_LICENSE(state, payload) {\r\n      state.license = payload;\r\n    },\r\n\r\n    SET_GLOBAL_SETTINGS(state, payload) {\r\n      state.globalSettings = payload;\r\n    },\r\n\r\n    SET_COMPANY(state, payload) {\r\n      state.companySettings = payload;\r\n    },\r\n\r\n    SET_COMPANY_FIELDS(state, payload) {\r\n      state.companyFields = payload;\r\n    },\r\n\r\n    SET_COMPANY_SETTING(state, keyValue) {\r\n      state.companySettings[keyValue.key] = keyValue.value;\r\n    },\r\n\r\n    SHOW_LICENSE_NOTIFICATION(state, val) {\r\n      state.showLicenseNotification = val;\r\n    },\r\n\r\n    SET_NODES_LEFT_COMPANY(state, val) {\r\n      state.nodesLeftForCompany = val;\r\n    },\r\n  },\r\n\r\n  getters: {\r\n    license(state) {\r\n      return state.license;\r\n    },\r\n\r\n    documentTitle(state) {\r\n      let title = state.companySettings[\"COMPANY_BRANDING_TITLE\"];\r\n      if (title == undefined || title == \"\")\r\n        return state.globalSettings?.branding ?? \"Sensor Online\";\r\n\r\n      return title;\r\n    },\r\n\r\n    whiteLabelLogoForce(state) {\r\n      let wl = state.companySettings[\"WHITE_LABEL_IMAGE\"];\r\n      if (wl === undefined || wl === null || wl === \"\") return undefined;\r\n\r\n      return wl;\r\n    },\r\n\r\n    logoPath(state) {\r\n      try {\r\n        if (\r\n          !RestrictHelper.methods.canAccessFeature(\r\n            FEATURES.PER_COMPANY_BRANDING\r\n          )\r\n        ) {\r\n          if (\r\n            state.license.WHITE_LABEL != undefined &&\r\n            state.license.WHITE_LABEL != null &&\r\n            state.license.WHITE_LABEL.toLowerCase() == \"true\"\r\n          )\r\n            return \"so-white-label.png\";\r\n\r\n          return vuetify?.framework?.theme?.isDark\r\n            ? \"/sensor-online-dark.svg\"\r\n            : \"sensor-online.svg\";\r\n        }\r\n\r\n        let wl = state.companySettings[\"WHITE_LABEL_IMAGE\"];\r\n        if (wl === undefined || wl === null || wl === \"\") wl = undefined;\r\n\r\n        if (\r\n          state.license.WHITE_LABEL != undefined &&\r\n          state.license.WHITE_LABEL != null &&\r\n          state.license.WHITE_LABEL.toLowerCase() == \"true\"\r\n        ) {\r\n          if (wl === undefined) return \"so-white-label.png\";\r\n\r\n          return `${state.SO_API_BASE_URL ?? \"\"}/api/image/${wl}`;\r\n        }\r\n\r\n        const baseImage = vuetify?.framework?.theme?.isDark\r\n          ? \"/sensor-online-dark.svg\"\r\n          : \"sensor-online.svg\";\r\n        return wl === undefined\r\n          ? baseImage\r\n          : `${state.SO_API_BASE_URL ?? \"\"}/api/image/${wl}`;\r\n      } catch {\r\n        return \"sensor-online.svg\";\r\n      }\r\n    },\r\n\r\n    getCompanySetting: (state) => (key) => {\r\n      return state.companySettings[key];\r\n    },\r\n\r\n    getCompanyCoordinates: (state) => {\r\n      try {\r\n        return JSON.parse(state.companySettings[\"COORDINATES\"]);\r\n      } catch (e) {\r\n        console.warn(\"Default company coordinates returned json parse error\");\r\n        return { latitude: null, longitude: null };\r\n      }\r\n    },\r\n  },\r\n};\r\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\nconst DashboardRepository = RepositoryFactory.get(\"dashboard\");\n\nexport const dashboards = {\n  namespaced: true,\n  state: {\n    currentDashboard: {},\n    dashboards: [],\n    defaultDashboard: {},\n    publicDashboard: null,\n    publicDashboards: [],\n    categories: [],\n    hasDefault: false,\n    status: {\n      loading: false,\n    },\n  },\n\n  actions: {\n    async getDashboards({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await DashboardRepository.getDashboards(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((dashboards) => {\n          commit(\"SET_DASHBOARDS\", dashboards.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async duplicate({ dispatch, commit, rootState }, { dashboardId, payload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await DashboardRepository.duplicate(user, dashboardId, payload)\n        .then(() => {\n          dispatch(\"getDashboards\");\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getDashboard({ dispatch, commit, rootState }, { dashboardId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await DashboardRepository.getDashboard(user, dashboardId)\n        .then((dashboard) => {\n          commit(\"SET_DASHBOARD\", dashboard.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async setDashboard({ commit }, dashboard) {\n      commit(\"SET_DASHBOARD\", dashboard);\n    },\n\n    async create(\n      { dispatch, commit, rootState },\n      { payload, dashboardType = undefined }\n    ) {\n      commit(\"LOADING\", true);\n\n      return await DashboardRepository.createForCompany(payload, dashboardType)\n        .then(() => {\n          dispatch(\"getDashboards\");\n          commit(\"LOADING\", false);\n          return true;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n          return false;\n        });\n    },\n\n    async update({ dispatch, commit, rootState }, { dashboardId, payload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await DashboardRepository.update(user, dashboardId, payload)\n        .then(() => {\n          dispatch(\"getDashboards\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async delete({ dispatch, commit, rootState }, dashboardId) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await DashboardRepository.delete(user, dashboardId)\n        .then(() => {\n          dispatch(\"getDashboards\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n\n      await dispatch(\"getPublicDashboards\");\n    },\n\n    async setDefault({ dispatch, commit, rootState }, { dashboardId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      await DashboardRepository.setDefault(user, dashboardId)\n        .then(() => {\n          dispatch(\"getDashboards\");\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getDefault({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      await DashboardRepository.getDefault(user)\n        .then((dashboard) => {\n          commit(\"SET_DEFAULT\", dashboard.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async createPublicDashboard(\n      { dispatch, commit, rootState },\n      { dashboardId, expiresAt }\n    ) {\n      var user = rootState.users.currentUser;\n      await DashboardRepository.createPublicDashboard(\n        user,\n        rootState.users.userCompany.companyId,\n        dashboardId,\n        expiresAt\n      )\n        .then((dashboard) => {\n          commit(\"SET_PUBLIC_DASHBOARD\", dashboard.data);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n        });\n    },\n\n    async getPublicDashboards({ dispatch, commit, rootState }) {\n      var user = rootState.users.currentUser;\n\n      await DashboardRepository.getPublicDashboards(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((dashboard) => commit(\"SET_PUBLIC_DASHBOARDS\", dashboard.data))\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n        });\n    },\n\n    async getPublicDashboard({ commit, rootState }, id) {\n      var user = rootState.users.currentUser;\n      if (user && user.userId != undefined) return;\n\n      await DashboardRepository.getPublicDashboard(id).then((dashboard) => {\n        commit(\"SET_PUBLIC_DASHBOARD\", dashboard.data);\n      });\n    },\n\n    async deletePublicDashboard({ dispatch, rootState }, id) {\n      var user = rootState.users.currentUser;\n\n      await DashboardRepository.deletePublicDashboard(user, id)\n        .then(() => {\n          dispatch(\"getPublicDashboards\");\n        })\n        .catch(() => {\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n        });\n    },\n\n    async getDashboardCategories({ commit, rootState, dispatch }) {\n      var user = rootState.users.currentUser;\n\n      await DashboardRepository.getDashboardCategories(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((d) => {\n          commit(\"SET_DASHBOARD_CATEGORIES\", d.data);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n        });\n    },\n\n    async createDashboardCategories({ commit, rootState, dispatch }, payload) {\n      var user = rootState.users.currentUser;\n      commit(\"LOADING\", true);\n      await DashboardRepository.createDashboardCategories(\n        user,\n        rootState.users.userCompany.companyId,\n        payload\n      )\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n        });\n      commit(\"LOADING\", false);\n    },\n\n    async updateDashboardCategories(\n      { commit, rootState, dispatch },\n      { categoryId: categoryId, payload: payload }\n    ) {\n      var user = rootState.users.currentUser;\n      commit(\"LOADING\", true);\n      await DashboardRepository.updateDashboardCategories(\n        user,\n        categoryId,\n        payload\n      )\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n        });\n      commit(\"LOADING\", false);\n    },\n\n    async updateDashboardCategoryIndexes(\n      { commit, rootState, dispatch },\n      payload\n    ) {\n      var user = rootState.users.currentUser;\n      commit(\"LOADING\", true);\n\n      await DashboardRepository.updateDashboardIndexes(user, payload)\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n        });\n\n      commit(\"LOADING\", false);\n    },\n\n    async removeDashboardCategory({ commit, rootState, dispatch }, categoryId) {\n      var user = rootState.users.currentUser;\n      commit(\"LOADING\", true);\n\n      await DashboardRepository.removeDashboardIndexes(user, categoryId)\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          } else if (res.response.status === 400) {\n            dispatch(\"alert/error\", i18n.t(res.response.data), { root: true });\n          }\n        });\n\n      commit(\"LOADING\", false);\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    SET_DASHBOARD_CATEGORIES(state, categories) {\n      state.categories = categories;\n    },\n\n    SET_PUBLIC_DASHBOARD(state, publicDashboard) {\n      state.publicDashboard = publicDashboard;\n    },\n\n    SET_PUBLIC_DASHBOARDS(state, publicDashboards) {\n      state.publicDashboards = publicDashboards;\n    },\n\n    DELETE_APPLICATION(state) {\n      state.currentDashboard = {};\n    },\n\n    SET_DEFAULT(state, dashboard) {\n      if (Object.entries(dashboard).length !== 0) {\n        state.defaultDashboard = dashboard;\n        state.currentDashboard = dashboard;\n        state.hasDefault = true;\n      } else {\n        state.currentDashboard = {};\n        state.defaultDashboard = {};\n        state.hasDefault = false;\n      }\n    },\n\n    SET_DASHBOARDS(state, dashboards) {\n      state.dashboards = dashboards;\n    },\n\n    SET_DASHBOARD(state, dashboard) {\n      state.currentDashboard = dashboard;\n    },\n\n    // eslint-disable-next-line\n    RESET_STATE(state) {\n      state = {\n        currentDashboard: {},\n        dashboards: [],\n        status: {\n          loading: false,\n        },\n      };\n    },\n  },\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\r\nconst DownlinkRepository = RepositoryFactory.get(\"downlinks\");\r\n\r\nexport const downlinks = {\r\n  namespaced: true,\r\n  state: {\r\n    downlinks: [],\r\n    status: {\r\n      loading: false,\r\n    },\r\n  },\r\n\r\n  actions: {\r\n    async getForTag({ dispatch, commit, rootState }, deveui) {\r\n      if (!rootState.users.status.loggedIn) return;\r\n\r\n      commit(\"LOADING\", true);\r\n\r\n      var user = rootState.users.currentUser;\r\n\r\n      return await DownlinkRepository.getForTag(user, deveui)\r\n        .then((downlinks) => {\r\n          commit(\"GET_DOWNLINKS\", downlinks.data);\r\n          commit(\"LOADING\", false);\r\n          return downlinks.data;\r\n        })\r\n        .catch((res) => {\r\n          if (res.response.status === 401) {\r\n            dispatch(\r\n              \"users/login\",\r\n              {\r\n                email: rootState.users.credentials.email,\r\n                password: rootState.users.credentials.password,\r\n              },\r\n              { root: true }\r\n            );\r\n          }\r\n\r\n          commit(\"LOADING\", false);\r\n          return [];\r\n        });\r\n    },\r\n\r\n    async removeDownlink({ dispatch, commit, rootState }, downlinkQueueId) {\r\n      if (!rootState.users.status.loggedIn) return;\r\n      commit(\"LOADING\", true);\r\n      var user = rootState.users.currentUser;\r\n\r\n      await DownlinkRepository.removeDownlink(user, downlinkQueueId)\r\n        .then(() => commit(\"LOADING\", false))\r\n        .catch((res) => {\r\n          if (res.response.status === 401) {\r\n            dispatch(\r\n              \"users/login\",\r\n              {\r\n                email: rootState.users.credentials.email,\r\n                password: rootState.users.credentials.password,\r\n              },\r\n              { root: true }\r\n            );\r\n          }\r\n\r\n          commit(\"LOADING\", false);\r\n        });\r\n    },\r\n\r\n    async createDownlink({ commit, dispatch, rootState }, { deveui, payload }) {\r\n      if (!rootState.users.status.loggedIn) return;\r\n      commit(\"LOADING\", true);\r\n      var user = rootState.users.currentUser;\r\n\r\n      await DownlinkRepository.createDownlink(user, deveui, payload)\r\n        .then(() => commit(\"LOADING\", false))\r\n        .catch((res) => {\r\n          if (res.response.status === 401) {\r\n            dispatch(\r\n              \"users/login\",\r\n              {\r\n                email: rootState.users.credentials.email,\r\n                password: rootState.users.credentials.password,\r\n              },\r\n              { root: true }\r\n            );\r\n          }\r\n\r\n          commit(\"LOADING\", false);\r\n\r\n        });\r\n    }\r\n  },\r\n\r\n  mutations: {\r\n    LOADING(state, status) {\r\n      state.status.loading = status;\r\n    },\r\n\r\n    GET_DOWNLINKS(state, downlinks) {\r\n      state.downlinks = downlinks;\r\n    },\r\n  },\r\n};\r\n","export const event = {\r\n  namespaced: true,\r\n  state: {\r\n    events: [],\r\n  },\r\n\r\n  actions: {\r\n    addEvent({ commit }, payload) {\r\n      commit(\"SET_EVENT\", payload);\r\n    },\r\n  },\r\n\r\n  mutations: {\r\n    SET_EVENT(state, payload) {\r\n      state.events.unshift(payload);\r\n      if (state.events.length > 50) state.events.pop();\r\n    },\r\n  },\r\n\r\n  getters: {\r\n    lastEvent(state) {\r\n      if (state.events.length <= 0) return {};\r\n\r\n      return state.events[0];\r\n    },\r\n  },\r\n};\r\n","import FeatureAccessRepository from \"@/api/repositories/featureAccessRepository\";\n\nexport const featureAccess = {\n  namespaced: true,\n\n  state: {\n    companyFeatures: [],\n    features: [],\n  },\n\n  actions: {\n    async getAllFeatures({ commit }) {\n      let values = await FeatureAccessRepository.getAllFeatures()\n        .then((d) => d.data)\n        .catch(() => undefined);\n      if (values === undefined)\n        values = values\n          .then((d) => d.data)\n          .catch(() => {\n            console.error(\"Could not fetch features\");\n            return [];\n          });\n\n      commit(\"SET_FEATURES\", values);\n    },\n\n    async getCompanyFeatures({ commit }) {\n      let result = await FeatureAccessRepository.getCompanyFeatures()\n        .then((d) => d.data)\n        .catch(() => {\n          console.error(\"Could not fetch company features\");\n          return undefined;\n        });\n      if (result === undefined) {\n        commit(\"SET_COMPANY_FEATURES\", [{ name: \"FEATURE_MAP_DASHBOARD\" }]);\n        return;\n      }\n\n      commit(\"SET_COMPANY_FEATURES\", result);\n    },\n  },\n\n  mutations: {\n    SET_FEATURES(state, features) {\n      state.features = features;\n    },\n\n    SET_COMPANY_FEATURES(state, features) {\n      state.companyFeatures = features;\n    },\n  },\n\n  getters: {\n    companyFeatures(state) {\n      return state.companyFeatures;\n    },\n  },\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\nconst Gateway = RepositoryFactory.get(\"gateways\");\n\nexport const gateways = {\n  namespaced: true,\n  state: {\n    currentGateway: {},\n    gateways: [],\n    status: {\n      loading: false,\n      loggedIn: false,\n    },\n  },\n\n  actions: {\n    async createGateway(\n      { dispatch, commit, rootState },\n      { applicationId, gatewayPayload }\n    ) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await Gateway.create(user, applicationId, gatewayPayload)\n        .then((gateway) => {\n          dispatch(\"getGateways\");\n          commit(\"CREATE_GATEWAY\", gateway);\n          commit(\"LOADING\", false);\n          dispatch(\"alert/success\", i18n.t(\"common.created\"), { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async deleteGateway({ dispatch, commit, rootState }, gatewayId) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await Gateway.delete(user, gatewayId)\n        .then(() => {\n          dispatch(\"alert/success\", i18n.t(\"common.deleted\"), { root: true });\n          dispatch(\"getGateways\");\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getGateway({ dispatch, commit, rootState }, id) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await Gateway.getById(user, id)\n        .then((res) => {\n          commit(\"SET_GATEWAY\", res.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response !== undefined && res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getGateways({ dispatch, commit, rootState }) {\n      var user = rootState.users.currentUser;\n      var company = rootState.users.userCompany.companyId;\n      commit(\"LOADING\", true);\n      await Gateway.getByCompany(user, company)\n        .then((data) => {\n          commit(\"SET_GATEWAYS\", data.data);\n          commit(\"LOADING\", true);\n        })\n        .catch((res) => {\n          if (res.response !== undefined && res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async updatePosition(\n      { dispatch, commit, rootState },\n      { gatewayId, position }\n    ) {\n      var user = rootState.users.currentUser;\n\n      commit(\"LOADING\", true);\n      await Gateway.updatePosition(user, gatewayId, position)\n        .then(() => {\n          dispatch(\"getGateways\");\n          commit(\"LOADING\", true);\n        })\n        .catch(() => {\n          commit(\"LOADING\", false);\n        });\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    CREATE_GATEWAY(state, gateway) {\n      state.currentGateway = gateway;\n    },\n\n    SET_GATEWAY(state, gateway) {\n      state.currentGateway = gateway;\n    },\n\n    SET_GATEWAYS(state, gateways) {\n      state.gateways = gateways;\n    },\n  },\n};\n","import Vue from \"vue\";\nimport VueLocalStorage from \"vue-localstorage\";\nimport Languages from \"@/languages\";\nimport i18n from \"../../plugins/i18n\";\n\nVue.use(VueLocalStorage);\nconst supportedLanguages = Object.getOwnPropertyNames(Languages);\n\nexport const languages = {\n  namespaced: true,\n  state: {\n    language: Vue.localStorage.get(\"language\")\n  },\n\n  mutations: {\n    SET_LANGUAGE(state, lang) {\n      Vue.localStorage.set(\"language\", lang);\n      state.language = lang;\n      i18n.locale = lang;\n    }\n  },\n\n  actions: {\n    setLanguage({ commit }, languages) {\n      if (typeof languages === \"string\") {\n        commit(\"SET_LANGUAGE\", languages);\n      } else if (languages != null) {\n        const language = supportedLanguages.find(sl =>\n          languages.find(l =>\n            l.split(new RegExp(sl, \"gi\")).length - 1 > 0 ? sl : null\n          )\n        );\n\n        commit(\"SET_LANGUAGE\", language);\n      }\n    }\n  }\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\nimport MetricHelper from \"@/_helpers/metricHelper.js\";\n\nconst LogRepository = RepositoryFactory.get(\"log\");\n\nexport const logs = {\n  namespaced: true,\n  state: {\n    logs: [],\n    staticLogs: [],\n    activeUsers: [],\n    activeAlarms: [],\n    lastRequestLogs: [],\n    datapoints: null,\n    status: {\n      loading: false,\n    },\n  },\n\n  actions: {\n    async clearLog({ commit }) {\n      commit(\"CLEAR_LOG\");\n    },\n\n    async get({ dispatch, commit, rootState }, metrics) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await LogRepository.get(user, MetricHelper.getMetricsUrlParams(metrics))\n        .then((tags) => {\n          commit(\"GET_LOGS\", tags.data);\n          commit(\"GET_STATIC_LOGS\", tags.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n\n      commit(\"LOADING\", false);\n    },\n\n    async activeUsers({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await LogRepository.getActiveUsers(user)\n        .then((users) => {\n          commit(\"GET_ACTIVEUSERS\", users.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n\n      commit(\"LOADING\", false);\n    },\n\n    async getDatapoints({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await LogRepository.getDatapoints(user)\n        .then((points) => {\n          commit(\"GET_DATAPOINTS\", points.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getActiveAlarms({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await LogRepository.getActiveAlarms(user)\n        .then((alarms) => {\n          commit(\"GET_ALARMS\", alarms.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n\n      commit(\"LOADING\", false);\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    GET_DATAPOINTS(state, points) {\n      state.datapoints = points;\n    },\n\n    GET_ALARMS(state, alarms) {\n      state.activeAlarms = alarms;\n    },\n\n    GET_STATIC_LOGS(state, logs) {\n      state.staticLogs = logs;\n    },\n\n    GET_LOGS(state, logs) {\n      if (state.logs.length > 0) {\n        logs.forEach((e) => state.logs.unshift(e));\n        state.lastRequestLogs = logs.reverse();\n\n        if (state.logs.length > 200) {\n          var len = state.logs.length - 200;\n          state.logs.splice(200, len);\n        }\n      } else {\n        state.logs = logs;\n      }\n    },\n\n    GET_ACTIVEUSERS(state, users) {\n      state.activeUsers = users;\n    },\n\n    CLEAR_LOG(state) {\n      state.logs = [];\n    },\n\n    // eslint-disable-next-line\n    RESET_STATE(state) {\n      state = {\n        activeUsers: [],\n        logs: [],\n        status: {\n          loading: false,\n        },\n      };\n    },\n  },\n};\n","import ModbusRepository from \"../../api/repositories/modbusRepository\";\r\n\r\nexport const modbus = {\r\n  namespaced: true,\r\n  state: {\r\n    masters: [],\r\n  },\r\n\r\n  actions: {\r\n    async getMasters({ commit }) {\r\n      await ModbusRepository.getMasters()\r\n        .then((d) => commit(\"SET_MASTERS\", d.data))\r\n        .catch(() => commit(\"SET_MASTERS\", []));\r\n    },\r\n  },\r\n\r\n  mutations: {\r\n    SET_MASTERS(state, payload) {\r\n      state.masters = payload;\r\n    },\r\n  },\r\n\r\n  getters: {\r\n    getMasterNameById: (state) => (id) => {\r\n      return state.masters.find((e) => e.modbusMasterId == id)?.name ?? id;\r\n    },\r\n  },\r\n};\r\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\nimport CsharpEnum from \"@/_helpers/CsharpEnum\";\nconst ModuleRepository = RepositoryFactory.get(\"module\");\n\nexport const modules = {\n  namespaced: true,\n  state: {\n    currentModule: null,\n    modules: [],\n    status: {\n      loading: false,\n    },\n  },\n\n  actions: {\n    async getModules({ dispatch, commit, rootState }, { dashboardId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ModuleRepository.get(user, dashboardId)\n        .then((modules) => {\n          commit(\"SET_MODULES\", modules.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getModule({ dispatch, commit, rootState }, { moduleId }) {\n      commit(\"LOADING\", true);\n      var user = rootState.users.currentUser;\n\n      if (moduleId === undefined || moduleId === null)\n        moduleId = rootState.modules.currentModule.dashboardModuleId;\n\n      await ModuleRepository.getModule(user, moduleId)\n        .then((mod) => {\n          commit(\"ADD_MODULE\", mod.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async setModules({ commit }, modules) {\n      commit(\"SET_MODULES\", modules);\n    },\n\n    async create({ dispatch, commit, rootState }, { dashboardId, payload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ModuleRepository.create(user, dashboardId, payload)\n        .then((mod) => {\n          if (\n            (mod.data.type !== CsharpEnum.ModuleType.IMAGEMAP &&\n              mod.data.type !== CsharpEnum.ModuleType.IMAGE) ||\n            (CsharpEnum.ModuleType.IMAGE === mod.data.type &&\n              mod.data.tag !== null)\n          ) {\n            commit(\"ADD_MODULE\", mod.data);\n          } else {\n            commit(\"SET_CURRENT\", mod.data);\n          }\n\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async update({ dispatch, commit, rootState }, { moduleId, payload }) {\n      commit(\"LOADING\", true);\n      commit(\"SET_CURRENT\", payload);\n\n      var user = rootState.users.currentUser;\n      var dashboardId = rootState.dashboards.currentDashboard.dashboardId;\n      await ModuleRepository.update(user, moduleId, payload)\n        .then(() => {\n          dispatch(\"getModules\", {\n            dashboardId: dashboardId,\n          });\n\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async copyModule({ dispatch, rootState }, moduleId) {\n      var user = rootState.users.currentUser;\n      await ModuleRepository.copyModule(user, moduleId)\n        .then(() => {\n          dispatch(\"getModules\", {\n            dashboardId: rootState.dashboards.currentDashboard.dashboardId,\n          });\n        })\n        .catch(() => {\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n        });\n    },\n\n    async updateModules({ commit, rootState }, payload) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      await ModuleRepository.updateModules(user, payload)\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch(() => {\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async delete({ dispatch, commit, rootState }, { moduleId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ModuleRepository.delete(user, moduleId)\n        .then(() => {\n          dispatch(\"getModules\", {\n            dashboardId: rootState.dashboards.currentDashboard.dashboardId,\n          });\n          commit(\"LOADING\", false);\n        })\n\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async postImage({ dispatch, commit, rootState }, { moduleId, image }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ModuleRepository.postImage(user, moduleId, image)\n        .then(() => {\n          dispatch(\"getModule\", {\n            moduleId: rootState.modules.currentModule.dashboardModuleId,\n          });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async updateIndex({ commit, rootState }) {\n      commit(\"LOADING\", true);\n      var user = rootState.users.currentUser;\n      var modules = rootState.modules.modules;\n\n      for (let i = 0; i < modules.length; i++) {\n        if (modules[i].dashboardModuleId !== undefined) {\n          modules[i].index = i;\n          await ModuleRepository.update(\n            user,\n            modules[i].dashboardModuleId,\n            modules[i]\n          );\n        }\n      }\n\n      commit(\"LOADING\", false);\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    SET_CURRENT(state, mod) {\n      state.currentModule = mod;\n    },\n\n    ADD_MODULE(state, mod) {\n      state.currentModule = mod;\n\n      state.modules.push(mod);\n    },\n\n    SET_MODULES(state, modules) {\n      state.modules = modules;\n    },\n\n    // eslint-disable-next-line\n    RESET_STATE(state) {\n      state = {\n        modules: [],\n        status: {\n          loading: false,\n        },\n      };\n    },\n  },\n};\n","import MqttRepository from \"../../api/repositories/mqttRepository.js\";\r\nimport i18n from \"../../plugins/i18n\";\r\n\r\nexport const mqtt = {\r\n  namespaced: true,\r\n  state: {\r\n    brokers: [],\r\n    brokersWithMetrics: [],\r\n    mqttMeta: {},\r\n  },\r\n\r\n  actions: {\r\n    async getBrokers({ commit, rootState, dispatch }) {\r\n      var user = rootState.users.currentUser;\r\n      var company = rootState.users.userCompany.companyId;\r\n\r\n      await MqttRepository.getBrokers(user, company)\r\n        .then((d) => {\r\n          commit(\"SET_BROKERS\", d.data);\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\r\n        });\r\n    },\r\n\r\n    async getBrokersWithMetrics({ commit, rootState, dispatch }) {\r\n      var user = rootState.users.currentUser;\r\n      var company = rootState.users.userCompany.companyId;\r\n\r\n      await MqttRepository.getBrokersWithMetrics(user, company)\r\n        .then((d) => {\r\n          commit(\"SET_BROKERS_WITH_METRICS\", d.data);\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\r\n        });\r\n    },\r\n\r\n    async createBroker({ rootState, dispatch }, payload) {\r\n      var user = rootState.users.currentUser;\r\n      var company = rootState.users.userCompany.companyId;\r\n\r\n      let result = false;\r\n      await MqttRepository.createBroker(user, company, payload)\r\n        .then(() => {\r\n          dispatch(\"alert/success\", i18n.t(\"common.created\"), { root: true });\r\n          result = true;\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\r\n        });\r\n\r\n      return result;\r\n    },\r\n\r\n    async updateBroker({ rootState, dispatch }, { brokerId, payload }) {\r\n      var user = rootState.users.currentUser;\r\n\r\n      let result = false;\r\n      await MqttRepository.updateBroker(user, brokerId, payload)\r\n        .then(() => {\r\n          dispatch(\"alert/success\", i18n.t(\"common.updated\"), { root: true });\r\n          result = true;\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\r\n        });\r\n\r\n      return result;\r\n    },\r\n\r\n    async deleteBroker({ rootState, dispatch }, brokerId) {\r\n      var user = rootState.users.currentUser;\r\n\r\n      let result = false;\r\n      await MqttRepository.deleteBroker(user, brokerId)\r\n        .then(() => {\r\n          dispatch(\"alert/success\", i18n.t(\"common.deleted\"), { root: true });\r\n          result = true;\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\r\n        });\r\n\r\n      return result;\r\n    },\r\n\r\n    async createMqttMeta(\r\n      { dispatch, rootState },\r\n      { brokerId, deveui, payload }\r\n    ) {\r\n      var user = rootState.users.currentUser;\r\n\r\n      let result = false;\r\n      await MqttRepository.createMqttMeta(user, brokerId, deveui, payload)\r\n        .then(() => {\r\n          result = true;\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\r\n        });\r\n\r\n      return result;\r\n    },\r\n\r\n    async updateMqttMeta(\r\n      { dispatch, rootState },\r\n      { mqttMetaId, brokerId, payload }\r\n    ) {\r\n      var user = rootState.users.currentUser;\r\n\r\n      let result = false;\r\n      await MqttRepository.updateMqttMeta(user, mqttMetaId, brokerId, payload)\r\n        .then(() => {\r\n          result = true;\r\n          dispatch(\"alert/success\", i18n.t(\"common.updated\"), { root: true });\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\r\n        });\r\n\r\n      return result;\r\n    },\r\n  },\r\n\r\n  mutations: {\r\n    SET_BROKERS(state, data) {\r\n      state.brokers = data;\r\n    },\r\n\r\n    SET_BROKERS_WITH_METRICS(state, data) {\r\n      state.brokersWithMetrics = data;\r\n    },\r\n  },\r\n\r\n  getters: {\r\n    brokers(state) {\r\n      return state.brokers;\r\n    },\r\n\r\n    brokersWithMetrics(state) {\r\n      return state.brokersWithMetrics;\r\n    },\r\n  },\r\n};\r\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\n\nconst NotificationRepository = RepositoryFactory.get(\"notification\");\n\nexport const notifications = {\n  namespaced: true,\n  state: {\n    notifications: [],\n    status: {\n      loading: false,\n    },\n  },\n\n  actions: {\n    async getNotifications({ dispatch, commit, rootState }) {\n      // Cancel notification retrieval if the user is not logged in\n      if (!rootState.users.status.loggedIn) return;\n\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await NotificationRepository.get(user, user.userId)\n        .then((notifications) => {\n          commit(\"GET_NOTIFICATIONS\", notifications.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async deactivateNotification(\n      { dispatch, commit, rootState },\n      notificationId\n    ) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await NotificationRepository.deactivate(user, notificationId)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getNotifications\", { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async deactivateAllNotifications({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await NotificationRepository.deactivateAll(user, user.userId)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getNotifications\", { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    GET_NOTIFICATIONS(state, notifications) {\n      state.notifications = notifications;\n    },\n  },\n};\n","import OpcRepository from \"@/api/repositories/opcRepository\";\n\nexport const opc = {\n    namespaced: true,\n    state: {\n        servers: [],\n        nodes: []\n    },\n    \n    actions: {\n        async getServers({commit}) {\n            await OpcRepository.getServers()\n                .then(d => commit(\"SET_SERVERS\", d.data))\n                .catch(() => commit(\"SET_SERVERS\", []));\n        },\n\n        async getNodesByDeveui({commit}, deveui) {\n            const result = await OpcRepository.getNodesByDeveui(deveui).then(d => d.data).catch(() => []);\n            commit(\"SET_NODES\", result);\n        }\n    },\n    \n    mutations: {\n        SET_SERVERS(state, payload) {\n            state.servers = payload;\n        },\n\n        SET_NODES(state, payload) {\n            state.nodes = payload;\n        }\n    },\n    \n    getters: {\n        getServerUrlById: (state) => (id) => {\n            return state.servers.find(d => d.opcServerId === id);\n        }\n    }\n};","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\nimport { saveAs } from \"file-saver\";\nimport { format } from \"date-fns\";\n\nconst ReportRepository = RepositoryFactory.get(\"report\");\n\nexport const reports = {\n  namespaced: true,\n  state: {\n    currentReport: {},\n    reports: [],\n    status: {\n      loading: false,\n    },\n  },\n\n  actions: {\n    async getReports({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ReportRepository.getReports(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((reports) => {\n          commit(\"GET_REPORTS\", reports.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getReport({ dispatch, commit, rootState }, { reportId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ReportRepository.getReport(user, reportId)\n        .then((report) => {\n          commit(\"GET_CURRENT\", report.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async create({ dispatch, commit, rootState }, { payload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ReportRepository.create(user, payload)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getReports\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async update({ dispatch, commit, rootState }, { reportId, payload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ReportRepository.update(user, reportId, payload)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getReports\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async delete({ dispatch, commit, rootState }, { reportId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ReportRepository.delete(user, reportId)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getReports\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async multiExport({ dispatch, commit, rootState }, { payload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      var companyId = null;\n      companyId = rootState.users.userCompany.companyId;\n\n      await ReportRepository.multiExport(user, payload, companyId)\n        .then((res) => {\n          var date = format(new Date(), \"YYY-MM-dd\");\n          saveAs(new Blob([res.data]), `SensorOnline-Report-${date}.xlsx`);\n        })\n        .catch((res) => {\n          if (res.response.status === 404) {\n            dispatch(\"alert/error\", i18n.t(\"report.noData\"), { root: true });\n          } else\n            dispatch(\"alert/error\", i18n.t(\"report.downloadFailed\"), {\n              root: true,\n            });\n        });\n\n      commit(\"LOADING\", false);\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    GET_REPORTS(state, reports) {\n      state.reports = reports;\n    },\n\n    GET_CURRENT(state, report) {\n      state.currentReport = report;\n    },\n  },\n};\n","import RoleRepository from \"../../api/repositories/roleRepository.js\";\r\nimport restrictHelper from \"../../_helpers/RestrictHelper.js\";\r\n\r\nexport const roles = {\r\n  namespaced: true,\r\n  state: {\r\n    role: {},\r\n    roles: [],\r\n    recommended: [],\r\n    permissions: [],\r\n  },\r\n\r\n  actions: {\r\n    async getRolesByCompany({ commit, dispatch, rootState }) {\r\n      await RoleRepository.getAllByCompany(\r\n        rootState.users.currentUser,\r\n        rootState.users.userCompany.companyId\r\n      )\r\n        .then((d) => {\r\n          commit(\"SET_ROLES\", d.data);\r\n        })\r\n        .catch((res) => {\r\n          if (res.response.status === 401) {\r\n            dispatch(\r\n              \"users/login\",\r\n              {\r\n                email: rootState.users.credentials.email,\r\n                password: rootState.users.credentials.password,\r\n              },\r\n              { root: true }\r\n            );\r\n          }\r\n        });\r\n    },\r\n\r\n    getRoleById({ state, commit }, id) {\r\n      var res = state.roles.find((e) => e.userRoleId == id);\r\n      if (res != null) commit(\"SET_ROLE\", res);\r\n    },\r\n\r\n    async createRole({ dispatch, rootState }, payload) {\r\n      await RoleRepository.create(\r\n        rootState.users.currentUser,\r\n        rootState.users.userCompany.companyId,\r\n        payload\r\n      ).then(() => dispatch(\"getRolesByCompany\"));\r\n    },\r\n\r\n    async updateRole({ dispatch, rootState }, payload) {\r\n      await RoleRepository.update(\r\n        rootState.users.currentUser,\r\n        payload.userRoleId,\r\n        payload\r\n      ).then(() => dispatch(\"getRolesByCompany\"));\r\n    },\r\n\r\n    async getRecommendedPermissions({ commit, rootState }, ids) {\r\n      if (ids == null || ids.length <= 0) {\r\n        commit(\"SET_RECOMMENDED\", []);\r\n        return;\r\n      }\r\n\r\n      await RoleRepository.getRecommendedPermissions(\r\n        rootState.users.currentUser,\r\n        ids\r\n      ).then((d) => {\r\n        commit(\"SET_RECOMMENDED\", d.data);\r\n      });\r\n    },\r\n\r\n    async getPermissions({ commit, rootState }) {\r\n      await RoleRepository.getPermissions(rootState.users.currentUser).then(\r\n        (d) => {\r\n          commit(\"SET_PERMISSIONS\", d.data);\r\n        }\r\n      );\r\n    },\r\n\r\n    setRole({ state, commit }, userRoleId) {\r\n      var role = state.roles.find((e) => e.userRoleId == userRoleId);\r\n\r\n      if (role != null) commit(\"SET_ROLE\", role);\r\n    },\r\n  },\r\n\r\n  mutations: {\r\n    SET_ROLE(state, role) {\r\n      state.role = role;\r\n    },\r\n\r\n    SET_ROLES(state, roles) {\r\n      state.roles = roles;\r\n    },\r\n\r\n    SET_RECOMMENDED(state, value) {\r\n      state.recommended = value;\r\n    },\r\n\r\n    SET_PERMISSIONS(state, value) {\r\n      state.permissions = value;\r\n    },\r\n  },\r\n\r\n  getters: {\r\n    defaultsWithPermissions(status) {\r\n      return status.roles.filter((d) => d.isDefault);\r\n    },\r\n\r\n    permittedRoles(state) {\r\n      if (!restrictHelper.methods.permitted(\"UserRole.Update\")) return [];\r\n\r\n      if (restrictHelper.methods.permitted(\"SuperAdmin\")) return state.roles;\r\n\r\n      return state.roles.filter((e) => !e.isSuper);\r\n    },\r\n  },\r\n};\r\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\n\nconst ScriptRepository = RepositoryFactory.get(\"script\");\n\nexport const scripts = {\n  namespaced: true,\n  state: {\n    currentScript: {},\n    scripts: [],\n    validScript: true,\n    error: null,\n    status: {\n      loading: false,\n    },\n  },\n\n  actions: {\n    async getScripts({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ScriptRepository.getScripts(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((scripts) => {\n          commit(\"GET_SCRIPTS\", scripts.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getScript({ dispatch, commit, rootState }, { scriptId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ScriptRepository.getScript(user, scriptId)\n        .then((script) => {\n          commit(\"GET_CURRENT\", script.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async create({ dispatch, commit, rootState }, { payload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ScriptRepository.create(\n        user,\n        rootState.users.userCompany.companyId,\n        payload\n      )\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getScripts\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n    async edit({ dispatch, commit, rootState }, { scriptId, payload }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      await ScriptRepository.put(user, scriptId, payload)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getScripts\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async delete({ dispatch, commit, rootState }, { scriptId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await ScriptRepository.delete(user, scriptId)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getScripts\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async execute({ dispatch, commit, rootState }, { scriptId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      await ScriptRepository.execute(user, scriptId)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getScripts\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async test({ commit, rootState }, { payload }) {\n      commit(\"LOADING\", true);\n\n      var companyId = rootState.users.userCompany.companyId;\n\n      var user = rootState.users.currentUser;\n\n      await ScriptRepository.test(user, payload, companyId)\n        .then(() => {\n          commit(\"SET_VALIDSCRIPT\", { valid: true });\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          commit(\"SET_VALIDSCRIPT\", { valid: false, msg: res.response.data });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async setCurrentScript({ commit }, script) {\n      commit(\"GET_CURRENT\", script);\n    },\n\n    async resetValidScript({ commit }) {\n      commit(\"SET_VALIDSCRIPT\", { valid: true });\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    GET_SCRIPTS(state, scripts) {\n      state.scripts = scripts;\n    },\n\n    GET_CURRENT(state, script) {\n      state.currentScript = script;\n    },\n\n    SET_VALIDSCRIPT(state, content) {\n      if (!content.valid) {\n        state.error = content.msg;\n      }\n\n      state.validScript = content.valid;\n    },\n  },\n};\n","export const settings = {\n  namespaced: true,\n  state: {\n    moduleSettings: [],\n    googleMapsZoom: 7,\n    googleMapsLatLng: null,\n    googleMapsViewType: \"roadmap\",\n    imageMapZoom: -1,\n  },\n\n  actions: {\n    addModuleSetting({ commit }, { moduleId, timeOffset }) {\n      commit(\"ADD_MODULE_SETTING\", { moduleId, timeOffset });\n    },\n\n    setGoogleMapsZoom({ commit }, level) {\n      commit(\"SET_GOOGLEMAPS_ZOOM\", level);\n    },\n\n    setLatnLng({ commit }, latnlng) {\n      commit(\"SET_LAT_LNG\", latnlng);\n    },\n\n    setMapType({ commit }, viewType) {\n      commit(\"SET_VIEW_TYPE\", viewType);\n    },\n\n    setImageMapZoom({ commit }, level) {\n      commit(\"SET_IMAGE_MAP_ZOOM\", level);\n    },\n  },\n\n  mutations: {\n    ADD_MODULE_SETTING(state, { moduleId, timeOffset }) {\n      state.moduleSettings[moduleId] = timeOffset;\n    },\n\n    SET_GOOGLEMAPS_ZOOM(state, level) {\n      state.googleMapsZoom = level;\n    },\n\n    SET_LAT_LNG(state, latnLng) {\n      state.googleMapsLatLng = latnLng;\n    },\n\n    SET_VIEW_TYPE(state, viewType) {\n      state.googleMapsViewType = viewType;\n    },\n\n    SET_IMAGE_MAP_ZOOM(state, level) {\n      state.imageMapZoom = level;\n    },\n\n    RESET_STATE(state) {\n      state.moduleSettings = [];\n    },\n  },\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\r\nimport i18n from \"@/plugins/i18n\";\r\nconst Repo = RepositoryFactory.get(\"signalTest\");\r\n\r\nexport const signalTests = {\r\n  namespaced: true,\r\n  state: {\r\n    currentTest: {},\r\n    signalTests: [],\r\n    testData: [],\r\n  },\r\n\r\n  mutations: {\r\n    SET_TEST(state, test) {\r\n      state.currentTest = test;\r\n    },\r\n\r\n    SET_TEST_DATAS(state, datas) {\r\n      state.testData = datas;\r\n    },\r\n\r\n    SET_TESTS(state, tests) {\r\n      state.signalTests = tests;\r\n    },\r\n  },\r\n\r\n  actions: {\r\n    async getTests({ rootState, dispatch }) {\r\n      var user = rootState.users.currentUser;\r\n      var company = rootState.users.userCompany.companyId;\r\n\r\n      let result = [];\r\n\r\n      await Repo.getTests(user, company)\r\n        .then((data) => {\r\n          result = data.data;\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\r\n            root: true,\r\n          });\r\n        });\r\n\r\n      return result;\r\n    },\r\n\r\n    async peek({ rootState, dispatch }, testId) {\r\n      var user = rootState.users.currentUser;\r\n      let result = [];\r\n\r\n      await Repo.peek(user, testId)\r\n        .then((data) => {\r\n          result = data.data;\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\r\n            root: true,\r\n          });\r\n        });\r\n\r\n      return result;\r\n    },\r\n\r\n    async getTest({ rootState, dispatch }, testId) {\r\n      var user = rootState.users.currentUser;\r\n      let result = [];\r\n\r\n      await Repo.getTest(user, testId)\r\n        .then((data) => {\r\n          result = data.data;\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\r\n            root: true,\r\n          });\r\n        });\r\n\r\n      return result;\r\n    },\r\n\r\n    async startTest({ commit, rootState, dispatch }, { deveui, payload }) {\r\n      var user = rootState.users.currentUser;\r\n      var company = rootState.users.userCompany.companyId;\r\n\r\n      await Repo.startTest(user, company, deveui, payload)\r\n        .then((test) => {\r\n          dispatch(\"getTests\");\r\n          commit(\"SET_TEST\", test.data);\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\r\n            root: true,\r\n          });\r\n        });\r\n    },\r\n\r\n    async endTest({ rootState, dispatch }, testId) {\r\n      var user = rootState.users.currentUser;\r\n\r\n      await Repo.endTest(user, testId)\r\n        .then(() => {\r\n          dispatch(\"getTests\");\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\r\n            root: true,\r\n          });\r\n        });\r\n    },\r\n\r\n    async deleteTest({ rootState, dispatch }, testId) {\r\n      var user = rootState.users.currentUser;\r\n\r\n      await Repo.deleteTest(user, testId)\r\n        .then(() => {\r\n          dispatch(\"getTests\");\r\n        })\r\n        .catch(() => {\r\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\r\n            root: true,\r\n          });\r\n        });\r\n    },\r\n  },\r\n};\r\n","// This store is used only by frontend to keep track of slots between\r\n// components instead of sending full objects all around\r\nexport const slots = {\r\n  namespaced: true,\r\n\r\n  state: {\r\n    slots: [],\r\n  },\r\n\r\n  actions: {\r\n    addSlot({ commit }, { slotId, index, key }) {\r\n      commit(\"ADD_SLOT\", { slotId, index, key });\r\n    },\r\n\r\n    resetSlots({ commit }) {\r\n      commit(\"RESET_SLOTS\");\r\n    },\r\n  },\r\n\r\n  mutations: {\r\n    ADD_SLOT(state, { slotId, index, key }) {\r\n      for (var slot of state.slots) {\r\n        if (slotId === slot.slotId) return;\r\n\r\n        if (slot.key == key && slot.index == index) return;\r\n      }\r\n\r\n      state.slots.push({\r\n        slotId: slotId === undefined ? crypto.randomUUID() : slotId,\r\n        index: index,\r\n        slot: \"Node Slot \" + index,\r\n        key: key,\r\n        priority: state.slots?.length + 1 ?? 0,\r\n      });\r\n    },\r\n\r\n    ADD_KEY_TO_SLOT(state, index, key) {\r\n      var slotIdx = state.slots.findIndex((d) => d.index == index);\r\n      if (slotIdx == -1) return;\r\n\r\n      state.slots[slotIdx].key = key;\r\n    },\r\n\r\n    RESET_SLOTS(state) {\r\n      state.slots = [];\r\n    },\r\n  },\r\n\r\n  getters: {\r\n    getSlot: (state) => (index, key) => {\r\n      var slot = state.slots.findIndex((d) => d.index == index && d.key == key);\r\n      if (slot === -1) return null;\r\n\r\n      return state.slots[slot];\r\n    },\r\n\r\n    getSlotNameById: (state) => (id) => {\r\n      var slot = state.slots.findIndex((d) => d.slotId === id);\r\n      if (slot === -1) return \"\";\r\n\r\n      return (\r\n        \"Node Slot \" + state.slots[slot].index + \" - \" + state.slots[slot].key\r\n      );\r\n    },\r\n\r\n    getSlotName: (state) => (index, key) => {\r\n      var slot = state.slots.findIndex(\r\n        (d) => d.index === index && d.key === key\r\n      );\r\n      if (slot === -1) return \"\";\r\n\r\n      return (\r\n        \"Node Slot \" + state.slots[slot].index + \" - \" + state.slots[slot].key\r\n      );\r\n    },\r\n  },\r\n};\r\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\nimport { Roles } from \"@/_helpers/Role\";\nimport ApiHelper from \"@/_helpers/apiHelper.js\";\nimport companyRepository from \"../../api/repositories/companyRepository\";\nimport DecoderHelper from \"@/_helpers/DecoderHelper\";\nimport { companySettingKeys } from \"../../_helpers/companySettings\";\nimport { getDefaultNodeTableHeaders } from \"../../_helpers/tagHelper\";\n\nconst TagRepository = RepositoryFactory.get(\"tag\");\n\nexport const tag = {\n  namespaced: true,\n  state: {\n    currentTag: {},\n    currentLabel: {},\n    tags: [],\n    tagsAttributes: [],\n    tagsWithKeys: [],\n    tagsWithMeta: {},\n    batteryStatuses: [],\n    tagsInPool: [],\n    detail: {},\n    status: {\n      loading: false,\n    },\n    apiErrors: [],\n    decoders: [],\n    keys: [],\n    openPanels: [],\n  },\n\n  actions: {\n    async getTags({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      await TagRepository.getByCompanyId(\n        user,\n        rootState.users.userCompany.companyId\n      )\n        .then((tags) => {\n          commit(\"GET_TAGS\", tags.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n\n      commit(\"LOADING\", false);\n    },\n\n    async getAllTagAttributes({ dispatch, commit }) {\n      commit(\"LOADING\", true);\n\n      await TagRepository.getTagAttributesByCompanyId()\n        .then((tagsAttributes) => {\n          commit(\"GET_ALL_TAG_ATTRIBUTES\", tagsAttributes.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          console.error(res);\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n\n      commit(\"LOADING\", false);\n    },\n\n    async getTagAsync({ commit, rootState }, id) {\n      var user = rootState.users.currentUser;\n\n      let data = {};\n      await TagRepository.getById(user, id)\n        .then((tag) => {\n          commit(\"CREATED_TAG\", tag.data);\n          data = tag.data;\n        })\n        .catch(() => {\n          commit(\"LOADING\", false);\n        });\n\n      return data;\n    },\n\n    async getAllKeys({ rootState, commit }) {\n      var user = rootState.users.currentUser;\n\n      await TagRepository.getAllKeys(user)\n        .then((t) => {\n          commit(\"SET_KEYS\", t.data);\n        })\n        .catch((d) => console.error(d));\n    },\n\n    async getTagWithMetaAndKeys({ commit }, deveuiAndKeys) {\n      await TagRepository.getTagWithMetaAndKeys(deveuiAndKeys)\n        .then((d) => commit(\"SET_TAG_WITH_META\", d.data))\n        .catch((d) => console.error(d));\n    },\n\n    async createTag(\n      { dispatch, commit, rootState },\n      { applicationId, payload }\n    ) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await TagRepository.create(user, applicationId, payload)\n        .then((tag) => {\n          commit(\"CREATED_TAG\", tag.data);\n          commit(\"CLEAR_ERRORS\");\n          dispatch(\"getTags\", user);\n          dispatch(\"alert/success\", i18n.t(\"common.created\"), {\n            root: true,\n          });\n        })\n        .catch((res) => {\n          commit(\"SET_ERRORS\", res.response.data.errors);\n\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n\n            dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          } else if (ApiHelper.checkForConflict(res.response)) {\n            dispatch(\"alert/error\", i18n.t(\"validation.deveuiConflict\"), {\n              root: true,\n            });\n          }\n\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async updateTag(\n      { dispatch, commit, rootState },\n      { payload, fetch = true }\n    ) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await TagRepository.update(user, payload)\n        .then((tag) => {\n          commit(\"CREATED_TAG\", tag.data);\n          commit(\"CLEAR_ERRORS\");\n          if (fetch) {\n            dispatch(\"getTags\", user);\n          }\n          dispatch(\"alert/success\", i18n.t(\"common.updated\"), {\n            root: true,\n          });\n        })\n        .catch((res) => {\n          commit(\"SET_ERRORS\", res.response.data.errors);\n\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async updateSparkplugMeta(\n      { disptach, commit, rootState },\n      { deveui, meta }\n    ) {\n      var user = rootState.users.currentUser;\n\n      await TagRepository.updateSparkplugMeta(user, deveui, meta)\n        .then(async () => {\n          commit(\"CLEAR_ERRORS\");\n          await disptach(\"getTags\");\n        })\n        .catch((res) => {\n          commit(\"SET_ERRORS\", res.response);\n        });\n    },\n\n    async deleteTag({ dispatch, commit, rootState }, { tagId }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      let success = false;\n      await TagRepository.delete(user, tagId)\n        .then(() => {\n          commit(\"DELETED_TAG\");\n          dispatch(\"getTags\", user);\n          dispatch(\"alert/success\", i18n.t(\"common.deleted\"), { root: true });\n          success = true;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n\n      return success;\n    },\n\n    async setTag({ commit }, tag) {\n      commit(\"SET_TAG\", tag);\n    },\n\n    async getKeysForTag({ dispatch, commit, rootState }, { tagId }) {\n      commit(\"LOADING\", true);\n      dispatch(\"tagData/setTagDataKeys\", [], { root: true });\n\n      return await TagRepository.getKeys(rootState.users.currentUser, tagId)\n        .then((keys) => {\n          dispatch(\"tagData/setTagDataKeys\", keys.data, { root: true });\n          commit(\"LOADING\", false);\n          return keys.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n          return [];\n        });\n    },\n\n    async getKeysForTagAsync({ dispatch, commit, rootState }, { tagId }) {\n      commit(\"LOADING\", true);\n\n      return await TagRepository.getKeys(rootState.users.currentUser, tagId)\n        .then((keys) => {\n          commit(\"LOADING\", false);\n          return keys.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n          return [];\n        });\n    },\n\n    async getDetails({ dispatch, commit, rootState }, deveui) {\n      var user = rootState.users.currentUser;\n      return await TagRepository.getDetails(user, deveui)\n        .then((d) => {\n          commit(\"SET_DETAIL\", d.data);\n          return d.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n        });\n    },\n\n    async getTagWithKeys({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      var tags = [];\n\n      if (user.role === Roles.SuperAdmin) {\n        await TagRepository.getByCompanyId(\n          user,\n          rootState.users.userCompany.companyId\n        )\n          .then((response) => {\n            tags = response.data;\n          })\n          .catch((res) => {\n            if (res.response.status === 401) {\n              dispatch(\n                \"users/login\",\n                {\n                  email: rootState.users.credentials.email,\n                  password: rootState.users.credentials.password,\n                },\n\n                { root: true }\n              );\n            }\n\n            dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n            commit(\"LOADING\", false);\n          });\n      } else {\n        await TagRepository.get(user)\n          .then((response) => {\n            tags = response.data;\n          })\n          .catch((res) => {\n            if (res.response.status === 401) {\n              dispatch(\n                \"users/login\",\n                {\n                  email: rootState.users.credentials.email,\n                  password: rootState.users.credentials.password,\n                },\n\n                { root: true }\n              );\n            }\n\n            dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n            commit(\"LOADING\", false);\n          });\n      }\n\n      if (tags.length > 0) {\n        for (var i = 0; i < tags.length; i++) {\n          await TagRepository.getKeys(user, tags[i].deveui).then((response) => {\n            var keys = [];\n            response.data.forEach((e) => {\n              keys.push({ name: e.key });\n            });\n            tags[i].keys = keys;\n          });\n\n          tags[i].name = tags[i].deveui + \" - \" + tags[i].name;\n        }\n      }\n\n      commit(\"LOADING\", false);\n      commit(\"SET_TAG_WITH_KEY\", tags);\n    },\n\n    resetState({ commit }) {\n      commit(\"RESET_STATE\");\n    },\n\n    async uploadTagImage({ dispatch, commit, rootState }, { payload, tagId }) {\n      commit(\"LOADING\", true);\n\n      await TagRepository.uploadImage(\n        rootState.users.currentUser,\n        tagId,\n        payload\n      )\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getTags\", rootState.user.currentUser);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async deleteImage({ dispatch, commit, rootState }, { tagId }) {\n      commit(\"LOADING\", true);\n\n      await TagRepository.deleteImage(rootState.users.currentUser, tagId)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getTags\", rootState.user.currentUser);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async setDefaultKey({ dispatch, commit, rootState }, { tagId, key }) {\n      commit(\"LOADING\", true);\n\n      await TagRepository.setDefaultKey(rootState.users.currentUser, tagId, key)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"getTags\");\n\n          // Get the tags and batterystatuses\n          dispatch(\"companies/getBatteryStatuses\", null, { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async addTagKey({ dispatch, commit, rootState }, { payload }) {\n      commit(\"LOADING\", true);\n\n      return await TagRepository.addTagKey(rootState.users.currentUser, payload)\n        .then(() => {\n          commit(\"LOADING\", false);\n          return true;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n          return false;\n        });\n    },\n\n    async updateTagKey({ dispatch, commit, rootState }, { payload }) {\n      commit(\"LOADING\", true);\n\n      return await TagRepository.updateTagKey(\n        rootState.users.currentUser,\n        payload\n      )\n        .then(() => {\n          commit(\"LOADING\", false);\n          return true;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n          return false;\n        });\n    },\n\n    async deleteTagKey({ dispatch, commit, rootState }, { tagId, key }) {\n      commit(\"LOADING\", true);\n\n      return await TagRepository.deleteTagKey(\n        rootState.users.currentUser,\n        tagId,\n        key\n      )\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"alert/success\", i18n.t(\"common.success\"), { root: true });\n          return true;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n          return false;\n        });\n    },\n\n    async getKeyLabel({ dispatch, commit, rootState }, { tagId, key }) {\n      commit(\"LOADING\", true);\n\n      return await TagRepository.getKeyLabel(\n        rootState.users.currentUser,\n        tagId,\n        key\n      )\n        .then((res) => {\n          commit(\"LOADING\", false);\n          commit(\"SET_LABEL\", res.data);\n          return res.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getTagPool({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      await TagRepository.getTagPool(rootState.users.currentUser)\n        .then((tags) => {\n          commit(\"LOADING\", false);\n          commit(\"SET_TAGPOOL\", tags.data);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async updateTagPoolStatus({ dispatch, commit, rootState }, deveui) {\n      commit(\"LOADING\", true);\n      await TagRepository.updateTagPoolStatus(\n        rootState.users.currentUser,\n        deveui\n      )\n        .then(() => {\n          dispatch(\"getTagPool\");\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    setBatteryStatuses({ commit }, statuses) {\n      commit(\"SET_BATTERY_STATUSES\", statuses);\n    },\n\n    async getTagsWithInformation({ dispatch, rootState }) {\n      return await companyRepository\n        .getTagsWithInformation()\n        .then((res) => {\n          return res.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n          return [];\n        });\n    },\n\n    async getTagWithInformation(_, deveui) {\n      return await TagRepository.getTagWithInformation(deveui)\n        .then((res) => res.data)\n        .catch(() => []);\n    },\n\n    async getLatestForCompany({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await dispatch(\"getTags\", user);\n\n      var payload = [];\n      var tags = this.state.tag.tags;\n      await companyRepository\n        .getLatestTagData(user, rootState.users.userCompany.companyId)\n        .then((res) => {\n          for (var i = 0; i < tags.length; i++) {\n            payload[i] = tags[i];\n            payload[i].data = [];\n\n            res.data.forEach((d) => {\n              if (d.tagDeveui == payload[i].deveui) {\n                if (d.key == \"rssi\") payload[i].rssi = d.value;\n                else if (d.key == \"vdd\") payload[i].vdd = d.value;\n                else {\n                  payload[i].data.push(d);\n                }\n\n                if (\n                  payload[i].latestTime == undefined ||\n                  d.createdAt > payload[i].latestTime\n                )\n                  payload[i].latestTime = d.createdAt;\n              }\n            });\n          }\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n\n              { root: true }\n            );\n          }\n        });\n      commit(\"GET_TAGS\", payload);\n\n      commit(\"LOADING\", false);\n    },\n\n    async getDecoders({ commit, rootState }) {\n      var user = rootState.users.currentUser;\n      await TagRepository.getDecoders(user)\n        .then((d) => {\n          commit(\"SET_DECODERS\", d.data);\n        })\n        .catch(() => {\n          commit(\"SET_DECODERS\", DecoderHelper.decoders);\n        });\n    },\n\n    async setTagData({ dispatch, commit, rootState }, { tagId, payload }) {\n      commit(\"LOADING\", true);\n\n      await TagRepository.setData(rootState.users.currentUser, tagId, payload)\n        .then(() => {\n          commit(\"LOADING\", false);\n          dispatch(\"alert/success\", i18n.t(\"common.success\"), { root: true });\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    updateOpenPanels({ commit }, openPanels) {\n      commit(\"SET_OPEN_PANELS\", openPanels);\n    },\n\n    initializeOpenPanels({ commit }) {\n      commit(\"SET_OPEN_PANELS\", []);\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    SET_KEYS(state, keys) {\n      state.keys = keys;\n    },\n\n    SET_TAGPOOL(state, tagPool) {\n      state.tagsInPool = tagPool;\n    },\n\n    SET_BATTERY_STATUSES(state, statuses) {\n      state.batteryStatuses = statuses;\n    },\n\n    GET_TAGS(state, tags) {\n      state.tags = tags;\n    },\n\n    GET_ALL_TAG_ATTRIBUTES(state, tagsAttributes) {\n      state.tagsAttributes = tagsAttributes;\n    },\n\n    CREATED_TAG(state, tag) {\n      state.currentTag = tag;\n    },\n\n    DELETED_TAG(state) {\n      state.currentTag = {};\n    },\n\n    SET_TAG(state, tag) {\n      state.currentTag = tag;\n    },\n\n    SET_LABEL(state, label) {\n      state.currentLabel = label;\n    },\n\n    SET_TAG_WITH_KEY(state, tags) {\n      state.tagsWithKeys = tags;\n    },\n\n    SET_TAG_WITH_META(state, tagsWithMeta) {\n      state.tagsWithMeta = tagsWithMeta;\n    },\n\n    SET_ERRORS(state, errors) {\n      state.apiErrors = errors;\n    },\n\n    CLEAR_ERRORS(state) {\n      state.apiErrors = [];\n    },\n\n    SET_DECODERS(state, decoders) {\n      state.decoders = decoders;\n    },\n\n    SET_DETAIL(state, data) {\n      state.detail = data;\n    },\n\n    SET_OPEN_PANELS(state, openPanels) {\n      state.openPanels = openPanels;\n    },\n\n    // eslint-disable-next-line\n    RESET_STATE(state) {\n      state = {\n        currentTag: {},\n        tags: [],\n        status: {\n          loading: false,\n        },\n      };\n    },\n  },\n\n  getters: {\n    getOpenPanels: (state) => state.openPanels,\n    getTableHeaders: (_, __, rootState) => {\n      try {\n        let tableheaders = JSON.parse(\n          rootState.configuration.companySettings[\n            companySettingKeys.nodeTableColumns\n          ]\n        );\n        return tableheaders.length > 0\n          ? tableheaders\n          : getDefaultNodeTableHeaders;\n      } catch (e) {\n        console.warn(\"Default tables returned json parse error\");\n        return getDefaultNodeTableHeaders;\n      }\n    },\n  },\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\nimport MetricHelper from \"@/_helpers/metricHelper.js\";\nconst TagDataRepository = RepositoryFactory.get(\"tagdata\");\nconst CompanyRepository = RepositoryFactory.get(\"companies\");\nconst ModuleRepository = RepositoryFactory.get(\"module\");\n\nexport const tagData = {\n  namespaced: true,\n  state: {\n    currentTagData: {},\n    currents: [],\n    tagData: [],\n    tagsWithData: [],\n    keys: [],\n    tdKeys: [],\n    defaults: {},\n    meta: {},\n    tagDataCount: null,\n    hasDefaults: false,\n    status: {\n      loading: false,\n      dataLoading: false,\n    },\n  },\n\n  actions: {\n    async getTagData({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await TagDataRepository.get(user)\n        .then((tagData) => {\n          commit(\"GET_TAG_DATA\", tagData.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getTagDataKeys({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      var company = rootState.users.userCompany;\n\n      await TagDataRepository.getKeys(user, company.companyId)\n        .then((keys) => {\n          commit(\"GET_TAG_DATA_KEYS\", keys.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async getTagDataWithMetrics({ dispatch, commit, rootState }, { metrics }) {\n      commit(\"LOADING\", true);\n      commit(\"TAGLOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      var company = rootState.users.userCompany;\n\n      return await CompanyRepository.getTagDataWithMetrics(\n        user,\n        company.companyId,\n        MetricHelper.getMetricsUrlParams(metrics)\n      )\n        .then((tagData) => {\n          commit(\"GET_TAG_DATA\", tagData.data);\n          commit(\"TAGLOADING\", false);\n          commit(\"LOADING\", false);\n          return tagData.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n          commit(\"LOADING\", false);\n          commit(\"TAGLOADING\", false);\n        });\n    },\n\n    async getTagDataAsync({ dispatch, rootState }, { metrics }) {\n      var user = rootState.users.currentUser;\n\n      var company = rootState.users.userCompany;\n\n      let tagDatas = await CompanyRepository.getTagDataWithMetrics(\n        user,\n        company.companyId,\n        MetricHelper.getMetricsUrlParams(metrics)\n      ).catch(() => {\n        dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n      });\n\n      return tagDatas !== undefined ? tagDatas.data : [];\n    },\n\n    async getTagDataWithMultiTag({ dispatch, commit, rootState }, { metrics }) {\n      commit(\"LOADING\", true);\n      commit(\"TAGLOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      var company = rootState.users.userCompany;\n\n      await CompanyRepository.getTagDataWithMetrics(\n        user,\n        company.companyId,\n        MetricHelper.getMetricsUrlParams(metrics)\n      )\n        .then((tagData) => {\n          commit(\"GET_TAG_DATA_MULTI\", tagData.data);\n          commit(\"TAGLOADING\", false);\n          commit(\"LOADING\", false);\n        })\n        .catch(() => {\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n          commit(\"LOADING\", false);\n          commit(\"TAGLOADING\", false);\n        });\n    },\n\n    async getTagDataWithMultiTagAsync({ dispatch, rootState }, { metrics }) {\n      var user = rootState.users.currentUser;\n\n      var company = rootState.users.userCompany;\n\n      let td = await CompanyRepository.getTagDataWithMetrics(\n        user,\n        company.companyId,\n        MetricHelper.getMetricsUrlParams(metrics)\n      ).catch((res) => {\n        if (res.response.status === 401) {\n          dispatch(\n            \"users/login\",\n            {\n              email: rootState.users.credentials.email,\n              password: rootState.users.credentials.password,\n            },\n            { root: true }\n          );\n        }\n\n        dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n      });\n\n      return td !== undefined ? td.data : [];\n    },\n\n    async getTagDataDefaults({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      var company = rootState.users.userCompany;\n\n      await CompanyRepository.getTagDataDefaults(user, company.companyId)\n        .then((defaults) => {\n          commit(\"GET_DEFAULTS\", defaults.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async resetDefaults({ commit }) {\n      commit(\"RESET_DEFAULTS\");\n    },\n\n    async setTagDataDefaults({ commit }, { defaults }) {\n      commit(\"SET_DEFAULTS\", defaults);\n    },\n\n    async getTagdataDatapoints({ dispatch, commit, rootState }) {\n      var user = rootState.users.currentUser;\n      let metrics = {\n        from: new Date(\n          new Date().getTime() - 24 * 60 * 60 * 1000\n        ).toISOString(),\n      };\n      let points = 0;\n      var company = rootState.users.userCompany;\n      await CompanyRepository.getTagDataWithMetrics(\n        user,\n        company.companyId,\n        MetricHelper.getMetricsUrlParams(metrics)\n      )\n        .then((count) => {\n          points = count.data.length;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        });\n\n      return points;\n    },\n\n    async getTagDataForModule({ dispatch, rootState }, { moduleId, metrics }) {\n      var user = rootState.users.currentUser;\n\n      return await ModuleRepository.getTagDataForModule(\n        user,\n        moduleId,\n        MetricHelper.getMetricsUrlParams(metrics)\n      )\n        .then((tagData) => {\n          return tagData.data;\n        })\n        .catch(() => {\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n        });\n    },\n\n    async getTagDataForModuleByLimit(\n      { dispatch, rootState },\n      { moduleId, limit }\n    ) {\n      var user = rootState.users.currentUser;\n\n      return await ModuleRepository.getTagDataForModuleByLimit(\n        user,\n        moduleId,\n        limit\n      )\n        .then((tagData) => {\n          return tagData.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n        });\n    },\n\n    async getLatestTagDataForModule({ dispatch, rootState }, { moduleId }) {\n      var user = rootState.users.currentUser;\n\n      return await ModuleRepository.getLatestTagDataForModule(user, moduleId)\n        .then((tagData) => {\n          return tagData.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n        });\n    },\n\n    setTagDataKeys({ commit }, keys) {\n      commit(\"GET_TAG_DATA_KEYS\", keys);\n    },\n\n    resetState({ commit }) {\n      commit(\"RESET_STATE\");\n    },\n\n    clearTagData({ commit }) {\n      commit(\"CLEAR_TAGDATA\");\n    },\n\n    async getDatapointsLastWeek({ rootState, dispatch }) {\n      var user = rootState.users.currentUser;\n      var company = rootState.users.userCompany;\n\n      return await CompanyRepository.getDatapointsLastWeek(\n        user,\n        company.companyId\n      )\n        .then((data) => data.data)\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n        });\n    },\n\n    async getDatapointsLastDay({ rootState, dispatch }) {\n      var user = rootState.users.currentUser;\n      var company = rootState.users.userCompany;\n\n      return await CompanyRepository.getDatapointsLastDay(\n        user,\n        company.companyId\n      )\n        .then((data) => data.data)\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n        });\n    },\n\n    async getSensorDatapointsLastDay({ rootState, dispatch }) {\n      var user = rootState.users.currentUser;\n      var company = rootState.users.userCompany;\n\n      return await CompanyRepository.getSensorDatapointsLastDay(\n        user,\n        company.companyId\n      )\n        .then((data) => data.data)\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n        });\n    },\n\n    async getTrendDataForTag(\n      { dispatch, rootState },\n      { tagId, tagKey, metrics }\n    ) {\n      return await TagDataRepository.getTrendDataForTag(\n        tagId,\n        encodeURIComponent(tagKey),\n        MetricHelper.getMetricsUrlParams(metrics)\n      )\n        .then((tagData) => {\n          return tagData.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n        });\n    },\n\n    async getCurrentTagdata(\n      { dispatch, commit, rootState },\n      { tagId, tagKey }\n    ) {\n      return await TagDataRepository.getCurrentTagdata(\n        tagId,\n        encodeURIComponent(tagKey)\n      )\n        .then((tagData) => {\n          commit(\"SET_CURRENT_TAGDATA\", tagData.data);\n          return tagData.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          return { value: \"ERR\" };\n        });\n    },\n\n    async getCurrentsForTag({ commit, rootState, dispatch }, deveui) {\n      var user = rootState.users.currentUser;\n      return await TagDataRepository.getCurrentsForDevice(user, deveui)\n        .then((d) => {\n          commit(\"SET_CURRENTS\", d.data);\n          return d.data;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n          return [];\n        });\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    SET_META(state, meta) {\n      state.meta = meta;\n    },\n\n    TAGLOADING(state, status) {\n      state.status.dataLoading = status;\n    },\n\n    SET_TAG_DATA(state, tagData) {\n      state.tagData = tagData;\n    },\n\n    SET_CURRENT_TAGDATA(state, tagData) {\n      state.currentTagData = tagData;\n    },\n\n    SET_CURRENTS(state, currents) {\n      state.currents = currents;\n    },\n\n    GET_TAG_DATA(state, tagData) {\n      state.tagData = tagData;\n\n      // Sätt nycklarna som tillhör tagdatan\n      var tdKeys = tagData.map((x) => x.key);\n      state.tdKeys = [...new Set(tdKeys)];\n    },\n\n    GET_TAG_DATA_MULTI(state, tagData) {\n      state.tagsWithData = tagData;\n    },\n\n    GET_TAG_DATA_KEYS(state, keys) {\n      state.keys = keys;\n    },\n\n    GET_DEFAULTS(state, defaults) {\n      state.defaults = defaults;\n      state.hasDefaults = true;\n    },\n\n    SET_DEFAULTS(state, defaults) {\n      state.defaults = {};\n      state.defaults = defaults;\n      state.hasDefaults = true;\n    },\n\n    GET_TOTAL_DP(state, dp) {\n      state.tagDataCount = dp;\n    },\n\n    RESET_DEFAULTS(state) {\n      state.defaults = {};\n      this.hasDefaults = false;\n    },\n\n    // eslint-disable-next-line\n    RESET_STATE(state) {\n      state = {\n        currentTagData: {},\n        tagData: [],\n        keys: [],\n        defaults: {},\n        tagDataCount: null,\n        hasDefaults: false,\n        status: {\n          loading: false,\n        },\n      };\n    },\n\n    CLEAR_TAGDATA(state) {\n      state.tagData = [];\n      state.keys = [];\n    },\n  },\n\n  getters: {\n    currents: (state) => state.currents,\n  }\n};\n","import Repository from \"../Repository\";\r\nimport { company, apiConfig } from \"../../_helpers/apiHelper\";\r\n\r\nconst resource = \"/templateDashboard\";\r\n\r\nexport default {\r\n  getDashboard(templateDashboardId) {\r\n    return Repository.get(`${resource}/${templateDashboardId}`, apiConfig());\r\n  },\r\n\r\n  getDashboards() {\r\n    return Repository.get(`${resource}/list/${company()}`, apiConfig());\r\n  },\r\n\r\n  getWidgets(templateDashboardId) {\r\n    return Repository.get(\r\n      `${resource}/widgets/${templateDashboardId}`,\r\n      apiConfig()\r\n    );\r\n  },\r\n\r\n  create(payload) {\r\n    return Repository.post(`${resource}/${company()}`, payload, apiConfig());\r\n  },\r\n\r\n  update(templateDashboardId, payload) {\r\n    return Repository.put(\r\n      `${resource}/${templateDashboardId}`,\r\n      payload,\r\n      apiConfig()\r\n    );\r\n  },\r\n\r\n  delete(templateDashboardId) {\r\n    return Repository.delete(`${resource}/${templateDashboardId}`, apiConfig());\r\n  },\r\n\r\n  updateWidgets(templateDashboardId, payload) {\r\n    return Repository.put(\r\n      `${resource}/widgets/${templateDashboardId}`,\r\n      payload,\r\n      apiConfig()\r\n    );\r\n  },\r\n\r\n  removeWidget(widgetId) {\r\n    return Repository.delete(`${resource}/widget/${widgetId}`, apiConfig());\r\n  },\r\n\r\n  getTemplateDashboards() {\r\n    return Repository.get(`${resource}/${company()}`, apiConfig());\r\n  },\r\n};\r\n","import TemplateDashboardRepository from \"../../api/repositories/templateDashboard\";\r\n\r\nexport const templateDashboard = {\r\n  namespaced: true,\r\n\r\n  state: {\r\n    dashboard: {},\r\n    widgets: {},\r\n    dashboards: [],\r\n  },\r\n\r\n  actions: {\r\n    saveDashboardToState({ commit }, dashboard) {\r\n      commit(\"SET_DASHBOARD\", dashboard);\r\n    },\r\n\r\n    removeWidgetFromState({ commit }, widgetId) {\r\n      commit(\"REMOVE_WIDGET\", widgetId);\r\n    },\r\n\r\n    reset({ commit }) {\r\n      commit(\"RESET_DASHBOARD\");\r\n    },\r\n\r\n    async getTemplateDashboard({ commit }, templateDashboardId) {\r\n      await TemplateDashboardRepository.getDashboard(templateDashboardId)\r\n        .then((d) => commit(\"SET_DASHBOARD\", d.data))\r\n        .catch((e) => console.error(e));\r\n    },\r\n\r\n    async getTemplateDashboards({ commit }, commitToStore = true) {\r\n      let result = await TemplateDashboardRepository.getDashboards()\r\n        .then((d) => d.data)\r\n        .catch((e) => {\r\n          console.error(e);\r\n        });\r\n      if (result !== undefined && commitToStore)\r\n        commit(\"SET_TEMPLATE_DASHBOARDS\", result);\r\n\r\n      return result;\r\n    },\r\n\r\n    async getDashboardWidgets({ commit }, templateDashboardId) {\r\n      let result = await TemplateDashboardRepository.getWidgets(\r\n        templateDashboardId\r\n      )\r\n        .then((d) => d.data)\r\n        .catch((e) => {\r\n          console.error(e);\r\n        });\r\n\r\n      commit(\"SET_WIDGETS\", result ?? []);\r\n      return result ?? [];\r\n    },\r\n\r\n    setWidgets({ commit }, widgets) {\r\n      commit(\"SET_WIDGETS\", widgets);\r\n    },\r\n\r\n    addOrUpdateWidget({ commit }, widget) {\r\n      commit(\"ADD_OR_UPDATE_WIDGET\", widget);\r\n    },\r\n\r\n    // Should return the templateDashboardId\r\n    async createTemplateDashboard(_, payload) {\r\n      var result = await TemplateDashboardRepository.create(payload)\r\n        .then((d) => [true, d.data])\r\n        .catch((d) => [false, d]);\r\n\r\n      if (!result[0]) {\r\n        console.error(result[1]);\r\n        return undefined;\r\n      }\r\n\r\n      // result[1] should contain a string of the guid for Template dashboard ID\r\n      return result[1];\r\n    },\r\n\r\n    async updateTemplateDashboard(_, { templateDashboardId, payload }) {\r\n      return await TemplateDashboardRepository.update(\r\n        templateDashboardId,\r\n        payload\r\n      )\r\n        .then(() => true)\r\n        .catch(() => false);\r\n    },\r\n\r\n    async saveTemplateDashboardWidgets({ getters }, payload) {\r\n      // Get the current template dashboard id\r\n      let tId = getters.templateDashboardId;\r\n      if (tId === undefined) {\r\n        console.error(\"No template dashboard ID was found in store\");\r\n        return;\r\n      }\r\n\r\n      return await TemplateDashboardRepository.updateWidgets(tId, payload)\r\n        .then(() => [true, \"Ok!\"])\r\n        .catch((d) => [false, d]);\r\n    },\r\n\r\n    async deleteTemplateDashboard(_, templateDashboardId) {\r\n      return await TemplateDashboardRepository.delete(templateDashboardId)\r\n        .then(() => true)\r\n        .catch((d) => {\r\n          console.error(d);\r\n          return false;\r\n        });\r\n    },\r\n  },\r\n\r\n  mutations: {\r\n    REMOVE_WIDGET(state, id) {\r\n      let widgets = state.widgets;\r\n      if (widgets === undefined) return;\r\n\r\n      let idx = widgets.findIndex((d) => d.templateWidgetId === id);\r\n      if (idx !== -1) widgets.splice(idx, 1);\r\n\r\n      // Index widgets\r\n      let i = 0;\r\n      for (var w of state.widgets) {\r\n        w.i = i++;\r\n      }\r\n    },\r\n\r\n    SET_DASHBOARD(state, dashboard) {\r\n      state.dashboard = dashboard;\r\n    },\r\n\r\n    RESET_DASHBOARD(state) {\r\n      state.dashboard = {};\r\n      state.widgets = [];\r\n    },\r\n\r\n    SET_TEMPLATE_DASHBOARDS(state, val) {\r\n      state.dashboards = val;\r\n    },\r\n\r\n    SET_WIDGETS(state, val) {\r\n      state.widgets = val;\r\n    },\r\n\r\n    ADD_OR_UPDATE_WIDGET(state, val) {\r\n      if (state.widgets?.length === undefined) state.widgets = [];\r\n\r\n      let widgetIdx = state.widgets.findIndex(\r\n        (d) => d.templateWidgetId === val.templateWidgetId\r\n      );\r\n      if (widgetIdx !== -1) {\r\n        // Update the widget instead\r\n        state.widgets[widgetIdx] = val;\r\n        return;\r\n      }\r\n\r\n      state.widgets.push(val);\r\n\r\n      // Index widgets\r\n      let i = 0;\r\n      for (var w of state.widgets) {\r\n        w.i = i++;\r\n      }\r\n    },\r\n  },\r\n\r\n  getters: {\r\n    templateDashboardId(state) {\r\n      return state.dashboard?.templateDashboardId ?? undefined;\r\n    },\r\n  },\r\n};\r\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\n\nimport i18n from \"@/plugins/i18n\";\n\nconst UserRepository = RepositoryFactory.get(\"users\");\nconst RoleRepository = RepositoryFactory.get(\"roles\");\n\nexport const users = {\n  namespaced: true,\n  state: {\n    users: [],\n    permissions: [],\n    user: {},\n    currentUser: {},\n    userCompany: {},\n    credentials: { email: \"\", password: \"\" },\n    hasCompany: false,\n    updateCounter: 0,\n    status: {\n      loading: false,\n      loggedIn: false,\n    },\n  },\n\n  actions: {\n    refreshUserData({commit}) {\n      commit(\"UPDATE\");\n    },\n\n    async get({ commit, dispatch, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await UserRepository.get(user).then(\n        (users) => {\n          commit(\"GET_USER\", users.data);\n          commit(\"LOADING\", false);\n        },\n        (res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        }\n      );\n\n      commit(\"LOADING\", false);\n    },\n\n    async getById({ commit, dispatch, rootState }, userId) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await UserRepository.getById(user, userId)\n        .then((users) => {\n          commit(\"GET_USER\", users.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        });\n      commit(\"LOADING\", false);\n    },\n\n    async getAll({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await UserRepository.getAll(user).then(\n        (users) => {\n          commit(\"GET_USERS\", users.data);\n          commit(\"LOADING\", false);\n        },\n        (res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          commit(\"LOADING\", false);\n        }\n      );\n      commit(\"LOADING\", false);\n    },\n\n    async getUserCompany({ dispatch, commit, rootState }) {\n      commit(\"LOADING\", true);\n      var user = rootState.users.currentUser;\n\n      await UserRepository.getCompany(user).then(\n        (company) => {\n          commit(\"GET_USER_COMPANY\", company.data);\n          commit(\"LOADING\", false);\n          if (company.data.country == \"\" || company.data.country == null)\n            company.data.country = \"en\";\n\n          dispatch(\"languages/setLanguage\", company.data.country, {\n            root: true,\n          });\n          dispatch(\"configuration/getCompanySettings\", null, { root: true});\n        },\n        (res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n        }\n      );\n    },\n\n    setUserCompany({ dispatch, commit }, { company }) {\n      commit(\"LOADING\", true);\n\n      if (company.country === \"\")\n        company.country = null;\n\n      commit(\"GET_USER_COMPANY\", company);\n      dispatch(\"languages/setLanguage\", company.country ?? \"en\", {\n        root: true,\n      });\n\n      dispatch(\"featureAccess/getCompanyFeatures\", null, {root: true});\n\n      commit(\"LOADING\", false);\n    },\n\n    async setUserByPublicDashboard({ commit }, dashboard) {\n      commit(\"LOGIN_USER\", {\n        token: dashboard.token,\n        role: \"PublicDashboard\",\n      });\n      commit(\"GET_USER_COMPANY\", dashboard.dashboard.company);\n    },\n\n    async editUser({ dispatch, commit, rootState, state }, userPayload) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n\n      await UserRepository.edit(user, userPayload.userId, userPayload)\n        .then((user) => {\n          commit(\"EDIT_USER\", user.data);\n          commit(\"LOADING\", false);\n\n          if (state.currentUser.userId === user.data.userId) {\n            dispatch(\"login\", state.credentials);\n          }\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n\n          dispatch(\"alert/error\", i18n.t(\"user.updateFailed\"), { root: true });\n          commit(\"LOADING\", false);\n        });\n    },\n\n    async login({ dispatch, commit }, { email, password }) {\n      commit(\"SET_CREDENTIALS\", { email: email, password: password });\n\n      commit(\"LOADING\", true);\n      let success = false;\n      await UserRepository.login(email, password)\n        .then(async (user) => {\n          commit(\"LOGIN_USER\", user.data);\n          await dispatch(\"getUserCompany\");\n          await dispatch(\"companies/getAll\", null, {root: true});\n          await dispatch(\"getUserPermissionsByCurrentUser\");\n          await dispatch(\"configuration/getCompanySettings\", null, {root: true});\n          success = true;\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (!res.response) {\n            throw new Error(i18n.t(\"common.errors.backendConnection\"));\n          } else if (res.response.status == 409) {\n            // The license is probably not valid\n            throw new Error(res.response.data);\n          }\n\n          commit(\"LOGIN_FAILED\");\n          commit(\"LOADING\", false);\n          dispatch(\"alert/error\", i18n.t(\"user.signInFailed\"), { root: true });\n        });\n\n      return success;\n    },\n\n    async getUserPermissionsByCurrentUser({ commit, rootState }) {\n      await RoleRepository.getUserPermissionsByUserId(\n        rootState.users.currentUser\n      ).then((d) => commit(\"SET_PERMISSIONS\", d.data));\n    },\n\n    async logout({ dispatch, commit }) {\n      commit(\"LOGOUT_USER\");\n      dispatch(\"companies/resetState\", null, { root: true });\n      dispatch(\"tag/resetState\", null, { root: true });\n      dispatch(\"applications/resetState\", null, { root: true });\n      dispatch(\"tagData/resetState\", null, { root: true });\n      dispatch(\"alarms/resetState\", null, { root: true });\n      commit(\"LOADING\", false);\n    },\n\n    async updateRole(\n      { dispatch, commit, rootState },\n      { role: role, targetUserId: targetUserId }\n    ) {\n      commit(\"LOADING\", false);\n\n      var user = rootState.users.currentUser;\n\n      await UserRepository.updateRole(user, targetUserId, role)\n        .then(() => {\n          dispatch(\"companies/getCompanyUsers\", null, { root: true });\n        })\n        .catch(() => {\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n        });\n    },\n\n    async createUserAndCompany({ dispatch, commit, rootState }, payload) {\n      commit(\"LOADING\", true);\n      await UserRepository.createUserWithCompany(\n        rootState.users.currentUser,\n        payload\n      )\n        .then(() => {\n          dispatch(\"alert/success\", i18n.t(\"common.created\"), {\n            root: true,\n          });\n        })\n        .catch((error) => {\n          if (error.response.status === 409) {\n            throw new Error(error.response.data);\n          } else {\n            dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n              root: true,\n            });\n          }\n        });\n    },\n\n    async delete({ dispatch, commit, rootState }, userId) {\n      commit(\"LOADING\", true);\n\n      var user = rootState.users.currentUser;\n      if (user.userId !== userId) {\n        await UserRepository.delete(user, userId)\n          .then(() => {\n            dispatch(\"alert/success\", i18n.t(\"common.deleted\"), {\n              root: true,\n            });\n            commit(\"LOADING\", false);\n          })\n          .catch((res) => {\n            if (res.response.status === 401) {\n              dispatch(\n                \"users/login\",\n                {\n                  email: rootState.users.credentials.email,\n                  password: rootState.users.credentials.password,\n                },\n                { root: true }\n              );\n            }\n\n            dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n              root: true,\n            });\n          });\n      }\n    },\n\n    async forgotPassword({ dispatch, commit }, email) {\n      commit(\"LOADING\", true);\n      await UserRepository.forgotPassword(email)\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch(() => {\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n        });\n      commit(\"LOADING\", false);\n    },\n\n    async forgotPasswordUpdate({ dispatch, commit }, { guid, password }) {\n      commit(\"LOADING\", true);\n      await UserRepository.forgotPasswordUpdate(guid, password)\n        .then(() => {\n          commit(\"LOADING\", false);\n        })\n        .catch(() => {\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), {\n            root: true,\n          });\n        });\n      commit(\"LOADING\", false);\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    GET_USER(state, user) {\n      state.user = user;\n    },\n\n    GET_USERS(state, users) {\n      state.users = users;\n    },\n\n    GET_USER_COMPANY(state, company) {\n      state.userCompany = company;\n      state.hasCompany = true;\n    },\n\n    SET_CREDENTIALS(state, credentials) {\n      state.credentials = credentials;\n    },\n\n    EDIT_USER(state, user) {\n      state.user = user;\n    },\n\n    LOGIN_USER(state, user) {\n      state.currentUser = user;\n      state.status.loggedIn = true;\n    },\n\n    LOGIN_FAILED(state) {\n      state.status.loggedIn = false;\n    },\n\n    SET_PERMISSIONS(state, val) {\n      state.permissions = val;\n    },\n\n    // eslint-disable-next-line\n    LOGOUT_USER(state) {\n      state.users = [];\n      state.user = [];\n      state.currentUser = {};\n      state.userCompany = {};\n      state.credentials = { email: \"\", password: \"\" };\n      state.hasCompany = false;\n      state.permissions = [];\n      state.status = {\n        loading: false,\n        loggedIn: false,\n      };\n    },\n\n    UPDATE(state) {\n      state.updateCounter += 1; \n    }\n  },\n\n  getters: {\n    user(state) {\n      return state.currentUser;\n    },\n\n    companyId(state) {\n      return state.userCompany.companyId;\n    },\n\n    companyName(state) {\n      return state.userCompany.name;\n    },\n\n    token(state) {\n      return state.currentUser?.token ?? undefined;\n    },\n\n    permissions(state) {\n      return state.permissions;\n    },\n  },\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\nimport i18n from \"@/plugins/i18n\";\n// import ApiHelper from \"@/_helpers/apiHelper.js\";\n\nconst TagJournalRepository = RepositoryFactory.get(\"tagJournal\");\n\nexport const tagJournal = {\n  namespaced: true,\n  state: {\n    currentJournal: {},\n    journals: [],\n    status: {\n      loading: false,\n    },\n    apiErrors: [],\n  },\n\n  actions: {\n    async getJournalsForTag({ dispatch, commit, rootState }, tagId) {\n      commit(\"LOADING\", true);\n\n      return await TagJournalRepository.getJournalsForTag(tagId)\n        .then((journals) => {\n          commit(\"SET_JOURNALS\", journals.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n          return [];\n        });\n    },\n\n    async getJournalByTagJournalId(\n      { dispatch, commit, rootState },\n      tagJournalId\n    ) {\n      return await TagJournalRepository.getJournalByTagJournalId(tagJournalId)\n        .then((journals) => {\n          commit(\"SET_JOURNALS\", journals.data);\n          commit(\"LOADING\", false);\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n          dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n          commit(\"LOADING\", false);\n          return [];\n        });\n    },\n\n    async createJournal({ dispatch, commit, rootState }, payload) {\n      commit(\"LOADING\", true);\n\n      return TagJournalRepository.createJournal(payload)\n        .then((journal) => {\n          commit(\"SET_CURRENT_JOURNAL\", journal.data);\n          commit(\"CLEAR_ERRORS\");\n\n          // Return the journal data\n          return journal.data;\n        })\n        .catch((res) => {\n          commit(\"SET_ERRORS\", res.response.data.errors);\n\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n          commit(\"LOADING\", false);\n          return [];\n        });\n    },\n\n    async updateJournal(\n      { dispatch, commit, rootState },\n      { tagJournalId, payload }\n    ) {\n      commit(\"LOADING\", true);\n\n      return TagJournalRepository.updateJournal(tagJournalId, payload)\n        .then((journal) => {\n          commit(\"SET_CURRENT_JOURNAL\", journal.data);\n          commit(\"CLEAR_ERRORS\");\n\n          // Return the journal data\n          return journal.data;\n        })\n        .catch((res) => {\n          commit(\"SET_ERRORS\", res.response.data.errors);\n\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n          commit(\"LOADING\", false);\n          return [];\n        });\n    },\n\n    async deleteJournal({ dispatch, commit, rootState }, tagJournalId) {\n      return TagJournalRepository.deleteJournal(tagJournalId)\n        .then(() => {\n          // Update local state to remove the deleted journal\n          commit(\"REMOVE_JOURNAL_ENTRY\", tagJournalId);\n\n          dispatch(\"alert/success\", i18n.t(\"common.deleted\"), { root: true });\n          return true;\n        })\n        .catch((res) => {\n          if (res.response.status === 401) {\n            return dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            ).then(() => {\n              // Continue with the error handling after re-authentication\n              return false;\n            });\n          } else {\n            dispatch(\"alert/error\", i18n.t(\"common.error\"), { root: true });\n            return false;\n          }\n        });\n    },\n\n    resetState({ commit }) {\n      commit(\"RESET_STATE\");\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n\n    SET_JOURNALS(state, journals) {\n      state.journals = journals;\n    },\n\n    SET_CURRENT_JOURNAL(state, journal) {\n      state.currentJournal = journal;\n    },\n\n    SET_ERRORS(state, errors) {\n      state.apiErrors = errors;\n    },\n\n    CLEAR_ERRORS(state) {\n      state.apiErrors = [];\n    },\n\n    RESET_STATE(state) {\n      state.currentJournal = {};\n      state.journals = [];\n      state.status.loading = false;\n    },\n\n    REMOVE_JOURNAL_ENTRY(state, tagJournalId) {\n      state.journals = state.journals.filter(\n        (journal) => journal.tagJournalId !== tagJournalId\n      );\n    },\n  },\n};\n","import { RepositoryFactory } from \"../../api/RepositoryFactory\";\n\nconst TagJournalFileRepository = RepositoryFactory.get(\"tagJournalFile\");\n\nexport const tagJournalFile = {\n  namespaced: true,\n  state: {\n    files: [],\n    status: {\n      loading: false,\n    },\n    apiErrors: [],\n  },\n\n  actions: {\n    async uploadJournalFile({ dispatch, commit, rootState }, payload) {\n      commit(\"LOADING\", true);\n\n      return await TagJournalFileRepository.uploadJournalFile(payload)\n        .then((response) => {\n          commit(\"LOADING\", false);\n\n          // Return the response data\n          return response.data;\n        })\n        .catch((res) => {\n          commit(\"LOADING\", false);\n\n          if (res.response.status === 401) {\n            dispatch(\n              \"users/login\",\n              {\n                email: rootState.users.credentials.email,\n                password: rootState.users.credentials.password,\n              },\n              { root: true }\n            );\n          }\n          commit(\"LOADING\", false);\n          return [];\n        });\n    },\n  },\n\n  mutations: {\n    LOADING(state, status) {\n      state.status.loading = status;\n    },\n  },\n};\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport { accessTokens } from \"./modules/accessToken\";\nimport { actions } from \"./modules/action\";\nimport { alarms } from \"./modules/alarm\";\nimport { alert } from \"./modules/alert\";\nimport { applications } from \"./modules/application\";\nimport { contacts } from \"./modules/contact\";\nimport { camOnline } from \"./modules/camOnline\";\nimport { companies } from \"./modules/company\";\nimport { configuration } from \"./modules/configuration\";\nimport { dashboards } from \"./modules/dashboard\";\nimport { downlinks } from \"./modules/downlinks\";\nimport { event } from \"./modules/event\";\nimport { featureAccess } from \"./modules/featureAccess\";\nimport { gateways } from \"./modules/gateway\";\nimport { languages } from \"./modules/language\";\nimport { logs } from \"./modules/log\";\nimport { modbus } from \"./modules/modbus\";\nimport { modules } from \"./modules/modules\";\nimport { mqtt } from \"./modules/mqtt\";\nimport { notifications } from \"./modules/notification\";\nimport { opc } from \"./modules/opc\";\nimport { reports } from \"./modules/report\";\nimport { roles } from \"./modules/roles\";\nimport { scripts } from \"./modules/scripts\";\nimport { settings } from \"./modules/settings\";\nimport { signalTests } from \"./modules/signalTest\";\nimport { slots } from \"./modules/slots\";\nimport { tag } from \"./modules/tag\";\nimport { tagData } from \"./modules/tagdata\";\nimport { templateDashboard } from \"./modules/templateDashboard\";\nimport { users } from \"./modules/user\";\nimport { tagJournal } from \"./modules/tagJournal\";\nimport { tagJournalFile } from \"./modules/tagJournalFile\";\n\nimport createPersistedState from \"vuex-persistedstate\";\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n  modules: {\n    actions: actions,\n    accessTokens: accessTokens,\n    alarms: alarms,\n    alert: alert,\n    applications: applications,\n    contacts: contacts,\n    camOnline: camOnline,\n    companies: companies,\n    configuration: configuration,\n    dashboards: dashboards,\n    downlinks: downlinks,\n    event: event,\n    featureAccess: featureAccess,\n    gateways: gateways,\n    languages: languages,\n    logs: logs,\n    modbus: modbus,\n    modules: modules,\n    mqtt: mqtt,\n    notifications: notifications,\n    opc: opc,\n    reports: reports,\n    roles: roles,\n    scripts: scripts,\n    settings: settings,\n    signalTests: signalTests,\n    slots: slots,\n    tag: tag,\n    tagData: tagData,\n    templateDashboard: templateDashboard,\n    users: users,\n    tagJournal: tagJournal,\n    tagJournalFile: tagJournalFile,\n  },\n  plugins: [createPersistedState()],\n});\n","import Repository from \"../Repository\";\nimport { apiConfig, getAuthHeader } from \"../../_helpers/apiHelper\";\n\nconst resource = \"/license\";\n\nexport default {\n  getLicenses() {\n    return Repository.get(resource, apiConfig());\n  },\n\n  getTerms() {\n    return Repository.get(`${resource}/terms`, apiConfig());\n  },\n\n  uploadLicense(user, license) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(`${resource}/upload`, license, config);\n  },\n\n  activate(user, licenseId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.put(`${resource}/activate/${licenseId}`, null, config);\n  },\n\n  removeLicense(user, licenseId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.delete(`${resource}/remove/${licenseId}`, config);\n  },\n\n  getCompanyLimitations(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/companies`, config);\n  },\n\n  createOrUpdateCompanyLimitation(\n    user,\n    companyId,\n    maxGateways = 0,\n    maxNodes = 0\n  ) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.post(\n      `${resource}/company/${companyId}/${maxGateways}/${maxNodes}`,\n      null,\n      config\n    );\n  },\n\n  getLicenseServerMeta(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/meta`, config);\n  },\n\n  canCreate(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/can-create/${companyId}`, config);\n  },\n\n  nodesLeftForCompany(user, companyId) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/nodes-left/${companyId}`, config);\n  },\n\n  getUserAcceptedTos(email) {\n    return Repository.get(`${resource}/tos/${email}`, apiConfig());\n  },\n\n  acceptTos(email) {\n    return Repository.put(`${resource}/tos/${email}`, null, apiConfig());\n  },\n};\n","import Repository from \"../Repository\";\nimport { apiConfig, getAuthHeader } from \"../../_helpers/apiHelper\";\nimport metricHelper from \"../../_helpers/metricHelper\";\n\nconst resource = \"/tag\";\nconst tagDataResource = \"/tagdata\";\n\nexport default {\n  get(user) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/tagdata`, config);\n  },\n\n  getKeys(user, company) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/tagdata/keys/${company}`, config);\n  },\n\n  getTrendDataForTag(tagId, tagKey, metrics) {\n    return Repository.get(\n      `${resource}/${tagId}/trend/${tagKey}${metrics}`,\n      apiConfig()\n    );\n  },\n\n  getCurrentTagdata(tagId, tagKey) {\n    return Repository.get(`${resource}/latest/${tagId}/${tagKey}`, apiConfig());\n  },\n\n  getCurrentForTags(tagIds, tagKey) {\n    let queries = {\n      deveuis: tagIds,\n      key: tagKey,\n    };\n\n    return Repository.get(\n      `${tagDataResource}/currents${metricHelper.getMetricsUrlParams(queries)}`,\n      apiConfig()\n    );\n  },\n\n  getCurrentsMultiKey(tagId, tagKeys) {\n    return Repository.get(\n      `${tagDataResource}/currents/${tagId}${metricHelper.getMetricsUrlParams({\n        keys: tagKeys,\n      })}`,\n      apiConfig()\n    );\n  },\n\n  getCurrentsForDevice(user, deveui) {\n    var config = {\n      headers: getAuthHeader(user),\n    };\n\n    return Repository.get(`${resource}/${deveui}/currents`, config);\n  },\n\n  // tagsWithKeys expected structure:\n  // [\n  //   {deveui: \"example-deveui\", key: \"example-key\"},\n  //   {deveui: \"example-deveui-2\", key: \"example-key-2\"},\n  // ]\n  //\n  // We expect the from and to dates to be URI encoded already\n  getTimeSeriesTagData(tagsWithKeys, from, to) {\n    return Repository.post(\n      `${tagDataResource}/timeseries/${from}/${to}`,\n      tagsWithKeys,\n      apiConfig()\n    );\n  },\n\n  getTimeSeriesTagDataSingle(deveui, key, from, to) {\n    return Repository.get(\n      `${tagDataResource}/timeseries/${deveui}/${key}/${from}/${to}`,\n      apiConfig()\n    );\n  },\n\n  getCurrentsMultiTagAndKey(deveuisAndKeys) {\n    return Repository.post(\n      `${tagDataResource}/currents`,\n      deveuisAndKeys,\n      apiConfig()\n    );\n  },\n\n  getTagdataWithLimit(deveuisAndKeys, limit) {\n    return Repository.post(\n      `${tagDataResource}/limit/${limit}`,\n      deveuisAndKeys,\n      apiConfig()\n    );\n  },\n};\n","import Repository from \"../Repository\";\nimport { apiConfig } from \"../../_helpers/apiHelper\";\nimport store from \"../../stores/store\";\n\nconst resource = \"/tagJournal\";\n\nexport default {\n  getJournalsForTag(tagId, sortorder = \"desc\") {\n    if (tagId == undefined) return [];\n\n    let user = store.state?.users?.currentUser;\n    if (!user) return [];\n\n    return Repository.get(\n      `${resource}/tag/${tagId}?sortOrder=${sortorder}`,\n      apiConfig()\n    )\n      .then((d) => d.data)\n      .catch((d) => console.error(d));\n  },\n\n  getJournalByTagJournalId(tagJournalId) {\n    if (tagJournalId == undefined) return [];\n\n    let user = store.state?.users?.currentUser;\n    if (!user) return [];\n\n    return Repository.get(`${resource}/${tagJournalId}`, apiConfig());\n  },\n\n  createJournal(payload) {\n    return Repository.post(\n      `${resource}/${payload.deveui}`,\n      payload,\n      apiConfig()\n    );\n  },\n\n  updateJournal(tagJournalId, payload) {\n    return Repository.put(\n      `${resource}/update/${tagJournalId}`,\n      payload,\n      apiConfig()\n    );\n  },\n\n  deleteJournal(tagJournalId) {\n    return Repository.delete(`${resource}/delete/${tagJournalId}`, apiConfig());\n  },\n};\n","export default {\n  getMetricsUrlParams(metrics) {\n    var params = [];\n\n    for (var k in metrics) {\n      if (Array.isArray(metrics[k])) {\n        params.push(`${k}=${metrics[k].map((v) => encodeURIComponent(v)).join(\",\")}`);\n      } else {\n        params.push(`${k}=${encodeURIComponent(metrics[k])}`);\n      }\n    }\n\n    return \"?\" + params.join(\"&\");\n  }\n};\n","import Repository from \"../Repository\";\r\nimport { getAuthHeader } from \"../../_helpers/apiHelper\";\r\n\r\nconst resource = \"/integration\";\r\nconst tokenResource = \"/integration/tokens\";\r\n\r\nexport default {\r\n  getAccessTokens(user, companyId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.get(`${tokenResource}/${companyId}`, config);\r\n  },\r\n\r\n  deleteToken(user, tokenId) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.delete(`${tokenResource}/${tokenId}`, config);\r\n  },\r\n\r\n  createToken(user, companyId, payload) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.post(`${tokenResource}/${companyId}`, payload, config);\r\n  },\r\n\r\n  seedNordpool(user, year, month, day) {\r\n    var config = {\r\n      headers: getAuthHeader(user),\r\n    };\r\n\r\n    return Repository.post(\r\n      `${resource}/nordpool/${year}/${month}/${day}`,\r\n      null,\r\n      config\r\n    );\r\n  },\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"tree-container\"},[_c('v-row',{staticStyle:{\"max-width\":\"100%\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"9\",\"xs\":\"9\"}},[_c('sl-vue-tree',{ref:\"tree\",on:{\"dragend\":() => {},\"nodecontextmenu\":_vm.onNodeRightClicked,\"input\":_vm.updateIndexes},scopedSlots:_vm._u([{key:\"title\",fn:function({ node }){return [_c('span',{staticClass:\"item-icon\"},[_c('v-icon',{attrs:{\"color\":node.isLeaf\n                  ? 'green'\n                  : node.data.color\n                  ? node.data.color\n                  : 'primary'}},[_vm._v(_vm._s(node.data.icon))])],1),(node.isLeaf)?_c('span',{attrs:{\"href\":'dashboard/' + node.data.dashboardId},on:{\"click\":function($event){return _vm.goToDashboard(node.data.dashboardId)}}},[_vm._v(\" \"+_vm._s(node.title))]):_c('span',[_vm._v(\" \"+_vm._s(node.title))])]}},{key:\"toggle\",fn:function({ node }){return [(!node.isLeaf)?_c('span',[(node.isExpanded)?_c('v-icon',[_vm._v(\"mdi-chevron-down\")]):_vm._e(),(!node.isExpanded)?_c('v-icon',[_vm._v(\"mdi-chevron-right\")]):_vm._e()],1):_vm._e()]}}]),model:{value:(_vm.categories),callback:function ($$v) {_vm.categories=$$v},expression:\"categories\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\",\"xs\":\"3\"}},[(_vm.permitted('Dashboard.Update'))?_c('v-switch',{staticClass:\"mr-2 ml-2\",attrs:{\"inset\":\"\",\"label\":_vm.$t('common.edit')},model:{value:(_vm.editMode),callback:function ($$v) {_vm.editMode=$$v},expression:\"editMode\"}}):_vm._e()],1)],1),(_vm.permitted('Dashboard.Update'))?_c('v-menu',{attrs:{\"position-x\":_vm.x,\"position-y\":_vm.y,\"absolute\":\"\",\"offset-y\":\"\"},model:{value:(_vm.showMenu),callback:function ($$v) {_vm.showMenu=$$v},expression:\"showMenu\"}},[_c('v-list',_vm._l((_vm.displayActions),function(item,index){return _c('v-list-item',{key:index,attrs:{\"link\":\"\"},on:{\"click\":item.action}},[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)}),1)],1):_vm._e(),_c('v-dialog',{attrs:{\"max-width\":\"600\",\"persistent\":\"\"},model:{value:(_vm.showCreateDialog),callback:function ($$v) {_vm.showCreateDialog=$$v},expression:\"showCreateDialog\"}},[_c('v-card',[_c('v-card-title',[_c('span',[_vm._v(_vm._s(_vm.$t(\"dashboard.categories.create\")))])]),_c('v-form',{attrs:{\"lazy-validation\":true},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleCreate.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":_vm.$t('dashboard.categories.title')},model:{value:(_vm.payload.title),callback:function ($$v) {_vm.$set(_vm.payload, \"title\", $$v)},expression:\"payload.title\"}})],1),_c('v-card-text',[_c('v-color-picker',{attrs:{\"dot-size\":\"25\",\"hide-canvas\":\"\",\"hide-mode-switch\":\"\",\"show-swatches\":\"\",\"mode\":\"hexa\",\"swatches-max-height\":\"200\"},model:{value:(_vm.color),callback:function ($$v) {_vm.color=$$v},expression:\"color\"}})],1),_c('v-card-text',[_c('IconSelector',{attrs:{\"icon\":_vm.payload.icon,\"open\":true,\"color\":_vm.payload.color},on:{\"update\":(v) => {\n                _vm.payload.icon = v;\n              }}})],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary lighten-1\",\"text\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.showCreateDialog = false}}},[_vm._v(_vm._s(_vm.$t(\"common.close\"))+\" \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\",\"type\":\"submit\",\"x-large\":\"\"}},[_vm._v(_vm._s(_vm.$t(\"common.save\"))+\" \")])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"450\"},model:{value:(_vm.showRemoveDialog),callback:function ($$v) {_vm.showRemoveDialog=$$v},expression:\"showRemoveDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.verify\"))+\" \")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary lighten-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.showRemoveDialog = false}}},[_vm._v(_vm._s(_vm.$t(\"common.close\"))+\" \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.deleteConfirmed}},[_vm._v(_vm._s(_vm.$t(\"common.yes\"))+\" \")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"450\"},model:{value:(_vm.showDashboardCreateOrCopy),callback:function ($$v) {_vm.showDashboardCreateOrCopy=$$v},expression:\"showDashboardCreateOrCopy\"}},[_c('v-card',[_c('v-card-title',[_c('span',[_vm._v(_vm._s(_vm.$t(\"dashboard.createTitleClean\")))])]),(!_vm.typeSelected && !_vm.copy)?_c('v-card-text',[_c('div',{staticClass:\"d-flex justify-space-around\"},[_c('div',{staticClass:\"d-flex flex-column justify-center rounded border text-center pa-4\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){_vm.typeSelected = true}}},[_c('h4',[_vm._v(_vm._s(_vm.$t(\"dashboard.dashboardType.1\")))]),_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-view-dashboard-outline\")])],1),(_vm.canAccessFeature(_vm.FEATURES.MAP_DASHBOARD))?_c('div',{staticClass:\"d-flex flex-column justify-center rounded border text-center pa-4\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":_vm.navigateToDbMapCreate}},[_c('h4',[_vm._v(_vm._s(_vm.$t(\"dashboard.dashboardType.2\")))]),_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-map\")])],1):_vm._e()])]):_c('v-form',{attrs:{\"lazy-validation\":true},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleDashboardCopyOrCreate.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":_vm.$t('dashboard.fields.name')},model:{value:(_vm.dashboardName),callback:function ($$v) {_vm.dashboardName=$$v},expression:\"dashboardName\"}})],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary lighten-1\",\"text\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.showDashboardCreateOrCopy = false}}},[_vm._v(_vm._s(_vm.$t(\"common.close\"))+\" \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\",\"type\":\"submit\",\"x-large\":\"\"}},[_vm._v(_vm._s(_vm.$t(\"common.save\"))+\" \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"icon-selector\",staticStyle:{\"max-height\":\"200px\",\"overflow-y\":\"scroll\"}},[_c('p',{staticStyle:{\"width\":\"100%\",\"cursor\":\"pointer\",\"margin\":\"0\"},on:{\"click\":_vm.toggleDisplay}},[_c('v-icon',{attrs:{\"color\":_vm.color}},[_vm._v(_vm._s(_vm.iconValue))]),_vm._v(\" \"+_vm._s(_vm.$t(\"common.iconSelector.selectIcon\"))+\" \")],1),(_vm.display)?_c('v-container',{staticStyle:{\"max-width\":\"600px\",\"height\":\"201px\"}},[_c('v-text-field',{attrs:{\"color\":\"white\",\"dark\":\"\",\"placeholder\":_vm.$t('common.iconSelector.searchPlaceholder'),\"append-outer-icon\":\"mdi-search\"},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_vm._l((_vm.icons),function(v,i){return _c('v-icon',{key:i,attrs:{\"color\":_vm.color},on:{\"click\":function($event){return _vm.setValue(v)}}},[_vm._v(_vm._s(v))])})],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <v-container\r\n    style=\"max-height: 200px; overflow-y: scroll\"\r\n    class=\"icon-selector\"\r\n  >\r\n    <p @click=\"toggleDisplay\" style=\"width: 100%; cursor: pointer; margin: 0\">\r\n      <v-icon :color=\"color\">{{ iconValue }}</v-icon>\r\n      {{ $t(\"common.iconSelector.selectIcon\") }}\r\n    </p>\r\n    <v-container v-if=\"display\" style=\"max-width: 600px; height: 201px\">\r\n      <v-text-field\r\n        v-model=\"searchTerm\"\r\n        color=\"white\"\r\n        dark\r\n        :placeholder=\"$t('common.iconSelector.searchPlaceholder')\"\r\n        append-outer-icon=\"mdi-search\"\r\n      ></v-text-field>\r\n      <v-icon\r\n        v-for=\"(v, i) in icons\"\r\n        :key=\"i\"\r\n        :color=\"color\"\r\n        @click=\"setValue(v)\"\r\n        >{{ v }}</v-icon\r\n      >\r\n    </v-container>\r\n  </v-container>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: \"IconSelector\",\r\n  props: {\r\n    icon: { default: \"mdi-shape-outline\" },\r\n    open: { default: false },\r\n    color: { default: \"accent\" },\r\n  },\r\n  data() {\r\n    return {\r\n      searchTerm: \"\",\r\n      iconValue: \"mdi-shape\",\r\n      display: false,\r\n      page: 0,\r\n      avaliableIcons: [\r\n        \"mdi-access-point-check\",\r\n        \"mdi-access-point-network\",\r\n        \"mdi-access-point\",\r\n        \"mdi-account-box\",\r\n        \"mdi-account-cash\",\r\n        \"mdi-account-check\",\r\n        \"mdi-account-circle\",\r\n        \"mdi-account-supervisor-circle-outline\",\r\n        \"mdi-account-supervisor-circle\",\r\n        \"mdi-account\",\r\n        \"mdi-account\",\r\n        \"mdi-air-conditioner\",\r\n        \"mdi-alarm-light-off\",\r\n        \"mdi-alarm-light\",\r\n        \"mdi-alarm-multiple\",\r\n        \"mdi-alarm-panel\",\r\n        \"mdi-alert\",\r\n        \"mdi-align-horizontal-center\",\r\n        \"mdi-align-horizontal-left\",\r\n        \"mdi-align-horizontal-right\",\r\n        \"mdi-align-vertical-bottom\",\r\n        \"mdi-align-vertical-center\",\r\n        \"mdi-align-vertical-top\",\r\n        \"mdi-all-inclusive\",\r\n        \"mdi-android-messages\",\r\n        \"mdi-antenna\",\r\n        \"mdi-application-array\",\r\n        \"mdi-application-braces\",\r\n        \"mdi-application\",\r\n        \"mdi-arrange-send-backward\",\r\n        \"mdi-arrow-decision-outline\",\r\n        \"mdi-arrow-decision\",\r\n        \"mdi-arrow-down-bold-circle\",\r\n        \"mdi-arrow-down-thick\",\r\n        \"mdi-arrow-expand-all\",\r\n        \"mdi-arrow-left-bold-circle\",\r\n        \"mdi-arrow-left-thick\",\r\n        \"mdi-arrow-right-bold-circle\",\r\n        \"mdi-arrow-right-thick\",\r\n        \"mdi-arrow-up-bold-circle\",\r\n        \"mdi-arrow-up-thick\",\r\n        \"mdi-coolant-temperature\",\r\n        \"mdi-database-check\",\r\n        \"mdi-database-edit\",\r\n        \"mdi-database-export\",\r\n        \"mdi-database\",\r\n        \"mdi-desktop-mac-dashboard-outline\",\r\n        \"mdi-desktop-mac-dashboard\",\r\n        \"mdi-flash\",\r\n        \"mdi-folder-marker\",\r\n        \"mdi-folder\",\r\n        \"mdi-home-city-outline\",\r\n        \"mdi-home-city\",\r\n        \"mdi-home-roof\",\r\n        \"mdi-home\",\r\n        \"mdi-map-marker\",\r\n        \"mdi-marker-distance\",\r\n        \"mdi-opacity\",\r\n        \"mdi-palette-outline\",\r\n        \"mdi-speedometer\",\r\n        \"mdi-temperature-celsius\",\r\n        \"mdi-temperature-fahrenheit\",\r\n        \"mdi-temperature-kelvin\",\r\n        \"mdi-vector-arrange-above\",\r\n        \"mdi-vector-arrange-below\",\r\n        \"mdi-vector-difference-ab\",\r\n        \"mdi-vector-square\",\r\n        \"mdi-vector-union\",\r\n        \"mdi-view-dashboard-outline\",\r\n        \"mdi-view-dashboard-variant-outline\",\r\n        \"mdi-view-dashboard-variant\",\r\n        \"mdi-view-dashboard\",\r\n        \"mdi-weather-cloudy\",\r\n        \"mdi-weather-cloudy\",\r\n        \"mdi-weather-fog\",\r\n        \"mdi-weather-lightning-rainy\",\r\n        \"mdi-weather-lightning\",\r\n        \"mdi-weather-partly-cloudy\",\r\n        \"mdi-weather-partly-cloudy\",\r\n        \"mdi-weather-partly-cloudy\",\r\n        \"mdi-weather-pouring\",\r\n        \"mdi-weather-pouring\",\r\n        \"mdi-weather-rainy\",\r\n        \"mdi-weather-rainy\",\r\n        \"mdi-weather-rainy\",\r\n        \"mdi-weather-rainy\",\r\n        \"mdi-weather-snowy-rainy\",\r\n        \"mdi-weather-snowy-rainy\",\r\n        \"mdi-weather-snowy-rainy\",\r\n        \"mdi-weather-snowy-rainy\",\r\n        \"mdi-weather-snowy-rainy\",\r\n        \"mdi-weather-snowy-rainy\",\r\n        \"mdi-weather-snowy-rainy\",\r\n        \"mdi-weather-snowy\",\r\n        \"mdi-weather-snowy\",\r\n        \"mdi-weather-snowy\",\r\n        \"mdi-weather-snowy\",\r\n        \"mdi-weather-snowy\",\r\n        \"mdi-weather-sunny\",\r\n        \"mdi-weather-sunny\",\r\n      ],\r\n    };\r\n  },\r\n\r\n  computed: {\r\n    icons() {\r\n      if (this.searchTerm != \"\" && this.searchTerm != null)\r\n        return this.avaliableIcons.filter((e) => e.includes(this.searchTerm));\r\n      return this.avaliableIcons;\r\n    },\r\n  },\r\n\r\n  methods: {\r\n    setValue(v) {\r\n      this.iconValue = v;\r\n      this.$emit(\"update\", v);\r\n    },\r\n\r\n    toggleDisplay() {\r\n      this.display = !this.display;\r\n    },\r\n  },\r\n\r\n  watch: {\r\n    icon(v) {\r\n      this.iconValue = v;\r\n    },\r\n\r\n    open(v) {\r\n      this.display = v;\r\n    },\r\n  },\r\n};\r\n</script>\r\n\r\n<style>\r\n.icon-selector {\r\n  background-color: #252525;\r\n  color: white;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconSelector.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconSelector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IconSelector.vue?vue&type=template&id=1e496a69\"\nimport script from \"./IconSelector.vue?vue&type=script&lang=js\"\nexport * from \"./IconSelector.vue?vue&type=script&lang=js\"\nimport style0 from \"./IconSelector.vue?vue&type=style&index=0&id=1e496a69&prod&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","<template>\r\n  <div class=\"tree-container\">\r\n    <v-row style=\"max-width: 100%\">\r\n      <v-col cols=\"12\" md=\"9\" xs=\"9\">\r\n        <sl-vue-tree\r\n          v-model=\"categories\"\r\n          @dragend=\"() => {}\"\r\n          @nodecontextmenu=\"onNodeRightClicked\"\r\n          ref=\"tree\"\r\n          @input=\"updateIndexes\"\r\n        >\r\n          <template slot=\"title\" slot-scope=\"{ node }\">\r\n            <span class=\"item-icon\">\r\n              <v-icon\r\n                :color=\"\r\n                  node.isLeaf\r\n                    ? 'green'\r\n                    : node.data.color\r\n                    ? node.data.color\r\n                    : 'primary'\r\n                \"\r\n                >{{ node.data.icon }}</v-icon\r\n              >\r\n            </span>\r\n\r\n            <span\r\n              v-if=\"node.isLeaf\"\r\n              @click=\"goToDashboard(node.data.dashboardId)\"\r\n              :href=\"'dashboard/' + node.data.dashboardId\"\r\n            >\r\n              {{ node.title }}</span\r\n            >\r\n            <span v-else> {{ node.title }}</span>\r\n          </template>\r\n\r\n          <template slot=\"toggle\" slot-scope=\"{ node }\">\r\n            <span v-if=\"!node.isLeaf\">\r\n              <v-icon v-if=\"node.isExpanded\">mdi-chevron-down</v-icon>\r\n              <v-icon v-if=\"!node.isExpanded\">mdi-chevron-right</v-icon>\r\n            </span>\r\n          </template>\r\n        </sl-vue-tree>\r\n      </v-col>\r\n\r\n      <v-col cols=\"12\" md=\"3\" xs=\"3\">\r\n        <v-switch\r\n          v-model=\"editMode\"\r\n          inset\r\n          :label=\"$t('common.edit')\"\r\n          v-if=\"permitted('Dashboard.Update')\"\r\n          class=\"mr-2 ml-2\"\r\n        ></v-switch>\r\n      </v-col>\r\n    </v-row>\r\n\r\n    <v-menu\r\n      v-model=\"showMenu\"\r\n      :position-x=\"x\"\r\n      :position-y=\"y\"\r\n      absolute\r\n      offset-y\r\n      v-if=\"permitted('Dashboard.Update')\"\r\n    >\r\n      <v-list>\r\n        <v-list-item\r\n          link\r\n          @click=\"item.action\"\r\n          v-for=\"(item, index) in displayActions\"\r\n          :key=\"index\"\r\n        >\r\n          <v-list-item-title>{{ item.title }}</v-list-item-title>\r\n        </v-list-item>\r\n      </v-list>\r\n    </v-menu>\r\n\r\n    <v-dialog v-model=\"showCreateDialog\" max-width=\"600\" persistent>\r\n      <v-card>\r\n        <v-card-title>\r\n          <span>{{ $t(\"dashboard.categories.create\") }}</span>\r\n        </v-card-title>\r\n        <v-form\r\n          :lazy-validation=\"true\"\r\n          @submit.prevent=\"handleCreate\"\r\n          v-model=\"valid\"\r\n        >\r\n          <v-card-text>\r\n            <v-text-field\r\n              v-model=\"payload.title\"\r\n              :label=\"$t('dashboard.categories.title')\"\r\n            ></v-text-field>\r\n          </v-card-text>\r\n\r\n          <v-card-text>\r\n            <v-color-picker\r\n              v-model=\"color\"\r\n              dot-size=\"25\"\r\n              hide-canvas\r\n              hide-mode-switch\r\n              show-swatches\r\n              mode=\"hexa\"\r\n              swatches-max-height=\"200\"\r\n            ></v-color-picker>\r\n          </v-card-text>\r\n\r\n          <v-card-text>\r\n            <IconSelector\r\n              :icon=\"payload.icon\"\r\n              :open=\"true\"\r\n              :color=\"payload.color\"\r\n              v-on:update=\"\r\n                (v) => {\r\n                  payload.icon = v;\r\n                }\r\n              \"\r\n            />\r\n          </v-card-text>\r\n\r\n          <v-card-actions>\r\n            <v-spacer></v-spacer>\r\n            <v-btn\r\n              color=\"primary lighten-1\"\r\n              text\r\n              @click=\"showCreateDialog = false\"\r\n              x-large\r\n              >{{ $t(\"common.close\") }}\r\n            </v-btn>\r\n            <v-btn color=\"primary\" text type=\"submit\" x-large\r\n              >{{ $t(\"common.save\") }}\r\n            </v-btn>\r\n          </v-card-actions>\r\n        </v-form>\r\n      </v-card>\r\n    </v-dialog>\r\n\r\n    <v-dialog v-model=\"showRemoveDialog\" max-width=\"450\">\r\n      <v-card>\r\n        <v-card-title class=\"headline\">\r\n          {{ $t(\"common.verify\") }}\r\n        </v-card-title>\r\n\r\n        <v-card-actions>\r\n          <v-spacer></v-spacer>\r\n\r\n          <v-btn\r\n            color=\"primary lighten-1\"\r\n            text\r\n            @click=\"showRemoveDialog = false\"\r\n            >{{ $t(\"common.close\") }}\r\n          </v-btn>\r\n\r\n          <v-btn color=\"primary\" text @click=\"deleteConfirmed\"\r\n            >{{ $t(\"common.yes\") }}\r\n          </v-btn>\r\n        </v-card-actions>\r\n      </v-card>\r\n    </v-dialog>\r\n\r\n    <v-dialog v-model=\"showDashboardCreateOrCopy\" max-width=\"450\">\r\n      <v-card>\r\n        <v-card-title>\r\n          <span>{{ $t(\"dashboard.createTitleClean\") }}</span>\r\n        </v-card-title>\r\n        <v-card-text v-if=\"!typeSelected && !copy\">\r\n          <div class=\"d-flex justify-space-around\">\r\n            <div\r\n              class=\"d-flex flex-column justify-center rounded border text-center pa-4\"\r\n              style=\"cursor: pointer\"\r\n              @click=\"typeSelected = true\"\r\n            >\r\n              <h4>{{ $t(\"dashboard.dashboardType.1\") }}</h4>\r\n              <v-icon color=\"primary\">mdi-view-dashboard-outline</v-icon>\r\n            </div>\r\n\r\n            <div\r\n              v-if=\"canAccessFeature(FEATURES.MAP_DASHBOARD)\"\r\n              @click=\"navigateToDbMapCreate\"\r\n              class=\"d-flex flex-column justify-center rounded border text-center pa-4\"\r\n              style=\"cursor: pointer\"\r\n            >\r\n              <h4>{{ $t(\"dashboard.dashboardType.2\") }}</h4>\r\n              <v-icon color=\"primary\">mdi-map</v-icon>\r\n            </div>\r\n          </div>\r\n        </v-card-text>\r\n        <v-form\r\n          v-else\r\n          :lazy-validation=\"true\"\r\n          @submit.prevent=\"handleDashboardCopyOrCreate\"\r\n          v-model=\"valid\"\r\n        >\r\n          <v-card-text>\r\n            <v-text-field\r\n              v-model=\"dashboardName\"\r\n              :label=\"$t('dashboard.fields.name')\"\r\n            ></v-text-field>\r\n          </v-card-text>\r\n\r\n          <v-card-actions>\r\n            <v-spacer></v-spacer>\r\n            <v-btn\r\n              color=\"primary lighten-1\"\r\n              text\r\n              @click=\"showDashboardCreateOrCopy = false\"\r\n              x-large\r\n              >{{ $t(\"common.close\") }}\r\n            </v-btn>\r\n            <v-btn color=\"primary\" text type=\"submit\" x-large\r\n              >{{ $t(\"common.save\") }}\r\n            </v-btn>\r\n          </v-card-actions>\r\n        </v-form>\r\n      </v-card>\r\n    </v-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapState } from \"vuex\";\r\nimport IconSelector from \"@/components/common/IconSelector\";\r\nimport { Roles } from \"@/_helpers/Role\";\r\nimport SlVueTree from \"sl-vue-tree\";\r\n\r\nexport default {\r\n  name: \"DashboardCategoryViewer\",\r\n  data() {\r\n    return {\r\n      x: 0,\r\n      y: 0,\r\n      valid: false,\r\n      edit: false,\r\n      copy: false,\r\n      showMenu: false,\r\n      isDashboard: false,\r\n      showCreateDialog: false,\r\n      showRemoveDialog: false,\r\n      showDashboardCreateOrCopy: false,\r\n      editMode: false,\r\n      color: \"#2196F3\",\r\n      dashboardName: \"\",\r\n      typeSelected: false,\r\n      payload: {\r\n        title: \"\",\r\n        icon: \"mdi-shape-outline\",\r\n        color: \"#2196F3\",\r\n      },\r\n      currentNode: {},\r\n      categories: [],\r\n      actions: [\r\n        {\r\n          title: this.$t(\"common.actions.createCategory\"),\r\n          action: this.createAction,\r\n          display: [true, true],\r\n        },\r\n        {\r\n          title: this.$t(\"common.actions.editCategory\"),\r\n          action: this.editAction,\r\n          display: [true, false],\r\n        },\r\n        {\r\n          title: this.$t(\"common.actions.createDashboard\"),\r\n          action: this.createDashboardAction,\r\n          display: [true, true],\r\n        },\r\n        {\r\n          title: this.$t(\"common.actions.copyDashboard\"),\r\n          action: this.copyDashboardAction,\r\n          display: [false, true],\r\n        },\r\n        {\r\n          title: this.$t(\"common.actions.remove\"),\r\n          action: this.removeAction,\r\n          display: [true, true],\r\n        },\r\n      ],\r\n    };\r\n  },\r\n\r\n  computed: {\r\n    ...mapState(\"dashboards\", { storeCategories: \"categories\" }),\r\n\r\n    displayActions() {\r\n      return this.actions.filter((element) =>\r\n        this.shouldDisplay(element.display)\r\n      );\r\n    },\r\n\r\n    Roles() {\r\n      return Roles;\r\n    },\r\n  },\r\n\r\n  methods: {\r\n    ...mapActions(\"dashboards\", [\r\n      \"getDashboardCategories\",\r\n      \"createDashboardCategories\",\r\n      \"updateDashboardCategories\",\r\n      \"updateDashboardCategoryIndexes\",\r\n      \"removeDashboardCategory\",\r\n      \"delete\",\r\n      \"create\",\r\n      \"duplicate\",\r\n    ]),\r\n\r\n    createAction() {\r\n      this.color = \"#2196F3\";\r\n      this.showCreateDialog = true;\r\n      this.showMenu = false;\r\n      this.edit = false;\r\n    },\r\n\r\n    editAction() {\r\n      this.payload.title = this.currentNode.title;\r\n      this.payload.icon = this.currentNode.data.icon;\r\n      this.payload.color = this.currentNode.data.color;\r\n      this.color = this.payload.color;\r\n      this.showCreateDialog = true;\r\n      this.showMenu = false;\r\n      this.edit = true;\r\n    },\r\n\r\n    async removeAction() {\r\n      this.showRemoveDialog = true;\r\n    },\r\n\r\n    createDashboardAction() {\r\n      this.showDashboardCreateOrCopy = true;\r\n      this.showMenu = false;\r\n      this.copy = false;\r\n    },\r\n\r\n    copyDashboardAction() {\r\n      this.showDashboardCreateOrCopy = true;\r\n      this.showMenu = false;\r\n      this.copy = true;\r\n    },\r\n\r\n    shouldDisplay(displayArr) {\r\n      if (this.isDashboard) {\r\n        return displayArr[1];\r\n      }\r\n\r\n      return displayArr[0];\r\n    },\r\n\r\n    navigateToDbMapCreate() {\r\n      let path = \"/map/create\";\r\n      let categoryId = this.currentNode.data.dashboardCategoryId;\r\n      if (categoryId !== \"00000000-0000-0000-0000-000000000000\")\r\n        path = path + \"/\" + categoryId;\r\n\r\n      if (path === this.$route.path) this.$router.go();\r\n\r\n      this.$router.push(path);\r\n\r\n      this.showDashboardCreateOrCopy = false;\r\n      this.showMenu = false;\r\n      this.copy = false;\r\n      this.$emit(\"close\", true);\r\n    },\r\n\r\n    async updateIndexes() {\r\n      if (this.permitted(\"Dashboard.Update\") && this.editMode)\r\n        await this.updateDashboardCategoryIndexes(this.categories);\r\n    },\r\n\r\n    async handleCreate() {\r\n      // Add parent node if its a create action only\r\n      if (!this.currentNode.isLeaf && !this.edit)\r\n        this.payload.parentGuid = this.currentNode.data.dashboardCategoryId;\r\n\r\n      if (!this.edit) await this.createDashboardCategories(this.payload);\r\n      else\r\n        await this.updateDashboardCategories({\r\n          categoryId: this.currentNode.data.dashboardCategoryId,\r\n          payload: this.payload,\r\n        });\r\n\r\n      this.payload = {\r\n        title: \"\",\r\n        icon: \"mdi-shape-outline\",\r\n      };\r\n\r\n      await this.getCategoryItems();\r\n      this.showCreateDialog = false;\r\n      this.edit = false;\r\n    },\r\n\r\n    async handleDashboardCopyOrCreate() {\r\n      if (this.copy) {\r\n        if (\r\n          this.currentNode.data.dashboardId <= 0 ||\r\n          this.currentNode.data.dashboardId == null\r\n        ) {\r\n          return;\r\n        }\r\n\r\n        await this.duplicate({\r\n          dashboardId: this.currentNode.data.dashboardId,\r\n          payload: { name: this.dashboardName },\r\n        });\r\n      } else {\r\n        await this.create({\r\n          payload: {\r\n            name: this.dashboardName,\r\n            categoryId: this.currentNode.data.dashboardCategoryId,\r\n          },\r\n        });\r\n      }\r\n\r\n      await this.getCategoryItems();\r\n      this.showDashboardCreateOrCopy = false;\r\n      this.copy = false;\r\n    },\r\n\r\n    async deleteConfirmed() {\r\n      if (this.isDashboard) {\r\n        await this.delete(this.currentNode.data.dashboardId);\r\n      } else {\r\n        await this.removeDashboardCategory(\r\n          this.currentNode.data.dashboardCategoryId\r\n        );\r\n      }\r\n\r\n      await this.getCategoryItems();\r\n      this.showRemoveDialog = false;\r\n      this.showCreateDialog = false;\r\n      this.edit = false;\r\n    },\r\n\r\n    onNodeRightClicked(node, e) {\r\n      e.preventDefault();\r\n      // Get the tree reference\r\n      const tree = this.$refs.tree;\r\n      //use the API to select the node\r\n      tree.select(node.path);\r\n\r\n      this.currentNode = node;\r\n      this.isDashboard = node.isLeaf;\r\n      this.x = e.x;\r\n      this.y = e.y;\r\n      this.showMenu = true;\r\n    },\r\n\r\n    async getCategoryItems() {\r\n      await this.getDashboardCategories();\r\n      this.categories = this.storeCategories.slice(0);\r\n      this.updateDraggable(this.categories);\r\n    },\r\n\r\n    updateDraggable(categories) {\r\n      if (categories == null) return;\r\n\r\n      for (var c of categories) {\r\n        c.isDraggable = this.editMode;\r\n        c.isSelectable = this.editMode;\r\n        this.updateDraggable(c.children);\r\n      }\r\n    },\r\n\r\n    goToDashboard(dashboardId) {\r\n      this.$router.push(`/dashboard/${dashboardId}`);\r\n      if (this.isInsideDashboard) this.$router.go();\r\n      this.$emit(\"close\", true);\r\n    },\r\n  },\r\n\r\n  async created() {\r\n    await this.getCategoryItems();\r\n  },\r\n\r\n  components: {\r\n    SlVueTree,\r\n    IconSelector,\r\n  },\r\n\r\n  watch: {\r\n    color(v) {\r\n      if (v != null) {\r\n        if (v.hex == undefined) this.payload.color = v;\r\n        else this.payload.color = v.hex;\r\n      }\r\n    },\r\n\r\n    editMode(v, o) {\r\n      if (v != o) {\r\n        this.updateDraggable(this.categories);\r\n      }\r\n    },\r\n  },\r\n};\r\n</script>\r\n\r\n<style>\r\n.sl-vue-tree {\r\n  position: relative;\r\n  cursor: default;\r\n  -webkit-touch-callout: none; /* iOS Safari */\r\n  -webkit-user-select: none; /* Safari */\r\n  -khtml-user-select: none; /* Konqueror HTML */\r\n  -moz-user-select: none; /* Firefox */\r\n  -ms-user-select: none; /* Internet Explorer/Edge */\r\n  user-select: none;\r\n}\r\n\r\n.sl-vue-tree.sl-vue-tree-root {\r\n  /* border: 1px solid rgb(9, 22, 29);\r\n        background-color: rgb(9, 22, 29); */\r\n  /* color: rgba(255, 255, 255, 0.5); */\r\n  border-radius: 3px;\r\n}\r\n\r\n.sl-vue-tree-root > .sl-vue-tree-nodes-list {\r\n  overflow: hidden;\r\n  position: relative;\r\n  padding-bottom: 4px;\r\n}\r\n\r\n.sl-vue-tree-selected > .sl-vue-tree-node-item {\r\n  /* background-color: #13242d;\r\n        color: white; */\r\n}\r\n\r\n.sl-vue-tree-node-item:hover,\r\n.sl-vue-tree-node-item.sl-vue-tree-cursor-hover {\r\n  color: rgba(173, 173, 173, 0.5);\r\n}\r\n\r\n.sl-vue-tree-node-item {\r\n  position: relative;\r\n  display: flex;\r\n  flex-direction: row;\r\n\r\n  padding-left: 10px;\r\n  padding-right: 10px;\r\n  line-height: 28px;\r\n  border: 1px solid transparent;\r\n}\r\n\r\n.sl-vue-tree-node-item.sl-vue-tree-cursor-inside {\r\n  border: 1px solid rgba(173, 173, 173, 0.5);\r\n}\r\n\r\n.sl-vue-tree-gap {\r\n  width: 25px;\r\n  min-height: 1px;\r\n}\r\n\r\n.sl-vue-tree-toggle {\r\n  display: inline-block;\r\n  text-align: left;\r\n  width: 20px;\r\n}\r\n\r\n.sl-vue-tree-sidebar {\r\n  margin-left: auto;\r\n}\r\n\r\n.sl-vue-tree-cursor {\r\n  position: absolute;\r\n  border: 1px solid rgba(214, 214, 214, 0.5);\r\n  height: 1px;\r\n  width: 100%;\r\n}\r\n\r\n.sl-vue-tree-drag-info {\r\n  position: absolute;\r\n  background-color: rgba(0, 0, 0, 0.5);\r\n  opacity: 0.5;\r\n  margin-left: 20px;\r\n  padding: 5px 10px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardCategoryViewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardCategoryViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DashboardCategoryViewer.vue?vue&type=template&id=31ba07ea\"\nimport script from \"./DashboardCategoryViewer.vue?vue&type=script&lang=js\"\nexport * from \"./DashboardCategoryViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./DashboardCategoryViewer.vue?vue&type=style&index=0&id=31ba07ea&prod&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 const Roles = {\n  Admin: \"Admin\",\n  User: \"User\",\n  Guest: \"Guest\",\n  CompanyAdmin: \"CompanyAdmin\",\n  SuperAdmin: \"SuperAdmin\",\n  PublicDashboard: \"PublicDashboard\",\n\n  AdminOrUser: [\"Admin\", \"CompanyAdmin\", \"SuperAdmin\"],\n  CompanyOrUser: [\"Admin\", \"CompanyAdmin\", \"User\", \"SuperAdmin\"],\n  AdminOrCompanyAdmin: [\"Admin\", \"CompanyAdmin\", \"SuperAdmin\"],\n};\n","import Vue from \"vue\";\r\nimport VueI18n from \"vue-i18n\";\r\nimport messages from \"@/languages\";\r\n\r\nVue.use(VueI18n);\r\n\r\nexport default new VueI18n({\r\n  locale: \"en\",\r\n  fallbackLocale: \"en\",\r\n  messages,\r\n});\r\n","import axios from \"axios\";\nimport store from \"../stores/store\";\n\nlet axiosConnection = axios.create();\n\naxiosConnection.interceptors.request.use((config) => {\n  config.baseURL = `${store.state.configuration.SO_API_BASE_URL}/api`;\n  return config;\n});\n\nexport default axiosConnection;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardCategoryViewer.vue?vue&type=style&index=0&id=31ba07ea&prod&lang=css\"","import Repository from \"../Repository\";\r\nimport { company, apiConfig } from \"../../_helpers/apiHelper\";\r\n\r\nconst resource = \"/modbus\";\r\n\r\nexport default {\r\n  getOccupiedRegisters(masterId) {\r\n    return Repository.get(\r\n      `${resource}/occupied-registers/${masterId}`,\r\n      apiConfig()\r\n    );\r\n  },\r\n\r\n  getMasters() {\r\n    return Repository.get(`${resource}/masters/${company()}`, apiConfig());\r\n  },\r\n\r\n  createMaster(payload) {\r\n    return Repository.post(\r\n      `${resource}/master/${company()}`,\r\n      payload,\r\n      apiConfig()\r\n    );\r\n  },\r\n\r\n  updateMaster(masterId, payload) {\r\n    return Repository.put(\r\n      `${resource}/master/${masterId}`,\r\n      payload,\r\n      apiConfig()\r\n    );\r\n  },\r\n\r\n  removeMaster(masterId) {\r\n    return Repository.delete(`${resource}/master/${masterId}`, apiConfig());\r\n  },\r\n\r\n  createRegister(masterId, payload) {\r\n    return Repository.post(\r\n      `${resource}/register/${masterId}`,\r\n      payload,\r\n      apiConfig()\r\n    );\r\n  },\r\n\r\n  removeRegister(registerId) {\r\n    return Repository.delete(`${resource}/register/${registerId}`, apiConfig());\r\n  },\r\n\r\n  poll(registers) {\r\n    return Repository.post(`${resource}/poll`, registers, apiConfig());\r\n  },\r\n\r\n  getAllRegisters(deveui) {\r\n    return Repository.get(`${resource}/registers/${deveui}`, apiConfig())\r\n      .then((d) => d.data)\r\n      .catch(() => []);\r\n  },\r\n\r\n  tryReconnect(masterId) {\r\n    return Repository.post(\r\n      `${resource}/master/reload/${masterId}`,\r\n      null,\r\n      apiConfig()\r\n    );\r\n  },\r\n};\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=style&index=0&id=52d93865&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconSelector.vue?vue&type=style&index=0&id=1e496a69&prod&lang=css\""],"sourceRoot":""}