{"version":3,"sources":["helpers/EnumsInternal.tsx","assets/arrow-down.svg","helpers/ErrorDanish.tsx","assets/delete-icon.svg","assets/info.svg","assets/download-icon.svg","assets/logo.svg","assets/nav/nav-1.svg","assets/sms.svg","assets/email.svg","assets/phone.svg","helpers/GenderDanish.tsx","helpers/GetUserLoginRedirectLink.tsx","pages/LoginPage.tsx","assets/company-placeholder.png","components/OwnerRevokeReasonModal.tsx","components/Disclaimer.tsx","services/ApiServices.tsx","context/OwnerContext.tsx","assets/nav/nav-4.svg","components/ownerConsents/OwnerLinksBar.tsx","assets/user-img.png","components/ownerConsents/OwnerConsentsAdvertiserBar.tsx","components/ownerConsents/OwnerConsentHistory.tsx","components/ownerConsents/OwnerConsent.tsx","components/ownerConsents/OwnerConsentsPdf.tsx","pages/OwnerConsentsPage.tsx","assets/arrow-back.svg","assets/box-shape.svg","components/ownerConsents/OwnerConsentsFind.tsx","components/ownerConsents/OwnerConsentsSendCode.tsx","components/SpinnerInline.tsx","components/ownerConsents/OwnerExternRefresh.tsx","pages/NotReadyPage.tsx","pages/OwnerLoginPage.tsx","pages/ErrorPage.tsx","pages/UnauthorisedPage.tsx","pages/PageNotFound.tsx","App.tsx","serviceWorker.ts","index.tsx","components/OwnerFooter.tsx","assets/full-logo.svg","helpers/AuthOwnerHelper.tsx","helpers/TextCheckers.tsx","components/MainErrorText.tsx","helpers/EnumsDanish.tsx","helpers/AuthUserHelper.tsx","components/Spinner.tsx","components/ConsentAuxFieldsRow.tsx","context/UserContext.tsx"],"names":["StringValueType","OwnerLoginStage","OwnerLoginAttemptStatus","NotificationStatus","UserLoginStatus","ConsentStatus","ConsentTypeContact","UserType","StakeholderType","StakeholderFileType","AccessPermissionType","ListType","StakeholderPageStage","AuthenticationType","HttpTransferType","PullRequestDataField","NotificationField","ApiUserRequestType","LogType","StatisticsPeriod","ApiLogType","NotificationCommsType","SureSmsCallbackStatus","ConsentRevokeReasonType","webserviceFieldsDataTypes","advertiserId","advertiserConsentId","campaignId","campaignTitle","mobilePhone","email","phone","firstname","lastname","address","postalCode","city","gender","dateOfBirth","signupIP","signupURL","consentDateTime","screenshotUrl1","screenshotUrl2","videoUrl","_path","_excluded","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgArrowDown","_ref","svgRef","title","titleId","props","xmlns","width","height","viewBox","ref","id","fill","fillRule","d","transform","ForwardRef","ErrorDanish","SvgDeleteIcon","className","SvgInfo","SvgDownloadIcon","_path2","SvgNav1","SvgSms","SvgEmail","SvgPhone","GenderToDanish","returnValue","GetUserLoginRedirectLink","changePwdPrompt","userType","stakeholderType","pwdPrompt","Stakeholder","Advertiser","Supplier","Processor","LoginPage","userLoginObject","useContext","UserContext","history","useHistory","useState","isClearUser","setIsClearUser","loginName","setLoginName","loginPwd","setLoginPwd","spinner","showSpinner","isButtonDisabled","setIsButtonDisabled","errorText","setErrorText","a","ApiHttpServiceAnon","LoginName","LoginPwd","then","result","status","json","resultJson","loginStatus","UnknownUser","InvalidPwd","NoMoreAttempts","NotActive","Success","tmpUserLoginObject","appUserId","stakeholderId","stakeholder","logoFileName","logInDateTime","token","refreshToken","refreshTokenExpiry","setLoginUser","userLogIn","push","changePwdNextLoginPrompt","DbError","catch","e","console","log","useEffect","userLogOut","Spinner","to","src","FullLogo","alt","onSubmit","preventDefault","type","maxLength","autoFocus","value","onChange","inputName","htmlFor","inputCode","MainErrorText","disabled","onClick","handleLoginClick","OwnerFooter","OwnerRevokeReasonModal","setIsPopoverOpen","revokeCollectionId","revokedCount","ownerLoginObject","OwnerContext","isSendButtonDisabled","setIsSendButtonDisabled","None","revokeReason","setRevokeReason","otherReason","setOtherReason","onSelectReasonClick","revokeReasonType","Number","Other","trim","OwnerHttpServiceAuth","CollectionId","ReasonType","OtherReason","undefined","filter","isNaN","parseInt","map","name","defaultChecked","ConsentRevokeReasonTypeDanish","inputOtherReason","Disclaimer","baseUrl","process","delay","ms","Promise","res","setTimeout","REFRESH_IN_PROGRESS","GetUserToken","retryCounter","loginUser","jwtDecode","require","exp","Date","now","parse","AppUserId","RefreshToken","controller","method","body","querystring","signal","fetch","headers","Headers","JSON","stringify","Response","ApiHttpServiceAuth","ApiHttpServiceAuthFileUpload","filData","GetStakeholderLogoUrl","GetStandardApiError","statusCode","isWrite","ownerStatus","createContext","setOwnerStatus","Provider","Consumer","SvgNav4","OwnerLinksBar","menuLinkActive","subMenuState","showSubMenu","consents","activeMenu","setActiveMenu","showUserMenu","setShowUserMenu","setMenuState","activeLink","subMenu","user","Logo","none","help","href","info","mobileOrEmail","OwnerConsentsAdvertiserBar","advertiserName","advertiserLogo","clickRevoke","isRevokeButtonsDisabled","showRevoke","GenericLogo","OwnerConsentHistory","hist","open","triggerClassName","transitionTime","easing","triggerOpenedClassName","triggerTagName","trigger","index","isRevokedAction","ConsentHistoryActionSourceTypeDanish","actionSourceType","createDateTime","toLocaleString","replace","ConsentHistoryActorTypeDanish","actorType","OwnerConsent","consent","consentTypeImages","substring","consentTypes","ct","ConsentTypeContactDanish","isRevoked","toLocaleDateString","ConsentAuxFieldsRow","column","auxFields","consentAuxiliaryFieldTypes","rel","consentHistories","OwnerConsentsPdf","advertisersWithConsents","styles","StyleSheet","create","page","backgroundColor","color","fontSize","fontWeight","header","marginBottom","textAlign","headline","margin","subheader","pageheader","pagesubheader","marginTop","section","borderWidth","borderColor","padding","borderRadius","capitalize","textTransform","advertiserHeader","consentBox","lineHeight","size","style","adv","stakeholderName","indexInner","PhoneNumberSpacing","auxField","OwnerConsentsPage","consentsRequested","setConsentsRequested","advertisersConsentsCollection","setAdvertisersConsentsCollection","searchText","setSearchText","numberRevoked","setNumberRevoked","setRevokeCollectionId","setIsRevokeButtonsDisabled","isExportButtonsDisabled","setIsExportButtonsDisabled","readyForPdf","setReadyForPdf","revokeConsents","allAdvertisers","byOwnerViaLink","consentsRevoked","isOwnerStatusValid","ownerLogOut","document","fileName","loading","existsUnrevoked","defaultValue","onInput","mobileOrEmailSearchText","toLowerCase","startsWith","hasUnrevoked","advertiserLogoName","SvgArrowBack","SvgBoxShape","xmlnsXlink","strokeWidth","strokeLinecap","strokeLinejoin","OwnerConsentsFind","setInputMobileOrEmail","setOwnerLoginStage","setLoginCodeId","codeInputFieldValue","setCodeInputFieldValue","searchStringType","IsMobileOrEmail","MobilePhone8","EmailAddress","apiParam","loginCodeId","loginCode","Code","Invalid","OwnerConsentsSendCode","inputMobileOrEmail","isSubmitButtonDisabled","setIsSubmitButtonDisabled","showBackButton","setShowBackButton","LoginCodeId","LoginCode","OwnerMobilePhoneOrEmailAddress","handleReturnStatusErrorAndStage","loginAttemptStatus","ownerLogIn","Refresh","InvalidLoginCodeId","InvalidMobileOrEmail","MobileOrEmailMismatch","LoginCodeMismatch","remainingAttempts","LoginCodeExpired","Start","SpinnerInline","OwnerExternRefresh","consentsRefreshRequested","setConsentsRefreshRequested","mobilePhoneOrEmailAddress","ErrorPage","OwnerLoginPage","ownerLoginStage","window","location","hostname","match","NotReadyPage","UnauthorisedPage","PageNotFound","RevokeLandingPage","lazy","AdvertiserPage","SupplierPage","ProcessorPage","AdminPage","App","isLoginUserSet","setIsLoginUserSet","isOwnerStatusSet","setIsOwnerStatusSet","checkUserToken","initUserObject","initOwnerObject","path","exact","render","fallback","component","Boolean","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister","error","message","ownerObject","localStorage","setItem","removeItem","ownerJsonString","getItem","test","InputFieldValueTypeCheck","searchString","NumberMax9","TextMin3","fieldString","join","ConsentStatusDanish","AccessPermissionTypeDanish","ConsentListTypeDanish","SubscriptionType","UserLoginStatusDanish","StatisticsPeriodDanish","AuthenticationTypeDanish","StakeholderCommsSetupType","userJsonString","isUserTypeAllowed","requiredUserType","Developer","isStakeholderTypeAllowed","requiredStakeholderType"],"mappings":"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","file":"static/js/main.42fc22d7.chunk.js","sourcesContent":["\r\n// ******** ! THESE MUST MATCH API ENUMS NUMBERING ! ********\r\n\r\nenum StringValueType {\r\n Invalid = 0,\r\n MobilePhone8 = 1,\r\n EmailAddress = 2,\r\n TextMin3 = 3,\r\n NumberMax9 = 4\r\n}\r\n\r\nenum OwnerLoginStage {\r\n Start = 0,\r\n Code = 1,\r\n Refresh = 2\r\n}\r\n\r\nenum OwnerLoginAttemptStatus {\r\n New = 0,\r\n Success = 1,\r\n InvalidLoginCodeId = 2,\r\n InvalidMobileOrEmail = 3,\r\n MobileOrEmailMismatch = 4,\r\n LoginCodeMismatch = 5,\r\n LoginCodeExpired = 6,\r\n NoMoreAttempts = 7,\r\n DbError = 99\r\n}\r\n\r\nenum NotificationStatus {\r\n New = 0,\r\n Sent = 1,\r\n Fail = 2\r\n}\r\n\r\nenum UserLoginStatus {\r\n New = 0,\r\n Success = 1,\r\n UnknownUser = 2,\r\n InvalidPwd = 3,\r\n NoMoreAttempts = 4,\r\n NotActive = 5,\r\n DbError = 99\r\n}\r\n\r\nenum ConsentStatus {\r\n Inactive = 0,\r\n Active = 1,\r\n Revoked = 2,\r\n Test = 99\r\n}\r\n\r\nenum ConsentTypeContact\r\n{\r\n SMS = 0,\r\n Email = 1,\r\n Phone = 2\r\n //SocialMedia = 3,\r\n //PostalMail = 4\r\n}\r\n\r\nenum UserType {\r\n Developer = 0,\r\n Administrator = 1,\r\n Support = 2,\r\n Stakeholder = 3\r\n}\r\n\r\nenum StakeholderType {\r\n Administrator = 0,\r\n Advertiser = 1,\r\n Supplier = 2,\r\n Processor = 3\r\n}\r\n\r\nenum StakeholderFileType\r\n{\r\n Other = 0,\r\n Contract = 1,\r\n Logo = 2\r\n}\r\n\r\nenum AccessPermissionType\r\n{\r\n None = 0,\r\n Upload = 1,\r\n Revoke = 2,\r\n Both = 3\r\n}\r\n\r\nenum ListType\r\n{\r\n none = 0,\r\n AuxType = 1,\r\n ConsentType = 2\r\n}\r\n\r\nenum StakeholderPageStage {\r\n Clean = 0,\r\n Logo = 1,\r\n Details = 2,\r\n Edit = 3,\r\n AuxTypes = 4,\r\n Partners = 5,\r\n Comms = 6,\r\n Contract = 7,\r\n PullRequest =8\r\n}\r\n\r\n\r\nenum AuthenticationType\r\n{\r\n None = 0,\r\n Basic = 1,\r\n Bearer = 2,\r\n RefreshTokenPOST = 3,\r\n RefreshTokenGET = 4\r\n}\r\n\r\nenum HttpTransferType\r\n{\r\n POST = 0,\r\n GET = 1\r\n}\r\n\r\nenum PullRequestDataField\r\n{\r\n Fixed = 0,\r\n RequestDateTime = 1,\r\n AdvertiserId = 5,\r\n MobileOrEmail = 10,\r\n MobilePhone = 11,\r\n Email = 12,\r\n RefreshToken = 15\r\n}\r\n\r\nenum NotificationField\r\n{\r\n Fixed = 0,\r\n AdvertiserId = 5,\r\n Advertiser = 6,\r\n CampaignId = 7,\r\n CampaignTitle = 8,\r\n MobilePhone = 10,\r\n Email = 11,\r\n Phone = 12,\r\n Firstname = 15,\r\n Lastname = 16,\r\n FullName = 17,\r\n Address = 18,\r\n PostalCode = 19,\r\n City = 20,\r\n Gender = 25,\r\n DateOfBirth = 26,\r\n SignupURL = 27,\r\n ConsentDateTime = 28,\r\n RefreshToken = 30\r\n}\r\n\r\nenum ApiUserRequestType\r\n{\r\n Unknown = 0,\r\n TestCall = 1,\r\n AuthTestCall = 2,\r\n CreateConsent = 3,\r\n RevokeConsent = 4\r\n}\r\n\r\nenum LogType\r\n{\r\n None = 0,\r\n ApiUserRequest = 1,\r\n AppUserActivity = 2,\r\n AppUserLogin = 3,\r\n ConsentList = 4,\r\n ConsentHistory = 5,\r\n OwnerLogin = 6,\r\n OwnerRevokeInvitation = 7,\r\n StakeholderRevokeNotification = 8,\r\n OwnerRevokeNotification = 9,\r\n ConsentRevokeCollection = 10,\r\n ConsentPullRequest = 11\r\n}\r\n\r\nenum StatisticsPeriod\r\n{\r\n Today = 0,\r\n Yesterday = 1,\r\n WeekToDate = 2,\r\n MonthToDate = 3,\r\n YearToDate = 4,\r\n PrevWeek = 5,\r\n PrevMonth = 6,\r\n PrevYear = 7\r\n}\r\n\r\nenum ApiLogType\r\n{\r\n Request = 0,\r\n Response = 1,\r\n Failed = 2\r\n}\r\n\r\nenum NotificationCommsType\r\n{\r\n Webservice = 0,\r\n Email = 1,\r\n Sms = 2\r\n}\r\n\r\nenum SureSmsCallbackStatus\r\n{\r\n None = 0,\r\n Success = 1,\r\n Failure = 2,\r\n InQueue = 4,\r\n WillNeverHappen = 8,\r\n ErrorReadingCallBack = 99\r\n}\r\n\r\nenum ConsentRevokeReasonType\r\n{\r\n None = 0,\r\n Other = 1,\r\n DidNotRequest = 10,\r\n ContactWrong = 11,\r\n Spam = 12\r\n}\r\n\r\n\r\n// * These MUST match the returned json keys! *\r\nconst webserviceFieldsDataTypes: any = {\r\n advertiserId: \"\",\r\n advertiserConsentId: \"(Advertiser's unique ID)\",\r\n campaignId: \"(Advertiser's campaign ID)\",\r\n campaignTitle: \"\",\r\n mobilePhone: \"6 number string\",\r\n email: \"\",\r\n phone: \"6 number string\",\r\n firstname: \"\",\r\n lastname: \"\",\r\n address: \"\",\r\n postalCode: \"4 number string\",\r\n city: \"\",\r\n gender: \"M/F\",\r\n dateOfBirth: \"dd-mm-yyyy\",\r\n signupIP: \"\",\r\n signupURL: \"\",\r\n consentDateTime: \"See 'consentDateTime'\",\r\n screenshotUrl1: \"\",\r\n screenshotUrl2: \"\",\r\n videoUrl: \"\"\r\n};\r\n\r\n\r\nexport { StringValueType, OwnerLoginStage, OwnerLoginAttemptStatus, NotificationStatus, UserLoginStatus, ConsentStatus, ConsentTypeContact, UserType,\r\n StakeholderType, StakeholderFileType, AccessPermissionType, ListType, StakeholderPageStage, AuthenticationType, HttpTransferType, PullRequestDataField,\r\n NotificationField, ApiUserRequestType, LogType, StatisticsPeriod, ApiLogType, NotificationCommsType, SureSmsCallbackStatus, ConsentRevokeReasonType,\r\n webserviceFieldsDataTypes }\r\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowDown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 12.075,\n height: 7.062,\n viewBox: \"0 0 24.15 14.124\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#009b95\",\n fillRule: \"evenodd\",\n d: \"M1359.49,504.343l-9.72,9.72a2.342,2.342,0,0,1-.28.422,2.2,2.2,0,0,1-2.98,0,2.342,2.342,0,0,1-.28-0.422l-9.72-9.72a2,2,0,1,1,2.83-2.828l8.66,8.656,8.66-8.656A2,2,0,1,1,1359.49,504.343Z\",\n transform: \"translate(-1335.94 -500.938)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowDown);\nexport default __webpack_public_path__ + \"static/media/arrow-down.6114ca36.svg\";\nexport { ForwardRef as ReactComponent };","// æ: \\u00e6 ø: \\u00f8 å: \\u00e5\r\n\r\nlet ErrorDanish = {\r\n \"GeneralError\" : \"Det opstod en fejl. Pr\\u00f8v venligst igen.\",\r\n \"DbConxError\" : \"En fejl opstod ved forbindelsen til databasen. Pr\\u00f8v venligst igen.\",\r\n \"DbInvalidRequestError\" : \"Ikke-gyldig data blev sendt.\",\r\n \"DbFetchDataError\" : \"Der opstod en fejl ved hentning af data. Pr\\u00f8v venligst igen.\",\r\n \"DbGeneralWriteError\" : \"Der opstod en fejl ved skrivning af data. Venligst pr\\u00f8v igen.\",\r\n \"DbWriteValuesError\" : \"Der opstod en fejl ved skrivning af data. Tjek venligst felterne og pr\\u00f8v igen.\",\r\n \"ConcurrencyException\" : \"Der opstod en fejl ved opdatering af dine data. Pr\\u00f8v venligst igen.\",\r\n \"Unauthorized\" : \"Handling ikke tilladt. Venligst log ind.\",\r\n \"Forbidden\" : \"Handling ikke tilladt.\",\r\n \"IdNotAvailable\" : \"ID er ikke tilg\\u00e6ngeligt.\",\r\n \"UploadListConxError\" : \"Der opstod en fejl. Venligst kontakt vores support.\",\r\n \r\n \"UnknownUser\" : \"Bruger blev ikke fundet.\",\r\n \"NoConsents\" : \"Der er ikke nogle samtykker at vise.\",\r\n \"DbCodeCheckError\" : \"Der opstod en fejl med tjek af koden. Pr\\u00f8v venligst igen.\",\r\n \"MobileOrEmailInvalid\" : \"Mobilnummer / e-mailadresse er ikke gyldig.\",\r\n \"NoDbMatchForMobileOrEmail\" : \"Indsendt Mobilnummer / e-mailadresse blev ikke genkendt. Pr\\u00f8v venligst igen.\",\r\n \"TooManyRecentAttempts\" : \"For mange foresp\\u00f8rgsler (5) indenfor de sidste 24 timer. Vent venligst en dag og pr\\u00f8v igen.\",\r\n \"RevokeLinkExpiredOrProcessed\" : \"Link er ikke l\\u00e6ngere gyldigt, men du kan klikke her for at logge ind p\\u00e5 anden m\\u00e5de:\",\r\n \"NoConsentsRevoked\" : \"Der er ikke fundet nogle aktive samtykker.\",\r\n \"NoConsentsOnOwnerLogin\":\"Der blev ikke fundet samtykker for \",\r\n \"NoConsentsInputQuestion\": \"Er der fejl i det indtastede? Hvis ikke, har vi ikke samtykker registreret på \",\r\n\r\n \"NoAccesses\" : \"Der er ikke oprettet tilladelser. Venligst kontakt Mitsamtykke.\",\r\n\r\n \"CodeIncorrect\" : \"Den indtastede kode er ikke korrekt.\",\r\n \"CodeRemainingAttempts\" : \"Tilbagev\\u00e6rende fors\\u00f8g: \",\r\n \"CodeTimeExpired\" : \"Din kode er udl\\u00f8vbet. Pr\\u00f8v venligst igen.\",\r\n \"CodeNoMoreAttempts\" : \"Du har opbrugt dine fors\\u00f8g. Pr\\u00f8v venligst igen.\",\r\n \"DbRevokeError\" : \"Der opstod en fejl ved afmelding af data. Pr\\u00f8v venligst igen.\",\r\n\r\n \"LoginUserAndPwdEmpty\" : \"Brugernavn og password skal indgives.\",\r\n \"LoginInvalidPwd\" : \"Ugyldigt password.\",\r\n \"LoginNoMoreAttempts\" : \"Antal fors\\u00f8g er overskredet. Kontakt support.\",\r\n \"LoginUserNotActive\" : \"Bruger er ikke aktiv. Kontakt support.\",\r\n\r\n \"PwdChangeFieldEmpty\" : \"Alle felter skal indtastes.\",\r\n \"PwdChangeConfMismatch\" : \"Det nye password matcher ikke bekr\\u00e6ftelse.\",\r\n \"CurAndNewPwdMatch\" : \"Det nye password er det samme som det nuv\\u00e6rende. Ingen \\u00e6ndring n\\u00f8dvendig.\",\r\n\r\n \"NoStakeholders\" : \"Der blev ikke fundet virksomheder.\",\r\n\r\n \"SearchStringInvalid\" : \"Indtast navn (min. 3 tegn) eller ID.\",\r\n \"NoUsers\" : \"Der blev ikke fundet brugere.\",\r\n \"ResetLoginAttemptsFail\": \"Kunne ikke lave reset p\\u00e5 loginfors\\u00f8g. Pr\\u00f8v venligst igen.\",\r\n\r\n \"UserNotFound\" : \"Bruger findes ikke i databasen.\",\r\n \"UserTypeInvalid\" : \"Brugertype er ikke gyldig.\",\r\n \"ModifierUnauthorised\" : \"Du har ikke rettigheder p\\u00e5 dette niveau.\",\r\n \"AdvertiserInvalid\" : \"Advertiser er ikke gyldig.\",\r\n \"LoginNameExists\" : \"Brugernavn eksisterer allerede. V\\u00e6lg venligst et andet.\",\r\n\r\n \"TypeExists\" : \"Type eksisterer allerede. V\\u00e6lg venligst en anden v\\u00e6rdi.\",\r\n\r\n \"ApiKeyExists\" : \"Api Key eksisterer allerede. V\\u00e6lg venligst en anden v\\u00e6rdi.\",\r\n \"AccessNameExists\" : \"Accessnavn eksisterer allerede. V\\u00e6lg venligst en anden v\\u00e6rdi.\",\r\n\r\n \"NoLogsFound\" : \"Der blev ikke fundet nogle loglinjer.\",\r\n\r\n \"FetchFailedRowsDoc\" : \"Hentning af fejlliste gik galt. Venligst hent manuelt fra listen\",\r\n\r\n \"DocNotFound\": \"Document kunne ikke findes.\",\r\n\r\n \"FileUploaded\" : \"Fil er gemt.\",\r\n\r\n \"NoContractsFound\" : \"Der blev ikke fundet nogle kontraktinfo linjer.\",\r\n \"SubscriptionTypeInvalid\" : \"Kontrakttype er ikke gyldig\",\r\n \"StakeholderNameExists\" : \"Virksomhedsnavn eksisterer allerede. V\\u00e6lg venligst et andet.\",\r\n \"SignDateTypeInvalid\" : \"Signatur dato er ikke gyldig\",\r\n\r\n \"NoExternRefesh\" : \"Kunne ikke opdaterer fra eksterne advertisers.\"\r\n}\r\n\r\nexport { ErrorDanish };\r\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDeleteIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 32 32\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fillRule: \"evenodd\",\n d: \"M3189,786a16,16,0,1,1,16-16A16,16,0,0,1,3189,786Zm0-28a12,12,0,1,0,12,12A12,12,0,0,0,3189,758Zm2.83,12,2.66,2.657a2,2,0,0,1-2.83,2.828l-2.66-2.657-2.66,2.657a2,2,0,0,1-2.83-2.828l2.66-2.657-2.66-2.657a2,2,0,0,1,2.83-2.828l2.66,2.657,2.66-2.657a2,2,0,0,1,2.83,2.828Z\",\n transform: \"translate(-3173 -754)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDeleteIcon);\nexport default __webpack_public_path__ + \"static/media/delete-icon.c1ff3a74.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgInfo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n viewBox: \"0 0 40 40\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fillRule: \"evenodd\",\n d: \"M3271,1501a20,20,0,1,0,20,20A19.994,19.994,0,0,0,3271,1501Zm0,36a16,16,0,1,1,16-16A16,16,0,0,1,3271,1537Zm0-17a2,2,0,0,0-2,2v6a2,2,0,0,0,4,0v-6A1.993,1.993,0,0,0,3271,1520Zm0-8a2.5,2.5,0,1,0,2.5,2.5A2.5,2.5,0,0,0,3271,1512Z\",\n transform: \"translate(-3251 -1501)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfo);\nexport default __webpack_public_path__ + \"static/media/info.e3edc5e6.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDownloadIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 32 32\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fillRule: \"evenodd\",\n d: \"M1870.42,502.6l4.58,4.6V494.01a2,2,0,1,1,4,0V507.2l4.58-4.6a2,2,0,0,1,2.83-.011s0.01,0.007.01,0.011a2.005,2.005,0,0,1,.01,2.831,0.109,0.109,0,0,0-.01.011l-8,8.005a1.969,1.969,0,0,1-.66.421,2,2,0,0,1-1.52,0,1.969,1.969,0,0,1-.66-0.421l-8-8.005a2.009,2.009,0,0,1,2.84-2.842h0Zm20.58,7.387a2,2,0,0,0-2,2V518a2,2,0,0,1-2,2h-20a2,2,0,0,1-2-2v-6.008a2,2,0,1,0-4,0V518a6,6,0,0,0,6,6h20a6,6,0,0,0,6-6v-6.008A2,2,0,0,0,1891,509.986Z\",\n transform: \"translate(-1861 -492)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDownloadIcon);\nexport default __webpack_public_path__ + \"static/media/download-icon.945241cf.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/logo.a66b7a62.svg\";","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgNav1(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 48 48\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fillRule: \"evenodd\",\n d: \"M502.357,423.808c0.019-.077.043-0.15,0.059-0.229C503.365,419.962,504,413.462,504,406s-0.639-13.966-1.588-17.584c-0.016-.078-0.04-0.151-0.059-0.23-0.03-.111-0.058-0.247-0.09-0.352v0.064a6.088,6.088,0,0,0-4.177-4.165h0.083c-0.138-.04-0.314-0.077-0.462-0.116-0.028-.007-0.053-0.016-0.081-0.022-3.61-.954-10.131-1.6-17.624-1.6s-14.015.644-17.624,1.6c-0.027.006-.053,0.015-0.08,0.021-0.149.039-.325,0.077-0.463,0.117h0.083a6.09,6.09,0,0,0-4.183,4.182V387.83c-0.039.134-.075,0.3-0.113,0.446-0.008.035-.02,0.068-0.026,0.1C456.645,391.99,456,398.507,456,406s0.642,14.006,1.6,17.616c0.006,0.035.018,0.069,0.026,0.1,0.038,0.143.074,0.313,0.113,0.446v-0.08a6.091,6.091,0,0,0,4.205,4.188h-0.105c3.479,1.033,10.307,1.736,18.167,1.736s14.688-.7,18.167-1.736h-0.105a6.088,6.088,0,0,0,4.2-4.171v0.063C502.3,424.056,502.327,423.92,502.357,423.808Z\",\n transform: \"translate(-456 -382)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002f38\",\n fillRule: \"evenodd\",\n d: \"M488.414,399.586a2,2,0,0,1,0,2.828l-10,10a2,2,0,0,1-2.828,0l-4-4a2,2,0,0,1,2.828-2.828L477,408.172l8.586-8.586A2,2,0,0,1,488.414,399.586Z\",\n transform: \"translate(-456 -382)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNav1);\nexport default __webpack_public_path__ + \"static/media/nav-1.f1e0b84e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSms(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 30,\n height: 30,\n viewBox: \"0 0 60 60\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fill: \"#4174d0\",\n fillRule: \"evenodd\",\n d: \"M2407.95,1085.26c0.02-.09.05-0.19,0.07-0.28,1.19-4.52,1.98-12.65,1.98-21.98s-0.79-17.45-1.98-21.97c-0.02-.1-0.05-0.19-0.07-0.29-0.04-.14-0.08-0.31-0.12-0.44v0.08a7.586,7.586,0,0,0-5.22-5.2h0.11c-0.18-.05-0.4-0.1-0.58-0.15-0.04-.01-0.07-0.02-0.1-0.03-4.51-1.19-12.67-1.99-22.03-1.99s-17.52.8-22.03,1.99c-0.04.01-.07,0.02-0.1,0.03-0.19.05-.41,0.1-0.58,0.15h0.1a7.609,7.609,0,0,0-5.23,5.22v-0.1c-0.05.17-.09,0.38-0.14,0.56-0.01.04-.02,0.08-0.03,0.13-1.19,4.51-2,12.65-2,22.01s0.81,17.51,2,22.02c0.01,0.04.02,0.08,0.03,0.13,0.05,0.18.09,0.39,0.14,0.55v-0.1a7.64,7.64,0,0,0,5.26,5.24h-0.13c4.35,1.29,12.88,2.17,22.71,2.17s18.36-.88,22.71-2.17h-0.13a7.622,7.622,0,0,0,5.24-5.22v0.08C2407.87,1085.57,2407.91,1085.4,2407.95,1085.26Z\",\n transform: \"translate(-2350 -1033)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffffff\",\n fillRule: \"evenodd\",\n d: \"M2366.17,1049.1c-2.09,2.13-2.1,5.56-2.12,12.43l-0.06,13.93a7.6,7.6,0,0,0,.18,2.51,1.76,1.76,0,0,0,2.16.93,7.4,7.4,0,0,0,1.87-1.65h0a16.086,16.086,0,0,1,1.64-1.55,6.912,6.912,0,0,1,3.12-1.31,13.067,13.067,0,0,1,2.22-.08l7.45,0.02c5.84,0.01,8.75.02,10.72-1.63a7.276,7.276,0,0,0,.99-1.01c1.62-2.01,1.63-5,1.65-10.99s0.03-8.98-1.57-11a6.688,6.688,0,0,0-.98-1.01c-1.96-1.66-4.87-1.67-10.71-1.68l-4.43-.01C2371.6,1046.98,2368.26,1046.97,2366.17,1049.1Zm5.86,14.27a2.731,2.731,0,1,0-2.66-2.74A2.7,2.7,0,0,0,2372.03,1063.37Zm10.65-2.7a2.661,2.661,0,1,1-2.65-2.74A2.687,2.687,0,0,1,2382.68,1060.67Zm5.32,2.74a2.731,2.731,0,1,0-2.66-2.74A2.693,2.693,0,0,0,2388,1063.41Z\",\n transform: \"translate(-2350 -1033)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSms);\nexport default __webpack_public_path__ + \"static/media/sms.bbd3370c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 30,\n height: 30,\n viewBox: \"0 0 60 60\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fill: \"#009b95\",\n fillRule: \"evenodd\",\n d: \"M2497.95,1085.26c0.02-.09.05-0.19,0.07-0.28,1.19-4.52,1.98-12.65,1.98-21.98s-0.79-17.45-1.98-21.97c-0.02-.1-0.05-0.19-0.07-0.29-0.04-.14-0.08-0.31-0.12-0.44v0.08a7.586,7.586,0,0,0-5.22-5.2h0.11c-0.18-.05-0.4-0.1-0.58-0.15-0.04-.01-0.07-0.02-0.1-0.03-4.51-1.19-12.67-1.99-22.03-1.99s-17.52.8-22.03,1.99c-0.04.01-.07,0.02-0.1,0.03-0.19.05-.41,0.1-0.58,0.15h0.1a7.609,7.609,0,0,0-5.23,5.22v-0.1c-0.05.17-.09,0.38-0.14,0.56-0.01.04-.02,0.08-0.03,0.13-1.19,4.51-2,12.65-2,22.01s0.81,17.51,2,22.02c0.01,0.04.02,0.08,0.03,0.13,0.05,0.17.09,0.39,0.14,0.55v-0.1a7.64,7.64,0,0,0,5.26,5.24h-0.13c4.35,1.29,12.88,2.17,22.71,2.17s18.36-.88,22.71-2.17h-0.13a7.622,7.622,0,0,0,5.24-5.22v0.08C2497.87,1085.57,2497.91,1085.4,2497.95,1085.26Z\",\n transform: \"translate(-2440 -1033)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffffff\",\n fillRule: \"evenodd\",\n d: \"M2454,1052.23a3.216,3.216,0,0,1,3.2-3.23h25.6a3.216,3.216,0,0,1,3.2,3.23v2.6l-16,9.09-16-9.09v-2.6Zm0,6.07v15.47a3.216,3.216,0,0,0,3.2,3.23h25.6a3.216,3.216,0,0,0,3.2-3.23V1058.3l-16,9.09Z\",\n transform: \"translate(-2440 -1033)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmail);\nexport default __webpack_public_path__ + \"static/media/email.115c892b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPhone(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 30,\n height: 30,\n viewBox: \"0 0 60 60\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fill: \"#4eb876\",\n fillRule: \"evenodd\",\n d: \"M2317.95,1085.26c0.02-.09.05-0.19,0.07-0.28,1.19-4.52,1.98-12.65,1.98-21.98s-0.79-17.45-1.98-21.97c-0.02-.1-0.05-0.19-0.07-0.29-0.04-.14-0.08-0.31-0.12-0.44v0.08a7.586,7.586,0,0,0-5.22-5.2h0.11c-0.18-.05-0.4-0.1-0.58-0.15-0.04-.01-0.07-0.02-0.1-0.03-4.51-1.19-12.67-1.99-22.03-1.99s-17.52.8-22.03,1.99c-0.04.01-.07,0.02-0.1,0.03-0.19.05-.41,0.1-0.58,0.15h0.1a7.609,7.609,0,0,0-5.23,5.22v-0.1c-0.05.17-.09,0.38-0.14,0.56-0.01.04-.02,0.08-0.03,0.13-1.19,4.51-2,12.65-2,22.01s0.81,17.51,2,22.02c0.01,0.04.02,0.08,0.03,0.13,0.05,0.18.09,0.39,0.14,0.55v-0.1a7.64,7.64,0,0,0,5.26,5.24h-0.13c4.35,1.29,12.88,2.17,22.71,2.17s18.36-.88,22.71-2.17h-0.13a7.622,7.622,0,0,0,5.24-5.22v0.08C2317.87,1085.57,2317.91,1085.4,2317.95,1085.26Z\",\n transform: \"translate(-2260 -1033)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffffff\",\n fillRule: \"evenodd\",\n d: \"M2279.33,1047a5.335,5.335,0,0,0-5.33,5.33v4.27a22.4,22.4,0,0,0,22.4,22.4h4.27a5.335,5.335,0,0,0,5.33-5.33v-2.95a3.187,3.187,0,0,0-1.77-2.86l-5.15-2.58a3.2,3.2,0,0,0-4.47,1.85l-0.64,1.91a1.509,1.509,0,0,1-1.73,1,11.846,11.846,0,0,1-9.28-9.28,1.509,1.509,0,0,1,1-1.73l2.37-.79a3.191,3.191,0,0,0,2.09-3.81l-1.25-5.01a3.19,3.19,0,0,0-3.1-2.42h-4.74Z\",\n transform: \"translate(-2260 -1033)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPhone);\nexport default __webpack_public_path__ + \"static/media/phone.dc735cf5.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\ntype HeaderProps = {\r\n gender: string;\r\n}\r\n\r\nfunction GenderToDanish(props: HeaderProps) {\r\n let returnValue: string = \"\";\r\n \r\n switch (props.gender) {\r\n case \"Male\":\r\n returnValue = \"Mand\";\r\n break;\r\n case \"Female\":\r\n returnValue = \"Kvinde\";\r\n break;\r\n default:\r\n returnValue = \"\";\r\n }\r\n\r\n return ({returnValue} );\r\n}\r\n\r\nexport default GenderToDanish\r\n","import { UserType, StakeholderType } from '../helpers/EnumsInternal';\r\n\r\n\r\nfunction GetUserLoginRedirectLink(changePwdPrompt: boolean, userType: UserType, stakeholderType: StakeholderType) {\r\n const pwdPrompt = changePwdPrompt ? '/pwd' : '';\r\n\r\n if (userType === UserType.Stakeholder) {\r\n switch (stakeholderType) {\r\n case StakeholderType.Advertiser:\r\n return '/advertiser' + pwdPrompt;\r\n case StakeholderType.Supplier:\r\n return '/supplier' + pwdPrompt;\r\n case StakeholderType.Processor:\r\n return '/processor' + pwdPrompt;\r\n default:\r\n return '/';\r\n }\r\n\r\n } else if (userType < UserType.Stakeholder) {\r\n return '/admin' + pwdPrompt;\r\n\r\n } else {\r\n return '/';\r\n }\r\n}\r\n\r\nexport default GetUserLoginRedirectLink","import React, { useState, ChangeEvent, useContext, useEffect } from 'react';\r\nimport { Link, useHistory } from 'react-router-dom'\r\n\r\nimport FullLogo from '../assets/full-logo.svg';\r\n\r\nimport UserContext from '../context/UserContext';\r\nimport { userLogIn, userLogOut } from '../helpers/AuthUserHelper';\r\nimport GetUserLoginRedirectLink from '../helpers/GetUserLoginRedirectLink';\r\nimport Spinner from '../components/Spinner';\r\nimport OwnerFooter from '../components/OwnerFooter';\r\nimport { ErrorDanish } from '../helpers/ErrorDanish';\r\nimport { UserLoginStatus } from '../helpers/EnumsInternal';\r\nimport MainErrorText from '../components/MainErrorText';\r\nimport { ApiHttpServiceAnon } from '../services/ApiServices';\r\n\r\nfunction LoginPage() {\r\n const userLoginObject = useContext(UserContext);\r\n const history = useHistory();\r\n const [ isClearUser, setIsClearUser ] = useState(false);\r\n const [loginName, setLoginName] = useState('');\r\n const [loginPwd, setLoginPwd] = useState('');\r\n const [spinner, showSpinner] = useState(false);\r\n const [isButtonDisabled, setIsButtonDisabled] = useState(true);\r\n const [errorText, setErrorText] = useState('');\r\n\r\n\r\n useEffect(() => {\r\n if (!isClearUser)\r\n userLogOut(userLoginObject.setLoginUser);\r\n setIsClearUser(true);\r\n }, [ isClearUser, userLoginObject.setLoginUser ]);\r\n\r\n\r\n function onLoginNameInputFieldChange(inputName: string) {\r\n setLoginName(inputName);\r\n\r\n if (inputName && loginPwd)\r\n setIsButtonDisabled(false);\r\n else\r\n setIsButtonDisabled(true);\r\n }\r\n\r\n function onLoginPwdInputFieldChange(inputCode: string) {\r\n setLoginPwd(inputCode);\r\n\r\n if (inputCode && loginName)\r\n setIsButtonDisabled(false);\r\n else\r\n setIsButtonDisabled(true);\r\n }\r\n\r\n\r\n async function handleLoginClick() {\r\n showSpinner(true);\r\n setIsButtonDisabled(true);\r\n setLoginPwd('');\r\n setErrorText('');\r\n\r\n if (loginName === '' || loginPwd === '') {\r\n setErrorText(ErrorDanish[\"LoginUserAndPwdEmpty\"]);\r\n setIsButtonDisabled(false);\r\n showSpinner(false);\r\n }\r\n\r\n else {\r\n await ApiHttpServiceAnon('users/auth', 'POST', {LoginName:loginName, LoginPwd:loginPwd })\r\n .then(result => {\r\n if (!result) {\r\n setErrorText(ErrorDanish[\"GeneralError\"]);\r\n } else {\r\n switch(result.status) {\r\n case 200: // OK\r\n result.json()\r\n .then(resultJson => {\r\n // Generic write error.\r\n if (!resultJson) {\r\n setErrorText(ErrorDanish[\"DbFetchDataError\"]);\r\n // Success.\r\n } else {\r\n switch (resultJson.loginStatus) {\r\n case UserLoginStatus.UnknownUser:\r\n setErrorText(ErrorDanish[\"UnknownUser\"]);\r\n break;\r\n case UserLoginStatus.InvalidPwd:\r\n setErrorText(ErrorDanish[\"LoginInvalidPwd\"]);\r\n break;\r\n case UserLoginStatus.NoMoreAttempts:\r\n setErrorText(ErrorDanish[\"LoginNoMoreAttempts\"]);\r\n break;\r\n case UserLoginStatus.NotActive:\r\n setErrorText(ErrorDanish[\"LoginUserNotActive\"]);\r\n break;\r\n \r\n case UserLoginStatus.Success:\r\n const tmpUserLoginObject = \r\n {\r\n \"appUserId\": resultJson.appUserId,\r\n \"userType\": resultJson.userType,\r\n \"loginName\": resultJson.loginName,\r\n \"stakeholderId\": resultJson.stakeholderId,\r\n \"stakeholder\": resultJson.stakeholder,\r\n \"logoFileName\": resultJson.logoFileName,\r\n \"stakeholderType\": resultJson.stakeholderType,\r\n \"firstname\": resultJson.firstname,\r\n \"lastname\": resultJson.lastname,\r\n \"email\": resultJson.email,\r\n \"phone\": resultJson.phone,\r\n \"logInDateTime\": resultJson.logInDateTime,\r\n \"token\": resultJson.token,\r\n \"refreshToken\": resultJson.refreshToken,\r\n \"refreshTokenExpiry\": resultJson.refreshTokenExpiry\r\n };\r\n\r\n showSpinner(false);\r\n userLoginObject.setLoginUser(tmpUserLoginObject); \r\n userLogIn(tmpUserLoginObject);\r\n history.push(GetUserLoginRedirectLink(resultJson.changePwdNextLoginPrompt, resultJson.userType, resultJson.stakeholderType));\r\n\r\n return;\r\n \r\n case UserLoginStatus.DbError:\r\n default:\r\n setErrorText(ErrorDanish[\"GeneralError\"]);\r\n break;\r\n }\r\n }\r\n });\r\n break;\r\n case 400: // Bad Request\r\n default:\r\n setErrorText(ErrorDanish[\"DbFetchDataError\"]);\r\n break;\r\n }\r\n }\r\n \r\n showSpinner(false);\r\n })\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n setErrorText(ErrorDanish[\"DbConxError\"]);\r\n showSpinner(false);\r\n });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n { spinner && }\r\n
\r\n
\r\n \"Logo\"\r\n
\r\n
\r\n
\r\n

Admin login

\r\n

Log ind herunder hvis du er Advertiser, Supplier eller Processor, for at tilgå din administrative tilgang.

\r\n
e.preventDefault() }>\r\n
\r\n ) => onLoginNameInputFieldChange(e.target.value)}>\r\n \r\n
\r\n
\r\n ) => onLoginPwdInputFieldChange(e.target.value)}>\r\n \r\n
\r\n { errorText !== '' && }\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default LoginPage\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAEJklEQVRYhc2ZTWxUVRTHf30pLeVDoUiLtJQQdFoSPxJoo6y0bLBiqhJAkSYGJVEjmrAhYQEawaU7DWAISYMVjDExWlIXShM0QksrRl3QVmKEaSuFKdF2KJ1pZsi5uW+cvvvmzXvT6ccvmbzOOXfO/c/9mntOC27HxskBC6gD6oFaIARUAAt1qCjQD/QCXUA7cAlIBO0qqMBK4G1gF7AqYF/XgRbgEyBseDPgV+Ay4ANgD1BkeIMRA04Ah4BIPgTu0N/6AcMzNW4Be4EvvKJYhuV/CoGjOkC+xaFjntF9FBpeTaYRXKCFPWd4podW4CXgjjO62wjKtzk9g+LQfZ12G0k3gR8DjYZ1+mnUfXsKlGF+YxbE2UjfO9MN6WtQjpIr07QhgjAM1AA3ccz5kWziEskkDd+10jl0w/D54ZHSUn7Y8gJFltvKSlEKHAbeJG2Kq4DXjaYO2gf6cxYn/DE8TOvffxl2F17TmlIj+BYwz2w3mea+K+r9ofV17Hv0ccPvxUe//cqRy1009/Wwdc1aj5aKeVrTAUuPYpPRxMGNsTu0XbumpmfXQyHDn42mh0MUFlj8ODjA1f/+zdJaIZos+1ZSabgdtPzZy0QywbNVqykrKTH82SgvWaA+mwRO9fVkaa0QTXUicJPhcqGlr1cZd4fWTXI+0/atejnZ7GLfXV2jnvJlfVIva3CDn7Y3746pZ82SpSlbZPwuHXrTDI2NpUY2HB1NbaZ0e+j+JeqZTBrhM1ErI1idwTmJhlWr1dv3uzuJTsTV60DnxVSTvT+fV2Lktb/jQsr+Tpp934WflO2plRVG/AxUy0F9Sx/SnvRHo2w6+7XqSBa7IGtyWfF8kiQZHp986SgtLlZPp335/BK+39JI1aLFXt3ZRETguN9L6PXRUR776oz6+76iIuofrOC9DXVYBQV8eLmb9oGwmr6nV1ZwcH0tE4kEh3/p4txAmJF4XH3u920vU7lwkRE7A7FAAoWlzSfU8/arewyfFzl+LiZzNWKY5w4jsosH/axBL+Q46XD8BD5ZtoK2hilfKQdlBH2dml44xQkXh/4xbDnQIwK78xEJvb6Crs0sdFk6qZ6rtIvAziCJ9Awimi5Zuhzx2RwUKJoS9pVfbg5X/ZyH9nmWKz7XqFQf5NIYtm/UYV2OyMoTZeU5i9tYvsKwZeCkveycSVPPVM/EPBDRFxhVt0nPXiK6VjLbvJteVHKmV3ITOD6LAj8FPk83uNVmZKN8OQvVhW+A7XqDpHBLUGM6u28zPNPHWd1nzNmDm0B0len5GZpu6eNFt8oWHgKFuM7ud+piY76RmK/oPuKZYnsJtJGNI6ncMbcpyIGYjrVOl9w8cdskXlTqo6hJV/WDIFV/+fmSElvei+hO7IRfcmpJW6XUIOLtZGNUi5AEWK5z53L6NwRwD7XKTp78mZwCAAAAAElFTkSuQmCC\"","import React, { useState, ChangeEvent, useContext } from 'react';\r\n\r\nimport OwnerContext from '../context/OwnerContext';\r\nimport { OwnerHttpServiceAuth } from '../services/ApiServices';\r\nimport { ErrorDanish } from '../helpers/ErrorDanish';\r\nimport { ConsentRevokeReasonTypeDanish } from '../helpers/EnumsDanish';\r\nimport { ConsentRevokeReasonType } from '../helpers/EnumsInternal';\r\nimport MainErrorText from './MainErrorText';\r\n\r\n\r\ntype HeaderProps = {\r\n setIsPopoverOpen: Function,\r\n revokeCollectionId: number,\r\n revokedCount: number\r\n}\r\n\r\n\r\nfunction OwnerRevokeReasonModal(props: HeaderProps) {\r\n let { setIsPopoverOpen, revokeCollectionId, revokedCount } = props;\r\n \r\n const ownerLoginObject = useContext(OwnerContext);\r\n const [isSendButtonDisabled, setIsSendButtonDisabled] = useState(true);\r\n const [spinner, showSpinner] = useState(false);\r\n const [errorText, setErrorText] = useState('');\r\n const [revokeReason, setRevokeReason] = useState(ConsentRevokeReasonType.None);\r\n const [otherReason, setOtherReason] = useState('');\r\n\r\n\r\n function onOtherReasonFieldChange(inputOtherReason: string) {\r\n setOtherReason(inputOtherReason);\r\n setIsSendButtonDisabled(inputOtherReason?.trim() === '');\r\n }\r\n\r\n function onSelectReasonClick(revokeReasonType: ConsentRevokeReasonType) {\r\n setRevokeReason(revokeReasonType);\r\n if (Number(revokeReasonType) === ConsentRevokeReasonType.Other)\r\n setIsSendButtonDisabled(otherReason?.trim() === '');\r\n else \r\n setIsSendButtonDisabled(false);\r\n }\r\n\r\n\r\n async function handleReasonSubmitClick() {\r\n showSpinner(true);\r\n setIsSendButtonDisabled(true);\r\n\r\n await OwnerHttpServiceAuth(ownerLoginObject, 'owners/reason' , 'POST',\r\n { CollectionId: revokeCollectionId, ReasonType: revokeReason, OtherReason: otherReason?.trim() })\r\n .then(result => {\r\n if (result === null || result === undefined) {\r\n setErrorText(ErrorDanish[\"GeneralError\"]);\r\n\r\n } else {\r\n switch(result.status) {\r\n case 204: // No Content\r\n setIsPopoverOpen(false);\r\n return;\r\n case 401: // Unauthorized\r\n setErrorText(ErrorDanish['Unauthorized']);\r\n break;\r\n case 403:\r\n setErrorText(ErrorDanish['Forbidden']);\r\n break;\r\n case 409:\r\n setErrorText(ErrorDanish['ConcurrencyException']);\r\n break;\r\n default: // General error\r\n setErrorText(ErrorDanish['DbWriteValuesError']);\r\n break;\r\n }\r\n }\r\n setIsSendButtonDisabled(false);\r\n showSpinner(false);\r\n })\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n setErrorText(ErrorDanish[\"DbConxError\"]);\r\n setIsSendButtonDisabled(false);\r\n showSpinner(false);\r\n });\r\n }\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n

