{"version":3,"sources":["registration/registermember/placeholder.jpg","account/subscription/SubscriptionDetails/assets/chip.svg","account/subscription/SubscriptionDetails/assets/visa.svg","account/subscription/SubscriptionDetails/assets/mastercard.svg","account/subscription/SubscriptionDetails/assets/amex.svg","infrastructure/actions.js","infrastructure/reducer.js","Common/language.js","Common/Header/UIComponents.js","Common/spinner.js","context.js","account/AccountNav/activePerson.js","account/accountContext.js","registration/registermember/index.js","registration/registerticket/index.js","password/request/index.js","registration/index.js","account/start/index.js","Common/useLocation.js","account/AccountNav/person.js","account/util.js","account/AccountNav/logoutModal.jsx","account/AccountNav/sideBarNav.jsx","account/AccountNav/mobileMenu.jsx","Common/Header/index.js","Common/nav.js","Common/MuiTextInput.js","registration/MemberForm/form.js","registration/MemberForm/util.js","registration/registermember/initialValues.js","account/photo/avatarEditor.js","registration/registermember/uploadPhoto.js","images/MailIcons.jsx","registration/registerticket/initialValues.js","password/set/validate.js","password/set/form.js","password/set/util.js","password/set/index.js","password/request/validate.js","password/request/form.js","registration/util.js","infrastructure/callback.js","account/photo/index.js","account/password/UIComponents.js","account/customerInfo/UIComponents.js","account/customerInfo/phoneNumberFields.js","account/customerInfo/addressFields.js","account/customerInfo/Form.js","account/customerInfo/validate.js","account/customerInfo/util.js","account/customerInfo/update.js","account/customerInfo/updateManaged.js","account/customerInfo/index.js","account/password/validate.js","account/password/initialValues.js","account/password/Form.js","account/password/index.js","account/registerTicket/validate.js","account/registerTicket/initialValues.js","account/registerTicket/Form.js","account/registerTicket/register.js","account/registerTicket/managedParty.js","account/registerTicket/index.js","account/saleHistory/util.js","account/saleHistory/Article.js","account/saleHistory/ArticleContainer.js","account/saleHistory/index.js","account/registerManagedParty/validate.js","account/registerManagedParty/inititalValues.js","account/registerManagedParty/Form.js","account/registerManagedParty/index.js","account/subscription/subscriptionContext.js","account/subscription/util.js","account/subscription/SubscriptionCard.js","account/subscription/index.js","account/subscription/SubscriptionDetails/Sections/Card.js","account/subscription/SubscriptionDetails/Sections/CardSection.js","account/subscription/SubscriptionDetails/Sections/InfoSection.js","account/subscription/SubscriptionDetails/Sections/ChargesSection.js","account/subscription/SubscriptionDetails/SubscriptionDetailsPage.js","account/subscription/SubscriptionDetails/index.js","account/content.js","account/index.js","Common/menu.js","Common/oldBrowser.js","Common/toast.js","routes.js","Common/theme.js","App.js","infrastructure/userManager.js","index.js","infrastructure/middleware.js"],"names":["module","exports","http","method","url","payload","body","message","cb","type","post","uploadPhoto64","photo","photoBase64","photoExt","replace","postPhoto64","languageReducer","state","action","CULTURE","keys","cookiesReducer","config","bookingCulture","Cookies","get","shopCulture","culture","set","InitialState","i","length","key","getInitialState","c","Object","assign","value","reducer","busy","error","status","success","loadLanguage","dispatch","generalUri","process","files","map","f","fetch","then","x","json","getJson","Promise","all","response","merge","o","rest","next","pop","MenuButtonContainer","styled","div","p","isLoggedIn","MenuButton","img","props","ActionIcon","onClick","toggle","aria-label","label","color","IconMenu2","useStyles","makeStyles","container","position","bottom","top","left","right","zIndex","backgroundColor","display","alignItems","justifyContent","spinner","Spinner","React","memo","classes","className","CircularProgress","colorPrimary","size","AppContext","createContext","TOAST","initialState","menuOpen","sideOpen","window","innerWidth","toastOpen","toastText","toastVariant","activePerson","text","variant","Error","ContextProvider","useReducer","Provider","ctx","children","theme","person","padding","gap","textWrapper","flexDirection","name","fontSize","app","contrastLabelColor","fontWeight","wordBreak","mail","secondaryColor","ActivePerson","data","language","Image","width","height","withPlaceholder","radius","src","alt","Pages","toLowerCase","Typography","email","source","AccountContext","WHOAMI","gql","AccountProvider","useSelector","infrastructure","useQuery","loading","accountData","useEffect","whoami","id","details","isSelf","useLocation","location","globalHistory","navigate","useState","setState","removeListener","listen","params","newState","border","borderColor","isActive","palette","primary","dark","borderRadius","marginBottom","cursor","pointerEvents","transition","transitions","create","duration","shortest","easing","easeInOut","hoverBackground","content","gridTemplateColumns","gridGap","labelColor","marginLeft","justifySelf","inner","Person","closeDialog","setActive","useContext","Button","classNames","Nav","Chosen","Avatar","links","image","path","registerTicket","registerMember","getLinks","hasSubscription","filter","link","createStyles","modalFooter","marginTop","closeButton","colorScheme","colors","title","LogoutModal","opened","close","userManager","Modal","onClose","Logout","centered","closeButtonLabel","Close","LogoutConfirm","Abort","signoutRedirect","root","navbar","white","fn","focusStyles","textDecoration","fontSizes","sm","gray","black","linkIcon","ref","marginRight","spacing","linkActive","primaryColor","background","footer","borderTop","paddingTop","md","chooseActivePerson","mobile","desktop","SideBarNav","drawerOpened","drawerClose","context","cx","active","changePerson","setChangePerson","useDisclosure","open","isMobile","useMediaQuery","member","subscriptionHistory","availableLinks","pathname","split","tabs","account","icon","IconHome","IconRefresh","isSubscription","IconReceipt","IconCamera","IconUserEdit","IconLock","IconTicket","IconUserPlus","useCallback","item","to","stroke","manages","isManaging","Navbar","Section","aria-live","role","aria-labelledby","style","opacity","ActiveUser","grow","mt","UnstyledButton","IconSwitchHorizontal","Change_Person","IconLogout","header","hide","MobileMenu","useMemo","MenuOpened","MenuClosed","OpenMenu","Drawer","CloseMenu","boxShadow","borderBottom","borderColorLight","toolbar","logoContainer","logo","loginContainer","flexGrow","button","Header","setBusy","cookies","auth","oidc","user","expired","labelMenu","signinRedirect","URL","document","searchParams","AppBar","Toolbar","getLogo","Home","hideLogin","Login","console","log","nav","navButton","activeNav","component","Link","disabled","Register_Member","Register_Ticket","hideNewPassword","Request_Password","formcontrol","outlined","MuiTextInput","field","form","touched","errors","placeholder","min","max","required","autoFocus","fullWidth","info","autocomplete","FormControl","TextField","autoComplete","FormHelperText","filled","fieldsContainer","actionContainer","formActions","backButton","MemberForm","initialValues","fieldInfo","ticket","handleSubmit","getFieldInfo","visibleFields","requiredFields","validateCellPhone","includes","CellPhone_Required","Invalid_Length","test","CellPhone_Error","onSubmit","values","actions","validate","firstname","FirstName_Required","lastname","LastName_Required","Email_Required","isEmail","Email_Invalid","civicRegistrationNumber","CivicRegistration_Required","CivicRegistration_Invalid","zipCode","ZipCode_Required","ZipCode_Invalid","TicketId_Required","render","isValid","isSubmitting","FirstName_Label","FirstName_Placeholder","LastName_Label","LastName_Placeholder","CivicRegistration_Label","CivicRegistration_Placeholder","Email_Label","Email_Placeholder","ZipCode_Label","ZipCode_Placeholder","CellPhone_Label","CellPhone_Placeholder","TicketId_Label","TicketId_Placeholder","history","back","Back","Register","cellPhone","Editor","setPreview","canvasScaled","editor","getImageScaledToCanvas","showPreview","previewImg","toDataURL","onClickSave","savePhoto","setEditorRef","handleZoomIn","zoom","Number","toFixed","handleZoomOut","openPhotoSelect","ReactDOM","findDOMNode","refs","photoSelect","click","rotate","y","this","isNotLoggedIn","imageContainer","previewImage","crossOrigin","onPositionChange","pos","scale","activePersonPhotoContainer","activePersonPhoto","avatarActions","IconButton","Choose_Photo","Choose_New_Photo","Save","onChange","event","target","Component","withStyles","transform","transformOrigin","heigth","maxWidth","maxHeigth","margin","flexWrap","UploadPhoto","MailIcons","provider","divider","buttonWrapper","buttons","Member","topText","setTopText","bottomText","setBottomText","indexText","setIndexText","confirmMailText","setConfirmMailText","uploaded","setUploaded","rdxDispatch","useDispatch","CancelToken","axios","textUrl","cancelToken","token","spread","index","confirmMail","catch","isCancel","cancel","callback","Toasts","setSubmitting","registerMemberPhotoSubmitSuccess","registerMemberSubmitSuccess","handleRegisterMember","v","properties","goBackUrl","localStorage","getItem","escapeHtml","skipHtml","Divider","reload","leftIcon","photoFile","linkText","paper","minHeight","paperWithNav","Ticket","registerTicketSubmitSuccess","resetForm","handleRegisterTicket","ticketIdentitfier","hidePhoto","RegisterMoreTickets","schema","passwordValidator","rules","capitals","nonAlphanumeric","digits","has","uppercase","symbols","is","setRules","newPassword","PasswordValidation","noNewPassword","confirmPassword","passwordNotVerified","noNewPasswordVerification","submit","PasswordForm","textArr","getInfo","passwordRules","NewPassword","Required","ConfirmPassword","SetPassword","gutterBottom","customerId","passwordSubmitSuccess","authUrl","self","redirect","setPasswordFailed","formRow","buttonContainer","RequestForm","submitButton","Send","Request","errorMsg","statusText","registration","cardContainer","itemCount","justifyItems","card","short","hover","cardHeader","textAlign","cardContent","iconContainer","indexFooter","main","textTransform","letterSpacing","lineHeight","Registration","items","getNumberOfItems","setText","setIndexFooter","useIndexFooter","aria-describedby","IconUsers","CardInfo","CallbackPage","successCallback","errorCallback","redirectWrapper","linkContainer","StartPage","accountContext","isBooking","isShop","endpoint","apiUrl","Back_To_Booking","Back_To_Shop","l","getIcon","description","Start_Description","pageInfo","maxHeight","changePhotoAction","Photo","edit","setEdit","PageInfo","photoUrl","photoSubmitFailed","photoSubmitSuccess","setTimeout","handlePhoto","editButton","Change_Photo","Row","gtc","cols","FormSection","FormRow","canEditForm","Account_PhoneNumbers_Type","Account_PhoneNumber","Placeholder","a","Account_Address_Type","Account_Address_Street","Label","Account_Address_StreetNumber","Account_Address_ZipCode","Account_Address_City","Account_Address_CountryCode","CustForm","setCanEditForm","enableReinitialize","Account_FirstName","Account_LastName","Account_Email","Account_CivicRegistrationNumber","phonenumbers","addresses","handleReset","Reset","Edit","getInitialValues","phoneNumbers","number","extra","street","streetNumber","city","countryCode","updateSelf","UPDATE_SELF_SUBMIT","Update","useMutation","onError","onCompleted","isSuccess","customerInfoSubmitSuccess","update","toggleEdit","variables","updateManaged","UPDATE_MANAGED_SUBMIT","UpdateManaged","updateManagedParty","newValues","managedPartyId","customerInfo","CustomerInfo","oldPassword","noOldPassword","newPasswordVerification","OldPassword","password","CHANGE_PASSWORD","Password","changePassword","uniqueIdentifier","TicketValidation","noUniqueIdentifier","RegisterTicketForm","UniqueIdentifier","REGISTER_TICKET","REGISTER_TICKET_FOR_MANAGED","ManagedParty","activePersonId","registerTicketForManagedParty","formatPrice","amount","String","DetailQuery","Article","sale","articles","setArticles","receiptNumber","tableHeads","Sale_Details","Skeleton","Table","withBorder","striped","article","vat","priceInclVat","priceExclVat","articleName","accordionControl","minWidth","articleContainer","ArticleContainer","posName","totalInclVat","formattedReceiptNumber","Accordion","Item","Control","saleDate","slice","Panel","titleContainer","titles","SaleHistory","sales","saleHistory","sortedSales","sort","b","Date","setValue","Sale_History","RegisterManagedPartyValidation","noFirstname","noLastname","noCivicRegistrationNumber","uuid","registerManaged","REGISTER_MANAGED_PARTY","RegisterManaged","registerManagedParty","registerManagedPartySuccess","register","SubscriptionContext","SubscriptionProvider","subscriptionId","getStatus","getNextPayment","charges","nextCharge","charge","dueDate","handleCancel","setLoading","cancelled","checkIfFinalized","subscriptionTermType","paidCharges","nextPayment","nextPaymentContainer","nextPaymentText","alignContent","SubscriptionCard","subscriptionDetails","subscriptionTypeName","subscriptionIsFinalized","IconCheck","IconAlertTriangle","IconCircleX","IconSnowflake","Subscription","sortedSubscriptions","registrationDate","sub","backgroundImage","shadows","screenReader","chip","cardNumber","validContainer","validLabelContainer","gridColumnStart","validLabel","validDate","Card","cardData","maskedCardNumber","cardExpiryMonth","cardExpiryYear","cardNumber1","cardNumber2","cardNumber3","cardNumber4","Chip","aria-hidden","initialNumber","Visa","Mastercard","Amex","order","infoContainer","paddingBottom","modalInfoContainer","modalButtonContainer","CardSection","updatePaymentCardUrl","canUpdatePaymentCard","URLSearchParams","search","baseUrl","origin","posId","modalOpened","openModal","closeModal","accessToken","access_token","canCancel","cancelUri","activateSubscriptionUrl","href","headers","authorization","ok","styles","red","darken","listWrapper","InfoSection","cancelledAt","lastChargedAt","ticketArticleName","registrationFinalizedAt","termType","getTermType","IconInfoCircleFilled","ChargesSection","rows","date","getChargeStatus","formattedAmount","convertedAmount","isInteger","getFormattedAmount","chargedAt","detailsPageWrapper","upperSectionWrapper","SubscriptionDetailsPage","SubscriptionDetails","Content","hasSubcription","setHasSubscription","desktopHeight","mobileHeight","overflow","overflowY","Account","AccessibilityStatement","closeContainer","Menu","toggleMenu","IconX","List","ListItem","ListItemIcon","ListItemText","Container","InnerContainer","OldBrowser","variantIcon","CheckCircleIcon","warning","WarningIcon","ErrorIcon","InfoIcon","successColor","dangerColor","infoColor","warningColor","iconVariant","MySnackbarContentWrapper","other","Icon","SnackbarContent","Toast","closeToast","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","startsWith","errorMessage","workSpace","typography","h1","h2","h3","h4","h5","h6","mainWrapper","Workspace","hasNav","Routes","useRef","MyPages","selfName","current","focus","tabIndex","SkipToMainContent","basepath","amber","green","blue","darkTheme","themeType","primaryColors","light","secondaryColors","badge","calendarSelectColor","iconColor","iconDisabledColor","iconHoverColor","linkColor","dangerHoverColor","progressTrailColor","tooltipBackground","tooltipColor","tooltipSecondary","darkestTheme","lightTheme","getTheme","documentElement","setProperty","getThemeVariation","myTheme","createMuiTheme","secondary","default","App","innerHeight","prevHeight","setPrevHeight","selectedTheme","addEventListener","mantineTheme","components","outlineColor","MantineProvider","CssBaseline","userManagerConfig","client_id","redirect_uri","response_type","scope","authority","post_logout_redirect_uri","silent_redirect_uri","protocol","hostname","port","automaticSilentRenew","filterProtocolClaims","loadUserInfo","createUserManager","oidcMiddleware","createOidcMiddleware","reducers","infrastructureReducer","oidcReducer","combineReducers","middleware","applyMiddleware","thunk","store","Headers","indexOf","args","JSON","stringify","r","ex","httpMiddleware","createStore","composeWithDevTools","localcss","createElement","rel","getElementsByTagName","appendChild","graphql","cache","InMemoryCache","httpLink","HttpLink","uri","ApolloLink","operation","forward","setContext","getState","concat","client","ApolloClient","configLoaded","getElementById"],"mappings":"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BACNna,KAAM,qBAERkwB,MAAO,CACLxrB,WAAY,yBACZhL,MAAO,oBAETgL,WAAY,CACV,kBACA,kBACA,kBACA,kBACA,kBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEF9E,YAAa,yBACbkJ,iBAAkB,yBAClB9H,WAAY,UACZjE,mBAAoB,mBACpBozB,oBAAqB,UACrBz2B,MAAO,mBACPkH,gBAAiB,CACf,kBACA,kBACA,kBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFwvB,UAAW,wBACXC,kBAAmB,wBACnBC,eAAgB,yBAChBC,UAAW,yBACXpzB,eAAgB,yBAChBkwB,eACAmD,iBAlEuB,yBAmEvBjD,gBACAH,gBACAE,aACAmD,mBAAoB,gBACpBC,kBAAmB,gBACnBC,aAAc,yBACdC,iBAAkB,0BAIdC,GAAe,CACnBf,UAAW,OACXC,cAAe,CACbC,MAAO,qBACP7V,KAAM,qBACNna,KAAM,sBAERiwB,gBAAiB,CACfD,MAAO,qBACP7V,KAAM,qBACNna,KAAM,qBAERkwB,MAAO,CACLxrB,WAAY,yBACZhL,MAAO,oBAETgL,WAAY,CACV,eACA,kBACA,kBACA,kBACA,kBACA,kBACA,mBACA,oBACA,qBACA,qBACA,qBACA,sBAEF9E,YAAa,yBACbkJ,iBAAkB,yBAClB9H,WAAY,UACZjE,mBAAoB,mBACpBozB,oBAAqB,UACrBz2B,MAAO,mBACPkH,gBAAiB,CACf,kBACA,kBACA,kBACA,mBAEFwvB,UAAW,wBACXC,kBAAmB,wBACnBC,eAAgB,yBAChBC,UAAW,yBACXpzB,eAAgB,yBAChBkwB,eACAmD,iBA7HuB,yBA8HvBjD,gBACAH,gBACAE,aACAmD,mBAAoB,aACpBC,kBAAmB,eACnBC,aAAc,yBACdC,iBAAkB,0BAIdE,GAAa,CACjBhB,UAAW,QACXC,cAAe,CACbC,MAAO,oBACP7V,KAAM,oBACNna,KAAM,WAERiwB,gBAAiB,CACfD,MAAO,qBACP7V,KAAM,mBACNna,KAAM,oBAERkwB,MAAO,CACLxrB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","file":"static/js/main.95143d8c.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/placeholder.96d99753.jpg\";","module.exports = __webpack_public_path__ + \"static/media/chip.d3b664a4.svg\";","module.exports = __webpack_public_path__ + \"static/media/visa.39b84b8c.svg\";","module.exports = __webpack_public_path__ + \"static/media/mastercard.9152a017.svg\";","module.exports = __webpack_public_path__ + \"static/media/amex.1795a7ee.svg\";","export const CONFIG_LOADED = \"@ee/CONFIG_LOADED\";\r\nexport const HTTP_DISPATCH = \"@ee/HTTP_DISPATCH\";\r\nexport const HTTP_BUSY = \"@ee/HTTP_BUSY\";\r\nexport const HTTP_SUCCESS = \"@ee/HTTP_SUCCESS\";\r\nexport const HTTP_FAILURE = \"@ee/HTTP_FAILURE\";\r\nexport const LANGUAGE_LOADED = \"@ee/LANGUAGE_LOADED\";\r\n\r\nexport const configLoaded = config => {\r\n return {\r\n type: CONFIG_LOADED,\r\n config\r\n };\r\n};\r\n\r\nexport const http = (\r\n method,\r\n url,\r\n payload = {},\r\n body,\r\n message = null,\r\n cb = null\r\n) => {\r\n return {\r\n type: HTTP_DISPATCH,\r\n method,\r\n url,\r\n payload,\r\n body,\r\n message,\r\n cb\r\n };\r\n};\r\n\r\nexport const post = (url, payload, message, cb) => {\r\n return http(\"POST\", url, payload, null, message, cb);\r\n};\r\nexport const get = url => {\r\n return http(\"GET\", url);\r\n};\r\nexport const put = (url, payload) => {\r\n return http(\"PUT\", url, payload);\r\n};\r\nexport const del = url => {\r\n return http(\"DELETE\", url);\r\n};\r\n\r\nexport const postPhoto64 = (url, photo, message, cb) => {\r\n const payload = { photoBase64: photo, photoExt: \"jpg\" };\r\n return http(\r\n \"POST\",\r\n url.replace(\"photo/\", \"photobase64/\"),\r\n payload,\r\n null,\r\n message,\r\n cb\r\n );\r\n};\r\n\r\nexport const postFile = (url, name, payload, message, cb) => {\r\n var formData = new FormData();\r\n formData.append(name, payload);\r\n\r\n return http(\"POST\", url, null, formData, message, cb);\r\n};\r\n\r\nexport const registerMember = (properties, message, cb) => {\r\n return post(\"/registermember\", { properties }, message, cb);\r\n};\r\n\r\nexport const registerTicket = (ticketIdentitfier, properties, message, cb) => {\r\n return post(\r\n \"/registerticket\",\r\n { ticketIdentitfier, properties },\r\n message,\r\n cb\r\n );\r\n};\r\n\r\nexport const setPassword = (customerId, newPassword, cb) => {\r\n return post(\"/setpassword\", { customerId, newPassword }, null, cb);\r\n};\r\n\r\nexport const changePassword = (customerId, oldPassword, newPassword) => {\r\n return post(\"/changepassword\", { customerId, oldPassword, newPassword });\r\n};\r\n\r\nexport const requestPassword = (email, cb) => {\r\n return post(`/requestpassword?email=${email}`, {}, null, cb);\r\n};\r\n\r\nexport const uploadPhoto64 = (url, photo, message, cb) => {\r\n return postPhoto64(url, photo, message, cb);\r\n};\r\n\r\nexport const setCookie = (key, value) => {\r\n return {\r\n type: \"@EE/SET_COOKIE\",\r\n key,\r\n value\r\n };\r\n};\r\n\r\nexport const expireCookie = key => {\r\n return {\r\n type: \"@EE/EXPIRE_COOKIE\",\r\n key\r\n };\r\n};\r\n","import Cookies from \"cookies-js\";\r\nimport {\r\n CONFIG_LOADED,\r\n HTTP_BUSY,\r\n HTTP_SUCCESS,\r\n HTTP_FAILURE,\r\n LANGUAGE_LOADED,\r\n} from \"./actions\";\r\n\r\nconst reducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case CONFIG_LOADED:\r\n return {\r\n ...state,\r\n config: action.config,\r\n };\r\n case HTTP_BUSY:\r\n return {\r\n ...state,\r\n busy: true,\r\n error: false,\r\n message: \"\",\r\n url: null,\r\n };\r\n case HTTP_SUCCESS:\r\n return {\r\n ...state,\r\n busy: false,\r\n error: false,\r\n message: \"\",\r\n status: action.status,\r\n success: action.success,\r\n url: action.url,\r\n };\r\n case HTTP_FAILURE:\r\n return {\r\n ...state,\r\n busy: false,\r\n error: action.error,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const languageReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case LANGUAGE_LOADED:\r\n return action.payload;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const SHOP_CULTURE = \"shop-culture\";\r\nexport const BOOKING_CULTURE = \"booking-culture\";\r\nexport const CULTURE = \"members_culture\";\r\nexport const THEME = \"theme\";\r\n\r\nconst keys = [CULTURE, THEME];\r\n\r\nexport const cookiesReducer = (config) => (state, action) => {\r\n state = state || getInitialState(keys, config);\r\n // console.log(getInitialState(keys));\r\n switch (action.type) {\r\n case \"@EE/EXPIRE_COOKIE\": {\r\n const c = {};\r\n c[action.key] = null;\r\n\r\n return Object.assign({}, state, c);\r\n }\r\n case \"@EE/SET_COOKIE\": {\r\n const c = {};\r\n c[action.key] = action.value;\r\n\r\n return Object.assign({}, state, c);\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst InitialState = {\r\n theme: \"light\",\r\n culture: \"sv-SE\",\r\n};\r\n\r\nfunction getInitialState(keys, config) {\r\n const state = {};\r\n const bookingCulture = () => Cookies.get(BOOKING_CULTURE);\r\n const shopCulture = () => Cookies.get(SHOP_CULTURE);\r\n const culture = () => Cookies.get(CULTURE);\r\n const noCultureCookie = !bookingCulture() && !shopCulture() && !culture();\r\n\r\n //Check if culture and theme is in cookie\r\n\r\n if (noCultureCookie) {\r\n Cookies.set(CULTURE, InitialState.culture);\r\n }\r\n if (bookingCulture()) {\r\n Cookies.set(CULTURE, bookingCulture());\r\n }\r\n\r\n if (shopCulture()) {\r\n Cookies.set(CULTURE, shopCulture());\r\n }\r\n\r\n if (culture()) {\r\n Cookies.set(CULTURE, culture());\r\n }\r\n\r\n // if (Cookies.get(THEME) == null) {\r\n // const defaultTheme = config.theme || InitialState.theme;\r\n // Cookies.set(THEME, defaultTheme);\r\n // }\r\n\r\n Cookies.set(THEME, \"light\");\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n const key = keys[i];\r\n state[key] = Cookies.get(key);\r\n }\r\n return state;\r\n}\r\n\r\nexport default reducer;\r\n","import { LANGUAGE_LOADED } from \"../infrastructure/actions\";\r\n\r\nexport const loadLanguage = (culture, dispatch) => {\r\n const getJson = (f) => {\r\n return fetch(f).then((x) => x.json());\r\n };\r\n\r\n const merge = (o, rest) => {\r\n var next = rest.pop();\r\n if (!next) return o;\r\n\r\n const merged = {\r\n ...o,\r\n ...next,\r\n };\r\n\r\n return merge(merged, rest);\r\n };\r\n\r\n const generalUri = process.env.PUBLIC_URL + `/language.${culture}.json`;\r\n const specificUri = `/ee-static/members/language/language.${culture}.json`;\r\n\r\n const files = [specificUri, generalUri].map((f) => getJson(f));\r\n\r\n Promise.all(files)\r\n .then((response) => merge({}, response))\r\n .then((json) => {\r\n dispatch({\r\n type: LANGUAGE_LOADED,\r\n payload: json,\r\n });\r\n });\r\n};\r\n","import styled from \"styled-components\";\r\nimport React from \"react\";\r\nimport { IconMenu2 } from \"@tabler/icons-react\";\r\nimport { ActionIcon } from \"@mantine/core\";\r\n\r\nconst MenuButtonContainer = styled.div`\r\n display: none;\r\n @media (max-width: 768px) {\r\n display: ${(p) => (p.isLoggedIn ? \"none\" : \"block\")};\r\n }\r\n`;\r\n\r\n//-------------------------------------\r\n\r\nexport const LogoContainer = styled.div`\r\n align-items: center;\r\n padding: 0 0.5rem;\r\n display: flex;\r\n`;\r\n\r\nexport const Logo = styled.img`\r\n height: var(--logo-height);\r\n width: var(--logo-width);\r\n @media (max-width: 576px) {\r\n height: var(--logo-height-xs);\r\n width: var(--logo-width-xs);\r\n }\r\n`;\r\n\r\nexport const MenuButton = (props) => (\r\n \r\n props.toggle()}\r\n aria-label={props.label}\r\n color=\"dark\"\r\n >\r\n \r\n \r\n \r\n);\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n position: \"fixed\",\r\n bottom: 0,\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n zIndex: 1101,\r\n backgroundColor: \"rgba(255,255,255,0.6)\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\"\r\n },\r\n spinner: {\r\n color: \"rgba(0,0,0,0.54)\"\r\n }\r\n});\r\n\r\nconst Spinner = React.memo(function() {\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n
\r\n );\r\n});\r\n\r\nexport default Spinner;\r\n","import React, { useReducer } from \"react\";\r\n\r\nexport const AppContext = React.createContext();\r\nexport const CLOSE_TOAST = \"close_toast\";\r\nexport const SET_ACTIVE_PERSON = \"set_active_person\";\r\nexport const TOAST = \"open_toast\";\r\nexport const TOGGLE_MENU = \"toggle_menu\";\r\n\r\nconst initialState = {\r\n menuOpen: false,\r\n sideOpen: window.innerWidth < 577 ? false : true,\r\n toastOpen: false,\r\n toastText: \"\",\r\n toastVariant: \"\",\r\n activePerson: {}\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case CLOSE_TOAST:\r\n return { ...state, toastOpen: false, toastText: \"\", toastVariant: \"\" };\r\n case SET_ACTIVE_PERSON:\r\n return { ...state, activePerson: action.payload };\r\n case TOAST:\r\n return {\r\n ...state,\r\n toastOpen: true,\r\n toastText: action.payload.text,\r\n toastVariant: action.payload.variant\r\n };\r\n case TOGGLE_MENU:\r\n return { ...state, menuOpen: !state.menuOpen };\r\n\r\n default:\r\n throw new Error(`Wrong action.type: ${action.type}`);\r\n }\r\n};\r\n\r\nconst ContextProvider = props => {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default ContextProvider;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Image } from \"@mantine/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n person: {\r\n padding: \"4px 8px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \".8rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n padding: 0,\r\n },\r\n },\r\n textWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n name: {\r\n fontSize: \"0.875rem !important\",\r\n color: theme.app.contrastLabelColor,\r\n fontWeight: 500,\r\n wordBreak: \"break-word\",\r\n },\r\n mail: {\r\n fontSize: \"0.75rem !important\",\r\n color: theme.app.secondaryColor,\r\n fontWeight: 500,\r\n wordBreak: \"break-word\",\r\n },\r\n}));\r\n\r\nconst ActivePerson = ({ data, language }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
\r\n {data?.name}\r\n {data?.email}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ActivePerson;\r\n","import React, { useReducer, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\n\r\nexport const AccountContext = React.createContext();\r\nexport const SET_ACTIVE_PERSON = \"set_active_person\";\r\n\r\nconst WHOAMI = gql`\r\n query {\r\n member {\r\n saleHistory {\r\n id\r\n customerId\r\n receiptNumber\r\n saleDate\r\n totalExclVat\r\n totalInclVat\r\n posId\r\n posName\r\n }\r\n subscriptionHistory {\r\n customerId\r\n uniqueIdentifier\r\n registrationDate\r\n subscriptionId\r\n subscriptionTypeName\r\n }\r\n }\r\n whoami {\r\n details {\r\n id\r\n name\r\n firstname\r\n lastname\r\n photo\r\n civicRegistrationNumber\r\n hasAssociation\r\n associatedWith {\r\n id\r\n name\r\n }\r\n addresses {\r\n type\r\n isEmpty\r\n street\r\n streetNumber\r\n zipCode\r\n city\r\n countryCode\r\n }\r\n phonenumbers {\r\n type\r\n isEmpty\r\n number\r\n }\r\n manages {\r\n id\r\n name\r\n firstname\r\n lastname\r\n photo\r\n email\r\n civicRegistrationNumber\r\n hasAssociation\r\n associatedWith {\r\n id\r\n name\r\n }\r\n addresses {\r\n type\r\n isEmpty\r\n street\r\n streetNumber\r\n zipCode\r\n city\r\n countryCode\r\n }\r\n phonenumbers {\r\n type\r\n isEmpty\r\n number\r\n }\r\n }\r\n email\r\n }\r\n photo\r\n }\r\n }\r\n`;\r\n\r\nconst initialState = {\r\n activePerson: {},\r\n};\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case SET_ACTIVE_PERSON:\r\n return { ...state, activePerson: action.payload };\r\n default:\r\n throw new Error(`Wrong action type: ${action.type}`);\r\n }\r\n};\r\n\r\nconst AccountProvider = (props) => {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n const config = useSelector((state) => state.infrastructure.config);\r\n const { loading, error, data } = useQuery(WHOAMI);\r\n const accountData = loading ? null : data;\r\n const getIsSelf = () => {\r\n if (!accountData) return true;\r\n return accountData.whoami.details.id === state.activePerson.id;\r\n };\r\n useEffect(() => {\r\n if (!data) return;\r\n if (data.whoami && !state.activePerson.id) {\r\n dispatch({ type: SET_ACTIVE_PERSON, payload: data.whoami.details });\r\n }\r\n }, [data, state.activePerson]);\r\n\r\n if (error) return

{error.message}

;\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default AccountProvider;\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport Markdown from \"react-markdown\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Button } from \"@mantine/core\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport MemberForm from \"../MemberForm/form\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\nimport initialValues from \"./initialValues\";\r\nimport UploadPhoto from \"./uploadPhoto\";\r\nimport { uploadPhoto64, registerMember } from \"../../infrastructure/actions\";\r\nimport MailIcons from \"../../images/MailIcons\";\r\n\r\nlet source;\r\nconst useStyles = makeStyles({\r\n container: {\r\n maxWidth: \"1024px\",\r\n width: \"100%\",\r\n margin: \"16px auto\",\r\n \"@media(max-width: 1024px)\": {\r\n margin: \"0 auto\",\r\n },\r\n },\r\n actionContainer: {\r\n display: \"flex\",\r\n \"& button\": {\r\n marginRight: \"16px\",\r\n },\r\n },\r\n divider: {\r\n margin: \"16px 0\",\r\n },\r\n buttonWrapper: {\r\n marginTop: \"1rem\",\r\n },\r\n buttons: {\r\n display: \"flex\",\r\n gap: \"1rem\",\r\n \"@media(max-width: 768px)\": {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n});\r\n\r\nconst Member = (props) => {\r\n const classes = useStyles();\r\n const [topText, setTopText] = useState(\"\");\r\n const [bottomText, setBottomText] = useState(\"\");\r\n const [indexText, setIndexText] = useState(\"\");\r\n const [confirmMailText, setConfirmMailText] = useState(\"\");\r\n const [uploaded, setUploaded] = useState(false);\r\n const { dispatch } = useContext(AppContext);\r\n const { language, fieldInfo, success, url } = useSelector((state) => ({\r\n fieldInfo: state.infrastructure.config.fieldInfo,\r\n language: state.language,\r\n success: state.infrastructure.success,\r\n url: state.infrastructure.url,\r\n }));\r\n const rdxDispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n let textUrl = \"/ee-static/members/Texts/RegisterMember\";\r\n axios\r\n .all([\r\n axios.get(`${textUrl}/index.md`, {\r\n cancelToken: source.token,\r\n }),\r\n axios.get(`${textUrl}/Success/top.md`, {\r\n cancelToken: source.token,\r\n }),\r\n axios.get(`${textUrl}/Success/bottom.md`, {\r\n cancelToken: source.token,\r\n }),\r\n axios.get(`${textUrl}/Success/confirmMail.md`, {\r\n cancelToken: source.token,\r\n }),\r\n ])\r\n .then(\r\n axios.spread((index, top, bottom, confirmMail) => {\r\n setIndexText(index.data);\r\n setTopText(top.data);\r\n setBottomText(bottom.data);\r\n setConfirmMailText(confirmMail.data);\r\n })\r\n )\r\n .catch((error) => {\r\n if (!axios.isCancel(error)) {\r\n console.log(error);\r\n }\r\n });\r\n\r\n return () => source.cancel(\"Component Is Unmounting\");\r\n }, []);\r\n\r\n const callback = (response, actions, type) => {\r\n if (response.status >= 400) {\r\n response.text().then((text) =>\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: text\r\n ? language.Toasts[text]\r\n ? language.Toasts[text]\r\n : text\r\n : \"Något gick fel\",\r\n variant: \"error\",\r\n },\r\n })\r\n );\r\n if (actions) {\r\n actions.setSubmitting(false);\r\n actions.isSubmitting(false);\r\n }\r\n return console.log(response);\r\n }\r\n if (type === \"photo\") {\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.registerMemberPhotoSubmitSuccess,\r\n variant: \"success\",\r\n },\r\n });\r\n return setUploaded(true);\r\n }\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.registerMemberSubmitSuccess,\r\n variant: \"success\",\r\n },\r\n });\r\n };\r\n\r\n const handleRegisterMember = (v, actions) => {\r\n let values = {\r\n firstname: v.firstname,\r\n lastname: v.lastname,\r\n civicRegistrationNumber: v.civicRegistrationNumber,\r\n email: v.email,\r\n zipCode: v.zipCode,\r\n };\r\n if (v.cellPhone) {\r\n values = { ...values, cellPhone: v.cellPhone };\r\n }\r\n rdxDispatch(\r\n registerMember(values, null, (response) => {\r\n callback(response, actions, \"member\");\r\n })\r\n );\r\n };\r\n\r\n const handlePhoto = (photoFile) => {\r\n console.log(\"Posting foto to...\", url);\r\n rdxDispatch(\r\n uploadPhoto64(url, photoFile, null, (response) =>\r\n callback(response, null, \"photo\")\r\n )\r\n );\r\n };\r\n\r\n const goBackUrl = localStorage.getItem(\"goBackUrl\");\r\n\r\n if (success) {\r\n return (\r\n
\r\n {uploaded ? (\r\n <>\r\n \r\n \r\n
\r\n window.location.reload()}\r\n color=\"primary\"\r\n >\r\n Registrera medlem\r\n \r\n \r\n window.location.replace(process.env.PUBLIC_URL + \"/\")\r\n }\r\n >\r\n Hem\r\n \r\n
\r\n \r\n ) : (\r\n <>\r\n {goBackUrl && goBackUrl.includes(\"booking\") ? (\r\n
\r\n \r\n\r\n
\r\n

Genvägar

\r\n
\r\n }\r\n variant=\"white\"\r\n style={{ color: \"rgb(95,98,103)\" }}\r\n size=\"md\"\r\n onClick={() =>\r\n window.location.replace(\"https://mail.google.com/\")\r\n }\r\n >\r\n Gmail\r\n \r\n }\r\n variant=\"white\"\r\n style={{ color: \"rgb(0, 114, 198)\" }}\r\n size=\"md\"\r\n onClick={() =>\r\n window.location.replace(\"https://outlook.live.com/\")\r\n }\r\n >\r\n Outlook\r\n \r\n }\r\n variant=\"white\"\r\n style={{ color: \"rgb(0,0,0)\" }}\r\n size=\"md\"\r\n onClick={() =>\r\n window.location.replace(\"https://www.icloud.com/\")\r\n }\r\n >\r\n iCloud\r\n \r\n }\r\n variant=\"white\"\r\n style={{ color: \"rgb(0,0,0)\" }}\r\n size=\"md\"\r\n onClick={() =>\r\n window.location.replace(\"https://mail.yahoo.com/\")\r\n }\r\n >\r\n Yahoo Mail\r\n \r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n \r\n handlePhoto(photo)} />\r\n
\r\n )}\r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n handleRegisterMember(values, actions)\r\n }\r\n language={language}\r\n fieldInfo={fieldInfo}\r\n initialValues={initialValues}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default Member;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport Markdown from \"react-markdown\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Button } from \"@mantine/core\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport MemberForm from \"../MemberForm/form\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\nimport initialValues from \"./initialValues\";\r\nimport UploadPhoto from \"../registermember/uploadPhoto\";\r\nimport { uploadPhoto64, registerTicket } from \"../../infrastructure/actions\";\r\n\r\nlet source;\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n maxWidth: \"1024px\",\r\n width: \"100%\",\r\n margin: \"16px auto\",\r\n \"@media(max-width: 1024px)\": {\r\n margin: \"0 auto\",\r\n },\r\n },\r\n linkText: {\r\n color: \"red\",\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n divider: {\r\n margin: \"16px 0\",\r\n },\r\n paper: {\r\n padding: \"16px\",\r\n minHeight: \"calc(100vh - var(--header-height) - 32px)\",\r\n \"@media(max-width: 576)\": {\r\n minHeight: \"calc(100vh - var(--header-height-xs) - 32px)\",\r\n },\r\n },\r\n paperWithNav: {\r\n padding: \"16px\",\r\n minHeight: \"calc(100vh - var(--header-height) - 96px)\",\r\n \"@media(max-width: 1024px)\": {\r\n minHeight: \"calc(100vh - var(--header-height) - 64px)\",\r\n },\r\n \"@media(max-width: 768px)\": {\r\n minHeight: \"calc(100vh - var(--header-height))\",\r\n },\r\n \"@media(max-width: 576px)\": {\r\n minHeight: \"calc(100vh - var(--header-height-xs) - 32px)\",\r\n },\r\n },\r\n actionContainer: {\r\n display: \"flex\",\r\n \"& button\": {\r\n marginRight: \"16px\",\r\n },\r\n },\r\n});\r\n\r\nconst Ticket = (props) => {\r\n const classes = useStyles();\r\n const [topText, setTopText] = useState(\"\");\r\n const [bottomText, setBottomText] = useState(\"\");\r\n const [indexText, setIndexText] = useState(\"\");\r\n const [uploaded, setUploaded] = useState(false);\r\n const { dispatch } = useContext(AppContext);\r\n const { language, fieldInfo, success, url, config } = useSelector(\r\n (state) => ({\r\n fieldInfo: state.infrastructure.config.fieldInfo,\r\n language: state.language,\r\n success: state.infrastructure.success,\r\n url: state.infrastructure.url,\r\n config: state.infrastructure.config,\r\n })\r\n );\r\n const rdxDispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n let textUrl = \"/ee-static/members/Texts/RegisterTicket\";\r\n axios\r\n .all([\r\n axios.get(`${textUrl}/index.md`, {\r\n cancelToken: source.token,\r\n }),\r\n axios.get(`${textUrl}/Success/top.md`, {\r\n cancelToken: source.token,\r\n }),\r\n axios.get(`${textUrl}/Success/bottom.md`, {\r\n cancelToken: source.token,\r\n }),\r\n ])\r\n .then(\r\n axios.spread((index, top, bottom) => {\r\n setIndexText(index.data);\r\n setTopText(top.data);\r\n setBottomText(bottom.data);\r\n })\r\n )\r\n .catch((error) => {\r\n if (!axios.isCancel(error)) {\r\n console.log(error);\r\n }\r\n });\r\n\r\n return () => source.cancel(\"Component Is Unmounting\");\r\n }, []);\r\n\r\n const callback = (response, actions, type) => {\r\n if (response.status >= 400) {\r\n response.text().then((text) =>\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: text\r\n ? language.Toasts[text]\r\n ? language.Toasts[text]\r\n : text\r\n : \"Något gick fel\",\r\n variant: \"error\",\r\n },\r\n })\r\n );\r\n return actions.setSubmitting(false);\r\n }\r\n if (type === \"photo\") {\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.registerMemberPhotoSubmitSuccess,\r\n variant: \"success\",\r\n },\r\n });\r\n return setUploaded(true);\r\n }\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.registerTicketSubmitSuccess,\r\n variant: \"success\",\r\n },\r\n });\r\n actions.resetForm();\r\n };\r\n\r\n const handleRegisterTicket = (v, actions) => {\r\n const id = v.id;\r\n let values = {\r\n firstname: v.firstname,\r\n lastname: v.lastname,\r\n civicRegistrationNumber: v.civicRegistrationNumber,\r\n email: v.email,\r\n zipCode: v.zipCode,\r\n };\r\n if (v.cellPhone) {\r\n values = { ...values, cellPhone: v.cellPhone };\r\n }\r\n\r\n return rdxDispatch(\r\n registerTicket(id, values, null, (response) =>\r\n callback(response, actions)\r\n )\r\n );\r\n };\r\n\r\n const handlePhoto = (photoFile) => {\r\n rdxDispatch(\r\n uploadPhoto64(url, photoFile, null, (response) =>\r\n callback(response, null, \"photo\")\r\n )\r\n );\r\n };\r\n\r\n if (success) {\r\n return (\r\n
\r\n {uploaded || config.hidePhoto ? (\r\n <>\r\n \r\n \r\n
\r\n window.location.reload()}\r\n className=\"members__index__button\"\r\n color=\"dark\"\r\n >\r\n {language.RegisterMoreTickets}\r\n \r\n \r\n window.location.replace(process.env.PUBLIC_URL + \"/\")\r\n }\r\n className=\"members__index__button\"\r\n color=\"dark\"\r\n >\r\n Hem\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 return (\r\n
\r\n \r\n \r\n handleRegisterTicket(values, actions)\r\n }\r\n initialValues={initialValues}\r\n ticket={true}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default Ticket;\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport Markdown from \"react-markdown\";\r\nimport { navigate } from \"@reach/router\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport RequestForm from \"./form\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\nimport { requestPassword } from \"../../infrastructure/actions\";\r\n\r\nlet source;\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n maxWidth: \"1024px\",\r\n width: \"100%\",\r\n margin: \"16px auto\",\r\n \"@media(max-width: 1024px)\": {\r\n margin: \"0 auto\",\r\n },\r\n },\r\n paper: {\r\n padding: \"16px\",\r\n },\r\n});\r\n\r\nconst Request = props => {\r\n const { config } = useSelector(state => ({\r\n config: state.infrastructure.config,\r\n }));\r\n\r\n const classes = useStyles();\r\n const [topText, setTopText] = useState(\"\");\r\n const [bottomText, setBottomText] = useState(\"\");\r\n const { dispatch } = useContext(AppContext);\r\n const rdxDispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n const url = \"/ee-static/members/Texts/RequestPassword\";\r\n axios\r\n .all([\r\n axios.get(`${url}/top.md`, {\r\n cancelToken: source.token,\r\n }),\r\n axios.get(`${url}/bottom.md`, {\r\n cancelToken: source.token,\r\n }),\r\n ])\r\n .then(\r\n axios.spread((top, bottom) => {\r\n setTopText(top.data);\r\n setBottomText(bottom.data);\r\n })\r\n )\r\n .catch(error => {\r\n if (!axios.isCancel(error)) {\r\n console.log(error);\r\n }\r\n });\r\n\r\n return () => source.cancel(\"Component Is Unmounting\");\r\n }, []);\r\n\r\n const handleSubmit = (values, actions) => {\r\n rdxDispatch(\r\n requestPassword(values.email, response => {\r\n if (response.status >= 400) {\r\n const errorMsg =\r\n response.statusText.length < 1\r\n ? \"E-postadress finns inte i systemet\"\r\n : response.statusText;\r\n\r\n dispatch({\r\n type: TOAST,\r\n payload: { text: errorMsg, variant: \"error\" },\r\n });\r\n return actions.setSubmitting(false);\r\n }\r\n dispatch({\r\n type: TOAST,\r\n payload: { text: \"Ett mail har skickats\", variant: \"success\" },\r\n });\r\n actions.resetForm();\r\n navigate(config.self);\r\n })\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\nexport default Request;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"@reach/router\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Markdown from \"react-markdown\";\r\nimport axios from \"axios\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { getNumberOfItems } from \"./util\";\r\nimport { IconUsers, IconLock, IconTicket } from \"@tabler/icons-react\";\r\nlet source;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n registration: {},\r\n cardContainer: {\r\n width: \"1024px\",\r\n margin: \"0 auto\",\r\n padding: \"16px\",\r\n display: \"grid\",\r\n alignItems: \"center\",\r\n gridTemplateColumns: (p) =>\r\n p.itemCount > 0 ? `repeat(${p.itemCount}, 1fr)` : \"1fr\",\r\n justifyItems: \"center\",\r\n gridGap: \"16px\",\r\n \"@media(max-width: 1024px)\": {\r\n width: \"100%\",\r\n },\r\n \"@media(max-width: 667px)\": {\r\n gridTemplateColumns: (p) => \"1fr\",\r\n gridGap: \"8px\",\r\n padding: \"8px\",\r\n },\r\n \"& a\": {\r\n textDecoration: \"none\",\r\n \"@media(max-width: 667px)\": {\r\n width: \"100%\",\r\n },\r\n },\r\n },\r\n card: {\r\n width: \"auto\",\r\n height: \"100%\",\r\n color: theme.app.labelColor,\r\n border: `1px solid ${theme.app.borderColor}`,\r\n backgroundColor: theme.app.background[1],\r\n borderRadius: \"8px\",\r\n transition: theme.transitions.create([\"background-color\"], {\r\n duration: theme.transitions.duration.short,\r\n easing: theme.transitions.easing.easeInOut,\r\n }),\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n \"@media(max-width: 667px)\": {\r\n width: \"100%\",\r\n },\r\n },\r\n link: {\r\n height: \"100%\",\r\n },\r\n cardHeader: {\r\n padding: \"1rem 0 0.35rem 0\",\r\n textAlign: \"center\",\r\n fontSize: \"1.25rem\",\r\n fontWeight: 500,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n cardContent: { padding: \"16px\", fontSize: \"1rem\", textAlign: \"center\" },\r\n iconContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n padding: \"16px\",\r\n },\r\n icon: {\r\n width: \"50px\",\r\n height: \"50px\",\r\n \"@media(max-width: 667px)\": {\r\n width: \"40px\",\r\n height: \"40px\",\r\n },\r\n },\r\n indexFooter: {\r\n color: theme.app.labelColor,\r\n \"& a\": {\r\n color: theme.palette.primary.main,\r\n textDecoration: \"none\",\r\n textTransform: \"uppercase\",\r\n padding: \"8px\",\r\n fontSize: \"0.8125rem\",\r\n fontWeight: 500,\r\n borderRadius: \"4px\",\r\n letterSpacing: \"0.02857em\",\r\n lineHeight: 1.75,\r\n transition: theme.transitions.create([\"background-color\"], {\r\n duration: theme.transitions.duration.short,\r\n easing: theme.transitions.easing.easeInOut,\r\n }),\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n },\r\n}));\r\n\r\nconst Registration = () => {\r\n const { config, language } = useSelector((state) => ({\r\n config: state.infrastructure.config,\r\n language: state.language,\r\n }));\r\n const { registerMember, registerTicket, hideNewPassword } = config;\r\n const itemCount = getNumberOfItems(\r\n registerMember,\r\n registerTicket,\r\n hideNewPassword\r\n );\r\n const classes = useStyles({ itemCount });\r\n const [text, setText] = useState(\"\");\r\n const [indexFooter, setIndexFooter] = useState(\"\");\r\n useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n axios\r\n .get(\"/ee-static/members/index.md\", { cancelToken: source.token })\r\n .then((response) => setText(response.data))\r\n .catch((error) => {\r\n if (!axios.isCancel(error)) {\r\n console.log(error);\r\n }\r\n });\r\n if (config.useIndexFooter) {\r\n axios\r\n .get(\"/ee-static/members/index-footer.md\", {\r\n cancelToken: source.token,\r\n })\r\n .then((response) => setIndexFooter(response.data))\r\n .catch((error) => {\r\n if (!axios.isCancel(error)) {\r\n console.log(error);\r\n }\r\n });\r\n }\r\n return () => source.cancel(\"Component Is Unmounting\");\r\n }, [config]);\r\n\r\n return (\r\n
\r\n \r\n \r\n {registerMember && (\r\n \r\n
\r\n \r\n {language.Nav\r\n ? language.Nav[\"Register_Member\"]\r\n : \"Registrera medlem\"}\r\n \r\n \r\n \r\n
\r\n \r\n {language.CardInfo ? language.CardInfo[\"registerMember\"] : \"\"}\r\n \r\n
\r\n \r\n )}\r\n {registerTicket && (\r\n \r\n
\r\n \r\n {language.Nav\r\n ? language.Nav[\"Register_Ticket\"]\r\n : \"Registrera biljett\"}\r\n \r\n \r\n \r\n
\r\n \r\n {language.CardInfo ? language.CardInfo[\"registerTicket\"] : \"\"}\r\n \r\n \r\n \r\n )}\r\n {!hideNewPassword && (\r\n \r\n
\r\n \r\n {language.Nav\r\n ? language.Nav[\"Request_Password\"]\r\n : \"Byt lösenord\"}\r\n \r\n \r\n \r\n
\r\n \r\n {language.CardInfo ? language.CardInfo[\"password\"] : \"\"}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Registration;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport Markdown from \"react-markdown\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Link } from \"@reach/router\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { getLinks } from \"../util\";\r\nimport { AccountContext } from \"../accountContext\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport { Button } from \"@mantine/core\";\r\nimport {\r\n IconCamera,\r\n IconReceipt,\r\n IconUserEdit,\r\n IconLock,\r\n IconUserPlus,\r\n IconRefresh,\r\n IconTicket,\r\n} from \"@tabler/icons-react\";\r\n\r\nlet source;\r\n\r\nconst getIcon = (image, classes) => {\r\n switch (image) {\r\n case \"photo\":\r\n return ;\r\n case \"customer\":\r\n return ;\r\n case \"password\":\r\n return ;\r\n case \"ticket\":\r\n return ;\r\n case \"managed\":\r\n return ;\r\n case \"sale\":\r\n return ;\r\n case \"subscription\":\r\n return ;\r\n default:\r\n throw new Error(`wrong icon: ${image}`);\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n \"@media(max-width: 1024px)\": {\r\n padding: \"16px\",\r\n },\r\n },\r\n button: {\r\n marginBottom: \"1rem\",\r\n },\r\n redirectWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"1rem\",\r\n marginBottom: \"1rem\",\r\n },\r\n info: {},\r\n divider: {\r\n margin: \"16px 0\",\r\n },\r\n activePerson: {\r\n color: theme.palette.primary.main,\r\n },\r\n linkContainer: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(3,1fr)\",\r\n gridGap: \"16px\",\r\n \"@media(max-width: 667px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n gridGap: \"8px\",\r\n },\r\n },\r\n link: { textDecoration: \"none\" },\r\n card: {\r\n color: theme.app.labelColor,\r\n height: \"100%\",\r\n backgroundColor: theme.app.background[1],\r\n border: `1px solid ${theme.app.borderColor}`,\r\n borderRadius: \"8px\",\r\n transition: theme.transitions.create([\"background-color\"], {\r\n duration: theme.transitions.duration.short,\r\n easing: theme.transitions.easing.easeInOut,\r\n }),\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n cardHeader: {\r\n padding: \"1rem 0 0.35rem 0\",\r\n textAlign: \"center\",\r\n fontSize: \"1.25rem\",\r\n fontWeight: 500,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n cardContent: { padding: \"16px\", fontSize: \"1rem\", textAlign: \"center\" },\r\n iconContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n padding: \"16px\",\r\n },\r\n icon: {\r\n width: \"50px\",\r\n height: \"50px\",\r\n \"@media(max-width: 667px)\": {\r\n width: \"40px\",\r\n height: \"40px\",\r\n },\r\n },\r\n}));\r\n\r\nconst StartPage = (props) => {\r\n const accountContext = useContext(AccountContext);\r\n const hasSubscription =\r\n accountContext.state.accountData.member.subscriptionHistory.length > 0;\r\n const { config, isSelf } = accountContext.state;\r\n const language = useSelector((state) => state.language);\r\n const [text, setText] = useState();\r\n const links = getLinks(isSelf, config, hasSubscription);\r\n const classes = useStyles();\r\n useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n axios\r\n .get(\"/ee-static/members/Texts/Account/accountText.md\", {\r\n cancelToken: source.token,\r\n })\r\n .then((response) => setText(response.data))\r\n .catch((error) => {\r\n if (!axios.isCancel(error)) {\r\n console.log(error);\r\n }\r\n });\r\n return () => source.cancel(\"Startpage Is Unmounting\");\r\n }, []);\r\n\r\n const goBackUrl = localStorage.getItem(\"goBackUrl\");\r\n const isBooking = goBackUrl && !goBackUrl.includes(\"ticketshop\");\r\n const isShop = goBackUrl && goBackUrl.includes(\"ticketshop\");\r\n\r\n const redirect = (endpoint) => {\r\n const link = config?.apiUrl.split(\"membersapi\")[0];\r\n if (endpoint === \"ticketshop\") window.location.replace(`${link}ticketshop`);\r\n if (endpoint === \"booking\") window.location.replace(`${link}booking`);\r\n };\r\n\r\n return (\r\n
\r\n {goBackUrl && isBooking ? (\r\n redirect(\"booking\")}\r\n >\r\n {language.Back_To_Booking}\r\n \r\n ) : goBackUrl && isShop ? (\r\n redirect(\"ticketshop\")}\r\n >\r\n {language.Back_To_Shop}\r\n \r\n ) : (\r\n
\r\n redirect(\"ticketshop\")}\r\n >\r\n {language.Back_To_Shop}\r\n \r\n\r\n redirect(\"booking\")}\r\n >\r\n {language.Back_To_Booking}\r\n \r\n
\r\n )}\r\n\r\n {isSelf && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n {links &&\r\n links.map((l, i) => {\r\n const path = `${process.env.PUBLIC_URL}${l.path}`;\r\n return (\r\n \r\n
\r\n \r\n {language.Pages[l.name]}\r\n \r\n
\r\n {getIcon(l.image, classes)}\r\n
\r\n
\r\n \r\n {language.Start_Description[l.name]}\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 StartPage;\r\n","import { useState, useEffect } from \"react\";\r\nimport { globalHistory } from \"@reach/router\";\r\n\r\nconst useLocation = () => {\r\n const initialState = {\r\n location: globalHistory.location,\r\n navigate: globalHistory.navigate\r\n };\r\n\r\n const [state, setState] = useState(initialState);\r\n useEffect(() => {\r\n const removeListener = globalHistory.listen(params => {\r\n const { location } = params;\r\n const newState = Object.assign({}, initialState, { location });\r\n setState(newState);\r\n });\r\n return () => {\r\n removeListener();\r\n };\r\n }, [initialState]);\r\n\r\n return state;\r\n};\r\n\r\nexport default useLocation;\r\n","import React, { useContext } from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Button } from \"@mantine/core\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { AccountContext, SET_ACTIVE_PERSON } from \"../accountContext\";\r\nimport useLocation from \"../../Common/useLocation\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n person: {\r\n width: \"100%\",\r\n border: \"2px solid\",\r\n borderColor: (p) =>\r\n p.isActive ? theme.palette.primary.dark : theme.app.borderColor,\r\n borderRadius: \"4px\",\r\n padding: \"4px 8px\",\r\n\r\n marginBottom: \"8px\",\r\n cursor: \"pointer\",\r\n pointerEvents: (p) => (p.isActive ? \"none\" : \"initial\"),\r\n transition: theme.transitions.create([\"background-color\"], {\r\n duration: theme.transitions.duration.shortest,\r\n easing: theme.transitions.easing.easeInOut,\r\n }),\r\n \"&:hover\": {\r\n backgroundColor: theme.app.hoverBackground[1],\r\n },\r\n \"@media(max-width: 667px)\": {\r\n width: \"100%\",\r\n },\r\n },\r\n content: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"auto 1fr\",\r\n gridGap: \"16px\",\r\n alignItems: \"center\",\r\n width: \"100%\",\r\n },\r\n name: {\r\n fontSize: \"0.8125rem\",\r\n color: (p) =>\r\n p.isActive ? theme.palette.primary.dark : theme.app.labelColor,\r\n marginLeft: \"4px\",\r\n justifySelf: \"flex-start\",\r\n },\r\n inner: {\r\n justifyContent: \"start\",\r\n },\r\n}));\r\n\r\nconst Person = ({ data, closeDialog, setActive }) => {\r\n const language = useSelector((state) => state.language);\r\n const { state, dispatch } = useContext(AccountContext);\r\n const isActive = data.id === state.activePerson.id;\r\n const classes = useStyles({ isActive });\r\n const { navigate } = useLocation();\r\n const handleSelect = () => {\r\n navigate(`${process.env.PUBLIC_URL}/`);\r\n dispatch({ type: SET_ACTIVE_PERSON, payload: data });\r\n setActive(language.Pages && language.Nav[\"Home\"]);\r\n closeDialog();\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n {data.name}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Person;\r\n","const links = [\r\n {\r\n name: \"subscription\",\r\n image: \"subscription\",\r\n path: \"/subscription\",\r\n isSelf: true,\r\n registerTicket: true,\r\n registerMember: true,\r\n },\r\n {\r\n name: \"sale history\",\r\n image: \"sale\",\r\n path: \"/sale-history\",\r\n isSelf: false,\r\n registerTicket: true,\r\n registerMember: true,\r\n },\r\n {\r\n name: \"photo\",\r\n image: \"photo\",\r\n path: \"/photo\",\r\n isSelf: true,\r\n registerTicket: true,\r\n registerMember: true,\r\n },\r\n {\r\n name: \"customer info\",\r\n image: \"customer\",\r\n path: \"/customer-info\",\r\n isSelf: true,\r\n registerTicket: true,\r\n registerMember: true,\r\n },\r\n {\r\n name: \"password\",\r\n image: \"password\",\r\n path: \"/password\",\r\n isSelf: false,\r\n registerTicket: true,\r\n registerMember: true,\r\n },\r\n {\r\n name: \"register ticket\",\r\n image: \"ticket\",\r\n path: \"/register-ticket\",\r\n isSelf: true,\r\n registerTicket: false,\r\n registerMember: true,\r\n },\r\n {\r\n name: \"register managed\",\r\n image: \"managed\",\r\n path: \"/register-managed\",\r\n isSelf: false,\r\n registerTicket: true,\r\n registerMember: false,\r\n },\r\n];\r\nexport const getLinks = (isSelf, config, hasSubscription) => {\r\n return links\r\n .filter((link) => {\r\n if (!isSelf) {\r\n if (!link.isSelf) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n return true;\r\n })\r\n .filter((link) => {\r\n if (!config.registerTicket) {\r\n if (!link.registerTicket) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n return true;\r\n })\r\n .filter((link) => {\r\n if (!config.registerMember) {\r\n if (!link.registerMember) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n return true;\r\n })\r\n .filter((link) => {\r\n if (!hasSubscription) {\r\n return link.name !== \"subscription\";\r\n }\r\n return true;\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { Button, createStyles, Modal } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n modalFooter: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginTop: \"1rem\",\r\n },\r\n closeButton: {\r\n color:\r\n theme.colorScheme === \"dark\" || theme.colorScheme === \"darkest\"\r\n ? theme.colors.dark[2]\r\n : \"black\",\r\n },\r\n title: {\r\n fontWeight: \"500\",\r\n fontSize: \"1.35rem\",\r\n },\r\n}));\r\nconst LogoutModal = ({ opened, close, userManager }) => {\r\n const language = useSelector((state) => state.language);\r\n const { classes } = useStyles();\r\n const handleLogout = () => userManager.signoutRedirect();\r\n return (\r\n \r\n {language.LogoutConfirm}\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LogoutModal;\r\n","import React, { useCallback, useContext, useEffect } from \"react\";\r\nimport { useState } from \"react\";\r\nimport {\r\n Navbar,\r\n createStyles,\r\n Modal,\r\n Button,\r\n UnstyledButton,\r\n} from \"@mantine/core\";\r\nimport {\r\n IconLogout,\r\n IconSwitchHorizontal,\r\n IconReceipt,\r\n IconCamera,\r\n IconUserEdit,\r\n IconLock,\r\n IconTicket,\r\n IconUserPlus,\r\n IconRefresh,\r\n IconHome,\r\n} from \"@tabler/icons-react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport ActivePerson from \"./activePerson\";\r\nimport { AccountContext } from \"../accountContext\";\r\nimport Person from \"./person\";\r\nimport { Link } from \"@reach/router\";\r\nimport { getLinks } from \"../util\";\r\nimport LogoutModal from \"./logoutModal\";\r\nimport { useDisclosure, useMediaQuery } from \"@mantine/hooks\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n root: {\r\n zIndex: 200,\r\n borderColor:\r\n theme.colorScheme === \"dark\" || theme.colorScheme === \"darkest\"\r\n ? theme.colors.dark[7]\r\n : \"#e9ecef\",\r\n },\r\n\r\n navbar: {\r\n height: \"inherit\",\r\n backgroundColor:\r\n theme.colorScheme === \"dark\"\r\n ? \"rgb(48, 48, 48)\"\r\n : theme.colorScheme === \"darkest\"\r\n ? \"rgb(12, 18, 23)\"\r\n : theme.white,\r\n },\r\n\r\n link: {\r\n ...theme.fn.focusStyles(),\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n textDecoration: \"none\",\r\n fontSize: theme.fontSizes.sm,\r\n color:\r\n theme.colorScheme === \"dark\" || theme.colorScheme === \"darkest\"\r\n ? theme.colors.dark[1]\r\n : theme.colors.gray[7],\r\n padding: `0.5rem 0.5rem`,\r\n borderRadius: theme.radius.sm,\r\n fontWeight: 500,\r\n width: \"100%\",\r\n \"&:hover\": {\r\n backgroundColor:\r\n theme.colorScheme === \"dark\" || theme.colorScheme === \"darkest\"\r\n ? theme.colors.dark[6]\r\n : theme.colors.gray[0],\r\n color:\r\n theme.colorScheme === \"dark\" || theme.colorScheme === \"darkest\"\r\n ? theme.white\r\n : theme.black,\r\n\r\n [`& .${\"icon\"}`]: {\r\n color:\r\n theme.colorScheme === \"dark\" || theme.colorScheme === \"darkest\"\r\n ? theme.white\r\n : theme.black,\r\n },\r\n },\r\n },\r\n\r\n linkIcon: {\r\n ref: \"icon\",\r\n color:\r\n theme.colorScheme === \"dark\" || theme.colorScheme === \"darkest\"\r\n ? theme.colors.dark[2]\r\n : theme.colors.gray[6],\r\n marginRight: theme.spacing.sm,\r\n },\r\n\r\n linkActive: {\r\n \"&, &:hover\": {\r\n backgroundColor: theme.fn.variant({\r\n variant: \"light\",\r\n color: theme.primaryColor,\r\n }).background,\r\n color:\r\n theme.colorScheme === \"dark\"\r\n ? \"white\"\r\n : theme.colorScheme === \"darkest\"\r\n ? \"black\"\r\n : \"var(--button-primary-background)\",\r\n [`& .${\"icon\"}`]: {\r\n color:\r\n theme.colorScheme === \"dark\"\r\n ? \"white\"\r\n : theme.colorScheme === \"darkest\"\r\n ? \"black\"\r\n : \"var(--button-primary-background)\",\r\n },\r\n },\r\n },\r\n\r\n footer: {\r\n borderTop: `0.1rem solid ${\r\n theme.colorScheme === \"dark\" || theme.colorScheme === \"darkest\"\r\n ? theme.colors.dark[4]\r\n : theme.colors.gray[3]\r\n }`,\r\n paddingTop: theme.spacing.md,\r\n },\r\n\r\n chooseActivePerson: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"1rem\",\r\n justifyContent: \"space-between\",\r\n },\r\n\r\n modalFooter: {\r\n display: \"flex\",\r\n justifyContent: \"end\",\r\n marginTop: \"1rem\",\r\n },\r\n closeButton: {\r\n color:\r\n theme.colorScheme === \"dark\" || theme.colorScheme === \"darkest\"\r\n ? theme.colors.dark[2]\r\n : \"black\",\r\n },\r\n mobile: {\r\n fontSize: \"1rem\",\r\n },\r\n desktop: {\r\n fontSize: \"14px\",\r\n },\r\n}));\r\n\r\nconst SideBarNav = ({ userManager, drawerOpened, drawerClose }) => {\r\n const context = useContext(AccountContext);\r\n const { state } = context;\r\n const language = useSelector((state) => state.language);\r\n const { classes, cx } = useStyles();\r\n const [active, setActive] = useState(\"/\");\r\n const [changePerson, setChangePerson] = useState(false);\r\n const [opened, { open, close }] = useDisclosure(false);\r\n const isMobile = useMediaQuery(\"(max-width: 768px)\");\r\n const { accountData } = state;\r\n const { config, isSelf } = context.state;\r\n const hasSubscription =\r\n state?.accountData?.member?.subscriptionHistory.length > 0;\r\n const availableLinks = getLinks(isSelf, config, hasSubscription);\r\n const path = window.location.pathname.split(\"/\").pop();\r\n\r\n const tabs = {\r\n account: [\r\n {\r\n name: \"home\",\r\n link: `${process.env.PUBLIC_URL}/`,\r\n label: language.Pages && language.Nav[\"Home\"],\r\n icon: IconHome,\r\n },\r\n {\r\n name: \"subscription\",\r\n link: `${process.env.PUBLIC_URL}/subscription`,\r\n label: language.Pages && language.Pages[\"subscription\"],\r\n icon: IconRefresh,\r\n isSubscription: true,\r\n },\r\n {\r\n name: \"sale history\",\r\n link: `${process.env.PUBLIC_URL}/sale-history`,\r\n label: language.Pages && language.Pages[\"sale history\"],\r\n icon: IconReceipt,\r\n },\r\n {\r\n name: \"photo\",\r\n link: `${process.env.PUBLIC_URL}/photo`,\r\n label: language.Pages && language.Pages[\"photo\"],\r\n icon: IconCamera,\r\n },\r\n {\r\n name: \"customer info\",\r\n link: `${process.env.PUBLIC_URL}/customer-info`,\r\n label: language.Pages && language.Pages[\"customer info\"],\r\n icon: IconUserEdit,\r\n },\r\n {\r\n name: \"password\",\r\n link: `${process.env.PUBLIC_URL}/password`,\r\n label: language.Pages && language.Pages[\"password\"],\r\n icon: IconLock,\r\n },\r\n {\r\n name: \"register ticket\",\r\n link: `${process.env.PUBLIC_URL}/register-ticket`,\r\n label: language.Pages && language.Pages[\"register ticket\"],\r\n icon: IconTicket,\r\n },\r\n {\r\n name: \"register managed\",\r\n link: `${process.env.PUBLIC_URL}/register-managed`,\r\n label: language.Pages && language.Pages[\"register managed\"],\r\n icon: IconUserPlus,\r\n },\r\n ],\r\n };\r\n\r\n /* eslint-disable */\r\n const links = useCallback(() => {\r\n return tabs[\"account\"].map((item) => {\r\n const [checkIfValid] = availableLinks.filter(\r\n (link) => item.name === link.name || item.name === \"home\"\r\n );\r\n if (checkIfValid && item.link) {\r\n return (\r\n {\r\n setActive(item.link);\r\n if (isMobile && drawerOpened) drawerClose();\r\n }}\r\n to={`${item.link}`}\r\n >\r\n \r\n {item.label}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n });\r\n }, [availableLinks]);\r\n /* eslint-enable */\r\n\r\n useEffect(() => {\r\n if (path.length === 0) setActive(`${process.env.PUBLIC_URL}/`);\r\n else if (path.length > 0) setActive(`${process.env.PUBLIC_URL}/${path}`);\r\n }, [path]);\r\n\r\n if (!accountData) {\r\n return
;\r\n }\r\n const details = accountData.whoami.details;\r\n const { manages } = details;\r\n const isManaging = manages.length > 0;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {language.ActiveUser} {state.activePerson.name}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n {links()}\r\n \r\n\r\n \r\n {isManaging && (\r\n setChangePerson(true)}\r\n >\r\n \r\n {language.Change_Person}\r\n \r\n )}\r\n \r\n \r\n {language.Logout}\r\n \r\n \r\n \r\n setChangePerson(false)}\r\n title={\"Välj person\"}\r\n centered\r\n size=\"md\"\r\n closeButtonLabel={language.Close}\r\n classNames={{ close: classes.closeButton }}\r\n >\r\n
\r\n Välj aktiv person\r\n
\r\n setChangePerson(false)}\r\n setActive={setActive}\r\n />\r\n {manages.map((p, i) => (\r\n setChangePerson(false)}\r\n setActive={setActive}\r\n />\r\n ))}\r\n
\r\n
\r\n
\r\n setChangePerson(false)}\r\n >\r\n {language.Abort}\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SideBarNav;\r\n","import React, { useMemo } from \"react\";\r\nimport { Drawer, ActionIcon, createStyles } from \"@mantine/core\";\r\nimport { useDisclosure, useMediaQuery } from \"@mantine/hooks\";\r\nimport { IconMenu2 } from \"@tabler/icons-react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport SideBarNav from \"./sideBarNav\";\r\nimport AccountProvider from \"../accountContext\";\r\n\r\nconst useStyles = createStyles(() => ({\r\n header: {},\r\n closeButton: {\r\n top: \"1rem\",\r\n right: \"1rem\",\r\n position: \"absolute\",\r\n \"& svg\": {\r\n width: \"2rem\",\r\n height: \"2rem\",\r\n },\r\n },\r\n hide: {\r\n width: 0,\r\n height: 0,\r\n opacity: 0,\r\n position: \"absolute\",\r\n zIndex: -1,\r\n },\r\n}));\r\nconst MobileMenu = ({ userManager }) => {\r\n const language = useSelector((state) => state.language);\r\n const [opened, { open, close }] = useDisclosure(false);\r\n const isMobile = useMediaQuery(\"(max-width: 768px)\");\r\n const { classes } = useStyles();\r\n\r\n const label = useMemo(() => {\r\n if (opened) return language.MenuOpened;\r\n if (!opened) return language.MenuClosed;\r\n }, [opened, language]);\r\n return (\r\n <>\r\n {isMobile && (\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {opened &&
}\r\n
\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MobileMenu;\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Link } from \"@reach/router\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport { Button } from \"@mantine/core\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport { MenuButton } from \"./UIComponents\";\r\nimport Spinner from \"../spinner\";\r\nimport { THEME } from \"../../infrastructure/reducer\";\r\nimport { AppContext, TOGGLE_MENU } from \"../../context\";\r\nimport MobileMenu from \"../../account/AccountNav/mobileMenu\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n boxShadow: \"none\",\r\n backgroundColor: theme.app.background[1],\r\n borderBottom: `1px solid ${theme.app.borderColorLight}`,\r\n color: theme.app.color,\r\n height: \"64px\",\r\n },\r\n toolbar: {\r\n height: \"100%\",\r\n \"@media(max-width: 768px)\": {\r\n padding: \"0 1rem\",\r\n },\r\n },\r\n logoContainer: {\r\n \"& a\": { display: \"flex\", height: \"100%\", alignItems: \"center\" },\r\n },\r\n logo: {\r\n height: \"40px\",\r\n width: \"auto\",\r\n \"@media(max-width: 667px)\": {\r\n height: \"35px\",\r\n },\r\n },\r\n\r\n loginContainer: {\r\n flexGrow: 1,\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n alignItems: \"center\",\r\n },\r\n button: {\r\n color: theme.app.labelColor,\r\n \"&:hover\": {\r\n backgroundColor: theme.app.hoverBackground[1],\r\n },\r\n },\r\n}));\r\n\r\nconst Header = ({ userManager }) => {\r\n const [busy, setBusy] = useState(false);\r\n const { theme, config, auth, language } = useSelector((state) => ({\r\n theme: state.cookies[THEME],\r\n config: state.infrastructure.config,\r\n auth: state.oidc.user !== null && !state.oidc.user.expired,\r\n language: state.language,\r\n }));\r\n const { ctx: state, dispatch } = useContext(AppContext);\r\n const classes = useStyles({ isLoggedIn: auth });\r\n const toggleMenu = () => {\r\n dispatch({ type: TOGGLE_MENU });\r\n };\r\n const getLogo = () =>\r\n config.logo?.src\r\n ? config.logo.src\r\n : theme === \"light\"\r\n ? \"/ee-static/members/Images/logo.svg\"\r\n : \"/ee-static/members/Images/logo_dark.svg\";\r\n\r\n const labelMenu = state.menuOpen ? language.CloseMenu : language.OpenMenu;\r\n\r\n useEffect(() => {\r\n if (busy) {\r\n userManager.signinRedirect();\r\n }\r\n }, [busy, userManager]);\r\n\r\n useEffect(() => {\r\n const params = new URL(document.location).searchParams;\r\n if (params.get(\"redirect\") === \"loginRedirectFromBooking\") {\r\n userManager.signinRedirect();\r\n }\r\n }, [userManager]);\r\n\r\n if (busy) return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {config.hideLogin ? (\r\n
\r\n ) : (\r\n \r\n {!auth && (\r\n setBusy(true)}\r\n className={classNames(classes.button, \"header__logout-button\")}\r\n variant=\"subtle\"\r\n >\r\n
{language.Login}
\r\n \r\n )}\r\n
\r\n )}\r\n {!auth && (\r\n \r\n )}\r\n {auth && }\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Button } from \"@mantine/core\";\r\nimport { Link, Location } from \"@reach/router\";\r\n\r\nconst useStyles = makeStyles(\r\n (theme) =>\r\n console.log(theme) || {\r\n nav: {\r\n alignItems: \"center\",\r\n backgroundColor: theme.app.background[1],\r\n borderBottom: `1px solid ${theme.app.borderColorLight}`,\r\n display: \"flex\",\r\n height: \"64px\",\r\n left: 0,\r\n padding: \"0 16px\",\r\n \"@media(max-width: 768px)\": {\r\n display: \"none\",\r\n },\r\n },\r\n navButton: {\r\n color: theme.app.labelColor,\r\n },\r\n activeNav: {\r\n color: theme.palette.primary.dark,\r\n pointerEvents: \"none\",\r\n },\r\n }\r\n);\r\n\r\nconst Nav = () => {\r\n const { language, config, url } = useSelector((state) => ({\r\n config: state.infrastructure.config,\r\n language: state.language,\r\n url: state.infrastructure.url,\r\n }));\r\n const classes = useStyles();\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default Nav;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport { TextField } from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formcontrol: {\r\n width: \"100%\",\r\n marginTop: \"1rem\",\r\n },\r\n outlined: {\r\n \"& fieldSet\": {\r\n borderColor: theme.app.borderColor,\r\n },\r\n \"& label\": {\r\n color: theme.app.contrastLabelColor,\r\n },\r\n },\r\n}));\r\n\r\nconst MuiTextInput = (props) => {\r\n const {\r\n field,\r\n form: { touched, errors },\r\n placeholder,\r\n min,\r\n type,\r\n max,\r\n required,\r\n disabled,\r\n autoFocus,\r\n label,\r\n fullWidth,\r\n info,\r\n autocomplete,\r\n } = props;\r\n const classes = useStyles();\r\n return (\r\n 0\r\n }\r\n disabled={disabled}\r\n className={classes.formcontrol}\r\n variant=\"filled\"\r\n >\r\n \r\n\r\n {touched[field.name] && errors[field.name] ? (\r\n \r\n {errors[field.name]}\r\n \r\n ) : (\r\n {info}\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MuiTextInput;\r\n","import React from \"react\";\r\nimport { Formik, Field, Form } from \"formik\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Button } from \"@mantine/core\";\r\nimport MuiTextInput from \"../../Common/MuiTextInput\";\r\nimport { getFieldInfo, validate } from \"./util\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n fieldsContainer: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(2,1fr)\",\r\n gridGap: \"16px\",\r\n paddingTop: \"16px\",\r\n \"@media(max-width: 667px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n },\r\n },\r\n actionContainer: {\r\n marginTop: \"16px\",\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n padding: \"8px 0\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n alignItems: \"center\",\r\n },\r\n formActions: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n \"& button\": {\r\n marginLeft: \"8px\",\r\n },\r\n },\r\n button: { color: theme.app.labelColor },\r\n backButton: { marginRight: \"8px\", color: theme.app.labelColor },\r\n}));\r\n\r\nconst MemberForm = (props) => {\r\n const { initialValues, language, fieldInfo, ticket, handleSubmit } = props;\r\n const classes = useStyles();\r\n const { visibleFields, requiredFields } = getFieldInfo(fieldInfo, ticket);\r\n\r\n const validateCellPhone = (value) => {\r\n const regexPattern = /^(\\+(\\d{1,3}\\s*)|)\\d{1,4}(-|\\/|\\s|)(\\d\\s*){5,10}$/;\r\n\r\n if (requiredFields.includes(\"cellPhone\") && !value) {\r\n return (\r\n (language.MemberForm && language.MemberForm.CellPhone_Required) ||\r\n \"Telefonnummer är obligatoriskt\"\r\n );\r\n }\r\n\r\n if (value.length > 15) {\r\n return language.MemberForm.Invalid_Length\r\n ? language.MemberForm.Invalid_Length\r\n : \"Ogiltig längd\";\r\n } else if (value.length > 0 && !regexPattern.test(value)) {\r\n return language.CellPhone_Error\r\n ? language.CellPhone_Error\r\n : \"Ogiltigt telefonnummer\";\r\n }\r\n };\r\n\r\n if (!language.MemberForm) return
;\r\n return (\r\n handleSubmit(values, actions)}\r\n validate={(values) =>\r\n validate(values, language, ticket, requiredFields, visibleFields)\r\n }\r\n render={({ isValid, isSubmitting }) => (\r\n
\r\n
\r\n {visibleFields.includes(\"firstname\") && (\r\n \r\n )}\r\n {visibleFields.includes(\"lastname\") && (\r\n \r\n )}\r\n {visibleFields.includes(\"civicRegistrationNumber\") && (\r\n \r\n )}\r\n {visibleFields.includes(\"email\") && (\r\n \r\n )}\r\n {visibleFields.includes(\"zipCode\") && (\r\n \r\n )}\r\n {visibleFields.includes(\"cellPhone\") && (\r\n \r\n )}\r\n {ticket && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n window.history.back()}\r\n variant=\"subtle\"\r\n color=\"dark\"\r\n >\r\n {`${language && language.Back}`}\r\n \r\n
\r\n
\r\n \r\n {`${language && language.Register}`}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default MemberForm;\r\n","import isEmail from \"sane-email-validation\";\r\n\r\nexport const getFieldInfo = (fieldInfo, ticket) => {\r\n if (ticket) return fieldInfo.registerTicket;\r\n return fieldInfo.registerMember;\r\n};\r\n\r\nexport const validate = (\r\n values,\r\n language,\r\n ticket,\r\n requiredFields,\r\n visibleFields\r\n) => {\r\n // console.log(values, requiredFields, visibleFields);\r\n const errors = {};\r\n if (requiredFields.includes(\"firstname\") && !values.firstname) {\r\n errors.firstname =\r\n language.MemberForm && language.MemberForm.FirstName_Required;\r\n } else if (values.firstname.length > 100) {\r\n errors.firstname = language.MemberForm.Invalid_Length || \"Ogiltig längd\";\r\n }\r\n if (requiredFields.includes(\"lastname\") && !values.lastname) {\r\n errors.lastname =\r\n language.MemberForm && language.MemberForm.LastName_Required;\r\n } else if (values.lastname.length > 100) {\r\n errors.lastname = language.MemberForm.Invalid_Length || \"Ogiltig längd\";\r\n }\r\n if (requiredFields.includes(\"email\") && !values.email) {\r\n errors.email =\r\n (language.MemberForm && language.MemberForm.Email_Required) ||\r\n \"Ogiltig längd\";\r\n } else if (\r\n values.email &&\r\n values.email.length > 0 &&\r\n !isEmail(values.email)\r\n ) {\r\n errors.email = language.MemberForm && language.MemberForm.Email_Invalid;\r\n } else if (values.email.length > 100) {\r\n errors.email = language.MemberForm.Invalid_Length || \"Ogiltig längd\";\r\n }\r\n if (\r\n requiredFields.includes(\"civicRegistrationNumber\") &&\r\n !values.civicRegistrationNumber\r\n ) {\r\n errors.civicRegistrationNumber =\r\n language.MemberForm && language.MemberForm.CivicRegistration_Required;\r\n } else if (\r\n !/^(19|20)?[0-9]{6}[- ]?[0-9]{4}$/.test(values.civicRegistrationNumber) &&\r\n visibleFields.includes(\"civicRegistrationNumber\")\r\n ) {\r\n errors.civicRegistrationNumber =\r\n language.MemberForm && language.MemberForm.CivicRegistration_Invalid;\r\n }\r\n if (requiredFields.includes(\"zipCode\") && !values.zipCode) {\r\n errors.zipCode =\r\n language.MemberForm && language.MemberForm.ZipCode_Required;\r\n } else if (values.zipCode && values.zipCode > 98999) {\r\n errors.zipCode = language.MemberForm && language.MemberForm.ZipCode_Invalid;\r\n } else if (\r\n values.zipCode &&\r\n !/^[0-9]{2,3}(\\s?){0,1}[0-9]{2,}$/.test(values.zipCode)\r\n ) {\r\n errors.zipCode = language.MemberForm && language.MemberForm.ZipCode_Invalid;\r\n }\r\n if (ticket && !values.id) {\r\n errors.id = language.MemberForm && language.MemberForm.TicketId_Required;\r\n }\r\n // console.log(errors);\r\n return errors;\r\n};\r\n","export default {\r\n firstname: \"\",\r\n lastname: \"\",\r\n civicRegistrationNumber: \"\",\r\n email: \"\",\r\n zipCode: \"\",\r\n cellPhone: \"\"\r\n};\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport AvatarEditor from \"react-avatar-editor\";\r\nimport classNames from \"classnames\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { Button } from \"@mantine/core\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport OpenPreviewIcon from \"@material-ui/icons/Visibility\";\r\nimport ClosePreviewIcon from \"@material-ui/icons/VisibilityOff\";\r\nimport RotateIcon from \"@material-ui/icons/RotateRight\";\r\nimport ZoomInIcon from \"@material-ui/icons/ZoomIn\";\r\nimport ZoomOutIcon from \"@material-ui/icons/ZoomOut\";\r\nimport placeholder from \"../../registration/registermember/placeholder.jpg\";\r\n\r\nconst styles = () => ({\r\n container: {\r\n display: \"block\",\r\n paddingTop: \"300px\",\r\n position: \"relative\",\r\n width: \"100%\",\r\n },\r\n imageContainer: {\r\n left: \"50%\",\r\n position: \"absolute\",\r\n top: 0,\r\n transform: \"scale(0.5) translate(-50%, 0)\",\r\n transformOrigin: \"top left\",\r\n },\r\n previewImage: {\r\n height: \"580px\",\r\n width: \"580px\",\r\n },\r\n activePersonPhotoContainer: {\r\n width: \"300px\",\r\n height: \"300px\",\r\n transform: \"scale(2)\",\r\n transformOrigin: \"top\",\r\n \"@media(max-width: 576px)\": {\r\n width: \"250px\",\r\n heigth: \"250px\",\r\n },\r\n },\r\n activePersonPhoto: {\r\n maxWidth: \"100%\",\r\n maxHeigth: \"100%\",\r\n },\r\n avatarActions: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n \"& button\": {\r\n margin: \"0 4px\",\r\n },\r\n },\r\n actionContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n flexWrap: \"wrap\",\r\n marginTop: \"24px\",\r\n padding: \".7rem\",\r\n \"& button\": {\r\n marginLeft: \"8px\",\r\n },\r\n },\r\n placeholder: {\r\n display: \"block\",\r\n width: \"500px\",\r\n margin: \"0 auto\",\r\n borderRadius: \"4px\",\r\n cursor: \"pointer\",\r\n },\r\n});\r\n\r\n// const initialState = {\r\n// photo: null,\r\n// zoom: 1.2,\r\n// rotate: 0,\r\n// showPreview: false,\r\n// position: { x: 0.5, y: 0.5 },\r\n// previewImg: \"\"\r\n// };\r\n\r\nclass Editor extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const getPhoto = () => {\r\n if (props.photo) {\r\n return props.photo.photoBase64;\r\n }\r\n return null;\r\n };\r\n this.state = {\r\n photo: getPhoto(),\r\n zoom: 1.2,\r\n rotate: 0,\r\n showPreview: false,\r\n position: { x: 0.5, y: 0.5 },\r\n previewImg: \"\",\r\n };\r\n }\r\n\r\n setPreview = () => {\r\n const canvasScaled = this.editor.getImageScaledToCanvas();\r\n this.setState({\r\n showPreview: true,\r\n previewImg: canvasScaled.toDataURL(\"image/jpeg\", 1.0),\r\n });\r\n };\r\n\r\n onClickSave = () => {\r\n if (this.editor) {\r\n const canvasScaled = this.editor.getImageScaledToCanvas();\r\n this.props.savePhoto(canvasScaled.toDataURL(\"image/jpeg\", 1.0));\r\n this.props.close && this.props.close();\r\n }\r\n };\r\n\r\n setEditorRef = (editor) => (this.editor = editor);\r\n handleZoomIn = () =>\r\n this.setState({\r\n zoom: (Number(this.state.zoom) + 0.1).toFixed(1),\r\n });\r\n handleZoomOut = () =>\r\n this.setState({\r\n zoom: (Number(this.state.zoom) - 0.1).toFixed(1),\r\n });\r\n openPhotoSelect = () => {\r\n const photoSelectDom = ReactDOM.findDOMNode(this.refs.photoSelect);\r\n return photoSelectDom.click();\r\n };\r\n render() {\r\n const { language, close, classes, activePerson, isNotLoggedIn } =\r\n this.props;\r\n\r\n return (\r\n
\r\n
\r\n {this.state.showPreview ? (\r\n \r\n ) : this.state.photo ? (\r\n this.setState({ position: pos })}\r\n color={[0, 0, 0, 0.6]} // RGBA\r\n scale={Number(this.state.zoom)}\r\n style={{ cursor: \"move\" }}\r\n rotate={Number(this.state.rotate)}\r\n />\r\n ) : isNotLoggedIn ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n {!this.state.showPreview && this.state.photo && (\r\n <>\r\n 2.9}\r\n >\r\n \r\n \r\n \r\n this.setState({ rotate: this.state.rotate + 90 })\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 {this.state.showPreview && this.state.photo && (\r\n this.setState({ showPreview: false })}>\r\n \r\n \r\n )}\r\n
\r\n\r\n
\r\n {close && !this.state.showPreview && (\r\n <>\r\n \r\n {language.Choose_Photo\r\n ? this.state.photo\r\n ? language.Choose_New_Photo\r\n : language.Choose_Photo\r\n : \"\"}\r\n \r\n {!isNotLoggedIn && (\r\n \r\n )}\r\n {!this.state.showPreview && this.state.photo && (\r\n this.onClickSave()}\r\n className=\"editor__save-button primaryButton\"\r\n >\r\n {language.Save}\r\n \r\n )}\r\n \r\n )}\r\n
\r\n this.setState({ photo: event.target.files[0] })}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(Editor);\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Editor from \"../../account/photo/avatarEditor\";\r\n\r\nconst useStyles = makeStyles({\r\n container: {}\r\n});\r\n\r\nconst UploadPhoto = props => {\r\n const { savePhoto } = props;\r\n const classes = useStyles();\r\n const language = useSelector(state => state.language);\r\n\r\n return (\r\n
\r\n null}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default UploadPhoto;\r\n","import React from \"react\";\r\n\r\nconst MailIcons = ({ provider }) => {\r\n return (\r\n
\r\n {provider === \"google\" && (\r\n \r\n )}\r\n {provider === \"outlook\" && (\r\n \r\n )}\r\n {provider === \"apple\" && (\r\n \r\n )}\r\n {provider === \"yahoo\" && (\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default MailIcons;\r\n","export default {\r\n firstname: \"\",\r\n lastname: \"\",\r\n civicRegistrationNumber: \"\",\r\n email: \"\",\r\n zipCode: \"\",\r\n cellPhone: \"\",\r\n id: \"\"\r\n};\r\n","import passwordValidator from \"password-validator\";\r\nlet schema = new passwordValidator();\r\n\r\nconst setRules = rules => {\r\n if (rules) {\r\n const { capitals, nonAlphanumeric, digits, length } = rules;\r\n if (capitals && capitals > 0) {\r\n schema.has().uppercase();\r\n }\r\n if (nonAlphanumeric && nonAlphanumeric > 0) {\r\n schema.has().symbols();\r\n }\r\n if (digits && digits > 0) {\r\n schema.has().digits();\r\n }\r\n if (length && length > 0) {\r\n schema.is().min(length);\r\n }\r\n }\r\n};\r\n\r\nconst validate = (values, language, rules, info) => {\r\n // const { language } = props;\r\n setRules(rules);\r\n\r\n const errors = {};\r\n if (!values.newPassword) {\r\n errors.newPassword = language.PasswordValidation.noNewPassword;\r\n } else if (!schema.validate(values.newPassword)) {\r\n errors.newPassword = info;\r\n }\r\n if (!values.confirmPassword) {\r\n errors.confirmPassword =\r\n language.PasswordValidation.noNewPasswordVerification;\r\n } else if (values.newPassword !== values.confirmPassword) {\r\n errors.confirmPassword = language.PasswordValidation.passwordNotVerified;\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Formik, Field, Form } from \"formik\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport validate from \"./validate\";\r\nimport MuiTextInput from \"../../Common/MuiTextInput\";\r\nimport { Button } from \"@mantine/core\";\r\nimport { getInfo } from \"./util\";\r\n\r\nconst useStyles = makeStyles({\r\n submit: {\r\n marginTop: \"0.25rem\",\r\n },\r\n});\r\n\r\nconst PasswordForm = (props) => {\r\n const { handleSubmit, initialValues } = props;\r\n const { config, language } = useSelector((state) => ({\r\n config: state.infrastructure.config,\r\n language: state.language,\r\n }));\r\n const classes = useStyles();\r\n const info = getInfo(config.passwordRules);\r\n return (\r\n handleSubmit(values, actions)}\r\n validate={(values) =>\r\n validate(values, language, config.passwordRules, info)\r\n }\r\n render={(props) => (\r\n
\r\n \r\n \r\n
\r\n \r\n {language.Save || \"Spara\"}\r\n \r\n
\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default PasswordForm;\r\n","export const getInfo = rules => {\r\n if (!rules) return \"\";\r\n let textArr = [];\r\n let text = \"\";\r\n const { capitals, nonAlphanumeric, digits, length } = rules;\r\n if (capitals && capitals > 0) {\r\n if (capitals > 1) {\r\n textArr = [...textArr, `minst ${capitals} stora bokstäver (A-Z)`];\r\n } else {\r\n textArr = [...textArr, `minst ${capitals} stor bokstav (A-Z)`];\r\n }\r\n }\r\n if (nonAlphanumeric && nonAlphanumeric > 0) {\r\n textArr = [...textArr, `minst ${nonAlphanumeric} specialtecken (!?#%*)`];\r\n }\r\n if (digits && digits > 0) {\r\n if (digits > 1) {\r\n textArr = [...textArr, `minst ${digits} siffror (0-9)`];\r\n } else {\r\n textArr = [...textArr, `minst ${digits} siffra (0-9)`];\r\n }\r\n }\r\n if (length) {\r\n textArr = [...textArr, `minst ${length} tecken totalt`];\r\n }\r\n for (let i = 0; i < textArr.length; i++) {\r\n if (i < textArr.length - 1) {\r\n text = text + textArr[i] + \", \";\r\n } else {\r\n text = text + textArr[i];\r\n }\r\n }\r\n return text;\r\n};\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { navigate } from \"@reach/router\";\r\nimport PasswordForm from \"./form\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\nimport { setPassword } from \"../../infrastructure/actions\";\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n maxWidth: \"1024px\",\r\n width: \"100%\",\r\n margin: \"16px auto\",\r\n },\r\n paper: {\r\n padding: \"16px\",\r\n },\r\n});\r\n\r\nconst SetPassword = (props) => {\r\n const classes = useStyles();\r\n const { dispatch } = useContext(AppContext);\r\n const { language, config } = useSelector((state) => ({\r\n config: state.infrastructure.config,\r\n language: state.language,\r\n }));\r\n const rdxDispatch = useDispatch();\r\n\r\n const redirect = (status) => {\r\n const goBackUrl = localStorage.getItem(\"goBackUrl\");\r\n if (status < 400 && goBackUrl && goBackUrl.includes(\"booking\")) {\r\n window.location.replace(\r\n `${config.authUrl.split(\"auth\")[0]}booking?redirect=booking`\r\n );\r\n } else if (status < 400) {\r\n navigate(config.self);\r\n }\r\n };\r\n\r\n const handleSubmit = (values, actions) => {\r\n rdxDispatch(\r\n setPassword(props.id, values.newPassword, (response) => {\r\n if (response.status < 400) {\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.passwordSubmitSuccess,\r\n variant: \"success\",\r\n },\r\n });\r\n redirect(response.status);\r\n } else {\r\n response.text().then((text) => {\r\n if (text.length > 0) {\r\n dispatch({ type: TOAST, payload: { text, variant: \"error\" } });\r\n }\r\n if (text.length === 0) {\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.setPasswordFailed,\r\n variant: \"error\",\r\n },\r\n });\r\n }\r\n actions.resetForm();\r\n });\r\n }\r\n })\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n {language.SetPassword}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SetPassword;\r\n","import isEmail from \"sane-email-validation\";\r\n\r\nconst validate = (values, language) => {\r\n // const { language } = props;\r\n\r\n const errors = {};\r\n if (!values.email) {\r\n errors.email = language.MemberForm && language.MemberForm.Email_Required;\r\n } else if (\r\n values.email &&\r\n values.email.length > 0 &&\r\n !isEmail(values.email)\r\n ) {\r\n errors.email = language.MemberForm && language.MemberForm.Email_Invalid;\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Button } from \"@mantine/core\";\r\nimport MuiTextInput from \"../../Common/MuiTextInput\";\r\nimport validate from \"./validate\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formRow: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n gridGap: \"16px\",\r\n margin: \"16px 0\",\r\n \"@media(max-width: 576px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n },\r\n },\r\n buttonContainer: {\r\n marginTop: \"16px\",\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n padding: \"8px 0\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n alignItems: \"center\",\r\n },\r\n button: {\r\n color: theme.app.labelColor,\r\n },\r\n}));\r\n\r\nconst RequestForm = (props) => {\r\n const { initialValues, handleSubmit } = props;\r\n const language = useSelector((state) => state.language);\r\n const classes = useStyles();\r\n return (\r\n
\r\n handleSubmit(values, actions)}\r\n validate={(values) => validate(values, language)}\r\n render={(props) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n window.history.back()}\r\n variant=\"subtle\"\r\n color=\"dark\"\r\n >\r\n {language.Back}\r\n \r\n
\r\n
\r\n \r\n {language.Send ? language.Send : \"skicka\"}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default RequestForm;\r\n","export const getNumberOfItems = (\r\n registerMember,\r\n registerTicket,\r\n hideNewPassword\r\n) => {\r\n let items = 0;\r\n if (registerMember) {\r\n items = items + 1;\r\n }\r\n if (registerTicket) {\r\n items = items + 1;\r\n }\r\n if (!hideNewPassword) {\r\n items = items + 1;\r\n }\r\n return items;\r\n};\r\n","import React from \"react\";\r\nimport { CallbackComponent } from \"redux-oidc\";\r\nimport { navigate } from \"@reach/router\";\r\n\r\nclass CallbackPage extends React.Component {\r\n successCallback = () => {\r\n console.log(\"Success\", `${process.env.PUBLIC_URL}/`);\r\n navigate(`${process.env.PUBLIC_URL}/`);\r\n };\r\n\r\n errorCallback = () => {\r\n console.log(\"Error\", `${process.env.PUBLIC_URL}/`);\r\n navigate(`${process.env.PUBLIC_URL}/`);\r\n };\r\n\r\n render() {\r\n // just redirect to '/' in both cases\r\n return (\r\n \r\n
Redirecting...
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CallbackPage;\r\n","import React, { useContext, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Button } from \"@mantine/core\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Editor from \"./avatarEditor\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\nimport { AccountContext } from \"../accountContext\";\r\nimport { uploadPhoto64 } from \"../../infrastructure/actions\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n photo: {},\r\n pageInfo: {\r\n fontSize: \"0.875rem\",\r\n color: theme.app.secondaryColor,\r\n marginTop: \".5rem\",\r\n },\r\n card: {\r\n border: `1px solid ${theme.app.borderColor}`,\r\n borderRadius: \"4px\",\r\n marginTop: \"16px\",\r\n },\r\n content: {},\r\n imageContainer: {\r\n alignItems: \"center\",\r\n background: theme.app.background[1],\r\n display: \"flex\",\r\n height: \"300px\",\r\n justifyContent: \"center\",\r\n width: \"300px\",\r\n padding: \"8px\",\r\n border: `1px solid ${theme.app.borderColor}`,\r\n borderRadius: \"4px\",\r\n margin: \"16px auto\",\r\n \"@media(max-width: 576px)\": {\r\n height: \"250px\",\r\n width: \"250px\",\r\n },\r\n },\r\n image: {\r\n borderRadius: \"4px\",\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n },\r\n buttonContainer: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 1fr\",\r\n padding: \"8px\",\r\n borderTop: `1px solid ${theme.app.borderColorLight}`,\r\n background: theme.app.background[1],\r\n },\r\n changePhotoAction: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n },\r\n button: { color: theme.app.labelColor },\r\n}));\r\n\r\nconst Photo = (props) => {\r\n const classes = useStyles();\r\n const [edit, setEdit] = useState(false);\r\n const accountContext = useContext(AccountContext);\r\n const { activePerson } = accountContext.state;\r\n const { dispatch } = useContext(AppContext);\r\n const { language, config } = useSelector((state) => ({\r\n language: state.language,\r\n config: state.infrastructure.config,\r\n }));\r\n const rdxDispatch = useDispatch();\r\n const handlePhoto = (photoFile) => {\r\n const photoUrl = `${config.apiUrl}/photobase64/${activePerson.id}`;\r\n rdxDispatch(\r\n uploadPhoto64(photoUrl, photoFile, null, (response) => {\r\n if (response.status >= 400) {\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.photoSubmitFailed,\r\n variant: \"error\",\r\n },\r\n });\r\n return console.log(response);\r\n }\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.photoSubmitSuccess,\r\n variant: \"success\",\r\n },\r\n });\r\n })\r\n );\r\n setTimeout(() => setEdit(false), 500);\r\n };\r\n\r\n return (\r\n
\r\n {language.Pages[\"photo\"]}\r\n \r\n {language.PageInfo[\"photo\"]}\r\n \r\n
\r\n
\r\n {edit ? (\r\n handlePhoto(photo)}\r\n language={language}\r\n close={() => setEdit(false)}\r\n />\r\n ) : (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n
\r\n window.history.back()}\r\n color=\"dark\"\r\n variant=\"subtle\"\r\n >\r\n Tillbaka\r\n \r\n
\r\n
\r\n setEdit(true)}\r\n color=\"primary\"\r\n >\r\n {language.Change_Photo}\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 Photo;\r\n","import styled from \"styled-components\";\r\n\r\nexport const Row = styled.div`\r\n display: grid;\r\n grid-template-columns: ${p =>\r\n p.gtc ? p.gtc : p.cols ? `repeat(${p.cols}, 1fr)` : \"1fr\"};\r\n grid-gap: 0.5rem;\r\n margin: ${p => p.margin};\r\n @media (max-width: 667px) {\r\n grid-template-columns: 1fr;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\n// CUSTOMERFORM\r\n\r\nexport const FormSection = styled.div`\r\n width: 100%;\r\n padding-top: 1rem;\r\n`;\r\n\r\nexport const FormRow = styled.div`\r\n display: grid;\r\n grid-template-columns: ${p =>\r\n p.gtc ? p.gtc : `repeat(${p.items || 1}, 1fr)`};\r\n grid-gap: 1rem;\r\n @media (max-width: 768px) {\r\n grid-template-columns: 1fr;\r\n }\r\n`;\r\n","import React from \"react\";\r\nimport { Field } from \"formik\";\r\nimport MuiTextInput from \"../../Common/MuiTextInput\";\r\nimport { FormSection } from \"./UIComponents\";\r\n\r\nexport default ({ p, i, language, canEditForm }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Field } from \"formik\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport MuiTextInput from \"../../Common/MuiTextInput\";\r\nimport { FormSection, FormRow } from \"./UIComponents\";\r\n\r\nexport default ({ a, i, language, canEditForm }) => {\r\n return (\r\n \r\n \r\n {a\r\n ? language.Account_Address_Type[a.type]\r\n : language.Account_Address_Type[\"Generic\"]}\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","import React, { useState } from \"react\";\r\nimport { Formik, Field, Form } from \"formik\";\r\nimport { validate } from \"./validate\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Row } from \"../password/UIComponents\";\r\nimport Phone from \"./phoneNumberFields\";\r\nimport Address from \"./addressFields\";\r\nimport MuiTextInput from \"../../Common/MuiTextInput\";\r\nimport { Button } from \"@mantine/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n submit: {\r\n marginTop: \"16px\",\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n padding: \"8px 0\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n alignItems: \"center\",\r\n },\r\n formActions: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n \"& button\": {\r\n marginLeft: \"8px\",\r\n },\r\n },\r\n button: { color: theme.app.labelColor },\r\n}));\r\n\r\nconst CustForm = (props) => {\r\n const [canEditForm, setCanEditForm] = useState(false);\r\n const { handleSubmit, language, initialValues, activePerson } = props;\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n handleSubmit(values, actions, () => setCanEditForm(!canEditForm))\r\n }\r\n validate={(values) => validate(values, language)}\r\n enableReinitialize={true}\r\n render={(props) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1\r\n ? activePerson.phonenumbers.length\r\n : 2\r\n }\r\n >\r\n {activePerson.phonenumbers.map((p, i) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n {activePerson.addresses.length < 1 ? (\r\n \r\n
\r\n \r\n ) : (\r\n activePerson.addresses.map((a, i) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })\r\n )}\r\n
\r\n
\r\n window.history.back()}\r\n variant=\"subtle\"\r\n color=\"dark\"\r\n >\r\n Tillbaka\r\n \r\n
\r\n
\r\n {\r\n setCanEditForm(false);\r\n props.handleReset();\r\n }\r\n : () => setCanEditForm(!canEditForm)\r\n }\r\n >\r\n {canEditForm ? language.Reset : language.Edit}\r\n \r\n \r\n {language.Save}\r\n \r\n
\r\n
\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default CustForm;\r\n","import isEmail from \"sane-email-validation\";\r\n\r\nexport const validate = values => {\r\n const errors = {};\r\n if (!values.firstname) {\r\n errors.firstname = `Förnamn är obligatoriskt`;\r\n }\r\n if (!values.lastname) {\r\n errors.lastname = `Efternamn är obligatoriskt`;\r\n }\r\n if (values.email && values.email.length > 0) {\r\n if (!isEmail(values.email)) {\r\n errors.email = `Ogiltig E-post`;\r\n }\r\n }\r\n if (\r\n values.civicRegistrationNumber &&\r\n values.civicRegistrationNumber.length > 0\r\n ) {\r\n if (\r\n !/^(19|20)[0-9]{6}[- ]?[0-9]{4}$/.test(values.civicRegistrationNumber)\r\n ) {\r\n errors.civicRegistrationNumber = `Ogiltigt personnummer`;\r\n }\r\n }\r\n // if (!values.zipCode) {\r\n // errors.zipCode = `Postnummer är obligatoriskt`;\r\n // } else if (values.zipCode.length < 5) {\r\n // errors.zipCode = `Postnumret behöver vara minst 5 siffror`;\r\n // } else if (values.zipCode.length > 5) {\r\n // errors.zipCode = `Postnumret får inte vara längre än 5 siffror`;\r\n // }\r\n return errors;\r\n};\r\n","export const getInitialValues = activePerson => {\r\n return {\r\n firstname: activePerson.firstname || \"\",\r\n lastname: activePerson.lastname || \"\",\r\n email: activePerson.email || \"\",\r\n civicRegistrationNumber: activePerson.civicRegistrationNumber || \"\",\r\n phoneNumbers: activePerson.phonenumbers.map(p => ({\r\n type: p.type || \"\",\r\n number: p.number || \"\"\r\n })),\r\n addresses:\r\n activePerson.addresses.length > 0\r\n ? activePerson.addresses.map(a => ({\r\n extra: a.extra || \"\",\r\n street: a.street || \"\",\r\n streetNumber: a.streetNumber || \"\",\r\n zipCode: a.zipCode || \"\",\r\n city: a.city || \"\",\r\n countryCode: a.countryCode || \"\"\r\n }))\r\n : [\r\n {\r\n extra: \"\",\r\n street: \"\",\r\n streetNumber: \"\",\r\n zipCode: \"\",\r\n city: \"\",\r\n countryCode: \"\"\r\n }\r\n ]\r\n };\r\n};\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useMutation } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { AppContext } from \"../../context\";\r\nimport CustomerForm from \"./Form\";\r\nimport { getInitialValues } from \"./util\";\r\nimport { TOAST } from \"../../context\";\r\n\r\nconst useStyles = makeStyles({\r\n updateSelf: {}\r\n});\r\n\r\nconst UPDATE_SELF_SUBMIT = gql`\r\n mutation updateSelfSubmit($payload: UpdateSelfMutation!) {\r\n updateSelf(payload: $payload) {\r\n isSuccess\r\n message\r\n }\r\n }\r\n`;\r\n\r\nconst Update = props => {\r\n const { activePerson } = props;\r\n const classes = useStyles();\r\n const { dispatch } = useContext(AppContext);\r\n const language = useSelector(state => state.language);\r\n const handleMutationError = error => {\r\n dispatch({ type: TOAST, payload: { text: error, variant: \"error\" } });\r\n };\r\n const handleMutationSuccess = ({ updateSelf }) => {\r\n if (updateSelf.isSuccess) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.customerInfoSubmitSuccess,\r\n variant: \"success\"\r\n }\r\n });\r\n }\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts[updateSelf.message] || updateSelf.message,\r\n variant: \"error\"\r\n }\r\n });\r\n };\r\n const [update] = useMutation(UPDATE_SELF_SUBMIT, {\r\n onError: handleMutationError,\r\n onCompleted: handleMutationSuccess\r\n });\r\n const handleSubmit = (values, actions, toggleEdit) => {\r\n update({ variables: { payload: values } }).then(() => {\r\n actions.setSubmitting(false);\r\n return toggleEdit();\r\n });\r\n };\r\n return (\r\n
\r\n \r\n handleSubmit(values, actions, toggleEdit)\r\n }\r\n initialValues={getInitialValues(activePerson)}\r\n language={language}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default Update;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useMutation } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport CustomerForm from \"./Form\";\r\nimport { getInitialValues } from \"./util\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\nimport { AccountContext } from \"../accountContext\";\r\n\r\nconst useStyles = makeStyles({\r\n updateManaged: {}\r\n});\r\n\r\nconst UPDATE_MANAGED_SUBMIT = gql`\r\n mutation updateManagedSubmit($payload: UpdateManagedPartyMutation!) {\r\n updateManagedParty(payload: $payload) {\r\n isSuccess\r\n message\r\n }\r\n }\r\n`;\r\n\r\nconst UpdateManaged = props => {\r\n const classes = useStyles();\r\n const language = useSelector(state => state.language);\r\n const accountContext = useContext(AccountContext);\r\n const { dispatch } = useContext(AppContext);\r\n const { activePerson } = accountContext.state;\r\n const handleMutationError = error => {\r\n dispatch({ type: TOAST, payload: { text: error, variant: \"error\" } });\r\n };\r\n const handleMutationSuccess = ({ updateManagedParty }) => {\r\n if (updateManagedParty.isSuccess) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.customerInfoSubmitSuccess,\r\n variant: \"success\"\r\n }\r\n });\r\n }\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text:\r\n language.Toasts[updateManagedParty.message] ||\r\n updateManagedParty.message,\r\n variant: \"error\"\r\n }\r\n });\r\n };\r\n const [update] = useMutation(UPDATE_MANAGED_SUBMIT, {\r\n onError: handleMutationError,\r\n onCompleted: handleMutationSuccess\r\n });\r\n const handleSubmit = (values, actions, toggleEdit) => {\r\n const newValues = { ...values, managedPartyId: activePerson.id };\r\n update({ variables: { payload: newValues } }).then(() => {\r\n actions.setSubmitting(false);\r\n return toggleEdit();\r\n });\r\n };\r\n return (\r\n
\r\n \r\n handleSubmit(values, actions, toggleEdit)\r\n }\r\n initialValues={getInitialValues(activePerson)}\r\n language={language}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default UpdateManaged;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Update from \"./update\";\r\nimport UpdateManaged from \"./updateManaged\";\r\nimport { AccountContext } from \"../accountContext\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n customerInfo: {},\r\n pageInfo: {\r\n fontSize: \"0.875rem\",\r\n color: theme.app.secondaryColor,\r\n marginBottom: \"16px\",\r\n marginTop: \".5rem\",\r\n },\r\n content: {},\r\n}));\r\n\r\nconst CustomerInfo = (props) => {\r\n const classes = useStyles();\r\n const context = useContext(AccountContext);\r\n const { isSelf, activePerson } = context.state;\r\n const language = useSelector((state) => state.language);\r\n return (\r\n
\r\n {language.Pages[\"customer info\"]}\r\n \r\n {language.PageInfo[\"customer info\"]}\r\n \r\n
\r\n {isSelf ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CustomerInfo;\r\n","const validate = (values, language) => {\r\n // const { language } = props;\r\n\r\n const errors = {};\r\n if (!values.oldPassword) {\r\n errors.oldPassword = language.PasswordValidation.noOldPassword;\r\n }\r\n if (!values.newPassword) {\r\n errors.newPassword = language.PasswordValidation.noNewPassword;\r\n }\r\n if (!values.newPasswordVerification) {\r\n errors.newPasswordVerification =\r\n language.PasswordValidation.noNewPasswordVerification;\r\n } else if (values.newPassword !== values.newPasswordVerification) {\r\n errors.newPasswordVerification =\r\n language.PasswordValidation.passwordNotVerified;\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","export const initialValues = {\r\n oldPassword: \"\",\r\n newPassword: \"\",\r\n newPasswordVerification: \"\"\r\n};\r\n","import React from \"react\";\r\nimport { Formik, Field, Form } from \"formik\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport validate from \"./validate\";\r\nimport { initialValues } from \"./initialValues\";\r\nimport { Row } from \"./UIComponents\";\r\nimport MuiTextInput from \"../../Common/MuiTextInput\";\r\nimport { Button } from \"@mantine/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n submit: {\r\n marginTop: \"16px\",\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n padding: \"8px 0\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n alignItems: \"center\",\r\n },\r\n formActions: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n \"& button\": {\r\n marginLeft: \"8px\",\r\n },\r\n },\r\n button: { color: theme.app.labelColor },\r\n}));\r\n\r\nconst PasswordForm = (props) => {\r\n const { handleSubmit, language } = props;\r\n const classes = useStyles();\r\n return (\r\n handleSubmit(values, actions)}\r\n validate={(values) => validate(values, language)}\r\n render={(props) => (\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 window.history.back()}\r\n variant=\"subtle\"\r\n color=\"dark\"\r\n >\r\n {language.Back}\r\n \r\n
\r\n
\r\n \r\n {language.Save}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default PasswordForm;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useMutation } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport PasswordForm from \"./Form\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n password: {},\r\n pageInfo: {\r\n fontSize: \"0.875rem\",\r\n color: theme.app.secondaryColor,\r\n marginBottom: \"16px\",\r\n marginTop: \".5rem\",\r\n },\r\n}));\r\n\r\nconst CHANGE_PASSWORD = gql`\r\n mutation changePassword($payload: ChangePasswordMutation!) {\r\n changePassword(payload: $payload) {\r\n isSuccess\r\n message\r\n }\r\n }\r\n`;\r\n\r\nconst Password = () => {\r\n const classes = useStyles();\r\n const { dispatch } = useContext(AppContext);\r\n const language = useSelector((state) => state.language);\r\n const handleMutationError = (error) => {\r\n dispatch({ type: TOAST, payload: { text: error, variant: \"error\" } });\r\n };\r\n const handleMutationSuccess = ({ changePassword }) => {\r\n if (changePassword.isSuccess) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.passwordSubmitSuccess,\r\n variant: \"success\",\r\n },\r\n });\r\n }\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts[changePassword.message] || changePassword.message,\r\n variant: \"error\",\r\n },\r\n });\r\n };\r\n const [changePassword] = useMutation(CHANGE_PASSWORD, {\r\n onError: handleMutationError,\r\n onCompleted: handleMutationSuccess,\r\n });\r\n\r\n const handleSubmit = (values, actions) => {\r\n changePassword({ variables: { payload: values } }).then(({ data }) =>\r\n actions.resetForm()\r\n );\r\n };\r\n\r\n return (\r\n
\r\n {language.Pages[\"password\"]}\r\n \r\n {language.PageInfo[\"password\"]}\r\n \r\n
\r\n handleSubmit(values, actions)}\r\n language={language}\r\n />\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Password;\r\n","const validate = (values, language) => {\r\n const errors = {};\r\n if (!values.uniqueIdentifier) {\r\n errors.uniqueIdentifier = language.TicketValidation.noUniqueIdentifier;\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","export const initialValues = {\r\n uniqueIdentifier: \"\"\r\n};\r\n","import React from \"react\";\r\nimport { Formik, Field, Form } from \"formik\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport validate from \"./validate\";\r\nimport { initialValues } from \"./initialValues\";\r\nimport { Row } from \"../password/UIComponents\";\r\nimport MuiTextInput from \"../../Common/MuiTextInput\";\r\nimport { Button } from \"@mantine/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n submit: {\r\n marginTop: \"16px\",\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n padding: \"8px 0\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n alignItems: \"center\",\r\n },\r\n formActions: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n \"& button\": {\r\n marginLeft: \"8px\",\r\n },\r\n },\r\n button: { color: theme.app.labelColor },\r\n}));\r\n\r\nconst RegisterTicketForm = ({ handleSubmit, language }) => {\r\n const classes = useStyles();\r\n return (\r\n handleSubmit(values, actions)}\r\n validate={(values) => validate(values, language)}\r\n render={(props) => (\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n window.history.back()}\r\n variant=\"subtle\"\r\n color=\"dark\"\r\n >\r\n {language.Back}\r\n \r\n
\r\n
\r\n \r\n {language.Register}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default RegisterTicketForm;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useMutation } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\nimport RegisterTicketForm from \"./Form\";\r\n\r\nconst REGISTER_TICKET = gql`\r\n mutation registerTicket($payload: RegisterTicketMutation!) {\r\n registerTicket(payload: $payload) {\r\n isSuccess\r\n message\r\n }\r\n }\r\n`;\r\n\r\nconst Register = () => {\r\n const { dispatch } = useContext(AppContext);\r\n const language = useSelector(state => state.language);\r\n const handleMutationError = error => {\r\n dispatch({ type: TOAST, payload: { text: error, variant: \"error\" } });\r\n };\r\n const handleMutationSuccess = ({ registerTicket }) => {\r\n if (registerTicket.isSuccess) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.registerTicket,\r\n variant: \"success\"\r\n }\r\n });\r\n }\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts[registerTicket.message] || registerTicket.message,\r\n variant: \"error\"\r\n }\r\n });\r\n };\r\n const [registerTicket] = useMutation(REGISTER_TICKET, {\r\n onError: handleMutationError,\r\n onCompleted: handleMutationSuccess\r\n });\r\n\r\n const handleSubmit = (values, actions) => {\r\n registerTicket({ variables: { payload: values } }).then(() =>\r\n actions.resetForm()\r\n );\r\n };\r\n return (\r\n
\r\n handleSubmit(values, actions)}\r\n language={language}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default Register;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useMutation } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport RegisterTicketForm from \"./Form\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\n\r\nconst REGISTER_TICKET_FOR_MANAGED = gql`\r\n mutation registerTicketForManagedParty(\r\n $payload: RegisterTicketForManagedPartyMutation!\r\n ) {\r\n registerTicketForManagedParty(payload: $payload) {\r\n isSuccess\r\n message\r\n }\r\n }\r\n`;\r\n\r\nconst ManagedParty = ({ activePersonId }) => {\r\n const language = useSelector(state => state.language);\r\n const { dispatch } = useContext(AppContext);\r\n const handleMutationError = error => {\r\n dispatch({ type: TOAST, payload: { text: error, variant: \"error\" } });\r\n };\r\n const handleMutationSuccess = ({ updateSelf }) => {\r\n if (updateSelf.isSuccess) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.registerTicketForManagedParty,\r\n variant: \"success\"\r\n }\r\n });\r\n }\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts[updateSelf.message] || updateSelf.message,\r\n variant: \"error\"\r\n }\r\n });\r\n };\r\n const [registerTicketForManagedParty] = useMutation(\r\n REGISTER_TICKET_FOR_MANAGED,\r\n {\r\n onError: handleMutationError,\r\n onCompleted: handleMutationSuccess\r\n }\r\n );\r\n\r\n const handleSubmit = (values, actions) => {\r\n const newValues = { ...values, managedPartyId: activePersonId };\r\n registerTicketForManagedParty({ variables: { payload: newValues } }).then(\r\n () => actions.resetForm()\r\n );\r\n };\r\n return (\r\n
\r\n handleSubmit(values, actions)}\r\n language={language}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default ManagedParty;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Register from \"./register\";\r\nimport ManagedParty from \"./managedParty\";\r\nimport { AccountContext } from \"../accountContext\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n registerTicket: {},\r\n pageInfo: {\r\n fontSize: \"0.875rem\",\r\n color: theme.app.secondaryColor,\r\n marginBottom: \"16px\",\r\n marginTop: \".5rem\",\r\n },\r\n}));\r\n\r\nconst Ticket = (props) => {\r\n const classes = useStyles();\r\n const accountContext = useContext(AccountContext);\r\n const { isSelf, activePersonId } = accountContext.state;\r\n const language = useSelector((state) => state.language);\r\n return (\r\n
\r\n {language.Pages[\"register ticket\"]}\r\n \r\n {language.PageInfo[\"register ticket\"]}\r\n \r\n {isSelf ? : }\r\n
\r\n );\r\n};\r\n\r\nexport default Ticket;\r\n","export const formatPrice = (amount) => `${String(amount).replace(\".\", \",\")} kr`;\r\n\r\nexport const formatReceiptNumber = (receiptNumber) => String(receiptNumber);\r\n\r\nexport const formatSaleDate = (saleDate) =>\r\n saleDate.replace(\"T\", \" \").slice(0, 16);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport gql from \"graphql-tag\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { Table, Skeleton } from \"@mantine/core\";\r\nimport { formatPrice } from \"./util\";\r\n\r\nconst DetailQuery = gql`\r\n query DetailQuery($id: ID) {\r\n details(id: $id) {\r\n id\r\n articles {\r\n articleId\r\n articleKey\r\n articleName\r\n priceExclVat\r\n priceInclVat\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst Article = (props) => {\r\n const { sale } = props;\r\n const [articles, setArticles] = useState();\r\n const language = useSelector((state) => state.language);\r\n\r\n const { data, loading } = useQuery(DetailQuery, {\r\n variables: {\r\n id: sale.receiptNumber,\r\n },\r\n });\r\n useEffect(() => {\r\n if (!data) return;\r\n setArticles(data.details.articles);\r\n }, [data]);\r\n\r\n const tableHeads = (\r\n \r\n {language.Sale_Details[\"article\"]}\r\n {language.Sale_Details[\"vat\"]}\r\n {language.Sale_Details[\"amount\"]}\r\n \r\n );\r\n\r\n if (loading) return ;\r\n\r\n return (\r\n \r\n {tableHeads}\r\n \r\n {articles &&\r\n articles.map((article, i) => {\r\n const vat = Number(\r\n article.priceInclVat - article.priceExclVat\r\n ).toFixed(2);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
{article.articleName}{formatPrice(vat)}{formatPrice(article.priceInclVat)}
\r\n );\r\n};\r\n\r\nexport default Article;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Accordion } from \"@mantine/core\";\r\nimport Article from \"./Article\";\r\nimport { formatPrice, formatReceiptNumber, formatSaleDate } from \"./util\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n accordionControl: {\r\n border: `1px solid ${theme.app.borderColor}`,\r\n borderRadius: \"4px\",\r\n marginTop: \"8px\",\r\n padding: \"20px\",\r\n \"@media(max-width: 667px)\": {\r\n padding: \"10px\",\r\n },\r\n \"& div:first-child\": {\r\n marginLeft: \"0\",\r\n width: \"unset\",\r\n minWidth: \"unset\",\r\n },\r\n \"& div:not(:first-child)\": {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"50px\",\r\n \"@media(max-width: 800px)\": {\r\n gap: \"25px\",\r\n },\r\n \"@media(max-width: 667px)\": {\r\n gap: \"10px\",\r\n },\r\n\r\n \"& span\": {\r\n width: \"150px\",\r\n },\r\n },\r\n },\r\n articleContainer: {\r\n minHeight: \"200px\",\r\n border: `1px solid ${theme.app.borderColor}`,\r\n borderTop: \"none\",\r\n borderRadius: \"4px\",\r\n },\r\n}));\r\n\r\nconst ArticleContainer = (props) => {\r\n const classes = useStyles();\r\n const { sale, value } = props;\r\n const { posName, totalInclVat } = sale;\r\n const formattedReceiptNumber = formatReceiptNumber(sale.receiptNumber);\r\n\r\n return (\r\n \r\n \r\n {formatSaleDate(sale.saleDate)}\r\n {formattedReceiptNumber}\r\n {posName}\r\n {formatPrice(totalInclVat)}\r\n \r\n \r\n
\r\n {value === formattedReceiptNumber &&
}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ArticleContainer;\r\n","import React, { useContext, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { AccountContext } from \"../accountContext\";\r\nimport { Button } from \"@mantine/core\";\r\nimport { Accordion } from \"@mantine/core\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport ArticleContainer from \"./ArticleContainer\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n pageInfo: {\r\n fontSize: \"0.875rem\",\r\n color: theme.app.secondaryColor,\r\n marginBottom: \"16px\",\r\n marginTop: \".5rem\",\r\n },\r\n\r\n back: {\r\n marginTop: \"16px\",\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n padding: \"8px 0\",\r\n gridTemplateColumns: \"1fr auto\",\r\n alignItems: \"center\",\r\n },\r\n titleContainer: {\r\n padding: \"16px 20px 0\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"50px\",\r\n \"@media(max-width: 800px)\": {\r\n gap: \"25px\",\r\n },\r\n \"@media(max-width: 667px)\": {\r\n gap: \"10px\",\r\n padding: \"0 10px\",\r\n },\r\n \"@media(max-width: 400px)\": {\r\n padding: \"0px\",\r\n },\r\n },\r\n titles: {\r\n width: \"150px\",\r\n fontWeight: \"500\",\r\n },\r\n}));\r\n\r\nconst SaleHistory = () => {\r\n const classes = useStyles();\r\n const accountContext = useContext(AccountContext);\r\n const sales = accountContext.state.accountData.member.saleHistory;\r\n\r\n // Sorting copy of sales array by saleDate descending\r\n const sortedSales = [...sales].sort(\r\n (a, b) => new Date(b.saleDate) - new Date(a.saleDate)\r\n );\r\n const language = useSelector((state) => state.language);\r\n const isMobile = useMediaQuery(\"(max-width: 500px)\");\r\n\r\n const [value, setValue] = useState(null);\r\n\r\n return (\r\n
\r\n {language.Pages[\"sale history\"]}\r\n \r\n {language.PageInfo[\"sale history\"]}\r\n \r\n
\r\n

{language.Sale_History[\"date\"]}

\r\n

\r\n {language.Sale_History[isMobile ? \"sale id short\" : \"sale id\"]}\r\n

\r\n

\r\n {language.Sale_History[isMobile ? \"pos name short\" : \"pos name\"]}\r\n

\r\n

{language.Sale_History[\"total\"]}

\r\n

\r\n
\r\n \r\n {sortedSales.map((sale) => (\r\n \r\n ))}\r\n \r\n\r\n
\r\n window.history.back()}\r\n color=\"dark\"\r\n variant=\"subtle\"\r\n >\r\n Tillbaka\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SaleHistory;\r\n","const validate = (values, language) => {\r\n const errors = {};\r\n if (!values.firstname) {\r\n errors.firstname = language.RegisterManagedPartyValidation.noFirstname;\r\n }\r\n if (!values.lastname) {\r\n errors.lastname = language.RegisterManagedPartyValidation.noLastname;\r\n }\r\n if (!values.civicRegistrationNumber) {\r\n errors.civicRegistrationNumber =\r\n language.RegisterManagedPartyValidation.noCivicRegistrationNumber;\r\n }\r\n if (values.civicRegistrationNumber.length > 0) {\r\n if (\r\n !/^(19|20)[0-9]{6}[- ]?[0-9]{4}$/.test(values.civicRegistrationNumber)\r\n ) {\r\n errors.civicRegistrationNumber = `Ogiltigt personnummer`;\r\n }\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","export const initialValues = {\r\n firstname: \"\",\r\n lastname: \"\",\r\n civicRegistrationNumber: \"\"\r\n};\r\n","import React from \"react\";\r\nimport { Formik, Field, Form } from \"formik\";\r\nimport uuid from \"uuid/v4\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport validate from \"./validate\";\r\nimport { initialValues } from \"./inititalValues\";\r\nimport { Row } from \"../password/UIComponents\";\r\nimport MuiTextInput from \"../../Common/MuiTextInput\";\r\nimport { Button } from \"@mantine/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n submit: {\r\n marginTop: \"16px\",\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n padding: \"8px 0\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n alignItems: \"center\",\r\n },\r\n formActions: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n \"& button\": {\r\n marginLeft: \"8px\",\r\n },\r\n },\r\n button: { color: theme.app.labelColor },\r\n}));\r\n\r\nconst PasswordForm = (props) => {\r\n const { handleSubmit, language } = props;\r\n const classes = useStyles();\r\n return (\r\n handleSubmit(values, actions)}\r\n validate={(values) => validate(values, language)}\r\n render={(props) => (\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 window.history.back()}\r\n className={classes.button}\r\n variant=\"subtle\"\r\n color=\"dark\"\r\n >\r\n {language.Back}\r\n \r\n
\r\n
\r\n \r\n {language.Save}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default PasswordForm;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useMutation } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport RegisterManagedForm from \"./Form\";\r\nimport { AppContext, TOAST } from \"../../context\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n registerManaged: {},\r\n pageInfo: {\r\n fontSize: \"0.875rem\",\r\n color: theme.app.secondaryColor,\r\n marginBottom: \"16px\",\r\n marginTop: \".5rem\",\r\n },\r\n}));\r\n\r\nconst REGISTER_MANAGED_PARTY = gql`\r\n mutation registerManagedParty($payload: RegisterManagedPartyMutation!) {\r\n registerManagedParty(payload: $payload) {\r\n isSuccess\r\n message\r\n }\r\n }\r\n`;\r\n\r\nconst RegisterManaged = () => {\r\n const classes = useStyles();\r\n const { dispatch } = useContext(AppContext);\r\n const language = useSelector((state) => state.language);\r\n const handleMutationError = (error) => {\r\n dispatch({ type: TOAST, payload: { text: error, variant: \"error\" } });\r\n };\r\n const handleMutationSuccess = ({ registerManagedParty }) => {\r\n if (registerManagedParty.isSuccess) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Toasts.registerManagedPartySuccess,\r\n variant: \"success\",\r\n },\r\n });\r\n }\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text:\r\n language.Toasts[registerManagedParty.message] ||\r\n registerManagedParty.message,\r\n variant: \"error\",\r\n },\r\n });\r\n };\r\n const [register] = useMutation(REGISTER_MANAGED_PARTY, {\r\n onError: handleMutationError,\r\n onCompleted: handleMutationSuccess,\r\n });\r\n const handleSubmit = (values, actions) =>\r\n register({ variables: { payload: values } }).then(() =>\r\n actions.resetForm()\r\n );\r\n return (\r\n
\r\n {language.Pages[\"register managed\"]}\r\n \r\n {language.PageInfo[\"register managed\"]}\r\n \r\n handleSubmit(values, actions)}\r\n language={language}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default RegisterManaged;\r\n","import React from \"react\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\n\r\nexport const SubscriptionContext = React.createContext();\r\n\r\nconst DetailQuery = gql`\r\n query SubscriptionDetailQuery($id: ID) {\r\n subscriptionDetails(id: $id) {\r\n uniqueIdentifier\r\n cardExpiryMonth\r\n cardExpiryYear\r\n maskedCardNumber\r\n subscriptionTermType\r\n cancelledAt\r\n lastChargedAt\r\n registeredAt\r\n state\r\n ticketArticleName\r\n subscriptionTypeName\r\n registrationFinalizedAt\r\n updatePaymentCardUrl\r\n charges {\r\n amount\r\n chargedAt\r\n dueDate\r\n status\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst SubscriptionProvider = (props) => {\r\n const { subscriptionId } = props;\r\n\r\n const { loading, error, data } = useQuery(DetailQuery, {\r\n variables: {\r\n id: subscriptionId,\r\n },\r\n });\r\n\r\n if (error) return

{error.message}

;\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default SubscriptionProvider;\r\n","export const getStatus = (state) => {\r\n switch (state) {\r\n case \"Registered\":\r\n return \"Registrerad\";\r\n case \"Charged\":\r\n return \"Aktiv\";\r\n case \"Charged failed\":\r\n return \"Misslyckad dragning\";\r\n case \"Cancelled\":\r\n case \"Aborted\":\r\n return \"Avbruten\";\r\n case \"Frozen\":\r\n return \"Fryst\";\r\n default:\r\n return \"-\";\r\n }\r\n};\r\n\r\nexport const getChargeStatus = (status) => {\r\n switch (status) {\r\n case \"Charged\":\r\n return \"Betald\";\r\n case \"Failed\":\r\n return \"Missad\";\r\n case \"Due\":\r\n return \"Kommande\";\r\n case \"Cancelled\":\r\n return \"Makulerad\";\r\n default:\r\n return \"-\";\r\n }\r\n};\r\n\r\nexport const getFormattedAmount = (amount) => {\r\n if (!amount) return \"\";\r\n\r\n const convertedAmount = amount / 100;\r\n\r\n if (Number.isInteger(convertedAmount)) {\r\n return `${convertedAmount},00 kr`;\r\n } else {\r\n return `${convertedAmount} kr`;\r\n }\r\n};\r\n\r\nexport const getTermType = (termType, charges) => {\r\n switch (termType) {\r\n case \"FixedTerm\":\r\n return `Bundet ${\r\n charges.length > 0 ? `(${charges.length} dragningar)` : \"\"\r\n } `;\r\n case \"Ongoing\":\r\n return \"Löpande\";\r\n default:\r\n return \"\";\r\n }\r\n};\r\n\r\nexport const getNextPayment = (charges) => {\r\n if (!charges) return;\r\n const nextCharge = charges.filter((charge) => charge.status === \"Due\")[0];\r\n if (!nextCharge) return;\r\n const date = nextCharge.dueDate.split(\"T\")[0];\r\n return date;\r\n};\r\n\r\nexport const handleCancel = (\r\n TOAST,\r\n setLoading,\r\n dispatch,\r\n cancelled,\r\n errorMsg\r\n) => {\r\n const text = cancelled\r\n ? \"Abonnemanget borttaget, sidan laddas om\"\r\n : `Ett fel inträffade ${errorMsg ? `- ${errorMsg}` : \"\"}`;\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text,\r\n variant: cancelled ? \"success\" : \"error\",\r\n },\r\n });\r\n\r\n if (cancelled) {\r\n setLoading(true);\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 3000);\r\n }\r\n};\r\n\r\nexport const checkIfFinalized = (\r\n subscriptionTermType,\r\n paidCharges,\r\n charges,\r\n nextPayment\r\n) => {\r\n return (\r\n subscriptionTermType === \"FixedTerm\" &&\r\n paidCharges.length === charges.length &&\r\n !nextPayment\r\n );\r\n};\r\n","import React, { useContext } from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Link } from \"@reach/router\";\r\nimport { SubscriptionContext } from \"./subscriptionContext\";\r\nimport { checkIfFinalized, getNextPayment, getStatus } from \"./util\";\r\nimport { Skeleton } from \"@mantine/core\";\r\nimport {\r\n IconAlertTriangle,\r\n IconCheck,\r\n IconCircleX,\r\n IconSnowflake,\r\n} from \"@tabler/icons-react\";\r\n\r\nconst getIcon = (state, classes) => {\r\n switch (state) {\r\n case \"Charged\":\r\n return ;\r\n case \"Charged failed\":\r\n case \"Registered\":\r\n return ;\r\n case \"Aborted\":\r\n case \"Cancelled\":\r\n return ;\r\n case \"Frozen\":\r\n return ;\r\n default:\r\n return \"\";\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n link: { textDecoration: \"none\" },\r\n card: {\r\n color: theme.app.labelColor,\r\n padding: \"16px 0\",\r\n height: \"100%\",\r\n backgroundColor: theme.app.background[1],\r\n border: `1px solid ${theme.app.borderColor}`,\r\n borderRadius: \"8px\",\r\n transition: theme.transitions.create([\"background-color\"], {\r\n duration: theme.transitions.duration.short,\r\n easing: theme.transitions.easing.easeInOut,\r\n }),\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n cardHeader: {\r\n padding: \"1rem 0 0.35rem 0\",\r\n textAlign: \"center\",\r\n fontSize: \"1.25rem\",\r\n fontWeight: 500,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n iconContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n padding: \"16px\",\r\n },\r\n icon: {\r\n width: \"50px\",\r\n height: \"50px\",\r\n \"@media(max-width: 667px)\": {\r\n width: \"40px\",\r\n height: \"40px\",\r\n },\r\n },\r\n nextPaymentContainer: {\r\n padding: \"20px\",\r\n fontSize: \"1rem\",\r\n textAlign: \"center\",\r\n },\r\n nextPaymentText: {\r\n height: \"32px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignContent: \"center\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nconst SubscriptionCard = () => {\r\n const classes = useStyles();\r\n const { data, subscriptionId, loading } = useContext(SubscriptionContext);\r\n\r\n if (loading)\r\n return (\r\n \r\n
\r\n
\r\n );\r\n\r\n const { subscriptionTypeName, charges, state, subscriptionTermType } =\r\n data.subscriptionDetails;\r\n const status = getStatus(state);\r\n const nextPayment = charges.length > 0 && getNextPayment(charges);\r\n const paidCharges = charges.filter((charge) => charge.status === \"Charged\");\r\n\r\n const subscriptionIsFinalized = checkIfFinalized(\r\n subscriptionTermType,\r\n paidCharges,\r\n charges,\r\n nextPayment\r\n );\r\n\r\n return (\r\n \r\n
\r\n {subscriptionTypeName}\r\n
{getIcon(state, classes)}
\r\n
\r\n
\r\n {status !== \"Aktiv\" ? (\r\n

{status}

\r\n ) : nextPayment ? (\r\n

Nästa dragning: {nextPayment}

\r\n ) : subscriptionIsFinalized ? (\r\n

Slutfört

\r\n ) : (\r\n

{\"\"}

\r\n )}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SubscriptionCard;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { AccountContext } from \"../accountContext\";\r\nimport { Button } from \"@mantine/core\";\r\nimport SubscriptionProvider from \"./subscriptionContext\";\r\nimport SubscriptionCard from \"./SubscriptionCard\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n \"@media(max-width: 1024px)\": {\r\n padding: \"16px\",\r\n },\r\n },\r\n pageInfo: {\r\n fontSize: \"0.875rem\",\r\n color: theme.app.secondaryColor,\r\n marginBottom: \"2rem\",\r\n marginTop: \".5rem\",\r\n },\r\n linkContainer: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(3,1fr)\",\r\n gridGap: \"16px\",\r\n \"@media(max-width: 667px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n gridGap: \"8px\",\r\n },\r\n },\r\n back: {\r\n marginTop: \"2rem\",\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n padding: \"8px 0\",\r\n },\r\n}));\r\n\r\nconst Subscription = () => {\r\n const classes = useStyles();\r\n const accountContext = useContext(AccountContext);\r\n const language = useSelector((state) => state.language);\r\n const { isSelf } = accountContext.state;\r\n\r\n const subscriptions =\r\n accountContext.state.accountData.member.subscriptionHistory;\r\n\r\n const sortedSubscriptions = subscriptions.sort(\r\n (a, b) => new Date(b.registrationDate) - new Date(a.registrationDate)\r\n );\r\n\r\n return (\r\n
\r\n {language.Pages[\"subscription\"]}\r\n \r\n {language.PageInfo[\"subscription\"]}\r\n \r\n\r\n
\r\n {sortedSubscriptions.map((sub) => {\r\n if (!isSelf) {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n
\r\n
\r\n window.history.back()}\r\n color=\"dark\"\r\n variant=\"subtle\"\r\n >\r\n {language.Back}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Subscription;\r\n","import { makeStyles } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport Chip from \"../assets/chip.svg\";\r\nimport Visa from \"../assets/visa.svg\";\r\nimport Mastercard from \"../assets/mastercard.svg\";\r\nimport Amex from \"../assets/amex.svg\";\r\nimport classNames from \"classnames\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n color: theme.app.secondaryColor,\r\n height: \"200px\",\r\n width: \"350px\",\r\n padding: \"3rem 0.5rem 0.5rem 2.5rem\",\r\n backgroundImage:\r\n \"linear-gradient(to right bottom, rgba(255, 255, 255, 1), rgba(242, 242, 242, 1))\",\r\n boxShadow: theme.shadows[3],\r\n borderRadius: \"10px\",\r\n },\r\n screenReader: {\r\n position: \"absolute\",\r\n zIndex: \"-1000\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n },\r\n chip: {\r\n display: \"block\",\r\n height: \"30px\",\r\n borderRadius: \"3px\",\r\n marginBottom: \"5px\",\r\n },\r\n cardNumber: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n gap: \"30px\",\r\n fontSize: \"22px !important\",\r\n },\r\n validContainer: {\r\n display: \"grid\",\r\n gap: \"5px\",\r\n gridTemplateColumns: \"repeat(5, 1fr)\",\r\n },\r\n validLabelContainer: {\r\n gridColumnStart: \"2\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n },\r\n validLabel: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n fontSize: \"7px !important\",\r\n alignItems: \"flex-end\",\r\n },\r\n validDate: {\r\n position: \"relative\",\r\n gridColumnStart: \"3\",\r\n fontSize: \"20px !important\",\r\n },\r\n iconContainer: {\r\n height: \"50px\",\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n alignItems: \"Center\",\r\n },\r\n icon: {\r\n width: \"65px\",\r\n },\r\n}));\r\n\r\nconst getIcon = (initialNumber, classes) => {\r\n switch (initialNumber) {\r\n case \"4\":\r\n return \"Visa\";\r\n case \"2\":\r\n case \"5\":\r\n return \"Mastercard\";\r\n case \"3\":\r\n return \"American;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nconst Card = ({ cardData }) => {\r\n const classes = useStyles();\r\n\r\n const { maskedCardNumber, cardExpiryMonth, cardExpiryYear } = cardData;\r\n\r\n const cardNumber1 = maskedCardNumber.slice(0, 4);\r\n const cardNumber2 = maskedCardNumber.slice(4, 8);\r\n const cardNumber3 = maskedCardNumber.slice(8, 12);\r\n const cardNumber4 = maskedCardNumber.slice(12, 16);\r\n\r\n return (\r\n
\r\n \"chip\"\r\n \r\n
Kortnummer
\r\n {cardNumber1}\r\n {cardNumber2}\r\n {cardNumber3}\r\n {cardNumber4}\r\n
\r\n
\r\n
\r\n

\r\n VALID\r\n THRU\r\n

\r\n
\r\n

\r\n \r\n Giltighetsdatum, månad/år\r\n \r\n {cardExpiryMonth}/{cardExpiryYear}\r\n

\r\n
\r\n
\r\n {getIcon(maskedCardNumber[0], classes)}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Card;\r\n","import React, { useContext } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core\";\r\nimport { Button, Modal } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useDisclosure } from \"@mantine/hooks\";\r\nimport { AppContext, TOAST } from \"../../../../context\";\r\n\r\nimport Card from \"./Card\";\r\nimport { useState } from \"react\";\r\nimport { handleCancel } from \"../../util\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n cardContainer: {\r\n width: \"50%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"25px\",\r\n \"@media(max-width: 750px)\": {\r\n width: \"100%\",\r\n order: 0,\r\n },\r\n },\r\n infoContainer: {\r\n width: \"75%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n textAlign: \"center\",\r\n gap: \"10px\",\r\n paddingBottom: \"30px\",\r\n alignItems: \"center\",\r\n },\r\n modalInfoContainer: {\r\n marginBottom: \"20px\",\r\n },\r\n modalButtonContainer: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n gap: \"10px\",\r\n },\r\n buttonContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: \"100%\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n },\r\n button: {\r\n maxWidth: \"250px\",\r\n width: \"50%\",\r\n },\r\n}));\r\n\r\nconst CardSection = ({\r\n data,\r\n updatePaymentCardUrl,\r\n status,\r\n subscriptionId,\r\n canUpdatePaymentCard,\r\n}) => {\r\n const classes = useStyles();\r\n\r\n // Get posId from updatePaymentCardUrl\r\n const url = new URL(updatePaymentCardUrl);\r\n const params = new URLSearchParams(url.search);\r\n const baseUrl = url.origin;\r\n const posId = params.get(\"pos\");\r\n\r\n const { config } = useSelector((state) => ({\r\n config: state.infrastructure.config,\r\n }));\r\n\r\n const { dispatch } = useContext(AppContext);\r\n const [loading, setLoading] = useState(false);\r\n const [modalOpened, { open: openModal, close: closeModal }] =\r\n useDisclosure(false);\r\n\r\n const { subscriptionTermType } = data.subscriptionDetails;\r\n\r\n const accessToken = useSelector((state) => state.oidc.user.access_token);\r\n\r\n const canCancel = status === \"Aktiv\" && subscriptionTermType === \"Ongoing\";\r\n const cancelUri = `${config.apiUrl}/subscription/cancel/${subscriptionId}`;\r\n const activateSubscriptionUrl = `${baseUrl}/checkout/subscription?subscriptionId=${subscriptionId}&cul=sv-SE&cur=SEK&pos=${posId}\r\n `;\r\n\r\n const cancelSubscription = () => {\r\n fetch(cancelUri, {\r\n method: \"POST\",\r\n headers: {\r\n authorization: \"Bearer \" + accessToken,\r\n },\r\n }).then((response) => {\r\n if (response.ok) {\r\n handleCancel(TOAST, setLoading, dispatch, true);\r\n } else {\r\n response\r\n .text()\r\n .then((errorMsg) =>\r\n handleCancel(TOAST, setLoading, dispatch, false, errorMsg)\r\n );\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n {status === \"Registrerad\" ? (\r\n
\r\n
\r\n

Detta abonnemang är inte aktivt

\r\n

\r\n Tryck på nedan länk och genomför första dragningen för att\r\n aktivera abonnemanget\r\n

\r\n
\r\n \r\n Aktivera abonnemang\r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n
\r\n {canUpdatePaymentCard && (\r\n \r\n Byt betalkort\r\n \r\n )}\r\n {canCancel && (\r\n <>\r\n \r\n
\r\n

Är du säker på att du vill avbryta ditt abonnemang?

\r\n

Detta steg går inte att ångra.

\r\n
\r\n
\r\n \r\n Stäng\r\n \r\n \r\n
\r\n \r\n ({\r\n root: {\r\n backgroundColor: theme.colors.red,\r\n \"&:hover\": theme.fn.hover({\r\n backgroundColor: theme.fn.darken(\"#b92727\", 0.05),\r\n }),\r\n },\r\n })}\r\n onClick={openModal}\r\n >\r\n Avbryt abonnemang\r\n \r\n \r\n )}\r\n
\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default CardSection;\r\n","import { makeStyles } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\nimport { IconInfoCircleFilled } from \"@tabler/icons-react\";\r\nimport { getTermType } from \"../../util\";\r\n\r\nconst useStyles = makeStyles(() => ({\r\n infoContainer: {\r\n padding: \"1.5rem 2rem\",\r\n boxShadow: \"rgba(0, 0, 0, 0.1) 0px 4px 12px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: \"50%\",\r\n justifyContent: \"center\",\r\n\r\n \"@media(max-width: 750px)\": {\r\n width: \"100%\",\r\n order: 1,\r\n },\r\n },\r\n icon: {\r\n height: \"35px\",\r\n width: \"35px\",\r\n marginBottom: \"1rem\",\r\n },\r\n listWrapper: {\r\n padding: \"5px\",\r\n\r\n \"& li\": {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginBottom: \"0.5rem\",\r\n\r\n \"& span:nth-of-type(1)\": {\r\n fontWeight: \"600\",\r\n },\r\n },\r\n },\r\n}));\r\n\r\nconst InfoSection = ({\r\n data,\r\n status,\r\n subscriptionIsFinalized,\r\n paidCharges,\r\n nextPayment,\r\n}) => {\r\n const classes = useStyles();\r\n\r\n const {\r\n subscriptionTermType,\r\n cancelledAt,\r\n charges,\r\n uniqueIdentifier,\r\n lastChargedAt,\r\n ticketArticleName,\r\n registrationFinalizedAt,\r\n } = data.subscriptionDetails;\r\n\r\n const termType = getTermType(subscriptionTermType, charges);\r\n\r\n return (\r\n
\r\n \r\n
    \r\n {uniqueIdentifier && (\r\n
  • \r\n Referensnummer\r\n {uniqueIdentifier}\r\n
  • \r\n )}\r\n
  • \r\n Status\r\n {subscriptionIsFinalized ? \"Slutfört\" : status}\r\n
  • \r\n {registrationFinalizedAt && (\r\n
  • \r\n Startdatum\r\n {registrationFinalizedAt}\r\n
  • \r\n )}\r\n {cancelledAt && (\r\n
  • \r\n Avbruten datum\r\n {cancelledAt}\r\n
  • \r\n )}\r\n
  • \r\n Abonnemangstyp\r\n {termType}\r\n
  • \r\n
  • \r\n Biljettnamn\r\n {ticketArticleName}\r\n
  • \r\n {paidCharges.length > 0 && (\r\n
  • \r\n Betalda dragningar\r\n \r\n {paidCharges.length}\r\n {subscriptionTermType === \"FixedTerm\" && ` av ${charges.length}`}\r\n \r\n
  • \r\n )}\r\n {lastChargedAt && (\r\n
  • \r\n Senaste dragningen\r\n {lastChargedAt}\r\n
  • \r\n )}\r\n {nextPayment && (\r\n
  • \r\n Nästa dragning\r\n {nextPayment}\r\n
  • \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default InfoSection;\r\n","import { Table, Accordion } from \"@mantine/core\";\r\nimport React from \"react\";\r\nimport { getChargeStatus, getFormattedAmount } from \"../../util\";\r\n\r\nconst ChargesSection = ({ charges, isMobile }) => {\r\n const tableHeads = (\r\n \r\n {isMobile ? \"Dragning\" : \"Dragningsdatum\"}\r\n Summa\r\n Status\r\n {isMobile ? \"Betald\" : \"Betaldatum\"}\r\n \r\n );\r\n\r\n const rows = charges.map((charge) => {\r\n const date = charge.dueDate.split(\"T\")[0];\r\n const status = getChargeStatus(charge.status);\r\n const formattedAmount = getFormattedAmount(charge.amount);\r\n\r\n return (\r\n \r\n {date}\r\n {formattedAmount}\r\n {status}\r\n {charge.chargedAt}\r\n \r\n );\r\n });\r\n\r\n return (\r\n \r\n \r\n Betalhistorik\r\n \r\n \r\n {tableHeads}\r\n {rows}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ChargesSection;\r\n","import { makeStyles, Typography } from \"@material-ui/core\";\r\nimport React, { useContext } from \"react\";\r\nimport { SubscriptionContext } from \"../subscriptionContext\";\r\nimport { checkIfFinalized, getNextPayment, getStatus } from \"../util\";\r\nimport CardSection from \"./Sections/CardSection\";\r\nimport InfoSection from \"./Sections/InfoSection\";\r\nimport ChargesSection from \"./Sections/ChargesSection\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport { Button } from \"@mantine/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n \"@media(max-width: 1024px)\": {\r\n padding: \"16px\",\r\n },\r\n },\r\n pageInfo: {\r\n fontSize: \"0.875rem\",\r\n color: theme.app.secondaryColor,\r\n marginBottom: \"2rem\",\r\n marginTop: \".5rem\",\r\n },\r\n detailsPageWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"25px\",\r\n },\r\n upperSectionWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n \"@media(max-width: 750px)\": {\r\n flexDirection: \"column\",\r\n gap: \"25px\",\r\n },\r\n },\r\n back: {\r\n marginTop: \"2rem\",\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n padding: \"8px 0\",\r\n },\r\n}));\r\n\r\nconst SubscriptionDetailsPage = () => {\r\n const isMobile = useMediaQuery(\"(max-width: 667px)\");\r\n\r\n const classes = useStyles();\r\n const { data, subscriptionId } = useContext(SubscriptionContext);\r\n\r\n if (!data) return null;\r\n\r\n const {\r\n subscriptionTypeName,\r\n updatePaymentCardUrl,\r\n state,\r\n charges,\r\n subscriptionTermType,\r\n } = data.subscriptionDetails;\r\n\r\n const status = getStatus(state);\r\n\r\n const paidCharges = charges.filter((charge) => charge.status === \"Charged\");\r\n const nextPayment = charges.length > 0 && getNextPayment(charges);\r\n\r\n const subscriptionIsFinalized =\r\n state !== \"Registered\" &&\r\n checkIfFinalized(subscriptionTermType, paidCharges, charges, nextPayment);\r\n\r\n const canUpdatePaymentCard =\r\n !subscriptionIsFinalized && paidCharges.length > 0;\r\n\r\n return (\r\n
\r\n {subscriptionTypeName}\r\n \r\n Här ser du info om ditt abonnemang\r\n {canUpdatePaymentCard && \" och kan byta betalkort\"}\r\n \r\n\r\n
\r\n
\r\n \r\n {status !== \"Avbruten\" && (\r\n \r\n )}\r\n
\r\n {charges.length > 0 && (\r\n \r\n )}\r\n
\r\n
\r\n window.history.back()}\r\n >\r\n Tillbaka\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SubscriptionDetailsPage;\r\n","import React from \"react\";\r\nimport SubscriptionProvider from \"../subscriptionContext\";\r\nimport SubscriptionDetailsPage from \"./SubscriptionDetailsPage\";\r\nimport \"./assets/subscriptionStyles.css\";\r\n\r\nconst SubscriptionDetails = ({ id }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SubscriptionDetails;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Router } from \"@reach/router\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { AccountContext } from \"./accountContext\";\r\nimport StartPage from \"./start\";\r\nimport Photo from \"./photo\";\r\nimport CustomerInfo from \"./customerInfo\";\r\nimport Password from \"./password\";\r\nimport Ticket from \"./registerTicket\";\r\nimport SaleHistory from \"./saleHistory\";\r\nimport RegisterManaged from \"./registerManagedParty\";\r\nimport Subscription from \"./subscription\";\r\nimport SubscriptionDetails from \"./subscription/SubscriptionDetails\";\r\n// import Breadcrumb from \"../Common/breadcrumb\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n account: {\r\n maxWidth: \"1024px\",\r\n width: \"100%\",\r\n padding: \"1rem\",\r\n margin: \"0 auto\",\r\n \"@media(max-width: 1024px)\": {\r\n padding: \"1rem 1rem\",\r\n },\r\n },\r\n}));\r\n\r\nconst Content = () => {\r\n const classes = useStyles();\r\n const [hasSubcription, setHasSubscription] = useState(false);\r\n const { state } = useContext(AccountContext);\r\n\r\n useEffect(() => {\r\n if (state.accountData?.member.subscriptionHistory) {\r\n setHasSubscription(true);\r\n }\r\n }, [state.accountData]);\r\n\r\n return (\r\n
\r\n {state.activePerson.id && (\r\n
\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {hasSubcription && }\r\n {hasSubcription && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Content;\r\n","import React from \"react\";\r\nimport Content from \"./content\";\r\nimport AccountProvider from \"./accountContext\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport SideBarNav from \"./AccountNav/sideBarNav\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n display: \"flex\",\r\n },\r\n desktopHeight: {\r\n height: `${theme.height - 64}px`,\r\n },\r\n mobileHeight: {\r\n height: `${theme.height - 64}px`,\r\n },\r\n account: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n width: \"100%\",\r\n overflow: \"auto\",\r\n overflowY: \"auto\",\r\n },\r\n footer: {\r\n margin: \"0 auto\",\r\n padding: \"0.5rem 0\",\r\n \"& a\": {\r\n fontSize: \"0.9rem\",\r\n color: theme.app.labelColor,\r\n },\r\n },\r\n}));\r\n\r\nconst Account = ({ userManager }) => {\r\n const language = useSelector((state) => state.language);\r\n const isMobile = useMediaQuery(\"(max-width: 768px)\");\r\n const classes = useStyles();\r\n return (\r\n \r\n
\r\n {!isMobile && }\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 Account;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Link } from \"@reach/router\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport List from \"@material-ui/core/List\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport {\r\n IconUsers,\r\n IconLock,\r\n IconTicket,\r\n IconHome,\r\n IconX,\r\n} from \"@tabler/icons-react\";\r\n\r\nimport { AppContext, TOGGLE_MENU } from \"../context\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n width: \"350px\",\r\n \"@media(max-width: 576px)\": {\r\n width: \"100%\",\r\n },\r\n },\r\n closeContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n padding: \"8px\",\r\n },\r\n closeButton: {\r\n padding: \"8px\",\r\n },\r\n icon: {\r\n color: theme.app.labelColor,\r\n },\r\n}));\r\n\r\nconst Menu = (props) => {\r\n const { config, language } = useSelector((state) => ({\r\n language: state.language,\r\n config: state.infrastructure.config,\r\n }));\r\n const classes = useStyles();\r\n const { ctx: state, dispatch } = useContext(AppContext);\r\n const toggleMenu = () => dispatch({ type: TOGGLE_MENU });\r\n const labelMenu = state.menuOpen ? language.CloseMenu : language.OpenMenu;\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 {config.registerMember && (\r\n \r\n \r\n {}\r\n \r\n \r\n \r\n )}\r\n {config.registerTicket && (\r\n \r\n \r\n {}\r\n \r\n \r\n \r\n )}\r\n {!config.hideNewPassword && (\r\n \r\n {}\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Menu;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Container = styled.div`\r\n background: white;\r\n height: 100%;\r\n`;\r\n\r\nconst InnerContainer = styled.div`\r\n margin: 0 auto;\r\n max-width: 1200px;\r\n`;\r\n\r\nclass OldBrowser extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n

Denna webbsida kräver en modern webbläsare!

\r\n

\r\n \r\n Tyvärr använder du en webbläsare som inte stödjer den senaste\r\n tekniken.\r\n \r\n

\r\n

Windows

\r\n

\r\n Om du har Windows 10 som operativsystem på din dator, så har du\r\n redan en modern webbläsare.
\r\n Den heter{\" \"}\r\n \r\n Microsoft Edge\r\n . Använd den istället för Internet Explorer.\r\n

\r\n

Mac

\r\n

\r\n Använder du Apple Safari, så behöver du minst version 11.
\r\n Du kan uppgradera till den senaste versionen genom att installera de\r\n senaste uppgraderingarna för din macOS-version.{\" \"}\r\n Apple Safari\r\n

\r\n

\r\n Annars kan du använda någon av dessa webbläsare, som är helt gratis\r\n och fungerar på både Mac och Windows.\r\n

\r\n

\r\n

\r\n \r\n
\r\n Brave\r\n
\r\n

\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default OldBrowser;\r\n","import React, { useContext } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\r\nimport ErrorIcon from \"@material-ui/icons/Error\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport SnackbarContent from \"@material-ui/core/SnackbarContent\";\r\nimport WarningIcon from \"@material-ui/icons/Warning\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { AppContext, CLOSE_TOAST } from \"../context\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon,\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n success: {\r\n backgroundColor: theme.app.successColor,\r\n color: \"white\",\r\n },\r\n error: {\r\n backgroundColor: theme.app.dangerColor,\r\n color: \"white\",\r\n },\r\n info: {\r\n backgroundColor: theme.app.infoColor,\r\n color: \"white\",\r\n },\r\n warning: {\r\n backgroundColor: theme.app.warningColor,\r\n color: \"white\",\r\n },\r\n icon: {\r\n fontSize: 20,\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: \"8px\",\r\n },\r\n message: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n}));\r\n\r\nfunction MySnackbarContentWrapper(props) {\r\n const { className, message, onClose, variant, language, ...other } = props;\r\n const classes = useStyles();\r\n const Icon = variantIcon[variant];\r\n return (\r\n \r\n \r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n {...other}\r\n />\r\n );\r\n}\r\n\r\nconst Toast = () => {\r\n const language = useSelector((state) => state.language);\r\n const { ctx: state, dispatch } = useContext(AppContext);\r\n const closeToast = () => dispatch({ type: CLOSE_TOAST });\r\n const errorMessage = (message) => {\r\n switch (true) {\r\n case message.startsWith(\"No ticket found for\"):\r\n return language.Toasts[\"Unknown ticket\"];\r\n default:\r\n return message;\r\n }\r\n };\r\n if (!state.toastVariant) return null;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Toast;\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Router } from \"@reach/router\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Header from \"./Common/Header\";\r\nimport Nav from \"./Common/nav\";\r\nimport Member from \"./registration/registermember\";\r\nimport Ticket from \"./registration/registerticket\";\r\nimport SetPassword from \"./password/set\";\r\nimport RequestPassword from \"./password/request\";\r\nimport Registration from \"./registration\";\r\nimport Callback from \"./infrastructure/callback\";\r\nimport Account from \"./account/index\";\r\nimport Menu from \"./Common/menu\";\r\nimport OldBrowser from \"./Common/oldBrowser\";\r\nimport Toast from \"./Common/toast\";\r\nimport useLocation from \"./Common/useLocation\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n main: { height: `${theme.height - 1}px`, overflow: \"hidden\" },\r\n content: {\r\n background: theme.app.background[0],\r\n height: `${theme.height - 128}px`,\r\n overflow: \"auto\",\r\n },\r\n workSpace: {\r\n background: theme.app.background[0],\r\n height: `${theme.height - 128}px`,\r\n overflow: \"auto\",\r\n color: theme.app.color,\r\n \"& h1\": theme.typography.h1,\r\n \"& h2\": theme.typography.h2,\r\n \"& h3\": theme.typography.h3,\r\n \"& h4\": theme.typography.h4,\r\n \"& h5\": theme.typography.h5,\r\n \"& h6\": theme.typography.h6,\r\n },\r\n mainWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n height: \"100%\",\r\n },\r\n footer: {\r\n margin: \"0 auto\",\r\n \"& a\": {\r\n fontSize: \"0.9rem\",\r\n color: theme.app.labelColor,\r\n },\r\n },\r\n}));\r\n\r\nconst Workspace = ({ classes, hasNav }) => {\r\n const language = useSelector((state) => state.language);\r\n return (\r\n <>\r\n