Tilbagekaldelse

\r\n\r\n

{ revokedCount } samtykke{ revokedCount > 1 && 'r' } blev tilbagekaldt.

\r\n

\r\n\r\n

Har du lyst til at fortælle os hvorfor?

\r\n\r\n { Object.keys(ConsentRevokeReasonType).filter(key => !isNaN(parseInt(key)) && key > '1').map((key: any) => (\r\n
\r\n { onSelectReasonClick(key); } } />\r\n \r\n
\r\n ))}\r\n
\r\n { onSelectReasonClick(ConsentRevokeReasonType.Other); } } />\r\n \r\n
\r\n\r\n { Number(revokeReason) === ConsentRevokeReasonType.Other &&\r\n
\r\n ) => onOtherReasonFieldChange(e.target.value)} />\r\n \r\n
\r\n }\r\n\r\n
\r\n \r\n \r\n { spinner &&
}\r\n
\r\n\r\n { errorText !== '' && }\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default OwnerRevokeReasonModal;\r\n","import React from 'react';\r\n\r\n\r\nfunction Disclaimer() {\r\n \r\n return (\r\n
\r\n

Mitsamtykke er udelukkende en service, du kan benytte til at få vist og tilbagekaldt de samtykker, du har afgivet.\r\n Mitsamtykke har kun registreret samtykker, der er afgivet til de virksomheder, der er tilknyttet Mitsamtykke.dk.

\r\n

Mitsamtykke er ikke ansvarlige for oprindelsen af samtykkerne, de data, der er oplyst som afgivet ifm. samtykkerne eller\r\n gyldigheden af selve samtykkerne. Har du spørgsmål eller tvivl omkring de samtykker, du kan se på Mitsamtykke.dk, eller de data,\r\n der er registreret, beder vi dig derfor kontakte den eller de annoncører, som samtykkerne er afgivet til.

\r\n
\r\n );\r\n}\r\n\r\nexport default Disclaimer;\r\n","import { userLogIn } from \"../helpers/AuthUserHelper\";\r\nimport { ErrorDanish } from \"../helpers/ErrorDanish\";\r\n\r\nvar baseUrl: string | undefined = process.env.REACT_APP_API_SERVER_BASEURL;\r\n\r\n\r\n// Wait type function.\r\nconst delay = (ms: number) => new Promise(res => setTimeout(res, ms));\r\n\r\nlet REFRESH_IN_PROGRESS: boolean = false;\r\n\r\nasync function GetUserToken(userLoginObject: { loginUser: any, setLoginUser: Function }) {\r\n let retryCounter = 5;\r\n while (REFRESH_IN_PROGRESS) {\r\n await delay(300);\r\n if (--retryCounter === 0)\r\n return null;\r\n }\r\n\r\n let token = userLoginObject?.loginUser?.token ?? null;\r\n if (!token)\r\n return null;\r\n\r\n const jwtDecode = require('jwt-decode');\r\n const exp = jwtDecode(token).exp;\r\n\r\n if (exp < Date.now() / 1000) {\r\n if (userLoginObject.loginUser && userLoginObject.loginUser.refreshTokenExpiry &&\r\n Date.parse(userLoginObject.loginUser?.refreshTokenExpiry) <= Date.now()) {\r\n return null;\r\n }\r\n\r\n REFRESH_IN_PROGRESS = true;\r\n \r\n await ApiHttpServiceAnon('users/refresh', 'POST',\r\n { AppUserId: userLoginObject.loginUser.appUserId, RefreshToken: userLoginObject.loginUser.refreshToken })\r\n .then(async result => {\r\n if (!result) {\r\n token = null;\r\n } else {\r\n switch(result.status) {\r\n case 200: // OK\r\n await result.json()\r\n .then(resultJson => {\r\n // Generic error.\r\n if (!resultJson) {\r\n token = null;\r\n // Success.\r\n } else {\r\n userLoginObject.loginUser.token = resultJson.token;\r\n userLoginObject.loginUser.refreshToken = resultJson.refreshToken;\r\n userLoginObject.loginUser.refreshTokenExpiry = resultJson.refreshTokenExpiry;\r\n userLogIn(userLoginObject.loginUser);\r\n token = resultJson.token;\r\n }\r\n });\r\n break;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n token = null;\r\n });\r\n\r\n REFRESH_IN_PROGRESS = false;\r\n }\r\n\r\n return token;\r\n}\r\n\r\n\r\nasync function ApiHttpServiceAnon(controller: string, method: TypeControllerMehod,\r\n body: {} | null = null, querystring: string | null = null, signal: AbortSignal | null = null) {\r\n\r\n if (querystring)\r\n controller += '?' + querystring\r\n\r\n return await fetch(\r\n `${baseUrl}${controller}`,\r\n {\r\n method: method,\r\n signal: signal,\r\n headers: new Headers({\r\n 'Content-Type' : 'application/json',\r\n 'Accept' : 'application/json'\r\n }),\r\n body: method === 'GET' || !body ? null : JSON.stringify(body)\r\n }\r\n )\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n return new Response(null, { status: 500 }); // Internal Error\r\n });\r\n}\r\n\r\n\r\nasync function ApiHttpServiceAuth(userLoginObject: { loginUser: any, setLoginUser: Function }, controller: string, method: TypeControllerMehod,\r\n body: {} | null = null, querystring: string | null = null, signal: AbortSignal | null = null) {\r\n\r\n var token = await GetUserToken(userLoginObject);\r\n\r\n // No token.\r\n if (!token) {\r\n return new Response(null, { status: 401 }); // Unauthorised\r\n }\r\n else {\r\n if (querystring)\r\n controller += '?' + querystring\r\n\r\n return await fetch(\r\n `${baseUrl}${controller}`,\r\n {\r\n method: method,\r\n signal: signal,\r\n headers: new Headers({\r\n 'Content-Type' : 'application/json',\r\n 'Accept' : 'application/json',\r\n 'Authorization' : 'Bearer ' + token\r\n }),\r\n body: method === 'GET' || !body ? null : JSON.stringify(body)\r\n }\r\n )\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n return new Response(null, { status: 500 }); // Internal Error\r\n });\r\n }\r\n}\r\n\r\nasync function ApiHttpServiceAuthFileUpload(userLoginObject: { loginUser: any, setLoginUser: Function }, controller: string,\r\n method: TypeControllerMehod, filData: FormData) {\r\n\r\n var token = await GetUserToken(userLoginObject);\r\n\r\n // No token.\r\n if (!token) {\r\n return new Response(null, { status: 401 }); // Unauthorised\r\n }\r\n\r\n return await fetch(\r\n `${baseUrl}${controller}`,\r\n {\r\n method: method,\r\n headers: new Headers({ \r\n 'Authorization' : 'Bearer ' + token,\r\n 'Accept' : 'application/json'\r\n }),\r\n body: filData\r\n });\r\n}\r\n\r\n\r\nfunction GetStakeholderLogoUrl(stakeholderId: number) {\r\n return `${baseUrl}stakeholders/${stakeholderId}/logo`;\r\n}\r\n\r\n\r\nfunction GetStandardApiError(statusCode: number, isWrite: boolean = false) {\r\n switch(statusCode) {\r\n case 400: // Bad Request\r\n return isWrite ? ErrorDanish[\"DbWriteValuesError\"] : ErrorDanish[\"DbInvalidRequestError\"];\r\n case 401: // Unauthorised\r\n return ErrorDanish['Unauthorized'];\r\n case 403: // Forbidden\r\n return ErrorDanish['Forbidden'];\r\n case 404: // Not Found\r\n return ErrorDanish['IdNotAvailable'];\r\n case 409:\r\n return ErrorDanish['ConcurrencyException'];\r\n default:\r\n return isWrite ? ErrorDanish[\"DbGeneralWriteError\"] : ErrorDanish[\"DbFetchDataError\"];\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n// Owner\r\nasync function OwnerHttpServiceAuth(ownerLoginObject: { ownerStatus: any, setOwnerStatus: Function }, controller: string, method: TypeControllerMehod,\r\n body: {} | null = null, querystring: string | null = null, signal: AbortSignal | null = null) {\r\n\r\n var token = ownerLoginObject.ownerStatus?.token;\r\n\r\n // No token.\r\n if (!token)\r\n return new Response(null, { status: 401 }); // Unauthorised\r\n else {\r\n if (querystring)\r\n controller += '?' + querystring\r\n\r\n return await fetch(\r\n `${baseUrl}${controller}`,\r\n {\r\n method: method,\r\n signal: signal,\r\n headers: new Headers({\r\n 'Content-Type' : 'application/json',\r\n 'Accept' : 'application/json',\r\n 'Authorization' : 'Bearer ' + token\r\n }),\r\n body: method === 'GET' || !body ? null : JSON.stringify(body)\r\n }\r\n )\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n return new Response(null, { status: 500 }); // Internal Error\r\n });\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport { ApiHttpServiceAnon, ApiHttpServiceAuth, ApiHttpServiceAuthFileUpload, GetStakeholderLogoUrl, GetStandardApiError, OwnerHttpServiceAuth };\r\n","import { createContext } from 'react'\r\n\r\n\r\nconst OwnerContext = createContext<{ ownerStatus: any, setOwnerStatus: any }>({ ownerStatus: null, setOwnerStatus: null });\r\n\r\nexport const OwnerProvider = OwnerContext.Provider\r\nexport const OwnerConsumer = OwnerContext.Consumer\r\n\r\nexport default OwnerContext\r\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgNav4(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 40,\n height: 48,\n viewBox: \"0 0 40 48\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fillRule: \"evenodd\",\n d: \"M496,556H472v4h-4V512h28a4,4,0,0,1,4,4v36A4,4,0,0,1,496,556Zm-12.961-11.446a2.221,2.221,0,1,0-2.3-2.235A2.261,2.261,0,0,0,483.039,544.554Zm0.153-20.417a7.9,7.9,0,0,0-6.336,3.122l2.663,2.174a4.027,4.027,0,0,1,3.428-1.959,2.9,2.9,0,0,1,3.061,2.877c0.061,2.234-1.928,3.275-4.9,3.153v4.9h3.918v-2.785c2.357-.49,5.111-2.174,5.05-5.755C490.018,526.372,487.171,524.137,483.192,524.137ZM460,554V514a2,2,0,0,1,2-2h2v44h-2A2,2,0,0,1,460,554Z\",\n transform: \"translate(-460 -512)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNav4);\nexport default __webpack_public_path__ + \"static/media/nav-4.e06bf952.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useContext, useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\nimport Logo from '../../assets/logo.svg';\r\nimport { ReactComponent as NavSVG1 } from '../../assets/nav/nav-1.svg';\r\nimport { ReactComponent as NavSVG4 } from '../../assets/nav/nav-4.svg';\r\nimport userImg from '../../assets/user-img.png';\r\n\r\nimport OwnerContext from '../../context/OwnerContext';\r\n\r\n\r\nfunction OwnerLinksBar(props: any) {\r\n let { showSubMenu } = props;\r\n\r\n enum menuLinkActive {\r\n none = 0,\r\n consents = 1,\r\n help = 2,\r\n info = 3\r\n }\r\n\r\n enum subMenuState {\r\n none = 0,\r\n user = 1\r\n }\r\n\r\n const ownerLoginObject = useContext(OwnerContext);\r\n const [ activeMenu, setActiveMenu ] = useState(menuLinkActive.consents);\r\n const [ showUserMenu, setShowUserMenu ] = useState(showSubMenu);\r\n\r\n\r\n function setMenuState(activeLink: menuLinkActive | null, subMenu: subMenuState) {\r\n switch (subMenu) {\r\n case subMenuState.user:\r\n setShowUserMenu(!showUserMenu);\r\n break;\r\n default:\r\n setShowUserMenu(false);\r\n }\r\n\r\n if (activeLink !== null)\r\n setActiveMenu(activeLink); \r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n \"Mitsamtykke\r\n \r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default OwnerLinksBar;\r\n","export default \"data:image/png;base64,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\"","import React from 'react';\r\n\r\nimport { ReactComponent as ArrowDown } from '../../assets/arrow-down.svg';\r\nimport GenericLogo from '../../assets/company-placeholder.png';\r\n\r\nimport { GetStakeholderLogoUrl } from '../../services/ApiServices';\r\n\r\n\r\ntype HeaderProps = {\r\n advertiserName: string,\r\n advertiserId: number,\r\n advertiserLogo: string,\r\n clickRevoke: Function,\r\n isRevokeButtonsDisabled: boolean,\r\n showRevoke: boolean\r\n}\r\n\r\n\r\nfunction OwnerConsentsAdvertiserBar(props: HeaderProps) {\r\n let { advertiserName, advertiserId, advertiserLogo, clickRevoke, isRevokeButtonsDisabled, showRevoke } = props;\r\n\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n { advertiserLogo === null || advertiserLogo === 'null' || advertiserLogo === '' ?\r\n \"Logo\"\r\n :\r\n {advertiserName\r\n }\r\n
\r\n

{advertiserName}

\r\n
\r\n \r\n
\r\n { showRevoke ?\r\n \r\n :\r\n
\r\n

Tilbagekaldt

  \r\n
\r\n }\r\n\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default OwnerConsentsAdvertiserBar;","import React, { Fragment } from 'react';\r\nimport Collapsible from 'react-collapsible';\r\n\r\nimport { ReactComponent as ArrowDown } from '../../assets/arrow-down.svg';\r\n\r\nimport { ConsentHistoryActionSourceTypeDanish, ConsentHistoryActorTypeDanish } from '../../helpers/EnumsDanish';\r\n\r\n\r\nfunction OwnerConsentHistory(props: any) {\r\n let { hist } = props;\r\n\r\n return (\r\n \r\n

Vis historik

\r\n

Skjul historik

\r\n \r\n \r\n }\r\n >\r\n { hist.map((hist: any, index: number) => (\r\n \r\n \r\n {new Date(hist.createDateTime).toLocaleString('en-DK').replace(',', '')}: { hist.isRevokedAction ? 'Tilbagekaldt' : 'Oprettet' } på Mitsamtykke\r\n ({ hist.stakeholder ? hist.stakeholder : ConsentHistoryActorTypeDanish[hist.actorType] })\r\n
\r\n
\r\n ))}\r\n
\r\n );\r\n}\r\n\r\nexport default OwnerConsentHistory\r\n","import React from 'react';\r\n\r\nimport { ReactComponent as InfoIcon } from '../../assets/info.svg';\r\n\r\nimport { ConsentTypeContactDanish } from '../../helpers/EnumsDanish';\r\nimport GenderToDanish from '../../helpers/GenderDanish';\r\nimport OwnerConsentHistory from './OwnerConsentHistory';\r\nimport ConsentAuxFieldsRow from '../ConsentAuxFieldsRow';\r\n\r\n\r\ntype HeaderProps = {\r\n consent: any,\r\n consentTypeImages: any\r\n}\r\n\r\nfunction OwnerConsent(props: HeaderProps) {\r\n const { consent, consentTypeImages } = props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n { consent.campaignTitle?.length > 25 ?\r\n

{ consent.campaignTitle?.substring(0, 25) }...\r\n \r\n  \r\n { consent.campaignTitle }\r\n \r\n

\r\n :\r\n

{ consent.campaignTitle }

\r\n }\r\n
\r\n
\r\n \r\n

{ new Date(consent.consentDateTime).toLocaleString('en-DK').replace(',', '') }

\r\n
\r\n
\r\n
\r\n { consent.consentTypes.map((ct: number, index: number) => (\r\n
{ consentTypeImages[ct]}
\r\n ))}\r\n
\r\n
\r\n
\r\n \t\t\t\t\r\n

\r\n { consent.isRevoked ? 'Tilbagekaldt' : 'Aktiv' }\r\n

\r\n \t\t\t\t
\r\n
\r\n\r\n
\r\n
\r\n \r\n

{consent.firstname}

\r\n \r\n

{consent.email} 

\r\n \r\n

{ new Date(consent.dateOfBirth).toLocaleDateString() } 

\r\n \r\n
\r\n
\r\n \r\n

{consent.lastname}

\r\n \r\n

{consent.address} 

\r\n \r\n

\r\n \r\n
\r\n
\r\n \r\n

{consent.mobilePhone}

\r\n \r\n

{consent.postalCode} 

\r\n \r\n

\r\n Link\r\n {consent.signupURL}\r\n

 \r\n \r\n
\r\n
\r\n \r\n

{consent.phone} 

\r\n \r\n

{consent.city} 

\r\n \r\n

{consent.signupIP} 

\r\n \r\n
\r\n
\r\n\r\n\r\n { (consent.screenshotUrl1 || consent.screenshotUrl2 ||consent.videoUrl) &&\r\n
\r\n
\r\n { consent.screenshotUrl1 !== null && consent.screenshotUrl1 !== '' &&\r\n Screenshot af kampagne\r\n }\r\n { consent.screenshotUrl2 &&\r\n Screenshot af kampagne\r\n }\r\n { consent.videoUrl &&\r\n Videooptagelse af kampagne\r\n }\r\n
\r\n
\r\n }\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default OwnerConsent;\r\n","import React from 'react';\r\nimport { Page, Text, View, Document, StyleSheet } from '@react-pdf/renderer';\r\nimport { ConsentTypeContactDanish } from '../../helpers/EnumsDanish';\r\nimport { PhoneNumberSpacing } from '../../helpers/TextCheckers';\r\n\r\n\r\ntype HeaderProps = {\r\n advertisersWithConsents: any\r\n}\r\n\r\n\r\nfunction OwnerConsentsPdf(props: HeaderProps) {\r\n let { advertisersWithConsents } = props;\r\n\r\n const styles = StyleSheet.create({\r\n page: {\r\n backgroundColor: '#ffffff',\r\n color: '000000',\r\n fontSize: '12',\r\n fontWeight: 'normal'\r\n },\r\n header: {\r\n backgroundColor: '#effaf9',\r\n marginBottom: '12px',\r\n textAlign: 'center',\r\n color: '#002f38',\r\n fontSize: '16'\r\n },\r\n headline: {\r\n margin: '16px 0',\r\n fontSize: '20'\r\n },\r\n subheader: {\r\n marginBottom: '10px',\r\n color: '#004000'\r\n },\r\n pageheader: {\r\n marginBottom: '10px',\r\n color: '#004000',\r\n fontSize: '18'\r\n },\r\n pagesubheader: {\r\n marginTop: '4px',\r\n marginBottom: '8px',\r\n color: '#000040',\r\n fontSize: '16'\r\n },\r\n section: {\r\n borderWidth: 1,\r\n borderColor: '#c0c0f0',\r\n margin: '4px 8px 12px 8px',\r\n padding: '0',\r\n borderRadius: 6\r\n },\r\n key: {\r\n marginTop: '10px',\r\n marginBottom: '4px',\r\n fontWeight: 'bold'\r\n },\r\n capitalize: {\r\n textTransform: 'capitalize'\r\n },\r\n advertiserHeader: {\r\n backgroundColor: '#add8e6',\r\n color: '#000000',\r\n margin: '.4em 6px',\r\n padding: '4px 50px 4px 10px',\r\n borderRadius: 6\r\n },\r\n consentBox: {\r\n margin: '4px 12px',\r\n backgroundColor: '#f5f5f5',\r\n fontSize: '10',\r\n padding: '8px',\r\n lineHeight: '1.4',\r\n borderRadius: 4\r\n }\r\n });\r\n\r\n\r\n return (\r\n \r\n \r\n { advertisersWithConsents !== null ?\r\n <>\r\n \r\n Mitsamtykke.dk - dine samtykker\r\n {advertisersWithConsents[0].consents[0].firstname} {advertisersWithConsents[0].consents[0].lastname}\r\n \r\n \r\n { advertisersWithConsents.map((adv: any, index: number) => (\r\n \r\n { adv.stakeholderName }\r\n { adv !== null && adv.consents.map((consent: any, indexInner: number) => (\r\n \r\n Status: {consent.isRevoked ? 'Tilbagekaldt' : 'Aktiv'}\r\n Kampagne: {consent.campaignTitle}\r\n Fornavn: {consent.firstname}\r\n Efternavn: {consent.lastname}\r\n Mobiltelefon: {PhoneNumberSpacing(consent.mobilePhone)}\r\n Emailaddresse: {consent.email}\r\n Fastnettelefon: {PhoneNumberSpacing(consent.phone)}\r\n Adresse: {consent.address}\r\n Postnr.: {consent.postalCode}\r\n By: {consent.city}\r\n Fødselsdato: {consent.dateOfBirth}\r\n Køn: { consent.gender === '0' ? 'Mand' : 'Kvinde'}\r\n Fra IP-Adresse: {consent.signupIP}\r\n Webside: {consent.signupURL}\r\n Oprettet: {consent.consentDateTime}\r\n { consent.consentAuxiliaryFieldTypes !== null && Object.keys(consent.consentAuxiliaryFieldTypes).length > 0 &&\r\n Object.keys(consent.consentAuxiliaryFieldTypes).map((auxField: any, index: number) => (\r\n {auxField}: {consent.consentAuxiliaryFieldTypes[auxField]}\r\n ))\r\n }\r\n { consent.consentTypes !== null && Object.keys(consent.consentTypes).length > 0 &&\r\n Type: { consent.consentTypes.map((ct: number, index: number) => (\r\n { ConsentTypeContactDanish[ct] } \r\n ))}\r\n }\r\n \r\n ))\r\n }\r\n \r\n ))\r\n }\r\n \r\n \r\n :\r\n \"En fejl opstod ved generering af PDF dokument\"\r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nexport default OwnerConsentsPdf;","import React, { useEffect, useState, useContext, ChangeEvent } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Collapsible from 'react-collapsible';\r\nimport { PDFDownloadLink } from \"@react-pdf/renderer\";\r\n\r\nimport { ReactComponent as DownloadIcon } from '../assets/download-icon.svg';\r\nimport { ReactComponent as DeleteIcon } from '../assets/delete-icon.svg';\r\nimport { ReactComponent as CTSmsIcon } from '../assets/sms.svg';\r\nimport { ReactComponent as CTemailIcon } from '../assets/email.svg';\r\nimport { ReactComponent as CTPhoneIcon } from '../assets/phone.svg';\r\n\r\nimport OwnerContext from '../context/OwnerContext';\r\nimport { isOwnerStatusValid, ownerLogOut } from '../helpers/AuthOwnerHelper';\r\nimport { OwnerHttpServiceAuth } from '../services/ApiServices';\r\nimport { ErrorDanish } from '../helpers/ErrorDanish';\r\nimport Spinner from '../components/Spinner';\r\nimport OwnerFooter from '../components/OwnerFooter';\r\nimport OwnerLinksBar from '../components/ownerConsents/OwnerLinksBar';\r\nimport OwnerConsentsAdvertiserBar from '../components/ownerConsents/OwnerConsentsAdvertiserBar';\r\nimport OwnerConsent from '../components/ownerConsents/OwnerConsent';\r\nimport MainErrorText from '../components/MainErrorText';\r\nimport OwnerRevokeReasonModal from '../components/OwnerRevokeReasonModal';\r\nimport OwnerConsentsPdf from '../components/ownerConsents/OwnerConsentsPdf';\r\nimport { PhoneNumberSpacing } from '../helpers/TextCheckers';\r\nimport Disclaimer from '../components/Disclaimer';\r\n\r\n\r\nfunction OwnerConsentsPage() {\r\n\r\n const ownerLoginObject = useContext(OwnerContext);\r\n const history = useHistory();\r\n const [ consentsRequested, setConsentsRequested ] = useState(false);\r\n const [ spinner, showSpinner ] = useState(true);\r\n const [ advertisersConsentsCollection, setAdvertisersConsentsCollection ] = useState(null);\r\n const [ errorText, setErrorText ] = useState('');\r\n const [ searchText, setSearchText ] = useState('');\r\n const [ numberRevoked, setNumberRevoked ] = useState(null);\r\n const [ revokeCollectionId, setRevokeCollectionId ] = useState(null);\r\n const [ isRevokeButtonsDisabled, setIsRevokeButtonsDisabled ] = useState(true);\r\n const [ isExportButtonsDisabled, setIsExportButtonsDisabled ] = useState(true);\r\n const [ readyForPdf, setReadyForPdf ] = useState(false);\r\n \r\n const consentTypeImages = [ , , ];\r\n\r\n\r\n useEffect(() => {\r\n if (!consentsRequested) {\r\n // Check ownerStatus exists and is not expired.\r\n if (!isOwnerStatusValid(ownerLoginObject)) {\r\n history.push('/');\r\n }\r\n\r\n if (ownerLoginObject !== null && ownerLoginObject.ownerStatus !== null) {\r\n showSpinner(true);\r\n setConsentsRequested(true);\r\n\r\n OwnerHttpServiceAuth(ownerLoginObject, 'owners/consents', 'GET')\r\n .then(result => {\r\n // No result returned.\r\n if (result === undefined || result === null) {\r\n setErrorText(ErrorDanish[\"GeneralError\"]);\r\n } else {\r\n switch(result.status) {\r\n case 200: // Created\r\n result.json()\r\n .then(resultJson => {\r\n // Generic write error.\r\n if (resultJson === undefined || resultJson === null) {\r\n setErrorText(ErrorDanish[\"DbFetchDataError\"]);\r\n // Success.\r\n } else {\r\n setAdvertisersConsentsCollection(resultJson);\r\n setErrorText('');\r\n setIsRevokeButtonsDisabled(false);\r\n setIsExportButtonsDisabled(false);\r\n setTimeout(() => { setReadyForPdf(true) }, 1);\r\n }\r\n });\r\n break;\r\n case 400: // Bad Request\r\n setErrorText(ErrorDanish['DbFetchDataError']);\r\n break;\r\n case 401: // Unauthorized\r\n case 403: // Forbidden\r\n ownerLogOut(ownerLoginObject.setOwnerStatus);\r\n history.push('/');\r\n break;\r\n default: // General write error\r\n setErrorText(ErrorDanish['DbFetchDataError']);\r\n break;\r\n }\r\n }\r\n\r\n showSpinner(false);\r\n })\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n setErrorText(ErrorDanish[\"DbConxError\"]);\r\n showSpinner(false);\r\n });\r\n }\r\n }\r\n }, [ ownerLoginObject, history, consentsRequested, setAdvertisersConsentsCollection ]);\r\n\r\n \r\n function revokeConsents(advertiserId: number, allAdvertisers: boolean = false) {\r\n showSpinner(true);\r\n setErrorText('');\r\n setIsRevokeButtonsDisabled(true);\r\n\r\n OwnerHttpServiceAuth(ownerLoginObject, 'owners/revoke', 'POST', { advertiserId:advertiserId, byOwnerViaLink: 0, allAdvertisers: allAdvertisers })\r\n .then(result => {\r\n if (result === null || result === undefined) {\r\n setErrorText(ErrorDanish[\"GeneralError\"]);\r\n } else {\r\n switch(result.status) {\r\n case 200: // OK\r\n result.json()\r\n .then(resultJson => {\r\n // Generic write error.\r\n if (resultJson === undefined || resultJson === null) {\r\n setErrorText(ErrorDanish[\"DbGeneralWriteError\"]);\r\n // Success.\r\n } else {\r\n setNumberRevoked(resultJson.consentsRevoked);\r\n setRevokeCollectionId(resultJson.revokeCollectionId);\r\n setAdvertisersConsentsCollection(null);\r\n }\r\n });\r\n break;\r\n case 400: // Bad Request\r\n default: // General error\r\n setErrorText(ErrorDanish['DbGeneralWriteError']);\r\n break;\r\n }\r\n }\r\n\r\n setIsRevokeButtonsDisabled(false);\r\n showSpinner(false);\r\n })\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n setNumberRevoked(null);\r\n setErrorText(ErrorDanish[\"DbConxError\"]);\r\n setIsRevokeButtonsDisabled(false);\r\n showSpinner(false);\r\n });\r\n }\r\n\r\n\r\n function closeRevokeReasonModal() {\r\n setNumberRevoked(null);\r\n setConsentsRequested(false);\r\n setIsRevokeButtonsDisabled(false);\r\n }\r\n \r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n { spinner && }\r\n { numberRevoked !== null && revokeCollectionId !== null &&\r\n }\r\n
\r\n

Dine samtykker

\r\n

Herunder kan du se og tilbagekalde dine markedsføringssamtykker fra vores samarbejdspartnere

\r\n
\r\n
\r\n { readyForPdf && advertisersConsentsCollection !== null && advertisersConsentsCollection.advertisersWithConsents.length > 0 && !isExportButtonsDisabled &&\r\n }\r\n fileName=\"Samtykker.pdf\"\r\n className=\"btn-transparent\"\r\n >\r\n {({ loading }) =>\r\n loading ? \"Henter dokument...\" : \r\n }\r\n \r\n }\r\n { (advertisersConsentsCollection !== null && advertisersConsentsCollection.existsUnrevoked) &&\r\n \r\n }\r\n
\r\n
\r\n\r\n
\r\n ) => setSearchText(e.target.value) } />\r\n
\r\n\r\n
\r\n\r\n { errorText !== '' && }\r\n\r\n { advertisersConsentsCollection !== null &&\r\n
\r\n
\r\n

Samtykker tilknyttet

\r\n

{ PhoneNumberSpacing(advertisersConsentsCollection.mobileOrEmailSearchText) }

\r\n
\r\n
\r\n }\r\n\r\n { advertisersConsentsCollection !== null && advertisersConsentsCollection.advertisersWithConsents.length > 0 ?\r\n
\r\n { advertisersConsentsCollection.advertisersWithConsents.filter((adv: any) => adv.stakeholderName.toLowerCase().startsWith(searchText.toLowerCase()))\r\n .map((adv: any, index: number) => (\r\n
\r\n \r\n }>\r\n { adv.consents.map((consent: any, indexInner: number) => (\r\n \r\n ))\r\n }\r\n \r\n
\r\n ))}\r\n
\r\n :\r\n advertisersConsentsCollection !== null && advertisersConsentsCollection.advertisersWithConsents.length === 0 &&\r\n

Der blev ingen samtykker fundet

\r\n }\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default OwnerConsentsPage\r\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowBack(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 29.062,\n height: 20.156,\n viewBox: \"0 0 29.062 20.156\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fillRule: \"evenodd\",\n d: \"M1013,279H992.829l4.656,4.657a2,2,0,1,1-2.828,2.828l-7.719-7.719a1.921,1.921,0,0,1-.423-0.281,2.214,2.214,0,0,1,0-2.97,1.921,1.921,0,0,1,.423-0.281l7.719-7.719a2,2,0,1,1,2.828,2.828L992.829,275H1013A2,2,0,0,1,1013,279Z\",\n transform: \"translate(-985.938 -266.938)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowBack);\nexport default __webpack_public_path__ + \"static/media/arrow-back.602ef2fd.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBoxShape(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: \"43px\",\n height: \"43px\",\n viewBox: \"0 0 86 86\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fill-color\",\n fillRule: \"evenodd\",\n strokeWidth: \"4px\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n fill: \"none\",\n d: \"M79.120,71.552 C79.150,71.424 79.192,71.301 79.217,71.171 C80.797,65.154 81.858,54.340 81.858,41.920 C81.858,29.499 80.797,18.685 79.217,12.668 C79.192,12.538 79.150,12.415 79.120,12.285 C79.069,12.101 79.022,11.874 78.970,11.699 L78.970,11.805 C78.000,8.451 75.378,5.836 72.021,4.877 L72.158,4.877 C71.929,4.810 71.636,4.749 71.390,4.683 C71.344,4.672 71.301,4.657 71.255,4.647 C65.251,3.059 54.402,1.989 41.936,1.989 C29.470,1.989 18.621,3.059 12.617,4.647 C12.572,4.657 12.529,4.672 12.484,4.682 C12.237,4.747 11.944,4.810 11.714,4.877 L11.852,4.877 C8.486,5.840 5.857,8.466 4.894,11.833 L4.894,11.699 C4.828,11.922 4.769,12.204 4.704,12.442 C4.692,12.500 4.673,12.555 4.661,12.613 C3.073,18.619 2.005,29.462 2.005,41.920 C2.005,54.377 3.073,65.220 4.661,71.226 C4.673,71.284 4.692,71.341 4.704,71.397 C4.769,71.635 4.828,71.917 4.894,72.140 L4.894,72.006 C5.861,75.384 8.504,78.020 11.888,78.973 L11.714,78.973 C17.502,80.691 28.861,81.861 41.936,81.861 C55.011,81.861 66.370,80.691 72.158,78.973 L71.985,78.973 C75.360,78.022 77.997,75.399 78.970,72.034 L78.970,72.140 C79.022,71.965 79.069,71.739 79.120,71.552 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBoxShape);\nexport default __webpack_public_path__ + \"static/media/box-shape.b194417f.svg\";\nexport { ForwardRef as ReactComponent };","import React, { ChangeEvent, useState, useContext, FormEvent } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport OwnerContext from '../../context/OwnerContext';\r\nimport { isOwnerStatusValid } from '../../helpers/AuthOwnerHelper';\r\nimport { ApiHttpServiceAnon } from '../../services/ApiServices';\r\nimport { OwnerLoginStage, StringValueType } from '../../helpers/EnumsInternal';\r\nimport { IsMobileOrEmail } from '../../helpers/TextCheckers';\r\nimport MainErrorText from '../../components/MainErrorText';\r\nimport { ErrorDanish } from '../../helpers/ErrorDanish';\r\n\r\n\r\ntype HeaderProps = {\r\n setInputMobileOrEmail: Function,\r\n showSpinner: Function,\r\n setOwnerLoginStage: Function,\r\n setLoginCodeId: Function\r\n}\r\n\r\nfunction OwnerConsentsFind(props: HeaderProps) {\r\n let {setInputMobileOrEmail, showSpinner, setOwnerLoginStage, setLoginCodeId} = props;\r\n\r\n const ownerLoginObject = useContext(OwnerContext);\r\n const history = useHistory();\r\n const [errorText, setErrorText] = useState('');\r\n const [codeInputFieldValue, setCodeInputFieldValue] = useState('');\r\n const [isButtonDisabled, setIsButtonDisabled] = useState(true);\r\n\r\n\r\n function onInputFieldChange(inputCode: string) {\r\n inputCode = inputCode.replace(/\\s/g, '');\r\n setCodeInputFieldValue(inputCode);\r\n setIsButtonDisabled(IsMobileOrEmail(inputCode) === StringValueType.Invalid);\r\n }\r\n\r\n async function handleFindClick(e: FormEvent) {\r\n e.preventDefault();\r\n showSpinner(true);\r\n setIsButtonDisabled(true);\r\n setErrorText('');\r\n \r\n let searchStringType: StringValueType = IsMobileOrEmail(codeInputFieldValue);\r\n \r\n if (searchStringType !== StringValueType.MobilePhone8 && searchStringType !== StringValueType.EmailAddress) {\r\n setErrorText(ErrorDanish[\"MobileOrEmailInvalid\"]);\r\n setIsButtonDisabled(false);\r\n showSpinner(false);\r\n }\r\n else {\r\n // Check if already has a ownerStatus and it is not expired.\r\n if (isOwnerStatusValid(ownerLoginObject) && codeInputFieldValue === ownerLoginObject.ownerStatus.mobileOrEmail) {\r\n history.push('/consents');\r\n return;\r\n }\r\n\r\n setErrorText('');\r\n setInputMobileOrEmail(codeInputFieldValue);\r\n setIsButtonDisabled(true);\r\n showSpinner(true);\r\n\r\n let apiParam: string = \"\";\r\n if (searchStringType === StringValueType.MobilePhone8) {\r\n apiParam = \"mobile/\" + codeInputFieldValue;\r\n } else if (searchStringType === StringValueType.EmailAddress) {\r\n apiParam = \"email/\" + codeInputFieldValue;\r\n }\r\n\r\n await ApiHttpServiceAnon(`owners/${apiParam}/code`, 'GET')\r\n .then(result => {\r\n // No result returned.\r\n if (result === undefined || result === null) {\r\n setErrorText(ErrorDanish[\"GeneralError\"]);\r\n } else {\r\n switch(result.status) {\r\n case 200: // OK\r\n result.json()\r\n .then(resultJson => {\r\n // Generic write error.\r\n if (resultJson === undefined || resultJson === null) {\r\n setErrorText(ErrorDanish[\"DbFetchDataError\"]);\r\n // Success.\r\n } else if (resultJson.loginCodeId > 0) {\r\n let loginCode = resultJson.loginCodeId;\r\n setLoginCodeId(loginCode);\r\n setOwnerLoginStage(OwnerLoginStage.Code);\r\n }\r\n // No consents found, but redirect anyhow.\r\n else {\r\n setOwnerLoginStage(OwnerLoginStage.Code);\r\n }\r\n });\r\n break;\r\n case 429: // Too Many Requests\r\n setErrorText(ErrorDanish['TooManyRecentAttempts']);\r\n break;\r\n case 404:\r\n setErrorText(ErrorDanish['NoConsentsOnOwnerLogin'] + codeInputFieldValue + '. ' + ErrorDanish['NoConsentsInputQuestion'] +\r\n (IsMobileOrEmail(codeInputFieldValue) === StringValueType.MobilePhone8 ? 'dit nummer' : 'din email'));\r\n break;\r\n case 400: // Bad Request\r\n default:\r\n setErrorText(ErrorDanish['DbFetchDataError']);\r\n break;\r\n }\r\n }\r\n\r\n setIsButtonDisabled(false);\r\n showSpinner(false);\r\n })\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n setErrorText(ErrorDanish[\"DbConxError\"]);\r\n setIsButtonDisabled(false);\r\n showSpinner(false);\r\n });\r\n }\r\n }\r\n \r\n\r\n return (\r\n
\r\n { errorText !== '' && }\r\n
\r\n ) => onInputFieldChange(e.target.value)} />\r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default OwnerConsentsFind\r\n","import React, { ChangeEvent, useState, useContext, FormEvent } from 'react';\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nimport OwnerContext from '../../context/OwnerContext';\r\nimport { ApiHttpServiceAnon } from '../../services/ApiServices';\r\nimport { IsMobileOrEmail } from '../../helpers/TextCheckers';\r\nimport { ErrorDanish } from '../../helpers/ErrorDanish';\r\nimport { StringValueType, OwnerLoginAttemptStatus, OwnerLoginStage } from '../../helpers/EnumsInternal';\r\nimport MainErrorText from '../../components/MainErrorText';\r\nimport { ownerLogIn } from '../../helpers/AuthOwnerHelper';\r\n\r\n\r\ntype HeaderProps = {\r\n setOwnerLoginStage: Function,\r\n showSpinner: Function,\r\n inputMobileOrEmail: string,\r\n loginCodeId: number\r\n}\r\n\r\nfunction OwnerConsentsSendCode(props: HeaderProps) {\r\n let {setOwnerLoginStage, showSpinner, inputMobileOrEmail, loginCodeId} = props;\r\n \r\n const ownerLoginObject = useContext(OwnerContext);\r\n const history = useHistory();\r\n const [errorText, setErrorText] = useState('');\r\n const [codeInputFieldValue, setCodeInputFieldValue] = useState('');\r\n const [isSubmitButtonDisabled, setIsSubmitButtonDisabled] = useState(true);\r\n const [showBackButton, setShowBackButton] = useState(false);\r\n \r\n\r\n function onInputFieldChange(inputCode: string) {\r\n setCodeInputFieldValue(inputCode);\r\n setIsSubmitButtonDisabled(inputCode === '');\r\n }\r\n\r\n \r\n async function handleSendCodeClick(e: FormEvent) {\r\n e.preventDefault()\r\n\r\n if (IsMobileOrEmail(inputMobileOrEmail) === StringValueType.Invalid) {\r\n history.push('/Error');\r\n return;\r\n }\r\n\r\n showSpinner(true);\r\n setIsSubmitButtonDisabled(true);\r\n setCodeInputFieldValue('');\r\n setErrorText('');\r\n\r\n await ApiHttpServiceAnon('owners/auth', 'POST',\r\n { LoginCodeId:loginCodeId, LoginCode:codeInputFieldValue, OwnerMobilePhoneOrEmailAddress:inputMobileOrEmail })\r\n .then(result => {\r\n // No result returned.\r\n if (result === undefined || result === null) {\r\n setErrorText(ErrorDanish[\"GeneralError\"]);\r\n } else {\r\n switch(result.status) {\r\n case 200: // OK\r\n result.json()\r\n .then(resultJson => {\r\n // Generic write error.\r\n if (resultJson === undefined || resultJson === null) {\r\n setErrorText(ErrorDanish[\"DbFetchDataError\"]);\r\n // Response json received.\r\n } else {\r\n setIsSubmitButtonDisabled(false);\r\n if (handleReturnStatusErrorAndStage(resultJson))\r\n return;\r\n }\r\n });\r\n break;\r\n case 400: // Bad Request\r\n default:\r\n setErrorText(ErrorDanish['DbFetchDataError']);\r\n setShowBackButton(true);\r\n break;\r\n }\r\n }\r\n showSpinner(false);\r\n })\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n setErrorText(ErrorDanish[\"DbConxError\"]);\r\n setIsSubmitButtonDisabled(false);\r\n setShowBackButton(true);\r\n showSpinner(false);\r\n });\r\n }\r\n\r\n function handleBackButtonClick() {\r\n setErrorText('');\r\n setOwnerLoginStage(OwnerLoginStage.Start);\r\n }\r\n \r\n function handleReturnStatusErrorAndStage(resultJson: any) {\r\n switch(resultJson.loginAttemptStatus) {\r\n case OwnerLoginAttemptStatus.Success:\r\n ownerLogIn(ownerLoginObject.setOwnerStatus, { \"mobileOrEmail\": inputMobileOrEmail, \"token\" : resultJson.token });\r\n setOwnerLoginStage(OwnerLoginStage.Refresh);\r\n return true;\r\n case OwnerLoginAttemptStatus.InvalidLoginCodeId:\r\n setErrorText(ErrorDanish[\"DbCodeCheckError\"]);\r\n setShowBackButton(true);\r\n break;\r\n case OwnerLoginAttemptStatus.InvalidMobileOrEmail:\r\n case OwnerLoginAttemptStatus.MobileOrEmailMismatch:\r\n setErrorText(ErrorDanish[\"NoDbMatchForMobileOrEmail\"]);\r\n setShowBackButton(true);\r\n break;\r\n case OwnerLoginAttemptStatus.LoginCodeMismatch:\r\n setErrorText(ErrorDanish[\"CodeIncorrect\"] + ' ' + ErrorDanish[\"CodeRemainingAttempts\"] + ' ' + resultJson.remainingAttempts);\r\n break;\r\n case OwnerLoginAttemptStatus.LoginCodeExpired:\r\n setErrorText(ErrorDanish[\"CodeTimeExpired\"]);\r\n setShowBackButton(true);\r\n break;\r\n case OwnerLoginAttemptStatus.NoMoreAttempts:\r\n setErrorText(ErrorDanish[\"CodeNoMoreAttempts\"]);\r\n setShowBackButton(true);\r\n break;\r\n default:\r\n setErrorText(ErrorDanish[\"GeneralError\"]);\r\n setShowBackButton(true);\r\n break;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n return (\r\n
\r\n { showBackButton === false ?\r\n
\r\n ) => onInputFieldChange(e.target.value)}>\r\n \r\n \r\n
\r\n :\r\n
\r\n \r\n
\r\n }\r\n { errorText !== '' && }\r\n \r\n );\r\n}\r\n\r\nexport default OwnerConsentsSendCode\r\n","import React from 'react';\r\n\r\nfunction SpinnerInline() {\r\n return (\r\n
\r\n );\r\n}\r\n\r\nexport default SpinnerInline","import React, { useContext, useEffect, useState } from 'react';\r\nimport { Link, useHistory } from 'react-router-dom';\r\n\r\nimport FullLogo from '../../assets/full-logo.svg';\r\nimport { ReactComponent as ArrowBack } from '../../assets/arrow-back.svg';\r\n\r\nimport OwnerContext from '../../context/OwnerContext';\r\nimport { isOwnerStatusValid } from '../../helpers/AuthOwnerHelper';\r\nimport { OwnerHttpServiceAuth } from '../../services/ApiServices';\r\nimport SpinnerInline from '../../components/SpinnerInline';\r\nimport OwnerFooter from '../../components/OwnerFooter';\r\nimport { OwnerLoginStage } from '../../helpers/EnumsInternal';\r\n\r\n\r\ntype HeaderProps = {\r\n setOwnerLoginStage: Function,\r\n inputMobileOrEmail: string,\r\n loginCodeId: number\r\n}\r\n\r\nfunction OwnerExternRefresh(props: HeaderProps) {\r\n let {setOwnerLoginStage, inputMobileOrEmail, loginCodeId} = props;\r\n\r\n const ownerLoginObject = useContext(OwnerContext);\r\n const history = useHistory();\r\n const [ consentsRefreshRequested, setConsentsRefreshRequested ] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n if (!consentsRefreshRequested) {\r\n // Check ownerStatus exists and is not expired.\r\n if (!isOwnerStatusValid(ownerLoginObject)) {\r\n history.push('/unauth');\r\n }\r\n \r\n if (ownerLoginObject !== null && ownerLoginObject.ownerStatus !== null) {\r\n setConsentsRefreshRequested(true);\r\n OwnerHttpServiceAuth(ownerLoginObject, 'owners/refresh', 'POST',\r\n { LoginCodeId:loginCodeId, mobilePhoneOrEmailAddress:inputMobileOrEmail })\r\n .then(result => {\r\n if (result.status === 401 || result.status === 403) // Unauthorised / Forbidden\r\n history.push('/unauth');\r\n else // All other cases, show consents - even if refresh service does not succeed.\r\n history.push('/consents');\r\n })\r\n .catch(e => {\r\n console.log(\"Something fishy happened: \" + e);\r\n history.push('/consents');\r\n }); \r\n }\r\n }\r\n }, [ ownerLoginObject, history, consentsRefreshRequested, loginCodeId, inputMobileOrEmail ]);\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"Logo\"\r\n
setOwnerLoginStage(OwnerLoginStage.Start)}>Start forfra
\r\n
\r\n\r\n
\r\n
\r\n

Vi er i gang...

\r\n
\r\n\r\n

Vent venligst mens vi finder dine samtykker.

\r\n
\r\n \r\n
\r\n\r\n


\r\n\r\n
\r\n

MitSamtykke er til for DIT samtykkes skyld. Se vores brugsbetingelser her

\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default OwnerExternRefresh;\r\n","import React from 'react';\r\n\r\nimport FullLogo from '../assets/full-logo.svg';\r\n\r\n\r\nfunction ErrorPage() {\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"Logo\"\r\n
\r\n\r\n
\r\n
\r\n

Kære besøgende

\r\n
\r\n

Vi er ikke helt klar endnu!

\r\n

Vi er rigtig glade for din interesse for Mitsamtykke.

\r\n

Vores portal er stadig under opbygning, men vi glæder os til snart at kunne byde dig velkommen\r\n til et fuldt overblik over netop dine markedsførings­samtykker.

\r\n

Venlig hilsen
Mitsamtykke-teamet

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ErrorPage;\r\n","import React, { useState } from 'react';\r\n\r\nimport FullLogo from '../assets/full-logo.svg';\r\nimport { ReactComponent as ArrowBack } from '../assets/arrow-back.svg';\r\nimport { ReactComponent as BoxShape } from '../assets/box-shape.svg';\r\n\r\nimport Spinner from '../components/Spinner';\r\nimport { OwnerLoginStage } from '../helpers/EnumsInternal';\r\nimport OwnerConsentsFind from '../components/ownerConsents/OwnerConsentsFind';\r\nimport OwnerConsentsSendCode from '../components/ownerConsents/OwnerConsentsSendCode';\r\nimport OwnerExternRefresh from '../components/ownerConsents/OwnerExternRefresh';\r\nimport OwnerFooter from '../components/OwnerFooter';\r\nimport NotReadyPage from './NotReadyPage';\r\n\r\n\r\nfunction OwnerLoginPage() {\r\n const [spinner, showSpinner] = useState(false);\r\n const [ownerLoginStage, setOwnerLoginStage] = useState(OwnerLoginStage.Start);\r\n const [loginCodeId, setLoginCodeId] = useState(0);\r\n const [inputMobileOrEmail, setInputMobileOrEmail] = useState('');\r\n\r\n\r\n return (\r\n <>\r\n { window.location.hostname.match(/^app.mitsamtykke.dk$/) ?\r\n \r\n :\r\n ownerLoginStage !== OwnerLoginStage.Refresh ?\r\n
\r\n { spinner && }\r\n
\r\n
\r\n \"Logo\"\r\n { ownerLoginStage > OwnerLoginStage.Start &&\r\n
setOwnerLoginStage(OwnerLoginStage.Start)}>Start forfra
\r\n }\r\n
\r\n \r\n
\r\n
\r\n

Find dine samtykker

\r\n

Indtast dit telefonnummer eller e-mail herunder, for at se hvilke markedsføringssamtykker du har afgivet på dem.

\r\n\r\n
\r\n\r\n
\r\n
{ if (ownerLoginStage > OwnerLoginStage.Start ) setOwnerLoginStage(OwnerLoginStage.Start); } } >\r\n
1
\r\n

Indtast telefon eller e-mail

\r\n
\r\n\r\n
\r\n
2
\r\n

Indtast tilsendt verificeringskode

\r\n
\r\n
\r\n\r\n { ownerLoginStage === OwnerLoginStage.Start && }\r\n { ownerLoginStage === OwnerLoginStage.Code && }\r\n
\r\n\r\n
\r\n

MitSamtykke er til for DIT samtykkes skyld. Se vores brugsbetingelser her

\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n :\r\n ownerLoginStage === OwnerLoginStage.Refresh && \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default OwnerLoginPage","import React from 'react';\r\nimport { Link, useHistory } from 'react-router-dom';\r\n\r\nimport FullLogo from '../assets/full-logo.svg';\r\n\r\nimport OwnerFooter from '../components/OwnerFooter';\r\n\r\n\r\nfunction ErrorPage() {\r\n const history = useHistory();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"Logo\"\r\n
\r\n\r\n
\r\n
\r\n

Ooops!

\r\n
\r\n\r\n

Det ser ud som noget gik galt med Mitsamtykke.

\r\n
\r\n

Venligst prøv igen om lidt.

\r\n \r\n \r\n

\r\n\r\n
\r\n

MitSamtykke er til for DIT samtykkes skyld. Se vores brugsbetingelser her

\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ErrorPage;","import React from 'react';\r\nimport { Link, useHistory } from 'react-router-dom';\r\n\r\nimport FullLogo from '../assets/full-logo.svg';\r\n\r\nimport OwnerFooter from '../components/OwnerFooter';\r\n\r\n\r\nfunction UnauthorisedPage() {\r\n const history = useHistory();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"Logo\"\r\n
\r\n\r\n
\r\n
\r\n

Ooops!

\r\n
\r\n\r\n

Du har desværre ikke adgang til denne del af Mitsamtykke.

\r\n \r\n \r\n



\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default UnauthorisedPage;\r\n","import React from 'react';\r\nimport { Link, useHistory } from 'react-router-dom';\r\n\r\nimport FullLogo from '../assets/full-logo.svg';\r\n\r\nimport OwnerFooter from '../components/OwnerFooter';\r\n\r\n\r\nfunction PageNotFound() {\r\n const history = useHistory();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"Logo\"\r\n
\r\n\r\n
\r\n
\r\n

Ooops!

\r\n
\r\n\r\n

Denne side findes ikke på Mitsamtykke.

\r\n \r\n \r\n

\r\n\r\n
\r\n

MitSamtykke er til for DIT samtykkes skyld. Se vores brugsbetingelser her

\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default PageNotFound;","import React, { lazy, Suspense, useState } from 'react';\r\nimport { HashRouter, Route, Switch } from 'react-router-dom';\r\nimport './App.css';\r\n\r\nimport { initUserObject, checkUserToken } from './helpers/AuthUserHelper';\r\nimport { initOwnerObject, isOwnerStatusValid } from './helpers/AuthOwnerHelper';\r\nimport UserContext from './context/UserContext';\r\nimport OwnerContext from './context/OwnerContext';\r\nimport Spinner from './components/Spinner';\r\nimport OwnerConsentsPage from './pages/OwnerConsentsPage';\r\nimport OwnerLoginPage from './pages/OwnerLoginPage';\r\nimport LoginPage from './pages/LoginPage';\r\nimport ErrorPage from './pages/ErrorPage';\r\nimport UnauthorisedPage from './pages/UnauthorisedPage';\r\nimport PageNotFound from './pages/PageNotFound';\r\n\r\nconst RevokeLandingPage = lazy(() => import('./pages/RevokeLandingPage'));\r\nconst AdvertiserPage = lazy(() => import('./pages/AdvertiserPage'));\r\nconst SupplierPage = lazy(() => import('./pages/SupplierPage'));\r\nconst ProcessorPage = lazy(() => import('./pages/ProcessorPage'));\r\nconst AdminPage = lazy(() => import('./pages/AdminPage'));\r\n\r\n\r\n\r\nfunction App() {\r\n const [ loginUser, setLoginUser ] = useState(null);\r\n const [ isLoginUserSet, setIsLoginUserSet ] = useState(false);\r\n const [ ownerStatus, setOwnerStatus ] = useState(null);\r\n const [ isOwnerStatusSet, setIsOwnerStatusSet ] = useState(false);\r\n \r\n \r\n checkUserToken({ loginUser, setLoginUser });\r\n if (!isLoginUserSet) {\r\n initUserObject(setLoginUser);\r\n setIsLoginUserSet(true);\r\n }\r\n\r\n isOwnerStatusValid({ ownerStatus, setOwnerStatus });\r\n if (!isOwnerStatusSet) {\r\n initOwnerObject(setOwnerStatus);\r\n setIsOwnerStatusSet(true);\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n }/>\r\n }/>\r\n }/>\r\n } />\r\n } />\r\n } />\r\n }>\r\n \r\n \r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\nfunction OwnerFooter() {\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default OwnerFooter;\r\n","export default __webpack_public_path__ + \"static/media/full-logo.1b228db5.svg\";","\r\nfunction ownerLogIn(setOwnerStatus: Function, ownerObject: {}) {\r\n setOwnerStatus(ownerObject);\r\n localStorage.setItem('x-access-owner', JSON.stringify(ownerObject));\r\n}\r\n\r\nfunction ownerLogOut(setOwnerStatus: Function) {\r\n localStorage.removeItem('x-access-owner');\r\n setOwnerStatus(null);\r\n}\r\n\r\nfunction initOwnerObject(setOwnerStatus: Function) {\r\n var ownerJsonString = localStorage.getItem('x-access-owner') ?? null;\r\n\r\n ownerJsonString !== null ? setOwnerStatus(JSON.parse(ownerJsonString)) : setOwnerStatus(null);\r\n}\r\n\r\nfunction isOwnerStatusValid(ownerObject: any) {\r\n if (ownerObject.ownerStatus !== null) {\r\n const jwtDecode = require('jwt-decode');\r\n const exp = jwtDecode(ownerObject.ownerStatus.token).exp;\r\n\r\n if (exp < Date.now() / 1000) {\r\n ownerLogOut(ownerObject.setOwnerStatus);\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n return false\r\n}\r\n\r\nexport { ownerLogIn, ownerLogOut, initOwnerObject, isOwnerStatusValid }\r\n","import { StringValueType } from './EnumsInternal';\r\n\r\n\r\nfunction IsMobileOrEmail (inputMobileOrEmail: string) {\r\n if (/^([2-9]{1}[\\d]{7})$/.test(inputMobileOrEmail)) {\r\n return StringValueType.MobilePhone8;\r\n }\r\n else if (/^([\\w_.]+@{1}[\\w_]+[.]{1}[\\w_]+([.]{1}[\\w]+)?)$/.test(inputMobileOrEmail)) {\r\n return StringValueType.EmailAddress\r\n }\r\n else {\r\n return StringValueType.Invalid;\r\n }\r\n}\r\n\r\nfunction InputFieldValueTypeCheck(searchString: string) {\r\n if (/^([0-9]{1,9})$/.test(searchString)) {\r\n return StringValueType.NumberMax9;\r\n }\r\n else if (/^([a-zA-Z \\u00e6\\u00f8\\u00e5\\d]{3,})$/.test(searchString)) {\r\n return StringValueType.TextMin3;\r\n }\r\n else {\r\n return StringValueType.Invalid;\r\n }\r\n}\r\n\r\nfunction PhoneNumberSpacing(fieldString: string) {\r\n if (IsMobileOrEmail(fieldString) === StringValueType.MobilePhone8)\r\n return fieldString.match(/.{1,2}/g)?.join(' ');\r\n else\r\n return fieldString;\r\n}\r\n\r\n\r\nexport { IsMobileOrEmail, InputFieldValueTypeCheck, PhoneNumberSpacing };\r\n","import React from 'react';\r\n\r\n\r\ntype HeaderProps = {\r\n errorText: string;\r\n}\r\n\r\nfunction MainErrorText(props: HeaderProps) {\r\n\r\n return (\r\n
{props.errorText}
\r\n );\r\n}\r\n\r\nexport default MainErrorText\r\n","\r\nenum ConsentStatusDanish {\r\n Aktiv = 0,\r\n Tilbagekaldt = 1\r\n}\r\n\r\nenum ConsentTypeContactDanish\r\n{\r\n SMS = 0,\r\n \"E-mail\" = 1,\r\n Telefon = 2\r\n //SocialMedia = 3,\r\n //PostalMail = 4\r\n}\r\n\r\nenum ConsentHistoryActionSourceTypeDanish {\r\n Ukendt = 0,\r\n Administrator = 1,\r\n Webservice = 2,\r\n VirksomhedsListe = 3,\r\n \"Selv via applikation\" = 4,\r\n \"Selv via link \" = 5,\r\n \"Ekstern Refresh\" = 6\r\n}\r\n\r\nenum ConsentHistoryActorTypeDanish {\r\n Administrativ = 0,\r\n Support = 1,\r\n Virksomhed = 2,\r\n Udbyder = 3,\r\n \"Dig selv\" = 4\r\n}\r\n\r\n\r\nenum AccessPermissionTypeDanish\r\n{\r\n Ingen = 0,\r\n Opret = 1,\r\n Tilbagekald = 2,\r\n Begge = 3\r\n}\r\n\r\n\r\nenum ConsentListTypeDanish\r\n{\r\n Upload = 0,\r\n Revoke = 1\r\n}\r\n\r\nenum SubscriptionType {\r\n Standard = 0,\r\n Business = 1,\r\n Enterprise = 2\r\n}\r\n\r\nenum UserLoginStatusDanish {\r\n Ny = 0,\r\n Succes = 1,\r\n \"Ukendt bruger\" = 2,\r\n \"Ugyldigt password\" = 3,\r\n \"Ikke flere fors\\u00f8g\" = 4,\r\n \"Inaktiv\" = 5,\r\n \"DB fejl\" = 99\r\n}\r\n\r\nenum StatisticsPeriodDanish {\r\n \"I dag\" = 0,\r\n \"i g\\u00e5r\" = 1,\r\n \"Uge til dato\" = 2,\r\n \"M\\u00e5ned til dato\" = 3,\r\n \"\\u00c5r til dato\" = 4,\r\n \"Forrige uge\" = 5,\r\n \"Forrige m\\u00e5ned\" = 6,\r\n \"Forrige \\u00c5r\" = 7\r\n}\r\n\r\n\r\nenum AuthenticationTypeDanish\r\n{\r\n None = 0,\r\n Basic = 1,\r\n Bearer = 2,\r\n \"Refresh Token (POST)\" = 3,\r\n \"Refresh Token (GET)\" = 4\r\n}\r\n\r\nenum StakeholderCommsSetupType\r\n{\r\n Webservice = 0,\r\n Email = 1\r\n}\r\n\r\nenum ConsentRevokeReasonTypeDanish\r\n{\r\n None = 0,\r\n \"Anden \\u00e5rsag\" = 1,\r\n \"Jeg har ikke bedt om dette\" = 10,\r\n \"Forkert kontakt\" = 11,\r\n Spam = 12,\r\n}\r\n\r\nexport { ConsentStatusDanish, ConsentTypeContactDanish, ConsentHistoryActionSourceTypeDanish, ConsentHistoryActorTypeDanish, AccessPermissionTypeDanish,\r\n ConsentListTypeDanish, SubscriptionType, UserLoginStatusDanish, StatisticsPeriodDanish, AuthenticationTypeDanish, StakeholderCommsSetupType, ConsentRevokeReasonTypeDanish };\r\n","import { StakeholderType, UserType } from \"./EnumsInternal\";\r\n\r\nfunction userLogIn(result: {}) {\r\n localStorage.setItem('x-access-user', JSON.stringify(result));\r\n}\r\n\r\nfunction userLogOut(setLoginUser: Function) {\r\n localStorage.removeItem('x-access-user');\r\n setLoginUser(null);\r\n}\r\n\r\nfunction initUserObject(setLoginUser: Function) {\r\n var userJsonString = localStorage.getItem('x-access-user') ?? null;\r\n userJsonString !== null ? setLoginUser(JSON.parse(userJsonString)) : setLoginUser(null);\r\n}\r\n\r\nfunction checkUserToken(userLoginObject: any) { \r\n if (userLoginObject.loginUser && userLoginObject.loginUser.refreshTokenExpiry &&\r\n Date.parse(userLoginObject.loginUser?.refreshTokenExpiry) <= Date.now()) {\r\n userLogOut(userLoginObject.setLoginUser);\r\n }\r\n}\r\n\r\nfunction isUserTypeAllowed(userType: UserType, requiredUserType: UserType) {\r\n return userType === UserType.Developer || userType <= requiredUserType;\r\n}\r\n\r\nfunction isStakeholderTypeAllowed(stakeholderType: StakeholderType, requiredStakeholderType: StakeholderType) {\r\n return stakeholderType === requiredStakeholderType;\r\n}\r\n\r\n\r\nexport { userLogIn, userLogOut, initUserObject, checkUserToken, isUserTypeAllowed, isStakeholderTypeAllowed }\r\n","import React from 'react';\r\n\r\nfunction Spinner() {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Spinner\r\n","import React, { Fragment } from 'react';\r\n\r\ntype HeaderProps = {\r\n column: number,\r\n auxFields: any\r\n}\r\n\r\nfunction ConsentAuxFieldsRow(props: HeaderProps) { \r\n let { column, auxFields } = props;\r\n\r\n return (\r\n <>\r\n { auxFields &&\r\n <>\r\n { Object.keys(auxFields).filter((e, i) => i % 4 === column).length ?\r\n Object.keys(auxFields).filter((e, i) => i % 4 === column).map((auxField: any, index: number) => (\r\n \r\n \r\n

{auxFields[auxField]}

\r\n
\r\n ))\r\n :\r\n <>\r\n \r\n

 

\r\n \r\n }\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default ConsentAuxFieldsRow\r\n","import { createContext } from 'react'\r\n\r\n\r\nconst UserContext = createContext<{ loginUser: any, setLoginUser: any }>\r\n ({ loginUser: null, setLoginUser: null });\r\n\r\nexport const UserProvider = UserContext.Provider\r\nexport const UserConsumer = UserContext.Consumer\r\n\r\nexport default UserContext\r\n"],"sourceRoot":""}