{"version":3,"sources":["components/Styles/HeaderLayout.js","components/Styles/HeaderContent.js","components/common/slugify.js","context.js","common/cookies.js","common/language.js","common/state.js","common/util.js","components/common/busy.js","components/common/dataProvider.js","components/Header/mobileMenu.js","components/Header/logo.js","components/Header/login.js","components/common/refetch.js","components/common/saleProvider.js","components/Header/cart.js","components/Header/CountdownContent.js","components/Header/CountdownContainer.js","components/Settings/flag.js","components/Settings/cultures.js","components/Settings/currencies.js","components/Settings/util.js","components/Settings/version.js","components/Settings/index.js","components/common/Search/hooks/useClickDetector.js","components/common/Search/SearchInput.jsx","components/Page/util.js","Pages/AllProductsPage/util.js","components/common/Search/SearchResult.jsx","components/common/Search/SearchV2.jsx","components/Header/CartV2.jsx","components/Header/HeaderV2/LogoV2.jsx","components/Header/HeaderV2/HamburgerMenu.jsx","components/Header/HeaderV2/MenuItemV2.jsx","components/Header/HeaderV2/NavContentV2.jsx","components/Header/HeaderV2/hooks/useFocusTrap.jsx","components/Header/HeaderV2/hooks/useClickDetector.js","components/Header/HeaderV2/MobileMenuOverlay.jsx","components/Header/HeaderV2/MobileMenuV2.jsx","components/Header/HeaderV2/NavV2.jsx","components/Header/HeaderV2/HeaderV2.jsx","components/Header/index.js","components/common/Nav/index.js","webpack:///./src/images/placeholder.svg?f0f8","components/cart/index.js","components/common/SiteHeading/index.js","components/common/Footer/content.js","components/Left/index.js","components/Right/index.js","Pages/CartPage/index.js","components/cart/addedProduct.js","common/sale.js","components/Drawer/QuantityInput.jsx","components/Drawer/TrashIcon.jsx","components/Drawer/DrawerItem.jsx","components/Drawer/DrawerList.jsx","components/Drawer/AlertIcon.jsx","components/Drawer/DrawerAlert.jsx","components/Drawer/DrawerFooter.jsx","components/Drawer/index.jsx","components/common/cookieBanner.js","components/common/toast.js","components/common/alert.js","components/Styles/AppLayout.js","components/Header/HeaderV2/hooks/useLocalStorage.js","components/common/Footer/index.js","components/Styles/PageLayout.js","components/Styles/PageContent.js","components/cart/util.js","components/cart/cartItemList.js","components/cart/cartPage.js","components/Landing/card.js","images/placeholder_list.svg","Pages/LandingPage/index.js","components/Product/description.js","components/Landing/list.js","components/Landing/CardV2.jsx","components/Landing/ListV2.jsx","components/Landing/index.js","components/common/Description.js","Pages/ProductPage/util.js","components/Product/util.js","components/Styles/ProductContent.js","components/Product/header.js","components/common/socialShare.js","components/Product/image.js","components/common/Calendar/wrapper.js","components/common/Calendar/index.js","components/Product/overrideStartDate.js","components/Product/openPrice.js","components/common/quantitySelect.js","components/Product/articleList.js","components/Product/articleSelect.js","components/CustomerForm/Form/initialValues.js","components/CustomerForm/Form/validate.js","components/Styles/RowLayout.js","components/CustomerForm/Form/formikTextField.js","components/PhotoEditor/cropImage.js","components/PhotoEditor/index.js","components/CustomerForm/Form/index.js","components/Product/personal.js","components/Modification/article.js","components/Modification/index.js","components/Product/index.js","components/Product/ProductV2/icons/Ticket.jsx","components/Product/ProductV2/ExtensionCard.jsx","components/Product/ProductV2/ExtensionModifications.jsx","components/Product/ProductV2/Extension.jsx","components/Product/ProductV2/ProductSelector.jsx","components/Product/ProductV2/GroupProduct.jsx","components/Product/ProductV2/PersonalInputField.jsx","components/Product/ProductV2/icons/Upload.jsx","components/Product/ProductV2/PersonalImage.jsx","components/Product/ProductV2/icons/Asterisk.jsx","components/Product/ProductV2/PersonalTicketForm.jsx","components/Product/ProductV2/validate.js","components/Product/ProductV2/PersonalTicket.jsx","components/Product/ProductV2/SingleProduct.jsx","components/Product/ProductV2/MultiTicket/GroupArticleButtons.jsx","components/Product/ProductV2/MultiTicket/GroupArticle.jsx","components/Product/ProductV2/MultiTicket/index.jsx","components/Product/ProductV2/index.jsx","Pages/ProductPage/index.js","Pages/EventPage/util.js","components/Event/article.js","components/Event/timepicker.js","components/Event/articles.js","components/Event/index.js","components/Event/util.js","components/Event/EventV2/ArticleButtons.jsx","components/Event/EventV2/Article.jsx","components/Event/EventV2/GroupArticleButtons.jsx","components/Event/EventV2/GroupArticle.jsx","components/Event/EventV2/MultiTicketModal.jsx","components/Event/EventV2/ArticleList.jsx","components/Event/EventV2/ArticlePicker.jsx","components/Page/productGroup.js","Pages/AllProductsPage/index.js","components/Event/EventV2/TimePicker.jsx","components/Event/EventV2/Calendar/Header.jsx","components/Event/EventV2/Calendar/Week.jsx","components/Event/EventV2/Calendar/WeekDay.jsx","components/Event/EventV2/Calendar/index.jsx","components/Event/EventV2/index.jsx","Pages/EventPage/index.js","components/ProductList/util.js","components/ProductList/cardItem.js","components/ProductList/listItem.js","components/ProductList/ListItemV2.jsx","components/ProductList/CardItemV2.jsx","components/ProductList/index.js","components/common/ArticleFilter/index.jsx","components/common/EventCalendar/util.js","components/common/EventCalendar/index.js","components/common/EventCalendar/monthPicker.js","components/Events/util.js","components/Events/listItem.js","Pages/AllEventsPage/index.js","Pages/SitePage/index.js","components/common/util.js","components/Events/index.js","hooks/useDebounce.js","components/Events/AllEventsV2/EventFilter.jsx","components/Events/AllEventsV2/Event.jsx","components/Events/AllEventsV2/EventWrapper.jsx","components/Events/AllEventsV2/index.jsx","components/Page/allProducts.js","components/Page/index.js","components/Page/toc.js","Pages/SitePage/util.js","components/User/sideMenu.js","components/User/activePerson.js","components/User/index.js","Pages/UserPage/index.js","components/Ticket/TicketImage.jsx","components/Ticket/TicketIntroduction.jsx","components/Ticket/Header.jsx","components/Ticket/Week.jsx","components/Ticket/WeekDay.jsx","components/Ticket/Calendar.jsx","components/Ticket/Legend.jsx","components/Ticket/ChangeDateButton.jsx","components/Ticket/TimeChooser.jsx","components/Ticket/util.js","components/Ticket/ChangeTimeButton.jsx","components/Ticket/AddToCartButton.jsx","components/Ticket/AddedButton.jsx","components/Ticket/AddToCart.jsx","components/Ticket/ArticleChooser.jsx","components/Ticket/index.js","Pages/TicketPage/index.js","components/MoveOccasions/Header.jsx","components/MoveOccasions/OccasionButton.jsx","components/MoveOccasions/PreviousPageBtn.jsx","components/MoveOccasions/Calendar/Header.jsx","components/MoveOccasions/Calendar/Week.jsx","components/MoveOccasions/Calendar/WeekDay.jsx","components/MoveOccasions/Calendar/index.jsx","components/MoveOccasions/ConfirmationAnimation.jsx","components/MoveOccasions/SubmitButton.jsx","components/MoveOccasions/Content.jsx","components/MoveOccasions/hooks/useResizeObserver.js","components/MoveOccasions/index.js","Pages/MoveOccasionsPage/index.js","components/ArticleBooking/animations/LoadingAnimation.jsx","components/ArticleBooking/AddToCartButton.jsx","components/ArticleBooking/AddToCart.jsx","components/ArticleBooking/Cart.jsx","components/ArticleBooking/Button.jsx","components/ArticleBooking/ChosenButton.jsx","components/ArticleBooking/Header.jsx","components/ArticleBooking/IntroductionSection.jsx","components/ArticleBooking/ModalButton.jsx","components/ArticleBooking/animations/SuccessAnimation.jsx","components/ArticleBooking/ModalDialog.jsx","components/ArticleBooking/index.jsx","Pages/ArticleBookingPage/index.jsx","components/common/ScrollToTop.js","components/PublicBooking/publicBookingQuery.js","components/PublicBooking/BookingSection.jsx","components/PublicBooking/Login.jsx","components/PublicBooking/Type.jsx","components/PublicBooking/DateTimePicker/DateChooser.jsx","components/PublicBooking/DateTimePicker/TimeChooser.jsx","components/PublicBooking/DateTimePicker/index.jsx","components/PublicBooking/ExtraForm/TextField.jsx","components/PublicBooking/ExtraForm/NumberField.jsx","components/PublicBooking/ExtraForm/CheckboxGroupField.jsx","components/PublicBooking/Confirmation.jsx","components/PublicBooking/ButtonNavigation.jsx","components/PublicBooking/Receipt.jsx","components/PublicBooking/ExtraForm/RadioGroupField.jsx","components/PublicBooking/index.jsx","Pages/PublicBookingPage/index.jsx","routes.js","components/Styles/AppContent.js","common/oidcClientInitializer.js","App.js","theme.js","main.js","common/middleware.js","common/busy.js","common/config.js","components/common/security.js","components/common/terms.js","components/common/privacy.js","common/callback.js","common/silentRenew.js","components/common/oldBrowser.js","webpack:///./src/index.js?b635","common/auth.js","images/placeholder.svg","images/placeholder_thumbnail.jpg"],"names":["useStyles","makeStyles","theme","headerWrapper","position","breakpoints","down","height","up","p","headerHeight","headerLayout","backgroundColor","palette","background","paper","borderBottom","divider","boxShadow","color","display","zIndex","appBar","top","padding","HeaderLayout","children","config","useSelector","state","classes","className","clsx","headerContent","flexGrow","alignItems","justifyContent","HeaderContent","slugify","str","replace","toLowerCase","from","i","l","length","RegExp","charAt","Context","React","createContext","TOAST","initialState","cartArticle","cartOpen","searchOpen","searchValue","toastOpen","toastVariant","toastText","alertOpen","alertText","alertSeverity","userOpen","reducer","action","type","payload","text","variant","severity","Error","ContextProvider","userManager","useReducer","dispatch","Provider","value","handleLogin","clearStaleState","signinRedirect","catch","err","console","log","handleLogout","signoutRedirect","culture","currency","cookieBanner","shopId","uuid","v4","consent","setCookie","key","cookieReducer","keys","Cookies","get","set","samesite","defaultCulture","getInitialState","c","Object","assign","cookieMiddleware","store","next","toString","expires","erase","languageReducer","loadLanguage","moment","locale","generalUri","process","files","shopName","map","f","fetch","then","x","json","getJson","Promise","all","response","merge","o","rest","pop","STATE_CULTURE","isItReal","id","startsWith","pixelCheckoutData","data","content_ids","d","article","plu","contents","quantity","totalPrice","amountInclVat","reduce","acc","cur","num_items","getInitialFromUntil","hour","minute","toISOString","until","add","container","left","transform","flexDirection","primary","main","outline","progress","marginTop","backdrop","Busy","props","busy","busyText","Modal","BackdropProps","open","disableAutoFocus","CircularProgress","colorPrimary","size","Typography","DataContext","ArticleQuery","gql","DataProvider","setEventFilterLogger","setEventFilter","useState","eventFilter","cookies","useQuery","variables","posId","fetchPolicy","loading","refetch","useEffect","mobileMenuButton","marginRight","border","active","MobileMenu","setOpen","bookingSlugs","setBookingSlugs","navigate","useNavigate","location","useLocation","useContext","auth","oidc","user","expired","language","isActive","link","pathname","undefined","ticketConfigurator","bookingLinks","getBookingSlugs","curr","disabledNav","disabled","push","name","slug","translations","filter","el","ButtonBase","onClick","Dialog","fullScreen","DialogTitle","DialogContent","button","Log_Off","Log_On","Account","Home","bookingPage","articleBookingConfigurator","item","getArticleBookingLinks","pages","page","events","isPageContainsOnlyOneEventType","Nav","allotments","useAllEvents","All_Events","showAllProducts","All_Products","DialogActions","Close","logo","logoLink","lineHeight","Logo","logoSrc","logoImg","href","src","alt","to","Login","changeBackground","title","IconButton","useNewHeader","userButton","style","aria-label","RefetchSaleQuery","prevVersion","setVersion","version","window","setTimeout","oldQuery","query","SaleContext","NoSaleId","sale","WithSaleId","ctx","saleId","dataQuery","useNewQuery","error","SaleProvider","cartButton","opacity","disabledOpacity","badge","right","secondary","fontFeatureSettings","fontVariantNumeric","Cart","itemQuantity","tabIndex","Badge","colorSecondary","badgeContent","CountdownContent","openModal","timer","setTimer","isUpdated","setIsUpdated","minutes","seconds","timeState","setTimeState","isBefore","interval","setInterval","updateCountdown","clearInterval","Date","parse","firstArticleExpiresAt","currentTime","getTime","timeUntilCountdownFinishes","String","Math","floor","padStart","isWithinTwoHours","isBetween","now","isAfter","role","margin","Countdown_Remaining","countDownText","marginLeft","TimerWarning","isOpenModal","closeModal","Information","Article_Expired","reload","forceReload","CountdownContainer","setItemQuantity","setIsOpenModal","items","some","allotmentId","useCartDrawer","OpenCart","width","marginBottom","flagContainer","Flag","xmlns","y","viewBox","data-testid","fill","cx","cy","r","minWidth","buttonText","Cultures","useDispatch","handleSetCulture","setCulture","cultures","gutterBottom","Culture","description","Currencies","handleSetCurrency","setCurrency","allowedCurrencies","currencies","filteredCurrencies","useMemo","avaliableCurrencies","matchedCurrencies","forEach","includes","find","getAllowedCurrencies","Currency","versionText","fontSize","app","secondaryColor","Version","settingsButton","Settings","settingsOpen","setSettingsOpen","fullWidth","innerWidth","onClose","Divider","Cancel","useClickDetector","ref","toggleSearch","setToggleSearch","setSearchValue","handleClick","event","current","contains","target","document","addEventListener","removeEventListener","SearchInput","searchTerm","setSearchTerm","useRef","focus","delayDebounce","clearTimeout","close","e","keyCode","data-isactive","onChange","placeholder","WriteToSearch","Search","getData","articleIds","articlePlus","tags","t","articles","a","dataProductIds","dataProductPlus","dataTags","getAllProducts","groups","productIds","products","unpublished","g","productGroupConfig","useGroupsAsItems","extendedGroup","imageFolderUrl","images","img","extendGroup","productConfig","isModification","makeId","extendProduct","imageUri","allProductsShow","uri","apiUriOverride","apiUri","displayPrice","priceInclVat","isInfo","allProductsSort","publishedArticles","getArticlesFromTags","tag","extendedProduct","imageFilename","translation","inStock","extendArticleFromApi","sort","b","extendPage","productGroups","groupConfig","product","SearchResult","setLoading","result","setResult","newResult","setNewResult","toggleAllotment","setToggleAllotment","toggleArticle","setToggleArticle","extensionArticles","setExtensionArticles","loadingResults","setLoadingResults","articleBooking","eventCalendar","reduceAllotmentsToId","optionAllotmentId","arr","tickets","ele","articleId","reducedArr","flatArr","reduceArticleBookingToId","concat","flattenedArr","removeEmptyArr","flat","addCalendar","newAllotments","calendarAllotments","articleBookingAllotments","articleFilter","allotmentFilter","extensionFilter","getName","getDescription","showSearchDescription","isEventCalendar","isArticleBooking","substring","getImage","getNewImage","image","Placeholder","link3","link2","imageFileName","isProduct","hidden","show","transition","duration","getCalendarBookingLink","SearchCategories","NotFound","Tickets","Products","motion","div","variants","staggerChildren","initial","animate","minHeight","useSmallSearchResult","showSearchPrice","parseInt","localStorage","setItem","LandingTexts","getDesc","values","_","pick","getMarkdownDescription","openPriceValues","FromCost","CurrencyAbbreviation","OpenPrice","giftCard","SearchV2","mobile","setAllotments","setArticles","focusTrapRef","useFocusTrap","data-ison","createStyles","wrapper","paddingTop","cursor","shoppingBag","strokeWidth","indicator","fontWeight","CartV2","Indicator","inline","label","fillRule","clipRule","stroke","strokeLinecap","strokeLinejoin","LogoV2","logoUrl","logoWhite","logoImgWhite","maxHeight","Path","path","HamburgerMenu","body","getElementById","setAttribute","removeAttribute","data-isopen","OpenMenu","aria-expanded","svg","closed","MenuItemV2","selected","setSelected","showLinks","setShowLinks","subLinks","underlineTheme","getLink","dropdown","productGroup","externalLink","obj","li","internalLink","layoutId","ticketConfiguratorFilter","getTicketLang","articleBookingConfiguratorFilter","getBookingLang","publicBooking","aria-live","whileFocus","documentElement","clientWidth","onMouseEnter","onMouseLeave","nameTranslation","AnimatePresence","exitBeforeEnter","ul","data-isshowing","gridTemplateColumns","exit","Fragment","header","htmlFor","CloseButton","CloseSubmenu","iconSize","span","layout","aria-hidden","NavContentV2","links","setLinks","updatedLinks","setUpdatedLinks","addedLinks","setAddedLinks","useSessionStorage","defaultValue","newHeaderDropDown","newLinks","originalLinks","dropDownItems","pathName","home","split","getSubLinks","getPath","allProducts","allEvents","getAllEvents","unshift","filterDropDownLinks","useInDropDown","sortInMenu","AnimateSharedLayout","selectedIndex","FocusTrap","elRef","handleFocus","focusableEls","querySelectorAll","firstFocusableEl","lastFocusableEl","shiftKey","activeElement","preventDefault","MobileMenuOverlay","delay","ease","showLogin","MobileMenuV2","NavV2","memo","headerStyling","useFixedHeader","useTransparentHeader","HeaderV2","setChangeBackground","setHeight","homepage","setHomepage","offsetHeight","url","scrollListener","scroll","scrollY","siteHeadingHeight","getItem","innerHeight","showSiteHeadingOnlyOnLanding","useSiteHeading","Header","SkipToMainContent","navWrapper","nav","borderColor","tabs","tabsInner","tab","maxWidth","useNav","LinkTab","classname","Tab","component","Link","ExternalLinkTab","Tabs","scrollButtons","n","getAllLinks","root","flexContainer","useLandingPage","homeLink","index","useAutoNavigationOnSingleEvent","GroupNav","Events","_extends","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","cartTimeout","createElement","_ref","svgRef","enableBackground","xmlSpace","ForwardRef","forwardRef","addedProduct","borderTop","borderRadius","textAlign","cartTotal","totalText","amount","AddedProduct","prevQuantity","setPrevQuantity","sumInclVat","eventImage","translatedName","Added_To_Cart","callApi","command","method","message","cb","saleMiddleware","getState","promise","v1","isFormData","FormData","headers","Headers","access_token","append","execute","JSON","stringify","status","msg","resolve","reject","saleState","model","addArticle","saleData","addArticleBatch","addArticleGroupTicket","addMod","addModification","removeArticle","increaseQuantity","decreaseQuantity","checkout","nextVersion","saleReducer","s","readyState","isError","addToCartTracking","dataLayer","ecommerce","currencyCode","actionButton","actionWrapper","QuantityInput","rdxDispatch","Group","spacing","ActionIcon","canChangeQuantity","isGiftCertificate","isMultiTicket","DecreaseQuantity","NumberInput","Quantity","hideControls","max","min","step","styles","input","pointerEvents","AddQuantity","trashIcon","TrashIcon","itemWrapper","gap","rowWrapper","alignContent","leftWrapper","textWrapper","paddingBottom","textSmall","fontStyle","rightWrapper","price","loadingWrapper","loader","bottom","hideAriaLive","occasionWrapper","flexWrap","multiTicketWrapper","DrawerItem","loadingSet","allotmentRemaining","allotmentRemainingSet","remove","reducedItem","pricePerPiece","removeFromCartTracking","getTranslation","getStock","allotment","occasions","time","occasion","remaining","Loader","withPlaceholder","radius","fit","Grid","Col","sx","ticketOwners","format","multiTickets","ticket","categoryName","Removed","trashButton","RemoveProduct","totalPriceInclVat","my","DrawerList","itemsSet","shippingArticle","useCallback","filterOutShipping","every","damping","stiffness","AlertIcon","x1","y1","x2","y2","alert","alertIconWrapper","DrawerAlert","alertMsg","alertMsgSet","axios","icon","CartDrawerAlertTitle","escapeHtml","skipHtml","footer","shippingWrapper","h4","toPay","sum","continueShopping","DrawerFooter","cart","setCart","shippingCost","shipping","ShippingCost","serviceFee","ServiceFee","productPrice","newPrice","trim","trackReduceCart","goToCheckout","gaItem","sku","ReactGA","plugin","require","facebookPixelId","hasBegun","parseFloat","goToCheckoutTracking","ToPay","ArticleBooking","ModalSecondaryButton","classNames","inner","GoToCheckout","drawerTitle","overflowY","cartBody","DrawerCart","useMantineTheme","Portal","Drawer","opened","transitionDuration","overlayColor","colors","dark","overlayOpacity","CartIsOpen","Cart_Quantity","Articles","aria-describedby","closeButtonLabel","CloseCart","withinPortal","EmptyCart","cartContainer","abortClose","setAbortClose","timeoutDrawer","Collapse","in","onExited","cookieText","cookieButtonContainer","actionButtonContainer","textWeight","CookieBanner","getConsentValue","showConsentBanner","showCookieBanner","handleConsentDialog","setCookieConsent","setConsent","handleConsent","useTagmanager","aria-modal","aria-labelledby","Title","order","CookieSettings","WeUseCookies","CookieConsentBody","whileTap","scale","CookieDecline","CookieConsent","FunctionalCookies","OnSiteCookies","CookieSimpleConsent","variantIcon","success","CheckCircleIcon","warning","WarningIcon","ErrorIcon","info","InfoIcon","successColor","dangerColor","infoColor","warningColor","iconVariant","Content","Icon","SnackbarContent","Toast","handleClose","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","ClickAwayListenerProps","mouseEvent","Alert","scrollbar","AppLayout","useLocalStorage","initialValue","storedValue","setStoredValue","valueToStore","Function","SiteHeading","setText","setHeroHeight","heroHeight","CancelToken","descriptionFolderUrl","cancelToken","token","res","cancel","bottomText","Footer","useElementSize","setValue","showFooterBottomText","useFooter","Left","leftContent","Right","rightContent","useToc","useLeft","useRight","PageLayout","pageContent","PageContent","getCartArticle","groupArticle","prodConf","cartImage","tableRow","articleInfo","iconButton","footerRow","deleteCell","paddingRight","footerCell","quantityCell","changeQuantity","changeQuantityText","articleContainer","articleImageContainer","articleImage","articleNameContainer","articleName","noWrap","whiteSpace","styleArticleName","textDecoration","CartItemList","increase","decrease","forceRerender","setForceRerender","Could_Not_Reserve","TableContainer","Table","stickyHeader","TableHead","TableRow","TableCell","Cart_Article","align","Cart_Price","TableBody","isFee","allotmentImage","allotmentName","baseUrl","isPersonalTicket","thumbnail","getProductConfig","createRef","hasOccasion","isSameOrAfter","hasInformation","information","onError","pricePerPieceInclVat","TableFooter","fee","colSpan","Cart_Sum","actions","checkoutButton","history","back","Back_To_List","cartBelowStyles","CartPage","cartBelowClasses","card","content","lineClamp","boxOrient","overflow","buttonDisabled","CardItem","itemSlug","Card","CardActionArea","CardContent","listItem","tableHighlight","hover","paddingLeft","imageContainer","listItemText","objectFit","List","ListItemText","cardWrapper","colorScheme","white","blue","gray","md","xs","CardV2","UnstyledButton","landingPage","Section","PhotoOf","Text","weight","mt","mb","gridGap","priceWrapper","justifySelf","alignSelf","imageWrapper","grid","ListV2","landingContent","list","LandingPage","pagesWithOnlyOneEvent","getPagesWithOnlyOneEvent","listType","lg","sm","landingTexts","eventSlug","useNewCard","useNewList","descriptionContainer","fade","labelColor","Description","disableDescriptionFold","collapsedSize","Show_Less","Show_More","Landing","getProduct","thumbnailsFolderUrl","isOpenPrice","relatedProducts","extendArticle","Number","getSaleData","photo","overrideStartDate","saleArticle","ticketHolderCategoryId","ticketHolders","categoryId","customerData","firstName","lastName","email","civicRegistrationNumber","phoneNumbers","number","cellPhone","addresses","street","streetNumber","city","zipCode","countryCode","photoBase64","photoExtension","formatDisplayPrice","toFixed","productContent","ProductContent","titleText","ProductHeader","productDescription","ProductDescription","articleDescription","useGroupsAsProduct","SocialShare","socialShareButtons","buttons","solid","small","serviceName","Share","subject","productImage","carouselButton","ProductImage","carouselImages","original","carousel","showThumbnails","showPlayButton","showFullscreenButton","renderLeftNav","renderRightNav","defaultProps","autoFocus","initialDate","showInput","renderCalendarDay","renderDayContents","isDayBlocked","isOutsideRange","day","isInclusivelyAfterDay","isDayHighlighted","enableOutsideDays","orientation","HORIZONTAL_ORIENTATION","withPortal","initialVisibleMonth","numberOfMonths","onOutsideClick","keepOpenOnDateSelect","renderCalendarInfo","isRTL","navPrev","navNext","onPrevMonthClick","onNextMonthClick","monthFormat","DayPickerSingleDateControllerWrapper","isHighlighted","highligtedDays","occasionDates","isOverrideStartdate","allowedRange","blockedDates","start","subtract","end","focused","date","onDateChange","bind","onFocusChange","setState","highlightedDates","omit","dateString","readOnly","Component","Calendar","startdateConfig","OverrideStartDate","setOverrideDate","calendarHeader","Choose_Date","calendarContainer","overrideStartdate","getInitialMonth","openPrice","listItemAction","addButton","select","articleConfig","getArticleConfig","hasOptions","options","setPrice","setBusy","ListItemSecondaryAction","Select","MenuItem","Amount","Add_Amount","InputLabelProps","shrink","InputProps","Article_Add","formControl","QuantitySelect","handleOnChange","hideLabel","quantityArr","FormControl","InputLabel","v","disabledButton","buttonProgress","ArticlesList","isOverrideStartDate","setQuantity","isLoading","sortedArticles","notInStock","Not_In_Stock","selectContainer","selectControl","nativeSelect","addButtonContainer","getText","group","ArticleSelect","personal","onSelect","submitForm","selectArticle","setArticle","displayEmpty","Choose","NativeSelect","Choose_Product","initialValues","fields","initialData","validate","errors","requiredFields","Form_FirstName","Form_IsRequired","Form_Error_InvalidLength","Form_LastName","Form_Email","isEmail","Form_Invalid_Email","Form_CivicRegistrationNumber","test","Form_Invalid_CivicRegistrationNumber","Form_CellPhone","Form_Street","Form_StreetNumber","Form_ZipCode","Form_City","Form_Country","row","gtc","cols","RowLayout","FormikTextField","required","useField","field","meta","helperText","touched","createImage","Image","getRadianAngle","degreeValue","PI","getCroppedImg","imageSrc","pixelCrop","rotation","canvas","getContext","maxSize","safeArea","sqrt","translate","rotate","drawImage","getImageData","putImageData","base64Img","toDataURL","editor","selectButton","cropper","preview","controls","controlLabel","textTransform","controlValue","sliderContainer","resetButton","previewImage","readFile","file","reader","FileReader","readAsDataURL","PhotoEditor","savePhoto","crop","setCrop","setRotation","zoom","setZoom","setImage","croppedAreaPixels","setCroppedAreaPixels","onCropComplete","croppedArea","saveCroppedImage","croppedImage","photoSelectRef","openPhotoSelect","node","click","resizeAndSetImage","dataurl","dataUrl","resizeImage","handleFileSelect","imgSrc","complete","aspect","onCropChange","onZoomChange","Slider","CustomerForm","visibleFields","Form_CivicRegistrationNumber_Placeholder","appbar","addContainer","noMarginLeft","Personal","handleAdd","photoOpen","setPhotoOpen","formConfig","getFormConfig","noPhotoDisabled","onSubmit","isValid","dirty","submitDisabled","articleSelectDisabled","viewContainer","Article","onAdded","ticketId","fundsId","Buy","modification","barcodeInputContainer","progressButton","TICKET_BY_BARCODE","Modification","barcode","setBarcode","setTicket","canSearchAgain","setCanSearchAgain","useLazyQuery","nextFetchPolicy","getTicket","ticketByBarcode","Fetch_Ticket","owner","firstname","lastname","validFrom","validUntil","applicableModifications","Product","overrideDate","setPhoto","isPersonal","resetForm","Ticket","xl","ICON_SIZE","fontFamily","ExtensionCard","YourTicket","Paper","withBorder","ThemeIcon","differenceInDays","DaysLeft","checked","fn","primaryColor","flex","checkbox","ExtensionModifications","checkedSet","Checkbox","titleWrapper","inputWrapper","stockWrapper","stockIndicator","green","outOfStock","red","stockText","descriptionTitle","descriptionBody","buttonWrapper","actionGrid","alertWrapper","addToCart","GET_INTERNAL_FUNDS","Extension","valueSet","addedToCart","useMediaQuery","getFunds","dataFunds","internalFundsLookup","callback","qty","calc","Container","gutter","TextInput","ExtendBody","currentTarget","Extend","Popover","withArrow","shadow","Target","alertContainer","Dropdown","CouldNotFindTicket","AvailableModifications","AddToCartBtn","chooseVariant","chooseArticle","produtSelectorWrapper","productImageSelector","productWrapper","imageButton","ProductSelector","selectedSet","itemsArr","OutOfStock","useProductImageSelector","ChooseVariant","ChooseArticle","Chosen","caption","data-isselected","GroupProduct","quantitySet","addedToCartSet","textSet","handlers","quantityChangeRef","regex","reduceChooseValue","sortPrice","prices","disabledIncrement","disabledAdd","isAddedToCart","announceQuantityChange","newQuantity","innerText","ProductAltLabel","center","Item","In_Stock","decrement","val","handlersRef","increment","productData","MaxInCart","fontSizes","PersonalInputField","form","autoCompleteOptions","inputModeType","provider","Autocomplete","getInputProps","autoComplete","inputMode","Upload","points","dropzone","borderWidth","control","cropperWrapper","sliderWrapper","paddinBottom","slider","PersonalImage","photoSet","fileSet","fileUrl","fileUrlSet","openRef","readImg","onDrop","accept","IMAGE_MIME_TYPE","maxFiles","onReject","Form_Error_Photo","PersonalPhotoAltLabel","Accept","black","Reject","Idle","DropPhoto","FileNotSupported","UploadPhoto","DragFile","MaxSize","ChangeImage","Choose_Photo","thumbLabel","ZoomWith","Rotate","RotateWith","SimpleGrid","Reset","Save","Asterisk","formTitle","formLabel","asteriskWrapper","PersonalTicketForm","valuesSet","checkIfRequired","zodSchema","noValidationNeeded","z","object","string","refine","Form_Error_FirstName","Form_Error_LastName","Form_Error_CivicRegistrationNumber_Invalid","Form_Error_CivicRegistrationNumber_Length","safeParse","Form_Error_Email","Form_Error_CellPhone","Form_Error_Street","Form_Error_StreetNumber","Form_Error_CityCode","Form_Error_City","Form_Error_CountryCode","getZodSchema","useForm","validateInputOnBlur","zodResolver","reset","handleSubmit","PersonalDetails","FillForm","Photo","AddPhoto","PersonalTicket","matches","TicketPhotoAltLabel","CouldNotAddProduct","SingleProduct","openPriceSet","stepHoldDelay","stepHoldInterval","parser","formatter","isNaN","GroupArticleButtons","ticketData","groupTicketCart","groupTicketCartSet","spring","groupTicketInSale","useMultiTicketQuantityOverride","maximumNumber","getOwners","updatedCart","Boolean","updateGroupTicketCart","filterTicketOwner","GroupArticle","allTicketsData","getMaxQuantity","justify","Stack","flexBasis","MultiTicket","setDisabled","GroupTicketDescription","trackingGroupTicket","ProductV2","descriptionSet","Back","ProductPage","useNewProductPage","CouldNotFindProductHeader","CouldNotFindProductText","BackToHomepage","getEvent","extendEvent","eventConfig","articlePrice","full","sessionStorage","session","addAllotment","allotmentOccasion","articleContent","Allotment_Full","maxPerSale","timeContainer","timePickerContainer","shadows","timePickerItem","transitions","create","short","easing","easeInOut","ticketsContainer","ticketsHeading","headingInfo","remainingSelected","TimePicker","setOccasion","filteredTickets","setFilteredTickets","filteredOccasion","Choose_Time","showRemaining","Full","ApproximatelyShort","Spot","Spots","heading","occasionContainer","articlesContainer","eventName","Choose_Date_In_Calendar","graphQLErrors","getOccasionTimes","backContainer","contentContainer","calendar","Event","setFrom","setUntil","singleOccasion","setSingleOccasion","singleOccasionTimes","filterOverride","Array","isArray","orderedOccasions","firstOccasion","occasionTimes","ArticleButtons","cartSet","chosenOccasion","disabledBtn","availableOccasions","calculateQuantity","timeData","checkIfAvailable","newProduct","timeOccasions","newCart","findAllotment","findIndex","splice","removeAllotment","MultiTicketModal","disabledGroupAddToCart","returnFocus","GroupTicketTitle","centered","Space","h","PrimaryBtn","ArticleList","setDisabledBtn","articleQuantityInCart","setArticleQuantityInCart","setCartTotal","isLoadingSet","useDisclosure","focusRef","removeChar","replaceAll","commaIndex","lastIndexOf","total","groupTicket","calcCartValue","reduceCart","ErrorMsgCouldNotAddToCart","addedToCartTimer","addGroupTicket","getQuantity","px","py","MediaQuery","Total","Loading","ArticlePicker","cultureLocale","cultureLocaleSet","showSet","locales","sv","enGB","de","da","getLocale","articlePicker","ChooseTicket","Transition","mounted","timingFunction","availableOccasionsSet","chosenOccasionSet","filterAllotments","filterOccasions","isSameDay","timePicker","hideEventTimeChooserIfSingleOccasion","mx","ChooseTimeHeader","ChooseTimeDescription","Skeleton","SoldOut","currentDate","setCurrentDate","selectedDate","lastOccasion","initialMonth","setAllotmentDate","monthStart","startOfMonth","checkIfAfter","parseISO","isSameMonth","lastMonthLabel","subMonths","nextMonthLabel","addMonths","ShowLastMonth","ShowNextMonth","Week","days","startDate","startOfWeek","addDays","WeekDay","daySet","monthEnd","endOfMonth","endDate","endOfWeek","rows","formattedDate","today","yesterday","setDate","getDate","onDateClick","getAvailability","cloneDay","isAvailable","aria-disabled","toDate","EventCalendarV2","setCultureLocale","CalendarLoading","EventV2","eventSet","lastOccasionSet","firstOccasionSet","month","monthSet","initialMonthSet","first","last","getEventByMonth","filterTextByCulture","visible","ImageFileName","EventAltLabel","ChooseDateHeader","ChooseDateDescription","EventPage","useNewEventPage","CouldNotFindEventHeader","CouldNotFindEventText","getDisplayPrice","filteredArticles","productName","isEvent","setPosition","filterGiftCard","CardMedia","isGroup","ListRow","eventCalendarLinks","articleBookingLinks","getCalendarBookingLinks","skeleton","skeletonTextWrapper","checkIcon","ListItemV2","priceSet","clicked","clickedSet","trackProductData","added","offsetWidth","rating","CardItemV2","pb","m","cardList","justifyItems","ProductList","originalPage","eventCalendarSet","isCardList","articleListType","ec","ProductGroup","Categories","filterContainer","outlineOffset","filterInput","filterInputUnmarked","filterInputMarked","clearFilter","clearFilterBtn","clearFilterAlert","ArticleFilter","showAlert","setShowAlert","availableGroups","setAvailableGroups","triggerAlert","translateProductGroup","originalName","entries","category","showProductGroupFilter","groupName","prev","handleChange","Clear_Filter","AllProductsPagePage","allProductsGroupByTag","getMonths","months","currentMonth","hasMonthEvent","occasionMonths","formattedMonth","getOccasionMonths","outer","outerWithNav","outerScroll","overflowX","scrollBehavior","monthsContainer","year","invisible","visibility","monthContainer","monthDisabled","monthActive","light","rightButtonContainer","leftButtonContainer","navButton","removeBorderBg","EventCalendar","startMonth","setActive","withNav","containerRef","monthsRef","showScroll","scrollWidth","firstOfYear","isEnabled","scrollLeft","monthPicker","selector","borderLeft","monthItem","borderRight","monthButton","monthText","getContrastText","thisMonth","calData","yearMonths","startOf","yearValue","newYear","getMonthPickerMonths","calDataYears","MonthPicker","cal","setCal","handleSetCal","prevDisabled","nextDisabled","leftButton","rightButton","filterEvents","discription","filteredEvents","eventInfo","exerpt","occasionDate","occasionTime","tootltipTime","tooltipDivider","htmlPopper","htmlTooltip","arrow","borderStyle","ListItem","occasionsInMonth","arrowRef","handleArrowRef","occasionsByDay","byDay","times","newTimes","oTime","oDay","getOccasionsByDay","Tooltip","interactive","popper","tooltip","PopperProps","popperOptions","modifiers","enabled","element","Allotment_Occasions","listContainer","largeScreen","smallScreen","Index","setFilter","listImages","getEventConfig","useDebounce","debouncedValue","setDebouncedValue","handler","filterWrapper","datePicker","thumb","dragging","search","EventFilter","priceVal","priceValSet","priceBeforeChange","priceBeforeChangeSet","dateSet","setIsSorting","initialValuesSet","newValues","newValuesSet","searchText","searchTextSet","debouncedTerm","isMobile","parent","maxDate","autoAnimate","isEqual","FilterEvents","FilterEventsBody","DateRangePicker","Choose_From_To_Date","dropdownType","minDate","inputFormat","labelFormat","clearable","ChoosePrice","RangeSlider","labelAlwaysOn","onChangeEnd","thumbFromLabel","ChooseFromPrice","thumbToLabel","ChooseToPrice","rightSectionWidth","gridColumn","isCard","badgeList","badgeListWrapper","badgeTextWrapper","markdown","allEventsListType","nextOccasion","NextOccasion","selectWrapper","EventWrapper","isSorting","setMounted","hasChoosedSorting","sortValue","nameA","slice","localeCompare","nameB","sortByName","timeA","timeB","sortByTime","allEventsDefaultSortBy","SortLabel","Sort","TimeAscending","TimeDescending","NameAscending","NameDescending","AllEventsNoEvents","AllEventsNoResults","AllEventsV2","getPriceRange","addYears","serialize","deserialize","newArr","checkPrice","checkName","filterByPrice","checkDateRange","dateRange","uniq","AllEventsPagePage","hideEventsFromAllEvents","useNewAllEventsPage","AllProducts","Page","filteredProductList","setFilteredProductList","filterResult","listByGroup","toc","listStyle","Toc","extendProductGroups","extraProducts","cfg","art","ids","getAllArticles","getPage","extendedEvents","extendEvents","SitePage","extendedPage","CouldNotFindPageHeader","CouldNotFindPageText","sideMenu","avatar","textOverflow","SideMenu","activePerson","setActivePerson","Avatar","person","modificationItem","ticketName","valid","modArticleInfo","modArticleName","modArticlePrice","noTickets","ActivePerson","uniqueIdentifier","fundsAmount","Article_Added","User","whoami","ticketowners","membersUri","UserPage","TicketImage","imageUrl","altText","ticketWrapper","ticketTextWrapper","ticketTextPadding","ticketTextPaddingNoImg","ticketText","maskImage","readMoreButton","TicketIntroduction","urlParams","hideLongText","setHideLongText","showMore","screen","availWidth","ticketTextGradient","substr","ReadMore","ShowLessText","allotmentSettings","firstDate","latestDate","headerBgColor","headerTextColor","setSelectedDate","allotmentData","chosenDate","setChosenDate","setFilteredData","scrollIntoView","setAllotmentOccasion","siteSettings","setSiteSettings","newAllotmentData","FilteredData","filtered","calendarSettings","showAvailability","showColors","showPrice","lowAllotmentQty","bgColor","lowTicketQty","formatDay","getPrice","filterByDay","reducedOccasions","price2","filterOutZeroCost","getPrices","FullAllotment","CostFromAbbreviation","labelAvailability","FewLeft","newMonthData","setNewMonthData","LoadingText","Legend","Available","ChangeDateButton","setHover","animationContainer","anim","lottie","loadAnimation","renderer","loop","autoplay","animationData","setSpeed","destroy","setDirection","play","chooseTime","btn","letterSpacing","round","btnText","TimeChooser","filteredData","dataContext","activeScreen","setActiveScreen","setChooseTime","setActiveOptionScreen","activeTicketConfigurator","setActiveTicketConfigurator","occasionsData","setOccasionsData","changeDateBtn","getActiveTicketConfigurator","removeChars","filterDataByDay","chooseOccasion","hideTimeChooserIfSingleOccasion","filterOutByIds","Map","mapOutIds","checkAllotmentId","filterIds","mapAllIds","filterDataByIds","filterDataByCulture","calendarTimePicker","DateTheText","ChangeDateBtn","ChangeTimeButton","animationContainer2","AddToCartButton","hovered","setHovered","spinner","anim2","chosenAllotment","AddedButton","wrapper2","AddToCart","setClicked","setProduct","groupByTimes","redirectEventCalendar","ArticleChooser","activeOptionScreen","allotmentArticles","setAllotmentArticles","optionAllotments","setOptionAllotments","optionArticles","setOptionArticles","optionAllotmentsRemaining","setOptionAllotmentsRemaining","setOptions","timeSelected","setTimeSelected","addedAllotment","setAddedAllotment","fullAllotment","setFullAllotment","allotmentItemOutOfStock","setAllotmentItemOutOfStock","changeTimeBtnRef","optionAllotmentFilter","remainingFilter","mapArticles","optionArticleFilter","optionArticleId","sortByPrice","Set","sortSelected","calculateValue","results","ChooseAllotmentHeader","ChangeTimeBtn","Options","filterTime","checkAllotmentItemRemaining","addAllotmentItem","AddProduct","removeAllotmentItem","removeItem","introductionWrapper","calendarWrapper","timeWrapper","smallWrapper","largeWrapper","chooseArticleWrapper","articleWrapper","setAllotment","setAllotmentSettings","setFirstDate","setLatestDate","setChooseOccasion","pageRefs","smoothscroll","polyfill","firstAllotmentDate","getLastDates","getFirstDates","sortLastDates","sortFirstDates","behavior","contextData","imageData","NewCalendar","NoOccasionsAvailable","TicketPage","configurator","circle","OccasionButton","occasionBtn","primaryBtn","setStep","primaryText","submit","redirect","secondaryClick","PreviousPageBtn","setReturnClick","setChosenOldOccasion","returnClick","GoToPreviousStepBtn","chosenOldOccasion","numberOfTickets","MoveOccasaionCalendar","setLastOccasion","setFirstOccasion","ConfirmationAnimation","SubmitButton","submitBtn","SubmitBtn","filteredTicketData","errorMsg","setErrorMsg","introductionText","setContent","newOccasions","setNewOccasions","pinValue","setPinValue","setChangeView","chosenNewOccasion","setChosenNewOccasion","removeBeforeNow","ErrorMsgMissingToken","introduction","chooseOldOccasion","chooseNewDate","chooseNewTime","confirmNewOccasion","receiptScreen","btnTextPrimary","GoToBookingBtn","clickToSection","ChooseOldOccasionHeader","SecondaryBtn","self","chooseData","ChooseNewOccasionHeader","ChooseNewOccasionTimeHeader","ConfirmNewOccasionHeader","confirmOldOccasion","ConfirmationHeader","RedirectBtn","confirmationOldData","confirmationNewData","handlePost","post","pin","fromOccasion","toOccasion","ErrorMsgIllegalPin","ErrorMsgNoOccasionsToMoveFrom","ErrorMsgTooCloseToOccasion","ErrorMsgInvalidParameter","ErrorMsgApiError","canBeMoved","OldOccasionAllotment","OldOccasionAllotments","NewOccasionAllotments","NewTicket","PinCodeHeader","PinCodeHelperText","maxLength","useResizeObserver","observerEntry","setObserverEntry","setNode","observer","disconnect","observe","ResizeObserver","entry","useLayoutEffect","MoveOccasions","setTicketData","setFilteredTicketData","setIntroductionText","newHeight","setNewHeight","ErrorMsgBadToken","headerRef","contentRect","updated","isOpen","appElement","MoveOccasionsPage","LoadingAnimation","animationContainer3","anim3","addedbtn","addedBtnIcon","cartBtn","btnBackground","loadingBtn","articlesData","setAddedOrder","settingsData","linkToCart","ErrorMsg","goToCartOnSubmit","scrollTo","EmptyCartButton","CartButton","section","optionsData","isVisible","setIsVisible","isOn","addItem","CartHeader","data-over9","data-over99","OptionsHeader","CostText","Button","activeBtn","setActiveBtn","setSection","ChosenButton","bookingData","setIntroduction","newContent","setNewContent","urlPathName","IntroductionSection","selfUrl","showLongText","setShowLongText","introductionImage","truncate","HideText","ReadMoreButton","ModalButton","modalButtonWrapper","origin","SuccessAnimation","animation","successAnimationContainer","successAnimation","ModalDialog","addedOrder","ModalHeader","ModalText","ModalPrimaryButton","setBookingData","setSettingsData","setArticlesData","setOptionsData","allotmentTickets","optionIds","optionId","filterArticles","removeArticlesDuplicates","newArticlesData","filterOptions","removeOptionsDuplicates","newOptionsData","sortArticles","sortOptions","block","alignToTop","ChooseTicketToContinue","showGoToCartModal","ArticleBookingPage","ScrollToTop","goBackUrl","GET_PUBLIC_BOOKING_PUBLIC_INFO","GET_PUBLIC_BOOKING_OCCASIONS","CREATE_PUBLIC_BOOKING_REQUEST","BookingSection","subLabel","subTitle","textContainer","Type","occasionLengthInMinutes","articlesToApply","maxParticipants","minParticipants","openedSet","Persons","Minutes","setFieldValue","ChooseType","calendarBase","DateChooser","initialLoading","calendarDatesSet","onMonthChange","getLastOccasion","publicBookingOccasions","ChooseDateToContinue","calendarCell","excludeDate","exclude","hideOutsideDates","activeTime","activeTimeSet","getOccasions","Occasion_Time_Label","ChooseTimeToContinue","DateTimePicker","bookingApiClient","calendarDates","client","lazyOccasionsQuery","activityId","occasionsFrom","occasionsTo","TextField","extraFormIsValid","extraFormIsValidSet","isErrorSet","addInput","FormErrorMinChar","Characters","FormErrorMaxChar","getValue","formFields","stringVal","Textarea","withAsterisk","NumberField","CheckboxGroupField","listWrapper","wordBreak","Confirmation","multiVal","intVal","fieldText","Summary","CheckSummary","publicBookingTypes","publicBookingTypeId","Length","Occasion","AmountOfParticipants","Responsible","dataFields","ExtraFields","firstButton","ButtonNavigation","activeStep","onPrevClick","onNextClick","isDisabled","prevClick","nextClick","leftIcon","rightIcon","NextStep","Receipt","BookingComplete","BookingError","BookingDescription","BookingErrorDescription","radio","RadioGroupField","Radio","separator","accordionWrapper","typeWrapper","extraFieldWrapper","confirmationWrapper","numberInput","confirmationButtonWrapper","confirmationCheckbox","PublicBooking","introductionSet","consentSet","activeSet","firstFetch","firstFetchSet","queryData","queryDataSet","responsibleId","numberOfParticipants","skip","onCompleted","useMutation","publicBookingRequest","mutationData","stepRef","nextStep","prevStep","getMinMaxParticipants","publicBookingPublicInfo","checkData","sortedTypes","loggedInUser","LoggedInAs","profile","given_name","family_name","loggedOutUser","Not_Logged_In","getStringifiedFields","Stepper","onStepClick","Step","allowStepSelect","BasicInformation","AmountOfParticipantsDescription","insertListItem","fieldType","insertListItems","Max","fieldConstraints","isMandatory","getFormData","check","checkMandatory","ConfirmBooking","completedIcon","BookingConsent","SendBooking","Completed","errorMessage","PublicBookingPage","activity","activitySet","bookingHttpLink","HttpLink","bookingApiUri","ApolloClient","cache","InMemoryCache","publicBookingId","publicBookingConfigurator","usePublicBooking","Routes","Private","noThrow","appContent","AppContent","scrollPos","setScrollPos","totalHeight","setTotalHeight","contentRef","scrollTop","OidcClientInitializer","isInitializing","setIsInitializing","finalState","isLoadingUser","App","newConsent","setNewConsent","tgm","getElementsByTagName","appendChild","getIcon","request","responseURL","rel","lang","amber","darkTheme","themeType","primaryColors","secondaryColors","calendarSelectColor","hoverBackground","iconColor","iconDisabledColor","iconHoverColor","linkColor","dangerHoverColor","progressTrailColor","tooltipBackground","tooltipColor","tooltipSecondary","editorButtonColor","pitchBlack","lightTheme","getTheme","setProperty","getThemeVariation","myTheme","createTheme","default","Main","prevHeight","setPrevHeight","selectedTheme","ThemeProvider","promiseMiddleware","thunkMiddleware","busyReducer","isBusy","configReducer","MyCallbackPage","successCallback","errorCallback","processSilentRenew","Security","klarnaTerms","Terms","Privacy","oldBrowser","OldBrowser","dummyMiddleware","CSS","pageTitle","api","client_id","redirect_uri","response_type","scope","authority","authUri","post_logout_redirect_uri","filterProtocolClaims","loadUserInfo","silent_redirect_uri","userStore","WebStorageStateStore","createUserManager","getUserManager","reducers","combineReducers","oidcReducer","oidcMiddleware","createOidcMiddleware","middleware","applyMiddleware","enhancers","compose","__REDUX_DEVTOOLS_EXTENSION__","createStore","httpLink","authLink","ApolloLink","operation","forward","setContext","authorization","ReactDOM","render","supports","basepath","headingText","createTextNode","module","exports"],"mappings":"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","file":"static/js/main.bf09bb91.chunk.js","sourcesContent":["import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n headerWrapper: {\r\n position: \"relative\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n height: \"64px\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n height: (p) => (p.headerHeight ? `${p.headerHeight + 64}px` : \"64px\"),\r\n },\r\n },\r\n headerLayout: {\r\n backgroundColor: theme.palette.background.paper,\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n boxShadow: \"none\",\r\n color: theme.palette.color,\r\n display: \"flex\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n height: \"64px\",\r\n },\r\n\r\n [theme.breakpoints.up(\"sm\")]: {\r\n height: (p) => (p.headerHeight ? `${p.headerHeight}px` : \"64px\"),\r\n },\r\n\r\n position: \"relative\",\r\n width: \"100%\",\r\n zIndex: theme.zIndex.appBar,\r\n padding: \"0 16px\",\r\n zIndex: 1999,\r\n\r\n // Fixed header settings\r\n \"@media(min-width: 768px)\": {\r\n position: \"fixed\",\r\n top: 0,\r\n zIndex: 999,\r\n },\r\n\r\n \"@media(max-width: 768px)\": {\r\n position: \"fixed\",\r\n },\r\n\r\n \"@media(max-width: 667px)\": {\r\n padding: \"0px 8px\",\r\n },\r\n },\r\n}));\r\n\r\nconst HeaderLayout = ({ children }) => {\r\n const config = useSelector((state) => state.config);\r\n const classes = useStyles({ headerHeight: config.headerHeight });\r\n return (\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default HeaderLayout;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n headerContent: {\r\n flexGrow: 1,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n height: \"100%\",\r\n },\r\n}));\r\n\r\nconst HeaderContent = ({ children }) => {\r\n const classes = useStyles();\r\n return
{children}
;\r\n};\r\n\r\nexport default HeaderContent;\r\n","const slugify = (str) => {\r\n str = str.replace(/^\\s+|\\s+$/g, \"\"); // trim\r\n str = str.toLowerCase();\r\n // remove accents, swap ñ for n, etc\r\n var from = \"àáäåâèéëêìíïîòóöôùúüûñç·/_,:;\";\r\n var to = \"aaaaaeeeeiiiioooouuuunc------\";\r\n\r\n for (var i = 0, l = from.length; i < l; i++)\r\n str = str.replace(new RegExp(from.charAt(i), \"g\"), to.charAt(i));\r\n\r\n str = str\r\n .replace(/[^a-z0-9 -]/g, \"\") // remove invalid chars\r\n .replace(/\\s+/g, \"-\") // collapse whitespace and replace by -\r\n .replace(/-+/g, \"-\"); // collapse dashes\r\n\r\n return str;\r\n};\r\n\r\nexport default slugify;\r\n","import React, { useReducer } from \"react\";\r\nexport const Context = React.createContext();\r\n\r\nexport const CART_ARTICLE_ADD = \"add_cart_article\";\r\nexport const CART_ARTICLE_REMOVE = \"remove_cart_article\";\r\nexport const CLOSE_CART = \"close_cart\";\r\nexport const CLOSE_SEARCH = \"close_search\";\r\nexport const CLOSE_TOAST = \"close_toast\";\r\nexport const CLOSE_ALERT = \"close_alert\";\r\nexport const OPEN_CART = \"open_cart\";\r\nexport const SET_SEARCH_VALUE = \"set_search_value\";\r\nexport const TOGGLE_CART = \"toggle_cart\";\r\nexport const TOGGLE_SEARCH = \"toggle_search\";\r\nexport const TOGGLE_USER = \"toggle_user\";\r\nexport const TOAST = \"toast\";\r\nexport const OPEN_ALERT = \"open_alert\";\r\n\r\nconst initialState = {\r\n cartArticle: null,\r\n cartOpen: false,\r\n searchOpen: false,\r\n searchValue: \"\",\r\n toastOpen: false,\r\n toastVariant: \"\",\r\n toastText: \"\",\r\n alertOpen: false,\r\n alertText: \"\",\r\n alertSeverity: \"\",\r\n userOpen: false,\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case CART_ARTICLE_ADD:\r\n return { ...state, cartArticle: action.payload };\r\n case CART_ARTICLE_REMOVE:\r\n return { ...state, cartArticle: null };\r\n case CLOSE_CART:\r\n return { ...state, cartOpen: false };\r\n case CLOSE_SEARCH:\r\n return { ...state, searchOpen: false };\r\n case CLOSE_TOAST:\r\n return {\r\n ...state,\r\n toastOpen: false,\r\n toastText: \"\",\r\n toastVariant: \"\",\r\n };\r\n case CLOSE_ALERT:\r\n return {\r\n ...state,\r\n alertOpen: false,\r\n alertText: \"\",\r\n alertSeverity: \"info\",\r\n };\r\n case OPEN_CART:\r\n return { ...state, cartOpen: true };\r\n case SET_SEARCH_VALUE:\r\n return { ...state, searchValue: 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 OPEN_ALERT:\r\n return {\r\n ...state,\r\n alertOpen: true,\r\n alertText: action.payload.text,\r\n alertSeverity: action.payload.severity,\r\n };\r\n case TOGGLE_CART:\r\n return { ...state, cartOpen: !state.cartOpen };\r\n case TOGGLE_SEARCH:\r\n return { ...state, searchOpen: !state.searchOpen };\r\n case TOGGLE_USER:\r\n return { ...state, userOpen: !state.userOpen };\r\n default:\r\n throw new Error(`wrong action type: ${action.type}`);\r\n }\r\n};\r\n\r\nconst ContextProvider = ({ userManager, children }) => {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n const handleLogin = () => {\r\n userManager.clearStaleState();\r\n // maybe just set busy and move this into a useEffect hook\r\n userManager.signinRedirect().catch((err) => console.log(\"Error!\", err));\r\n };\r\n const handleLogout = () =>\r\n userManager.signoutRedirect().catch((err) => console.log(\"Error!\", err));\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ContextProvider;\r\n","import Cookies from \"browser-cookies\";\r\nimport uuid from \"uuid\";\r\n//import InitialState from \"../reducers/initialState\";\r\n\r\nconst makeId = () => uuid.v4();\r\n\r\nconst initialState = {\r\n culture: \"sv-SE\",\r\n currency: \"SEK\",\r\n cookieBanner: \"true\",\r\n theme: \"light\",\r\n shopId: makeId(),\r\n consent: \"null\",\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\r\nexport const setCookieConsent = (key, value) => {\r\n return {\r\n type: \"@EE/SET_CONSENT\",\r\n key,\r\n value,\r\n };\r\n};\r\n\r\nexport const cookieReducer = (keys, config) => (state, action) => {\r\n state = state || getInitialState(keys, config);\r\n\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 return Object.assign({}, state, c);\r\n }\r\n case \"@EE/SET_CONSENT\": {\r\n const c = {};\r\n c[action.key] = action.value;\r\n return Object.assign({}, state, c);\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const cookieMiddleware = (store) => (next) => (action) => {\r\n if (action.type === \"@EE/SET_COOKIE\") {\r\n Cookies.set(action.key, action.value.toString(), { samesite: \"lax\" });\r\n }\r\n if (action.type === \"@EE/SET_CONSENT\") {\r\n Cookies.set(\r\n action.key,\r\n action.value.toString(),\r\n { expires: 365 },\r\n { samesite: \"lax\" }\r\n );\r\n } else if (action.type === \"@EE/EXPIRE_COOKIE\") {\r\n Cookies.erase(action.key);\r\n }\r\n\r\n return next(action);\r\n};\r\n\r\nfunction getInitialState(keys, config) {\r\n const state = {};\r\n\r\n //Check if culture, currency or tag filter is in cookie\r\n if (Cookies.get(\"shop-saleId\") == null) {\r\n Cookies.set(\"shop-saleId\", initialState.shopId, {\r\n samesite: \"lax\",\r\n });\r\n }\r\n if (Cookies.get(\"shop-culture\") == null) {\r\n Cookies.set(\"shop-culture\", config.defaultCulture || initialState.culture, {\r\n samesite: \"lax\",\r\n });\r\n }\r\n if (Cookies.get(\"shop-currency\") == null) {\r\n Cookies.set(\"shop-currency\", initialState.currency, { samesite: \"lax\" });\r\n }\r\n if (Cookies.get(\"cookie-banner\") == null) {\r\n Cookies.set(\"cookie-banner\", initialState.cookieBanner, {\r\n samesite: \"lax\",\r\n });\r\n }\r\n if (Cookies.get(\"shop-theme\") == null) {\r\n Cookies.set(\"shop-theme\", initialState.theme, { samesite: \"lax\" });\r\n }\r\n if (Cookies.get(\"shop-consent\") == null) {\r\n Cookies.set(\"shop-consent\", initialState.consent, { samesite: \"lax\" });\r\n }\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\r\n return state;\r\n}\r\n","import moment from \"moment\";\r\n\r\n// import all needed moment locale\r\nimport \"moment/locale/de\";\r\nimport \"moment/locale/en-gb\";\r\nimport \"moment/locale/sv\";\r\n\r\nexport const LANGUAGE_LOADED = \"@EE/LANGUAGE_LOADED\";\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 loadLanguage = (culture, config, dispatch) => {\r\n // set global moment locale to current culture\r\n moment.locale(culture);\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 = `${process.env.PUBLIC_URL}/ee-static/shop/${config.shopName}/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 { setCookie, expireCookie, setCookieConsent } from \"./cookies\";\r\nimport { loadLanguage } from \"./language\";\r\n\r\nexport const STATE_CURRENCY = \"shop-currency\";\r\nexport const STATE_CULTURE = \"shop-culture\";\r\nexport const STATE_SALE_ID = \"shop-saleId\";\r\nexport const STATE_TAGFILTER = \"tag-filter\";\r\nexport const STATE_COOKIEBANNER = \"cookie-banner\";\r\nexport const STATE_THEME = \"shop-theme\";\r\nexport const STATE_CONSENT = \"shop-consent\";\r\n\r\nexport const keys = () => {\r\n return [\r\n STATE_CURRENCY,\r\n STATE_CULTURE,\r\n STATE_SALE_ID,\r\n STATE_TAGFILTER,\r\n STATE_COOKIEBANNER,\r\n STATE_THEME,\r\n STATE_CONSENT,\r\n ];\r\n};\r\n\r\nexport const setCurrency = (currency) => {\r\n return setCookie(STATE_CURRENCY, currency);\r\n};\r\n\r\nexport const setCulture = (culture, config) => (dispatch) => {\r\n loadLanguage(culture, config, dispatch);\r\n\r\n dispatch(setCookie(STATE_CULTURE, culture));\r\n};\r\n\r\nexport const setSaleId = (saleId) => {\r\n return setCookie(STATE_SALE_ID, saleId);\r\n};\r\n\r\nexport const setTagFilter = (filter) => {\r\n return setCookie(STATE_TAGFILTER, filter);\r\n};\r\n\r\nexport const setCookieBanner = () => {\r\n return setCookie(STATE_COOKIEBANNER, false);\r\n};\r\n\r\nexport const setTheme = (theme) => {\r\n return setCookie(STATE_THEME, theme);\r\n};\r\n\r\nexport const clearSaleId = () => {\r\n return expireCookie(STATE_SALE_ID);\r\n};\r\n\r\nexport const setConsent = (value) => (dispatch) => {\r\n dispatch(setCookieConsent(STATE_CONSENT, value));\r\n};\r\n","import { trim, replace, startsWith, insert } from \"lodash\";\r\nimport moment from \"moment\";\r\n// import ReactGA from \"react-ga\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\n\r\nexport function cleanSSN(input) {\r\n if (!input) return input;\r\n\r\n input = trim(input);\r\n\r\n if (input.length <= 8) return input;\r\n\r\n input = replace(input, \"-\", \"\");\r\n\r\n if (\r\n input.length === 10 &&\r\n !startsWith(input, \"19\") &&\r\n !startsWith(input, \"20\")\r\n ) {\r\n input = \"19\" + input;\r\n }\r\n\r\n if (input.length === 12) {\r\n input = insert(input, \"-\", 8);\r\n }\r\n\r\n return input;\r\n}\r\n\r\nexport const isItReal = (type, id) => {\r\n if (type === \"ga\") {\r\n if (id.length < 5 || !id.startsWith(\"UA-\")) {\r\n return false;\r\n }\r\n return true;\r\n } else if (type === \"pixel\") {\r\n if (id.length < 5 || id.startsWith(\"xxx\") || id.startsWith(\"XXX\")) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n return true;\r\n};\r\n\r\nexport const PixelInit = (id) => {\r\n if (isItReal(\"pixel\", id)) {\r\n ReactPixel.init(id);\r\n ReactPixel.pageView();\r\n }\r\n};\r\n\r\nexport const pixelData = (product, quantity = 1) => {\r\n return {\r\n content_ids: [product.plu],\r\n content_name: product.name,\r\n content_type: \"product\",\r\n contents: [\r\n {\r\n id: product.plu,\r\n quantity,\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport const pixelCheckoutData = (data, currency) => {\r\n return {\r\n content_ids: data.map((d) => d.article.plu),\r\n contents: data.map((d) => ({\r\n id: d.article.plu,\r\n quantity: d.quantity,\r\n })),\r\n currency,\r\n value: data\r\n .map((d) => d.totalPrice.amountInclVat)\r\n .reduce((acc, cur) => acc + cur),\r\n num_items: data.map((d) => d.quantity).reduce((acc, cur) => acc + cur),\r\n };\r\n};\r\n\r\nexport const GAInit = (id) => {\r\n return null;\r\n // if (id && id.length > 0) {\r\n // ReactGA.initialize([\r\n // {\r\n // trackingId: \"UA-150531555-1\",\r\n // gaOptions: { name: \"Integration\", debug: true, allowLinker: true }\r\n // },\r\n // {\r\n // trackingId: id,\r\n // gaOptions: { debug: true, hostname: \"host-test\", allowLinker: true }\r\n // }\r\n // ]);\r\n // } else {\r\n // ReactGA.initialize(\"UA-150531555-1\", {\r\n // debug: true,\r\n // gaOptions:{allowLinker: true}\r\n // });\r\n // }\r\n // ReactGA.pageview(window.location.pathname, [\"Integration\"]);\r\n};\r\n\r\nexport const getInitialFromUntil = () => {\r\n return {\r\n from: moment().hour(0).minute(0).toISOString(),\r\n until: moment().add(1, \"year\").hour(23).minute(59).toISOString(),\r\n };\r\n};\r\n","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Modal from \"@material-ui/core/Modal\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n position: \"fixed\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n color: theme.palette.primary.main,\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n progress: {\r\n color: \"inherit\",\r\n },\r\n text: {\r\n color: \"rgba(0,0,0,0.7)\",\r\n marginTop: \"16px\",\r\n },\r\n backdrop: {\r\n backgroundColor: \"rgba(255,255,255,0.8)!important\",\r\n },\r\n}));\r\n\r\nconst Busy = (props) => {\r\n const { busy, busyText } = props;\r\n const classes = useStyles();\r\n\r\n if (busy) {\r\n return (\r\n \r\n
\r\n \r\n \r\n {busyText}\r\n \r\n
\r\n \r\n );\r\n }\r\n return
;\r\n};\r\n\r\nexport default Busy;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { useSelector } from \"react-redux\";\r\nimport gql from \"graphql-tag\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\r\nimport { getInitialFromUntil } from \"../../common/util\";\r\nimport Busy from \"./busy\";\r\n\r\nexport const DataContext = React.createContext();\r\nconst { from, until } = getInitialFromUntil();\r\n\r\nconst ArticleQuery = gql`\r\n query ArticleQuery(\r\n $currency: String\r\n $culture: String\r\n $posId: Int\r\n $from: DateTime\r\n $until: DateTime\r\n ) {\r\n tags(currency: $currency, culture: $culture, posId: $posId) {\r\n name\r\n articles {\r\n imageFilename\r\n id\r\n plu\r\n name\r\n inStock\r\n priceInclVat\r\n price {\r\n amountInclVat\r\n }\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n isPersonalTicket\r\n isProduct\r\n isGiftCertificate\r\n isMultiTicket\r\n overrideStartDate\r\n ticketHolders {\r\n categoryName\r\n categoryId\r\n maximumNumber\r\n defaultNumber\r\n }\r\n accessConditions {\r\n start\r\n stop\r\n dayOfWeeks\r\n }\r\n }\r\n }\r\n allotments(\r\n currency: $currency\r\n culture: $culture\r\n posId: $posId\r\n from: $from\r\n until: $until\r\n ) {\r\n id\r\n description\r\n imageFileName\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n occasions {\r\n time\r\n remaining\r\n }\r\n articles {\r\n id\r\n plu\r\n name\r\n priceInclVat\r\n price {\r\n amountInclVat\r\n }\r\n }\r\n }\r\n articles(culture: $culture, posId: $posId) {\r\n imageFilename\r\n id\r\n plu\r\n inStock\r\n name\r\n priceInclVat\r\n price {\r\n amountInclVat\r\n }\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n isPersonalTicket\r\n isProduct\r\n isMultiTicket\r\n isGiftCertificate\r\n ticketHolders {\r\n categoryName\r\n categoryId\r\n maximumNumber\r\n defaultNumber\r\n }\r\n }\r\n cultures {\r\n name\r\n description\r\n }\r\n currencies {\r\n name\r\n }\r\n }\r\n`;\r\n\r\nconst DataProvider = ({ children }) => {\r\n const setEventFilterLogger = (data) => {\r\n setEventFilter(data);\r\n console.log(\"--> Set event date filter to:\", data);\r\n };\r\n\r\n const [eventFilter, setEventFilter] = useState();\r\n const { config, culture, currency } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const { data, loading, refetch } = useQuery(ArticleQuery, {\r\n variables: {\r\n posId: config.posId,\r\n currency,\r\n culture,\r\n from,\r\n until,\r\n },\r\n fetchPolicy: \"network-only\",\r\n });\r\n useEffect(() => {\r\n if (!loading) {\r\n //Set default value to empty. Will be overridden if navigating months in all-events.\r\n setEventFilterLogger([]);\r\n }\r\n }, [data, loading]);\r\n\r\n if (loading) return ;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default DataProvider;\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useNavigate, useLocation } from \"@reach/router\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport slugify from \"../common/slugify\";\r\nimport { Context } from \"../../context\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n mobileMenuButton: {\r\n display: \"none\",\r\n padding: \"4px\",\r\n \"@media(max-width: 667px)\": {\r\n display: \"block\",\r\n marginRight: \"4px\",\r\n },\r\n \"&:focus\": {\r\n border: \"3px solid black\",\r\n },\r\n },\r\n active: {},\r\n}));\r\n\r\nconst MobileMenu = (props) => {\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false);\r\n const [bookingSlugs, setBookingSlugs] = useState();\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const { handleLogin, handleLogout } = useContext(Context);\r\n const { data } = useContext(DataContext);\r\n const { auth } = useSelector((state) => ({\r\n auth: state.oidc.user !== null && !state.oidc.user.expired,\r\n }));\r\n const { config, language, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n\r\n const isActive = (link) => link === location.pathname;\r\n\r\n const getArticleBookingLinks = (item) => {\r\n if (item?.translations) {\r\n const filtered = item?.translations?.filter(\r\n (el) => el.culture === culture\r\n );\r\n return filtered[0]?.name;\r\n } else {\r\n return item?.name;\r\n }\r\n };\r\n\r\n const isPageContainsOnlyOneEventType = (page) => {\r\n if (page.events && page.events.length === 1) {\r\n return true;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (config.ticketConfigurator !== undefined) {\r\n let bookingLinks = config?.ticketConfigurator;\r\n const getBookingSlugs = bookingLinks?.reduce((acc, curr) => {\r\n if (!curr.disabledNav && !curr.disabled) {\r\n acc.push({\r\n name: curr.name,\r\n slug: curr.slug,\r\n translations: curr?.translations?.filter(\r\n (el) => el.culture === culture\r\n ),\r\n });\r\n }\r\n return acc;\r\n }, []);\r\n setBookingSlugs(getBookingSlugs);\r\n }\r\n }, []);\r\n\r\n return (\r\n <>\r\n setOpen(true)}\r\n >\r\n \r\n \r\n \r\n {config.shopName}\r\n \r\n \r\n {\r\n if (auth) {\r\n handleLogout();\r\n return setOpen(false);\r\n }\r\n handleLogin();\r\n setOpen(false);\r\n }}\r\n >\r\n {auth ? language.Log_Off : language.Log_On}\r\n \r\n {auth && (\r\n {\r\n navigate(`${process.env.PUBLIC_URL}/user`);\r\n setOpen(false);\r\n }}\r\n className={\r\n isActive(`${process.env.PUBLIC_URL}/user`)\r\n ? classes.active\r\n : null\r\n }\r\n disabled={isActive(`${process.env.PUBLIC_URL}/user`)}\r\n >\r\n {language.Account}\r\n \r\n )}\r\n {\r\n navigate(`${process.env.PUBLIC_URL}/`);\r\n setOpen(false);\r\n }}\r\n >\r\n {language.Home}\r\n \r\n\r\n {bookingSlugs &&\r\n bookingSlugs.map((bookingPage, i) => (\r\n {\r\n navigate(\r\n `${process.env.PUBLIC_URL}/tickets/${bookingPage.slug}`\r\n );\r\n setOpen(false);\r\n }}\r\n className={\r\n isActive(\r\n `${process.env.PUBLIC_URL}/tickets/${bookingPage.slug}`\r\n )\r\n ? classes.active\r\n : null\r\n }\r\n disabled={isActive(\r\n `${process.env.PUBLIC_URL}/tickets/${bookingPage.slug}`\r\n )}\r\n key={bookingPage + i}\r\n >\r\n {bookingPage?.translations?.[0]\r\n ? bookingPage?.translations?.[0]?.name\r\n : bookingPage?.name}\r\n \r\n ))}\r\n\r\n {config.articleBookingConfigurator &&\r\n config.articleBookingConfigurator.map((el, i) => (\r\n {\r\n navigate(`${process.env.PUBLIC_URL}/booking/${el.slug}`);\r\n setOpen(false);\r\n }}\r\n className={\r\n isActive(`${process.env.PUBLIC_URL}/booking/${el.slug}`)\r\n ? classes.active\r\n : null\r\n }\r\n disabled={isActive(\r\n `${process.env.PUBLIC_URL}/booking/${el.slug}`\r\n )}\r\n key={el + i}\r\n >\r\n {getArticleBookingLinks(el)}\r\n \r\n ))}\r\n\r\n {config.pages.map((p, i) => {\r\n if (p.disabled) return null;\r\n if (isPageContainsOnlyOneEventType(p))\r\n return (\r\n {\r\n navigate(\r\n `${process.env.PUBLIC_URL}/events/${slugify(p.name)}`\r\n );\r\n setOpen(false);\r\n }}\r\n className={\r\n isActive(\r\n `${process.env.PUBLIC_URL}/events/${slugify(p.name)}`\r\n )\r\n ? classes.active\r\n : null\r\n }\r\n disabled={isActive(\r\n `${process.env.PUBLIC_URL}/${slugify(p.name)}`\r\n )}\r\n >\r\n {language.Nav ? language?.Nav[p.name] || p.name : p.name}\r\n \r\n );\r\n else\r\n return (\r\n {\r\n navigate(`${process.env.PUBLIC_URL}/${slugify(p.name)}`);\r\n setOpen(false);\r\n }}\r\n className={\r\n isActive(`${process.env.PUBLIC_URL}/${slugify(p.name)}`)\r\n ? classes.active\r\n : null\r\n }\r\n disabled={isActive(\r\n `${process.env.PUBLIC_URL}/${slugify(p.name)}`\r\n )}\r\n >\r\n {p.name}\r\n \r\n );\r\n })}\r\n\r\n {data?.allotments?.length > 0 && config.useAllEvents && (\r\n {\r\n navigate(`${process.env.PUBLIC_URL}/all-events`);\r\n setOpen(false);\r\n }}\r\n className={\r\n isActive(`${process.env.PUBLIC_URL}/all-events`)\r\n ? classes.active\r\n : null\r\n }\r\n disabled={isActive(`${process.env.PUBLIC_URL}/all-events`)}\r\n >\r\n {language.All_Events}\r\n \r\n )}\r\n {config.showAllProducts && (\r\n {\r\n navigate(`${process.env.PUBLIC_URL}/all-products`);\r\n setOpen(false);\r\n }}\r\n className={\r\n isActive(`${process.env.PUBLIC_URL}/all-products`)\r\n ? classes.active\r\n : null\r\n }\r\n disabled={isActive(`${process.env.PUBLIC_URL}/all-products`)}\r\n >\r\n {language.All_Products}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MobileMenu;\r\n","import React from \"react\";\r\nimport { Link } from \"@reach/router\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { STATE_THEME } from \"../../common/state\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n logo: {\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n height: \"100%\",\r\n flexGrow: 1,\r\n },\r\n logoLink: { lineHeight: 1 },\r\n}));\r\n\r\nconst Logo = () => {\r\n const { config, theme } = useSelector((state) => ({\r\n config: state.config,\r\n theme: state.cookies[STATE_THEME],\r\n }));\r\n const logoSrc = `${process.env.PUBLIC_URL}/ee-static/shop/${\r\n config.shopName\r\n }/Images/${\r\n config.logoImg\r\n ? config.logoImg\r\n : theme === \"light\"\r\n ? \"logo.svg\"\r\n : \"logo_dark.svg\"\r\n }`;\r\n\r\n const logoLink = `${process.env.PUBLIC_URL}/`;\r\n\r\n const classes = useStyles();\r\n return (\r\n
\r\n {config.logoLink ? (\r\n \r\n \"logo\"\r\n \r\n ) : (\r\n \r\n \"logo\"\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Logo;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Link } from \"@reach/router\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport UserIcon from \"@material-ui/icons/AccountCircle\";\r\nimport { Context } from \"../../context\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n // userButton: {\r\n // \"@media(max-width: 667px)\": {\r\n // display: \"none\",\r\n // },\r\n // },\r\n // loginButton: {\r\n // marginLeft: \"4px\",\r\n // color: \"inherit\",\r\n // \"@media(max-width: 667px)\": {\r\n // display: \"none\",\r\n // },\r\n // },\r\n}));\r\n\r\nconst Login = ({ changeBackground }) => {\r\n const classes = useStyles();\r\n const { handleLogin } = useContext(Context);\r\n const { config, auth, language } = useSelector((state) => ({\r\n auth: state.oidc.user !== null && !state.oidc.user.expired,\r\n language: state.language,\r\n config: state.config,\r\n }));\r\n return auth ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n {(language && language.Log_On) || \"\"}\r\n \r\n );\r\n};\r\n\r\nexport default Login;\r\n","import { useEffect, useState } from \"react\";\r\n\r\nconst Refetch = (props) => {\r\n const { version, culture, currency, auth, refetch } = props;\r\n useEffect(() => {\r\n refetch();\r\n }, [version, culture, currency, auth, refetch]);\r\n return null;\r\n};\r\n\r\nexport default Refetch;\r\n\r\nexport const RefetchSaleQuery = (props) => {\r\n const [prevVersion, setVersion] = useState();\r\n const { version, refetch } = props;\r\n useEffect(() => {\r\n if (prevVersion !== version) {\r\n // Timeout to wait for server\r\n window.setTimeout(() => {\r\n refetch();\r\n }, 300);\r\n setVersion(version);\r\n }\r\n }, [version, prevVersion, refetch]);\r\n return null;\r\n};\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport { RefetchSaleQuery } from \"./refetch\";\r\nimport {\r\n STATE_CULTURE,\r\n STATE_CURRENCY,\r\n STATE_SALE_ID,\r\n} from \"../../common/state\";\r\n\r\nconst oldQuery = gql`\r\n query OldSaleQuery(\r\n $saleId: Guid\r\n $posId: Int\r\n $culture: String\r\n $currency: String\r\n ) {\r\n sale(\r\n saleId: $saleId\r\n posId: $posId\r\n culture: $culture\r\n currency: $currency\r\n ) {\r\n id\r\n version\r\n isActive\r\n isCreated\r\n sumInclVat\r\n itemQuantity\r\n firstArticleExpiresAt\r\n items {\r\n expires\r\n key\r\n quantity\r\n totalPriceInclVat\r\n information\r\n canRemove\r\n canChangeQuantity\r\n pricePerPieceInclVat\r\n type\r\n pricePerPiece {\r\n amountInclVat\r\n }\r\n totalPrice {\r\n amountInclVat\r\n }\r\n article {\r\n name\r\n plu\r\n imageFilename\r\n priceInclVat\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n isAllotted\r\n isPersonalTicket\r\n isAnonymousTicket\r\n isFee\r\n isProduct\r\n overrideStartDate\r\n }\r\n ticketOwners {\r\n name\r\n }\r\n occasion\r\n allotmentId\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst query = gql`\r\n query SaleQuery(\r\n $saleId: Guid\r\n $posId: Int\r\n $culture: String\r\n $currency: String\r\n ) {\r\n sale(\r\n saleId: $saleId\r\n posId: $posId\r\n culture: $culture\r\n currency: $currency\r\n ) {\r\n id\r\n version\r\n isActive\r\n isCreated\r\n sumInclVat\r\n itemQuantity\r\n firstArticleExpiresAt\r\n items {\r\n expires\r\n key\r\n quantity\r\n totalPriceInclVat\r\n information\r\n canRemove\r\n canChangeQuantity\r\n pricePerPieceInclVat\r\n isMultiTicket\r\n multiTickets {\r\n categoryName\r\n quantity\r\n }\r\n type\r\n pricePerPiece {\r\n amountInclVat\r\n }\r\n totalPrice {\r\n amountInclVat\r\n }\r\n article {\r\n name\r\n plu\r\n imageFilename\r\n priceInclVat\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n isAllotted\r\n isPersonalTicket\r\n isAnonymousTicket\r\n isFee\r\n isProduct\r\n overrideStartDate\r\n isMultiTicket\r\n }\r\n ticketOwners {\r\n name\r\n }\r\n occasion\r\n allotmentId\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const SaleContext = React.createContext();\r\n\r\nconst NoSaleId = (props) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nconst WithSaleId = (props) => {\r\n const { config, culture, currency, saleId, posId, version } = props.ctx;\r\n const useNewQuery = config && config?.useNewQuery;\r\n const dataQuery = useNewQuery ? query : oldQuery;\r\n const { data, error, refetch } = useQuery(dataQuery, {\r\n variables: {\r\n saleId,\r\n posId,\r\n currency,\r\n culture,\r\n },\r\n fetchPolicy: \"network-only\",\r\n });\r\n\r\n if (error)\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n const sale = data && data.sale;\r\n return (\r\n <>\r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SaleProvider = (props) => {\r\n const ctx = useSelector((state) => ({\r\n config: state.config,\r\n version: state.sale.version,\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n saleId: state.cookies[STATE_SALE_ID],\r\n }));\r\n if (!ctx.saleId) return ;\r\n return ;\r\n};\r\n\r\nexport default SaleProvider;\r\n","import React, { useContext } from \"react\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport Badge from \"@material-ui/core/Badge\";\r\nimport CartIcon from \"@material-ui/icons/ShoppingCart\";\r\nimport { SaleContext } from \"../common/saleProvider\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n cartButton: {\r\n padding: \"0 12px\",\r\n \"&:focus\": {\r\n border: \"2px solid black\",\r\n },\r\n },\r\n disabled: { opacity: theme.palette.action.disabledOpacity },\r\n badge: {\r\n right: -3,\r\n top: 13,\r\n border: `2px solid ${theme.palette.background.paper}`,\r\n padding: \"0 4px\",\r\n },\r\n secondary: {\r\n backgroundColor: theme.palette.text.primary,\r\n color: theme.palette.background.paper,\r\n fontFeatureSettings: \"tnum\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n },\r\n}));\r\n\r\nconst Cart = (props) => {\r\n const classes = useStyles();\r\n const {\r\n state: { sale },\r\n } = useContext(SaleContext);\r\n const navigate = useNavigate();\r\n if (sale === null || sale === undefined) {\r\n return ;\r\n }\r\n\r\n return (\r\n navigate(`${process.env.PUBLIC_URL}/cart`)}\r\n aria-label=\"Cart\"\r\n tabIndex={0}\r\n className={clsx(classes.cartButton, \"header__cart-button\")}\r\n color=\"inherit\"\r\n classes={{ disabled: classes.disabled }}\r\n >\r\n {sale?.itemQuantity > 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Cart;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport moment from \"moment\";\r\n\r\nconst CountdownContent = (props) => {\r\n let { sale, language, openModal } = props;\r\n const [timer, setTimer] = useState(undefined);\r\n const [isUpdated, setIsUpdated] = useState(false);\r\n const [timeState, setTimeState] = useState({\r\n minutes: 0,\r\n seconds: 0,\r\n });\r\n\r\n useEffect(() => {\r\n if (timer && moment().isBefore(timer)) {\r\n const interval = setInterval(() => updateCountdown(), 1000);\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (isUpdated === true) {\r\n openModal(true);\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n setTimer(Date.parse(sale.firstArticleExpiresAt));\r\n }, [sale]);\r\n\r\n const updateCountdown = () => {\r\n const currentTime = new Date().getTime();\r\n const timeUntilCountdownFinishes = timer - currentTime;\r\n let minutes = String(\r\n Math.floor((timeUntilCountdownFinishes % (1000 * 60 * 120)) / (1000 * 60))\r\n ).padStart(2, \"0\");\r\n let seconds = String(\r\n Math.floor((timeUntilCountdownFinishes % (1000 * 60)) / 1000)\r\n ).padStart(2, \"0\");\r\n\r\n setTimeState({ minutes: minutes, seconds: seconds });\r\n };\r\n\r\n if (timer !== undefined) {\r\n let isWithinTwoHours = moment(timer).isBetween(\r\n Date.now(),\r\n moment().add(2, \"hours\")\r\n );\r\n\r\n if (!timer) {\r\n return null;\r\n } else if (moment().isAfter(timer)) {\r\n if (!isUpdated) {\r\n setIsUpdated(true);\r\n }\r\n return null;\r\n } else if (!isWithinTwoHours) {\r\n return null;\r\n } else {\r\n return (\r\n \r\n {language ? language.Countdown_Remaining : \"Tid kvar:\"}{\" \"}\r\n {timeState.minutes}:{timeState.seconds}\r\n
\r\n );\r\n }\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nexport default CountdownContent;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { SaleContext } from \"../common/saleProvider\";\r\nimport CountdownContent from \"./CountdownContent\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport { Context, OPEN_CART } from \"../../context\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n countDownText: {\r\n marginLeft: \"4px\",\r\n color: \"inherit\",\r\n },\r\n}));\r\n\r\nconst TimerWarning = (props) => {\r\n const forceReload = (isOpenModal) => {\r\n closeModal(isOpenModal);\r\n window.location.reload();\r\n };\r\n\r\n const { isOpenModal, closeModal, language } = props;\r\n return (\r\n \r\n \r\n {language ? language.Information : \"Information\"}\r\n \r\n \r\n {language.Article_Expired\r\n ? language.Article_Expired\r\n : \"Reservationstiden för ditt köp har utgått och din varukorg har uppdaterats. Kontrollera din varukorg och försök igen.\"}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst CountdownContainer = ({ changeBackground }) => {\r\n const classes = useStyles();\r\n const { dispatch } = useContext(Context);\r\n const {\r\n state: { sale },\r\n } = useContext(SaleContext);\r\n const navigate = useNavigate();\r\n\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const [itemQuantity, setItemQuantity] = useState(0);\r\n const [isOpenModal, setIsOpenModal] = useState(false);\r\n\r\n useEffect(() => {\r\n if (sale && sale?.itemQuantity) {\r\n setItemQuantity(sale.itemQuantity);\r\n } else {\r\n setItemQuantity(0);\r\n }\r\n }, [sale]);\r\n\r\n const isAllotment = sale?.items.some((el) => el.allotmentId);\r\n\r\n if (!isAllotment) return null;\r\n if (isOpenModal) {\r\n return (\r\n \r\n );\r\n } else {\r\n if (itemQuantity > 0) {\r\n return (\r\n \r\n config?.useCartDrawer\r\n ? dispatch({ type: OPEN_CART })\r\n : navigate(`${process.env.PUBLIC_URL}/cart`)\r\n }\r\n disabled={sale.itemQuantity < 1}\r\n classes={{ disabled: classes.disabled }}\r\n aria-label={language.OpenCart}\r\n style={{\r\n width: \"fit-content\",\r\n height: \"fit-content\",\r\n padding: 0,\r\n marginRight: \"1rem\",\r\n marginBottom: \"0.2rem\",\r\n }}\r\n >\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n};\r\n\r\nexport default CountdownContainer;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles({\r\n flagContainer: {\r\n width: \"24px\",\r\n height: \"24px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n});\r\n\r\nconst Flag = ({ culture }) => {\r\n const classes = useStyles();\r\n switch (culture) {\r\n case \"sv-SE\":\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 case \"en-US\":\r\n case \"en-GB\":\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n case \"de-DE\":\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n case \"fr-FR\":\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n case \"nn-NO\":\r\n case \"nb-NO\":\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n case \"fi-FI\":\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n case \"da-DK\":\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 case \"it-IT\":\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n case \"es-ES\":\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 default:\r\n throw new Error(`wrong culture for flag: ${culture}`);\r\n }\r\n};\r\n\r\nexport default Flag;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Flag from \"./flag\";\r\nimport { setCulture, STATE_CULTURE } from \"../../common/state\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {},\r\n button: {\r\n marginRight: \"8px\",\r\n minWidth: \"100px\",\r\n },\r\n buttonText: { marginLeft: \"8px\" },\r\n active: {\r\n \"& svg\": {\r\n opacity: 0.6,\r\n },\r\n },\r\n}));\r\n\r\nconst Cultures = () => {\r\n const { data, refetch } = useContext(DataContext);\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const handleSetCulture = (culture, config) => {\r\n dispatch(setCulture(culture, config));\r\n refetch();\r\n };\r\n const { language, config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const cultures = data?.cultures;\r\n const active = culture;\r\n if (!cultures) return null;\r\n return (\r\n
\r\n \r\n {language.Culture}\r\n \r\n {cultures.map((c, i) => {\r\n const isActive = c.name === active;\r\n return (\r\n handleSetCulture(c.name, config)}\r\n className={classes.button}\r\n classes={{ disabled: classes.active }}\r\n disabled={isActive}\r\n data-testid={`button_${c.name}`}\r\n >\r\n \r\n {c.description}\r\n \r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport default Cultures;\r\n","import React, { useMemo, useContext } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { getAllowedCurrencies } from \"./util\";\r\nimport { setCurrency, STATE_CURRENCY } from \"../../common/state\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {},\r\n button: {\r\n marginRight: \"8px\",\r\n minWidth: \"100px\",\r\n },\r\n}));\r\n\r\nconst Currencies = (props) => {\r\n const { data, refetch } = useContext(DataContext);\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const handleSetCurrency = (currency) => {\r\n dispatch(setCurrency(currency));\r\n refetch();\r\n };\r\n const { currency, language, config } = useSelector((state) => ({\r\n currency: state.cookies[STATE_CURRENCY],\r\n language: state.language,\r\n config: state.config,\r\n }));\r\n const { allowedCurrencies } = config;\r\n const currencies = data?.currencies;\r\n const filteredCurrencies = useMemo(\r\n () => getAllowedCurrencies(currencies, allowedCurrencies),\r\n [currencies, allowedCurrencies]\r\n );\r\n\r\n if (!filteredCurrencies) return null;\r\n\r\n return (\r\n
\r\n \r\n {language.Currency}\r\n \r\n {filteredCurrencies.map((c, i) => {\r\n const isActive = c.name === currency;\r\n return (\r\n handleSetCurrency(c.name)}\r\n className={classes.button}\r\n disabled={isActive}\r\n data-testid={`button_${c.name}`}\r\n >\r\n {c.name}\r\n \r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport default Currencies;\r\n","export const getAllowedCurrencies = (\r\n avaliableCurrencies,\r\n allowedCurrencies\r\n) => {\r\n let matchedCurrencies = [];\r\n let filteredCurrencies = [];\r\n\r\n // return available currencies if no allowed currencies\r\n if (!allowedCurrencies || allowedCurrencies.length < 1)\r\n return avaliableCurrencies;\r\n\r\n // match allowed currencies to available currencies\r\n avaliableCurrencies.forEach((c) => {\r\n if (allowedCurrencies.includes(c.name)) {\r\n matchedCurrencies = [...matchedCurrencies, c.name];\r\n }\r\n });\r\n\r\n // filter out allowed and matched currencies\r\n matchedCurrencies.forEach((curr) => {\r\n filteredCurrencies = [\r\n ...filteredCurrencies,\r\n avaliableCurrencies.find((c) => c.name === curr),\r\n ];\r\n });\r\n\r\n // return filtered currencies\r\n return filteredCurrencies;\r\n};\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n version: {},\r\n versionText: {\r\n fontSize: \"0.8125rem\",\r\n color: theme.app.secondaryColor,\r\n },\r\n}));\r\n\r\nconst Version = () => {\r\n const classes = useStyles();\r\n const {\r\n config: { version },\r\n } = useSelector((state) => ({\r\n config: state.config,\r\n }));\r\n return (\r\n
\r\n \r\n Version\r\n \r\n \r\n Entry Event Sweden AB - {version}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Version;\r\n","import React, { useState } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport Cultures from \"./cultures\";\r\nimport Currencies from \"./currencies\";\r\nimport Version from \"./version\";\r\nimport Flag from \"./flag\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n settingsButton: {\r\n },\r\n divider: { margin: \"16px 0px\" },\r\n}));\r\n\r\nconst Settings = (props) => {\r\n const [settingsOpen, setSettingsOpen] = useState(false);\r\n const { language, culture } = useSelector((state) => ({\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const classes = useStyles();\r\n return (\r\n <>\r\n setSettingsOpen(!settingsOpen)}\r\n tabIndex={0}\r\n className={clsx(classes.settingsButton, \"header__settings-button\")}\r\n color=\"inherit\"\r\n >\r\n \r\n \r\n setSettingsOpen(!settingsOpen)}\r\n style={{ zIndex: 2000 }}\r\n >\r\n {language.Settings}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Settings;\r\n","import React, { useEffect } from \"react\";\r\n\r\nconst useClickDetector = (ref, toggleSearch, setToggleSearch, setSearchValue) => {\r\n useEffect(() => {\r\n const handleClick = (event) => {\r\n if (ref?.current && !ref?.current.contains(event.target)) {\r\n if (toggleSearch) {\r\n setToggleSearch(false);\r\n setSearchValue(\"\")\r\n }\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClick);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClick);\r\n };\r\n }, [ref, toggleSearch]);\r\n};\r\n\r\nexport default useClickDetector;\r\n","import React, { useState, useRef } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { GrFormClose } from \"react-icons/gr\";\r\nimport \"./search.css\";\r\n\r\nconst SearchInput = ({\r\n language,\r\n searchValue,\r\n setSearchValue,\r\n toggleSearch,\r\n setToggleSearch,\r\n}) => {\r\n const [searchTerm, setSearchTerm] = useState(\"\");\r\n const ref = useRef();\r\n\r\n useEffect(() => {\r\n if (toggleSearch) {\r\n setSearchTerm(\"\");\r\n ref.current.focus();\r\n }\r\n }, [toggleSearch]);\r\n\r\n useEffect(() => {\r\n const delayDebounce = setTimeout(() => {\r\n setSearchValue(searchTerm);\r\n }, 350);\r\n return () => clearTimeout(delayDebounce);\r\n }, [searchTerm]);\r\n\r\n useEffect(() => {\r\n const close = (e) => {\r\n if (e.keyCode === 27) {\r\n setSearchTerm(\"\");\r\n setToggleSearch(false);\r\n }\r\n };\r\n window.addEventListener(\"keydown\", close);\r\n return () => window.removeEventListener(\"keydown\", close);\r\n }, []);\r\n\r\n return (\r\n <>\r\n setSearchTerm(e.target.value)}\r\n ref={ref}\r\n placeholder={language.WriteToSearch + \"...\"}\r\n aria-label={language.Search}\r\n />\r\n {\r\n setSearchTerm(\"\");\r\n setToggleSearch(false);\r\n }}\r\n aria-label={language?.Close}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SearchInput;\r\n","import uuid from \"uuid\";\r\nimport slugify from \"../common/slugify\";\r\nconst makeId = () => uuid.v4();\r\n\r\nexport const getData = (data) => {\r\n let articleIds = [];\r\n let articlePlus = [];\r\n let tags = [];\r\n if (!data) return { dataProductIds: [], dataTags: [] };\r\n data.tags.forEach((t) => {\r\n if (!tags.includes(t.name)) {\r\n tags = [...tags, t.name];\r\n }\r\n t.articles.forEach((a) => {\r\n if (!articleIds.includes(a.id)) {\r\n articleIds = [...articleIds, a.id];\r\n articlePlus = [...articlePlus, a.plu];\r\n }\r\n });\r\n });\r\n return {\r\n dataProductIds: articleIds,\r\n dataProductPlus: articlePlus,\r\n dataTags: tags,\r\n };\r\n};\r\n\r\nconst extendGroup = (g, config) => {\r\n const { imageFolderUrl } = config;\r\n return {\r\n ...g,\r\n id: makeId(),\r\n images: g.images.map((img) => `${imageFolderUrl}${img}`),\r\n slug: `products/${slugify(g.name)}`,\r\n };\r\n};\r\n\r\nexport const getAllProducts = (groups, config, data) => {\r\n let productIds = [];\r\n let products = [];\r\n let unpublished = [];\r\n const { dataProductIds, dataTags } = getData(data);\r\n\r\n groups.forEach((g) => {\r\n let productGroupConfig = config.productGroupConfig.find(\r\n (c) => c.name === g.name\r\n );\r\n\r\n if (productGroupConfig?.useGroupsAsItems) {\r\n if (!dataTags.includes(g.name)) {\r\n unpublished = [...unpublished, { name: g.name, type: \"productGroup\" }];\r\n return;\r\n }\r\n const extendedGroup = extendGroup(g, config);\r\n products = [...products, extendedGroup];\r\n } else {\r\n g.products.forEach((p) => {\r\n let productConfig = config.productConfig.find((x) => x.plu === p.plu);\r\n if (!dataProductIds.includes(p.id) && productConfig.isModification) {\r\n unpublished = [\r\n ...unpublished,\r\n { plu: p.plu, name: p.name, type: \"product\" },\r\n ];\r\n return;\r\n }\r\n if (!productIds.includes(p.id)) {\r\n productIds = [...productIds, p.id];\r\n products = [...products, p];\r\n }\r\n });\r\n }\r\n\r\n // add modifications\r\n g.products.forEach((p) => {\r\n let productConfig = config.productConfig.find((x) => x.plu === p.plu);\r\n if (productConfig?.isModification) {\r\n products = [...products, p];\r\n }\r\n });\r\n });\r\n if (unpublished.length > 0) {\r\n console.log(\"Unpublished items\", unpublished);\r\n }\r\n return products;\r\n};\r\n","import uuid from \"uuid\";\r\nimport slugify from \"../../components/common/slugify\";\r\nimport { getData } from \"../../components/Page/util\";\r\n\r\nconst makeId = () => uuid.v4();\r\n\r\nconst getArticlesFromTags = (tags) => {\r\n if (!tags || tags.length < 1) return [];\r\n let articles = [];\r\n let articleIds = [];\r\n tags.forEach((t) =>\r\n t.articles.forEach((a) => {\r\n if (!articleIds.includes(a.id)) {\r\n articleIds = [...articleIds, a.id];\r\n articles = [...articles, a];\r\n }\r\n })\r\n );\r\n return articles;\r\n};\r\n\r\nexport const extendProduct = (p, a = {}, config, imageUri) => {\r\n const { imageFolderUrl } = config;\r\n const productGroupConfig = config.productGroupConfig.find(\r\n (x) => x.name === p.name\r\n );\r\n if (productGroupConfig?.useGroupsAsItems && !p.allProductsShow) return null;\r\n if (productGroupConfig?.useGroupsAsItems && !a.name) {\r\n console.log(`no published articleGroup with name ${p.name}`);\r\n return null;\r\n }\r\n if (!!a.id && !!p.isModification) return null;\r\n // If its a product that only exists in config\r\n const plu = a.plu ? a.plu : p.plu;\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n return {\r\n id: a.id ? a.id : makeId(),\r\n name: a.name ? a.name : p.name,\r\n plu,\r\n imageUri,\r\n images: imageUri\r\n ? [`${uri}/articleimage/${imageUri}`]\r\n : p.images\r\n ? p.images.map(\r\n (img) => `${process.env.PUBLIC_URL}${imageFolderUrl}${img}`\r\n )\r\n : undefined,\r\n products: a.articles ? a.articles : null,\r\n displayPrice: a.priceInclVat,\r\n slug: productGroupConfig?.useGroupsAsItems\r\n ? `products/${slugify(p.name)}`\r\n : `products/${plu}`,\r\n isInfo: p?.isInfo || false,\r\n allProductsSort: p.allProductsSort,\r\n };\r\n};\r\n\r\nexport const extendArticleFromApi = (a, config, imageUri, culture) => {\r\n if (!a) return null;\r\n const plu = a.plu;\r\n const name =\r\n a.translation.find((t) => t.culture === culture)?.name ||\r\n a.translation.find((t) => t.culture === \"sv-SE\")?.name ||\r\n `Product Name (${plu})`;\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n return {\r\n id: a.id ? a.id : makeId(),\r\n name,\r\n plu,\r\n imageUri,\r\n images: imageUri ? [`${uri}/articleimage/${imageUri}`] : undefined,\r\n displayPrice: a.priceInclVat,\r\n slug: `products/${plu}`,\r\n inStock: a.inStock,\r\n };\r\n};\r\n\r\nexport const getAllProducts = (data, config, culture) => {\r\n if (!data) return [];\r\n let products = [];\r\n let unpublished = [];\r\n let publishedArticles = getArticlesFromTags(data.tags);\r\n if (!data || !config) return [];\r\n const { productConfig, productGroupConfig } = config;\r\n const { dataProductPlus, dataTags } = getData(data);\r\n productGroupConfig.forEach((g) => {\r\n if (g.useGroupsAsItems) {\r\n if (!dataTags.includes(g.name)) {\r\n unpublished = [...unpublished, { name: g.name, type: \"productGroup\" }];\r\n return;\r\n }\r\n const tag = data.tags.find((t) => t.name === g.name);\r\n const extendedProduct = extendProduct(g, tag, config);\r\n products = extendedProduct ? [...products, extendedProduct] : products;\r\n }\r\n });\r\n\r\n productConfig.forEach((p) => {\r\n if (\r\n !productGroupConfig.find(\r\n (x) => x.useGroupsAsItems && p.name.includes(x.name)\r\n )\r\n ) {\r\n let productConfig = config.productConfig.find((x) => x.plu === p.plu);\r\n let value =\r\n productConfig.isModification !== undefined\r\n ? productConfig.isModification\r\n : false;\r\n if (!dataProductPlus.includes(p.plu) && !value) {\r\n unpublished = [\r\n ...unpublished,\r\n { plu: p.plu, name: p.name, type: \"product\" },\r\n ];\r\n return;\r\n }\r\n const article = publishedArticles.find((a) => a.plu === p.plu);\r\n const imageUri =\r\n article &&\r\n data.articles.find((a) => a.plu === article.plu)?.imageFilename;\r\n const extendedProduct = extendProduct(p, article, config, imageUri);\r\n products = extendedProduct ? [...products, extendedProduct] : products;\r\n }\r\n });\r\n\r\n data.articles.forEach((article) => {\r\n if (products.some((p) => p.id === article.id)) return;\r\n const imageUri =\r\n article && data.articles.find((a) => a.plu === article.plu).imageFilename;\r\n const extendedProduct = extendArticleFromApi(\r\n article,\r\n config,\r\n imageUri,\r\n culture\r\n );\r\n products = extendedProduct ? [...products, extendedProduct] : products;\r\n });\r\n\r\n return products.sort((a, b) => a.allProductsSort - b.allProductsSort);\r\n};\r\n\r\nexport const extendPage = (data, config) => {\r\n return {\r\n name: \"Alla Produkter\",\r\n productGroups: data.tags\r\n // Loops over all products groups (tags) from GraphQL\r\n .map((t) => {\r\n const groupConfig = config.productGroupConfig.find(\r\n (g) => g.name === t.name\r\n );\r\n const products = t.articles\r\n // Loops over each product under each product group\r\n .map((a) => {\r\n const product = config.productConfig.find((p) => p.plu === a.plu);\r\n const imageUri =\r\n product &&\r\n data.articles.find((article) => article.plu === product.plu)\r\n ?.imageFilename;\r\n // If article exists in config, return an extended object\r\n return product ? extendProduct(product, a, config, imageUri) : a;\r\n });\r\n return { ...t, ...groupConfig, products };\r\n })\r\n .sort((a, b) => a.allProductsSort - b.allProductsSort),\r\n };\r\n};\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { navigate } from \"@reach/router\";\r\nimport { GrFormClose } from \"react-icons/gr\";\r\nimport { useSelector } from \"react-redux\";\r\nimport slugify from \"../slugify\";\r\nimport { DataContext } from \"../dataProvider\";\r\nimport Placeholder from \"../../../images/placeholder.svg\";\r\nimport { getAllProducts } from \"../../../Pages/AllProductsPage/util\";\r\nimport { motion } from \"framer-motion\";\r\nimport _ from \"lodash\";\r\n\r\nconst SearchResult = ({\r\n toggleSearch,\r\n setToggleSearch,\r\n searchValue,\r\n setSearchValue,\r\n articles,\r\n allotments,\r\n loading,\r\n setLoading,\r\n culture,\r\n}) => {\r\n const [result, setResult] = useState([]);\r\n const [newResult, setNewResult] = useState([]);\r\n const [toggleAllotment, setToggleAllotment] = useState(true);\r\n const [toggleArticle, setToggleArticle] = useState(true);\r\n const [extensionArticles, setExtensionArticles] = useState(null);\r\n const [loadingResults, setLoadingResults] = useState(true);\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const { data } = useContext(DataContext);\r\n const products = getAllProducts(data, config, culture);\r\n\r\n useEffect(() => {\r\n const filter = config?.productConfig.filter(\r\n (el) => el?.isModification === true\r\n );\r\n if (filter?.length > 0) {\r\n setExtensionArticles(filter);\r\n }\r\n }, [searchValue]);\r\n\r\n useEffect(() => {\r\n if (\r\n (allotments.length > 0 || articles.length > 0) &&\r\n searchValue.length > 0\r\n ) {\r\n let allAllotments = allotments;\r\n let articleBooking = config?.articleBookingConfigurator;\r\n let eventCalendar = config?.ticketConfigurator;\r\n const reduceAllotmentsToId =\r\n eventCalendar &&\r\n eventCalendar?.reduce((acc, curr) => {\r\n acc.push({\r\n id: curr.allotmentId,\r\n optionAllotmentId: curr.optionAllotmentId,\r\n });\r\n\r\n return acc;\r\n }, []);\r\n\r\n let arr = [];\r\n articleBooking &&\r\n articleBooking.forEach((el) => {\r\n el.tickets.forEach((ele) => {\r\n arr.push({\r\n id: ele.articleId,\r\n });\r\n });\r\n });\r\n const flatArr =\r\n articleBooking &&\r\n arr &&\r\n arr.reduce((acc, curr) => {\r\n acc.push(curr?.id);\r\n return acc;\r\n }, []);\r\n\r\n const reduceArticleBookingToId =\r\n flatArr &&\r\n flatArr?.reduce((a, b) => {\r\n return a.concat(b);\r\n });\r\n\r\n let flattenedArr =\r\n reduceAllotmentsToId &&\r\n reduceAllotmentsToId.reduce((a, b) => {\r\n if (b.id) {\r\n a.push(b.id);\r\n }\r\n if (b.optionAllotmentId) {\r\n a.push(b.optionAllotmentId);\r\n }\r\n return a;\r\n }, []);\r\n\r\n const removeEmptyArr =\r\n flattenedArr && flattenedArr.filter((el) => el.length).flat();\r\n\r\n let reducedArr;\r\n if (reduceArticleBookingToId || removeEmptyArr) {\r\n reducedArr = [].concat(removeEmptyArr, reduceArticleBookingToId);\r\n }\r\n setLoading(true);\r\n setLoadingResults(true);\r\n let addCalendar = [];\r\n if (reducedArr) {\r\n let newAllotments = allotments.filter(\r\n (el) => !reducedArr.includes(el.id)\r\n );\r\n\r\n if (config?.ticketConfigurator || config?.articleBookingConfigurator) {\r\n let calendarAllotments = config?.ticketConfigurator;\r\n let articleBookingAllotments = config?.articleBookingConfigurator;\r\n // addCalendar = newAllotments.concat(calendarAllotments);\r\n addCalendar = newAllotments.concat(\r\n calendarAllotments,\r\n articleBookingAllotments\r\n );\r\n } else {\r\n addCalendar = newAllotments;\r\n }\r\n } else {\r\n addCalendar = allotments;\r\n }\r\n\r\n const articleFilter = articles.filter((x) => {\r\n let data = x.translation.some((y) =>\r\n y?.name.toLowerCase().includes(searchValue.toLowerCase())\r\n );\r\n return data;\r\n });\r\n\r\n const removeDisabledAllotments = addCalendar.filter(\r\n (el) => !el?.disabledNav\r\n );\r\n\r\n const allotmentFilter = removeDisabledAllotments.filter((x) => {\r\n let data = x?.translation\r\n ? x?.translation.some((y) =>\r\n y?.name.toLowerCase().includes(searchValue.toLowerCase())\r\n )\r\n : x?.translations.some((y) =>\r\n y?.name.toLowerCase().includes(searchValue.toLowerCase())\r\n );\r\n return data;\r\n });\r\n\r\n if (articleFilter.length > 0 || allotmentFilter.length > 0) {\r\n if (articleFilter.length > 0 && allotmentFilter.length > 0) {\r\n setResult(articleFilter.concat(allotmentFilter));\r\n } else if (allotmentFilter.length > 0 && articleFilter.length === 0) {\r\n setResult(allotmentFilter);\r\n } else if (articleFilter.length > 0 && allotmentFilter.length === 0) {\r\n setResult(articleFilter);\r\n }\r\n } else {\r\n setResult(null);\r\n }\r\n setLoading(false);\r\n }\r\n }, [searchValue]);\r\n\r\n useEffect(() => {\r\n setLoadingResults(true);\r\n const extensionFilter =\r\n extensionArticles &&\r\n extensionArticles.filter((x) => {\r\n let data;\r\n if (x.translation) {\r\n data =\r\n x.translation &&\r\n x.translation.some((y) =>\r\n y?.name.toLowerCase().includes(searchValue.toLowerCase())\r\n );\r\n } else {\r\n data = x.name.toLowerCase().includes(searchValue.toLowerCase());\r\n }\r\n return data;\r\n });\r\n if (extensionFilter !== null && extensionFilter?.length > 0) {\r\n let arr = [];\r\n arr = [result, extensionArticles.flat()];\r\n setNewResult(arr.flat());\r\n } else {\r\n setNewResult(result);\r\n }\r\n }, [searchValue, result]);\r\n\r\n useEffect(() => {\r\n setLoadingResults(false);\r\n }, [newResult, searchValue]);\r\n\r\n const getName = (item) => {\r\n if (item) {\r\n const filter = item.filter((el) => el?.culture === culture);\r\n if (filter?.length > 0) {\r\n return filter[0]?.name;\r\n } else {\r\n return item[0].name;\r\n }\r\n }\r\n };\r\n\r\n const getMarkdownDescription = (item) => {\r\n let text = language?.LandingTexts;\r\n if (text) {\r\n let getDesc = Object.values(_.pick(text, [item?.name]));\r\n return getDesc?.[0]?.secondary;\r\n }\r\n };\r\n\r\n const getDescription = (item) => {\r\n if (\r\n config?.showSearchDescription &&\r\n item &&\r\n !item.isEventCalendar &&\r\n !item.isArticleBooking\r\n ) {\r\n const filter = item.filter((el) => el.culture === culture);\r\n if (filter.length === 0) {\r\n return item?.[0].description\r\n .replace(/(<([^>]+)>)/gi, \"\")\r\n .replace(/#(\\S)/g, \"\");\r\n }\r\n if (filter !== null && filter[0]?.description?.length > 60) {\r\n return (\r\n filter[0]?.description\r\n .replace(/(<([^>]+)>)/gi, \"\")\r\n .replace(/#(\\S)/g, \"\")\r\n .substring(0, 60) + \"...\"\r\n );\r\n } else if (filter[0]?.description) {\r\n return filter[0]?.description\r\n .replace(/(<([^>]+)>)/gi, \"\")\r\n .replace(/#(\\S)/g, \"\");\r\n }\r\n }\r\n };\r\n const getImage = (id) => {\r\n const filter = products?.filter((el) => el.id === id);\r\n return filter[0].images;\r\n };\r\n\r\n const getNewImage = (item) => {\r\n if (item?.isEventCalendar || item?.isArticleBooking) {\r\n if (item?.image) {\r\n return `${process.env.PUBLIC_URL}/ee-static/shop/${config?.shopName}/Images/${item?.image}`;\r\n } else {\r\n return Placeholder;\r\n }\r\n }\r\n if (item?.isModification === true) {\r\n return `${process.env.PUBLIC_URL}/ee-static/shop/${config?.shopName}/Images/${item?.images?.[0]}`;\r\n }\r\n if (!item?.isModification) {\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n let link3 = `${uri + \"/articleimage/\" + item.imageFilename}`;\r\n let link2 = `${\r\n item.plu ? uri + \"/articleimage/\" + item.imageUri : uri\r\n }/allotmentimage/${item.imageFileName}`;\r\n\r\n let link = `${uri}/articleimage/${item?.imageFileName}`;\r\n if (\r\n !item?.isProduct &&\r\n item?.imageFilename !== null &&\r\n item?.imageFilename !== undefined\r\n ) {\r\n return link3;\r\n }\r\n if (\r\n item?.imageFilename !== null &&\r\n !item?.imageFileName &&\r\n item?.imageFileName?.length > 0\r\n ) {\r\n return link;\r\n }\r\n if (item?.imageFilename !== null && item?.imageFileName) {\r\n return link2;\r\n }\r\n if (item?.imageFileName && !item?.imageFilename) {\r\n return link2;\r\n } else {\r\n return Placeholder;\r\n }\r\n }\r\n };\r\n\r\n const giftCard = (item) => {\r\n if (parseInt(item?.priceInclVat) === 0) {\r\n const filter = config?.productConfig.filter((el) => el.plu === item.plu);\r\n if (\r\n filter[0]?.openPriceValues &&\r\n filter[0]?.openPriceValues.length > 0 &&\r\n config?.showSearchPrice\r\n ) {\r\n return (\r\n

\r\n {language?.FromCost} {filter[0].openPriceValues[0]}{\" \"}\r\n {language?.CurrencyAbbreviation}\r\n

\r\n );\r\n }\r\n if (\r\n filter[0]?.openPriceValues &&\r\n filter[0]?.openPriceValues.length === 0 &&\r\n config?.showSearchPrice\r\n ) {\r\n return

{language?.OpenPrice}

;\r\n }\r\n }\r\n };\r\n\r\n const variants = {\r\n hidden: { opacity: 0 },\r\n show: {\r\n opacity: 1,\r\n transition: {\r\n staggerChildren: 0.05,\r\n },\r\n },\r\n };\r\n\r\n const item = {\r\n hidden: {\r\n opacity: 0,\r\n x: -15,\r\n },\r\n show: {\r\n opacity: 1,\r\n x: 0,\r\n transition: {\r\n duration: 0.25,\r\n },\r\n },\r\n };\r\n\r\n const getCalendarBookingLink = (item) => {\r\n let articleBooking = config?.articleBookingConfigurator;\r\n let eventCalendar = config?.ticketConfigurator;\r\n\r\n const eventFilter =\r\n eventCalendar &&\r\n eventCalendar.reduce((a, b) => {\r\n let filter = b?.tickets?.filter((el) =>\r\n el?.articleId?.includes(item?.id)\r\n );\r\n if (filter && filter?.length > 0) {\r\n a.push(b);\r\n }\r\n return a;\r\n }, []);\r\n\r\n const articleFilter =\r\n articleBooking &&\r\n articleBooking.reduce((a, b) => {\r\n const filter = b?.tickets.filter((el) =>\r\n el?.articleId.includes(item?.id)\r\n );\r\n if (filter && filter.length > 0) {\r\n a.push(b);\r\n }\r\n return a;\r\n }, []);\r\n if (articleFilter?.length > 0) {\r\n return `/ticketshop/booking/${articleFilter[0].slug}`;\r\n }\r\n\r\n if (eventFilter?.length > 0) {\r\n return `/ticketshop/tickets/${eventFilter[0].slug}`;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {searchValue &&\r\n searchValue.length > 0 &&\r\n (allotments.length > 0 || articles.length > 0) ? (\r\n
\r\n {newResult && newResult.length > 0 ? (\r\n

{language?.SearchCategories}

\r\n ) : (\r\n

{language?.NotFound}

\r\n )}\r\n\r\n
\r\n {newResult &&\r\n newResult.find(\r\n (el) => !el?.isProduct || el?.isModification === true\r\n ) ? (\r\n setToggleAllotment(!toggleAllotment)}\r\n >\r\n {language?.Tickets}\r\n\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {newResult &&\r\n newResult.find(\r\n (el) => el?.isProduct || el?.isModification === true\r\n ) ? (\r\n {\r\n setToggleArticle(!toggleArticle);\r\n }}\r\n >\r\n {language?.Products}\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n {newResult &&\r\n newResult.length > 0 &&\r\n !loadingResults &&\r\n searchValue.length > 0 && (\r\n \r\n {!loading ? (\r\n newResult.map((el, i) => (\r\n \r\n {toggleArticle &&\r\n el?.isProduct &&\r\n el?.isProduct !== null ? (\r\n {\r\n setToggleSearch(false);\r\n setSearchValue(\"\");\r\n navigate(`/ticketshop/products/${el.plu}`);\r\n }}\r\n >\r\n \r\n \r\n\r\n
    \r\n
    \r\n

    \r\n {getName(\r\n el?.translation\r\n ? el?.translation\r\n : el?.translations\r\n )}\r\n

    \r\n

    \r\n {getDescription(\r\n el?.translation\r\n ? el?.translation\r\n : el?.translations\r\n )}\r\n

    \r\n
    \r\n\r\n {config?.showSearchPrice &&\r\n parseInt(el.priceInclVat) > 0 ? (\r\n

    \r\n {el.priceInclVat}\r\n {/* {language?.CurrencyAbbreviation} */}\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 {toggleAllotment &&\r\n el !== null &&\r\n (!el?.isProduct || el?.isModification === true) ? (\r\n {\r\n setToggleSearch(false);\r\n setSearchValue(\"\");\r\n if (el?.plu) {\r\n navigate(`/ticketshop/products/${el?.plu}`);\r\n }\r\n if (el?.isEventCalendar) {\r\n localStorage.setItem(\"selected\", el?.name);\r\n navigate(`/ticketshop/tickets/${el?.slug}`);\r\n }\r\n if (el?.isArticleBooking) {\r\n localStorage.setItem(\"selected\", el?.name);\r\n navigate(`/ticketshop/booking/${el?.slug}`);\r\n }\r\n\r\n if (getCalendarBookingLink(el)) {\r\n let translation = el?.translation?.filter(\r\n (el) => el.culture === \"sv-SE\"\r\n )[0]?.name;\r\n\r\n if (translation) {\r\n localStorage.setItem(\"selected\", el?.name);\r\n }\r\n navigate(getCalendarBookingLink(el));\r\n } else if (\r\n !el.plu &&\r\n !el.isEventCalendar &&\r\n !el.isArticleBooking &&\r\n !getCalendarBookingLink(el)\r\n ) {\r\n navigate(\r\n `/ticketshop/events/${slugify(el?.description)}`\r\n );\r\n }\r\n }}\r\n aria-label={getDescription(\r\n el?.translation ? el?.translation : el?.translations\r\n )}\r\n >\r\n {/*el.isEventCalendar navigate*/}\r\n
\r\n {el.plu & (el?.isModification === true) ? (\r\n \r\n ) : el.plu && !el.isModification ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n
\r\n

\r\n {getName(\r\n el?.translation\r\n ? el?.translation\r\n : el?.translations\r\n )}\r\n

\r\n

\r\n {el?.isEventCalendar || el?.isArticleBooking\r\n ? getMarkdownDescription(el)\r\n : getDescription(\r\n el?.translation\r\n ? el?.translation\r\n : el?.translations\r\n )}\r\n

\r\n {config?.showSearchPrice &&\r\n parseInt(el.priceInclVat) > 0 ? (\r\n

{el?.priceInclVat}

\r\n ) : (\r\n \"\"\r\n )}\r\n {giftCard(el)}\r\n
\r\n
\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ))\r\n ) : (\r\n

loading

\r\n )}\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SearchResult;\r\n","import React, { useState, useEffect, useContext, useRef } from \"react\";\r\nimport { BiSearch } from \"react-icons/bi\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport useClickDetector from \"./hooks/useClickDetector\";\r\nimport \"./search.css\";\r\nimport { useSelector } from \"react-redux\";\r\nimport SearchInput from \"./SearchInput\";\r\nimport SearchResult from \"./SearchResult\";\r\nimport { DataContext } from \"../dataProvider\";\r\nimport { useFocusTrap } from \"@mantine/hooks\";\r\n\r\nconst SearchV2 = ({ changeBackground, mobile }) => {\r\n const [toggleSearch, setToggleSearch] = useState(false);\r\n const { config, language, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const { data } = useContext(DataContext);\r\n const [allotments, setAllotments] = useState([]);\r\n const [articles, setArticles] = useState([]);\r\n const [searchValue, setSearchValue] = useState(\"\");\r\n const [loading, setLoading] = useState(false);\r\n\r\n const focusTrapRef = useFocusTrap(toggleSearch ? true : false);\r\n const ref = useRef(null);\r\n useClickDetector(ref, toggleSearch, setToggleSearch, setSearchValue);\r\n\r\n useEffect(() => {\r\n setAllotments(data?.allotments);\r\n setArticles(data?.articles);\r\n }, [data]);\r\n\r\n const calcHeight = () => {\r\n let headerHeight = config?.headerHeight;\r\n let calc = headerHeight / 3.5 + \"px\";\r\n return calc;\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n setToggleSearch(true)}\r\n data-isactive={toggleSearch}\r\n aria-label={language?.Search}\r\n >\r\n {config?.useNewHeader ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SearchV2;\r\n","import { createStyles, Indicator } from \"@mantine/core\";\r\nimport React, { useContext } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Context, OPEN_CART } from \"../../context\";\r\nimport { SaleContext } from \"../common/saleProvider\";\r\n\r\nconst useStyles = createStyles({\r\n wrapper: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n marginLeft: \"0.7rem\",\r\n marginRight: \"0.9rem\",\r\n paddingTop: \"0.3rem\",\r\n },\r\n button: {\r\n padding: 0,\r\n margin: 0,\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n },\r\n shoppingBag: {\r\n minWidth: \"1.6rem\",\r\n minHeight: \"1.6rem\",\r\n // color: \"var(--header-link-color-light)\",\r\n color: \"inherit\",\r\n \"@media screen and (max-width: 768px)\": {},\r\n strokeWidth: \"2px\",\r\n },\r\n indicator: {\r\n fontWeight: \"500\",\r\n },\r\n});\r\n\r\nconst CartV2 = ({ changeBackground }) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const {\r\n state: { sale },\r\n } = useContext(SaleContext);\r\n const { classes } = useStyles();\r\n const { dispatch } = useContext(Context);\r\n\r\n const openCart = () => {\r\n dispatch({ type: OPEN_CART });\r\n };\r\n\r\n return (\r\n
\r\n \r\n openCart()}\r\n aria-label={language.OpenCart}\r\n >\r\n {sale?.itemQuantity > 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CartV2;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst LogoV2 = ({ changeBackground }) => {\r\n const { config } = useSelector((state) => ({\r\n config: state.config,\r\n }));\r\n\r\n const logoUrl = `${process.env.PUBLIC_URL}/ee-static/shop/${\r\n config.shopName\r\n }/Images/${config.logoImg ? config.logoImg : \"logo.svg\"}`;\r\n\r\n const logoWhite = `${process.env.PUBLIC_URL}/ee-static/shop/${\r\n config.shopName\r\n }/Images/${\r\n config.logoImgWhite\r\n ? config.logoImgWhite\r\n : config?.logoImg\r\n ? config?.logoImg\r\n : \"logo.svg\"\r\n }`;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LogoV2;\r\n","import React, { useEffect } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst Path = (props) => (\r\n \r\n);\r\n\r\nconst HamburgerMenu = ({ open, setOpen, changeBackground }) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n useEffect(() => {\r\n setOpen(false);\r\n }, [window.location.pathname]);\r\n\r\n useEffect(() => {\r\n const body = document.getElementById(\"AppBody\");\r\n if (open) {\r\n body.setAttribute(\"aria-hidden\", true);\r\n } else {\r\n body.removeAttribute(\"aria-hidden\");\r\n }\r\n }, [open]);\r\n\r\n return (\r\n setOpen(!open)}\r\n className=\"mobileMenuV2\"\r\n data-isopen={open}\r\n initial={false}\r\n animate={open ? \"open\" : \"closed\"}\r\n aria-label={open ? language.Close : language.OpenMenu}\r\n aria-expanded={open}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HamburgerMenu;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport slugify from \"../../common/slugify\";\r\nimport { Link } from \"@reach/router\";\r\nimport {\r\n MdOutlineKeyboardArrowDown,\r\n MdOutlineKeyboardArrowUp,\r\n} from \"react-icons/md\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { CloseButton } from \"@mantine/core\";\r\n\r\nconst MenuItemV2 = ({\r\n data,\r\n culture,\r\n config,\r\n changeBackground,\r\n selected,\r\n setSelected,\r\n onClick,\r\n open,\r\n}) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const [showLinks, setShowLinks] = useState(false);\r\n useEffect(() => {\r\n if (data?.subLinks) {\r\n setShowLinks(false);\r\n }\r\n }, [window.location.pathname]);\r\n\r\n let pathname = window.location.pathname !== \"/ticketshop/cart\";\r\n\r\n const getLink = (item, dropdown) => {\r\n let productGroup = item?.productGroups;\r\n if (item?.name) {\r\n let theme;\r\n let underlineTheme;\r\n if (open) {\r\n theme = \"menuItem-item openMenu\";\r\n underlineTheme = \"menuItem-underline-color\";\r\n } else {\r\n theme = `menuItem-item ${\r\n changeBackground ? \"darkColor\" : \"lightColor\"\r\n }`;\r\n underlineTheme = `${\r\n changeBackground\r\n ? \"menuItem-darkUnderline\"\r\n : \"menuItem-lightUnderline\"\r\n }`;\r\n }\r\n\r\n if (item?.externalLink) {\r\n const filter = Object.keys(language?.LandingTexts)\r\n .filter((key) => item?.name.includes(key))\r\n .reduce((obj, key) => {\r\n obj[key] = language?.LandingTexts[key];\r\n return obj[key];\r\n }, []);\r\n return (\r\n \r\n \r\n {filter ? filter?.primary : item?.name}\r\n \r\n \r\n );\r\n }\r\n\r\n if (item?.internalLink) {\r\n const filter = Object.keys(language?.LandingTexts)\r\n .filter((key) => item?.name.includes(key))\r\n .reduce((obj, key) => {\r\n obj[key] = language?.LandingTexts[key];\r\n return obj[key];\r\n }, []);\r\n return (\r\n \r\n \r\n {filter ? filter?.primary : item?.name}\r\n \r\n {selected && pathname && !dropdown && (\r\n <>\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n if (\r\n productGroup?.length === 1 &&\r\n productGroup?.[0]?.length > 0 &&\r\n language?.LandingTexts\r\n ) {\r\n const filter = Object.keys(language?.LandingTexts)\r\n .filter((key) => item?.name.includes(key))\r\n .reduce((obj, key) => {\r\n obj[key] = language?.LandingTexts[key];\r\n return obj[key];\r\n }, []);\r\n return (\r\n \r\n \r\n {filter ? filter?.primary : item?.name}\r\n \r\n {selected && pathname && !dropdown && (\r\n <>\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n if (productGroup?.length > 1) {\r\n return (\r\n \r\n \r\n {item?.name}\r\n \r\n {selected && pathname && !dropdown && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n if (item?.name === \"Hem\") {\r\n return (\r\n \r\n \r\n {language?.Home}\r\n \r\n {selected && pathname && !dropdown && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n if (item?.name === \"Alla produkter\" || item?.name === \"Alla evenemang\") {\r\n return (\r\n \r\n \r\n {item?.name === \"Alla produkter\"\r\n ? language.All_Products\r\n : language.All_Events}\r\n \r\n {selected && pathname && !dropdown && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n if (item?.eventCalendar || item?.articleBooking) {\r\n if (config?.ticketConfigurator || config?.articleBookingConfigurator) {\r\n const ticketConfiguratorFilter =\r\n config?.ticketConfigurator &&\r\n config?.ticketConfigurator?.filter(\r\n (el) => el.name.toLowerCase() === item?.name.toLowerCase()\r\n );\r\n const getTicketLang =\r\n ticketConfiguratorFilter?.[0]?.translations.filter(\r\n (el) => el.culture === culture\r\n );\r\n const articleBookingConfiguratorFilter =\r\n config?.articleBookingConfigurator &&\r\n config?.articleBookingConfigurator.filter(\r\n (el) => el.name.toLowerCase() === item?.name.toLowerCase()\r\n );\r\n\r\n const getBookingLang =\r\n articleBookingConfiguratorFilter?.[0]?.translations?.filter(\r\n (el) => el.culture === culture\r\n );\r\n\r\n return (\r\n \r\n \r\n {item?.eventCalendar\r\n ? getTicketLang?.[0]?.name\r\n : getBookingLang?.[0]?.name}\r\n \r\n {selected && pathname && !dropdown && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n }\r\n if (item?.events?.length === 1) {\r\n return (\r\n \r\n \r\n {item?.name}\r\n \r\n {selected && pathname && !dropdown && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n if (item?.events?.length > 1) {\r\n return (\r\n \r\n \r\n {item?.name}\r\n \r\n {selected && pathname && !dropdown && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n if (item?.publicBooking) {\r\n return (\r\n \r\n \r\n {item?.name}\r\n \r\n {selected && pathname && !dropdown && (\r\n \r\n )}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n {item?.name}\r\n \r\n {selected && pathname && !dropdown && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n }\r\n };\r\n let underlineTheme;\r\n if (open) {\r\n underlineTheme = \"menuItem-lightUnderline\";\r\n } else {\r\n underlineTheme = `${\r\n changeBackground ? \"menuItem-darkUnderline\" : \"menuItem-lightUnderline\"\r\n }`;\r\n }\r\n\r\n const nameTranslation = (data) => {\r\n const filter = data?.translations.filter((el) => el.culture === culture);\r\n if (filter.length > 0) {\r\n return filter[0]?.name;\r\n } else {\r\n return data?.name;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {data && data?.subLinks && data.subLinks.length > 0 ? (\r\n
  • \r\n
      \r\n {\r\n if (document.documentElement.clientWidth > 768) {\r\n setShowLinks(true);\r\n }\r\n }}\r\n onMouseEnter={() => {\r\n if (document.documentElement.clientWidth > 768) {\r\n setShowLinks(true);\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n if (document.documentElement.clientWidth > 768) {\r\n setShowLinks(false);\r\n }\r\n }}\r\n >\r\n {\r\n setShowLinks(!showLinks);\r\n }}\r\n aria-expanded={showLinks}\r\n >\r\n {nameTranslation(data)}\r\n {showLinks ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {showLinks && (\r\n 10 ? \"repeat(2, 1fr)\" : \"1fr\",\r\n }}\r\n initial={{ opacity: 0, y: \"-5px\" }}\r\n animate={{ opacity: 1, y: \"0px\" }}\r\n exit={{ opacity: 0, y: \"-5px\" }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n {data.subLinks.map((el) => (\r\n \r\n {el?.header && !el.disabled ? (\r\n
      \r\n \r\n {el.subLinks.map((ele) => (\r\n \r\n {!ele.disabled && getLink(ele, \"dropdown\")}\r\n \r\n ))}\r\n
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n ))}\r\n
    • \r\n setShowLinks(false)}\r\n iconSize={20}\r\n />\r\n
    • \r\n {data.subLinks.map((el) => (\r\n \r\n {!el.disabled && !el.header ? (\r\n <>{getLink(el, \"dropdown\")}\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ))}\r\n \r\n )}\r\n
      \r\n \r\n
    \r\n {selected && pathname && (\r\n \r\n )}\r\n
  • \r\n ) : (\r\n getLink(data)\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MenuItemV2;\r\n","import { useLocation } from \"@reach/router\";\r\nimport { AnimateSharedLayout } from \"framer-motion\";\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\nimport slugify from \"../../common/slugify\";\r\nimport MenuItemV2 from \"./MenuItemV2\";\r\nimport { useSessionStorage } from \"@mantine/hooks\";\r\n\r\nconst NavContentV2 = ({\r\n config,\r\n language,\r\n changeBackground,\r\n culture,\r\n open,\r\n}) => {\r\n const [links, setLinks] = useState();\r\n const [updatedLinks, setUpdatedLinks] = useState();\r\n const [addedLinks, setAddedLinks] = useState([]);\r\n const [selected, setSelected] = useSessionStorage({\r\n key: \"activeLink\",\r\n defaultValue: \"\",\r\n });\r\n const location = useLocation();\r\n\r\n useMemo(() => {\r\n let getLinks = [];\r\n getLinks = config?.pages;\r\n let filter = getLinks?.filter((el) => !el.disabled);\r\n setLinks(filter);\r\n }, []);\r\n\r\n useMemo(() => {\r\n if (config?.newHeaderDropDown) {\r\n let newLinks = [];\r\n let originalLinks = links;\r\n let dropDownItems = config?.newHeaderDropDown;\r\n newLinks.push(originalLinks, dropDownItems);\r\n let flatLinks = newLinks.flat();\r\n const filter = flatLinks.filter((el) => !el?.disabled);\r\n setUpdatedLinks(filter);\r\n } else {\r\n setUpdatedLinks(links);\r\n }\r\n }, [links]);\r\n\r\n useEffect(() => {\r\n let pathName = location.pathname;\r\n const home =\r\n pathName === \"/ticketshop\" ||\r\n pathName === \"ticketshop\" ||\r\n pathName === \"/ticketshop/\";\r\n let path = pathName.split(\"/\").pop();\r\n\r\n const getSubLinks =\r\n config?.newHeaderDropDown &&\r\n config?.newHeaderDropDown.reduce((acc, curr) => {\r\n updatedLinks.some((el) => {\r\n return curr.subLinks.some((ele) => {\r\n return el.name.toLowerCase() === ele.name.toLowerCase() &&\r\n slugify(ele.name) === slugify(path)\r\n ? acc.push(curr)\r\n : \"\";\r\n });\r\n });\r\n return acc;\r\n }, []);\r\n\r\n const getPath = updatedLinks.filter((el) => slugify(el.name) === path)?.[0]\r\n ?.name;\r\n\r\n if (getSubLinks && getSubLinks.length > 0) {\r\n setSelected(getSubLinks?.[0]?.name);\r\n }\r\n\r\n if (\r\n (getPath && !getSubLinks) ||\r\n (getSubLinks && getSubLinks.length === 0 && getPath)\r\n ) {\r\n setSelected(getPath);\r\n }\r\n if (home) {\r\n setSelected(\"Hem\");\r\n }\r\n }, [location.pathname]);\r\n\r\n useMemo(() => {\r\n if (updatedLinks) {\r\n let arr = updatedLinks;\r\n let home = {\r\n name: \"Hem\",\r\n disabled: false,\r\n };\r\n let allProducts = {\r\n name: \"Alla produkter\",\r\n disabled: false,\r\n };\r\n\r\n let allEvents = {\r\n name: \"Alla evenemang\",\r\n disabled: false,\r\n };\r\n let getAllProducts = config?.showAllProducts;\r\n let getAllEvents = config?.useAllEvents;\r\n\r\n if (\r\n getAllProducts ||\r\n getAllEvents ||\r\n !home.disabled ||\r\n config?.newHeaderDropDown\r\n ) {\r\n if (getAllProducts && getAllEvents) {\r\n arr.push(allProducts, allEvents);\r\n arr.unshift(home);\r\n }\r\n if (getAllProducts && !getAllEvents) {\r\n arr.push(allProducts);\r\n arr.unshift(home);\r\n }\r\n if (!getAllProducts && getAllEvents) {\r\n arr.push(allEvents);\r\n arr.unshift(home);\r\n }\r\n if (!getAllProducts && !getAllEvents) {\r\n arr.unshift(home);\r\n }\r\n\r\n const filterDropDownLinks = arr.filter((el) => !el?.useInDropDown);\r\n let sortByConfiguration = filterDropDownLinks.sort((a, b) =>\r\n a.sortInMenu ? -1 : b.sortInMenu ? 1 : 0\r\n );\r\n let sortHome = sortByConfiguration.sort((a, b) =>\r\n a.name === \"Hem\" ? -1 : b.name === \"Hem\" ? 1 : 0\r\n );\r\n setAddedLinks(filterDropDownLinks);\r\n }\r\n }\r\n }, [updatedLinks]);\r\n\r\n return (\r\n
      \r\n \r\n {addedLinks &&\r\n addedLinks.map((el, i) => (\r\n \r\n setSelected(el?.name.toLowerCase())}\r\n setSelected={setSelected}\r\n selectedIndex={el?.name}\r\n open={open}\r\n />\r\n \r\n ))}\r\n \r\n
    \r\n );\r\n};\r\nexport default NavContentV2;\r\n","import React, { useRef, useEffect } from 'react';\r\n\r\nconst KEYCODE_TAB = 9;\r\n\r\nfunction useFocusTrap() {\r\n const elRef = useRef(null);\r\n\r\n function handleFocus(e) {\r\n var focusableEls = elRef.current.querySelectorAll(\r\n 'a[href], button, textarea, input[type=\"text\"], input[type=\"radio\"], input[type=\"checkbox\"], select'\r\n ),\r\n firstFocusableEl = focusableEls[0],\r\n lastFocusableEl = focusableEls[focusableEls.length - 1];\r\n\r\n var isTabPressed = e.key === 'Tab' || e.keyCode === KEYCODE_TAB;\r\n\r\n if (!isTabPressed) {\r\n return;\r\n }\r\n\r\n if (e.shiftKey) {\r\n /* shift + tab */ if (document.activeElement === firstFocusableEl) {\r\n lastFocusableEl.focus();\r\n e.preventDefault();\r\n }\r\n } /* tab */ else {\r\n if (document.activeElement === lastFocusableEl) {\r\n firstFocusableEl.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n elRef.current.addEventListener('keydown', handleFocus);\r\n\r\n return _ => {\r\n elRef.current.removeEventListener('keydown', handleFocus);\r\n };\r\n }, []);\r\n\r\n return elRef;\r\n}\r\n\r\nexport default function FocusTrap(props) {\r\n const elRef = useFocusTrap();\r\n\r\n return (\r\n
    \r\n {props.children}\r\n
    \r\n );\r\n}","import React, { useEffect } from \"react\";\r\n\r\nconst useClickDetector = (ref, open, setOpen) => {\r\n useEffect(() => {\r\n const handleClick = (event) => {\r\n if(ref?.current && ref?.current.contains(event.target)) {\r\n if(open) {\r\n setOpen(false)\r\n }\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClick);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClick);\r\n };\r\n }, [ref, open]);\r\n};\r\n\r\nexport default useClickDetector;\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { AnimatePresence, AnimateSharedLayout, motion } from \"framer-motion\";\r\nimport NavContentV2 from \"./NavContentV2\";\r\nimport Settings from \"../../Settings\";\r\nimport Login from \"../login\";\r\nimport FocusTrap from \"./hooks/useFocusTrap\";\r\nimport useClickDetector from \"./hooks/useClickDetector\";\r\nimport { useLocation } from \"@reach/router\";\r\n\r\nconst MobileMenuOverlay = ({\r\n open,\r\n setOpen,\r\n config,\r\n language,\r\n changeBackground,\r\n culture,\r\n}) => {\r\n const ref = useRef(null);\r\n useClickDetector(ref, open, setOpen);\r\n useEffect(() => {});\r\n const location = useLocation();\r\n\r\n const variants = {\r\n show: {\r\n opacity: 1,\r\n x: \"0%\",\r\n y: \"0\",\r\n transition: {\r\n delay: 0.1,\r\n duration: 0.25,\r\n ease: \"easeInOut\",\r\n },\r\n },\r\n hidden: {\r\n opacity: 0,\r\n x: \"-100%\",\r\n y: \"0\",\r\n transition: {\r\n delay: 0.25,\r\n duration: 0.4,\r\n ease: \"easeInOut\",\r\n },\r\n },\r\n };\r\n\r\n const overlayVariant = {\r\n show: {\r\n opacity: 1,\r\n transition: {\r\n delay: 0,\r\n duration: 0.2,\r\n ease: \"easeInOut\",\r\n },\r\n },\r\n hidden: {\r\n opacity: 0,\r\n transition: {\r\n delay: 0.3,\r\n duration: 0.5,\r\n ease: \"easeInOut\",\r\n },\r\n },\r\n };\r\n\r\n useEffect(() => {\r\n setOpen(false);\r\n }, [location.pathname]);\r\n\r\n return (\r\n \r\n \r\n {open && (\r\n <>\r\n \r\n \r\n setOpen(!open)}\r\n style={{\r\n position: \"absolute\",\r\n top: 0,\r\n left: \"1rem\",\r\n width: \"5rem\",\r\n height: \"5rem\",\r\n background: \"none\",\r\n border: \"none\",\r\n zIndex: \"2900\",\r\n }}\r\n aria-expanded={open}\r\n aria-label={language.Close}\r\n />\r\n \r\n
    \r\n \r\n
    \r\n {config?.showLogin ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MobileMenuOverlay;\r\n","import React, { useState } from \"react\";\r\nimport SearchV2 from \"../../common/Search/SearchV2\";\r\nimport Cart from \"../cart\";\r\nimport CartV2 from \"../CartV2\";\r\nimport HamburgerMenu from \"./HamburgerMenu\";\r\nimport LogoV2 from \"./LogoV2\";\r\nimport MobileMenuOverlay from \"./MobileMenuOverlay\";\r\n\r\nconst MobileMenuV2 = ({ changeBackground, config, language, culture }) => {\r\n const [open, setOpen] = useState(false);\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n
    \r\n {!open ? (\r\n <>\r\n \r\n \r\n {config?.useCartDrawer ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default MobileMenuV2;\r\n","import React from \"react\";\r\nimport SearchV2 from \"../../common/Search/SearchV2\";\r\nimport Settings from \"../../Settings\";\r\nimport Cart from \"../cart\";\r\nimport CartV2 from \"../CartV2\";\r\nimport CountdownContainer from \"../CountdownContainer\";\r\nimport Login from \"../login\";\r\nimport LogoV2 from \"./LogoV2\";\r\nimport MobileMenuV2 from \"./MobileMenuV2\";\r\nimport NavContentV2 from \"./NavContentV2\";\r\nimport \"./styles.css\";\r\n\r\nconst NavV2 = React.memo(({ changeBackground, config, language, culture }) => {\r\n const headerStyling = () => {\r\n if (config?.useFixedHeader) {\r\n return \"headerFixed\";\r\n } else {\r\n return \"headerDefault\";\r\n }\r\n };\r\n const headerHeight = () => {\r\n if (config?.headerHeight) {\r\n return config?.headerHeight + \"px\";\r\n } else {\r\n return \"70px\";\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {config?.useTransparentHeader ? (\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 {config?.useCartDrawer ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n {config?.showLogin ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n {config?.useCartDrawer ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {config?.showLogin ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nexport default NavV2;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport NavV2 from \"./NavV2\";\r\nimport \"./styles.css\";\r\n\r\nconst HeaderV2 = ({ config, language, culture }) => {\r\n const [changeBackground, setChangeBackground] = useState(false);\r\n const [height, setHeight] = useState(null);\r\n const [homepage, setHomepage] = useState(\"\");\r\n const ref = useRef(null);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n setHeight(ref.current.offsetHeight + \"px\");\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n let url =\r\n window.location.pathname === \"/ticketshop/\" ||\r\n window.location.pathname === \"/ticketshop\";\r\n setHomepage(url);\r\n }, [window.location.pathname]);\r\n\r\n const scrollListener = (e) => {\r\n let scroll;\r\n scroll = window.scrollY;\r\n let siteHeadingHeight = localStorage.getItem(\"height\");\r\n let innerHeight = window.innerHeight;\r\n if (siteHeadingHeight) {\r\n if (siteHeadingHeight && siteHeadingHeight * 0.5 <= scroll) {\r\n setChangeBackground(true);\r\n } else {\r\n setChangeBackground(false);\r\n }\r\n }\r\n if (!siteHeadingHeight) {\r\n if (innerHeight && innerHeight * 0.3 <= scroll) {\r\n setChangeBackground(true);\r\n } else {\r\n setChangeBackground(false);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (\r\n config?.useFixedHeader &&\r\n config?.useTransparentHeader &&\r\n (homepage || !config?.showSiteHeadingOnlyOnLanding)\r\n ) {\r\n setChangeBackground(false);\r\n window.addEventListener(\"scroll\", scrollListener);\r\n return () => {\r\n window.removeEventListener(\"scroll\", scrollListener);\r\n };\r\n }\r\n if (!homepage && config?.showSiteHeadingOnlyOnLanding) {\r\n setChangeBackground(true);\r\n return () => {\r\n window.removeEventListener(\"scroll\", scrollListener);\r\n };\r\n }\r\n if (config?.useTransparentHeader) {\r\n setChangeBackground(false);\r\n }\r\n }, [homepage]);\r\n\r\n const headerHeight = () => {\r\n if (config?.headerHeight) {\r\n return config?.headerHeight;\r\n } else {\r\n return \"auto\";\r\n }\r\n };\r\n return (\r\n <>\r\n {config?.useTransparentHeader && config?.useSiteHeading ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default HeaderV2;\r\n","import React from \"react\";\r\nimport HeaderLayout from \"../Styles/HeaderLayout\";\r\nimport HeaderContent from \"../Styles/HeaderContent\";\r\nimport MobileMenu from \"./mobileMenu\";\r\nimport Logo from \"./logo\";\r\nimport Login from \"./login\";\r\nimport Cart from \"./cart\";\r\nimport CountdownContainer from \"./CountdownContainer\";\r\nimport Settings from \"../Settings\";\r\nimport SearchV2 from \"../common/Search/SearchV2\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport HeaderV2 from \"./HeaderV2/HeaderV2\";\r\n\r\nconst Header = (props) => {\r\n const { config, language, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n return (\r\n <>\r\n \r\n {language.SkipToMainContent}\r\n \r\n {config?.useNewHeader ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useLocation } from \"@reach/router\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Link } from \"@reach/router\";\r\nimport slugify from \"../slugify\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport { DataContext } from \"../dataProvider\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n navWrapper: {\r\n position: \"fixed\",\r\n zIndex: 995,\r\n top: 0,\r\n backgroundColor: \"#fff\",\r\n width: \"100vw\",\r\n \"@media screen and (max-width: 667px)\": {\r\n height: \"auto\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n height: (p) => (p.headerHeight ? `${p.headerHeight + 64}px` : \"\"),\r\n },\r\n },\r\n nav: {\r\n alignItems: \"center\",\r\n backgroundColor: theme.app.background[1],\r\n borderBottom: `1px solid ${theme.app.borderColor}`,\r\n color: theme.app.color,\r\n display: \"flex\",\r\n height: \"64px\",\r\n zIndex: 998,\r\n\r\n // Fixed subheader settings\r\n position: \"fixed\",\r\n width: \"100%\",\r\n\r\n [theme.breakpoints.up(\"sm\")]: {\r\n top: (p) => (p.headerHeight ? `${p.headerHeight}px` : \"64px\"),\r\n },\r\n\r\n \"@media(max-width: 576px)\": {\r\n display: \"none\",\r\n },\r\n },\r\n tabs: {\r\n width: \"100%\",\r\n \"&:focus\": {\r\n border: \"3px solid black\",\r\n },\r\n },\r\n tabsInner: {\r\n justifyContent: \"center\",\r\n \"@media(max-width: 577px)\": {\r\n justifyContent: \"flex-start\",\r\n },\r\n },\r\n indicator: {\r\n backgroundColor: \"var(--nav-active-color)\",\r\n },\r\n tab: {\r\n maxWidth: \"none\",\r\n fontSize: \"0.8125rem\",\r\n },\r\n}));\r\n\r\nconst isPageContainsOnlyOneEventType = (page) => {\r\n if (page.events && page.events.length === 1) {\r\n return true;\r\n }\r\n};\r\n\r\nconst Nav = () => {\r\n const { data } = useContext(DataContext);\r\n const location = useLocation();\r\n const { config, language, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const classes = useStyles({ headerHeight: config.headerHeight });\r\n\r\n const { pages, showAllProducts, useAllEvents, useNav } = config;\r\n\r\n const [bookingSlugs, setBookingSlugs] = useState();\r\n\r\n useEffect(() => {\r\n if (config.ticketConfigurator !== undefined) {\r\n let bookingLinks = config?.ticketConfigurator;\r\n const getBookingSlugs = bookingLinks.reduce((acc, curr) => {\r\n if (!curr?.disabledNav && !curr?.disabled) {\r\n acc.push({\r\n name: curr.name,\r\n slug: curr.slug,\r\n translations: curr?.translations?.filter(\r\n (el) => el.culture === culture\r\n ),\r\n });\r\n }\r\n return acc;\r\n }, []);\r\n setBookingSlugs(getBookingSlugs);\r\n }\r\n }, []);\r\n\r\n const LinkTab = ({ classname, ...rest }) => (\r\n \r\n );\r\n\r\n const ExternalLinkTab = ({ classname, ...rest }) => (\r\n \r\n );\r\n const getAllLinks = () => {\r\n let links = [\r\n `${process.env.PUBLIC_URL}/`,\r\n `${process.env.PUBLIC_URL}/all-products`,\r\n ];\r\n if (data?.allotments?.length > 0 && useAllEvents) {\r\n links = [...`${process.env.PUBLIC_URL}/all-events`];\r\n }\r\n\r\n pages.forEach((n) => {\r\n links = [...links, `${process.env.PUBLIC_URL}/${slugify(n.name)}`];\r\n });\r\n return links;\r\n };\r\n if (!useNav) return null;\r\n\r\n const getArticleBookingLinks = (item) => {\r\n if (item?.translations) {\r\n const filtered = item?.translations?.filter(\r\n (el) => el.culture === culture\r\n );\r\n return filtered[0]?.name;\r\n } else {\r\n return item?.name;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n {config.useLandingPage && !config.homeLink && (\r\n \r\n )}\r\n {config.useLandingPage && config.homeLink && (\r\n \r\n )}\r\n {bookingSlugs &&\r\n bookingSlugs.map((bookingPage, i) => (\r\n \r\n ))}\r\n {config.articleBookingConfigurator &&\r\n config.articleBookingConfigurator.map((el, i) => {\r\n if (el?.disabled || el?.disabledNav) return null;\r\n return (\r\n \r\n );\r\n })}\r\n\r\n {pages.map((page, index) => {\r\n if (page.disabled) return null;\r\n let slug = `${process.env.PUBLIC_URL}/${slugify(page.name)}`;\r\n\r\n if (\r\n isPageContainsOnlyOneEventType(page) &&\r\n config.useAutoNavigationOnSingleEvent\r\n ) {\r\n slug = `${process.env.PUBLIC_URL}/events/${slugify(page.name)}`;\r\n }\r\n const name = language.Nav\r\n ? language?.Nav[page.name] || page.name\r\n : page.name;\r\n return (\r\n \r\n );\r\n })}\r\n {showAllProducts && (\r\n 0\r\n ? language.All_Products\r\n : language.GroupNav.Products\r\n }\r\n to={`${process.env.PUBLIC_URL}/all-products`}\r\n value={`${process.env.PUBLIC_URL}/all-products`}\r\n />\r\n )}\r\n {data?.allotments?.length > 0 && useAllEvents && (\r\n 0\r\n ? language.All_Events\r\n : language.GroupNav.Events\r\n }\r\n to={`${process.env.PUBLIC_URL}/all-events`}\r\n value={`${process.env.PUBLIC_URL}/all-events`}\r\n />\r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Nav;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#CCCCCC;}\\r\\n\\t.st1{fill:none;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"photo\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st0\",\n cx: 200.18,\n cy: 201.09,\n r: 26.7\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M175.18,117.79l-15.3,16.7h-26.4c-9.2,0-16.7,7.5-16.7,16.7v100c0,9.2,7.5,16.7,16.7,16.7h133.3 c9.2,0,16.7-7.5,16.7-16.7v-100.1c0-9.2-7.5-16.7-16.7-16.7h-26.4l-15.2-16.6H175.18z M200.18,242.79c-23,0-41.7-18.7-41.7-41.7 s18.7-41.7,41.7-41.7s41.7,18.7,41.7,41.7S223.18,242.79,200.18,242.79z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M100.18,101.09h200v200h-200V101.09z\"\n}));\n\nvar SvgPlaceholder = function SvgPlaceholder(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Lager_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 400 400\",\n style: {\n enableBackground: \"new 0 0 400 400\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPlaceholder, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/placeholder.700bb90f.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Collapse from \"@material-ui/core/Collapse\";\r\nimport { Context, CLOSE_CART, CART_ARTICLE_REMOVE } from \"../../context\";\r\nimport AddedProduct from \"./addedProduct\";\r\nimport { SaleContext } from \"../common/saleProvider\";\r\nimport { useSelector } from \"react-redux\";\r\nimport DrawerCart from \"../Drawer\";\r\n\r\nconst useStyles = makeStyles({\r\n cartContainer: {\r\n position: \"fixed\",\r\n top: \"var(--header-height)\",\r\n right: \"0px\",\r\n zIndex: 1200,\r\n },\r\n paper: {\r\n width: \"100%\",\r\n },\r\n});\r\n\r\nlet cartTimeout;\r\nconst Cart = (props) => {\r\n const classes = useStyles();\r\n const [prevQuantity, setPrevQuantity] = useState(null);\r\n const [abortClose, setAbortClose] = useState(false);\r\n const navigate = useNavigate();\r\n const {\r\n state: { cartOpen },\r\n dispatch,\r\n } = useContext(Context);\r\n const { config } = useSelector((state) => ({\r\n config: state.config,\r\n }));\r\n const saleContext = useContext(SaleContext);\r\n\r\n const { sale } = saleContext.state;\r\n useEffect(() => {\r\n if (cartOpen && config?.timeoutDrawer) {\r\n if (abortClose) {\r\n window.clearTimeout(cartTimeout);\r\n } else {\r\n cartTimeout = window.setTimeout(() => {\r\n dispatch({ type: CLOSE_CART });\r\n }, 5000);\r\n }\r\n }\r\n }, [cartOpen, abortClose, dispatch]);\r\n\r\n if (!sale) return
    ;\r\n return (\r\n <>\r\n 0 && cartOpen}\r\n className={classes.cartContainer}\r\n onMouseEnter={() => setAbortClose(true)}\r\n onMouseLeave={() => {\r\n dispatch({ type: CLOSE_CART });\r\n setAbortClose(false);\r\n }}\r\n onClick={() => navigate(`${process.env.PUBLIC_URL}/cart`)}\r\n onExited={() => dispatch({ type: CART_ARTICLE_REMOVE })}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Cart;\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport Markdown from \"react-markdown\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport useLocalStorage from \"../../Header/HeaderV2/hooks/useLocalStorage\";\r\nlet source;\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n height: \"45vh\",\r\n },\r\n});\r\n\r\nconst SiteHeading = (props) => {\r\n const classes = useStyles();\r\n const [text, setText] = useState(\"\");\r\n const [heroHeight, setHeroHeight] = useLocalStorage(\"height\", \"\")\r\n const { culture, config } = useSelector((state) => ({\r\n culture: state.cookies[STATE_CULTURE],\r\n config: state.config,\r\n }));\r\n\r\n const ref = useRef(null);\r\n\r\n useEffect(() => {\r\n if (config?.showSiteHeadingOnlyOnLanding) {\r\n if (ref.current && window.location.pathname === \"/ticketshop/\") {\r\n let heroHeight = ref.current.offsetHeight;\r\n localStorage.setItem(\"height\", heroHeight);\r\n setHeroHeight(heroHeight)\r\n }\r\n }\r\n }, [ref]);\r\n\r\n useEffect(() => {\r\n if (config.useSiteHeading) {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}siteheading.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data));\r\n return () => source.cancel(\"Site heading Is Unmounting\");\r\n }\r\n }, [culture, config.descriptionFolderUrl, config.useSiteHeading]);\r\n\r\n if (!config.useSiteHeading) return null;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SiteHeading;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport Markdown from \"react-markdown\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport { useElementSize, useLocalStorage } from \"@mantine/hooks\";\r\n\r\nlet source;\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n marginTop: \"16px\",\r\n },\r\n bottomText: {\r\n textAlign: \"center\",\r\n fontSize: \"0.8rem\",\r\n marginBottom: \"-1rem\",\r\n },\r\n});\r\n\r\nconst Footer = (props) => {\r\n const classes = useStyles();\r\n const [text, setText] = useState(\"\");\r\n const { culture, config } = useSelector((state) => ({\r\n culture: state.cookies[STATE_CULTURE],\r\n config: state.config,\r\n }));\r\n\r\n const { ref, height } = useElementSize();\r\n const [value, setValue] = useLocalStorage({\r\n key: \"footerHeight\",\r\n defaultValue: 0,\r\n });\r\n useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}${config.descriptionFolderUrl}footer.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data));\r\n return () => source.cancel(\"Footer Is Unmounting\");\r\n }, [culture, config.descriptionFolderUrl]);\r\n\r\n useEffect(() => {\r\n if (height > 0) {\r\n setValue(height);\r\n }\r\n }, [height]);\r\n\r\n return (\r\n
    \r\n \r\n {config?.showFooterBottomText && (\r\n
    \r\n \r\n Skapad av Entry Event Sweden AB\r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import * as React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport axios from \"axios\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Markdown from \"react-markdown\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\n\r\nlet source;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n left: {\r\n position: \"relative\",\r\n \"@media(max-width: 1000px)\": {\r\n display: \"none\",\r\n },\r\n },\r\n}));\r\n\r\nconst Left = (props) => {\r\n const classes = useStyles();\r\n const [text, setText] = React.useState(\"\");\r\n const { config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n React.useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}/left.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data));\r\n return () => source.cancel(\"Component Is Unmounting\");\r\n }, [culture, config.descriptionFolderUrl]);\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Left;\r\n","import * as React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport axios from \"axios\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Markdown from \"react-markdown\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\n\r\nlet source;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n right: {\r\n position: \"relative\",\r\n \"@media(max-width: 1000px)\": {\r\n display: \"none\",\r\n },\r\n },\r\n}));\r\n\r\nconst Right = (props) => {\r\n const classes = useStyles();\r\n const [text, setText] = React.useState(\"\");\r\n const { config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n React.useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}/right.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data));\r\n return () => source.cancel(\"Component Is Unmounting\");\r\n }, [culture, config.descriptionFolderUrl]);\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Right;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport Markdown from \"react-markdown\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport clsx from \"clsx\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport Cart from \"../../components/cart/cartPage\";\r\n\r\nlet source;\r\n\r\nconst cartBelowStyles = makeStyles((theme) => ({\r\n pageContent: {\r\n color: theme.palette.color,\r\n background: theme.palette.background.paper,\r\n marginTop: \"16px\",\r\n padding: \"16px\",\r\n borderRadius: \"4px\",\r\n \"@media(max-width: 667px)\": {\r\n padding: \"0px\",\r\n },\r\n },\r\n}));\r\n\r\nconst CartPage = () => {\r\n const cartBelowClasses = cartBelowStyles();\r\n\r\n const [text, setText] = useState(\"\");\r\n const { config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n\r\n useEffect(() => {\r\n source = axios.CancelToken.source();\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}/cart-below.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data))\r\n .catch(() => {\r\n // Left blank\r\n });\r\n return () => source.cancel(\"Cart Page Is Unmounting\");\r\n }, [culture, config.descriptionFolderUrl]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {text !== undefined && text.length > 0 && (\r\n \r\n \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CartPage;\r\n","import React, { useContext, useEffect } 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 Divider from \"@material-ui/core/Divider\";\r\nimport { Context, OPEN_CART } from \"../../context\";\r\nimport { ReactComponent as Placeholder } from \"../../images/placeholder.svg\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n addedProduct: {\r\n background: theme.palette.background.paper,\r\n border: `1px solid ${theme.app.borderColor}`,\r\n borderTop: \"none\",\r\n padding: \"16px\",\r\n borderRadius: \"0 0 4px 4px\",\r\n width: \"300px\",\r\n },\r\n title: { textAlign: \"center\", color: theme.palette.text.primary },\r\n image: {\r\n width: \"200px\",\r\n margin: \"0 auto\",\r\n display: \"block\",\r\n },\r\n divider: { margin: \"16px 0 8px\" },\r\n cartTotal: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 1fr\",\r\n color: theme.palette.text.secondary,\r\n },\r\n totalText: { fontSize: \"0.8125rem\" },\r\n amount: { textAlign: \"right\", fontSize: \"0.8125rem\" },\r\n}));\r\n\r\nconst AddedProduct = (props) => {\r\n const { sale, prevQuantity, setPrevQuantity, cartOpen } = props;\r\n const { config, language, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const classes = useStyles();\r\n const { state, dispatch } = useContext(Context);\r\n const article = state.cartArticle;\r\n const { itemQuantity, sumInclVat } = sale;\r\n\r\n useEffect(() => {\r\n if (itemQuantity !== prevQuantity) {\r\n setPrevQuantity(itemQuantity);\r\n }\r\n }, [itemQuantity, prevQuantity, setPrevQuantity]);\r\n useEffect(() => {\r\n if (prevQuantity < itemQuantity && !cartOpen && article) {\r\n dispatch({ type: OPEN_CART });\r\n }\r\n }, [prevQuantity, dispatch, itemQuantity, cartOpen, article]);\r\n\r\n if (article) {\r\n article.imageUri = article.imageFilename\r\n ? `${article.apiUri}/articleimage/${article.imageFilename}`\r\n : article.eventImage\r\n ? `${article.apiUri}/allotmentimage/${article.eventImage}`\r\n : undefined;\r\n article.translatedName =\r\n article.translation?.find((t) => t.culture === culture)?.name ||\r\n article.translation?.find((t) => t.culture === \"sv-SE\")?.name ||\r\n article.name;\r\n }\r\n\r\n if (!article || article?.[0] || config?.useCartDrawer) return
    ;\r\n return (\r\n
    \r\n \r\n {language.Added_To_Cart}\r\n \r\n {article.imageUri ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {article.translatedName}\r\n \r\n \r\n
    \r\n Subtotal:\r\n {sumInclVat}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default AddedProduct;\r\n","import {\r\n clearSaleId,\r\n setSaleId,\r\n STATE_CULTURE,\r\n STATE_CURRENCY,\r\n STATE_SALE_ID,\r\n} from \"./state\";\r\nimport uuid from \"uuid\";\r\n\r\nconst callApi = (command, method, payload, message, then, cb) => {\r\n return {\r\n type: \"@EE/API_CALL\",\r\n method,\r\n command,\r\n payload,\r\n message,\r\n then,\r\n cb,\r\n };\r\n};\r\n\r\nconst saleState = (id, isActive) => {\r\n return {\r\n type: \"@EE/SALE_STATE\",\r\n id,\r\n isActive,\r\n };\r\n};\r\n\r\nexport const saleMiddleware =\r\n ({ apiUri, posId }) =>\r\n ({ dispatch, getState }) =>\r\n (next) =>\r\n (action) => {\r\n if (action.type === \"@EE/API_CALL\" && !action.promise) {\r\n const state = getState();\r\n const sale = state.sale;\r\n const language = state.language;\r\n const id = sale.id || state.cookies[STATE_SALE_ID] || uuid.v1();\r\n const uri = `${apiUri}/sales/${id}/${action.command}`;\r\n const isFormData = action.payload instanceof FormData;\r\n var headers = new Headers();\r\n var user = state.oidc.user;\r\n console.log(uri);\r\n\r\n if (user && user.access_token) {\r\n headers.append(\"Authorization\", \"Bearer \" + user.access_token);\r\n }\r\n\r\n if (!isFormData) {\r\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\r\n }\r\n\r\n const execute = () => {\r\n return fetch(uri, {\r\n method: action.method,\r\n body: isFormData\r\n ? action.payload\r\n : action.payload\r\n ? JSON.stringify(action.payload)\r\n : null,\r\n headers: headers,\r\n }).then((response) => {\r\n if (response.status === 406) {\r\n response.text().then((msg) => {\r\n action.cb(response.status, language[msg] || msg);\r\n if (msg === \"Sale is cancelled\") {\r\n console.log(\"Sale has been cancelled - forcing reload\");\r\n window.location.reload();\r\n }\r\n });\r\n } else if (response.status >= 400) {\r\n response.text().then((msg) => {\r\n action.cb(response.status, language[msg] || msg);\r\n });\r\n } else {\r\n action.cb && action.cb(response.status, \"ok\");\r\n }\r\n\r\n return response;\r\n });\r\n };\r\n\r\n const promise = sale.isActive\r\n ? execute()\r\n : fetch(`${apiUri}/pos/${posId}/sales/${id}`, {\r\n method: \"POST\",\r\n }).then((response) => {\r\n if (response.status !== 201 && response.status !== 200) {\r\n return new Promise((resolve, reject) =>\r\n reject(\"Could not create or activate sale!\")\r\n );\r\n } else {\r\n dispatch(setSaleId(id));\r\n dispatch(saleState(id, true));\r\n return execute();\r\n }\r\n });\r\n\r\n dispatch({\r\n type: action.type,\r\n promise,\r\n then: action.then,\r\n });\r\n } else {\r\n next(action);\r\n }\r\n };\r\n\r\nexport const validateSaleId = (api, reset) => (dispatch, getState) => {\r\n //Ensures current saleid is an open sale, otherwise clears from cookies\r\n var id = getState().cookies[STATE_SALE_ID];\r\n if (!id) {\r\n return;\r\n }\r\n\r\n const promise = fetch(`${api}/sales/${id}`).then((response) => {\r\n if (response.status === 410) {\r\n dispatch(clearSaleId());\r\n reset();\r\n }\r\n });\r\n\r\n return {\r\n type: \"@EE/VALIDATE_SALE_ID\",\r\n promise,\r\n };\r\n};\r\n\r\nexport const add = (model, cb) => {\r\n return callApi(\"articles\", \"POST\", model, \"Article_Added\", null, cb);\r\n};\r\n\r\nexport const addBatch = (model, cb) => {\r\n return callApi(\"articles/batch\", \"POST\", model, \"Article_Added\", null, cb);\r\n};\r\n\r\nexport const addGroupTicket = (model, cb) => {\r\n return callApi(\"multitickets\", \"POST\", model, \"Article_Added\", null, cb);\r\n};\r\n\r\nexport const addArticle = (saleData, then) => {\r\n return (dispatch) => dispatch(add(saleData, then));\r\n};\r\n\r\nexport const addArticleBatch = (saleData, then) => {\r\n return (dispatch) => dispatch(addBatch(saleData, then));\r\n};\r\n\r\nexport const addArticleGroupTicket = (saleData, then) => {\r\n return (dispatch) => dispatch(addGroupTicket(saleData, then));\r\n};\r\n\r\nexport const addAllotment = (saleData, then) => {\r\n return (dispatch) => {\r\n dispatch(add(saleData, then));\r\n };\r\n};\r\n\r\nexport const addMod = (model, cb) => {\r\n return callApi(\"modifications\", \"POST\", model, \"Article_Added\", null, cb);\r\n};\r\n\r\nexport const addModification = (model, cb) => (dispatch) =>\r\n dispatch(addMod(model, cb));\r\n\r\nexport const addFunds = (mod, cb) => {\r\n return (dispatch) => dispatch(addMod(mod, cb));\r\n};\r\n\r\nexport const setQuantity = (key, quantity) => {\r\n return callApi(`articles/${key}/quantity/${quantity}`, \"PUT\");\r\n};\r\n\r\nexport const removeArticle = (key, cb) => {\r\n return callApi(\"articles/\" + key, \"DELETE\", null, \"Article_Removed\", cb);\r\n};\r\n\r\nexport const discount = (id, info) => {\r\n return callApi(\"discount\", \"POST\", {\r\n id,\r\n info,\r\n });\r\n};\r\n\r\nexport const increaseQuantity = (key, cb) => {\r\n return callApi(\r\n `articles/${key}/increasequantity`,\r\n \"POST\",\r\n null,\r\n null,\r\n null,\r\n cb\r\n );\r\n};\r\n\r\nexport const decreaseQuantity = (key, cb) => {\r\n return callApi(\r\n `articles/${key}/decreasequantity`,\r\n \"POST\",\r\n null,\r\n null,\r\n null,\r\n cb\r\n );\r\n};\r\n\r\nexport const checkout = () => (dispatch, getState) => {\r\n var state = getState();\r\n var payload = {\r\n currency: state.cookies[STATE_CURRENCY],\r\n culture: state.cookies[STATE_CULTURE],\r\n };\r\n\r\n dispatch(\r\n callApi(\"checkout\", \"POST\", payload, null, (r) => {\r\n if (r.status === 202) {\r\n const url = r.headers.get(\"Location\");\r\n console.log(\"url\", url);\r\n window.location.assign(url);\r\n }\r\n })\r\n );\r\n};\r\n\r\nconst nextVersion = () => {\r\n return new Date().getTime();\r\n};\r\n\r\nexport const saleReducer = (state = { version: nextVersion() }, action) => {\r\n switch (action.type) {\r\n case \"@EE/API_CALL\": {\r\n var s = {\r\n ...state,\r\n version:\r\n action.readyState === \"success\" ? nextVersion() : state.version,\r\n };\r\n\r\n return s;\r\n }\r\n case \"@EE/SALE_STATE\": {\r\n return {\r\n id: action.id,\r\n isActive: action.isActive,\r\n isError: action.isError,\r\n error: action.error,\r\n version: nextVersion(),\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const addToCartTracking = (currency, products) => {\r\n if (window.dataLayer && products.length > 0) {\r\n window.dataLayer.push({\r\n event: \"add_to_cart\",\r\n ecommerce: {\r\n currencyCode: currency,\r\n add: {\r\n products: products,\r\n },\r\n },\r\n });\r\n }\r\n};\r\n\r\nexport const removeFromCartTracking = (currency, products, totalPrice) => {\r\n if (window.dataLayer) {\r\n window.dataLayer.push({\r\n event: \"remove_from_cart\",\r\n ecommerce: {\r\n currency,\r\n value: totalPrice,\r\n items: products,\r\n },\r\n });\r\n }\r\n};\r\n","import { ActionIcon, createStyles, Group, NumberInput } from \"@mantine/core\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { decreaseQuantity, increaseQuantity } from \"../../common/sale\";\r\nimport { HiMinusSm, HiPlusSm } from \"react-icons/hi\";\r\n\r\nconst useStyles = createStyles({\r\n actionButton: {\r\n borderRadius: \"50%\",\r\n border: \"none\",\r\n },\r\n actionWrapper: {\r\n backgroundColor: \"#F3F3F4\",\r\n padding: \"0rem 0.38rem\",\r\n borderRadius: \"1.25rem\",\r\n width: \"fit-content\",\r\n },\r\n});\r\nconst QuantityInput = ({ inStock, item, id, quantity, name }) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const { classes } = useStyles();\r\n const rdxDispatch = useDispatch();\r\n\r\n const increase = () => {\r\n rdxDispatch(increaseQuantity(id));\r\n };\r\n\r\n const decrease = () => {\r\n rdxDispatch(decreaseQuantity(id));\r\n };\r\n return (\r\n
    \r\n \r\n decrease()}\r\n aria-label={`${name} ${language.DecreaseQuantity}`}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n \r\n increase()}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default QuantityInput;\r\n","import { createStyles } from \"@mantine/core\";\r\nimport React from \"react\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n wrapper: {\r\n display: \"flex\",\r\n },\r\n trashIcon: {\r\n color: \"var(--header-link-color-dark)\",\r\n strokeWidth: \"2px\",\r\n stroke: \"var(--header-link-color-dark)\",\r\n width: \"2rem\"\r\n },\r\n}));\r\nconst TrashIcon = () => {\r\n const { classes } = useStyles();\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TrashIcon;\r\n","import {\r\n ActionIcon,\r\n createStyles,\r\n Divider,\r\n Grid,\r\n Image,\r\n Loader,\r\n} from \"@mantine/core\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { removeArticle, removeFromCartTracking } from \"../../common/sale\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\nimport QuantityInput from \"./QuantityInput\";\r\nimport TrashIcon from \"./TrashIcon\";\r\nimport { format } from \"date-fns\";\r\n\r\nconst useStyles = createStyles({\r\n wrapper: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n itemWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"1rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n gap: \"0.5rem\",\r\n },\r\n },\r\n image: {\r\n width: \"6rem\",\r\n height: \"5rem\",\r\n },\r\n rowWrapper: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignContent: \"space-between\",\r\n },\r\n leftWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n },\r\n textWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n paddingBottom: 0,\r\n },\r\n text: {\r\n fontWeight: \"bold\",\r\n margin: 0,\r\n lineHeight: \"normal\",\r\n marginBottom: \"0.3rem\",\r\n },\r\n textSmall: {\r\n margin: 0,\r\n paddingBottom: \"0.1rem\",\r\n lineHeight: \"normal\",\r\n fontStyle: \"italic\",\r\n fontSize: \"0.8rem\",\r\n fontWeight: 400,\r\n },\r\n rightWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"end\",\r\n },\r\n price: {\r\n fontWeight: \"bold\",\r\n margin: 0,\r\n textAlign: \"right\",\r\n },\r\n divider: {\r\n opacity: 0.5,\r\n },\r\n loadingWrapper: {\r\n opacity: 0.5,\r\n },\r\n loader: {\r\n position: \"absolute\",\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n margin: \"auto\",\r\n },\r\n hideAriaLive: {\r\n position: \"absolute\",\r\n width: \"0px\",\r\n height: \"0px\",\r\n opacity: 0,\r\n },\r\n occasionWrapper: {\r\n display: \"flex\",\r\n gap: \"0.1rem 1rem\",\r\n flexWrap: \"wrap\",\r\n },\r\n multiTicketWrapper: {\r\n display: \"flex\",\r\n gap: \"0.5rem\",\r\n paddingBottom: \"0.5rem\",\r\n },\r\n});\r\n\r\nconst DrawerItem = ({ item, sale }) => {\r\n const [loading, loadingSet] = useState(null);\r\n const [allotmentRemaining, allotmentRemainingSet] = useState(null);\r\n const { config, culture, language, currency } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const { data } = useContext(DataContext);\r\n const { classes } = useStyles();\r\n const rdxDispatch = useDispatch();\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n const image = `${uri}/articleimage/${item?.article?.imageFilename}`;\r\n\r\n const remove = () => {\r\n loadingSet(true);\r\n rdxDispatch(\r\n removeArticle(item.key, (cb, msg) => {\r\n if (cb.status === 200) {\r\n const reducedItem = {\r\n id: item.article.plu,\r\n quantity: item.quantity,\r\n price: item.pricePerPiece.amountInclVat,\r\n name: item.article.name,\r\n };\r\n removeFromCartTracking(\r\n currency,\r\n reducedItem,\r\n item.totalPrice.amountInclVat\r\n );\r\n }\r\n })\r\n );\r\n };\r\n\r\n const getName = () => {\r\n const getTranslation = item?.article?.translation.filter(\r\n (el) => el.culture === culture\r\n );\r\n return getTranslation?.[0]?.name;\r\n };\r\n\r\n const getStock =\r\n item.article.plu &&\r\n data &&\r\n data.articles.filter((el) => el.plu === item.article.plu)?.[0]?.inStock;\r\n\r\n const allotment =\r\n item.allotmentId &&\r\n data &&\r\n data.allotments.reduce((acc, curr) => {\r\n if (curr.id === item.allotmentId) {\r\n let occasion = curr.occasions.filter((el) => el.time === item.occasion);\r\n acc = occasion;\r\n }\r\n return acc;\r\n }, {});\r\n\r\n useEffect(() => {\r\n if (allotment && allotment.length > 0) {\r\n allotmentRemainingSet(allotment[0].remaining);\r\n }\r\n }, [allotment]);\r\n\r\n useEffect(() => {\r\n loadingSet(false);\r\n return () => loadingSet(null);\r\n }, [sale.items]);\r\n\r\n return (\r\n
    \r\n
    \r\n {loading && }\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    {getName()}

    \r\n {item?.ticketOwners?.[0]?.name && (\r\n

    \r\n {item?.ticketOwners?.[0]?.name}\r\n

    \r\n )}\r\n
    \r\n {item?.occasion && (\r\n

    \r\n {format(new Date(item?.occasion), \"yyyy-MM-dd HH:mm\")}\r\n

    \r\n )}\r\n
    \r\n {item?.isMultiTicket &&\r\n item?.multiTickets.map((ticket) => (\r\n \r\n {ticket.categoryName} x {ticket.quantity}\r\n

    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n {loading && (\r\n
    \r\n {language.Removed}\r\n
    \r\n )}\r\n remove()}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n

    \r\n {item.totalPriceInclVat}\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 DrawerItem;\r\n","import { createStyles } from \"@mantine/core\";\r\nimport React, { useCallback, useEffect, useState } from \"react\";\r\nimport DrawerItem from \"./DrawerItem\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nconst useStyles = createStyles({\r\n wrapper: {\r\n marginTop: \"1rem\",\r\n },\r\n});\r\n\r\nconst DrawerList = ({ sale }) => {\r\n const [items, itemsSet] = useState([]);\r\n const { classes } = useStyles();\r\n const shippingArticle = useCallback(() => {\r\n const filter = sale.items.filter(\r\n (el) => el.type === \"shipping_fee\" || el.type === \"service_fee\"\r\n );\r\n if (filter) {\r\n const filterOutShipping = sale.items.filter((el) =>\r\n filter.every((ele) => el.key !== ele.key)\r\n );\r\n return itemsSet(filterOutShipping);\r\n } else {\r\n return itemsSet(sale.items);\r\n }\r\n }, [sale]);\r\n\r\n useEffect(() => {\r\n shippingArticle();\r\n }, [sale.items]);\r\n\r\n return (\r\n <>\r\n {items && (\r\n
    \r\n
    \r\n
    \r\n {items.length > 0 &&\r\n items.map((el, i) => (\r\n \r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DrawerList;\r\n","import React from \"react\";\r\n\r\nconst AlertIcon = () => {\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\nexport default AlertIcon;\r\n","import { Alert, createStyles } from \"@mantine/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport AlertIcon from \"./AlertIcon\";\r\nimport axios from \"axios\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport Markdown from \"react-markdown\";\r\n\r\nconst useStyles = createStyles({\r\n alert: {\r\n margin: \"1rem 0\",\r\n paddingBottom: \"1rem\",\r\n },\r\n alertIconWrapper: {\r\n \".mantine-Alert-icon\": {\r\n pointerEvents: \"none\",\r\n },\r\n },\r\n});\r\nconst DrawerAlert = () => {\r\n const [alertMsg, alertMsgSet] = useState(null);\r\n const { language, config, culture } = useSelector((state) => ({\r\n language: state.language,\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const { classes } = useStyles();\r\n\r\n useEffect(() => {\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/ee-static/shop/${config.shopName}/Texts/cart-below.${culture}.md`\r\n )\r\n .then((data) => alertMsgSet(data.data))\r\n .catch((error) => console.log(error));\r\n }, []);\r\n return (\r\n alertMsg && (\r\n
    \r\n }\r\n title={language.CartDrawerAlertTitle}\r\n color=\"red.9\"\r\n radius=\"md\"\r\n className={classes.alertIconWrapper}\r\n role=\"complementary\"\r\n >\r\n \r\n \r\n
    \r\n )\r\n );\r\n};\r\n\r\nexport default DrawerAlert;\r\n","import { Button, createStyles } from \"@mantine/core\";\r\nimport React, { useCallback, useContext, useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport ReactGA from \"react-ga\";\r\nimport {\r\n STATE_CULTURE,\r\n STATE_CURRENCY,\r\n STATE_SALE_ID,\r\n} from \"../../common/state\";\r\nimport { isItReal, pixelCheckoutData } from \"../../common/util\";\r\nimport { checkout } from \"../../common/sale\";\r\nimport { CLOSE_CART, Context } from \"../../context\";\r\n\r\nconst useStyles = createStyles({\r\n footer: {\r\n borderTop: \"1px solid lightgrey\",\r\n paddingBottom: \"1rem\",\r\n },\r\n textWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n padding: \"1.25rem 0rem\",\r\n },\r\n shippingWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n margin: \"-1.25rem 0 .8rem 0\",\r\n paddingBottom: \"0.25rem\",\r\n fontSize: \"1rem\",\r\n h4: {\r\n fontSize: \"1rem\",\r\n },\r\n },\r\n toPay: {\r\n padding: 0,\r\n fontSize: \"1.25rem\",\r\n },\r\n sum: {\r\n padding: 0,\r\n fontSize: \"1.25rem\",\r\n },\r\n continueShopping: {\r\n marginTop: \"1rem\",\r\n marginBottom: \"1rem\",\r\n },\r\n});\r\nconst DrawerFooter = ({ sale }) => {\r\n const { language, currency, config, saleId, culture } = useSelector(\r\n (state) => ({\r\n language: state.language,\r\n currency: state.cookies[STATE_CURRENCY],\r\n config: state.config,\r\n saleId: state.cookies[STATE_SALE_ID],\r\n culture: state.cookies[STATE_CULTURE],\r\n })\r\n );\r\n const { classes } = useStyles();\r\n const [cart, setCart] = useState([]);\r\n const rdxDispatch = useDispatch();\r\n const { dispatch } = useContext(Context);\r\n const shippingCost = useCallback(() => {\r\n const shipping = sale.items.filter((el) => el.type === \"shipping_fee\");\r\n if (shipping.length > 0) {\r\n return (\r\n
    \r\n

    {language.ShippingCost}

    \r\n

    {shipping?.[0]?.totalPriceInclVat}

    \r\n
    \r\n );\r\n }\r\n }, [sale]);\r\n const serviceFee = useCallback(() => {\r\n const serviceFee = sale.items.filter((el) => el.type === \"service_fee\");\r\n if (serviceFee.length > 0) {\r\n return (\r\n
    \r\n

    {language.ServiceFee}

    \r\n

    {serviceFee?.[0]?.totalPriceInclVat}

    \r\n
    \r\n );\r\n }\r\n }, [sale]);\r\n\r\n const productPrice = (item) => {\r\n if (item && item.length > 0) {\r\n const regex = /[$€£kr]/g;\r\n let newPrice = item.replace(regex, \"\");\r\n if (newPrice.trim().split(\".\")[1] === \"00\") {\r\n return newPrice.split(\".\")[0];\r\n } else {\r\n return newPrice;\r\n }\r\n }\r\n };\r\n\r\n const trackReduceCart = Object.values(\r\n cart.reduce((acc, curr) => {\r\n acc[curr.key] = {\r\n id: curr.article.plu,\r\n quantity: curr.quantity,\r\n price: curr.pricePerPiece.amountInclVat,\r\n name: curr.article.name,\r\n };\r\n return acc;\r\n }, {})\r\n );\r\n\r\n const goToCheckoutTracking = () => {\r\n const hasBegun = localStorage.getItem(\"hasBegunCheckout\");\r\n const saleId = sale.id;\r\n if (window.dataLayer && hasBegun !== saleId) {\r\n window.dataLayer.push({\r\n event: \"begin_checkout\",\r\n ecommerce: {\r\n currency,\r\n value: parseFloat(\r\n productPrice(sale.sumInclVat.replace(/\\s/g, \"\").replace(\",\", \".\"))\r\n ),\r\n items: trackReduceCart,\r\n },\r\n });\r\n }\r\n };\r\n\r\n const goToCheckout = () => {\r\n if (sale) {\r\n sale.items.map((item) => {\r\n const { name, plu } = item.article;\r\n const gaItem = {\r\n name,\r\n sku: plu,\r\n price: item.pricePerPiece.amountInclVat,\r\n quantity: item.quantity,\r\n currency,\r\n saleId,\r\n };\r\n ReactGA.plugin.require(\"ecommerce\");\r\n ReactGA.plugin.execute(\"ecommerce\", \"addItem\", gaItem);\r\n return ReactGA.plugin.execute(\"ecommerce\", \"send\");\r\n });\r\n if (config.facebookPixelId && isItReal(\"pixel\", config.facebookPixelId)) {\r\n pixelCheckoutData(sale.items, currency);\r\n }\r\n }\r\n goToCheckoutTracking();\r\n localStorage.setItem(\"hasBegunCheckout\", sale.id);\r\n return rdxDispatch(checkout());\r\n };\r\n\r\n useEffect(() => {\r\n if (sale && sale.items.length > 0) {\r\n setCart(sale.items);\r\n }\r\n }, [sale]);\r\n\r\n return (\r\n
    \r\n
    \r\n

    {language.ToPay}

    \r\n

    {sale?.sumInclVat}

    \r\n
    \r\n {shippingCost()}\r\n {serviceFee()}\r\n dispatch({ type: CLOSE_CART })}\r\n >\r\n {language.ArticleBooking.ModalSecondaryButton}\r\n \r\n goToCheckout()}\r\n >\r\n {language.GoToCheckout}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default DrawerFooter;\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport { createStyles, Drawer, Portal, useMantineTheme } from \"@mantine/core\";\r\nimport { CLOSE_CART, Context, OPEN_CART } from \"../../context\";\r\nimport { useSelector } from \"react-redux\";\r\nimport \"./styles.css\";\r\nimport DrawerList from \"./DrawerList\";\r\nimport DrawerAlert from \"./DrawerAlert\";\r\nimport DrawerFooter from \"./DrawerFooter\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n drawerTitle: {\r\n fontSize: \"1.5rem\",\r\n marginTop: \"-3.3rem\",\r\n marginBottom: \"2rem\",\r\n fontWeight: 700,\r\n },\r\n cart: {\r\n overflowY: \"auto\",\r\n flexDirection: \"column\",\r\n display: \"flex\",\r\n \"@media screen and (max-width: 768px)\": {\r\n width: \"90vw !important\",\r\n },\r\n },\r\n cartBody: {},\r\n itemWrapper: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n marginTop: \"-1rem\",\r\n },\r\n}));\r\n\r\nconst DrawerCart = ({ sale, prevQuantity, setPrevQuantity, cartOpen }) => {\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const theme = useMantineTheme();\r\n const { dispatch } = useContext(Context);\r\n const { classes } = useStyles();\r\n\r\n useEffect(() => {\r\n if (\r\n sale?.itemQuantity &&\r\n prevQuantity &&\r\n sale?.itemQuantity !== prevQuantity\r\n ) {\r\n setPrevQuantity(sale?.itemQuantity);\r\n }\r\n }, [sale, prevQuantity, setPrevQuantity]);\r\n\r\n useEffect(() => {\r\n if (prevQuantity !== null && sale?.itemQuantity !== 0 && !cartOpen) {\r\n dispatch({ type: OPEN_CART });\r\n }\r\n }, [sale]);\r\n\r\n if (prevQuantity === null || !config.useCartDrawer) return null;\r\n\r\n return (\r\n \r\n dispatch({ type: CLOSE_CART })}\r\n padding=\"xl\"\r\n size=\"xl\"\r\n position=\"right\"\r\n transitionDuration={400}\r\n overlayColor={theme.colors.dark[9]}\r\n overlayOpacity={0.3}\r\n className={classes.cart}\r\n aria-label={`${language.CartIsOpen}, ${language.Cart_Quantity} ${sale?.itemQuantity} ${language.Articles}`}\r\n aria-describedby=\"drawer-body\"\r\n closeButtonLabel={language.CloseCart}\r\n withinPortal={false}\r\n >\r\n

    {language.Cart}

    \r\n
    \r\n
    \r\n \r\n {sale?.items.length === 0 &&

    {language.EmptyCart}

    }\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default DrawerCart;\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { Link } from \"@reach/router\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { motion } from \"framer-motion\";\r\nimport {\r\n STATE_COOKIEBANNER,\r\n setCookieBanner,\r\n setConsent,\r\n STATE_CONSENT,\r\n} from \"../../common/state\";\r\nimport { Title } from \"@mantine/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n maxWidth: \"700px\",\r\n position: \"fixed\",\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n backgroundColor: \"#f8f8f8\",\r\n margin: \"2rem auto\",\r\n borderRadius: \"20px\",\r\n textAlign: \"left\",\r\n color: \"black\",\r\n alignItems: \"center\",\r\n padding: \"2rem\",\r\n zIndex: 10000,\r\n },\r\n cookieText: {\r\n textAlign: \"left\",\r\n },\r\n cookieButtonContainer: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n actionButtonContainer: {\r\n \"& Button\": {\r\n margin: \"0 0.5rem\",\r\n padding: \"0.55rem 1rem\",\r\n textWeight: \"600\",\r\n borderRadius: \"10px\",\r\n\r\n [theme.breakpoints.down(\"sm\")]: {\r\n marginTop: \"1rem\",\r\n marginBottom: \"1rem\",\r\n },\r\n },\r\n },\r\n}));\r\n\r\nconst CookieBanner = (props) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const handleClick = () => dispatch(setCookieBanner());\r\n const getConsentValue = useSelector((state) => state.cookies[STATE_CONSENT]);\r\n const language = useSelector((state) => state.language);\r\n const showConsentBanner = useSelector((state) => state.config);\r\n const showCookieBanner = useSelector(\r\n (state) => state.cookies[STATE_COOKIEBANNER]\r\n );\r\n const handleConsent = (value) => dispatch(setConsent(value));\r\n const handleConsentDialog = (value) => {\r\n handleConsent(value);\r\n handleClick();\r\n };\r\n if (getConsentValue !== \"null\") return null;\r\n return (\r\n <>\r\n {showCookieBanner !== \"false\" &&\r\n getConsentValue === \"null\" &&\r\n showConsentBanner.useTagmanager === true ? (\r\n \r\n \r\n {language.CookieSettings}\r\n \r\n

    \r\n {language.WeUseCookies}{\" \"}\r\n \r\n {language.Cookies}\r\n {\" \"}\r\n {language.CookieConsentBody}\r\n

    \r\n
    \r\n \r\n handleConsentDialog(false)}\r\n >\r\n {language.CookieDecline}\r\n \r\n \r\n\r\n \r\n handleConsentDialog(true)}\r\n >\r\n {language.CookieConsent}\r\n \r\n \r\n
    \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {showCookieBanner !== false &&\r\n showCookieBanner !== \"false\" &&\r\n showConsentBanner.useTagmanager === false ? (\r\n \r\n \r\n {language.CookieSettings}\r\n \r\n

    \r\n {language.FunctionalCookies}{\" \"}\r\n \r\n {language.Cookies}\r\n {\" \"}\r\n {language.OnSiteCookies}\r\n

    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CookieBanner;\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 { CLOSE_TOAST, Context } from \"../../context\";\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\nconst Content = (props) => {\r\n const classes = useStyles();\r\n const { className, message, onClose, variant } = props;\r\n const Icon = variantIcon[variant];\r\n\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 />\r\n );\r\n};\r\n\r\nconst Toast = (props) => {\r\n const {\r\n state: { toastOpen, toastText, toastVariant },\r\n dispatch,\r\n } = useContext(Context);\r\n const handleClose = () => dispatch({ type: CLOSE_TOAST });\r\n return (\r\n
    \r\n \r\n {!toastVariant ? (\r\n
    \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Toast;\r\n","import React, { useContext } from \"react\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport AlertControl from \"@material-ui/lab/Alert\";\r\nimport { Context, CLOSE_ALERT } from \"../../context\";\r\n\r\nconst Alert = (props) => {\r\n const {\r\n state: { alertOpen, alertText, alertSeverity },\r\n dispatch,\r\n } = useContext(Context);\r\n const handleClose = () => dispatch({ type: CLOSE_ALERT });\r\n return (\r\n \r\n \r\n {alertText}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Alert;\r\n","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n app: {\r\n position: \"relative\",\r\n background: theme.app.background[0],\r\n \"& ::-webkit-scrollbar\": {\r\n width: \"10px\",\r\n },\r\n \"& ::-webkit-scrollbar-track\": {\r\n \"-webkit-box-shadow\": \"inset 0 0 6px rgba(0,0,0,0.3)\",\r\n },\r\n \"& ::-webkit-scrollbar-thumb\": {\r\n backgroundColor: theme.app.scrollbar,\r\n outline: `1px solid ${theme.palette.divider}`,\r\n },\r\n },\r\n}));\r\n\r\nconst AppLayout = ({ children }) => {\r\n const classes = useStyles();\r\n return
    {children}
    ;\r\n};\r\n\r\nexport default AppLayout;\r\n","import { useState } from \"react\";\r\nconst useLocalStorage = (key, initialValue) => {\r\n // State to store our value\r\n // Pass initial state function to useState so logic is only executed once\r\n const [storedValue, setStoredValue] = useState(() => {\r\n if (typeof window === \"undefined\") {\r\n return initialValue;\r\n }\r\n try {\r\n // Get from local storage by key\r\n const item = window.localStorage.getItem(key);\r\n // Parse stored json or if none return initialValue\r\n return item ? JSON.parse(item) : initialValue;\r\n } catch (error) {\r\n // If error also return initialValue\r\n console.log(error);\r\n return initialValue;\r\n }\r\n });\r\n // Return a wrapped version of useState's setter function that ...\r\n // ... persists the new value to localStorage.\r\n const setValue = (value) => {\r\n try {\r\n // Allow value to be a function so we have same API as useState\r\n const valueToStore =\r\n value instanceof Function ? value(storedValue) : value;\r\n // Save state\r\n setStoredValue(valueToStore);\r\n // Save to local storage\r\n if (typeof window !== \"undefined\") {\r\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\r\n }\r\n } catch (error) {\r\n // A more advanced implementation would handle the error case\r\n console.log(error);\r\n }\r\n };\r\n return [storedValue, setValue];\r\n};\r\nexport default useLocalStorage;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Content from \"./content\";\r\n\r\nconst Footer = (props) => {\r\n const config = useSelector((state) => state.config);\r\n return config.useFooter ? : null;\r\n};\r\n\r\nexport default Footer;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Left from \"../Left\";\r\nimport Right from \"../Right\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n page: {\r\n // minHeight: `${theme.height - 168}px`,\r\n display: (p) => (p.useToc || p.useLeft || p.useRight ? \"grid\" : \"block\"),\r\n gridTemplateColumns: \"1fr 1000px 1fr\",\r\n maxWidth: (p) => (p.useToc ? \"100%\" : \"1100px\"),\r\n width: \"100%\",\r\n margin: \"16px auto 0\",\r\n\r\n \"@media(max-width: 667px)\": {\r\n marginTop: 0,\r\n padding: 0,\r\n },\r\n },\r\n}));\r\n\r\nconst PageLayout = ({ children, useToc }) => {\r\n const config = useSelector((state) => state.config);\r\n const classes = useStyles({\r\n useToc,\r\n useLeft: config.useLeft,\r\n useRight: config.useRight,\r\n });\r\n\r\n if (config.useLeft || (config.useRight)) {\r\n return (\r\n \r\n {config.useLeft ? :
    }\r\n {children}\r\n {config.useRight ? :
    }\r\n
    \r\n );\r\n }\r\n return (\r\n
    {children}
    \r\n );\r\n};\r\n\r\nexport default PageLayout;\r\n","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n pageContent: {\r\n color: theme.palette.color,\r\n background: theme.palette.background.paper,\r\n padding: \"16px\",\r\n borderRadius: \"4px\",\r\n \"@media(max-width: 667px)\": {\r\n padding: \"0px\",\r\n },\r\n },\r\n}));\r\n\r\nconst PageContent = ({ children }) => {\r\n const classes = useStyles();\r\n return (\r\n
    {children}
    \r\n );\r\n};\r\n\r\nexport default PageContent;\r\n","export const getProductConfig = (\r\n config,\r\n item,\r\n url,\r\n baseUrl,\r\n allotmentImage = undefined\r\n) => {\r\n const plu = item.article.plu;\r\n const isModification =\r\n !item.article.isPersonalTicket && item.ticketOwners.length > 0;\r\n const prodConf = config.productConfig.find((a) => a.plu === plu);\r\n\r\n let productGroupConfig = config.productGroupConfig.find((c) =>\r\n prodConf?.name?.includes(c?.name)\r\n );\r\n const articleImage = plu && item.article.imageFilename;\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n const imageUri =\r\n plu && item.article.imageFilename\r\n ? `${uri}/articleimage/${articleImage}`\r\n : plu && item.allotmentId\r\n ? `${uri}/allotmentimage/${allotmentImage}`\r\n : undefined;\r\n\r\n return {\r\n thumbnail: imageUri ? imageUri : undefined,\r\n slug: isModification\r\n ? null\r\n : productGroupConfig?.useGroupsAsItems\r\n ? null\r\n : item.article.isProduct\r\n ? `${baseUrl}/products/${plu}`\r\n : null,\r\n };\r\n};\r\n\r\nexport const getCartArticle = (\r\n product,\r\n config,\r\n article,\r\n eventImage = undefined\r\n) => {\r\n let productGroupConfig = config.productGroupConfig.find(\r\n (c) => c.name === product.name\r\n );\r\n\r\n const groupArticle =\r\n productGroupConfig?.useGroupsAsItems &&\r\n product.articles &&\r\n product.articles.find((a) => a.id === article);\r\n const prodConf =\r\n productGroupConfig?.useGroupsAsItems && product.articles\r\n ? config.productConfig.find((c) => c.plu === groupArticle.plu)\r\n : config.productConfig.find((c) => c.plu === product.plu);\r\n const a = productGroupConfig?.useGroupsAsItems ? groupArticle : product;\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n const imageUri = article ? `${uri}/articleimage/${article}.jpg` : undefined;\r\n if (!prodConf) return { ...a, apiUri: uri, eventImage };\r\n return {\r\n ...a,\r\n cartImage: imageUri ? imageUri : undefined,\r\n apiUri: uri,\r\n };\r\n};\r\n","import React, { useEffect, useState, useContext } from \"react\";\r\nimport moment from \"moment\";\r\nimport { Link } from \"@reach/router\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport TableContainer from \"@material-ui/core/TableContainer\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableFooter from \"@material-ui/core/TableFooter\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport RemoveIcon from \"@material-ui/icons/Delete\";\r\nimport IncreaseIcon from \"@material-ui/icons/ExpandLess\";\r\nimport DecreaseIcon from \"@material-ui/icons/ExpandMore\";\r\nimport { getProductConfig } from \"./util\";\r\nimport Placeholder from \"../../images/placeholder_thumbnail.jpg\";\r\nimport { Context, OPEN_ALERT } from \"../../context\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n maxHeight: 500,\r\n },\r\n tableRow: {\r\n \"& th\": {\r\n padding: \"2px 4px\",\r\n fontSize: \"0.8125rem\",\r\n },\r\n \"& td\": {\r\n padding: \"6px 4px\",\r\n lineHeight: 1.2,\r\n \"& button\": {},\r\n },\r\n },\r\n articleInfo: {\r\n fontSize: \"0.75rem\",\r\n lineHeight: 1.5,\r\n },\r\n iconButton: {\r\n padding: \"8px\",\r\n },\r\n footerRow: {\r\n height: \"auto\",\r\n },\r\n deleteCell: {\r\n paddingRight: \"8px\",\r\n \"&:last-child\": {\r\n paddingRight: \"8px\",\r\n },\r\n },\r\n footerCell: {\r\n padding: 0,\r\n paddingRight: \"8px\",\r\n borderBottom: \"none\",\r\n \"&:last-child\": {\r\n paddingRight: \"8px\",\r\n },\r\n },\r\n quantityCell: {\r\n textAlign: \"center\",\r\n },\r\n changeQuantity: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n \"@media(max-width: 667px)\": {\r\n display: \"grid\",\r\n },\r\n },\r\n changeQuantityText: {\r\n padding: \"0 4px\",\r\n },\r\n articleContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n articleImageContainer: {\r\n paddingRight: \"10px\",\r\n },\r\n articleImage: {\r\n maxWidth: \"100px\",\r\n borderRadius: \"4px\",\r\n },\r\n articleNameContainer: {\r\n padding: \"0 6px\",\r\n flexGrow: \"1\",\r\n },\r\n articleName: {},\r\n noWrap: {\r\n whiteSpace: \"nowrap\",\r\n },\r\n styleArticleName: {\r\n fontStyle: \"italic\",\r\n textDecoration: \"line-through\",\r\n },\r\n}));\r\n\r\nconst CartItemList = (props) => {\r\n const {\r\n sale,\r\n remove,\r\n increase,\r\n decrease,\r\n locale,\r\n culture,\r\n language,\r\n config,\r\n } = props;\r\n const {\r\n data: { allotments },\r\n } = useContext(DataContext);\r\n const classes = useStyles();\r\n const { dispatch } = useContext(Context);\r\n const fees = () => sale.items.filter((item) => item.article.isFee);\r\n const notFees = () => sale.items.filter((item) => !item.article.isFee);\r\n const [forceRerender, setForceRerender] = useState(false);\r\n\r\n const cb = (status, msg) => {\r\n if (status === 406) {\r\n return dispatch({\r\n type: OPEN_ALERT,\r\n payload: {\r\n text: language.Could_Not_Reserve,\r\n severity: \"error\",\r\n },\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (forceRerender === true) {\r\n setForceRerender(false);\r\n }\r\n }, [forceRerender]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {language.Cart_Article}\r\n \r\n {language.Cart_Quantity}\r\n \r\n {language.Cart_Price}\r\n \r\n \r\n \r\n \r\n {notFees().map((item, i) => {\r\n const allotment =\r\n item.allotmentId &&\r\n allotments.find((a) => a.id === item.allotmentId);\r\n\r\n const allotmentImage = allotment?.imageFileName;\r\n const allotmentName =\r\n allotment?.translation.find((t) => t.culture === culture)?.name ||\r\n allotment?.translation.find((t) => t.culture === \"sv-SE\")?.name ||\r\n allotment?.description;\r\n\r\n const { thumbnail, slug } = getProductConfig(\r\n config,\r\n item,\r\n config.imageFolderUrl,\r\n process.env.PUBLIC_URL,\r\n allotmentImage\r\n );\r\n\r\n const ref = React.createRef();\r\n const name =\r\n item.article.translation.find((t) => t.culture === culture)\r\n ?.name ||\r\n item.article.translation.find((t) => t.culture === \"sv-SE\")\r\n ?.name ||\r\n item.article.name;\r\n const hasOccasion = item.occasion && item.occasion.length > 0;\r\n const occasion = moment(item.occasion).isSameOrAfter(\r\n moment(),\r\n \"day\"\r\n )\r\n ? moment(item.occasion).locale(locale).format(\"lll\")\r\n : null;\r\n const hasInformation = item.information.length > 0;\r\n\r\n let styleArticleName;\r\n\r\n if (moment().isAfter(item.expires)) {\r\n styleArticleName = classes.styleArticleName;\r\n } else {\r\n styleArticleName = null;\r\n }\r\n if (\r\n moment().isAfter(sale.firstArticleExpiresAt) &&\r\n forceRerender === false\r\n ) {\r\n setForceRerender(true);\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n (ref.current.src = Placeholder)}\r\n alt=\"article\"\r\n className={clsx(\r\n classes.articleImage,\r\n \"cart__thumbnail\"\r\n )}\r\n />\r\n
    \r\n
    \r\n {slug ? (\r\n \r\n {name}\r\n \r\n ) : (\r\n \r\n {name}\r\n
    \r\n )}\r\n {hasOccasion && (\r\n \r\n {allotmentName}\r\n
    \r\n {occasion}\r\n
    \r\n )}\r\n {item.ticketOwners.map((o, i) => (\r\n \r\n {o.name}\r\n \r\n ))}\r\n {hasInformation && (\r\n \r\n {item.information}\r\n \r\n )}\r\n \r\n \r\n
    \r\n \r\n {item.canChangeQuantity ? (\r\n
    \r\n increase(item.key, cb)}\r\n className={classes.iconButton}\r\n >\r\n \r\n \r\n \r\n {item.quantity}\r\n
    \r\n decrease(item.key, () => null)}\r\n className={classes.iconButton}\r\n >\r\n \r\n \r\n \r\n ) : (\r\n \r\n {item.quantity}\r\n \r\n )}\r\n
    \r\n \r\n {item.pricePerPieceInclVat}\r\n \r\n \r\n remove(item.key)}\r\n >\r\n \r\n \r\n \r\n
    \r\n );\r\n })}\r\n
    \r\n \r\n {fees().map((fee, i) => {\r\n return (\r\n \r\n \r\n {`${fee.article.name}:`}\r\n \r\n \r\n {fee.totalPriceInclVat}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n {language.Cart_Sum}\r\n \r\n \r\n {sale.sumInclVat}\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CartItemList;\r\n","import React, { useContext } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ReactGA from \"react-ga\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {\r\n STATE_CULTURE,\r\n STATE_CURRENCY,\r\n STATE_SALE_ID,\r\n} from \"../../common/state\";\r\nimport { SaleContext } from \"../common/saleProvider\";\r\nimport {\r\n checkout,\r\n decreaseQuantity,\r\n increaseQuantity,\r\n removeArticle,\r\n} from \"../../common/sale\";\r\nimport CartItemList from \"./cartItemList\";\r\nimport { pixelCheckoutData, isItReal } from \"../../common/util\";\r\nimport { useLocation } from \"@reach/router\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n cart: {\r\n //minHeight: `${theme.height - 180}px`,\r\n minHeight: \"10px\",\r\n maxWidth: \"1000px\",\r\n width: \"100%\",\r\n margin: \"0 auto\",\r\n borderRadius: \"4px\",\r\n position: \"relative\",\r\n },\r\n actions: {\r\n height: \"60px\",\r\n borderTop: `1px solid ${theme.palette.divider}`,\r\n paddingTop: \"16px\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 1fr\",\r\n alignItems: \"center\",\r\n position: \"sticky\",\r\n top: \"100%\",\r\n },\r\n checkoutButton: { display: \"flex\", justifyContent: \"flex-end\" },\r\n}));\r\n\r\nconst Cart = (props) => {\r\n const classes = useStyles();\r\n const { state } = useContext(SaleContext);\r\n const { sale } = state;\r\n const rdxDispatch = useDispatch();\r\n const increase = (key, then) => rdxDispatch(increaseQuantity(key, then));\r\n const decrease = (key, then) => rdxDispatch(decreaseQuantity(key, then));\r\n const remove = (key) => rdxDispatch(removeArticle(key));\r\n const { language, config, locale, culture, currency, saleId } = useSelector(\r\n (state) => ({\r\n language: state.language,\r\n config: state.config,\r\n locale: state.cookies[STATE_CULTURE].substring(0, 2).toLowerCase(),\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n saleId: state.cookies[STATE_SALE_ID],\r\n })\r\n );\r\n\r\n let location = useLocation()\r\n\r\n const goToCheckout = () => {\r\n if (sale) {\r\n sale.items.map((item) => {\r\n const { name, plu } = item.article;\r\n const gaItem = {\r\n name,\r\n sku: plu,\r\n price: item.pricePerPiece.amountInclVat,\r\n quantity: item.quantity,\r\n currency,\r\n saleId,\r\n };\r\n ReactGA.plugin.require(\"ecommerce\");\r\n ReactGA.plugin.execute(\"ecommerce\", \"addItem\", gaItem);\r\n return ReactGA.plugin.execute(\"ecommerce\", \"send\");\r\n });\r\n if (config.facebookPixelId && isItReal(\"pixel\", config.facebookPixelId)) {\r\n pixelCheckoutData(sale.items, currency);\r\n }\r\n }\r\n return rdxDispatch(checkout());\r\n };\r\n return (\r\n
    \r\n {language.Cart}\r\n {sale ? (\r\n \r\n ) : (\r\n
    \r\n )}\r\n
    \r\n
    \r\n window.history.back()}\r\n id=\"goBackFromCartButton\"\r\n >\r\n {language?.Back_To_List || \"Tillbaka\"}\r\n \r\n
    \r\n
    \r\n \r\n {language?.GoToCheckout || \"Till Betalning\"}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Cart;\r\n","import React from \"react\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardActionArea from \"@material-ui/core/CardActionArea\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ReactComponent as Placeholder } from \"../../images/placeholder.svg\";\r\nimport slugify from \"../common/slugify\";\r\nimport useLocalStorage from \"../Header/HeaderV2/hooks/useLocalStorage\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n width: \"100%\",\r\n \"@media(max-width: 1024px)\": {\r\n margin: \"8px\",\r\n },\r\n },\r\n img: {\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n height: \"auto\",\r\n },\r\n content: {\r\n background: theme.palette.background.paper,\r\n borderTop: `1px solid ${theme.palette.divider}`,\r\n width: \"100%\",\r\n // height: \"100%\",\r\n display: \"grid\",\r\n alignItems: \"end\",\r\n },\r\n primary: {\r\n fontSize: \"1rem\",\r\n lineHeight: 1.1,\r\n display: \"box\",\r\n lineClamp: 2,\r\n boxOrient: \"vertical\",\r\n overflow: \"hidden\",\r\n },\r\n secondary: {\r\n fontSize: \"0.8125rem\",\r\n lineHeight: 1,\r\n },\r\n buttonDisabled: {\r\n color: \"rgba(255,255,255,0.5)!important\",\r\n },\r\n button: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n // height: \"100%\",\r\n justifyContent: \"flex-start\",\r\n },\r\n}));\r\n\r\nconst CardItem = ({ item, slug }) => {\r\n const [selected, setSelected] = useLocalStorage();\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n let itemSlug =\r\n item?.eventCalendar === true\r\n ? `${process.env.PUBLIC_URL}/tickets/${slugify(item.name)}`\r\n : item?.articleBooking === true\r\n ? `${process.env.PUBLIC_URL}/booking/${slugify(item.name)}`\r\n : slug\r\n ? slug\r\n : item?.externalLink\r\n ? item?.externalLink\r\n : `${process.env.PUBLIC_URL}/${slugify(item.name)}`;\r\n return (\r\n \r\n {item?.externalLink ? (\r\n \r\n \r\n {item.image ? (\r\n \"product\"\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {item?.text?.primary\r\n ? item?.text?.primary\r\n : \"Add landing primary text in language config\"}\r\n \r\n \r\n {item?.text?.secondary\r\n ? item?.text.secondary\r\n : \"Add landing secondary text in language config\"}\r\n \r\n \r\n \r\n \r\n ) : (\r\n {\r\n localStorage.setItem(\"selected\", item?.name);\r\n navigate(itemSlug);\r\n }}\r\n classes={{ root: classes.button }}\r\n >\r\n {item.image ? (\r\n \"product\"\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {item?.text?.primary\r\n ? item?.text.primary\r\n : \"Add landing primary text in language config\"}\r\n \r\n \r\n {item?.text?.secondary\r\n ? item?.text.secondary\r\n : \"Add landing secondary text in language config\"}\r\n \r\n \r\n \r\n )}\r\n {/* {\r\n localStorage.setItem(\"selected\", item?.name)\r\n navigate(itemSlug)\r\n }}\r\n classes={{ root: classes.button }}\r\n >\r\n {item.image ? (\r\n \"product\"\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {item?.text?.primary\r\n ? item?.text.primary\r\n : \"Add landing primary text in language config\"}\r\n \r\n \r\n {item?.text?.secondary\r\n ? item?.text.secondary\r\n : \"Add landing secondary text in language config\"}\r\n \r\n \r\n */}\r\n \r\n );\r\n};\r\n\r\nexport default CardItem;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#CCCCCC;}\\r\\n\\t.st1{fill:none;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"photo\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st0\",\n cx: 300.18,\n cy: 200.09,\n r: 26.7\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M275.18,116.79l-15.3,16.7h-26.4c-9.2,0-16.7,7.5-16.7,16.7v100c0,9.2,7.5,16.7,16.7,16.7h133.3 c9.2,0,16.7-7.5,16.7-16.7v-100.1c0-9.2-7.5-16.7-16.7-16.7h-26.4l-15.2-16.6H275.18z M300.18,241.79c-23,0-41.7-18.7-41.7-41.7 s18.7-41.7,41.7-41.7s41.7,18.7,41.7,41.7S323.18,241.79,300.18,241.79z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M200.18,100.09h200v200h-200V100.09z\"\n}));\n\nvar SvgPlaceholderList = function SvgPlaceholderList(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Lager_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 600 400\",\n style: {\n enableBackground: \"new 0 0 600 400\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPlaceholderList, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/placeholder_list.af0585ea.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport Landing from \"../../components/Landing\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport Description from \"../../components/common/Description\";\r\nimport SiteHeading from \"../../components/common/SiteHeading\";\r\n\r\nlet source;\r\n\r\nconst LandingPage = () => {\r\n const [text, setText] = useState(\"\");\r\n const { config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n useEffect(() => {\r\n source = axios.CancelToken.source();\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}landingpage.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data));\r\n return () => source.cancel(\"Component Is Unmounting\");\r\n }, [culture, config.descriptionFolderUrl]);\r\n\r\n return (\r\n <>\r\n {config.showSiteHeadingOnlyOnLanding && }\r\n \r\n \r\n \r\n {config.landingPage && }\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LandingPage;\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport Description from \"../common/Description\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\n\r\nlet source;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n productDescription: {},\r\n}));\r\n\r\nconst ProductDescription = ({ id, description }) => {\r\n const [text, setText] = useState(\"\");\r\n const culture = useSelector((state) => state.cookies[STATE_CULTURE]);\r\n const classes = useStyles();\r\n const { data } = useContext(DataContext);\r\n const article = data.articles.find((article) => article.id === id);\r\n\r\n const articleDescription =\r\n article?.translation.find((translation) => translation.culture === culture)\r\n ?.description ?? \"\";\r\n const useGroupsAsProduct = !articleDescription;\r\n\r\n useEffect(() => {\r\n source = axios.CancelToken.source();\r\n if (article) {\r\n setText(articleDescription);\r\n } else if (useGroupsAsProduct) {\r\n axios\r\n .get(`${process.env.PUBLIC_URL}/${description}.${culture}.md`, {\r\n cancelToken: source.token,\r\n })\r\n .then((res) => setText(res.data));\r\n }\r\n return () => source.cancel(\"Product Is Unmounting\");\r\n }, [culture, description, article, articleDescription, useGroupsAsProduct]);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ProductDescription;\r\n","import React from \"react\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport { ReactComponent as Placeholder } from \"../../images/placeholder_list.svg\";\r\nimport slugify from \"../common/slugify\";\r\nimport useLocalStorage from \"../Header/HeaderV2/hooks/useLocalStorage\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n listItem: {\r\n \"&:nth-child(even)\": {\r\n backgroundColor: theme.app.tableHighlight,\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n \"@media(max-width: 667px)\": {\r\n paddingLeft: \"4px\",\r\n paddingRight: \"4px\",\r\n },\r\n },\r\n imageContainer: {\r\n lineHeight: 1,\r\n },\r\n listItemText: {\r\n paddingLeft: \"16px\",\r\n },\r\n image: {\r\n width: \"100px\",\r\n border: `1px solid ${theme.palette.divider}`,\r\n borderRadius: \"4px\",\r\n objectFit: \"cover\",\r\n backgroundColor: theme.app.background[2],\r\n \"@media(max-width: 667px)\": {\r\n width: \"75px\",\r\n },\r\n },\r\n}));\r\n\r\nconst List = ({ item, slug }) => {\r\n const [selected, setSelected] = useLocalStorage();\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n let itemSlug =\r\n item?.eventCalendar === true\r\n ? `${process.env.PUBLIC_URL}/tickets/${slugify(item.name)}`\r\n : item?.articleBooking === true\r\n ? `${process.env.PUBLIC_URL}/booking/${slugify(item.name)}`\r\n : slug\r\n ? slug\r\n : item?.externalLink\r\n ? item?.externalLink\r\n : `${process.env.PUBLIC_URL}/${slugify(item.name)}`;\r\n return (\r\n <>\r\n {item?.externalLink ? (\r\n \r\n \r\n \r\n {item.image ? (\r\n \"product\"\r\n ) : (\r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n ) : (\r\n {\r\n localStorage.setItem(\"selected\", item?.name);\r\n navigate(itemSlug);\r\n }}\r\n className={clsx(classes.listItem, \"landing__group-item__list\")}\r\n divider\r\n >\r\n \r\n {item.image ? (\r\n \"product\"\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 List;\r\n","import React from \"react\";\r\nimport { Card, createStyles, Image, Text, UnstyledButton } from \"@mantine/core\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport { useSelector } from \"react-redux\";\r\nimport slugify from \"../common/slugify\";\r\nimport { v4 as uuid } from \"uuid\";\r\nimport { useSessionStorage } from \"@mantine/hooks\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n cardWrapper: {\r\n position: \"relative\",\r\n backgroundColor:\r\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\r\n cursor: \"pointer\",\r\n transition: \"all 0.2s ease-in-out\",\r\n border: \"none\",\r\n borderRadius: \"8px\",\r\n padding: \"1rem 1rem\",\r\n \"&:hover\": {\r\n backgroundColor:\r\n theme.colorScheme === \"dark\"\r\n ? theme.colors.blue[3]\r\n : theme.colors.gray[2],\r\n transform: \"translateY(-3px)\",\r\n p: {\r\n color: \"black\",\r\n },\r\n div: {\r\n backgroundColor:\r\n theme.colorScheme === \"dark\"\r\n ? theme.colors.blue[3]\r\n : theme.colors.gray[2],\r\n },\r\n },\r\n },\r\n\r\n card: {\r\n transition: \"all 0.2s ease-in-out\",\r\n },\r\n\r\n title: {\r\n display: \"block\",\r\n marginTop: theme.spacing.md,\r\n marginBottom: theme.spacing.xs / 2,\r\n fontSize: \"1.25rem\",\r\n },\r\n\r\n footer: {\r\n marginTop: theme.spacing.md,\r\n },\r\n}));\r\n\r\nconst CardV2 = ({ item, slug }) => {\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const [selected, setSelected] = useSessionStorage({\r\n key: \"activeLink\",\r\n defaultValue: \"\",\r\n });\r\n const { classes, cx, theme } = useStyles();\r\n const navigate = useNavigate();\r\n\r\n const link = () => {\r\n setSelected(item?.text?.primary.toLowerCase());\r\n const filter = config.landingPage.links.filter(\r\n (el) => el.name === item.name\r\n )?.[0];\r\n if (slug) {\r\n return slug;\r\n }\r\n if (item?.eventCalendar) {\r\n return `/ticketshop/tickets/${slugify(item.name)}`;\r\n }\r\n if (item?.articleBooking) {\r\n return `/ticketshop/booking/${slugify(item.name)}`;\r\n }\r\n if (item?.externalLink) {\r\n return item?.externalLink;\r\n }\r\n if (item?.internalLink) {\r\n return item?.internalLink;\r\n }\r\n if (item?.publicBooking) {\r\n return `/ticketshop/publicbooking/${slugify(item.name)}`;\r\n } else {\r\n if (filter) {\r\n return `/ticketshop/${slugify(filter.name)}`;\r\n }\r\n }\r\n };\r\n return (\r\n !item.externalLink && navigate(link())}\r\n href={item?.externalLink && item?.externalLink}\r\n target={item?.externalLink && \"_blank\"}\r\n key={uuid()}\r\n aria-label={`${item?.text?.primary}, ${item?.text?.secondary}`}\r\n tabIndex={0}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n \r\n {item?.text?.primary}\r\n \r\n\r\n \r\n {item?.text?.secondary}  \r\n \r\n \r\n \r\n );\r\n};\r\nexport default CardV2;\r\n","import React from \"react\";\r\nimport {\r\n createStyles,\r\n Divider,\r\n Image,\r\n Text,\r\n UnstyledButton,\r\n} from \"@mantine/core\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport { useSelector } from \"react-redux\";\r\nimport slugify from \"../common/slugify\";\r\nimport { v4 as uuid } from \"uuid\";\r\nimport { useSessionStorage } from \"@mantine/hooks\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n wrapper: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"90% 1fr\",\r\n gridGap: \"1rem\",\r\n padding: \"0rem 1rem\",\r\n width: \"100%\",\r\n \":hover\": {\r\n backgroundColor: theme.colors.gray[1],\r\n p: {\r\n color: \"black\",\r\n },\r\n },\r\n \"@media screen and (max-width: 768px)\": {\r\n gridGap: \"0.5rem\",\r\n padding: \"0rem 0.5rem\",\r\n gridTemplateColumns: \"auto auto\",\r\n },\r\n },\r\n priceWrapper: {\r\n p: {\r\n textAlign: \"right\",\r\n },\r\n \"&:last-child\": {\r\n justifySelf: \"end\",\r\n alignSelf: \"center\",\r\n },\r\n },\r\n imageWrapper: {},\r\n title: {\r\n fontWeight: \"bold\",\r\n marginBottom: 0,\r\n marginTop: \"1rem\",\r\n \"@media screen and (max-width: 768px)\": {},\r\n },\r\n price: {\r\n paddingRight: \"1rem\",\r\n marginTop: \".5rem\",\r\n },\r\n grid: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"1rem\",\r\n width: \"100%\",\r\n padding: \"1rem 0rem\",\r\n \"@media screen and (max-width: 768px)\": { gap: \"0.7rem\" },\r\n },\r\n}));\r\n\r\nconst ListV2 = ({ item, slug }) => {\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const [selected, setSelected] = useSessionStorage({\r\n key: \"activeLink\",\r\n defaultValue: \"\",\r\n });\r\n const { classes, theme } = useStyles();\r\n const navigate = useNavigate();\r\n\r\n const link = () => {\r\n setSelected(item?.text?.primary.toLowerCase());\r\n const filter = config.landingPage.links.filter(\r\n (el) => el.name === item.name\r\n )?.[0];\r\n if (slug) {\r\n return slug;\r\n }\r\n if (item?.eventCalendar) {\r\n return `/ticketshop/tickets/${slugify(item.name)}`;\r\n }\r\n if (item?.articleBooking) {\r\n return `/ticketshop/booking/${slugify(item.name)}`;\r\n }\r\n if (item?.externalLink) {\r\n return item?.externalLink;\r\n }\r\n if (item?.internalLink) {\r\n return item?.internalLink;\r\n }\r\n if (item?.publicBooking) {\r\n return `/ticketshop/publicbooking/${slugify(item.name)}`;\r\n } else {\r\n if (filter) {\r\n return `/ticketshop/${slugify(filter.name)}`;\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n !item.externalLink && navigate(link())}\r\n href={item?.externalLink && item?.externalLink}\r\n target={item?.externalLink && \"_blank\"}\r\n style={{ borderRadius: \"8px\" }}\r\n key={uuid()}\r\n aria-label={`${item?.text?.primary}, ${item?.text?.secondary}`}\r\n tabIndex={0}\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {item?.text?.primary}\r\n \r\n \r\n {item?.text?.secondary}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ListV2;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Card from \"./card\";\r\nimport List from \"./list\";\r\nimport slugify from \"../common/slugify\";\r\nimport CardV2 from \"./CardV2\";\r\nimport ListV2 from \"./ListV2\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n landingContent: {\r\n display: (p) => (p.list === \"CARD\" ? \"grid\" : \"block\"),\r\n gridTemplateColumns: \"repeat(3, 1fr)\",\r\n \"@media screen and (max-width: 768px)\": {\r\n gridTemplateColumns: (p) => p.list === \"CARD\" && \"1fr\",\r\n },\r\n gridGap: (p) => (p.list === \"CARD\" ? \"0.25rem\" : \"1rem\"),\r\n },\r\n}));\r\n\r\nconst getPagesWithOnlyOneEvent = (pages) => {\r\n let pagesWithOnlyOneEvent = [];\r\n\r\n pages.map((page) =>\r\n page.events && page.events.length === 1\r\n ? pagesWithOnlyOneEvent.push(page.name)\r\n : null\r\n );\r\n\r\n return pagesWithOnlyOneEvent;\r\n};\r\n\r\nconst LandingPage = () => {\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n\r\n const { pages } = config;\r\n const pagesWithOnlyOneEvent = getPagesWithOnlyOneEvent(pages);\r\n\r\n const { landingPage } = config;\r\n const { listType, links } = landingPage;\r\n const list = window.innerWidth > 667 ? listType.lg : listType.sm || \"CARD\";\r\n const classes = useStyles({ list });\r\n return (\r\n
    \r\n {links.map((landingPage, index) => {\r\n if (landingPage.disabled) return null;\r\n const landingTexts = language.LandingTexts;\r\n const text = landingTexts\r\n ? landingTexts[landingPage.name]\r\n : { primary: null, secondary: null };\r\n const image = `${process.env.PUBLIC_URL}${config.imageFolderUrl}${\r\n landingPage.image ? landingPage.image : \"placeholder.jpg\"\r\n }`;\r\n const item = { ...landingPage, image, text };\r\n\r\n if (\r\n pagesWithOnlyOneEvent.includes(item.name) &&\r\n config.useAutoNavigationOnSingleEvent\r\n ) {\r\n const eventSlug = `${process.env.PUBLIC_URL}/events/${slugify(\r\n item.name\r\n )}`;\r\n return list === \"CARD\" ? (\r\n config?.useNewCard ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : config?.useNewList ? (\r\n \r\n ) : (\r\n \r\n );\r\n } else {\r\n return list === \"CARD\" ? (\r\n config?.useNewCard ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : config?.useNewList ? (\r\n \r\n ) : (\r\n \r\n );\r\n }\r\n })}\r\n
    \r\n );\r\n};\r\n\r\nexport default LandingPage;\r\n","import React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Collapse from \"@material-ui/core/Collapse\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport DownArrowIcon from \"@material-ui/icons/ArrowDropDown\";\r\nimport UpArrowIcon from \"@material-ui/icons/ArrowDropUp\";\r\nimport Markdown from \"react-markdown\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n description: {\r\n \"& p\": {\r\n color: theme.palette.text.secondary,\r\n // \"&:first-child\": { marginTop: \"0px\" }\r\n },\r\n \"@media(max-width: 667px)\": {\r\n padding: \"8px\",\r\n \"& h4\": {\r\n fontSize: \"1.2rem\",\r\n },\r\n },\r\n },\r\n descriptionContainer: {\r\n position: \"relative\",\r\n },\r\n fade: {\r\n position: \"absolute\",\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n height: \"20px\",\r\n background:\r\n \"linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 33%,rgba(255,255,255,1) 53%,rgba(255,255,255,1) 100%);\",\r\n },\r\n button: {\r\n display: \"none\",\r\n padding: \"4px 0\",\r\n color: theme.app.labelColor,\r\n \"@media(max-width: 768px)\": {\r\n display: \"inline-flex\",\r\n },\r\n \"@media(max-width: 667px)\": {\r\n paddingLeft: \"8px\",\r\n },\r\n },\r\n}));\r\n\r\nconst Description = ({ text }) => {\r\n const classes = useStyles();\r\n const { language, config } = useSelector((state) => ({\r\n language: state.language,\r\n config: state.config,\r\n }));\r\n const [open, setOpen] = useState(\r\n config.disableDescriptionFold\r\n ? true\r\n : window.innerWidth < 768\r\n ? false\r\n : true\r\n );\r\n const toggleOpen = () => setOpen(open ? false : true);\r\n if (text.length < 1) return
    ;\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n {!open &&
    }\r\n
    \r\n {!config.disableDescriptionFold && (\r\n \r\n {open ? language.Show_Less : language.Show_More}{\" \"}\r\n {open ? : }\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Description;\r\n","import slugify from \"../../components/common/slugify\";\r\n\r\n// const getAllArticles = (tags) => {\r\n// let ids = [];\r\n// let articles = [];\r\n// tags.forEach((t) => {\r\n// t.articles.forEach((a) => {\r\n// if (!ids.includes(a.id)) {\r\n// ids = [...ids, a.id];\r\n// articles = [...articles, a];\r\n// }\r\n// });\r\n// });\r\n// return articles;\r\n// };\r\n\r\nconst extendArticle = (\r\n productConfig = {},\r\n a = {},\r\n config,\r\n imageUri,\r\n culture\r\n) => {\r\n const { imageFolderUrl, descriptionFolderUrl, thumbnailsFolderUrl } = config;\r\n\r\n // If it's a product that only exists in config\r\n const plu = a.plu ? a.plu : productConfig.plu;\r\n // If a is productGroup with useGroupsAsItems\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n if (a.articles)\r\n return {\r\n ...a,\r\n name: a.name ? a.name : productConfig.name,\r\n plu,\r\n description: productConfig.description\r\n ? `${descriptionFolderUrl}${productConfig.description}`\r\n : undefined,\r\n id: a.id,\r\n imageUri,\r\n images: imageUri\r\n ? [`${uri}/articleimage/${imageUri}`]\r\n : !plu && productConfig.images\r\n ? productConfig.images.map(\r\n (img) => `${process.env.PUBLIC_URL}${imageFolderUrl}${img}`\r\n )\r\n : undefined,\r\n thumbnail: productConfig.thumbnail\r\n ? `${process.env.PUBLIC_URL}${thumbnailsFolderUrl}${productConfig.thumbnail}`\r\n : undefined,\r\n isInfo: productConfig.isInfo || false,\r\n isModification: productConfig.isModification || false,\r\n isOpenPrice: productConfig.isOpenPrice,\r\n openPriceValues:\r\n productConfig.openPriceValues?.length > 0\r\n ? productConfig.openPriceValues\r\n : null,\r\n relatedProducts: productConfig.relatedProducts || [],\r\n displayPrice: a.priceInclVat,\r\n slug: `products/${plu}`,\r\n };\r\n\r\n return {\r\n ...a,\r\n name:\r\n a.translation?.find((t) => t.culture === culture)?.name ||\r\n a.translation?.find((t) => t.culture === \"sv-SE\")?.name ||\r\n a.name ||\r\n productConfig.name ||\r\n `Product Name (${plu})`,\r\n plu,\r\n description: productConfig.description\r\n ? `${descriptionFolderUrl}${productConfig.description}`\r\n : undefined,\r\n id: a.id,\r\n imageUri,\r\n images: imageUri ? [`${uri}/articleimage/${imageUri}`] : undefined,\r\n thumbnail: productConfig.thumbnail\r\n ? `${process.env.PUBLIC_URL}${thumbnailsFolderUrl}${productConfig.thumbnail}`\r\n : undefined,\r\n isInfo: productConfig.isInfo || false,\r\n isModification: productConfig.isModification || false,\r\n isOpenPrice: productConfig.isOpenPrice,\r\n openPriceValues:\r\n productConfig.openPriceValues?.length > 0\r\n ? productConfig.openPriceValues\r\n : null,\r\n relatedProducts: productConfig.relatedProducts || [],\r\n displayPrice: a.priceInclVat,\r\n slug: `products/${plu}`,\r\n };\r\n};\r\n\r\nexport const getProduct = (data, config, id, culture) => {\r\n let productGroupConfig = config.productGroupConfig.find(\r\n (c) => slugify(c.name) === id\r\n );\r\n if (!data || (productGroupConfig && !productGroupConfig?.useGroupsAsItems))\r\n return undefined;\r\n\r\n const productConfig = productGroupConfig?.useGroupsAsItems\r\n ? productGroupConfig\r\n : config.productConfig.find((c) => c.plu === Number(id));\r\n let a = productGroupConfig?.useGroupsAsItems\r\n ? // Checks if product is productGroup with useGroupsAsItems\r\n data.tags.find((t) => slugify(t.name) === id)\r\n : // If not, looks for article in data.articles\r\n data.articles.find((article) => article.plu === Number(id));\r\n\r\n const imageUri = productGroupConfig?.useGroupsAsItems\r\n ? undefined\r\n : data.articles.find((article) => article.plu === Number(id))\r\n ?.imageFilename;\r\n\r\n return extendArticle(productConfig, a, config, imageUri, culture);\r\n};\r\n","import moment from \"moment\";\r\n\r\nexport const getInitialMonth = (config, product) => {\r\n if (!product.overrideStartDate) return moment();\r\n if (config.overrideStartdate) {\r\n if (\r\n config.overrideStartdate.allowedRange &&\r\n moment() < moment(config.overrideStartdate.allowedRange.start)\r\n ) {\r\n return moment(config.overrideStartdate.allowedRange.start);\r\n }\r\n }\r\n return moment();\r\n};\r\n\r\nexport const getFormConfig = (config, product) => {\r\n const plu = product.plu ? product.plu : product.articles[0].plu;\r\n if (!config) return undefined;\r\n if (config.filter((c) => c.plu === plu).length > 0)\r\n return config.find((c) => c.plu === plu);\r\n return config.find((c) => c.plu === \"default\");\r\n};\r\n\r\nexport const getSaleData = (\r\n product,\r\n article,\r\n values,\r\n photo,\r\n quantity,\r\n overrideStartDate\r\n) => {\r\n const saleArticle = product.articles\r\n ? product.articles.find((a) => a.id === article)\r\n : product;\r\n if (!saleArticle) throw new Error(\"No article\");\r\n if (!values) {\r\n return {\r\n plu: saleArticle.plu,\r\n quantity: quantity || 1,\r\n overrideStartDate,\r\n };\r\n }\r\n const { plu } = saleArticle;\r\n const ticketHolderCategoryId = saleArticle.ticketHolders[0].categoryId;\r\n const ticketOwners = [\r\n {\r\n ticketHolderCategoryId,\r\n customerData: {\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n email: values.email,\r\n civicRegistrationNumber: values.civicRegistrationNumber,\r\n phoneNumbers: [\r\n {\r\n type: \"Cell\",\r\n number: values.cellPhone,\r\n },\r\n ],\r\n addresses: [\r\n {\r\n type: \"Generic\",\r\n street: values.street,\r\n streetNumber: values.streetNumber,\r\n city: values.city,\r\n zipCode: values.zipCode,\r\n countryCode: values.countryCode,\r\n },\r\n ],\r\n photoBase64: photo && photo,\r\n photoExtension: photo && \"jpg\",\r\n },\r\n },\r\n ];\r\n return { plu, quantity: 1, ticketOwners };\r\n};\r\n\r\nexport const isPersonal = (config, product) => {\r\n let productGroupConfig = config.productGroupConfig.find(\r\n (c) => c.name === product.name\r\n );\r\n if (productGroupConfig?.useGroupsAsItems) {\r\n return product.articles[0].isPersonalTicket;\r\n }\r\n return product.isPersonalTicket;\r\n};\r\n\r\nexport const formatDisplayPrice = (price, currency) => {\r\n if (!price) return \"-\";\r\n switch (currency) {\r\n case \"SEK\":\r\n case \"NOK\":\r\n case \"DKK\":\r\n return `${Number(price).toFixed(2)} kr`;\r\n case \"EUR\":\r\n return `€${Number(price).toFixed(2)}`;\r\n case \"USD\":\r\n return `$${Number(price).toFixed(2)}`;\r\n default:\r\n return price;\r\n }\r\n};\r\n\r\nexport const getArticleConfig = (config, plu) => {\r\n return config.find((p) => p.plu === plu);\r\n};\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n productContent: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"400px 1fr\",\r\n gridGap: \"16px\",\r\n \"@media(max-width: 768px)\": {\r\n gridTemplateColumns: \"300px 1fr\",\r\n },\r\n \"@media(max-width: 667px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n padding: \"0 8px 16px\",\r\n },\r\n },\r\n}));\r\n\r\nconst ProductContent = ({ children }) => {\r\n const classes = useStyles();\r\n return (\r\n
    \r\n {children}\r\n
    \r\n );\r\n};\r\n\r\nexport default ProductContent;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n header: {\r\n height: \"54px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n borderBottom: `1px solid ${theme.app.borderColor}`,\r\n \"@media(max-width: 667px)\": {\r\n padding: \"0 8px\",\r\n position: \"sticky\",\r\n top: (p) => (p.headerHeight ? `${p.headerHeight}px` : \"64px\"),\r\n zIndex: 1100,\r\n background: theme.palette.background.paper,\r\n },\r\n },\r\n titleText: {\r\n flexGrow: 1,\r\n display: \"box\",\r\n lineClamp: 2,\r\n boxOrient: \"vertical\",\r\n overflow: \"hidden\",\r\n \"@media(max-width: 576px)\": {\r\n fontSize: \"1.125rem\",\r\n },\r\n },\r\n}));\r\n\r\nconst ProductHeader = ({ text }) => {\r\n const classes = useStyles();\r\n const language = useSelector((state) => (state.language, state.config));\r\n const navigate = useNavigate();\r\n return (\r\n
    \r\n \r\n {text}\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ProductHeader;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLocation } from \"@reach/router\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Twitter, Facebook, Mail } from \"react-social-sharing\";\r\n\r\nexport const socalShareMeta = (config) => {\r\n // Add social share title\r\n if (config.socialShareTitle) {\r\n let title = document.createElement(\"meta\");\r\n title.setAttribute(\"property\", \"og:title\");\r\n title.content = config.socialShareTitle;\r\n document.getElementsByTagName(\"head\")[0].appendChild(title);\r\n }\r\n // Add social share description\r\n if (config.socialShareDescription) {\r\n let description = document.createElement(\"meta\");\r\n description.setAttribute(\"property\", \"og:description\");\r\n description.content = config.socialShareDescription;\r\n document.getElementsByTagName(\"head\")[0].appendChild(description);\r\n }\r\n // Add social share image\r\n if (config.socialShareImage) {\r\n let image = document.createElement(\"meta\");\r\n image.setAttribute(\"property\", \"og:image\");\r\n image.content = config.socialShareImage;\r\n document.getElementsByTagName(\"head\")[0].appendChild(image);\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n padding: \"8px 0\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flexWrap: \"wrap\",\r\n \"& a\": {\r\n margin: 0,\r\n marginRight: \"8px\",\r\n },\r\n },\r\n});\r\n\r\nconst SocialShare = () => {\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const location = useLocation();\r\n const url = location.href;\r\n const classes = useStyles();\r\n if (!config.socialShareButtons || config.socialShareButtons.length < 1)\r\n return null;\r\n const buttons = config.socialShareButtons;\r\n return (\r\n
    \r\n {buttons.includes(\"Twitter\") && (\r\n `${language.Share} ${serviceName}`}\r\n />\r\n )}\r\n {buttons.includes(\"Facebook\") && (\r\n `${language.Share} ${serviceName}`}\r\n />\r\n )}\r\n {buttons.includes(\"Mail\") && (\r\n `${language.Share} ${serviceName}`}\r\n />\r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default SocialShare;\r\n","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport PrevIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport NextIcon from \"@material-ui/icons/ChevronRight\";\r\nimport ImageGallery from \"react-image-gallery\";\r\nimport { ReactComponent as Placeholder } from \"../../images/placeholder.svg\";\r\nimport SocialShare from \"../common/socialShare\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n productImage: {},\r\n placeholder: {\r\n background: theme.app.background[2],\r\n border: `1px solid ${theme.palette.divider}`,\r\n borderRadius: \"4px\",\r\n marginTop: \"8px\",\r\n },\r\n carouselButton: {\r\n backgroundColor: \"rgba(0,0,0,0.23)\",\r\n color: \"white\",\r\n },\r\n left: {\r\n position: \"absolute\",\r\n zIndex: 100,\r\n left: 0,\r\n top: \"50%\",\r\n transform: \"translate(0, -50%)\",\r\n },\r\n right: {\r\n position: \"absolute\",\r\n zIndex: 100,\r\n right: 0,\r\n top: \"50%\",\r\n transform: \"translate(0, -50%)\",\r\n },\r\n}));\r\n\r\nconst ProductImage = ({ images }) => {\r\n const classes = useStyles();\r\n const carouselImages = images?.map((img) => ({\r\n original: img,\r\n }));\r\n if (!images || images.length < 1)\r\n return ;\r\n return (\r\n
    \r\n
    \r\n (\r\n \r\n \r\n \r\n )}\r\n renderRightNav={(onClick, disabled) => (\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 ProductImage;\r\n","/* eslint-disable react/no-unused-prop-types */\r\nimport React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport momentPropTypes from \"react-moment-proptypes\";\r\nimport { forbidExtraProps } from \"airbnb-prop-types\";\r\nimport moment from \"moment\";\r\nimport omit from \"lodash/omit\";\r\n\r\nimport { DayPickerSingleDateController } from \"react-dates\";\r\n\r\nimport ScrollableOrientationShape from \"react-dates/lib/shapes/ScrollableOrientationShape\";\r\n\r\nimport { HORIZONTAL_ORIENTATION } from \"react-dates/constants\";\r\nimport { isInclusivelyAfterDay } from \"react-dates\";\r\n\r\nconst propTypes = forbidExtraProps({\r\n // example props for the demo\r\n autoFocus: PropTypes.bool,\r\n initialDate: momentPropTypes.momentObj,\r\n showInput: PropTypes.bool,\r\n\r\n keepOpenOnDateSelect: PropTypes.bool,\r\n isOutsideRange: PropTypes.func,\r\n isDayBlocked: PropTypes.func,\r\n isDayHighlighted: PropTypes.func,\r\n\r\n // DayPicker props\r\n enableOutsideDays: PropTypes.bool,\r\n numberOfMonths: PropTypes.number,\r\n orientation: ScrollableOrientationShape,\r\n withPortal: PropTypes.bool,\r\n initialVisibleMonth: PropTypes.func,\r\n renderCalendarInfo: PropTypes.func,\r\n\r\n navPrev: PropTypes.node,\r\n navNext: PropTypes.node,\r\n\r\n onPrevMonthClick: PropTypes.func,\r\n onNextMonthClick: PropTypes.func,\r\n onOutsideClick: PropTypes.func,\r\n renderCalendarDay: PropTypes.func,\r\n renderDayContents: PropTypes.func,\r\n\r\n // i18n\r\n monthFormat: PropTypes.string,\r\n\r\n isRTL: PropTypes.bool,\r\n onDateChange: PropTypes.func,\r\n blockedDates: PropTypes.array,\r\n allowedRange: PropTypes.object,\r\n highlightedDates: PropTypes.array,\r\n occasionDates: PropTypes.array,\r\n isOverrideStartdate: PropTypes.bool,\r\n});\r\n\r\nconst defaultProps = {\r\n // example props for the demo\r\n autoFocus: false,\r\n initialDate: null,\r\n showInput: false,\r\n\r\n // day presentation and interaction related props\r\n renderCalendarDay: undefined,\r\n renderDayContents: null,\r\n isDayBlocked: () => false,\r\n isOutsideRange: (day) => !isInclusivelyAfterDay(day, moment()),\r\n isDayHighlighted: () => false,\r\n enableOutsideDays: false,\r\n\r\n // calendar presentation and interaction related props\r\n orientation: HORIZONTAL_ORIENTATION,\r\n withPortal: false,\r\n initialVisibleMonth: null,\r\n numberOfMonths: 1,\r\n onOutsideClick() {},\r\n keepOpenOnDateSelect: false,\r\n renderCalendarInfo: null,\r\n isRTL: false,\r\n\r\n // navigation related props\r\n navPrev: null,\r\n navNext: null,\r\n onPrevMonthClick() {},\r\n onNextMonthClick() {},\r\n\r\n // internationalization\r\n monthFormat: \"MMMM YYYY\",\r\n};\r\n\r\nclass DayPickerSingleDateControllerWrapper extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n focused: true,\r\n date: props.initialDate,\r\n };\r\n\r\n this.onDateChange = this.onDateChange.bind(this);\r\n this.onFocusChange = this.onFocusChange.bind(this);\r\n }\r\n\r\n onDateChange(date) {\r\n this.setState({ date });\r\n this.props.onDateChange(date);\r\n }\r\n\r\n onFocusChange() {\r\n // Force the focused states to always be truthy so that date is always selectable\r\n this.setState({ focused: true });\r\n }\r\n\r\n isHighlighted = (day, highligtedDays) => {\r\n if (highligtedDays.includes(day.format(\"YYYY-MM-DD\"))) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n isDayBlocked = (\r\n day,\r\n occasionDates,\r\n isOverrideStartdate,\r\n allowedRange,\r\n blockedDates\r\n ) => {\r\n if (isOverrideStartdate) {\r\n if (\r\n day.isBetween(\r\n moment(allowedRange.start).subtract(\"1\", \"days\"),\r\n moment(allowedRange.end).add(\"1\", \"days\")\r\n )\r\n ) {\r\n if (blockedDates.includes(day.format(\"YYYYMMDD\"))) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n if (occasionDates.includes(day.format(\"YYYY-MM-DD\"))) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n render() {\r\n const {\r\n showInput,\r\n highlightedDates,\r\n occasionDates,\r\n isOverrideStartdate,\r\n allowedRange,\r\n blockedDates,\r\n } = this.props;\r\n const { focused, date } = this.state;\r\n\r\n const props = omit(this.props, [\r\n \"autoFocus\",\r\n \"initialDate\",\r\n \"showInput\",\r\n \"blockedDates\",\r\n \"occasionDates\",\r\n \"highlightedDates\",\r\n \"isOverrideStartdate\",\r\n \"allowedRange\",\r\n ]);\r\n\r\n const dateString = date && date.format(\"YYYY-MM-DD\");\r\n\r\n return (\r\n
    \r\n {showInput && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n this.isHighlighted(day, highlightedDates)}\r\n isDayBlocked={(day) =>\r\n this.isDayBlocked(\r\n day,\r\n occasionDates,\r\n isOverrideStartdate,\r\n allowedRange,\r\n blockedDates\r\n )\r\n }\r\n focused={focused}\r\n date={date}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nDayPickerSingleDateControllerWrapper.propTypes = propTypes;\r\nDayPickerSingleDateControllerWrapper.defaultProps = defaultProps;\r\n\r\nexport default DayPickerSingleDateControllerWrapper;","import React from \"react\";\r\nimport DayPickerSingleDateControllerWrapper from \"./wrapper\";\r\nimport \"react-dates/initialize\";\r\n\r\nconst Calendar = React.memo(function Calendar(props) {\r\n const {\r\n initialDate,\r\n onDateChange,\r\n startdateConfig,\r\n highlightedDates,\r\n initialVisibleMonth,\r\n isDayBlocked,\r\n isOutsideRange,\r\n isOverrideStartdate,\r\n occasionDates,\r\n } = props;\r\n return (\r\n onDateChange(date)}\r\n />\r\n );\r\n});\r\n\r\nexport default Calendar;","import React from \"react\";\r\nimport moment from \"moment\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Calendar from \"../common/Calendar\";\r\nimport { getInitialMonth } from \"./util\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n overrideStartDate: {},\r\n}));\r\n\r\nconst OverrideStartDate = (product, setOverrideDate) => {\r\n const classes = useStyles();\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const handleSetOverrideDate = (date) =>\r\n setOverrideDate(moment(date).hour(6).toISOString());\r\n return (\r\n
    \r\n \r\n {language.Choose_Date}\r\n \r\n \r\n getInitialMonth(config, product)}\r\n />\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default OverrideStartDate;\r\n","import React, { useContext, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport { Context, TOAST, CART_ARTICLE_ADD } from \"../../context\";\r\nimport { getArticleConfig, formatDisplayPrice } from \"./util\";\r\nimport { addArticle } from \"../../common/sale\";\r\nimport { STATE_CURRENCY } from \"../../common/state\";\r\nimport { getCartArticle } from \"../cart/util\";\r\n\r\nconst useStyles = makeStyles({\r\n openPrice: {},\r\n list: {},\r\n listItem: {\r\n paddingRight: \"150px\",\r\n \"@media(max-width: 667px)\": {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr\",\r\n padding: \"0 0 24px\",\r\n borderBottom: \"none\",\r\n },\r\n },\r\n listItemText: {},\r\n listItemAction: {\r\n display: \"flex\",\r\n \"@media(max-width: 667px)\": {\r\n position: \"relative\",\r\n right: 0,\r\n left: 0,\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n },\r\n },\r\n addButton: {\r\n alignSelf: \"flex-end\",\r\n marginLeft: \"16px\",\r\n },\r\n select: {\r\n width: \"120px\",\r\n textAlign: \"center\",\r\n },\r\n input: {\r\n maxWidth: \"140px\",\r\n textAlign: \"right\",\r\n },\r\n});\r\n\r\nconst OpenPrice = (props) => {\r\n const { article, product } = props;\r\n const classes = useStyles();\r\n const rdxDispatch = useDispatch();\r\n const { dispatch } = useContext(Context);\r\n const { config, language, currency } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const articleConfig = getArticleConfig(config.productConfig, article.plu);\r\n const hasOptions =\r\n articleConfig.openPriceValues && articleConfig.openPriceValues.length > 0;\r\n const options = articleConfig.openPriceValues;\r\n const [price, setPrice] = useState(hasOptions ? options[0] : \"\");\r\n const [busy, setBusy] = useState(false);\r\n\r\n const handleAdd = () => {\r\n setBusy(true);\r\n const cartArticle = getCartArticle(product, config, article.id);\r\n rdxDispatch(\r\n addArticle(\r\n { plu: article.plu, quantity: 1, priceInclVat: price * 100 },\r\n (status, msg) => {\r\n if (status >= 400) {\r\n setBusy(false);\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: msg,\r\n variant: \"error\",\r\n },\r\n });\r\n }\r\n setPrice(hasOptions ? options[0] : \"\");\r\n setBusy(false);\r\n dispatch({ type: CART_ARTICLE_ADD, payload: cartArticle });\r\n }\r\n )\r\n );\r\n };\r\n return (\r\n
    \r\n \r\n \r\n 0\r\n ? article.name\r\n : `Product Name (${article.plu})`\r\n }\r\n secondary={formatDisplayPrice(price, currency)}\r\n />\r\n \r\n {hasOptions ? (\r\n setPrice(Number(e.target.value))}\r\n className={classes.select}\r\n >\r\n {options.map((o, i) => (\r\n \r\n {formatDisplayPrice(o, currency)}\r\n \r\n ))}\r\n \r\n ) : (\r\n setPrice(Number(e.target.value))}\r\n type=\"number\"\r\n label={language.Amount}\r\n placeholder={language.Add_Amount}\r\n variant=\"filled\"\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n InputProps={{\r\n classes: { input: classes.input },\r\n }}\r\n />\r\n )}\r\n \r\n {language.Article_Add}\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default OpenPrice;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\n\r\nconst useStyles = makeStyles({\r\n formControl: {\r\n margin: 0,\r\n minWidth: \"64px\",\r\n },\r\n select: {\r\n textAlign: \"center\",\r\n },\r\n});\r\n\r\nconst QuantitySelect = (props) => {\r\n const {\r\n max = 10,\r\n handleOnChange,\r\n value = 1,\r\n disabled,\r\n language,\r\n hideLabel,\r\n } = props;\r\n const classes = useStyles();\r\n let quantityArr = [];\r\n for (let i = 1; i < max + 1; i++) {\r\n quantityArr = [...quantityArr, i];\r\n }\r\n return (\r\n \r\n {!hideLabel && {language.Quantity}}\r\n handleOnChange(e.target.value)}\r\n value={value}\r\n >\r\n {quantityArr.map((v) => (\r\n \r\n {v}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nQuantitySelect.propTypes = {\r\n max: PropTypes.number,\r\n handleOnChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default QuantitySelect;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport QuantitySelect from \"../common/quantitySelect\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {},\r\n list: {\r\n \"@media(max-width: 667px)\": {\r\n \"& li\": {\r\n borderBottom: `1px solid ${theme.app.borderColor}`,\r\n },\r\n },\r\n },\r\n listItem: {\r\n paddingRight: \"150px\",\r\n \"@media(max-width: 667px)\": {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr\",\r\n padding: \"0 0 24px\",\r\n borderBottom: \"none\",\r\n },\r\n },\r\n listItemText: {},\r\n listItemAction: {\r\n display: \"flex\",\r\n \"@media(max-width: 667px)\": {\r\n position: \"relative\",\r\n right: 0,\r\n left: 0,\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n },\r\n },\r\n addButton: {\r\n alignSelf: \"flex-end\",\r\n marginLeft: \"16px\",\r\n },\r\n disabledButton: {\r\n alignSelf: \"flex-end\",\r\n marginLeft: \"16px\",\r\n color: \"rgba(0, 0, 0, 0.26) !important\",\r\n },\r\n buttonProgress: {\r\n position: \"absolute\",\r\n color: \"white\",\r\n },\r\n}));\r\n\r\nconst ArticlesList = (props) => {\r\n const {\r\n add,\r\n articles,\r\n language,\r\n isOverrideStartDate,\r\n overrideStartDate,\r\n quantity,\r\n setQuantity,\r\n isLoading,\r\n } = props;\r\n const classes = useStyles();\r\n const disabled = (a) => {\r\n if ((isOverrideStartDate && !overrideStartDate) || isLoading.loading) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const sortedArticles = articles.sort((a, b) => a.plu - b.plu);\r\n\r\n return (\r\n
    \r\n \r\n {sortedArticles.map((a, i) => {\r\n const notInStock = a.isProduct && a.inStock < 1;\r\n return (\r\n \r\n 0 ? a.name : `Product Name (${a.plu})`}\r\n secondary={\r\n notInStock\r\n ? `${a.priceInclVat} - ${language.Not_In_Stock}`\r\n : a.priceInclVat\r\n }\r\n />\r\n \r\n setQuantity(v)}\r\n language={language}\r\n value={quantity}\r\n />\r\n add(a)}\r\n color=\"primary\"\r\n >\r\n {language?.Article_Add || \"Köp\"}\r\n {isLoading.loading && isLoading.id === a.plu && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ArticlesList;\r\n","import React, { useState } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport NativeSelect from \"@material-ui/core/NativeSelect\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst useStyles = makeStyles({\r\n selectContainer: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n },\r\n selectControl: {\r\n \"@media(max-width: 667px)\": {\r\n display: \"none\",\r\n },\r\n },\r\n select: {\r\n minWidth: \"250px\",\r\n },\r\n nativeSelect: {\r\n display: \"none\",\r\n \"@media(max-width: 667px)\": {\r\n display: \"block\",\r\n },\r\n },\r\n addButtonContainer: {\r\n alignSelf: \"flex-end\",\r\n marginLeft: \"16px\",\r\n },\r\n});\r\n\r\nconst getText = (a, group, useGroupsAsItems, language, notInStock) => {\r\n if (notInStock) {\r\n return `${\r\n useGroupsAsItems ? a.name.replace(`${group.name} `, \"\") : a.name\r\n } - ${a.priceInclVat} - ${language.Not_In_Stock}`;\r\n }\r\n return `${\r\n useGroupsAsItems ? a.name.replace(`${group.name} `, \"\") : a.name\r\n } - ${a.priceInclVat}`;\r\n};\r\n\r\nconst ArticleSelect = (props) => {\r\n const {\r\n useGroupsAsItems,\r\n group,\r\n add,\r\n articles,\r\n language,\r\n personal,\r\n value,\r\n onSelect,\r\n disabled,\r\n submitForm,\r\n selectArticle,\r\n } = props;\r\n const classes = useStyles();\r\n const [article, setArticle] = useState(\"\");\r\n const sortedArticles = articles.sort((a, b) => a.plu - b.plu);\r\n return (\r\n \r\n \r\n {language.Articles}\r\n setArticle(e.target.value)}\r\n disabled={disabled}\r\n >\r\n \r\n {language.Choose}\r\n \r\n {sortedArticles.map((a) => {\r\n const notInStock = a.isProduct && a.inStock < 1;\r\n return (\r\n \r\n {getText(a, group, useGroupsAsItems, language, notInStock)}\r\n \r\n );\r\n })}\r\n \r\n \r\n setArticle(e.target.value)}\r\n disabled={disabled}\r\n >\r\n \r\n {sortedArticles.map((a) => {\r\n const notInStock = a.isProduct && a.inStock < 1;\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
    \r\n add(group, article)}\r\n className={classNames(classes.addButton, \"details__addButton\")}\r\n color=\"primary\"\r\n >\r\n {language.Article_Add || \"\"}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ArticleSelect;\r\n","const initialValues = (fields) => {\r\n let initialData = {};\r\n fields.forEach((f) => {\r\n if (f !== \"photo\") {\r\n initialData[f] = \"\";\r\n }\r\n });\r\n return initialData;\r\n};\r\n\r\nexport default initialValues;\r\n","import isEmail from \"sane-email-validation\";\r\n\r\nconst validate = (values, config, language) => {\r\n let errors = {};\r\n\r\n //firstName\r\n if (\r\n !config ||\r\n (config.requiredFields.includes(\"firstName\") && !values.firstName)\r\n ) {\r\n errors.firstName = `${language.Form_FirstName} ${language.Form_IsRequired}`;\r\n }\r\n if (values.firstName.length > 100) {\r\n errors.firstName = language.Form_Error_InvalidLength;\r\n }\r\n\r\n //lastName\r\n if (\r\n !config ||\r\n (config.requiredFields.includes(\"lastName\") && !values.lastName)\r\n ) {\r\n errors.lastName = `${language.Form_LastName} ${language.Form_IsRequired}`;\r\n }\r\n if (values.lastName.length > 100) {\r\n errors.lastName = language.Form_Error_InvalidLength;\r\n }\r\n //email\r\n if (!config || (config.requiredFields.includes(\"email\") && !values.email)) {\r\n errors.email = `${language.Form_Email} ${language.Form_IsRequired}`;\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.Form_Invalid_Email}`;\r\n }\r\n\r\n //civicRegistrationNumber\r\n if (\r\n !config ||\r\n (config.requiredFields.includes(\"civicRegistrationNumber\") &&\r\n !values.civicRegistrationNumber)\r\n ) {\r\n errors.civicRegistrationNumber = `${language.Form_CivicRegistrationNumber} ${language.Form_IsRequired}`;\r\n } else if (\r\n values.civicRegistrationNumber &&\r\n values.civicRegistrationNumber.length > 0 &&\r\n !/^(19|20)[0-9]{6}[- ]?[0-9]{4}$/.test(values.civicRegistrationNumber)\r\n ) {\r\n errors.civicRegistrationNumber =\r\n language.Form_Invalid_CivicRegistrationNumber;\r\n }\r\n\r\n //cellPhone\r\n if (\r\n !config ||\r\n (config.requiredFields.includes(\"cellPhone\") && !values.cellPhone)\r\n ) {\r\n errors.cellPhone = `${language.Form_CellPhone} ${language.Form_IsRequired}`;\r\n }\r\n\r\n if (values.cellPhone.length > 15) {\r\n errors.cellPhone = language.Form_Error_InvalidLength;\r\n }\r\n\r\n //street\r\n if (!config || (config.requiredFields.includes(\"street\") && !values.street)) {\r\n errors.street = `${language.Form_Street} ${language.Form_IsRequired}`;\r\n }\r\n\r\n //streetNumber\r\n if (\r\n !config ||\r\n (config.requiredFields.includes(\"streetNumber\") && !values.streetNumber)\r\n ) {\r\n errors.streetNumber = `${language.Form_StreetNumber} ${language.Form_IsRequired}`;\r\n }\r\n\r\n //zipCode\r\n if (\r\n !config ||\r\n (config.requiredFields.includes(\"zipCode\") && !values.zipCode)\r\n ) {\r\n errors.zipCode = `${language.Form_ZipCode} ${language.Form_IsRequired}`;\r\n }\r\n\r\n //city\r\n if (!config || (config.requiredFields.includes(\"city\") && !values.city)) {\r\n errors.city = `${language.Form_City} ${language.Form_IsRequired}`;\r\n }\r\n\r\n //countryCode\r\n if (\r\n !config ||\r\n (config.requiredFields.includes(\"countryCode\") && !values.countryCode)\r\n ) {\r\n errors.countryCode = `${language.Form_Country} ${language.Form_IsRequired}`;\r\n }\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n row: {\r\n display: \"grid\",\r\n gridTemplateColumns: (p) =>\r\n p.gtc ? p.gtc : p.cols ? `repeat(${p.cols}, 1fr)` : \"1fr\",\r\n gridGap: (p) => (p.gap ? p.gap : \"8px\"),\r\n \"@media(max-width: 768px)\": {\r\n gridTemplateColumns: (p) => \"1fr\",\r\n },\r\n },\r\n}));\r\n\r\nconst RowLayout = (props) => {\r\n const { gtc, cols, gap, children } = props;\r\n const classes = useStyles({ gtc, cols, gap });\r\n return
    {children}
    ;\r\n};\r\n\r\nexport default RowLayout;\r\n","import React from \"react\";\r\nimport { useField } from \"formik\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\n\r\nconst FormikTextField = (props) => {\r\n const {\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 name,\r\n } = props;\r\n const [field, meta] = useField(name);\r\n return (\r\n {meta.error}}\r\n error={meta.error && meta.touched && meta.error.length > 0}\r\n />\r\n );\r\n};\r\n\r\nexport default FormikTextField;\r\n","const createImage = (url) =>\r\n new Promise((resolve, reject) => {\r\n const image = new Image();\r\n image.addEventListener(\"load\", () => resolve(image));\r\n image.addEventListener(\"error\", (error) => reject(error));\r\n // image.setAttribute(\"crossOrigin\", \"anonymous\"); // needed to avoid cross-origin issues on CodeSandbox\r\n image.src = url;\r\n });\r\n\r\nfunction getRadianAngle(degreeValue) {\r\n return (degreeValue * Math.PI) / 180;\r\n}\r\n\r\n/**\r\n * This function was adapted from the one in the ReadMe of https://github.com/DominicTobias/react-image-crop\r\n * @param {File} image - Image File url\r\n * @param {Object} pixelCrop - pixelCrop Object provided by react-easy-crop\r\n * @param {number} rotation - optional rotation parameter\r\n */\r\nexport default async function getCroppedImg(imageSrc, pixelCrop, rotation = 0) {\r\n const image = await createImage(imageSrc);\r\n const canvas = document.createElement(\"canvas\");\r\n const ctx = canvas.getContext(\"2d\");\r\n const maxSize = Math.max(image.width, image.height);\r\n const safeArea = 2 * ((maxSize / 2) * Math.sqrt(2));\r\n // set each dimensions to double largest dimension to allow for a safe area for the\r\n // image to rotate in without being clipped by canvas context\r\n\r\n canvas.width = safeArea;\r\n canvas.height = safeArea;\r\n\r\n // translate canvas context to a central location on image to allow rotating around the center.\r\n ctx.translate(safeArea / 2, safeArea / 2);\r\n ctx.rotate(getRadianAngle(rotation));\r\n ctx.translate(-safeArea / 2, -safeArea / 2);\r\n\r\n // draw rotated image and store data.\r\n ctx.drawImage(\r\n image,\r\n safeArea / 2 - image.width * 0.5,\r\n safeArea / 2 - image.height * 0.5\r\n );\r\n const data = ctx.getImageData(0, 0, safeArea, safeArea);\r\n\r\n // set canvas width to final desired crop size - this will clear existing context\r\n\r\n canvas.width = pixelCrop.width;\r\n canvas.height = pixelCrop.height;\r\n\r\n // paste generated rotate image with correct offsets for x,y crop values.\r\n ctx.putImageData(\r\n data,\r\n 0 - safeArea / 2 + image.width * 0.5 - pixelCrop.x,\r\n 0 - safeArea / 2 + image.height * 0.5 - pixelCrop.y\r\n );\r\n\r\n // As Base64 string\r\n const base64Img = canvas.toDataURL(\"image/jpeg\", 1.0);\r\n\r\n return base64Img;\r\n\r\n // As a blob\r\n // return new Promise(resolve => {\r\n // canvas.toBlob(file => {\r\n // resolve(URL.createObjectURL(file))\r\n // }, 'image/jpeg')\r\n // })\r\n}\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Cropper from \"react-easy-crop\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ResetIcon from \"@material-ui/icons/SettingsBackupRestore\";\r\nimport PhotoIcon from \"@material-ui/icons/PhotoCamera\";\r\nimport getCroppedImg from \"./cropImage\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n editor: {},\r\n selectButton: {\r\n \"& svg\": {\r\n marginRight: \"8px\",\r\n },\r\n },\r\n cropper: {\r\n position: \"relative\",\r\n maxWidth: \"100%\",\r\n height: (p) => (p.preview ? \"auto\" : \"300px\"),\r\n },\r\n actions: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n },\r\n controls: {},\r\n controlLabel: {\r\n fontSize: \"0.75rem\",\r\n fontWeight: 500,\r\n color: theme.app.labelColor,\r\n textTransform: \"uppercase\",\r\n },\r\n controlValue: {\r\n fontSize: \"0.75rem\",\r\n fontWeight: 500,\r\n color: theme.app.secondaryColor,\r\n textAlign: \"center\",\r\n },\r\n sliderContainer: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 50px auto\",\r\n gridGap: \"8px\",\r\n alignItems: \"center\",\r\n marginBottom: \"16px\",\r\n },\r\n resetButton: {\r\n borderRadius: \"50%\",\r\n color: theme.app.labelColor,\r\n \"&:disabled\": { opacity: 0.5 },\r\n },\r\n previewImage: {\r\n width: \"360px\",\r\n display: \"block\",\r\n margin: \"8px auto\",\r\n \"@media(max-width: 500px)\": {\r\n width: \"320px\",\r\n },\r\n },\r\n}));\r\n\r\nconst readFile = (file) => {\r\n return new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.addEventListener(\r\n \"load\",\r\n (e) => {\r\n resolve(e.target.result);\r\n },\r\n false\r\n );\r\n reader.readAsDataURL(file);\r\n });\r\n};\r\n\r\nconst PhotoEditor = ({ savePhoto, preview }) => {\r\n const classes = useStyles({ preview });\r\n const [crop, setCrop] = useState({ x: 0, y: 0 });\r\n const [rotation, setRotation] = useState(0);\r\n const [zoom, setZoom] = useState(1);\r\n const [image, setImage] = useState();\r\n const [croppedAreaPixels, setCroppedAreaPixels] = useState(null);\r\n\r\n const onCropComplete = useCallback((croppedArea, croppedAreaPixels) => {\r\n console.log(croppedAreaPixels);\r\n setCroppedAreaPixels(croppedAreaPixels);\r\n }, []);\r\n\r\n const saveCroppedImage = useCallback(async () => {\r\n try {\r\n const croppedImage = await getCroppedImg(\r\n image,\r\n croppedAreaPixels,\r\n rotation\r\n );\r\n savePhoto(croppedImage);\r\n setImage(null);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }, [croppedAreaPixels, rotation, image, savePhoto]);\r\n\r\n const photoSelectRef = React.createRef();\r\n const openPhotoSelect = (node) => {\r\n return node.click();\r\n };\r\n\r\n const resizeImage = (img) => {\r\n console.log(\"Selected image width: \", img.width);\r\n\r\n let canvas = document.createElement(\"canvas\");\r\n let originalCtx = canvas.getContext(\"2d\");\r\n originalCtx.drawImage(img, 0, 0);\r\n\r\n const MAX_WIDTH = 1920;\r\n const MAX_HEIGHT = 1080;\r\n\r\n let width = img.width;\r\n let height = img.height;\r\n\r\n if (width > height) {\r\n if (width > MAX_WIDTH) {\r\n height *= MAX_WIDTH / width;\r\n width = MAX_WIDTH;\r\n }\r\n } else {\r\n if (height > MAX_HEIGHT) {\r\n width *= MAX_HEIGHT / height;\r\n height = MAX_HEIGHT;\r\n }\r\n }\r\n canvas.width = width;\r\n canvas.height = height;\r\n\r\n let resizedCtx = canvas.getContext(\"2d\");\r\n resizedCtx.drawImage(img, 0, 0, width, height);\r\n let dataUrl = canvas.toDataURL(\"image/png\");\r\n\r\n console.log(\"Resized image width: \", width);\r\n\r\n return dataUrl;\r\n };\r\n\r\n const resizeAndSetImage = (img) => {\r\n let dataurl = resizeImage(img);\r\n setImage(dataurl);\r\n };\r\n\r\n const handleFileSelect = async (e) => {\r\n if (!e.target.files[0]) return;\r\n\r\n let img = document.createElement(\"img\");\r\n let imgSrc = await readFile(e.target.files[0]);\r\n\r\n img.src = imgSrc;\r\n if (img.complete) {\r\n resizeAndSetImage(img);\r\n } else {\r\n img.addEventListener(\"load\", () => resizeAndSetImage(img));\r\n }\r\n\r\n return;\r\n };\r\n\r\n return (\r\n <>\r\n {image || preview ? (\r\n
    \r\n
    \r\n {preview ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n {\r\n openPhotoSelect(photoSelectRef.current);\r\n savePhoto(\"\");\r\n }}\r\n >\r\n Välj Nytt foto\r\n \r\n {!preview && (\r\n \r\n )}\r\n
    \r\n {!preview && (\r\n
    \r\n Zoom\r\n
    \r\n setZoom(zoom)}\r\n />\r\n \r\n {Number(zoom).toFixed(1)}\r\n \r\n setZoom(1)}\r\n disabled={zoom === 1}\r\n >\r\n \r\n \r\n
    \r\n Rotation\r\n
    \r\n setRotation(rotation)}\r\n />\r\n \r\n {rotation}\r\n \r\n setRotation(0)}\r\n disabled={rotation === 0}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n openPhotoSelect(photoSelectRef.current)}\r\n className={classes.selectButton}\r\n variant=\"outlined\"\r\n >\r\n \r\n Välj Foto\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PhotoEditor;\r\n","import React from \"react\";\r\nimport { Form } from \"formik\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport RowLayout from \"../../Styles/RowLayout\";\r\nimport FormikTextField from \"./formikTextField\";\r\nimport PhotoEditor from \"../../PhotoEditor\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n photo: { margin: \"16px 0\" },\r\n}));\r\n\r\nconst CustomerForm = (props) => {\r\n const { language, config, image, savePhoto } = props;\r\n const classes = useStyles();\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {(!config ||\r\n (config && config.visibleFields.includes(\"firstName\"))) && (\r\n \r\n )}\r\n {(!config ||\r\n (config && config.visibleFields.includes(\"lastName\"))) && (\r\n \r\n )}\r\n {(!config ||\r\n (config &&\r\n config.visibleFields.includes(\"civicRegistrationNumber\"))) && (\r\n \r\n )}\r\n {(!config || (config && config.visibleFields.includes(\"email\"))) && (\r\n \r\n )}\r\n {(!config ||\r\n (config && config.visibleFields.includes(\"cellPhone\"))) && (\r\n \r\n )}\r\n \r\n {(!config || (config && config.visibleFields.includes(\"photo\"))) && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n {(!config || (config && config.visibleFields.includes(\"street\"))) && (\r\n \r\n )}\r\n {(!config ||\r\n (config && config.visibleFields.includes(\"streetNumber\"))) && (\r\n \r\n )}\r\n \r\n \r\n {(!config ||\r\n (config && config.visibleFields.includes(\"zipCode\"))) && (\r\n \r\n )}\r\n {(!config || (config && config.visibleFields.includes(\"city\"))) && (\r\n \r\n )}\r\n \r\n \r\n {(!config ||\r\n (config && config.visibleFields.includes(\"countryCode\"))) && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CustomerForm;\r\n","import React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Formik } from \"formik\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport { getFormConfig } from \"./util\";\r\nimport initialValues from \"../CustomerForm/Form/initialValues\";\r\nimport validate from \"../CustomerForm/Form/validate\";\r\nimport CustomerForm from \"../CustomerForm/Form\";\r\nimport ArticleSelect from \"./articleSelect\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {},\r\n appbar: {\r\n backgroundColor: theme.app.background[1],\r\n boxShadow: \"none\",\r\n },\r\n indicator: {\r\n backgroundColor: \"var(--nav-active-color)\",\r\n },\r\n addContainer: {\r\n marginTop: \"8px\",\r\n },\r\n addButtonContainer: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n },\r\n noMarginLeft: {\r\n marginLeft: 0,\r\n },\r\n divider: {\r\n marginBottom: \"8px\",\r\n },\r\n}));\r\n\r\nconst Personal = (props) => {\r\n const { product, photo, handleAdd, savePhoto, photoOpen, setPhotoOpen } =\r\n props;\r\n const classes = useStyles();\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const [article, setArticle] = useState(\"\");\r\n const formConfig = getFormConfig(config.formConfig, product);\r\n const photoIsRequired = formConfig.requiredFields.includes(\"photo\");\r\n const noPhotoDisabled = photoIsRequired && !photo;\r\n const productGroupConfig = config.productGroupConfig.find(\r\n (c) => c.name === product.name\r\n );\r\n\r\n return (\r\n {\r\n // console.log(values);\r\n handleAdd(\r\n productGroupConfig?.useGroupsAsItems ? article : product,\r\n values,\r\n actions\r\n );\r\n }}\r\n validate={(values) => validate(values, formConfig, language)}\r\n >\r\n {(props) => {\r\n const { isValid, dirty, submitForm } = props;\r\n const submitDisabled =\r\n !isValid ||\r\n noPhotoDisabled ||\r\n (productGroupConfig?.useGroupsAsItems && !article) ||\r\n !dirty;\r\n\r\n const articleSelectDisabled = !dirty || !isValid;\r\n // console.log(props);\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {productGroupConfig?.useGroupsAsItems ? (\r\n setArticle(e.target.value)}\r\n value={article}\r\n language={language}\r\n useGroupsAsItems={productGroupConfig?.useGroupsAsItems}\r\n group={product}\r\n personal={true}\r\n disabled={articleSelectDisabled}\r\n submitForm={submitForm}\r\n selectArticle={article}\r\n />\r\n ) : (\r\n \r\n \r\n {language?.Article_Add || \"Köp\"}\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 Personal;\r\n","import React, { useContext } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport { addModification } from \"../../common/sale\";\r\nimport { Context, TOAST, CART_ARTICLE_ADD } from \"../../context\";\r\nimport { getCartArticle } from \"../cart/util\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n article: {},\r\n}));\r\n\r\nconst Article = ({ ticket, article, onAdded }) => {\r\n const classes = useStyles();\r\n const rdxDispatch = useDispatch();\r\n const { language, config } = useSelector((state) => ({\r\n language: state.language,\r\n config: state.config,\r\n }));\r\n\r\n const { dispatch } = useContext(Context);\r\n const ticketId = ticket.id;\r\n const articleId = ticket.article.id;\r\n const plu = article.plu;\r\n const fundsId = ticket.fundsId;\r\n const amount = article.price?.amountInclVat;\r\n\r\n const add = () => {\r\n const model = {\r\n ticketId,\r\n articleId,\r\n plu,\r\n fundsId,\r\n amount,\r\n };\r\n rdxDispatch(\r\n addModification(model, (status, msg) => {\r\n if (status >= 400) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: msg,\r\n variant: \"error\",\r\n },\r\n });\r\n }\r\n\r\n onAdded();\r\n const cartArticle = getCartArticle(article, config);\r\n return dispatch({ type: CART_ARTICLE_ADD, payload: cartArticle });\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\n\r\nexport default Article;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport moment from \"moment\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLazyQuery } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport List from \"@material-ui/core/List\";\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport Article from \"./article\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n modification: {},\r\n barcodeInputContainer: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n gridGap: \"16px\",\r\n alignItems: \"baseline\",\r\n \"@media(max-width: 667px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n },\r\n },\r\n ticket: { marginTop: \"16px\" },\r\n addButton: {\r\n alignSelf: \"flex-end\",\r\n marginLeft: \"16px\",\r\n },\r\n disabledButton: {\r\n alignSelf: \"flex-end\",\r\n marginLeft: \"16px\",\r\n color: \"rgba(0, 0, 0, 0.26) !important\",\r\n },\r\n progressButton: {\r\n position: \"absolute\",\r\n },\r\n alert: {\r\n marginTop: \"16px\",\r\n },\r\n}));\r\n\r\nconst TICKET_BY_BARCODE = gql`\r\n query ticketByBarcode($barcode: String, $posId: Int) {\r\n ticketByBarcode(barcode: $barcode, posId: $posId) {\r\n id\r\n applicableModifications {\r\n id\r\n name\r\n priceInclVat\r\n plu\r\n }\r\n article {\r\n id\r\n }\r\n validFrom\r\n validUntil\r\n owner {\r\n firstname\r\n lastname\r\n }\r\n uniqueIdentifier\r\n article {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst Modification = (props) => {\r\n const classes = useStyles();\r\n\r\n //Input field\r\n const [barcode, setBarcode] = useState(\"\");\r\n\r\n //Loaded ticket\r\n const [ticket, setTicket] = useState();\r\n\r\n //Prevent double searches\r\n const [canSearchAgain, setCanSearchAgain] = useState(true);\r\n\r\n const { language, config } = useSelector((state) => ({\r\n language: state.language,\r\n config: state.config,\r\n }));\r\n const { posId } = config;\r\n const [getTicket, { loading, error, data }] = useLazyQuery(\r\n TICKET_BY_BARCODE,\r\n {\r\n fetchPolicy: \"no-cache\",\r\n nextFetchPolicy: \"no-cache\",\r\n }\r\n );\r\n\r\n const onAdded = () => {\r\n setTicket();\r\n setBarcode(\"\");\r\n };\r\n\r\n const executeSearch = () => {\r\n setCanSearchAgain(false);\r\n setTicket();\r\n getTicket({\r\n variables: { barcode, posId },\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n setCanSearchAgain(true);\r\n }, [barcode]);\r\n\r\n useEffect(() => {\r\n if (loading === false && error !== true) {\r\n //API has result (non error)\r\n if (data?.ticketByBarcode?.length > 0) {\r\n //Ticket found\r\n setTicket(data.ticketByBarcode[0]);\r\n } else {\r\n //Ticket not found\r\n if (barcode !== undefined && barcode.length > 0) {\r\n setTicket(false);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [loading]);\r\n\r\n return (\r\n
    \r\n
    \r\n setBarcode(e.target.value)}\r\n fullWidth\r\n type=\"search\"\r\n />\r\n \r\n {language?.Fetch_Ticket || \"Hämta biljett\"}\r\n {loading && (\r\n \r\n )}\r\n \r\n
    \r\n\r\n {error && (\r\n \r\n Ett fel uppstod vid sökning efter biljett med den aktuella\r\n streckkoden.\r\n \r\n )}\r\n\r\n {!error && ticket === false && (\r\n \r\n Hittade ingen biljett med den aktuella streckkoden.\r\n \r\n )}\r\n\r\n {ticket && (\r\n
    \r\n {ticket.article.name}\r\n {ticket.owner && (\r\n {`${ticket.owner.firstname} ${ticket.owner.lastname}`}\r\n )}\r\n {(ticket.validFrom || ticket.validUntil) && (\r\n \r\n {ticket.validFrom && moment(ticket.validFrom).format(\"ll\")} -{\" \"}\r\n {ticket.validUntil && moment(ticket.validUntil).format(\"ll\")}\r\n \r\n )}\r\n {ticket.applicableModifications.length < 1 && (\r\n \r\n Biljetten går inte att förlänga just nu, applicerbar\r\n förlängningsartikel saknas.\r\n \r\n )}\r\n \r\n {ticket.applicableModifications.map((a) => (\r\n onAdded()}\r\n />\r\n ))}\r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Modification;\r\n","import React, { useState, useContext } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Context, TOAST, CART_ARTICLE_ADD } from \"../../context\";\r\nimport { getCartArticle } from \"../cart/util\";\r\nimport { isPersonal, getSaleData } from \"./util\";\r\nimport { addArticle } from \"../../common/sale\";\r\nimport ProductContent from \"../Styles/ProductContent\";\r\nimport ProductHeader from \"./header\";\r\nimport ProductDescription from \"./description\";\r\nimport ProductImage from \"./image\";\r\nimport OverrideStartDate from \"./overrideStartDate\";\r\nimport OpenPrice from \"./openPrice\";\r\nimport ArticleList from \"./articleList\";\r\nimport ArticleSelect from \"./articleSelect\";\r\nimport Personal from \"./personal\";\r\nimport Modification from \"../Modification\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n product: {},\r\n}));\r\n\r\nconst Product = ({ product }) => {\r\n const [overrideDate, setOverrideDate] = useState();\r\n const [photoOpen, setPhotoOpen] = useState(false);\r\n const rdxDispatch = useDispatch();\r\n const { dispatch } = useContext(Context);\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const [quantity, setQuantity] = useState(1);\r\n const [photo, setPhoto] = useState(\"\");\r\n const [loading, setLoading] = React.useState({ id: null, loading: false });\r\n const classes = useStyles();\r\n const isPersonalTicket = isPersonal(config, product);\r\n const productGroupConfig = config.productGroupConfig.find(\r\n (x) => x.name === product.name\r\n );\r\n\r\n const handleAdd = (product, article, values, actions, photo) => {\r\n const cartArticle = getCartArticle(product, config, article);\r\n setLoading({ id: product.plu, loading: true });\r\n const callback = (status, msg) => {\r\n setPhoto(\"\");\r\n setOverrideDate();\r\n if (status >= 400) {\r\n setQuantity(1);\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: msg,\r\n variant: \"error\",\r\n },\r\n });\r\n }\r\n setQuantity(1);\r\n setLoading({ id: product.plu, loading: false });\r\n dispatch({ type: CART_ARTICLE_ADD, payload: cartArticle });\r\n };\r\n const saleData = getSaleData(\r\n product,\r\n article,\r\n values,\r\n photo,\r\n quantity,\r\n overrideDate\r\n );\r\n rdxDispatch(addArticle(saleData, callback));\r\n values && actions.resetForm();\r\n };\r\n if (product.isInfo) {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n \r\n \r\n {product.isModification ? (\r\n \r\n ) : (\r\n \r\n \r\n
    \r\n {product.overrideStartDate && (\r\n \r\n )}\r\n {isPersonalTicket ? (\r\n setPhoto(photo)}\r\n handleAdd={(article, values, actions) =>\r\n handleAdd(product, article, values, actions, photo)\r\n }\r\n />\r\n ) : (\r\n
    \r\n {product.isOpenPrice ? (\r\n handleAdd(article)}\r\n />\r\n ) : !productGroupConfig?.useGroupsAsItems ||\r\n product.articles.length < 3 ? (\r\n handleAdd(article)}\r\n articles={product.articles ? product.articles : [product]}\r\n language={language}\r\n isOverrideStartDate={product.overrideStartDate}\r\n overrideStartDate={overrideDate}\r\n setQuantity={setQuantity}\r\n quantity={quantity}\r\n isLoading={loading}\r\n />\r\n ) : (\r\n handleAdd(group, article)}\r\n articles={product.articles}\r\n group={product}\r\n language={language}\r\n useGroupsAsItems={productGroupConfig?.useGroupsAsItems}\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 Product;\r\n","import React from \"react\";\r\n\r\nconst Ticket = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Ticket;\r\n","import {\r\n Badge,\r\n createStyles,\r\n Group,\r\n Paper,\r\n Text,\r\n ThemeIcon,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport Ticket from \"./icons/Ticket\";\r\nimport React from \"react\";\r\nimport { differenceInDays } from \"date-fns\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst ICON_SIZE = 60;\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n card: {\r\n position: \"relative\",\r\n overflow: \"visible\",\r\n padding: theme.spacing.xl,\r\n paddingTop: theme.spacing.xl * 1.5 + ICON_SIZE / 3,\r\n border: \"1px solid #8A8C93\",\r\n },\r\n\r\n icon: {\r\n position: \"absolute\",\r\n top: -ICON_SIZE / 3,\r\n left: `calc(50% - ${ICON_SIZE / 2}px)`,\r\n },\r\n\r\n title: {\r\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\r\n lineHeight: 1,\r\n },\r\n}));\r\n\r\nconst ExtensionCard = ({ card }) => {\r\n const { language, config } = useSelector((state) => ({\r\n language: state.language,\r\n config: state.config,\r\n }));\r\n const { classes } = useStyles();\r\n\r\n return (\r\n <>\r\n {language.YourTicket}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {card.owner?.firstname} {card.owner?.lastname}\r\n \r\n \r\n {card.validFrom.split(\"T\")[0]} - {card.validUntil.split(\"T\")[0]}\r\n \r\n \r\n {card.article.name}\r\n \r\n {differenceInDays(new Date(card.validUntil), new Date())}{\" \"}\r\n {language.DaysLeft}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ExtensionCard;\r\n","import { Checkbox, createStyles, Text, UnstyledButton } from \"@mantine/core\";\r\nimport React from \"react\";\r\n\r\nconst useStyles = createStyles((theme, { checked }) => ({\r\n button: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n width: \"100%\",\r\n transition: \"background-color 150ms ease, border-color 150ms ease\",\r\n border: `1px solid ${\r\n checked\r\n ? theme.fn.variant({ variant: \"outline\", color: theme.primaryColor })\r\n .border\r\n : theme.colorScheme === \"dark\"\r\n ? theme.colors.dark[8]\r\n : \"#8A8C93\"\r\n }`,\r\n borderRadius: \"6px\",\r\n padding: theme.spacing.sm,\r\n backgroundColor: checked\r\n ? theme.fn.variant({ variant: \"light\", color: theme.primaryColor })\r\n .background\r\n : theme.colorScheme === \"dark\"\r\n ? theme.colors.dark[8]\r\n : theme.white,\r\n marginBottom: theme.spacing.sm,\r\n \":hover\": {\r\n backgroundColor: theme.colors.gray[1],\r\n },\r\n },\r\n\r\n body: {\r\n flex: 1,\r\n marginLeft: theme.spacing.md,\r\n },\r\n checkbox: {\r\n // backgroundColor: checked ? theme.colors.dark[6] : theme.colors.gray[2],\r\n border: checked ? theme.colors.gray[5] : null,\r\n borderRadius: \"4px\",\r\n },\r\n}));\r\n\r\nconst ExtensionModifications = ({\r\n modification,\r\n id,\r\n title,\r\n price,\r\n checked,\r\n checkedSet,\r\n}) => {\r\n const { classes, cx } = useStyles({ checked: checked?.id === id });\r\n\r\n return (\r\n checkedSet(modification)}\r\n className={cx(classes.button)}\r\n >\r\n
    \r\n \r\n {price}\r\n \r\n \r\n {title}\r\n \r\n
    \r\n {\r\n checkedSet(modification);\r\n }}\r\n tabIndex={-1}\r\n styles={{ input: { cursor: \"pointer\" } }}\r\n className={`${classes.checkbox}`}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ExtensionModifications;\r\n","import {\r\n Button,\r\n Container,\r\n createStyles,\r\n Grid,\r\n Image,\r\n Loader,\r\n Popover,\r\n Text,\r\n TextInput,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport React, { useContext, useMemo, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { addModification } from \"../../../common/sale\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport Markdown from \"react-markdown\";\r\nimport { motion } from \"framer-motion\";\r\nimport { SaleContext } from \"../../common/saleProvider\";\r\nimport { useLazyQuery } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport ExtensionCard from \"./ExtensionCard\";\r\nimport ExtensionModifications from \"./ExtensionModifications\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport { Context, OPEN_CART, TOAST } from \"../../../context\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n \"@media screen and (max-width: 768px)\": {\r\n paddingTop: \"0.3rem\",\r\n },\r\n },\r\n titleWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n gap: \"1rem\",\r\n button: {\r\n width: \"fit-content\",\r\n },\r\n },\r\n inputWrapper: {\r\n margin: \"1rem 0rem\",\r\n },\r\n stockWrapper: {\r\n marginTop: \".5rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n marginTop: \".35rem\",\r\n },\r\n },\r\n stockIndicator: {\r\n width: \"1rem\",\r\n height: \"1rem\",\r\n borderRadius: \"50%\",\r\n },\r\n inStock: {\r\n backgroundColor: theme.colors.green[1],\r\n },\r\n outOfStock: {\r\n backgroundColor: theme.colors.red[2],\r\n },\r\n stockText: {\r\n fontSize: \"1rem\",\r\n fontWeight: \"inherit\",\r\n },\r\n price: {\r\n display: \"flex\",\r\n alignItems: \"end\",\r\n justifySelf: \"end\",\r\n fontSize: \"1.25rem\",\r\n fontWeight: \"bold\",\r\n },\r\n list: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n button: {\r\n width: \"fit-content\",\r\n justifySelf: \"end\",\r\n },\r\n descriptionTitle: {\r\n fontSize: \"1rem\",\r\n },\r\n descriptionBody: {\r\n marginTop: \"0.5rem\",\r\n p: {\r\n marginTop: \"-.1rem\",\r\n },\r\n },\r\n buttonWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"end\",\r\n },\r\n actionButton: {\r\n borderRadius: \"50%\",\r\n border: \"none\",\r\n },\r\n actionWrapper: {\r\n backgroundColor: \"#F3F3F4\",\r\n padding: \"0.5rem\",\r\n borderRadius: \"2rem\",\r\n width: \"fit-content\",\r\n minWidth: \"8.2rem\",\r\n },\r\n actionGrid: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"1rem\",\r\n alignItems: \"center\",\r\n marginTop: \"1rem\",\r\n \"@media screen and (min-width: 769px)\": {\r\n gap: \"2rem\",\r\n },\r\n },\r\n alertWrapper: {\r\n marginTop: \"1.25rem\",\r\n width: \"100%\",\r\n },\r\n addToCart: {\r\n justifySelf: \"end\",\r\n },\r\n}));\r\n\r\nconst GET_INTERNAL_FUNDS = gql`\r\n query InternalFundsQuery($barcode: String) {\r\n internalFundsLookup(barcode: $barcode) {\r\n hasInternalFunds\r\n fundsAmount\r\n isRefundable\r\n minimumAmount\r\n maximumAmount\r\n articleId\r\n fundsId\r\n ticketId\r\n }\r\n }\r\n`;\r\n\r\nconst TICKET_BY_BARCODE = gql`\r\n query ticketByBarcode($barcode: String, $posId: Int) {\r\n ticketByBarcode(barcode: $barcode, posId: $posId) {\r\n id\r\n applicableModifications {\r\n id\r\n name\r\n priceInclVat\r\n plu\r\n }\r\n article {\r\n id\r\n }\r\n validFrom\r\n validUntil\r\n owner {\r\n firstname\r\n lastname\r\n }\r\n uniqueIdentifier\r\n article {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst Extension = ({ product, description }) => {\r\n const { config, culture, language } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n }));\r\n\r\n const [value, valueSet] = useState(null);\r\n const [checked, checkedSet] = useState(null);\r\n const [quantity, quantitySet] = useState(1);\r\n const [addedToCart, addedToCartSet] = useState(null);\r\n const [openPrice, openPriceSet] = useState(100);\r\n\r\n const { classes } = useStyles();\r\n const handlers = useRef();\r\n const rdxDispatch = useDispatch();\r\n const saleContext = useContext(SaleContext);\r\n const { sale } = saleContext.state;\r\n const { posId } = config;\r\n const mobile = useMediaQuery(\"(max-width: 768px)\");\r\n const { dispatch } = useContext(Context);\r\n\r\n const [getTicket, { loading, error, data }] = useLazyQuery(\r\n TICKET_BY_BARCODE,\r\n {\r\n fetchPolicy: \"no-cache\",\r\n nextFetchPolicy: \"no-cache\",\r\n }\r\n );\r\n\r\n const [\r\n getFunds,\r\n { loading: loadingFunds, error: errorFunds, data: dataFunds },\r\n ] = useLazyQuery(GET_INTERNAL_FUNDS, {\r\n fetchPolicy: \"no-cache\",\r\n nextFetchPolicy: \"no-cache\",\r\n });\r\n\r\n const getProduct = config.productConfig.filter(\r\n (el) => el?.plu === product?.plu\r\n )?.[0];\r\n const getTranslation =\r\n getProduct &&\r\n getProduct?.translation.filter((el) => el.culture === culture)?.[0];\r\n\r\n const getImage = `${process.env.PUBLIC_URL}/${config?.imageFolderUrl}${getProduct.images?.[0]}`;\r\n\r\n const callback = (status, msg) => {\r\n if (status === 200) {\r\n dispatch({ type: OPEN_CART });\r\n }\r\n if (status !== 200) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: msg,\r\n variant: \"error\",\r\n },\r\n });\r\n }\r\n };\r\n const ticketId = data?.ticketByBarcode?.[0]?.id;\r\n const articleId = data?.ticketByBarcode?.[0]?.article.id;\r\n const plu = checked?.plu;\r\n const fundsId = dataFunds ? dataFunds?.internalFundsLookup?.fundsId : null;\r\n const amount = dataFunds\r\n ? checked?.priceInclVat.replace(/[^0-9\\.]+/g, \"\")\r\n : null;\r\n const handleAdd = () => {\r\n const model = {\r\n ticketId,\r\n articleId,\r\n plu,\r\n fundsId,\r\n amount,\r\n };\r\n\r\n rdxDispatch(\r\n addModification(model, (status, msg) => {\r\n callback(status, msg);\r\n })\r\n );\r\n };\r\n const getExtensions = () => {\r\n getTicket({ variables: { barcode: value, posId: posId } });\r\n getFunds({ variables: { barcode: value, posId: posId } });\r\n };\r\n\r\n const disabledAdd = useMemo(() => {\r\n if (sale) {\r\n const qty = sale.items.filter(\r\n (el) => el.article.plu === product?.plu\r\n )?.[0]?.quantity;\r\n const calc = product?.inStock - (qty ? qty : 0);\r\n if (quantity > calc || quantity === undefined) {\r\n return true;\r\n }\r\n }\r\n }, [sale, product, quantity]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {getTranslation.name}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n valueSet(e.currentTarget.value)}\r\n label={language.Extend}\r\n />\r\n
    \r\n
    \r\n \r\n {loading ? : language.Fetch_Ticket}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {language.CouldNotFindTicket}\r\n \r\n \r\n \r\n
    \r\n {/* */}\r\n {/* */}\r\n {/* \r\n {language.Description}\r\n */}\r\n \r\n \r\n {data && data?.ticketByBarcode.length > 0 && (\r\n \r\n \r\n \r\n \r\n\r\n \r\n {data?.ticketByBarcode.length > 0 && (\r\n \r\n {language.AvailableModifications}\r\n \r\n )}\r\n {data &&\r\n data?.ticketByBarcode.length > 0 &&\r\n data.ticketByBarcode[0].applicableModifications.length > 0 &&\r\n data.ticketByBarcode[0].applicableModifications.map((el) => (\r\n \r\n ))}\r\n \r\n \r\n handleAdd()}\r\n >\r\n {language.AddToCartBtn}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Extension;\r\n","import { createStyles, Image, Select } from \"@mantine/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport \"./styles.css\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n chooseVariant: {\r\n fontWeight: \"bold\",\r\n },\r\n chooseArticle: {\r\n color: theme.colors.gray[7],\r\n marginTop: \"-.5rem\",\r\n fontSize: \"0.8rem\",\r\n fontWeight: \"400\",\r\n },\r\n produtSelectorWrapper: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \".8rem\",\r\n },\r\n productImageSelector: {\r\n width: \"100%\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(auto-fit, minmax(7rem, 1fr))\",\r\n gap: \"1rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n gridTemplateColumns: \"repeat(auto-fit, minmax(6rem, 1fr))\",\r\n },\r\n },\r\n productWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \".5rem\",\r\n },\r\n container: {\r\n marginTop: \"1rem\",\r\n },\r\n wrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \".8rem\",\r\n marginTop: \"0.5rem\",\r\n },\r\n\r\n imageButton: {\r\n width: \"100%\",\r\n border: \"none\",\r\n background: \"none\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n opacity: 0.8,\r\n },\r\n },\r\n\r\n productImage: {\r\n height: \"6rem\",\r\n width: \"7rem\",\r\n objectFit: \"cover\",\r\n \"@media screen and (max-width: 768px)\": { height: \"6rem\", width: \"6rem\" },\r\n },\r\n}));\r\nconst ProductSelector = ({ product, selected, selectedSet }) => {\r\n const [value, valueSet] = useState(null);\r\n const { config, culture, language } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n }));\r\n const { classes } = useStyles();\r\n\r\n const itemsArr =\r\n !product.openPriceValues &&\r\n product.articles.reduce((acc, curr, index) => {\r\n acc.push({\r\n key: index,\r\n value: curr.id,\r\n label:\r\n curr.inStock <= 0\r\n ? curr.name + \" \" + language.ArticleBooking.OutOfStock\r\n : curr.name + \" \" + curr.priceInclVat,\r\n disabled: curr.inStock <= 0,\r\n });\r\n return acc;\r\n }, []);\r\n\r\n const openPriceValues =\r\n product.openPriceValues &&\r\n product.openPriceValues.reduce((acc, curr, index) => {\r\n acc.push({\r\n key: index,\r\n value: curr,\r\n label: curr + \" kr\",\r\n });\r\n return acc;\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (value && product.articles) {\r\n const getItem = product.articles.filter((el) => el.id === value);\r\n if (getItem) {\r\n selectedSet(getItem);\r\n } else {\r\n selectedSet(null);\r\n }\r\n }\r\n if (value && product.openPriceValues) {\r\n selectedSet({ plu: product.plu, priceInclVat: value, quantity: 1 });\r\n }\r\n }, [product, value]);\r\n\r\n const getName = (item) => {\r\n return item.translation.filter((el) => el.culture === culture)[0].name;\r\n };\r\n\r\n const image = (item) => {\r\n if (item.imageFilename) {\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n return `${uri}/articleimage/${item.imageFilename}`;\r\n }\r\n return;\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {config?.useProductImageSelector && !product?.openPriceValues ? (\r\n
    \r\n \r\n {language.ChooseVariant}\r\n \r\n \r\n {language.ChooseArticle}\r\n \r\n
    \r\n {!product?.openPriceValues &&\r\n product.articles.map((el, i) => (\r\n
    \r\n valueSet(el.id)}\r\n aria-label={`${language.ChooseVariant} ${getName(el)} ${\r\n el?.id === value ? language.Chosen : \"\"\r\n }`}\r\n >\r\n \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n ) : (\r\n !product?.openPriceValues &&\r\n itemsArr &&\r\n itemsArr.length > 0 && (\r\n \r\n )\r\n )}\r\n {product?.openPriceValues && (\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ProductSelector;\r\n","import {\r\n ActionIcon,\r\n Button,\r\n Container,\r\n createStyles,\r\n Divider,\r\n Grid,\r\n Group,\r\n Image,\r\n List,\r\n NumberInput,\r\n Text,\r\n ThemeIcon,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport React, {\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { addArticle, addToCartTracking } from \"../../../common/sale\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../../common/state\";\r\nimport { getSaleData } from \"../util\";\r\nimport Markdown from \"react-markdown\";\r\nimport ProductSelector from \"./ProductSelector\";\r\nimport slugify from \"../../common/slugify\";\r\nimport axios from \"axios\";\r\nimport { motion } from \"framer-motion\";\r\nimport \"./styles.css\";\r\nimport { SaleContext } from \"../../common/saleProvider\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport { HiMinusSm, HiPlusSm } from \"react-icons/hi\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n \"@media screen and (max-width: 768px)\": {\r\n paddingTop: \"0.3rem\",\r\n },\r\n },\r\n titleWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n gap: \"1rem\",\r\n button: {\r\n width: \"fit-content\",\r\n },\r\n },\r\n imageWrapper: {\r\n height: \"100%\",\r\n minHeight: \"12rem\",\r\n maxHeight: \"30rem\",\r\n },\r\n image: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n maxHeight: \"30rem\",\r\n },\r\n stockWrapper: {\r\n marginTop: \".5rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n marginTop: \".35rem\",\r\n },\r\n },\r\n stockIndicator: {\r\n width: \"1rem\",\r\n height: \"1rem\",\r\n borderRadius: \"50%\",\r\n },\r\n inStock: {\r\n backgroundColor: theme.colors.green[1],\r\n },\r\n outOfStock: {\r\n backgroundColor: theme.colors.red[2],\r\n },\r\n stockText: {\r\n fontSize: \"1rem\",\r\n fontWeight: \"inherit\",\r\n },\r\n price: {\r\n display: \"flex\",\r\n alignItems: \"end\",\r\n justifySelf: \"end\",\r\n fontSize: \"1.15rem\",\r\n fontWeight: \"bold\",\r\n },\r\n list: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n button: {\r\n width: \"fit-content\",\r\n justifySelf: \"end\",\r\n },\r\n descriptionTitle: {\r\n fontSize: \"1rem\",\r\n },\r\n descriptionBody: {\r\n marginTop: \"0.5rem\",\r\n p: {\r\n marginTop: \"-.1rem\",\r\n },\r\n },\r\n buttonWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"end\",\r\n },\r\n actionButton: {\r\n borderRadius: \"50%\",\r\n border: \"none\",\r\n },\r\n actionWrapper: {\r\n backgroundColor: \"#F3F3F4\",\r\n padding: \"0.3rem 0.4rem\",\r\n borderRadius: \"2rem\",\r\n width: \"fit-content\",\r\n minWidth: \"8.2rem\",\r\n },\r\n actionGrid: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"1rem\",\r\n alignItems: \"center\",\r\n marginTop: \"1.5rem\",\r\n \"@media screen and (min-width: 769px)\": {\r\n gap: \"2rem\",\r\n },\r\n },\r\n alertWrapper: {\r\n width: \"100%\",\r\n },\r\n alertContainer: {\r\n position: \"absolute\",\r\n width: \"15rem\",\r\n marginTop: \"2.5rem\",\r\n },\r\n hideLabel: {\r\n opacity: 0,\r\n position: \"absolute\",\r\n width: \"0px\",\r\n height: \"0px\",\r\n },\r\n}));\r\nconst GroupProduct = ({ product, description }) => {\r\n const { config, culture, language, currency } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const [quantity, quantitySet] = useState(1);\r\n const [addedToCart, addedToCartSet] = useState(null);\r\n const [selected, selectedSet] = useState(null);\r\n const [text, textSet] = useState(\"\");\r\n const { classes } = useStyles();\r\n const handlers = useRef();\r\n const quantityChangeRef = useRef();\r\n const rdxDispatch = useDispatch();\r\n const saleContext = useContext(SaleContext);\r\n const { sale } = saleContext.state;\r\n const mobile = useMediaQuery(\"(max-width: 768px)\");\r\n\r\n const handleAdd = () => {\r\n const productData = [\r\n {\r\n id: selected?.[0]?.plu,\r\n name: selected?.[0]?.name,\r\n price: selected?.[0]?.price?.amountInclVat,\r\n quantity: quantity,\r\n },\r\n ];\r\n addToCartTracking(currency, productData);\r\n announceQuantityChange(quantity);\r\n const callback = (status, msg) => {\r\n if (status === 200) {\r\n quantitySet(1);\r\n addedToCartSet(true);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n if (status !== 200) {\r\n quantitySet(1);\r\n addedToCartSet(false);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n };\r\n let article;\r\n let values;\r\n let photo;\r\n let overrideDate;\r\n const saleData = product.articles\r\n ? getSaleData(selected[0], article, values, photo, quantity, overrideDate)\r\n : {\r\n plu: selected.plu,\r\n quantity: quantity,\r\n priceInclVat: selected.priceInclVat * 100,\r\n };\r\n rdxDispatch(addArticle(saleData, callback));\r\n };\r\n\r\n useEffect(() => {\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/ee-static/shop/${\r\n config?.shopName\r\n }/Texts/${slugify(product.name)}.${culture}.md`\r\n )\r\n .then((res) => textSet(res.data))\r\n .catch((err) => console.log(err));\r\n }, [product]);\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n const img = `${uri}/articleimage/${selected?.[0]?.imageFilename}`;\r\n const regex = /\\D/g;\r\n const reduce =\r\n product.articles &&\r\n product.articles.reduce((acc, curr) => {\r\n acc.push(curr.priceInclVat);\r\n return acc;\r\n }, []);\r\n\r\n const reduceChooseValue =\r\n product.openPriceValues &&\r\n product.openPriceValues.reduce((acc, curr) => {\r\n acc.push(curr);\r\n return acc;\r\n }, []);\r\n\r\n const sortPrice = (prices) => {\r\n if (prices && typeof prices?.[0] === typeof 0) {\r\n const sortOpenPrice = prices.sort((a, b) => a - b);\r\n return sortOpenPrice;\r\n } else if (prices && typeof prices?.[0] === typeof \"\") {\r\n const sortStringValue = prices.sort(\r\n (a, b) => a.replace(regex, \"\") - b.replace(regex, \"\")\r\n );\r\n return sortStringValue;\r\n }\r\n };\r\n\r\n const price = useCallback(() => {\r\n if (product?.priceInclVat > 0) {\r\n return product?.priceInclVat;\r\n }\r\n\r\n if (product?.openPriceValues && !reduceChooseValue) {\r\n return `${language.FromCost} ${product?.openPriceValues?.[0]} kr`;\r\n }\r\n\r\n if (selected?.[0]?.priceInclVat) {\r\n return selected?.[0].priceInclVat;\r\n }\r\n\r\n if (reduce) {\r\n return `${sortPrice(reduce)?.[0]}–${\r\n sortPrice(reduce)?.[sortPrice(reduce).length - 1]\r\n }`;\r\n }\r\n\r\n if (reduceChooseValue) {\r\n return `${sortPrice(reduceChooseValue)?.[0]} kr–${\r\n sortPrice(reduceChooseValue)?.[sortPrice(reduceChooseValue).length - 1]\r\n } kr`;\r\n }\r\n }, [product, selected, reduceChooseValue, reduce]);\r\n\r\n const disabledIncrement = useMemo(() => {\r\n if (sale) {\r\n const qty = sale.items.filter(\r\n (el) => el.article.plu === selected?.[0]?.plu\r\n )?.[0]?.quantity;\r\n const calc = selected?.[0]?.inStock - (qty ? qty : 0);\r\n if (quantity >= calc) {\r\n return true;\r\n }\r\n }\r\n }, [sale, selected, quantity]);\r\n\r\n const disabledAdd = useMemo(() => {\r\n if (sale) {\r\n const qty = sale.items.filter(\r\n (el) => el.article.plu === selected?.[0]?.plu\r\n )?.[0]?.quantity;\r\n const calc = selected?.[0]?.inStock - (qty ? qty : 0);\r\n if (quantity > calc) {\r\n return true;\r\n }\r\n }\r\n }, [sale, selected, quantity]);\r\n\r\n const isAddedToCart = sale?.items.filter(\r\n (el) => el?.article?.plu === selected?.[0]?.plu\r\n );\r\n\r\n const announceQuantityChange = (newQuantity) => {\r\n quantityChangeRef.current.innerText = `${language.Quantity} ${newQuantity}`;\r\n };\r\n\r\n const increment = () => {\r\n handlers.current.increment();\r\n announceQuantityChange(quantity + 1);\r\n };\r\n\r\n const decrement = () => {\r\n handlers.current.decrement();\r\n announceQuantityChange(quantity - 1);\r\n };\r\n\r\n if (!product) return null;\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 {product.name}\r\n \r\n
    \r\n \r\n \r\n {selected && selected?.[0]?.isProduct ? (\r\n \r\n 0 ? \"#40C057\" : \"#FA5252\"\r\n }\r\n size={19}\r\n radius=\"xl\"\r\n >\r\n
    \r\n \r\n }\r\n >\r\n \r\n {selected?.[0].inStock > 0\r\n ? language.In_Stock\r\n : language.Not_In_Stock}\r\n

    \r\n \r\n \r\n ) : (\r\n
    \r\n )}\r\n \r\n\r\n \r\n \r\n {price()}\r\n \r\n \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n decrement()}\r\n disabled={\r\n (!selected && true) ||\r\n quantity === 1 ||\r\n product.isGiftCertificate ||\r\n product.name.includes(\"Presentkort\")\r\n }\r\n aria-label={language.DecreaseQuantity}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n quantitySet(val)}\r\n disabled={\r\n (!selected && true) ||\r\n product.isGiftCertificate ||\r\n product.name.includes(\"Presentkort\")\r\n }\r\n handlersRef={handlers}\r\n max={selected?.[0]?.inStock ? selected?.[0].inStock : 99999}\r\n min={1}\r\n step={1}\r\n styles={{\r\n input: {\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n width: 35,\r\n textAlign: \"center\",\r\n height: 35,\r\n fontWeight: \"600\",\r\n fontSize: \"1.25rem\",\r\n padding: 0,\r\n },\r\n }}\r\n />\r\n increment()}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {disabledAdd && isAddedToCart?.length > 0\r\n ? language.MaxInCart\r\n : disabledAdd && language.Not_In_Stock}\r\n {!disabledAdd && addedToCart\r\n ? language.Added_To_Cart\r\n : !disabledAdd && language.AddToCartBtn}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n {language.Description}\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 GroupProduct;\r\n","import { Autocomplete, createStyles, TextInput } from \"@mantine/core\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n root: {\r\n position: \"relative\",\r\n },\r\n\r\n input: {\r\n height: \"auto\",\r\n paddingTop: 19,\r\n },\r\n\r\n label: {\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n fontSize: theme.fontSizes.xs,\r\n paddingLeft: theme.spacing.sm,\r\n marginTop: \".5rem\",\r\n zIndex: 1,\r\n },\r\n}));\r\n\r\nconst PersonalInputField = ({ form, type, label, placeholder }) => {\r\n const { config } = useSelector((state) => ({\r\n config: state.config,\r\n }));\r\n const { classes } = useStyles();\r\n\r\n const autoCompleteOptions = (type) => {\r\n switch (type) {\r\n case \"firstName\":\r\n return \"given-name\";\r\n case \"lastName\":\r\n return \"family-name\";\r\n case \"civicRegistrationNumber\":\r\n return \"\";\r\n case \"email\":\r\n return \"email\";\r\n case \"cellPhone\":\r\n return \"tel-national\";\r\n case \"street\":\r\n return \"address-line1\";\r\n case \"streetNumber\":\r\n return \"address-line2\";\r\n case \"zipCode\":\r\n return \"postal-code\";\r\n case \"city\":\r\n return \"address-level2\";\r\n case \"countryCode\":\r\n return \"country-name\";\r\n default:\r\n return \"name\";\r\n }\r\n };\r\n\r\n const inputModeType = (type) => {\r\n if (\r\n type === \"cellPhone\" ||\r\n type === \"zipCode\" ||\r\n type === \"civicRegistrationNumber\"\r\n ) {\r\n return \"numeric\";\r\n } else {\r\n return \"text\";\r\n }\r\n };\r\n\r\n const data = form.values.email.trim().length > 0 && !form.values.email.includes(\"@\") ? [\"gmail.com\", \"outlook.com\", \"yahoo.com\", \"me.com\", \"hotmail.com\"].map((provider) => `${form.values.email}@${provider}`) : []\r\n if (!label || !config) return null;\r\n return (\r\n <>\r\n {type === \"email\" ? (\r\n \r\n ) : (\r\n valueSet(event.currentTarget.value)}\r\n label={label}\r\n autoComplete={autoCompleteOptions(type)}\r\n inputMode={inputModeType(type)}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PersonalInputField;\r\n","import { createStyles } from \"@mantine/core\";\r\nimport React from \"react\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n icon: {\r\n width: \"4rem\",\r\n height: \"4rem\",\r\n color: theme.colors.gray[5],\r\n },\r\n}));\r\nconst Upload = () => {\r\n const { classes } = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Upload;\r\n","import {\r\n Button,\r\n createStyles,\r\n Group,\r\n Image,\r\n SimpleGrid,\r\n Slider,\r\n Text,\r\n} from \"@mantine/core\";\r\nimport React, {\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { Dropzone, IMAGE_MIME_TYPE } from \"@mantine/dropzone\";\r\nimport Upload from \"./icons/Upload\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Cropper from \"react-easy-crop\";\r\nimport getCroppedImg from \"../../PhotoEditor/cropImage\";\r\nimport { Context, TOAST } from \"../../../context\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n wrapper: {\r\n position: \"relative\",\r\n marginBottom: 30,\r\n marginTop: \"0\",\r\n },\r\n dropzone: {\r\n borderWidth: 1,\r\n paddingBottom: 100,\r\n },\r\n icon: {\r\n color:\r\n theme.colorScheme === \"dark\"\r\n ? theme.colors.dark[3]\r\n : theme.colors.gray[4],\r\n },\r\n control: {\r\n position: \"absolute\",\r\n width: 250,\r\n left: \"calc(50% - 125px)\",\r\n bottom: 30,\r\n },\r\n cropperWrapper: {},\r\n sliderWrapper: {\r\n marginTop: \"-1rem\",\r\n position: \"relative\",\r\n width: \"100%\",\r\n span: {\r\n fontWeight: \"500\",\r\n paddinBottom: \"0.5rem\",\r\n },\r\n },\r\n slider: {},\r\n resetButton: {\r\n marginTop: \"1rem\",\r\n },\r\n}));\r\n\r\nconst readFile = (file) => {\r\n return new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.addEventListener(\r\n \"load\",\r\n (e) => {\r\n resolve(e.target.result);\r\n },\r\n false\r\n );\r\n reader.readAsDataURL(file);\r\n });\r\n};\r\n\r\nconst PersonalImage = ({ photo, photoSet }) => {\r\n const [file, fileSet] = useState([]);\r\n const [fileUrl, fileUrlSet] = useState(null);\r\n const [crop, setCrop] = useState({ x: 0, y: 0 });\r\n const [zoom, setZoom] = useState(1);\r\n const [rotation, setRotation] = useState(0);\r\n const [croppedAreaPixels, setCroppedAreaPixels] = useState(null);\r\n const { dispatch } = useContext(Context);\r\n\r\n const { classes, theme } = useStyles();\r\n const openRef = useRef(null);\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n\r\n const onCropComplete = useCallback((croppedArea, croppedAreaPixels) => {\r\n setCroppedAreaPixels(croppedAreaPixels);\r\n }, []);\r\n\r\n const saveCroppedImage = async () => {\r\n try {\r\n const croppedImage = await getCroppedImg(\r\n fileUrl,\r\n croppedAreaPixels,\r\n rotation\r\n );\r\n photoSet(croppedImage);\r\n fileUrlSet(null);\r\n fileSet([]);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n };\r\n\r\n const resizeImage = (img) => {\r\n console.log(\"Selected image width: \", img.width);\r\n\r\n let canvas = document.createElement(\"canvas\");\r\n let originalCtx = canvas.getContext(\"2d\");\r\n originalCtx.drawImage(img, 0, 0);\r\n\r\n const MAX_WIDTH = 1920;\r\n const MAX_HEIGHT = 1080;\r\n\r\n let width = img.width;\r\n let height = img.height;\r\n\r\n if (width > height) {\r\n if (width > MAX_WIDTH) {\r\n height *= MAX_WIDTH / width;\r\n width = MAX_WIDTH;\r\n }\r\n } else {\r\n if (height > MAX_HEIGHT) {\r\n width *= MAX_HEIGHT / height;\r\n height = MAX_HEIGHT;\r\n }\r\n }\r\n canvas.width = width;\r\n canvas.height = height;\r\n\r\n let resizedCtx = canvas.getContext(\"2d\");\r\n resizedCtx.drawImage(img, 0, 0, width, height);\r\n let dataUrl = canvas.toDataURL(\"image/png\");\r\n\r\n console.log(\"Resized image width: \", width);\r\n\r\n return dataUrl;\r\n };\r\n\r\n const resizeAndSetImage = (img) => {\r\n let dataurl = resizeImage(img);\r\n fileUrlSet(dataurl);\r\n };\r\n\r\n const readImg = async () => {\r\n let img = document.createElement(\"img\");\r\n let imgSrc = await readFile(file[0]);\r\n\r\n img.src = imgSrc;\r\n if (img.complete) {\r\n resizeAndSetImage(img);\r\n } else {\r\n img.addEventListener(\"load\", () => resizeAndSetImage(img));\r\n }\r\n };\r\n useEffect(() => {\r\n if (file.length !== 0) {\r\n readImg();\r\n }\r\n }, [file]);\r\n\r\n const preview = () => {\r\n if (photo) {\r\n return {language.PersonalPhotoAltLabel};\r\n }\r\n };\r\n\r\n const openFile = (open) => {\r\n if (!photo && open) {\r\n open();\r\n } else {\r\n fileUrlSet(null);\r\n fileSet([]);\r\n photoSet(null);\r\n open();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n {\r\n dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Form_Error_Photo,\r\n variant: \"error\",\r\n },\r\n });\r\n }}\r\n >\r\n {photo ? (\r\n preview()\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 {language.DropPhoto}\r\n {language.FileNotSupported}\r\n {language.UploadPhoto}\r\n \r\n \r\n {language.DragFile} {language.MaxSize}\r\n \r\n
    \r\n )}\r\n \r\n\r\n openFile(openRef.current)}\r\n >\r\n {!photo ? language.Choose_Photo : language.ChangeImage}\r\n \r\n\r\n {fileUrl && (\r\n <>\r\n
    \r\n setZoom(zoom)}\r\n />\r\n
    \r\n \r\n )}\r\n
    \r\n\r\n {fileUrl && (\r\n
    \r\n Zoom\r\n \r\n {language.Rotate}\r\n \r\n \r\n {\r\n fileSet([]);\r\n fileUrlSet(null);\r\n }}\r\n >\r\n {language.ChangeImage}\r\n \r\n {\r\n setRotation(0);\r\n setZoom(1);\r\n setCrop({ x: 0, y: 0 });\r\n }}\r\n >\r\n {language.Reset}\r\n \r\n saveCroppedImage()}\r\n >\r\n {language.Save}\r\n \r\n \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PersonalImage;\r\n","import React from \"react\";\r\n\r\nconst Asterisk = ({ strokeWidth }) => {\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\nexport default Asterisk;\r\n","import React, { useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Button, createStyles, Grid, Group, SimpleGrid } from \"@mantine/core\";\r\nimport { useForm, zodResolver } from \"@mantine/form\";\r\nimport PersonalInputField from \"./PersonalInputField\";\r\nimport PersonalImage from \"./PersonalImage\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport Asterisk from \"./icons/Asterisk\";\r\nimport { getZodSchema } from \"./validate\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n wrapper: {\r\n marginTop: \"2rem\",\r\n },\r\n formTitle: {\r\n display: \"block\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"600\",\r\n marginTop: 0,\r\n marginBottom: \"0.25rem\",\r\n },\r\n formLabel: {\r\n display: \"block\",\r\n fontSize: \".8rem\",\r\n fontWeight: \"400\",\r\n marginTop: 0,\r\n marginBottom: \"1rem\",\r\n },\r\n form: {\r\n marginTop: \".7rem\",\r\n },\r\n asteriskWrapper: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n}));\r\nconst PersonalTicketForm = ({\r\n values,\r\n valuesSet,\r\n photo,\r\n photoSet,\r\n handleAdd,\r\n addedToCart,\r\n}) => {\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const { classes } = useStyles();\r\n const mobile = useMediaQuery(\"(max-width: 768px)\");\r\n\r\n const checkIfRequired = (field) => {\r\n if (config?.formConfig?.[0].requiredFields.includes(field)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const zodSchema = getZodSchema(checkIfRequired, language);\r\n\r\n const form = useForm({\r\n initialValues: {\r\n firstName: \"\",\r\n lastName: \"\",\r\n civicRegistrationNumber: \"\",\r\n email: \"\",\r\n cellPhone: \"\",\r\n street: \"\",\r\n streetNumber: \"\",\r\n zipCode: \"\",\r\n city: \"\",\r\n countryCode: \"\",\r\n },\r\n validateInputOnBlur: [\r\n checkIfRequired(\"firstName\")\r\n ? checkIfRequired(\"firstName\") && \"firstName\"\r\n : \"firstName\",\r\n checkIfRequired(\"lastName\")\r\n ? checkIfRequired(\"lastName\") && \"lastName\"\r\n : \"lastName\",\r\n checkIfRequired(\"civicRegistrationNumber\")\r\n ? checkIfRequired(\"civicRegistrationNumber\") &&\r\n \"civicRegistrationNumber\"\r\n : \"civicRegistrationNumber\",\r\n checkIfRequired(\"email\") ? checkIfRequired(\"email\") && \"email\" : \"email\",\r\n checkIfRequired(\"cellPhone\")\r\n ? checkIfRequired(\"cellPhone\") && \"cellPhone\"\r\n : \"cellPhone\",\r\n checkIfRequired(\"street\")\r\n ? checkIfRequired(\"street\") && \"street\"\r\n : \"street\",\r\n checkIfRequired(\"streetNumber\")\r\n ? checkIfRequired(\"streetNumber\") && \"streetNumber\"\r\n : \"streetNumber\",\r\n checkIfRequired(\"zipCode\")\r\n ? checkIfRequired(\"zipCode\") && \"zipCode\"\r\n : \"zipCode\",\r\n checkIfRequired(\"city\") ? checkIfRequired(\"city\") && \"city\" : \"city\",\r\n checkIfRequired(\"countryCode\")\r\n ? checkIfRequired(\"countryCode\") && \"countryCode\"\r\n : \"countryCode\",\r\n ],\r\n validate: zodResolver(zodSchema),\r\n });\r\n\r\n const handleSubmit = (val) => {\r\n handleAdd(val);\r\n };\r\n\r\n const isValid = () => {\r\n if (checkIfRequired(\"photo\") && photo && form.isValid()) {\r\n return false;\r\n }\r\n if (!checkIfRequired(\"photo\") && form.isValid()) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (addedToCart) {\r\n form.reset();\r\n }\r\n }, [addedToCart]);\r\n\r\n if (!config) return null;\r\n return (\r\n
    \r\n handleSubmit(val))}\r\n className={classes.form}\r\n autoComplete=\"on\"\r\n >\r\n \r\n \r\n

    {language.PersonalDetails}

    \r\n

    {language.FillForm}

    \r\n \r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\"firstName\") && (\r\n \r\n )}\r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\"lastName\") && (\r\n \r\n )}\r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\r\n \"civicRegistrationNumber\"\r\n ) && (\r\n \r\n )}\r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\"email\") && (\r\n \r\n )}\r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\"cellPhone\") && (\r\n \r\n )}\r\n \r\n\r\n \r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\"street\") && (\r\n \r\n \r\n \r\n )}\r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\r\n \"streetNumber\"\r\n ) && (\r\n \r\n \r\n \r\n )}\r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\"zipCode\") && (\r\n \r\n \r\n \r\n )}\r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\"city\") && (\r\n \r\n \r\n \r\n )}\r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\r\n \"countryCode\"\r\n ) && (\r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n \r\n {config &&\r\n config?.formConfig?.[0].visibleFields.includes(\"photo\") && (\r\n <>\r\n
    \r\n

    {language.Photo}

    \r\n {checkIfRequired(\"photo\") && }\r\n
    \r\n

    {language.AddPhoto}

    \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n {addedToCart ? language.Added_To_Cart : language.AddToCartBtn}\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default PersonalTicketForm;\r\n","import { z } from \"zod\";\r\n\r\nexport const getZodSchema = (checkIfRequired, language) => {\r\n const noValidationNeeded = (field, value) => {\r\n return !checkIfRequired(field) && value === \"\";\r\n };\r\n\r\n return z.object({\r\n firstName: z\r\n .string()\r\n .max(100, { message: language.Form_Error_InvalidLength })\r\n .refine(\r\n (value) => noValidationNeeded(\"firstName\", value) || value.length > 1,\r\n {\r\n message: language.Form_Error_FirstName,\r\n }\r\n ),\r\n lastName: z\r\n .string()\r\n .max(100, { message: language.Form_Error_InvalidLength })\r\n .refine(\r\n (value) => noValidationNeeded(\"lastName\", value) || value.length > 1,\r\n {\r\n message: language.Form_Error_LastName,\r\n }\r\n ),\r\n civicRegistrationNumber: z\r\n .string()\r\n .trim()\r\n .refine(\r\n (value) =>\r\n noValidationNeeded(\"civicRegistrationNumber\", value) ||\r\n /^([1-2][0|9]){0,1}[0-9]{2}[0-1][0-9][0-3][0-9][-]{0,1}[0-9]{4}$/.test(\r\n value\r\n ),\r\n {\r\n message: language.Form_Error_CivicRegistrationNumber_Invalid,\r\n }\r\n )\r\n .refine(\r\n (value) =>\r\n noValidationNeeded(\"civicRegistrationNumber\", value) ||\r\n (value.replace(\"-\", \"\").length >= 10 &&\r\n value.replace(\"-\", \"\").length <= 12),\r\n {\r\n message: language.Form_Error_CivicRegistrationNumber_Length,\r\n }\r\n ),\r\n email: z\r\n .string()\r\n .max(100, { message: language.Form_Error_InvalidLength })\r\n .refine(\r\n (value) =>\r\n noValidationNeeded(\"email\", value) ||\r\n z.string().email().safeParse(value).success,\r\n { message: language.Form_Error_Email }\r\n ),\r\n cellPhone: z\r\n .string()\r\n .max(15, { message: language.Form_Error_InvalidLength })\r\n .refine(\r\n (value) =>\r\n noValidationNeeded(\"cellPhone\", value) ||\r\n /^(\\+(\\d{1,3}\\s*)|)\\d{1,4}(-|\\/|\\s|)(\\d\\s*){5,10}$/.test(value),\r\n {\r\n message: language.Form_Error_CellPhone,\r\n }\r\n )\r\n .refine(\r\n (value) => noValidationNeeded(\"cellPhone\", value) || value.length > 9,\r\n {\r\n message: language.Form_Error_CellPhone,\r\n }\r\n ),\r\n street: z\r\n .string()\r\n .max(100, { message: language.Form_Error_InvalidLength })\r\n .refine(\r\n (value) => noValidationNeeded(\"street\", value) || value.length > 1,\r\n {\r\n message: language.Form_Error_Street,\r\n }\r\n ),\r\n streetNumber: z\r\n .string()\r\n .max(100, { message: language.Form_Error_InvalidLength })\r\n .refine(\r\n (value) =>\r\n noValidationNeeded(\"streetNumber\", value) || value.length > 0,\r\n {\r\n message: language.Form_Error_StreetNumber,\r\n }\r\n ),\r\n zipCode: z\r\n .string()\r\n .max(20, { message: language.Form_Error_InvalidLength })\r\n .refine(\r\n (value) =>\r\n noValidationNeeded(\"zipCode\", value) ||\r\n /^[0-9]{3}(\\s?){0,1}[0-9]{2,}$/.test(value),\r\n\r\n {\r\n message: language.Form_Error_CityCode,\r\n }\r\n )\r\n .transform(Number),\r\n city: z\r\n .string()\r\n .max(100, { message: language.Form_Error_InvalidLength })\r\n .refine(\r\n (value) => noValidationNeeded(\"city\", value) || value.length > 1,\r\n {\r\n message: language.Form_Error_City,\r\n }\r\n ),\r\n countryCode: z\r\n .string()\r\n .max(100, { message: language.Form_Error_InvalidLength })\r\n .refine(\r\n (value) => noValidationNeeded(\"countryCode\", value) || value.length > 1,\r\n {\r\n message: language.Form_Error_CountryCode,\r\n }\r\n ),\r\n });\r\n};\r\n","import {\r\n Container,\r\n createStyles,\r\n Grid,\r\n Image,\r\n Popover,\r\n SimpleGrid,\r\n Text,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport React, { useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { addArticle, addToCartTracking } from \"../../../common/sale\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../../common/state\";\r\nimport { getSaleData } from \"../util\";\r\nimport Markdown from \"react-markdown\";\r\nimport { motion } from \"framer-motion\";\r\nimport PersonalTicketForm from \"./PersonalTicketForm\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n \"@media screen and (max-width: 768px)\": {\r\n paddingTop: \"0.3rem\",\r\n },\r\n },\r\n titleWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n gap: \"1rem\",\r\n button: {\r\n width: \"fit-content\",\r\n },\r\n },\r\n stockWrapper: {\r\n marginTop: \".5rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n marginTop: \".35rem\",\r\n },\r\n },\r\n stockIndicator: {\r\n width: \"1rem\",\r\n height: \"1rem\",\r\n borderRadius: \"50%\",\r\n },\r\n inStock: {\r\n backgroundColor: theme.colors.green[1],\r\n },\r\n outOfStock: {\r\n backgroundColor: theme.colors.red[2],\r\n },\r\n stockText: {\r\n fontSize: \"1rem\",\r\n fontWeight: \"inherit\",\r\n },\r\n price: {\r\n display: \"flex\",\r\n alignItems: \"end\",\r\n justifySelf: \"end\",\r\n fontSize: \"1.25rem\",\r\n fontWeight: \"bold\",\r\n alignSelf: \"center\",\r\n },\r\n list: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n button: {\r\n width: \"fit-content\",\r\n justifySelf: \"end\",\r\n },\r\n descriptionTitle: {\r\n fontSize: \"1rem\",\r\n marginTop: \"1rem\",\r\n },\r\n descriptionBody: {\r\n marginTop: \"0.5rem\",\r\n p: {\r\n marginTop: \"-.1rem\",\r\n },\r\n },\r\n buttonWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"end\",\r\n },\r\n actionButton: {\r\n borderRadius: \"50%\",\r\n border: \"none\",\r\n },\r\n actionWrapper: {\r\n backgroundColor: \"#F3F3F4\",\r\n padding: \"0.5rem\",\r\n borderRadius: \"2rem\",\r\n width: \"fit-content\",\r\n minWidth: \"8.2rem\",\r\n },\r\n actionGrid: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"1rem\",\r\n alignItems: \"center\",\r\n marginTop: \"1rem\",\r\n \"@media screen and (min-width: 769px)\": {\r\n gap: \"2rem\",\r\n },\r\n },\r\n alertWrapper: {\r\n width: \"100%\",\r\n },\r\n imageWrapper: {\r\n height: \"100%\",\r\n \"@media screen and (max-width: 990px)\": {\r\n // minHeight: \"25rem\",\r\n },\r\n },\r\n addToCart: {\r\n display: \"flex\",\r\n justifyContent: \"end\",\r\n },\r\n image: {\r\n height: \"100%\",\r\n maxHeight: \"20rem\",\r\n // \"@media screen and (max-width: 990px)\": {\r\n // minHeight: \"25rem\",\r\n // },\r\n },\r\n}));\r\nconst PersonalTicket = ({ product }) => {\r\n const [addedToCart, addedToCartSet] = useState(null);\r\n const [photo, photoSet] = useState(null);\r\n const [values, valuesSet] = useState([]);\r\n const { culture, config, language, currency } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n\r\n const rdxDispatch = useDispatch();\r\n const { classes } = useStyles();\r\n const matches = useMediaQuery(\"(max-width: 990px)\");\r\n\r\n const getTranslation = product.translation.filter(\r\n (el) => el.culture === culture\r\n )[0];\r\n\r\n const productData = [\r\n {\r\n id: product.plu,\r\n name: product.name,\r\n price: product.price.amountInclVat,\r\n quantity: 1,\r\n },\r\n ];\r\n\r\n const handleAdd = (values) => {\r\n const callback = (status, msg) => {\r\n if (status === 200) {\r\n addedToCartSet(true);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n if (status !== 200) {\r\n addedToCartSet(false);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n };\r\n const article = product.id;\r\n let quantity = 1;\r\n let overrideDate;\r\n const saleData = getSaleData(\r\n product,\r\n article,\r\n values,\r\n photo,\r\n quantity,\r\n overrideDate\r\n );\r\n addToCartTracking(currency, productData);\r\n rdxDispatch(addArticle(saleData, callback));\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {getTranslation.name}\r\n \r\n
    \r\n \r\n \r\n {!product.isOpenPrice ? product.priceInclVat : \"\"}\r\n \r\n \r\n \r\n {language.Description}\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 {language.CouldNotAddProduct}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default PersonalTicket;\r\n","import {\r\n ActionIcon,\r\n Button,\r\n Container,\r\n createStyles,\r\n Divider,\r\n Grid,\r\n Group,\r\n Image,\r\n List,\r\n NumberInput,\r\n Text,\r\n ThemeIcon,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport React, { useContext, useMemo, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { addArticle, addToCartTracking } from \"../../../common/sale\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../../common/state\";\r\nimport { getSaleData } from \"../util\";\r\nimport Markdown from \"react-markdown\";\r\nimport { motion } from \"framer-motion\";\r\nimport PersonalTicket from \"./PersonalTicket\";\r\nimport { SaleContext } from \"../../common/saleProvider\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport { HiMinusSm, HiPlusSm } from \"react-icons/hi\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n \"@media screen and (max-width: 768px)\": {\r\n paddingTop: \"0.3rem\",\r\n },\r\n },\r\n titleWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n gap: \"1rem\",\r\n button: {\r\n width: \"fit-content\",\r\n },\r\n },\r\n stockWrapper: {\r\n marginTop: \".5rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n marginTop: \".35rem\",\r\n },\r\n },\r\n stockIndicator: {\r\n width: \"1rem\",\r\n height: \"1rem\",\r\n borderRadius: \"50%\",\r\n },\r\n inStock: {\r\n backgroundColor: theme.colors.green[1],\r\n },\r\n outOfStock: {\r\n backgroundColor: theme.colors.red[2],\r\n },\r\n stockText: {\r\n fontSize: \"1rem\",\r\n fontWeight: \"inherit\",\r\n },\r\n price: {\r\n display: \"flex\",\r\n alignItems: \"end\",\r\n justifySelf: \"end\",\r\n fontSize: \"1.15rem\",\r\n fontWeight: \"bold\",\r\n },\r\n list: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n button: {\r\n width: \"fit-content\",\r\n justifySelf: \"end\",\r\n },\r\n descriptionTitle: {\r\n fontSize: \"1rem\",\r\n },\r\n descriptionBody: {\r\n marginTop: \"0.5rem\",\r\n p: {\r\n marginTop: \"-.1rem\",\r\n },\r\n },\r\n buttonWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"end\",\r\n },\r\n actionButton: {\r\n borderRadius: \"50%\",\r\n border: \"none\",\r\n },\r\n actionWrapper: {\r\n backgroundColor: \"#F3F3F4\",\r\n padding: \"0.3rem 0.4rem\",\r\n borderRadius: \"2rem\",\r\n width: \"fit-content\",\r\n minWidth: \"8.2rem\",\r\n justifyContent: \"space-between !important\",\r\n },\r\n actionGrid: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"1rem\",\r\n alignItems: \"center\",\r\n marginTop: \"1rem\",\r\n \"@media screen and (min-width: 769px)\": {\r\n gap: \"2rem\",\r\n },\r\n },\r\n alertWrapper: {\r\n width: \"100%\",\r\n },\r\n hideLabel: {\r\n opacity: 0,\r\n position: \"absolute\",\r\n width: \"0px\",\r\n height: \"0px\",\r\n },\r\n}));\r\n\r\nconst SingleProduct = ({ product, description }) => {\r\n const { culture, language, currency } = useSelector((state) => ({\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n\r\n const [quantity, quantitySet] = useState(1);\r\n const [addedToCart, addedToCartSet] = useState(null);\r\n const [openPrice, openPriceSet] = useState(100);\r\n const { classes } = useStyles();\r\n const handlers = useRef();\r\n const quantityChangeRef = useRef();\r\n const rdxDispatch = useDispatch();\r\n const saleContext = useContext(SaleContext);\r\n const { sale } = saleContext.state;\r\n const mobile = useMediaQuery(\"(max-width: 768px)\");\r\n\r\n const getTranslation = product?.translation.filter(\r\n (el) => el?.culture === culture\r\n )?.[0];\r\n\r\n const productData = [\r\n {\r\n id: product.plu,\r\n name: product.name,\r\n price: product.price.amountInclVat,\r\n quantity: quantity,\r\n },\r\n ];\r\n\r\n const handleAdd = () => {\r\n addToCartTracking(currency, productData);\r\n announceQuantityChange(quantity);\r\n\r\n const callback = (status, msg) => {\r\n if (status === 200) {\r\n quantitySet(1);\r\n addedToCartSet(true);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n if (status !== 200) {\r\n quantitySet(1);\r\n addedToCartSet(false);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n };\r\n let article;\r\n let values;\r\n let photo;\r\n let overrideDate;\r\n const saleData = !product.isOpenPrice\r\n ? getSaleData(product, article, values, photo, quantity, overrideDate)\r\n : {\r\n plu: product.plu,\r\n quantity: quantity,\r\n priceInclVat: openPrice * 100,\r\n };\r\n rdxDispatch(addArticle(saleData, callback));\r\n };\r\n // const placeholder = `${process.env.PUBLIC_URL}/ee-static/shop/${config?.shopName}/Images/placeholder.png`;\r\n const disabledIncrement = useMemo(() => {\r\n if (sale) {\r\n const qty = sale.items.filter(\r\n (el) => el.article.plu === product?.plu\r\n )?.[0]?.quantity;\r\n const calc = product?.inStock - (qty ? qty : 0);\r\n if (quantity >= calc) {\r\n return true;\r\n }\r\n }\r\n }, [sale, product, quantity]);\r\n\r\n const disabledAdd = useMemo(() => {\r\n if (sale) {\r\n const qty = sale.items.filter(\r\n (el) => el.article.plu === product?.plu\r\n )?.[0]?.quantity;\r\n const calc = product?.inStock - (qty ? qty : 0);\r\n if (\r\n quantity > calc ||\r\n quantity === undefined ||\r\n (product.isOpenPrice && !openPrice)\r\n ) {\r\n return true;\r\n }\r\n }\r\n }, [sale, product, quantity, openPrice]);\r\n\r\n const isAddedToCart = sale?.items.filter(\r\n (el) => el.article.plu === product.plu\r\n );\r\n\r\n const announceQuantityChange = (newQuantity) => {\r\n quantityChangeRef.current.innerText = `${language.Quantity} ${newQuantity}`;\r\n };\r\n\r\n const increment = () => {\r\n handlers.current.increment();\r\n announceQuantityChange(quantity + 1);\r\n };\r\n\r\n const decrement = () => {\r\n handlers.current.decrement();\r\n announceQuantityChange(quantity - 1);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {getTranslation.name}\r\n \r\n
    \r\n \r\n \r\n \r\n {product.isProduct && (\r\n 0 ? \"#40C057\" : \"#FA5252\"}\r\n size={19}\r\n radius=\"xl\"\r\n >\r\n
    \r\n \r\n }\r\n >\r\n

    \r\n {product.inStock > 0\r\n ? language.In_Stock\r\n : language.Not_In_Stock}\r\n

    \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!product.isOpenPrice ? product.priceInclVat : \"\"}\r\n \r\n \r\n \r\n {product.isPersonalTicket && }\r\n {product.isOpenPrice && (\r\n
    \r\n openPriceSet(val)}\r\n min={1}\r\n icon={\r\n \r\n kr\r\n \r\n }\r\n parser={(value) => value.replace(/[$€]\\s?|(,*)/g, \"\")}\r\n formatter={(value) =>\r\n !Number.isNaN(parseFloat(value))\r\n ? `${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"\")\r\n : \"\"\r\n }\r\n />\r\n
    \r\n )}\r\n
    \r\n \r\n \r\n decrement()}\r\n aria-label={`${getTranslation.name} ${language.DecreaseQuantity}`}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n quantitySet(val)}\r\n handlersRef={handlers}\r\n max={product.inStock}\r\n min={1}\r\n step={1}\r\n disabled={\r\n product.inStock <= 0 ||\r\n (product.isOpenPrice && !openPrice) ||\r\n product.isGiftCertificate\r\n }\r\n styles={{\r\n input: {\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n width: 35,\r\n textAlign: \"center\",\r\n height: 35,\r\n fontWeight: \"600\",\r\n fontSize: \"1.25rem\",\r\n padding: 0,\r\n },\r\n }}\r\n />\r\n increment()}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n {!product.isOpenPrice &&\r\n disabledAdd &&\r\n isAddedToCart?.length > 0\r\n ? language.MaxInCart\r\n : !product.isOpenPrice &&\r\n disabledAdd &&\r\n language.Not_In_Stock}\r\n\r\n {!disabledAdd && addedToCart\r\n ? language.Added_To_Cart\r\n : !disabledAdd && language.AddToCartBtn}\r\n\r\n {product.isOpenPrice && disabledAdd && language.AddToCartBtn}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n {language.Description}\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 SingleProduct;\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { MdAddCircle, MdRemoveCircle } from \"react-icons/md\";\r\nimport { Text } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useContext } from \"react\";\r\nimport { SaleContext } from \"../../../common/saleProvider\";\r\n\r\nconst GroupArticleButtons = ({\r\n max,\r\n ticketData,\r\n groupTicketCart,\r\n groupTicketCartSet,\r\n}) => {\r\n const [quantity, quantitySet] = useState(0);\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n\r\n const spring = {\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 30,\r\n };\r\n const { state } = useContext(SaleContext);\r\n\r\n const groupTicketInSale = state.sale?.items?.some(\r\n (item) => item.article.plu === groupTicketCart.plu\r\n );\r\n\r\n useEffect(() => {\r\n if (groupTicketInSale) {\r\n quantitySet(0);\r\n }\r\n }, [groupTicketInSale]);\r\n\r\n const disabled = useMemo(() => {\r\n if (groupTicketInSale) {\r\n return true;\r\n }\r\n if (config?.useMultiTicketQuantityOverride) {\r\n if (max === 0) return true;\r\n } else if (\r\n !config?.useMultiTicketQuantityOverride &&\r\n quantity === ticketData.maximumNumber\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }, [groupTicketInSale, quantity, max]);\r\n\r\n const ticketOwners = useMemo(() => {\r\n const getOwners = groupTicketCart?.ticketOwners?.filter(\r\n (el) => el.ticketHolderCategoryId === ticketData.categoryId\r\n );\r\n if (getOwners && getOwners.length > 0) {\r\n return getOwners?.[0];\r\n }\r\n return null;\r\n }, [groupTicketCart]);\r\n\r\n const increase = () => {\r\n if (!ticketOwners) {\r\n let cart = groupTicketCart;\r\n cart.ticketOwners.push({\r\n quantity: 1,\r\n ticketHolderCategoryId: ticketData.categoryId,\r\n });\r\n }\r\n quantitySet(quantity + 1);\r\n };\r\n\r\n const decrease = () => {\r\n if (quantity > 0) {\r\n quantitySet(quantity - 1);\r\n }\r\n };\r\n\r\n const updateGroupTicketCart = (newQuantity) => {\r\n const updatedCart = {\r\n ...groupTicketCart,\r\n ticketOwners: groupTicketCart?.ticketOwners\r\n ?.map((owner) => {\r\n if (owner.ticketHolderCategoryId === ticketData.categoryId) {\r\n if (newQuantity === 0) {\r\n return null;\r\n } else {\r\n return {\r\n ...owner,\r\n quantity: newQuantity,\r\n };\r\n }\r\n }\r\n\r\n return owner;\r\n })\r\n .filter(Boolean),\r\n };\r\n groupTicketCartSet(updatedCart);\r\n };\r\n\r\n useEffect(() => {\r\n updateGroupTicketCart(quantity);\r\n if (quantity === 0) {\r\n const filterTicketOwner = groupTicketCart.ticketOwners.filter(\r\n (owner) => owner.ticketHolderCategoryId !== ticketData.categoryId\r\n );\r\n const updatedCart = {\r\n ...groupTicketCart,\r\n ticketOwners: filterTicketOwner,\r\n };\r\n }\r\n }, [quantity]);\r\n\r\n return (\r\n
    \r\n 0 ? true : \"\"}\r\n transition={spring}\r\n layout\r\n />\r\n 0 ? true : \"\"}\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n style={{\r\n pointerEvents: disabled ? \"none\" : \"\",\r\n }}\r\n >\r\n increase()}\r\n aria-label={`${language?.AddQuantity} ${ticketData.categoryName}`}\r\n style={{ border: \"none\", background: \"none\" }}\r\n disabled={disabled}\r\n >\r\n \r\n \r\n \r\n 0 ? true : false}\r\n layout\r\n transition={spring}\r\n aria-live=\"assertive\"\r\n >\r\n \r\n {quantity}\r\n \r\n \r\n 0 ? true : \"\"}\r\n className=\"handle2\"\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n >\r\n decrease()}\r\n aria-label={`${language?.DecreaseQuantity} ${ticketData.categoryName}`}\r\n disabled={quantity === 0 ? true : false}\r\n style={{ border: \"none\", background: \"none\" }}\r\n >\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default GroupArticleButtons;\r\n","import React, { useMemo } from \"react\";\r\nimport { Grid, Stack, Text } from \"@mantine/core\";\r\nimport GroupArticleButtons from \"./GroupArticleButtons\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst GroupArticle = ({\r\n allTicketsData,\r\n ticketData,\r\n groupTicketCart,\r\n groupTicketCartSet,\r\n}) => {\r\n const { config } = useSelector((state) => ({\r\n config: state.config,\r\n }));\r\n\r\n const getMaxQuantity = useMemo(() => {\r\n const maxQuantity = Math.max(\r\n ...allTicketsData.map((ticket) => ticket.maximumNumber)\r\n );\r\n return maxQuantity;\r\n }, [allTicketsData]);\r\n\r\n const max = useMemo(() => {\r\n if (config?.useMultiTicketQuantityOverride && groupTicketCart) {\r\n const reduce = groupTicketCart.ticketOwners.reduce((acc, curr) => {\r\n acc += curr.quantity;\r\n return acc;\r\n }, 0);\r\n return getMaxQuantity - reduce;\r\n } else {\r\n return ticketData.maximumNumber;\r\n }\r\n }, [config, groupTicketCart, ticketData]);\r\n\r\n return (\r\n \r\n \r\n \r\n {ticketData.categoryName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupArticle;\r\n","import {\r\n Button,\r\n Container,\r\n createStyles,\r\n Divider,\r\n Grid,\r\n Group,\r\n Image,\r\n SimpleGrid,\r\n Text,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n addArticleGroupTicket,\r\n addToCartTracking,\r\n} from \"../../../../common/sale\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../../../common/state\";\r\nimport Markdown from \"react-markdown\";\r\nimport { motion } from \"framer-motion\";\r\nimport { SaleContext } from \"../../../common/saleProvider\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport GroupArticle from \"./GroupArticle\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n \"@media screen and (max-width: 768px)\": {\r\n paddingTop: \"0.3rem\",\r\n },\r\n },\r\n titleWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n gap: \"1rem\",\r\n button: {\r\n width: \"fit-content\",\r\n },\r\n },\r\n price: {\r\n display: \"flex\",\r\n alignItems: \"end\",\r\n justifySelf: \"end\",\r\n fontSize: \"1.15rem\",\r\n fontWeight: \"bold\",\r\n },\r\n descriptionTitle: {\r\n fontSize: \"1rem\",\r\n },\r\n descriptionBody: {\r\n marginTop: \"0.5rem\",\r\n p: {\r\n marginTop: \"-.1rem\",\r\n },\r\n },\r\n actionGrid: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"1rem\",\r\n alignItems: \"center\",\r\n marginTop: \"2rem\",\r\n justifyContent: \"space-between\",\r\n \"@media screen and (min-width: 769px)\": {\r\n gap: \"2rem\",\r\n },\r\n },\r\n alertWrapper: {\r\n width: \"60%\",\r\n },\r\n hideLabel: {\r\n opacity: 0,\r\n position: \"absolute\",\r\n width: \"0px\",\r\n height: \"0px\",\r\n },\r\n}));\r\n\r\nconst MultiTicket = ({ product, description }) => {\r\n const { culture, language, currency } = useSelector((state) => ({\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n\r\n const [groupTicketCart, groupTicketCartSet] = useState({\r\n plu: product.plu,\r\n quantity: 1,\r\n ticketOwners: [],\r\n });\r\n\r\n const [addedToCart, addedToCartSet] = useState(null);\r\n const [disabled, setDisabled] = useState(true);\r\n const { classes } = useStyles();\r\n const rdxDispatch = useDispatch();\r\n const saleContext = useContext(SaleContext);\r\n const { sale } = saleContext.state;\r\n const mobile = useMediaQuery(\"(max-width: 768px)\");\r\n\r\n const getTranslation = product?.translation.filter(\r\n (el) => el?.culture === culture\r\n )?.[0];\r\n\r\n const groupTicketInSale = sale?.items?.some(\r\n (item) => item.article.plu === groupTicketCart.plu\r\n );\r\n\r\n useEffect(() => {\r\n if (groupTicketCart.ticketOwners.length > 0) {\r\n setDisabled(false);\r\n } else {\r\n setDisabled(true);\r\n }\r\n }, [groupTicketCart]);\r\n\r\n const addGroupTicket = () => {\r\n const trackingGroupTicket = [\r\n {\r\n id: product.plu,\r\n quantity: 1,\r\n price: product.price.amountInclVat,\r\n name: product.name,\r\n },\r\n ];\r\n const callback = (status, msg) => {\r\n if (status === 200) {\r\n addedToCartSet(true);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n if (status !== 200) {\r\n addedToCartSet(false);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n };\r\n\r\n addToCartTracking(currency, trackingGroupTicket);\r\n groupTicketCartSet({\r\n plu: product.plu,\r\n quantity: 1,\r\n ticketOwners: [],\r\n });\r\n setTimeout(() => {\r\n rdxDispatch(addArticleGroupTicket(groupTicketCart, callback));\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {getTranslation.name}\r\n \r\n
    \r\n \r\n {language.GroupTicketDescription}\r\n \r\n \r\n {product.ticketHolders.map((el) => (\r\n
    \r\n \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n \r\n \r\n \r\n {!product.isOpenPrice ? product.priceInclVat : \"\"}\r\n \r\n \r\n \r\n \r\n {groupTicketInSale && !addedToCart\r\n ? language.MaxInCart\r\n : addedToCart\r\n ? language.Added_To_Cart\r\n : language.AddToCartBtn}\r\n \r\n
    \r\n
    \r\n \r\n \r\n {language.Description}\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MultiTicket;\r\n","import { Button, Container, createStyles } from \"@mantine/core\";\r\nimport axios from \"axios\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport Extension from \"./Extension\";\r\nimport GroupProduct from \"./GroupProduct\";\r\nimport PersonalTicket from \"./PersonalTicket\";\r\nimport SingleProduct from \"./SingleProduct\";\r\nimport { navigate } from \"@reach/router\";\r\nimport MultiTicket from \"./MultiTicket/\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n marginTop: \"-0rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n marginTop: 0,\r\n },\r\n },\r\n button: {\r\n border: \"1px solid #8A8C93\",\r\n },\r\n buttonWrapper: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"start\",\r\n paddingTop: 0,\r\n paddingBottom: \".5rem\",\r\n },\r\n}));\r\nconst ProductV2 = ({ product }) => {\r\n const [description, descriptionSet] = useState(null);\r\n const { language, culture } = useSelector((state) => ({\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const { classes } = useStyles();\r\n\r\n useEffect(() => {\r\n if (product.description !== undefined) {\r\n axios\r\n .get(`${process.env.PUBLIC_URL}/${product.description}.${culture}.md`)\r\n .then((res) => descriptionSet(res.data))\r\n .catch((err) => console.log(err));\r\n }\r\n return () => descriptionSet(null);\r\n }, [product]);\r\n\r\n return (\r\n
    \r\n \r\n navigate(-1)}\r\n >\r\n {language.Back}\r\n \r\n \r\n {product?.articles || product?.openPriceValues?.length > 0 ? (\r\n \r\n ) : product.isMultiTicket ? (\r\n \r\n ) : !product.isPersonalTicket && !product.isModification ? (\r\n \r\n ) : product.isModification ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default ProductV2;\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { getProduct } from \"./util\";\r\nimport Product from \"../../components/Product\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport { DataContext } from \"../../components/common/dataProvider\";\r\nimport ProductV2 from \"../../components/Product/ProductV2\";\r\nimport { Button, Container, Text, Title } from \"@mantine/core\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport { SaleContext } from \"../../components/common/saleProvider\";\r\n\r\nconst ProductPage = ({ id }) => {\r\n const { config, culture, language } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n }));\r\n const { data } = useContext(DataContext);\r\n const saleContext = useContext(SaleContext);\r\n const { sale } = saleContext.state;\r\n\r\n const product = useMemo(\r\n () => getProduct(data, config, id, culture),\r\n [data, id, config, culture, sale]\r\n );\r\n const navigate = useNavigate();\r\n const isProduct = product?.plu || product?.articles;\r\n\r\n if (!product || !isProduct) {\r\n return (\r\n \r\n \r\n \r\n \r\n {language.CouldNotFindProductHeader}\r\n \r\n \r\n {language.CouldNotFindProductText}\r\n \r\n navigate(-1)}\r\n className=\"primaryButton\"\r\n variant=\"filled\"\r\n size=\"md\"\r\n radius=\"sm\"\r\n >\r\n {language.BackToHomepage}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {config?.useNewProductPage ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProductPage;\r\n","import slugify from \"../../components/common/slugify\";\r\n\r\nconst extendEvent = (event, allotment, config) => {\r\n const { imageFolderUrl, descriptionFolderUrl } = config;\r\n return {\r\n ...allotment,\r\n name: allotment?.description,\r\n description: event?.description\r\n ? `${descriptionFolderUrl}${event.description}`\r\n : undefined,\r\n images: event?.images\r\n ? event.images.map(\r\n (img) => `${process.env.PUBLIC_URL}${imageFolderUrl}${img}`\r\n )\r\n : undefined,\r\n };\r\n};\r\n\r\nexport const getEvent = (data, config, id) => {\r\n if (!data) return undefined;\r\n const eventConfig = config.eventConfig?.find((c) => slugify(c.name) === id);\r\n const allotment = data.allotments.find((a) => slugify(a.description) === id);\r\n return extendEvent(eventConfig, allotment, config);\r\n};\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport QuantitySelect from \"../common/quantitySelect\";\r\nimport { Context, TOAST, CART_ARTICLE_ADD, OPEN_ALERT } from \"../../context\";\r\nimport { addAllotment } from \"../../common/sale\";\r\nimport { getCartArticle } from \"../cart/util\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n article: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto\",\r\n gridGap: \"8px\",\r\n alignItems: \"center\",\r\n padding: \"8px\",\r\n borderBottom: `1px solid ${theme.app.borderColor}`,\r\n \"&:first-child\": {\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n },\r\n },\r\n articleName: {\r\n fontSize: \"1rem\",\r\n },\r\n articlePrice: {\r\n color: theme.app.secondaryColor,\r\n },\r\n full: {\r\n color: theme.app.dangerColor,\r\n },\r\n actions: {\r\n display: \"flex\",\r\n },\r\n addButton: {\r\n alignSelf: \"flex-end\",\r\n marginLeft: \"16px\",\r\n },\r\n disabledButton: {\r\n opacity: \"0.3\",\r\n pointerEvents: \"none\",\r\n },\r\n buttonProgress: {\r\n position: \"absolute\",\r\n },\r\n}));\r\n\r\nconst Article = (props) => {\r\n const { a, occasion, eventImage } = props;\r\n const classes = useStyles();\r\n const rdxDispatch = useDispatch();\r\n const [quantity, setQuantity] = useState(1);\r\n const [loading, setLoading] = useState(false);\r\n const { dispatch } = useContext(Context);\r\n const { language, config, culture } = useSelector((state) => ({\r\n language: state.language,\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n\r\n useEffect(() => {\r\n sessionStorage.setItem(\"addingOccasions\", \"null\");\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (loading === false) {\r\n sessionStorage.setItem(\"addingOccasions\", \"null\");\r\n }\r\n }, [loading]);\r\n let session = sessionStorage.getItem(\"addingOccasions\");\r\n\r\n const add = () => {\r\n sessionStorage.setItem(\"addingOccasions\", \"adding\");\r\n setLoading(true);\r\n rdxDispatch(addAllotment(saleData, cb));\r\n };\r\n\r\n const cartArticle = getCartArticle(a, config, a, eventImage);\r\n\r\n const cb = (status, msg) => {\r\n sessionStorage.setItem(\"addingOccasions\", \"null\");\r\n setQuantity(1);\r\n setLoading(false);\r\n\r\n if (status === 406) {\r\n return dispatch({\r\n type: OPEN_ALERT,\r\n payload: {\r\n text: language.Could_Not_Reserve,\r\n severity: \"error\",\r\n },\r\n });\r\n } else if (status >= 400) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: msg,\r\n variant: \"error\",\r\n },\r\n });\r\n }\r\n dispatch({\r\n type: CART_ARTICLE_ADD,\r\n payload: cartArticle,\r\n });\r\n };\r\n const saleData = {\r\n plu: a.plu,\r\n quantity: quantity,\r\n allotmentId: occasion.allotment.id,\r\n allotmentOccasion: occasion.time,\r\n };\r\n const disabled = () => {\r\n if (occasion.remaining < 1) {\r\n return true;\r\n } else if (loading) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n const getMax = () =>\r\n Math.min(occasion.allotment.maxPerSale, occasion.remaining);\r\n const translatedName =\r\n a.translation.find((t) => t.culture === culture)?.name ||\r\n a.translation.find((t) => t.culture === \"sv-SE\")?.name ||\r\n a.name;\r\n return (\r\n
    \r\n
    \r\n \r\n {translatedName}\r\n \r\n \r\n {a.priceInclVat}\r\n \r\n
    \r\n
    \r\n {occasion.remaining < 1 ? (\r\n \r\n {language.Allotment_Full}\r\n \r\n ) : (\r\n <>\r\n setQuantity(v)}\r\n language={language}\r\n value={quantity}\r\n hideLabel={true}\r\n max={getMax()}\r\n />\r\n add()}\r\n className={`${classes.addButton} ${\r\n session === \"adding\" ? classes.disabledButton : \"\"\r\n }`}\r\n disabled={disabled()}\r\n color=\"primary\"\r\n >\r\n {language.Article_Add}\r\n {loading && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Article;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport moment from \"moment\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Article from \"./article\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\n\r\nconst useStyles = makeStyles(\r\n (theme) =>\r\n console.log(theme) || {\r\n container: {},\r\n timeContainer: {\r\n width: \"320px\",\r\n margin: \"0 auto\",\r\n },\r\n timePickerContainer: {\r\n width: \"320px\",\r\n margin: \"0 auto\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(4, 1fr)\",\r\n gridGap: \"1px\",\r\n boxShadow: theme.shadows[1],\r\n backgroundColor: \"#e5e5e5\",\r\n marginBottom: \"24px\",\r\n },\r\n timePickerItem: {\r\n backgroundColor: theme.app.background[1],\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n minHeight: \"50px\",\r\n cursor: \"pointer\",\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 \"&:focus\": {\r\n border: \"3px solid black\",\r\n borderRadius: \"3px\",\r\n },\r\n },\r\n selected: {\r\n backgroundColor: \"black\",\r\n color: \"white\",\r\n \"&:hover\": {\r\n backgroundColor: \"black\",\r\n color: \"white\",\r\n },\r\n },\r\n disabled: {\r\n pointerEvents: \"none\",\r\n color: \"black\",\r\n opacity: \"0.6\",\r\n },\r\n ticketsContainer: {},\r\n ticketsHeading: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"auto 1fr\",\r\n gridGap: \"16px\",\r\n alignItems: \"baseline\",\r\n },\r\n headingInfo: { textAlign: \"right\" },\r\n remaining: {\r\n fontSize: \"0.625rem\",\r\n color: \"inherit\",\r\n },\r\n remainingSelected: { color: \"white\" },\r\n }\r\n);\r\n\r\nconst TimePicker = (props) => {\r\n const { occasions, eventImage } = props;\r\n const classes = useStyles();\r\n const { language, config } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const [occasion, setOccasion] = useState();\r\n const [filteredTickets, setFilteredTickets] = useState();\r\n useEffect(() => {\r\n if (occasion) {\r\n setFilteredTickets(null);\r\n const filteredOccasion = occasions.find((o) => o.time === occasion.time);\r\n if (filteredOccasion) {\r\n const articles = filteredOccasion.articles.sort(\r\n (a, b) => a.plu - b.plu\r\n );\r\n setFilteredTickets(articles);\r\n }\r\n }\r\n }, [occasion, occasions]);\r\n\r\n const getRemainingText = (remaining) => {\r\n if (remaining < 1) return language.Full;\r\n if (remaining < 2)\r\n return `${language.ApproximatelyShort} ${remaining} ${language.Spot}`;\r\n return `${language.ApproximatelyShort} ${remaining} ${language.Spots}`;\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {language.Choose_Time}\r\n
    \r\n
    \r\n {occasions.map((o, i) => {\r\n const selected = occasion ? occasion.time === o.time : false;\r\n const disabled = o.remaining < 1;\r\n return (\r\n setOccasion(o)}\r\n disabled={disabled}\r\n >\r\n
    \r\n \r\n {moment(o.time).format(\"HH:mm\")}\r\n \r\n {config.showRemaining && (\r\n \r\n {getRemainingText(o.remaining)}\r\n \r\n )}\r\n
    \r\n \r\n );\r\n })}\r\n
    \r\n {filteredTickets ? (\r\n
    \r\n
    \r\n \r\n {language.Tickets}\r\n \r\n \r\n {moment(occasion.time).format(\"llll\")}\r\n \r\n
    \r\n
    \r\n {filteredTickets.map((a) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n {language.Tickets}\r\n \r\n \r\n {language.Choose_Time}\r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default TimePicker;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport moment from \"moment\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Article from \"./article\";\r\nimport TimePicker from \"./timepicker\";\r\nimport { STATE_CURRENCY, STATE_CULTURE } from \"../../common/state\";\r\n\r\nconst useStyles = makeStyles({\r\n container: {},\r\n heading: {},\r\n occasionContainer: {},\r\n articlesContainer: {\r\n marginTop: \"16px\",\r\n },\r\n});\r\n\r\nconst query = gql`\r\n query detailQuery(\r\n $currency: String\r\n $culture: String\r\n $posId: Int\r\n $from: DateTime\r\n $until: DateTime\r\n ) {\r\n allotments(\r\n currency: $currency\r\n culture: $culture\r\n posId: $posId\r\n from: $from\r\n until: $until\r\n ) {\r\n description\r\n imageFileName\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n occasions {\r\n time\r\n remaining\r\n allotment {\r\n id\r\n maxPerSale\r\n }\r\n articles {\r\n id\r\n name\r\n description\r\n imageFilename\r\n plu\r\n priceInclVat\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n isPersonalTicket\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst Articles = (props) => {\r\n const { from, until, event } = props;\r\n const eventName = event.name;\r\n const eventImage = event.imageFileName || undefined;\r\n const classes = useStyles();\r\n const { config, culture, currency, language } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n language: state.language,\r\n }));\r\n const { posId } = config;\r\n const { data, loading, error } = useQuery(query, {\r\n variables: { posId, currency, culture, from, until },\r\n });\r\n\r\n if (!from || !until)\r\n return (\r\n
    \r\n \r\n {language.Tickets}\r\n \r\n \r\n {language.Choose_Date_In_Calendar}\r\n \r\n
    \r\n );\r\n if (loading)\r\n return (\r\n
    \r\n \r\n {language.Tickets}\r\n \r\n \r\n loading...\r\n
    \r\n
    \r\n );\r\n if (error)\r\n return (\r\n
    \r\n
    \r\n          Bad:{\" \"}\r\n          {error.graphQLErrors.map(({ message }, i) => (\r\n            {message}\r\n          ))}\r\n        
    \r\n
    \r\n );\r\n\r\n const occasions =\r\n data.allotments.length > 0\r\n ? data.allotments.find((a) => a.description === eventName).occasions\r\n : [];\r\n if (occasions.length > 1) {\r\n return ;\r\n }\r\n return (\r\n
    \r\n \r\n {language.Tickets}\r\n \r\n {occasions.map((o, i) => {\r\n const articles = o.articles.sort((a, b) => a.plu - b.plu);\r\n return (\r\n
    \r\n \r\n {moment(o.time).format(\"LLL\")}\r\n \r\n
    \r\n {articles.map((a) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n );\r\n};\r\n\r\nexport default Articles;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useLocation } from \"@reach/router\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\nimport axios from \"axios\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport PrevIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport NextIcon from \"@material-ui/icons/ChevronRight\";\r\nimport ImageGallery from \"react-image-gallery\";\r\nimport Markdown from \"react-markdown\";\r\nimport Calendar from \"../common/Calendar\";\r\nimport Articles from \"./articles\";\r\nimport { getOccasionTimes } from \"./util\";\r\nimport SocialShare from \"../common/socialShare\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport { ReactComponent as Placeholder } from \"../../images/placeholder.svg\";\r\n\r\nlet source;\r\nconst useStyles = makeStyles((theme) => ({\r\n header: {\r\n height: \"54px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n divider: {\r\n marginBottom: \"16px\",\r\n },\r\n titleText: {\r\n flexGrow: 1,\r\n \"@media(max-width: 576px)\": {\r\n fontSize: \"1.125rem\",\r\n },\r\n },\r\n backContainer: {\r\n marginBottom: \"16px\",\r\n },\r\n contentContainer: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"450px 1fr\",\r\n gridGap: \"16px\",\r\n \"@media(max-width: 768px)\": {\r\n gridTemplateColumns: \"350px 1fr\",\r\n },\r\n \"@media(max-width: 576px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n },\r\n },\r\n calendarContainer: {\r\n marginBottom: \"24px\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n paddingTop: \"1px\",\r\n },\r\n calendar: {\r\n width: \"100%\",\r\n \"@media(max-width: 667px)\": {\r\n width: \"100%\",\r\n },\r\n },\r\n description: {\r\n color: theme.app.secondaryColor,\r\n },\r\n carouselButton: {\r\n backgroundColor: \"rgba(0,0,0,0.23)\",\r\n color: \"white\",\r\n },\r\n left: {\r\n position: \"absolute\",\r\n zIndex: 100,\r\n left: 0,\r\n top: \"50%\",\r\n transform: \"translate(0, -50%)\",\r\n },\r\n right: {\r\n position: \"absolute\",\r\n zIndex: 100,\r\n right: 0,\r\n top: \"50%\",\r\n transform: \"translate(0, -50%)\",\r\n },\r\n placeholder: {\r\n background: theme.app.background[2],\r\n border: `1px solid ${theme.app.borderColor}`,\r\n borderRadius: \"4px\",\r\n },\r\n image: {\r\n maxWidth: \"100%\",\r\n },\r\n}));\r\n\r\nconst Event = (props) => {\r\n const { filter, event } = props;\r\n const location = useLocation();\r\n const classes = useStyles();\r\n const { config, language, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const name =\r\n event.translation.find((t) => t.culture === culture)?.name ??\r\n language[event.name] ??\r\n event.name;\r\n const [text, setText] = useState(\"\");\r\n const [from, setFrom] = useState();\r\n const [until, setUntil] = useState();\r\n const [singleOccasion, setSingleOccasion] = useState(false);\r\n\r\n useEffect(() => {\r\n if (event.occasions.length < 2) {\r\n setSingleOccasion(true);\r\n const singleOccasionTimes = getOccasionTimes(event.occasions[0].time);\r\n setFrom(singleOccasionTimes.from);\r\n setUntil(singleOccasionTimes.until);\r\n }\r\n }, [event.occasions]);\r\n\r\n let filterOverride = null;\r\n if (\r\n event.occasions.length > 1 &&\r\n (filter === undefined || (Array.isArray(filter) && filter.length === 0))\r\n ) {\r\n const occasions = event.occasions.map((a) => a.time);\r\n const orderedOccasions = [...occasions].sort();\r\n const firstOccasion = moment(orderedOccasions[0]).format(\"YYYYMM\");\r\n console.log(\r\n \"--> Set event date filter override to first coming month with occasion:\",\r\n firstOccasion\r\n );\r\n filterOverride = firstOccasion;\r\n }\r\n\r\n useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n if (event) {\r\n setText(\r\n event.translation.find((t) => t.culture === culture)?.description ?? \"\"\r\n );\r\n }\r\n return () => source.cancel(\"Event Component Is Unmounting\");\r\n }, [culture, event]);\r\n\r\n const handleDateChange = (date) => {\r\n const occasionTimes = getOccasionTimes(date);\r\n setFrom(occasionTimes.from);\r\n setUntil(occasionTimes.until);\r\n };\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n const images = event.imageFileName && [\r\n {\r\n original: `${uri}/allotmentimage/${event.imageFileName}`,\r\n },\r\n ];\r\n\r\n const initialMonth = () =>\r\n filterOverride != null\r\n ? moment(`${filterOverride}01`)\r\n : filter\r\n ? moment(`${filter}01`)\r\n : moment();\r\n\r\n const highlightedDates = event.occasions.map((o) => {\r\n return moment(o.time).format(\"YYYY-MM-DD\");\r\n });\r\n return (\r\n
    \r\n \r\n \r\n {name}\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {text.length > 0 && }\r\n
    \r\n
    \r\n {event.imageFileName ? (\r\n (\r\n \r\n \r\n \r\n )}\r\n renderRightNav={(onClick, disabled) => (\r\n \r\n \r\n \r\n )}\r\n />\r\n ) : (\r\n \r\n )}\r\n {config.socialShareButtons &&\r\n config.socialShareButtons.length > 0 && (\r\n \r\n )}\r\n
    \r\n
    \r\n {!singleOccasion && (\r\n
    \r\n {filter || filterOverride ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Event;\r\n","import moment from \"moment\";\r\nimport slugify from \"../common/slugify\";\r\n\r\nexport const getEventConfig = (config, name) => {\r\n const { eventConfig, imageFolderUrl } = config;\r\n const event = eventConfig.find((e) => e.name === name);\r\n if (!event) {\r\n return {\r\n name: name,\r\n slug: `/events/${slugify(name)}`,\r\n images: null,\r\n listImages: null,\r\n description: \"\",\r\n };\r\n }\r\n return {\r\n name: event.name,\r\n slug: `/events/${slugify(event.name)}`,\r\n images:\r\n event.images.length < 1\r\n ? null\r\n : event.images.map((img) => `${imageFolderUrl}${img}`),\r\n listImages: event.listImages\r\n ? event.listImages.length < 1\r\n ? null\r\n : event.listImages.map((img) => `${imageFolderUrl}${img}`)\r\n : null,\r\n description: event.description || \"\",\r\n exerpt: event.exerpt,\r\n };\r\n};\r\n\r\nexport const getMonths = (events) => {\r\n let filters = [];\r\n let months = [];\r\n\r\n events.forEach((e) => {\r\n e.occasions.forEach((o) => {\r\n let filter = moment(o.time).format(\"YYYYMM\");\r\n\r\n if (!filters.includes(filter)) {\r\n const occ = {\r\n year: moment(o.time).format(\"YYYY\"),\r\n month: Number(moment(o.time).format(\"MM\") - 1),\r\n filter: Number(filter),\r\n };\r\n filters = [...filters, filter];\r\n months = [...months, occ];\r\n }\r\n });\r\n });\r\n const sortedMonths = months.sort((a, b) => a.filter - b.filter);\r\n\r\n return sortedMonths;\r\n};\r\n\r\nexport const getMonthsByYear = (events) => {\r\n const months = getMonths(events);\r\n\r\n let years = [];\r\n let byYear = [];\r\n months.forEach((m) => {\r\n if (!years.includes(m.year)) {\r\n years = [...years, m.year];\r\n }\r\n });\r\n years.forEach((y) => {\r\n const monthsInYear = months.filter((m) => m.year === y);\r\n byYear = [...byYear, { year: y, months: monthsInYear }];\r\n });\r\n return byYear;\r\n};\r\n\r\nexport const getFirstOccasionInFilter = (occasions, filter) => {\r\n const filterMonth = filter ? moment(`${filter}01`).month() : null;\r\n const occasionsInFilter = occasions.filter(\r\n (o) => moment(o.time).month() === filterMonth\r\n );\r\n let occasionDates = [];\r\n occasionsInFilter.forEach((o) => {\r\n occasionDates = [...occasionDates, new Date(o.time)];\r\n });\r\n return moment(occasionDates.sort((a, b) => a - b));\r\n};\r\n\r\nexport const filterEvents = (events, filter) => {\r\n if (!filter || !events) return [];\r\n\r\n //event that have occasions in filter month\r\n let filterEvents = [];\r\n\r\n events.forEach((e) => {\r\n e.occasions.forEach((o) => {\r\n if (Number(moment(o.time).format(\"YYYYMM\")) === filter) {\r\n if (!filterEvents.includes(e.discription)) {\r\n filterEvents = [...filterEvents, e.description];\r\n }\r\n }\r\n });\r\n });\r\n const filteredEvents = events.filter((e) =>\r\n filterEvents.includes(e.description)\r\n );\r\n // sort by first event\r\n filteredEvents.sort(\r\n (a, b) =>\r\n moment(a.occasions[0].time).toDate() -\r\n moment(b.occasions[0].time).toDate()\r\n );\r\n return filteredEvents;\r\n};\r\n\r\nexport const getOccasionMonths = (events) => {\r\n let occasionMonths = [];\r\n events.forEach((e) => {\r\n e.occasions.forEach((o) => {\r\n const formattedMonth = moment(o.time).format(\"YYYYMM\");\r\n if (!occasionMonths.includes(formattedMonth)) {\r\n occasionMonths = [...occasionMonths, formattedMonth];\r\n }\r\n });\r\n });\r\n return occasionMonths.sort();\r\n};\r\n\r\nexport const hasMonthEvent = (month, events) => {\r\n const occasionMonths = getOccasionMonths(events);\r\n return occasionMonths.includes(month);\r\n};\r\n\r\nexport const getOccasionTimes = (time) => ({\r\n from: moment(time).hour(0).minute(0).seconds(0).toISOString(),\r\n until: moment(time).hour(23).minute(59).seconds(59).toISOString(),\r\n});\r\n\r\nexport const getOccasionsByDay = (occasions) => {\r\n let byDay = [];\r\n let days = [];\r\n occasions.forEach((o) => {\r\n const day = moment(o.time).format(\"YYYYMMDD\");\r\n if (!days.includes(day)) {\r\n days = [...days, day];\r\n byDay = [...byDay, { day, times: [] }];\r\n }\r\n });\r\n\r\n return byDay.map((d) => {\r\n let newTimes = [];\r\n occasions.forEach((o) => {\r\n const oTime = moment(o.time).format(\"HH:mm\");\r\n const oDay = moment(o.time).format(\"YYYYMMDD\");\r\n if (d.day === oDay) {\r\n newTimes = [...newTimes, oTime];\r\n }\r\n });\r\n return { ...d, times: newTimes };\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { MdAddCircle, MdRemoveCircle } from \"react-icons/md\";\r\nimport { motion } from \"framer-motion\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Text } from \"@mantine/core\";\r\n\r\nconst ArticleButtons = ({\r\n cart,\r\n cartSet,\r\n ticketData,\r\n chosenOccasion,\r\n disabledBtn,\r\n availableOccasions,\r\n name,\r\n open,\r\n groupTicketCart,\r\n groupTicketCartSet,\r\n}) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n\r\n const spring = {\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 30,\r\n };\r\n\r\n const addAllotment = (product) => {\r\n if (product?.isMultiTicket) {\r\n open();\r\n cartSet([]);\r\n groupTicketCartSet({\r\n plu: product.plu,\r\n quantity: 1,\r\n allotmentId: chosenOccasion.allotment.id,\r\n allotmentOccasion: chosenOccasion.time,\r\n ticketOwners: [],\r\n });\r\n } else {\r\n let newProduct = product;\r\n newProduct.allotmentId = chosenOccasion.allotment.id;\r\n newProduct.timeOccasions = chosenOccasion.time;\r\n cartSet([...cart, product]);\r\n groupTicketCartSet(null);\r\n }\r\n };\r\n\r\n const removeAllotment = (ticketData) => {\r\n if (ticketData?.isMultiTicket) return groupTicketCartSet(null);\r\n let newCart = [...cart];\r\n let findAllotment = cart.findIndex((i) => i.id === ticketData.id);\r\n newCart.splice(findAllotment, 1);\r\n cartSet(newCart);\r\n };\r\n\r\n const checkIfAvailable = () => {\r\n let timeData = availableOccasions.filter(\r\n (el) => chosenOccasion.time === el.time\r\n );\r\n if (\r\n timeData?.[0]?.remaining <= cart.length ||\r\n timeData?.[0]?.allotment.maxPerSale === cart.length\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const calculateQuantity = (ticketData) => {\r\n if (groupTicketCart && groupTicketCart.plu === ticketData.plu) {\r\n return 1;\r\n }\r\n const findItems = cart.filter((item) => item.id === ticketData.id);\r\n return findItems.length;\r\n };\r\n return (\r\n
    \r\n 0 ? true : \"\"}\r\n transition={spring}\r\n layout\r\n />\r\n 0 ? true : \"\"}\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n style={{\r\n pointerEvents: disabledBtn ? \"none\" : \"\",\r\n }}\r\n >\r\n addAllotment(ticketData)}\r\n aria-label={`${language?.AddQuantity} ${name}`}\r\n disabled={disabledBtn}\r\n style={{\r\n border: \"none\",\r\n background: \"none\",\r\n color: disabledBtn ? \"rgb(180, 180, 180)\" : \"\",\r\n pointerEvents: disabledBtn ? \"none\" : \"\",\r\n }}\r\n >\r\n \r\n \r\n \r\n 0 ? true : false}\r\n layout\r\n transition={spring}\r\n aria-live=\"assertive\"\r\n >\r\n \r\n {calculateQuantity(ticketData)}\r\n \r\n \r\n 0 ? true : \"\"}\r\n className=\"handle2\"\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n >\r\n removeAllotment(ticketData)}\r\n aria-label={`${language?.DecreaseQuantity} ${name}`}\r\n disabled={calculateQuantity(ticketData) === 0 ? true : false}\r\n style={{ border: \"none\", background: \"none\" }}\r\n >\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ArticleButtons;\r\n","import { Divider, Grid, Stack, Text } from \"@mantine/core\";\r\nimport React from \"react\";\r\nimport ArticleButtons from \"./ArticleButtons\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\n\r\nconst Article = ({\r\n ticketData,\r\n cart,\r\n cartSet,\r\n chosenOccasion,\r\n disabledBtn,\r\n availableOccasions,\r\n open,\r\n groupTicketCart,\r\n groupTicketCartSet,\r\n}) => {\r\n const { culture } = useSelector((state) => ({\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const getName = () => {\r\n const getTranslation = ticketData.translation.filter(\r\n (el) => el.culture === culture\r\n );\r\n return getTranslation?.[0]?.name;\r\n };\r\n return (\r\n <>\r\n {ticketData && (\r\n \r\n \r\n \r\n {getName()}\r\n \r\n {ticketData.priceInclVat}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Article;\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { MdAddCircle, MdRemoveCircle } from \"react-icons/md\";\r\nimport { Text } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst GroupArticleButtons = ({\r\n max,\r\n ticketData,\r\n groupTicketCart,\r\n groupTicketCartSet,\r\n}) => {\r\n const [quantity, quantitySet] = useState(0);\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n\r\n const spring = {\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 30,\r\n };\r\n\r\n const disabled = useMemo(() => {\r\n if (config?.useMultiTicketQuantityOverride) {\r\n if (max === 0) return true;\r\n } else if (\r\n !config?.useMultiTicketQuantityOverride &&\r\n quantity === ticketData.maximumNumber\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }, [quantity, max]);\r\n\r\n const ticketOwners = useMemo(() => {\r\n const getOwners = groupTicketCart?.ticketOwners?.filter(\r\n (el) => el.ticketHolderCategoryId === ticketData.categoryId\r\n );\r\n if (getOwners && getOwners.length > 0) {\r\n return getOwners?.[0];\r\n }\r\n return null;\r\n }, [groupTicketCart]);\r\n\r\n const increase = () => {\r\n if (!ticketOwners) {\r\n let cart = groupTicketCart;\r\n cart.ticketOwners.push({\r\n quantity: 1,\r\n ticketHolderCategoryId: ticketData.categoryId,\r\n });\r\n }\r\n quantitySet(quantity + 1);\r\n };\r\n\r\n const decrease = () => {\r\n if (quantity > 0) {\r\n quantitySet(quantity - 1);\r\n }\r\n };\r\n\r\n const updateGroupTicketCart = (newQuantity) => {\r\n const updatedCart = {\r\n ...groupTicketCart,\r\n ticketOwners: groupTicketCart.ticketOwners\r\n .map((owner) => {\r\n if (owner.ticketHolderCategoryId === ticketData.categoryId) {\r\n if (newQuantity === 0) {\r\n return null;\r\n } else {\r\n return {\r\n ...owner,\r\n quantity: newQuantity,\r\n };\r\n }\r\n }\r\n\r\n return owner;\r\n })\r\n .filter(Boolean),\r\n };\r\n groupTicketCartSet(updatedCart);\r\n };\r\n\r\n useEffect(() => {\r\n updateGroupTicketCart(quantity);\r\n if (quantity === 0) {\r\n const filterTicketOwner = groupTicketCart.ticketOwners.filter(\r\n (owner) => owner.ticketHolderCategoryId !== ticketData.categoryId\r\n );\r\n const updatedCart = {\r\n ...groupTicketCart,\r\n ticketOwners: filterTicketOwner,\r\n };\r\n }\r\n }, [quantity]);\r\n\r\n return (\r\n
    \r\n 0 ? true : \"\"}\r\n transition={spring}\r\n layout\r\n />\r\n 0 ? true : \"\"}\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n style={{\r\n pointerEvents: disabled ? \"none\" : \"\",\r\n }}\r\n >\r\n increase()}\r\n aria-label={`${language?.AddQuantity} ${ticketData.categoryName}`}\r\n style={{ border: \"none\", background: \"none\" }}\r\n disabled={disabled}\r\n >\r\n \r\n \r\n \r\n 0 ? true : false}\r\n layout\r\n transition={spring}\r\n aria-live=\"assertive\"\r\n >\r\n \r\n {quantity}\r\n \r\n \r\n 0 ? true : \"\"}\r\n className=\"handle2\"\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n >\r\n decrease()}\r\n aria-label={`${language?.DecreaseQuantity} ${ticketData.categoryName}`}\r\n disabled={quantity === 0 ? true : false}\r\n style={{ border: \"none\", background: \"none\" }}\r\n >\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default GroupArticleButtons;\r\n","import React, { useMemo } from \"react\";\r\nimport { Grid, Stack, Text } from \"@mantine/core\";\r\nimport GroupArticleButtons from \"./GroupArticleButtons\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst GroupArticle = ({\r\n allTicketsData,\r\n ticketData,\r\n groupTicketCart,\r\n groupTicketCartSet,\r\n}) => {\r\n const { config } = useSelector((state) => ({\r\n config: state.config,\r\n }));\r\n\r\n const getMaxQuantity = useMemo(() => {\r\n const maxQuantity = Math.max(\r\n ...allTicketsData.map((ticket) => ticket.maximumNumber)\r\n );\r\n return maxQuantity;\r\n }, [allTicketsData]);\r\n\r\n const max = useMemo(() => {\r\n if (config?.useMultiTicketQuantityOverride && groupTicketCart) {\r\n const reduce = groupTicketCart.ticketOwners.reduce((acc, curr) => {\r\n acc += curr.quantity;\r\n return acc;\r\n }, 0);\r\n return getMaxQuantity - reduce;\r\n } else {\r\n return ticketData.maximumNumber;\r\n }\r\n }, [config, groupTicketCart, ticketData]);\r\n\r\n return (\r\n \r\n \r\n \r\n {ticketData.categoryName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupArticle;\r\n","import React from \"react\";\r\nimport {\r\n Button,\r\n createStyles,\r\n Divider,\r\n Modal,\r\n SimpleGrid,\r\n Space,\r\n Text,\r\n} from \"@mantine/core\";\r\nimport GroupArticle from \"./GroupArticle\";\r\n\r\nconst useStyles = createStyles({\r\n actionWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginTop: \"1rem\",\r\n },\r\n title: {\r\n fontWeight: \"500\",\r\n fontSize: \"1.35rem\",\r\n paddingBottom: \"10px\",\r\n },\r\n});\r\nconst MultiTicketModal = ({\r\n opened,\r\n close,\r\n closeModal,\r\n language,\r\n data,\r\n groupTicketCart,\r\n groupTicketCartSet,\r\n disabledGroupAddToCart,\r\n returnFocus,\r\n}) => {\r\n const { classes } = useStyles();\r\n return (\r\n closeModal()}\r\n title={language.GroupTicketTitle}\r\n centered\r\n closeButtonLabel={language.Close}\r\n >\r\n \r\n {language.GroupTicketDescription}\r\n \r\n \r\n {data.ticketHolders.map((el) => (\r\n
    \r\n \r\n \r\n
    \r\n ))}\r\n
    \r\n \r\n
    \r\n closeModal()}\r\n >\r\n {language.Close}\r\n \r\n {\r\n close();\r\n returnFocus();\r\n }}\r\n disabled={disabledGroupAddToCart()}\r\n >\r\n {language.PrimaryBtn}\r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default MultiTicketModal;\r\n","import {\r\n Button,\r\n Container,\r\n Grid,\r\n Loader,\r\n MediaQuery,\r\n Stack,\r\n Text,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport React, { useContext, useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { STATE_CURRENCY } from \"../../../common/state\";\r\nimport Article from \"./Article\";\r\nimport { CART_ARTICLE_ADD, Context, OPEN_ALERT } from \"../../../context\";\r\nimport {\r\n addArticleBatch,\r\n addArticleGroupTicket,\r\n addToCartTracking,\r\n} from \"../../../common/sale\";\r\nimport { useDisclosure } from \"@mantine/hooks\";\r\nimport MultiTicketModal from \"./MultiTicketModal\";\r\n\r\nconst ArticleList = ({ chosenOccasion, availableOccasions }) => {\r\n const [cart, cartSet] = useState([]);\r\n const [groupTicketCart, groupTicketCartSet] = useState(null);\r\n const [disabledBtn, setDisabledBtn] = useState(false);\r\n const [articleQuantityInCart, setArticleQuantityInCart] = useState(0);\r\n const [cartTotal, setCartTotal] = useState(0);\r\n const [isLoading, isLoadingSet] = useState(false);\r\n const [addedToCart, addedToCartSet] = useState(null);\r\n const [opened, { open, close }] = useDisclosure(false);\r\n const { language, currency } = useSelector((state) => ({\r\n language: state.language,\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const { dispatch } = useContext(Context);\r\n const rdxDispatch = useDispatch();\r\n const focusRef = useRef(null);\r\n const max = Math.min(\r\n chosenOccasion?.allotment?.maxPerSale,\r\n chosenOccasion?.remaining\r\n );\r\n\r\n useEffect(() => {\r\n cartSet([]);\r\n }, [availableOccasions, chosenOccasion]);\r\n\r\n const total = (item) => {\r\n switch (currency) {\r\n case \"SEK\":\r\n case \"DKK\":\r\n case \"NOK\":\r\n return item + \" kr\";\r\n case \"EUR\":\r\n return \"€\" + item;\r\n case \"GBP\":\r\n return \"£\" + item;\r\n case \"USD\":\r\n return \"$\" + item;\r\n default:\r\n return item + currency;\r\n }\r\n };\r\n\r\n const productPrice = (item) => {\r\n if (item && item.length > 0) {\r\n const regex = /[$€£kr]/g;\r\n let newPrice = item.replace(regex, \"\");\r\n if (newPrice.trim().split(\".\")[1] === \"00\") {\r\n return newPrice.split(\".\")[0];\r\n } else {\r\n return newPrice;\r\n }\r\n }\r\n };\r\n\r\n const calcCartValue = () => {\r\n const removeChar = (price) => {\r\n if (price) {\r\n let newPrice = price && price.replaceAll(/[^0-9,.]/g, \"\");\r\n const commaIndex = newPrice.lastIndexOf(\",\");\r\n if (commaIndex !== -1) {\r\n if (commaIndex === 1) {\r\n newPrice =\r\n newPrice.substring(0, commaIndex) +\r\n newPrice.substring(commaIndex + 1);\r\n } else {\r\n newPrice =\r\n newPrice.substring(0, commaIndex) +\r\n \".\" +\r\n newPrice.substring(commaIndex + 1);\r\n }\r\n }\r\n return parseFloat(newPrice);\r\n }\r\n };\r\n let total = 0;\r\n for (let i = 0; i < cart.length; i++) {\r\n if (cart[i]?.price?.amountInclVat !== 0) {\r\n total += parseFloat(\r\n removeChar(cart[i].priceInclVat)\r\n ? removeChar(cart[i].priceInclVat)\r\n : removeChar(cart[i].displayPrice)\r\n ? removeChar(cart[i].displayPrice)\r\n : \"\"\r\n );\r\n }\r\n }\r\n const groupTicket = chosenOccasion?.articles?.filter(\r\n (groupTicket) => groupTicket?.plu === groupTicketCart?.plu\r\n );\r\n if (groupTicket && groupTicket.length > 0) {\r\n total = groupTicket?.[0]?.price?.amountInclVat;\r\n }\r\n setCartTotal(total.toFixed(2));\r\n };\r\n\r\n useEffect(() => {\r\n calcCartValue();\r\n }, [cart, groupTicketCart]);\r\n\r\n const reduceCart = Object.values(\r\n cart.reduce((acc, curr) => {\r\n if (!acc[curr.plu]) {\r\n acc[curr.plu] = {\r\n plu: curr.plu,\r\n quantity: 1,\r\n allotmentId: curr.allotmentId,\r\n allotmentOccasion: curr.timeOccasions,\r\n };\r\n } else {\r\n acc[curr.plu].quantity += 1;\r\n }\r\n return acc;\r\n }, {})\r\n );\r\n\r\n const trackReduceCart = Object.values(\r\n cart.reduce((acc, curr) => {\r\n if (!acc[curr.plu]) {\r\n acc[curr.plu] = {\r\n id: curr.plu,\r\n quantity: 1,\r\n price: parseFloat(productPrice(curr.priceInclVat).replace(\",\", \".\")),\r\n name: curr.name,\r\n };\r\n } else {\r\n acc[curr.plu].quantity += 1;\r\n }\r\n return acc;\r\n }, {})\r\n );\r\n\r\n const cb = (status, msg) => {\r\n if (status >= 400) {\r\n dispatch({\r\n type: OPEN_ALERT,\r\n payload: {\r\n text: language.ErrorMsgCouldNotAddToCart,\r\n severity: \"error\",\r\n },\r\n });\r\n cartSet([]);\r\n groupTicketCartSet([]);\r\n isLoadingSet(false);\r\n } else {\r\n dispatch({\r\n type: CART_ARTICLE_ADD,\r\n payload: reduceCart,\r\n });\r\n cartSet([]);\r\n groupTicketCartSet([]);\r\n addedToCartSet(\"success\");\r\n isLoadingSet(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let addedToCartTimer = setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 3000);\r\n return () => {\r\n clearTimeout(addedToCartTimer);\r\n };\r\n }, [addedToCart]);\r\n\r\n const addGroupTicket = () => {\r\n const ticket = chosenOccasion.articles.find(\r\n (article) => article.plu === groupTicketCart.plu\r\n );\r\n const trackingGroupTicket = [\r\n {\r\n id: ticket.plu,\r\n quantity: 1,\r\n price: ticket.price.amountInclVat,\r\n name: ticket.name,\r\n },\r\n ];\r\n\r\n addToCartTracking(currency, trackingGroupTicket);\r\n isLoadingSet(true);\r\n setTimeout(() => {\r\n rdxDispatch(addArticleGroupTicket(groupTicketCart, cb));\r\n });\r\n };\r\n const addArticles = () => {\r\n addToCartTracking(currency, trackReduceCart);\r\n isLoadingSet(true);\r\n setTimeout(() => {\r\n rdxDispatch(addArticleBatch(reduceCart, cb));\r\n }, 300);\r\n };\r\n\r\n const add = () => {\r\n if (groupTicketCart) {\r\n addGroupTicket();\r\n } else {\r\n addArticles();\r\n }\r\n };\r\n\r\n const disabledGroupAddToCart = () => {\r\n const getQuantity = groupTicketCart?.ticketOwners?.filter(\r\n (el) => el.quantity > 0\r\n );\r\n if (getQuantity && getQuantity.length > 0) return false;\r\n return true;\r\n };\r\n\r\n const closeModal = () => {\r\n groupTicketCartSet(null);\r\n close();\r\n };\r\n\r\n const returnFocus = () => {\r\n focusRef.current.focus();\r\n };\r\n\r\n useEffect(() => {\r\n // Sort articles when selecting an occasion\r\n if (chosenOccasion) {\r\n chosenOccasion.articles.sort((a, b) => a.plu - b.plu);\r\n }\r\n }, [chosenOccasion]);\r\n\r\n useEffect(() => {\r\n // Count the number of articles in the cart\r\n const quantity = reduceCart.reduce((acc, cur) => (acc += cur.quantity), 0);\r\n\r\n setArticleQuantityInCart(quantity);\r\n }, [reduceCart]);\r\n\r\n useEffect(() => {\r\n // Compare number of articles in cart to max (maxPerSale or remaining allotments)\r\n if (articleQuantityInCart >= max) {\r\n setDisabledBtn(true);\r\n } else if (groupTicketCart && groupTicketCart.plu) {\r\n setDisabledBtn(true);\r\n } else {\r\n setDisabledBtn(false);\r\n }\r\n }, [groupTicketCart, articleQuantityInCart]);\r\n\r\n return (\r\n \r\n {chosenOccasion && (\r\n \r\n {chosenOccasion.articles.map((el, i) => (\r\n
    \r\n \r\n {el?.isMultiTicket && (\r\n \r\n )}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n \r\n \r\n \r\n {(cart.length > 0 || groupTicketCart) && (\r\n <>\r\n \r\n \r\n {language.Total}\r\n \r\n {total(cartTotal)}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n add()}\r\n sx={{\r\n opacity: isLoading ? 0.7 : 1,\r\n transition: \"all 0.2s ease-in-out\",\r\n marginTop: \"0.1rem\",\r\n pointerEvents:\r\n cart.length === 0 && disabledGroupAddToCart() ? \"none\" : \"\",\r\n width: addedToCart === \"success\" && \"100%\",\r\n }}\r\n >\r\n {addedToCart === \"success\" && !isLoading ? (\r\n language.Added_To_Cart\r\n ) : !isLoading ? (\r\n language.AddToCartBtn\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ArticleList;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Badge, Container, Group, Title, Transition } from \"@mantine/core\";\r\nimport { da, de, enGB, sv } from \"date-fns/locale\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport { format } from \"date-fns\";\r\nimport ArticleList from \"./ArticleList\";\r\n\r\nconst ArticlePicker = ({ chosenOccasion, availableOccasions }) => {\r\n const [cultureLocale, cultureLocaleSet] = useState();\r\n const [show, showSet] = useState(false);\r\n const { language, culture } = useSelector((state) => ({\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const locales = [\r\n { culture: \"sv-SE\", data: sv },\r\n { culture: \"en-US\", data: enGB },\r\n { culture: \"en-GB\", data: enGB },\r\n { culture: \"de-DE\", data: de },\r\n { culture: \"da-DK\", data: da },\r\n ];\r\n let formatDay = \"EEEE d MMMM HH:mm\";\r\n\r\n useEffect(() => {\r\n const getLocale = locales.filter((el) => el.culture === culture)[0].data;\r\n cultureLocaleSet(getLocale);\r\n }, [culture]);\r\n\r\n useEffect(() => {\r\n if (chosenOccasion) {\r\n showSet(true);\r\n } else {\r\n showSet(false);\r\n }\r\n }, [chosenOccasion]);\r\n const articlePicker = document.getElementById(\"event-article-picker\");\r\n\r\n useEffect(() => {\r\n if (chosenOccasion && show) {\r\n if (articlePicker) {\r\n articlePicker.focus();\r\n }\r\n }\r\n }, [chosenOccasion, show]);\r\n\r\n return (\r\n \r\n \r\n {(styles) => (\r\n
    \r\n \r\n \r\n \r\n {language.ChooseTicket}\r\n \r\n \r\n {chosenOccasion?.time &&\r\n format(new Date(chosenOccasion?.time), formatDay, {\r\n locale: cultureLocale,\r\n })}\r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ArticlePicker;\r\n","import * as React from \"react\";\r\nimport axios from \"axios\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport ProductList from \"../ProductList\";\r\nimport Description from \"../common/Description\";\r\nimport slugify from \"../common/slugify\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\n\r\nlet source;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n productGroup: {\r\n marginBottom: \"24px\",\r\n },\r\n}));\r\n\r\nconst ProductGroup = ({ group, page, setPosition }) => {\r\n const { data } = React.useContext(DataContext);\r\n const [text, setText] = React.useState(\"\");\r\n const classes = useStyles();\r\n const { config, culture, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const listType =\r\n window.innerWidth < 667 ? page.listType?.sm : page.listType?.lg;\r\n\r\n React.useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n if (group.description && group.description.length > 0) {\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}/${group.description}.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data));\r\n } else {\r\n setText(\"\");\r\n }\r\n return () => source.cancel(\"Component Is Unmounting\");\r\n }, [culture, config.descriptionFolderUrl, group.description]);\r\n\r\n const dataTags = data.tags.map((t) => t.name);\r\n if (!dataTags.includes(group.name)) return null;\r\n if (group.products.length < 1) return null;\r\n\r\n return (\r\n
    \r\n \r\n {(language && language.Categories && language.Categories[group.name]) ||\r\n group.name}\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ProductGroup;\r\n","import React, { useState, useEffect, useContext } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useSelector } from \"react-redux\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport Description from \"../../components/common/Description\";\r\nimport ProductList from \"../../components/ProductList\";\r\nimport ProductGroup from \"../../components/Page/productGroup\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport { getAllProducts, extendPage } from \"./util\";\r\nimport { DataContext } from \"../../components/common/dataProvider\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport ArticleFilter from \"../../components/common/ArticleFilter\";\r\n\r\nlet source;\r\n\r\nconst AllProductsPagePage = ({ setPosition }) => {\r\n const { data } = useContext(DataContext);\r\n \r\n const [text, setText] = useState(\"\");\r\n const { config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const products = getAllProducts(data, config, culture);\r\n\r\n useEffect(() => {\r\n source = axios.CancelToken.source();\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}/all-products.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data));\r\n return () => source.cancel(\"All Products Is Unmounting\");\r\n }, [culture, config.descriptionFolderUrl]);\r\n\r\n const page = extendPage(data, config);\r\n\r\n return (\r\n \r\n \r\n \r\n {config.allProductsGroupByTag ? (\r\n page.productGroups.map((group, i) => (\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AllProductsPagePage;\r\n","import { useQuery } from \"@apollo/react-hooks\";\r\nimport {\r\n Button,\r\n Container,\r\n MediaQuery,\r\n SimpleGrid,\r\n Skeleton,\r\n Text,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport { format, isSameDay } from \"date-fns\";\r\nimport gql from \"graphql-tag\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../../common/state\";\r\nimport ArticlePicker from \"./ArticlePicker\";\r\nimport { getInitialFromUntil } from \"../../../common/util\";\r\n\r\nconst { from, until } = getInitialFromUntil();\r\n\r\nconst oldQuery = gql`\r\n query oldDetailQuery(\r\n $currency: String\r\n $culture: String\r\n $posId: Int\r\n $from: DateTime\r\n $until: DateTime\r\n ) {\r\n allotments(\r\n currency: $currency\r\n culture: $culture\r\n posId: $posId\r\n from: $from\r\n until: $until\r\n ) {\r\n description\r\n imageFileName\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n occasions {\r\n time\r\n remaining\r\n allotment {\r\n id\r\n maxPerSale\r\n }\r\n articles {\r\n id\r\n name\r\n description\r\n imageFilename\r\n plu\r\n priceInclVat\r\n ticketHolders {\r\n categoryName\r\n categoryId\r\n maximumNumber\r\n defaultNumber\r\n }\r\n price {\r\n amountInclVat\r\n }\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n isPersonalTicket\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst query = gql`\r\n query detailQuery(\r\n $currency: String\r\n $culture: String\r\n $posId: Int\r\n $from: DateTime\r\n $until: DateTime\r\n ) {\r\n allotments(\r\n currency: $currency\r\n culture: $culture\r\n posId: $posId\r\n from: $from\r\n until: $until\r\n ) {\r\n description\r\n imageFileName\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n occasions {\r\n time\r\n remaining\r\n allotment {\r\n id\r\n maxPerSale\r\n }\r\n articles {\r\n id\r\n name\r\n description\r\n imageFilename\r\n plu\r\n priceInclVat\r\n isMultiTicket\r\n ticketHolders {\r\n categoryName\r\n categoryId\r\n maximumNumber\r\n defaultNumber\r\n }\r\n price {\r\n amountInclVat\r\n }\r\n translation {\r\n culture\r\n name\r\n description\r\n }\r\n isPersonalTicket\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst TimePicker = ({ day, allotment, cultureLocale }) => {\r\n const [availableOccasions, availableOccasionsSet] = useState();\r\n const [chosenOccasion, chosenOccasionSet] = useState();\r\n const { config, currency, culture, language } = useSelector((state) => ({\r\n config: state.config,\r\n currency: state.cookies[STATE_CURRENCY],\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n }));\r\n\r\n const { posId } = config;\r\n\r\n const useNewQuery = config && config?.useNewQuery;\r\n const dataQuery = useNewQuery ? query : oldQuery;\r\n\r\n const { data, loading } = useQuery(dataQuery, {\r\n variables: { posId, currency, culture, from, until },\r\n });\r\n\r\n let timeFormat = \"HH:mm\";\r\n\r\n useEffect(() => {\r\n chosenOccasionSet(\"\");\r\n }, [day]);\r\n\r\n useEffect(() => {\r\n if (!loading && data && allotment && day) {\r\n const filterAllotments = data?.allotments?.filter(\r\n (el) => allotment.name === el.description\r\n );\r\n\r\n const filterOccasions = filterAllotments?.[0]?.occasions.filter((el) =>\r\n isSameDay(new Date(el.time), new Date(day))\r\n );\r\n availableOccasionsSet(filterOccasions);\r\n }\r\n }, [day, data, loading, allotment]);\r\n\r\n useEffect(() => {\r\n const timePicker = document.getElementById(\"event-time-picker\");\r\n if (timePicker) {\r\n timePicker.focus();\r\n }\r\n }, [day]);\r\n\r\n useEffect(() => {\r\n if (\r\n day &&\r\n config?.hideEventTimeChooserIfSingleOccasion &&\r\n availableOccasions &&\r\n availableOccasions.length === 1\r\n ) {\r\n chosenOccasionSet(availableOccasions?.[0]);\r\n }\r\n }, [day, data, config, availableOccasions]);\r\n\r\n return (\r\n \r\n \r\n {(!config?.hideEventTimeChooserIfSingleOccasion || availableOccasions && availableOccasions.length > 1) && (\r\n <>\r\n \r\n \r\n {language.ChooseTimeHeader}\r\n \r\n \r\n {language.ChooseTimeDescription}\r\n \r\n \r\n\r\n \r\n {day &&\r\n !availableOccasions &&\r\n [...Array(12)].map((_, i) => (\r\n \r\n ))}\r\n {cultureLocale &&\r\n day &&\r\n availableOccasions &&\r\n availableOccasions.map((el, i) =>\r\n el.remaining > 0 ? (\r\n chosenOccasionSet(el)}\r\n key={el + i}\r\n style={{ border: \"1px solid #8A8C93\" }}\r\n >\r\n \r\n \r\n {format(new Date(el.time), timeFormat)}\r\n \r\n \r\n \r\n {language.ApproximatelyShort} {el.remaining}{\" \"}\r\n {language.Tickets.toLowerCase()}\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TimePicker;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n addMonths,\r\n format,\r\n isAfter,\r\n isBefore,\r\n isSameMonth,\r\n parseISO,\r\n startOfMonth,\r\n subMonths,\r\n} from \"date-fns\";\r\nimport { GoChevronLeft, GoChevronRight } from \"react-icons/go\";\r\n\r\nconst Header = ({\r\n currentDate,\r\n setCurrentDate,\r\n selectedDate,\r\n firstOccasion,\r\n lastOccasion,\r\n cultureLocale,\r\n initialMonth,\r\n language,\r\n}) => {\r\n const [allotmentDate, setAllotmentDate] = useState();\r\n const monthStart = startOfMonth(currentDate);\r\n const dateFormat = \"MMMM yyyy\";\r\n\r\n const nextMonth = () => {\r\n setCurrentDate(addMonths(currentDate, 1));\r\n };\r\n const prevMonth = () => {\r\n setCurrentDate(subMonths(currentDate, 1));\r\n };\r\n\r\n useEffect(() => {\r\n setCurrentDate(new Date(firstOccasion.time));\r\n setAllotmentDate(selectedDate);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let checkIfAfter = isAfter(initialMonth, parseISO(lastOccasion.time));\r\n if (\r\n !checkIfAfter &&\r\n initialMonth !== undefined &&\r\n !isSameMonth(new Date(currentDate), new Date(initialMonth))\r\n ) {\r\n setCurrentDate(new Date(initialMonth));\r\n }\r\n if (checkIfAfter) {\r\n setCurrentDate(parseISO(lastOccasion.time));\r\n }\r\n }, [initialMonth, lastOccasion.time]);\r\n\r\n const lastMonthLabel = format(subMonths(currentDate, 1), \"MMMM\", {\r\n locale: cultureLocale,\r\n });\r\n const nextMonthLabel = format(addMonths(currentDate, 1), \"MMMM\", {\r\n locale: cultureLocale,\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n {!isBefore(monthStart, new Date(firstOccasion?.time)) ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n\r\n
    \r\n \r\n {format(currentDate, dateFormat, { locale: cultureLocale })}{\" \"}\r\n \r\n
    \r\n\r\n
    \r\n {!isSameMonth(new Date(monthStart), new Date(lastOccasion?.time)) ? (\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 Header;\r\n","import React from \"react\";\r\nimport { startOfWeek, format, addDays } from \"date-fns\";\r\n\r\nconst Week = ({ currentDate, cultureLocale }) => {\r\n const dateFormat = \"E\";\r\n const days = [];\r\n let startDate = startOfWeek(currentDate, { locale: cultureLocale });\r\n for (let i = 0; i < 7; i++) {\r\n days.push(\r\n
    \r\n {format(addDays(startDate, i), dateFormat, {locale: cultureLocale})}\r\n
    \r\n );\r\n }\r\n return
    {days}
    ;\r\n};\r\n\r\nexport default Week;\r\n","import React from \"react\";\r\nimport {\r\n addDays,\r\n endOfMonth,\r\n endOfWeek,\r\n format,\r\n isBefore,\r\n isSameDay,\r\n isSameMonth,\r\n startOfMonth,\r\n startOfWeek,\r\n toDate,\r\n} from \"date-fns\";\r\nimport \"../styles.css\";\r\nimport \"./eventStyles.css\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst WeekDay = ({\r\n currentDate,\r\n selectedDate,\r\n daySet,\r\n occasions,\r\n cultureLocale,\r\n}) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const monthStart = startOfMonth(currentDate, {\r\n locale: cultureLocale,\r\n });\r\n const monthEnd = endOfMonth(monthStart);\r\n const startDate = startOfWeek(monthStart, { locale: cultureLocale });\r\n const endDate = endOfWeek(monthEnd, { locale: cultureLocale });\r\n const dateFormat = \"d\";\r\n const regularDateFormat = \"yyyy-MM-dd\";\r\n const rows = [];\r\n\r\n let days = [];\r\n let day = startDate;\r\n let formattedDate = \"\";\r\n let today = new Date();\r\n let yesterday = today.setDate(today.getDate() - 1);\r\n\r\n const onDateClick = (day) => {\r\n daySet(day);\r\n };\r\n\r\n const getAvailability = (day, occasion) => {\r\n if (occasion) {\r\n const filter = occasion.filter(\r\n (el) =>\r\n format(new Date(el.time), \"yyyy-MM-dd\") ===\r\n format(new Date(day), \"yyyy-MM-dd\")\r\n );\r\n if (filter.length > 0) {\r\n return \"available\";\r\n } else {\r\n return null;\r\n }\r\n }\r\n };\r\n\r\n while (day <= endDate) {\r\n for (let i = 0; i < 7; i++) {\r\n formattedDate = format(day, dateFormat);\r\n const cloneDay = day;\r\n let isAvailable;\r\n getAvailability(format(day, regularDateFormat), occasions) === \"available\"\r\n ? (isAvailable = \"available\")\r\n : (isAvailable = \"disabled\");\r\n days.push(\r\n onDateClick(toDate(cloneDay))}\r\n >\r\n {formattedDate}\r\n \r\n );\r\n day = addDays(day, 1);\r\n }\r\n\r\n rows.push(\r\n
    \r\n {days}\r\n
    \r\n );\r\n days = [];\r\n }\r\n return
    {rows}
    ;\r\n};\r\nexport default WeekDay;\r\n","import React, { useEffect } from \"react\";\r\nimport \"./eventStyles.css\";\r\nimport Header from \"./Header\";\r\nimport Week from \"./Week\";\r\nimport WeekDay from \"./WeekDay\";\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport { da, de, enGB, sv } from \"date-fns/locale\";\r\nimport { STATE_CULTURE } from \"../../../../common/state\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst EventCalendarV2 = ({\r\n currentDate,\r\n setCurrentDate,\r\n firstOccasion,\r\n lastOccasion,\r\n occasions,\r\n day,\r\n daySet,\r\n initialMonth,\r\n cultureLocale,\r\n setCultureLocale,\r\n}) => {\r\n const { culture, language } = useSelector((state) => ({\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n }));\r\n\r\n const locales = [\r\n { culture: \"sv-SE\", data: sv },\r\n { culture: \"en-US\", data: enGB },\r\n { culture: \"en-GB\", data: enGB },\r\n { culture: \"de-DE\", data: de },\r\n { culture: \"da-DK\", data: da },\r\n ];\r\n\r\n useEffect(() => {\r\n const getLocale = locales.filter((el) => el.culture === culture)[0].data;\r\n setCultureLocale(getLocale);\r\n }, []);\r\n\r\n return (\r\n
    \r\n {occasions === undefined ? (\r\n
    \r\n \r\n

    {language.CalendarLoading}

    \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default EventCalendarV2;\r\n","import {\r\n Button,\r\n Container,\r\n createStyles,\r\n Image,\r\n MediaQuery,\r\n SimpleGrid,\r\n Skeleton,\r\n Space,\r\n Text,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { isAfter, isSameMonth } from \"date-fns\";\r\nimport Markdown from \"react-markdown\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport TimePicker from \"./TimePicker\";\r\nimport \"./styles.css\";\r\nimport _ from \"lodash\";\r\nimport EventCalendarV2 from \"./Calendar\";\r\nimport { navigate, useLocation } from \"@reach/router\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n button: {\r\n border: \"1px solid #8A8C93\",\r\n },\r\n buttonWrapper: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"start\",\r\n paddingTop: 0,\r\n paddingBottom: \".5rem\",\r\n paddingLeft: 0,\r\n \"@media screen and (max-width: 768px)\": {\r\n paddingLeft: \"1rem\",\r\n },\r\n },\r\n}));\r\n\r\nconst EventV2 = (props) => {\r\n const [isLoading, isLoadingSet] = useState(true);\r\n const [text, textSet] = useState(\"\");\r\n const [event, eventSet] = useState(null);\r\n const [day, daySet] = useState(null);\r\n const [lastOccasion, lastOccasionSet] = useState();\r\n const [firstOccasion, firstOccasionSet] = useState();\r\n const [month, monthSet] = useState(new Date());\r\n const [initialMonth, initialMonthSet] = useState();\r\n const [currentDate, setCurrentDate] = useState(new Date());\r\n const [cultureLocale, setCultureLocale] = useState();\r\n const { config, culture, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n const image = `${uri}/allotmentimage/${props?.event?.imageFileName}`;\r\n const location = useLocation();\r\n const filter = location.state;\r\n let pathname = location.pathname;\r\n const { classes } = useStyles();\r\n\r\n useEffect(() => {\r\n firstOccasionSet(_.first(props.event.occasions));\r\n lastOccasionSet(_.last(props.event.occasions));\r\n }, [props.event.occasions]);\r\n\r\n useEffect(() => {\r\n daySet(null);\r\n if (props.event.occasions) {\r\n const getEventByMonth =\r\n props.event.occasions &&\r\n props.event.occasions.filter((el) =>\r\n isSameMonth(new Date(el.time), new Date(currentDate))\r\n );\r\n if (getEventByMonth) {\r\n eventSet(getEventByMonth);\r\n }\r\n }\r\n }, [currentDate, pathname, month]);\r\n\r\n useEffect(() => {\r\n if (Object.keys(props.event).length > 1) {\r\n isLoadingSet(false);\r\n }\r\n const filterTextByCulture = props.event.translation.filter(\r\n (el) => el.culture === culture\r\n );\r\n if (filterTextByCulture) {\r\n textSet({\r\n name: filterTextByCulture[0]?.name,\r\n description: filterTextByCulture[0]?.description,\r\n });\r\n }\r\n }, [props, culture]);\r\n\r\n useEffect(() => {\r\n if (filter && props.event.occasions.length > 0) {\r\n const reduce = props.event.occasions.reduce((acc, curr) => {\r\n if (isAfter(new Date(curr.time), filter[0])) {\r\n acc.push(curr.time);\r\n }\r\n return acc;\r\n }, []);\r\n if (reduce && reduce.length > 0) {\r\n initialMonthSet(new Date(reduce[0]));\r\n }\r\n }\r\n }, [filter, props.event.occasions]);\r\n\r\n return (\r\n event && (\r\n <>\r\n \r\n navigate(-1)}\r\n >\r\n {language.Back}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n {text.name}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n \r\n {language.ChooseDateHeader}\r\n \r\n \r\n {language.ChooseDateDescription}\r\n \r\n \r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n )\r\n );\r\n};\r\nexport default EventV2;\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { DataContext } from \"../../components/common/dataProvider\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport { getEvent } from \"./util\";\r\nimport Event from \"../../components/Event\";\r\nimport slugify from \"../../components/common/slugify\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport EventV2 from \"../../components/Event/EventV2\";\r\nimport { Button, Container, Text, Title } from \"@mantine/core\";\r\nimport { useNavigate } from \"@reach/router\";\r\n\r\nconst EventPage = ({ id }) => {\r\n const { data, eventFilter } = useContext(DataContext);\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const navigate = useNavigate();\r\n const allotment = data?.allotments.find(\r\n (allotment) => slugify(allotment.description) === id\r\n );\r\n const event = useMemo(() => getEvent(data, config, id), [data, id, config]);\r\n\r\n if (!allotment)\r\n return (\r\n \r\n \r\n \r\n \r\n {language.CouldNotFindEventHeader}\r\n \r\n \r\n {language.CouldNotFindEventText}\r\n \r\n navigate(\"/ticketshop\")}\r\n className=\"mantine-Primary-btn primaryButton\"\r\n variant=\"filled\"\r\n size=\"md\"\r\n radius=\"sm\"\r\n color=\"indigo\"\r\n >\r\n {language.BackToHomepage}\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n {config?.useNewEventPage ? (\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 EventPage;\r\n","// open price\r\nexport const formatDisplayPrice = (price, currency) => {\r\n if (!price) return \"-\";\r\n switch (currency) {\r\n case \"SEK\":\r\n case \"NOK\":\r\n case \"DKK\":\r\n return `${Number(price).toFixed(2)} kr`;\r\n case \"EUR\":\r\n return `€${Number(price).toFixed(2)}`;\r\n case \"USD\":\r\n return `$${Number(price).toFixed(2)}`;\r\n default:\r\n return price;\r\n }\r\n};\r\n\r\nexport const getDisplayPrice = (articles) => {\r\n var filteredArticles = articles.filter((a) => a.price !== undefined);\r\n\r\n if (filteredArticles.length > 0) {\r\n filteredArticles.sort(\r\n (a, b) => a.price?.amountInclVat - b.price?.amountInclVat\r\n );\r\n const first = filteredArticles[0].price?.amountInclVat;\r\n const last =\r\n filteredArticles[filteredArticles.length - 1].price?.amountInclVat;\r\n if (first !== last) {\r\n return `${filteredArticles[0].priceInclVat} - ${\r\n filteredArticles[filteredArticles.length - 1].priceInclVat\r\n }`;\r\n }\r\n return filteredArticles[0].priceInclVat;\r\n }\r\n return undefined;\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardActionArea from \"@material-ui/core/CardActionArea\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport CardMedia from \"@material-ui/core/CardMedia\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ReactComponent as Placeholder } from \"../../images/placeholder.svg\";\r\nimport { getDisplayPrice } from \"./util\";\r\nimport slugify from \"../common/slugify\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n position: \"relative\",\r\n width: \"100%\",\r\n \"@media(max-width: 1024px)\": {\r\n margin: \"8px\",\r\n },\r\n \"&:focus\": {\r\n border: \"3px solid black\",\r\n },\r\n \"&:active\": {\r\n border: \"none\",\r\n },\r\n },\r\n img: {\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n height: \"auto\",\r\n background: theme.app.background[2],\r\n },\r\n image: {\r\n height: 0,\r\n paddingTop: \"100%\", // aspect ratio 1:1\r\n },\r\n content: {\r\n background: theme.palette.background.paper,\r\n borderTop: `1px solid ${theme.palette.divider}`,\r\n },\r\n productName: {\r\n fontSize: \"1.2rem\",\r\n lineHeight: 1.3,\r\n display: \"box\",\r\n lineClamp: 2,\r\n boxOrient: \"vertical\",\r\n overflow: \"hidden\",\r\n },\r\n productPrice: {\r\n display: \"flex\",\r\n alignItems: \"flex-end\",\r\n },\r\n buttonDisabled: {\r\n color: \"rgba(255,255,255,0.5)!important\",\r\n },\r\n button: {},\r\n}));\r\n\r\nconst CardItem = ({\r\n product,\r\n isEvent,\r\n isEventCalendar,\r\n setPosition,\r\n culture,\r\n}) => {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const [price, setPrice] = useState();\r\n\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n let productName = product.name;\r\n if (isEvent) {\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n productName =\r\n product.translation.find((t) => t.culture === culture)?.name ??\r\n language[product.name] ??\r\n product.name;\r\n product.imageFileName\r\n ? (product.images = [`${uri}/allotmentimage/${product.imageFileName}`])\r\n : (product.images = undefined);\r\n }\r\n if (isEventCalendar) {\r\n product.images = [\r\n `${process.env.PUBLIC_URL}/${config?.imageFolderUrl}${product.image}`,\r\n ];\r\n }\r\n\r\n const productGroupConfig = config.productGroupConfig.find(\r\n (x) => x.name === product.name\r\n );\r\n const displayPrice =\r\n productGroupConfig?.useGroupsAsItems && !isEvent\r\n ? product.isInfo\r\n ? \" \"\r\n : getDisplayPrice(product.products)\r\n : product.displayPrice;\r\n\r\n useEffect(() => {\r\n const giftCard = config?.productConfig?.filter((el) =>\r\n el.description?.includes(\"presentkort\")\r\n );\r\n const filterGiftCard = giftCard?.filter((el) => el.plu === product.plu);\r\n\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length > 0\r\n ) {\r\n setPrice(\r\n `${language.FromCost} ${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\r\n );\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length === 0\r\n ) {\r\n setPrice(language.OpenPrice);\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length === 1\r\n ) {\r\n setPrice(\r\n `${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\r\n );\r\n } else if (filterGiftCard.length === 0) {\r\n setPrice(displayPrice);\r\n }\r\n }, [config, product, displayPrice]);\r\n\r\n return (\r\n \r\n {\r\n setPosition();\r\n if (isEventCalendar) {\r\n navigate(`tickets/${product.slug}`);\r\n } else {\r\n navigate(`${product.slug}`);\r\n }\r\n }}\r\n classes={{ root: classes.button }}\r\n >\r\n {product.images && product.images?.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {productName}\r\n \r\n \r\n {price}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CardItem;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport { ReactComponent as Placeholder } from \"../../images/placeholder_list.svg\";\r\nimport { getDisplayPrice } from \"./util\";\r\nimport slugify from \"../common/slugify\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n listItem: {\r\n \"&:nth-child(even)\": {\r\n backgroundColor: theme.app.tableHighlight,\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n \"@media(max-width: 667px)\": {\r\n paddingLeft: \"4px\",\r\n paddingRight: \"4px\",\r\n },\r\n \"&:focus\": {\r\n border: \"3px solid black\",\r\n },\r\n \"&:active\": {\r\n border: \"none\",\r\n },\r\n },\r\n imageContainer: {\r\n lineHeight: 1,\r\n },\r\n listItemText: {\r\n paddingLeft: \"16px\",\r\n },\r\n image: {\r\n width: \"100px\",\r\n border: `1px solid ${theme.palette.divider}`,\r\n borderRadius: \"4px\",\r\n backgroundColor: theme.app.background[2],\r\n \"@media(max-width: 667px)\": {\r\n width: \"75px\",\r\n },\r\n },\r\n}));\r\n\r\nconst ListRow = (props) => {\r\n const { product, isEventCalendar, isEvent, culture } = props;\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const [price, setPrice] = useState();\r\n\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n\r\n let productName = product.name;\r\n if (isEvent) {\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n productName =\r\n product.translation.find((t) => t.culture === culture)?.name ??\r\n language[product.name] ??\r\n product.name;\r\n product.imageFileName\r\n ? (product.images = [`${uri}/allotmentimage/${product.imageFileName}`])\r\n : (product.images = undefined);\r\n }\r\n\r\n if (isEventCalendar) {\r\n product.images = [\r\n `${process.env.PUBLIC_URL}/${config?.imageFolderUrl}${product.image}`,\r\n ];\r\n }\r\n\r\n const productGroupConfig = config.productGroupConfig.find(\r\n (x) => x.name === product.name\r\n );\r\n\r\n const displayPrice =\r\n productGroupConfig?.useGroupsAsItems && !isEvent\r\n ? product.isInfo\r\n ? \" \"\r\n : getDisplayPrice(product.products)\r\n : product.displayPrice;\r\n\r\n useEffect(() => {\r\n const giftCard = config?.productConfig?.filter((el) =>\r\n el.description?.includes(\"presentkort\")\r\n );\r\n const filterGiftCard = giftCard?.filter((el) => el.plu === product.plu);\r\n\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length > 0\r\n ) {\r\n setPrice(\r\n `${language.FromCost} ${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\r\n );\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length === 0\r\n ) {\r\n setPrice(language.OpenPrice);\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length === 1\r\n ) {\r\n setPrice(\r\n `${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\r\n );\r\n } else if (filterGiftCard.length === 0) {\r\n setPrice(displayPrice);\r\n }\r\n }, [config, product, displayPrice]);\r\n\r\n const getCalendarBookingLinks = (item) => {\r\n const eventCalendarLinks = config.eventConfig.filter(\r\n (el) => el.eventCalendar && el?.name === item?.name\r\n );\r\n const articleBookingLinks = config.eventConfig.filter(\r\n (el) => el.articleBooking && el?.name === item?.name\r\n );\r\n if (eventCalendarLinks && eventCalendarLinks[0]) {\r\n return navigate(`tickets/${product.slug}`);\r\n }\r\n if (articleBookingLinks && articleBookingLinks[0]) {\r\n return navigate(`booking/${slugify(articleBookingLinks[0]?.name)}`);\r\n }\r\n if (!eventCalendarLinks[0] && !articleBookingLinks[0]) {\r\n return navigate(`/ticketshop/${product.slug}`);\r\n }\r\n };\r\n\r\n return (\r\n getCalendarBookingLinks(product)}\r\n className={clsx(classes.listItem, \"listrow__container\")}\r\n divider\r\n >\r\n
    \r\n {product.images && product.images?.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ListRow;\r\n","import React, { useContext, useEffect, useMemo, useState } from \"react\";\r\nimport {\r\n Button,\r\n createStyles,\r\n Divider,\r\n Image,\r\n Skeleton,\r\n UnstyledButton,\r\n} from \"@mantine/core\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport slugify from \"../common/slugify\";\r\nimport { getSaleData } from \"../Product/util\";\r\nimport { addArticle, addToCartTracking } from \"../../common/sale\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\nimport { SaleContext } from \"../common/saleProvider\";\r\nimport \"./styles.css\";\r\nimport { getProduct } from \"../../Pages/ProductPage/util\";\r\nimport { STATE_CURRENCY } from \"../../common/state\";\r\nimport { BsCheck } from \"react-icons/bs\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n wrapper: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"90% 1fr\",\r\n gridGap: \"1rem\",\r\n padding: \"0rem 1rem\",\r\n \":hover\": {\r\n backgroundColor: theme.colors.gray[1],\r\n p: {\r\n color: \"black\",\r\n },\r\n },\r\n \"@media screen and (max-width: 768px)\": {\r\n gridGap: \"0.5rem\",\r\n padding: \"0rem 0.5rem\",\r\n gridTemplateColumns: \"auto auto\",\r\n },\r\n },\r\n priceWrapper: {\r\n p: {\r\n textAlign: \"right\",\r\n },\r\n \"&:last-child\": {\r\n justifySelf: \"end\",\r\n alignSelf: \"center\",\r\n },\r\n },\r\n imageWrapper: {},\r\n title: {\r\n fontWeight: \"bold\",\r\n marginBottom: 0,\r\n marginTop: \"1rem\",\r\n \"@media screen and (max-width: 768px)\": {},\r\n },\r\n price: {\r\n paddingRight: \"1rem\",\r\n marginTop: \".5rem\",\r\n },\r\n grid: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"1rem\",\r\n width: \"100%\",\r\n padding: \"1rem 0rem\",\r\n borderRadius: \"8px\",\r\n \"@media screen and (max-width: 768px)\": { gap: \"0.7rem\" },\r\n },\r\n skeleton: {\r\n display: \"grid\",\r\n gridTemplateColumns: \".85fr 1.5fr .6fr\",\r\n padding: \"1rem .5rem\",\r\n },\r\n skeletonTextWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"0.5rem\",\r\n },\r\n checkIcon: {\r\n height: \"1.5rem\",\r\n width: \"1.5rem\",\r\n },\r\n}));\r\nconst ListItemV2 = ({ product, culture }) => {\r\n const [addedToCart, addedToCartSet] = useState(null);\r\n const [price, priceSet] = useState(null);\r\n const [clicked, clickedSet] = useState(false);\r\n const { config, language, currency } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const { classes, theme } = useStyles();\r\n const rdxDispatch = useDispatch();\r\n const navigate = useNavigate();\r\n const { data } = useContext(DataContext);\r\n const saleContext = useContext(SaleContext);\r\n const { sale } = saleContext.state;\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n const regex = /\\D/g;\r\n const reduce =\r\n product.products &&\r\n product.products.reduce((acc, curr) => {\r\n acc.push(curr.priceInclVat);\r\n return acc;\r\n }, []);\r\n\r\n const reduceChooseValue =\r\n product.openPriceValues &&\r\n product.openPriceValues.reduce((acc, curr) => {\r\n acc.push(curr);\r\n return acc;\r\n }, []);\r\n\r\n const sortPrice = (prices) => {\r\n if (prices && typeof prices?.[0] === typeof 0) {\r\n const sortOpenPrice = prices.sort((a, b) => a - b);\r\n return sortOpenPrice;\r\n } else if (prices && typeof prices?.[0] === typeof \"\") {\r\n const sortStringValue = prices.sort(\r\n (a, b) => a.replace(regex, \"\") - b.replace(regex, \"\")\r\n );\r\n return sortStringValue;\r\n }\r\n };\r\n\r\n const links = (item) => {\r\n const eventCalendarLinks = config.eventConfig.filter(\r\n (el) => el.eventCalendar && el?.name === item?.name\r\n );\r\n const articleBookingLinks = config.eventConfig.filter(\r\n (el) => el.articleBooking && el?.name === item?.name\r\n );\r\n if (eventCalendarLinks && eventCalendarLinks[0]) {\r\n return navigate(`tickets/${slugify(eventCalendarLinks[0].name)}`);\r\n }\r\n if (articleBookingLinks && articleBookingLinks[0]) {\r\n return navigate(`booking/${slugify(articleBookingLinks[0]?.name)}`);\r\n }\r\n if (!eventCalendarLinks[0] && !articleBookingLinks[0]) {\r\n return navigate(`/ticketshop/${product.slug}`);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const giftCard = config?.productConfig?.filter((el) =>\r\n el.description?.includes(\"presentkort\")\r\n );\r\n const filterGiftCard = giftCard?.filter((el) => el.plu === product.plu);\r\n\r\n if (product?.priceInclVat && !reduce && !reduceChooseValue) {\r\n priceSet(product.priceInclVat);\r\n }\r\n\r\n if (product?.displayPrice && !reduce && !reduceChooseValue) {\r\n priceSet(product.displayPrice);\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length > 0\r\n ) {\r\n priceSet(\r\n `${language.FromCost} ${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\r\n );\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length === 0\r\n ) {\r\n priceSet(language.OpenPrice);\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length === 1\r\n ) {\r\n priceSet(\r\n `${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\r\n );\r\n }\r\n if (reduce) {\r\n priceSet(\r\n `${sortPrice(reduce)?.[0]}–${\r\n sortPrice(reduce)?.[sortPrice(reduce).length - 1]\r\n }`\r\n );\r\n }\r\n\r\n if (reduceChooseValue) {\r\n priceSet(\r\n `${sortPrice(reduceChooseValue)?.[0]} kr–${\r\n sortPrice(reduceChooseValue)?.[\r\n sortPrice(reduceChooseValue).length - 1\r\n ]\r\n } kr`\r\n );\r\n }\r\n }, [config, product]);\r\n\r\n const trackProductData = [\r\n {\r\n id: product.plu,\r\n name: product.name,\r\n price: product?.price?.amountInclVat,\r\n quantity: 1,\r\n },\r\n ];\r\n\r\n const handleAdd = () => {\r\n addToCartTracking(currency, trackProductData);\r\n clickedSet(true);\r\n const callback = (status, msg) => {\r\n if (status === 200) {\r\n clickedSet(false);\r\n\r\n addedToCartSet(true);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n if (status !== 200) {\r\n clickedSet(false);\r\n\r\n addedToCartSet(false);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n };\r\n let article;\r\n let values;\r\n let photo;\r\n let overrideDate;\r\n let quantity = 1;\r\n const saleData = getSaleData(\r\n product,\r\n article,\r\n values,\r\n photo,\r\n quantity,\r\n overrideDate\r\n );\r\n rdxDispatch(addArticle(saleData, callback));\r\n };\r\n\r\n const image = useMemo(() => {\r\n if (product?.images?.[0].startsWith(\"http\")) {\r\n return product?.images?.[0];\r\n }\r\n if (product?.images?.[0].startsWith(\"/ticketshop/\")) {\r\n return `${process.env.PUBLIC_URL}${product?.images?.[0].replace(\r\n \"/ticketshop/\",\r\n \"/\"\r\n )}`;\r\n }\r\n if (product?.imageFileName) {\r\n return `${uri}/allotmentimage/${product?.imageFileName}`;\r\n }\r\n if (product?.images?.[0]) {\r\n return `${process.env.PUBLIC_URL}${product?.images?.[0]}`;\r\n } else {\r\n return \"\";\r\n }\r\n }, [product.images]);\r\n\r\n const productData = useMemo(() => {\r\n if (sale) {\r\n return getProduct(data, config, product.plu, culture);\r\n }\r\n }, [data, product, config, culture, sale]);\r\n\r\n const added = useMemo(() => {\r\n if (window.offsetWidth >= 769) {\r\n return language.Added_To_Cart;\r\n } else {\r\n return ;\r\n }\r\n }, [window]);\r\n\r\n if (!product || !productData)\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n
    \r\n links(product)}\r\n component=\"a\"\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n

    {product.name}

    \r\n

    \r\n {price}\r\n

    \r\n
    \r\n \r\n \r\n {productData?.isProduct ? (\r\n handleAdd()}\r\n color={addedToCart && \"green\"}\r\n loading={clicked}\r\n disabled={product.inStock <= 0}\r\n >\r\n {!addedToCart && (!product.inStock || product.inStock >= 1)\r\n ? language.Buy\r\n : !addedToCart && product.inStock <= 0\r\n ? language.SoldOut\r\n : addedToCart && added}\r\n \r\n ) : (\r\n links(product)}\r\n variant=\"outline\"\r\n className=\"productChooseBtn\"\r\n aria-label={`${language.Choose} ${product.name}`}\r\n >\r\n {language.Choose}\r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ListItemV2;\r\n","import React, { useContext, useEffect, useMemo, useState } from \"react\";\r\nimport {\r\n Button,\r\n Card,\r\n createStyles,\r\n Image,\r\n SimpleGrid,\r\n Skeleton,\r\n Text,\r\n UnstyledButton,\r\n} from \"@mantine/core\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport slugify from \"../common/slugify\";\r\nimport { getSaleData } from \"../Product/util\";\r\nimport { addArticle, addToCartTracking } from \"../../common/sale\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\nimport { SaleContext } from \"../common/saleProvider\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\r\nimport { getProduct } from \"../../Pages/ProductPage/util\";\r\nimport \"./styles.css\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n card: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n border: \"none\",\r\n position: \"relative\",\r\n padding: \"0rem\",\r\n width: \"100%\",\r\n backgroundColor:\r\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\r\n cursor: \"pointer\",\r\n transition: \"0.2s\",\r\n \"&:hover\": {\r\n // opacity: 0.9,\r\n // transform: \"translateY(-2px)\",\r\n },\r\n },\r\n\r\n imageButton: {\r\n transition: \"0.2s\",\r\n borderRadius: \"8px\",\r\n \"&:hover\": {\r\n opacity: 0.9,\r\n },\r\n },\r\n\r\n rating: {\r\n position: \"absolute\",\r\n top: theme.spacing.xs,\r\n right: theme.spacing.xs + 2,\r\n pointerEvents: \"none\",\r\n },\r\n\r\n title: {\r\n display: \"block\",\r\n marginTop: theme.spacing.sm,\r\n marginBottom: 0,\r\n fontSize: \"1rem\",\r\n textAlign: \"left\",\r\n },\r\n\r\n action: {\r\n backgroundColor:\r\n theme.colorScheme === \"dark\"\r\n ? theme.colors.dark[6]\r\n : theme.colors.gray[0],\r\n ...theme.fn.hover({\r\n backgroundColor:\r\n theme.colorScheme === \"dark\"\r\n ? theme.colors.dark[5]\r\n : theme.colors.gray[1],\r\n }),\r\n },\r\n price: {\r\n marginTop: 0,\r\n fontSize: \"1rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n fontWeight: \"bold\",\r\n fontSize: \"1rem\",\r\n width: \"100%\",\r\n textAlign: \"start\",\r\n },\r\n },\r\n footer: {\r\n cursor: \"default\",\r\n marginTop: theme.spacing.md,\r\n button: {\r\n \"@media screen and (max-width: 768px)\": {\r\n width: \"100%\",\r\n },\r\n },\r\n },\r\n skeleton: {\r\n width: \"100%\",\r\n padding: \"1rem 0.7rem\",\r\n },\r\n addToCart: {\r\n width: \"100%\",\r\n },\r\n}));\r\n\r\nconst CardItemV2 = ({ product }) => {\r\n const { config, language, culture, currency } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const [addedToCart, addedToCartSet] = useState(null);\r\n const [clicked, clickedSet] = useState(false);\r\n const [price, priceSet] = useState(null);\r\n const { classes, theme, cx } = useStyles();\r\n const navigate = useNavigate();\r\n const { data } = useContext(DataContext);\r\n const saleContext = useContext(SaleContext);\r\n const { sale } = saleContext.state;\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n const rdxDispatch = useDispatch();\r\n const regex = /\\D/g;\r\n\r\n const reduce =\r\n product.products &&\r\n product.products.reduce((acc, curr) => {\r\n acc.push(curr.priceInclVat);\r\n return acc;\r\n }, []);\r\n const reduceChooseValue =\r\n product.openPriceValues &&\r\n product.openPriceValues.reduce((acc, curr) => {\r\n acc.push(curr);\r\n return acc;\r\n }, []);\r\n\r\n const sortPrice = (prices) => {\r\n if (prices && typeof prices?.[0] === typeof 0) {\r\n const sortOpenPrice = prices.sort((a, b) => a - b);\r\n return sortOpenPrice;\r\n } else if (prices && typeof prices?.[0] === typeof \"\") {\r\n const sortStringValue = prices.sort(\r\n (a, b) => a.replace(regex, \"\") - b.replace(regex, \"\")\r\n );\r\n return sortStringValue;\r\n }\r\n };\r\n\r\n const links = (item) => {\r\n const eventCalendarLinks = config.eventConfig.filter(\r\n (el) => el.eventCalendar && el?.name === item?.name\r\n );\r\n const articleBookingLinks = config.eventConfig.filter(\r\n (el) => el.articleBooking && el?.name === item?.name\r\n );\r\n if (eventCalendarLinks && eventCalendarLinks[0]) {\r\n return navigate(`tickets/${slugify(eventCalendarLinks[0].name)}`);\r\n }\r\n if (articleBookingLinks && articleBookingLinks[0]) {\r\n return navigate(`booking/${slugify(articleBookingLinks[0]?.name)}`);\r\n }\r\n if (!eventCalendarLinks[0] && !articleBookingLinks[0]) {\r\n return navigate(`/ticketshop/${product.slug}`);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const giftCard = config?.productConfig?.filter((el) =>\r\n el.description?.includes(\"presentkort\")\r\n );\r\n const filterGiftCard = giftCard?.filter((el) => el.plu === product.plu);\r\n\r\n if (product?.displayPrice && !reduce && !reduceChooseValue) {\r\n const price = product.displayPrice.replace(\" - \", \"–\")\r\n priceSet(price);\r\n }\r\n\r\n if (product?.priceInclVat && !reduce && !reduceChooseValue) {\r\n priceSet(product.priceInclVat);\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length > 0\r\n ) {\r\n priceSet(\r\n `${language.FromCost} ${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\r\n );\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length === 0\r\n ) {\r\n priceSet(language.OpenPrice);\r\n }\r\n if (\r\n filterGiftCard.length > 0 &&\r\n filterGiftCard[0].openPriceValues.length === 1\r\n ) {\r\n priceSet(\r\n `${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\r\n );\r\n }\r\n if (reduce) {\r\n priceSet(\r\n `${sortPrice(reduce)?.[0]}–${\r\n sortPrice(reduce)?.[sortPrice(reduce).length - 1]\r\n }`\r\n );\r\n }\r\n\r\n if (reduceChooseValue) {\r\n priceSet(\r\n `${sortPrice(reduceChooseValue)?.[0]} kr–${\r\n sortPrice(reduceChooseValue)?.[\r\n sortPrice(reduceChooseValue).length - 1\r\n ]\r\n } kr`\r\n );\r\n }\r\n }, [config, product]);\r\n\r\n const trackProductData = [\r\n {\r\n id: product.plu,\r\n name: product.name,\r\n price: product?.price?.amountInclVat,\r\n quantity: 1,\r\n },\r\n ];\r\n\r\n const handleAdd = () => {\r\n addToCartTracking(currency, trackProductData);\r\n clickedSet(true);\r\n const callback = (status, msg) => {\r\n if (status === 200) {\r\n clickedSet(false);\r\n addedToCartSet(true);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n if (status !== 200) {\r\n clickedSet(false);\r\n addedToCartSet(false);\r\n setTimeout(() => {\r\n addedToCartSet(null);\r\n }, 5000);\r\n }\r\n };\r\n let article;\r\n let values;\r\n let photo;\r\n let overrideDate;\r\n let quantity = 1;\r\n const saleData = getSaleData(\r\n product,\r\n article,\r\n values,\r\n photo,\r\n quantity,\r\n overrideDate\r\n );\r\n rdxDispatch(addArticle(saleData, callback));\r\n };\r\n\r\n const image = useMemo(() => {\r\n if (product?.images?.[0].startsWith(\"http\")) {\r\n return product?.images?.[0];\r\n }\r\n if (product?.images?.[0].startsWith(\"/ticketshop/\")) {\r\n return `${process.env.PUBLIC_URL}${product?.images?.[0].replace(\r\n \"/ticketshop/\",\r\n \"/\"\r\n )}`;\r\n }\r\n if (product?.imageFileName) {\r\n return `${uri}/allotmentimage/${product?.imageFileName}`;\r\n }\r\n if (product?.images?.[0]) {\r\n return `${process.env.PUBLIC_URL}${product?.images?.[0]}`;\r\n } else {\r\n return \"\";\r\n }\r\n }, [product.images]);\r\n\r\n const productData = useMemo(() => {\r\n if (sale) {\r\n return getProduct(data, config, product.plu, culture);\r\n }\r\n }, [data, product, config, culture, sale]);\r\n\r\n if (!product || !productData)\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n return (\r\n \r\n links(product)}\r\n sx={{ width: \"100%\" }}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n {product?.name}\r\n \r\n \r\n \r\n \r\n {price}\r\n \r\n {productData?.isProduct ? (\r\n
    \r\n handleAdd()}\r\n color={addedToCart && \"green\"}\r\n disabled={product.inStock <= 0}\r\n loading={clicked}\r\n >\r\n {!addedToCart && (!product.inStock || product.inStock >= 1)\r\n ? language.AddToCartBtn\r\n : !addedToCart && product.inStock <= 0\r\n ? language.SoldOut\r\n : addedToCart && language.Added_To_Cart}\r\n \r\n
    \r\n ) : (\r\n links(product)}\r\n variant=\"outline\"\r\n aria-label={`${language.Choose} ${product.name}`}\r\n >\r\n {language.Choose}\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CardItemV2;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport CardItem from \"./cardItem\";\r\nimport ListItem from \"./listItem\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport ListItemV2 from \"./ListItemV2\";\r\nimport CardItemV2 from \"./CardItemV2\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n cardList: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(4, 1fr)\",\r\n gridGap: \"1rem 0rem\",\r\n justifyItems: \"center\",\r\n padding: \"16px 0\",\r\n \"@media(max-width: 667px)\": {\r\n gridTemplateColumns: \"1fr 1fr\",\r\n gridGap: \"1rem 0rem\",\r\n },\r\n \"@media(max-width: 300px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n gridGap: \"1rem 0rem\",\r\n },\r\n },\r\n list: {},\r\n}));\r\n\r\nconst ProductList = ({\r\n originalPage,\r\n products,\r\n events,\r\n listType,\r\n setPosition,\r\n data,\r\n}) => {\r\n const [eventCalendar, eventCalendarSet] = useState(null);\r\n const { config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const classes = useStyles();\r\n const isCardList = listType\r\n ? listType === \"CARD\"\r\n : window.innerWidth < 667\r\n ? config.articleListType?.sm === \"CARD\"\r\n : config.articleListType?.lg === \"CARD\";\r\n\r\n // insert imageFileName and translations into the \"events\" object, using data from API\r\n if (events) {\r\n events.forEach((event) => {\r\n event.imageFileName = data.allotments.find(\r\n (allotment) => event.id === allotment.id\r\n ).imageFileName;\r\n event.translation = data.allotments.find(\r\n (allotment) => event.id === allotment.id\r\n ).translation;\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n if (originalPage && originalPage?.events && config?.ticketConfigurator) {\r\n const filter = config?.ticketConfigurator.filter((ele) => {\r\n return originalPage?.events.some((el) => {\r\n return el === ele.name;\r\n });\r\n });\r\n\r\n if (filter && filter.length > 0) {\r\n eventCalendarSet(filter);\r\n }\r\n return () => eventCalendarSet(null);\r\n }\r\n }, [config, originalPage]);\r\n\r\n return (\r\n \r\n {eventCalendar &&\r\n eventCalendar.map((ec, key) =>\r\n isCardList ? (\r\n config?.useNewCard ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n {config?.useNewList ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n )}\r\n\r\n {events?.map((event) =>\r\n isCardList ? (\r\n config?.useNewCard ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n ) : config?.useNewList ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n {products.map((product) =>\r\n isCardList ? (\r\n config?.useNewCard ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n ) : config?.useNewList ? (\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 ProductList;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useStyles = makeStyles({\r\n filterContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\",\r\n gap: \"1rem\",\r\n margin: \"1rem\",\r\n },\r\n checkbox: {\r\n opacity: \"0\",\r\n position: \"absolute\",\r\n\r\n \"&:focus + $filterInput\": {\r\n outlineOffset: \"2px\",\r\n outline: \"1px solid black\",\r\n },\r\n },\r\n filterInput: {\r\n fontSize: \"16px\",\r\n fontWeight: \"normal\",\r\n padding: \"6px 16px\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n filterInputUnmarked: {\r\n display: \"flex\",\r\n gap: \"0.5rem\",\r\n alignItems: \"center\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid black !important\",\r\n borderRadius: \"5rem\",\r\n color: \"rgb(0, 0, 0)\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"rgb(230, 230, 230)\",\r\n },\r\n },\r\n filterInputMarked: {\r\n display: \"flex\",\r\n gap: \"0.5rem\",\r\n alignItems: \"center\",\r\n backgroundColor: \"rgb(0, 0, 0)\",\r\n border: \"1px solid black !important\",\r\n color: \"white\",\r\n borderRadius: \"5rem\",\r\n },\r\n clearFilter: {\r\n margin: \"1rem\",\r\n },\r\n clearFilterBtn: {\r\n backgroundColor: \"transparent\",\r\n margin: \"0.5rem 0 1rem\",\r\n padding: \"0.5rem 1rem\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"600\",\r\n cursor: \"pointer\",\r\n color: \"var(--button-primary-bg-color)\",\r\n outline: \"1px solid var(--button-primary-bg-color)\",\r\n border: \"none\",\r\n\r\n \"&:hover, &:focus, &:focus:not(:focus-visible) \": {\r\n outlineOffset: \"0\",\r\n outline: \"2px solid var(--button-primary-bg-color)\",\r\n },\r\n },\r\n clearFilterAlert: {\r\n opacity: \"0\",\r\n position: \"absolute\",\r\n },\r\n});\r\n\r\nconst ArticleFilter = ({ page, onChange }) => {\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n\r\n const classes = useStyles();\r\n\r\n const [showAlert, setShowAlert] = useState(false);\r\n\r\n const [availableGroups, setAvailableGroups] = useState(\r\n page.productGroups.map((group) => group.name)\r\n );\r\n\r\n // Filter result based on availableGroups\r\n useEffect(() => {\r\n const filter = { ...page };\r\n\r\n // filter.productGroups becomes the opposite of availableGroups\r\n filter.productGroups = page.productGroups.filter(\r\n (group) => !availableGroups.includes(group.name)\r\n );\r\n\r\n // Call the callback-function onChange with or w/o filter\r\n if (filter.productGroups.length > 0) {\r\n onChange(filter);\r\n } else {\r\n onChange(page);\r\n }\r\n }, [availableGroups, page]);\r\n\r\n // After checkbox-change --> update availableGroups\r\n const handleChange = (e) => {\r\n const groupName = e.target.name;\r\n\r\n if (e.target.checked) {\r\n // If checkbox is now checked, remove the group from availableGroups\r\n setAvailableGroups((prev) => prev.filter((g) => g !== groupName));\r\n } else {\r\n // If checkbox is now unchecked, add the group back to availableGroups\r\n setAvailableGroups((prev) => [...prev, groupName]);\r\n }\r\n };\r\n\r\n const clearFilter = () => {\r\n // Set all checkboxes to unchecked using DOM manipulation\r\n document\r\n .querySelectorAll(\"input[type=checkbox]\")\r\n .forEach((filter) => (filter.checked = false));\r\n\r\n // Trigger WCAG alert (non-visible)\r\n triggerAlert();\r\n\r\n // Reset availableGroups\r\n setAvailableGroups(page.productGroups.map((group) => group.name));\r\n };\r\n\r\n const triggerAlert = () => {\r\n setShowAlert(true);\r\n\r\n setTimeout(() => {\r\n setShowAlert(false);\r\n }, 1000);\r\n };\r\n\r\n const translateProductGroup = (originalName) => {\r\n if (!language.Categories) {\r\n console.log(\"Missing translation for language.Categories\");\r\n return originalName;\r\n }\r\n const translatedName = Object.entries(language.Categories).find(\r\n (category) => originalName === category[0]\r\n );\r\n\r\n if (translatedName) {\r\n return translatedName[1];\r\n } else {\r\n console.log(\r\n `Missing translation in language.Categories for ${originalName}`\r\n );\r\n return originalName;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {config.pages.find((p) => p.name === page.name)\r\n .showProductGroupFilter && (\r\n
    \r\n {page.productGroups.map((group) => {\r\n return (\r\n
    \r\n {\r\n handleChange(e);\r\n }}\r\n />\r\n \r\n {translateProductGroup(group.name)}\r\n \r\n
    \r\n );\r\n })}\r\n
    \r\n )}\r\n
    \r\n clearFilter()}\r\n >\r\n {language.Clear_Filter || \"Clear filter\"}\r\n {showAlert && (\r\n

    \r\n Produktfiltret rensat\r\n

    \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ArticleFilter;\r\n","import moment from \"moment\";\r\n\r\nexport const getMonths = (start, duration) => {\r\n let months = [];\r\n let currentMonth = `${start}01`;\r\n const end = moment(`${start}01`)\r\n .add(duration - 1, \"months\")\r\n .format(\"YYYYMMDD\");\r\n const addMonths = () => {\r\n if (\r\n Number(moment(end).format(\"YYYYMM\")) >=\r\n Number(moment(currentMonth).format(\"YYYYMM\"))\r\n ) {\r\n months = [...months, moment(currentMonth).format(\"YYYYMM\")];\r\n currentMonth = moment(currentMonth).add(1, \"month\").format(\"YYYYMMDD\");\r\n addMonths();\r\n }\r\n };\r\n addMonths();\r\n return months;\r\n};\r\n\r\nexport const getMonthPickerMonths = () => {\r\n let yearMonths = [];\r\n const duration = 24; //Number of years in picker\r\n const months = getMonths(moment().startOf(\"year\").format(\"YYYYMM\"), duration);\r\n months.forEach((m) => {\r\n if (\r\n yearMonths.length < 1 ||\r\n !yearMonths.some((y) => y.year === moment(`${m}01`).format(\"YYYY\"))\r\n ) {\r\n return (yearMonths = [\r\n ...yearMonths,\r\n {\r\n year: moment(`${m}01`).format(\"YYYY\"),\r\n yearValue: moment(`${m}01`).year(),\r\n months: [{ date: moment(`${m}01`).toISOString(), value: Number(m) }],\r\n },\r\n ]);\r\n }\r\n if (yearMonths.some((y) => y.year === moment(`${m}01`).format(\"YYYY\"))) {\r\n let newYear = yearMonths.find(\r\n (y) => y.year === moment(`${m}01`).format(\"YYYY\")\r\n );\r\n newYear = {\r\n ...newYear,\r\n months: [\r\n ...newYear.months,\r\n { date: moment(`${m}01`).toISOString(), value: Number(m) },\r\n ],\r\n };\r\n yearMonths = yearMonths.map((year) => {\r\n if (year.year === newYear.year) {\r\n return newYear;\r\n }\r\n return year;\r\n });\r\n }\r\n });\r\n\r\n return yearMonths;\r\n};\r\n\r\nexport const getOccasionMonths = (events) => {\r\n if (!events) return [];\r\n let occasionMonths = [];\r\n events.forEach((e) => {\r\n e.occasions.forEach((o) => {\r\n const formattedMonth = moment(o.time).format(\"YYYYMM\");\r\n if (!occasionMonths.includes(formattedMonth)) {\r\n occasionMonths = [...occasionMonths, formattedMonth];\r\n }\r\n });\r\n });\r\n return occasionMonths;\r\n};\r\n\r\nexport const hasMonthEvent = (month, events) => {\r\n const occasionMonths = getOccasionMonths(events);\r\n return occasionMonths.includes(month);\r\n};\r\n","import React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport RightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport LeftIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport { getMonths, hasMonthEvent } from \"./util\";\r\nimport moment from \"moment\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n outer: {\r\n borderBottom: `1px solid ${theme.app.borderColor}`,\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n margin: \"16px 0\",\r\n backgroundColor: theme.app.background[1],\r\n },\r\n outerWithNav: {\r\n borderBottom: `1px solid ${theme.app.borderColor}`,\r\n marginBottom: \"16px\",\r\n },\r\n outerScroll: {\r\n position: \"relative\",\r\n padding: \"0 50px\",\r\n },\r\n container: {\r\n overflowX: \"auto\",\r\n overflowY: \"hidden\",\r\n \"-ms-overflow-style\": \"-ms-autohiding-scrollbar\",\r\n \"-webkit-overflow-scrolling\": \"touch\",\r\n scrollBehavior: \"smooth\",\r\n whiteSpace: \"nowrap\",\r\n \"&::-webkit-scrollbar\": {\r\n display: \"none\",\r\n },\r\n },\r\n monthsContainer: {\r\n display: \"flex\",\r\n },\r\n year: {\r\n fontSize: \"0.75rem\",\r\n color: theme.app.labelColor,\r\n padding: \"0 16px\",\r\n },\r\n invisible: {\r\n fontSize: \"0.75rem\",\r\n color: theme.app.labelColor,\r\n visibility: \"hidden\",\r\n },\r\n monthContainer: {\r\n padding: \"8px 0 0\",\r\n },\r\n month: {\r\n borderBottom: \"2px solid transparent\",\r\n fontSize: \"0.875rem\",\r\n textTransform: \"capitalize\",\r\n cursor: \"pointer\",\r\n padding: \"8px 16px\",\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 monthDisabled: {\r\n color: theme.app.labelColor,\r\n opacity: 0.3,\r\n cursor: \"auto\",\r\n pointerEvents: \"none\",\r\n },\r\n monthActive: {\r\n borderColor: theme.palette.primary.light,\r\n cursor: \"auto\",\r\n pointerEvents: \"none\",\r\n },\r\n rightButtonContainer: {\r\n position: \"absolute\",\r\n zIndex: 1,\r\n top: \"2px\",\r\n right: 0,\r\n bottom: \"2px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n leftButtonContainer: {\r\n position: \"absolute\",\r\n zIndex: 1,\r\n top: \"2px\",\r\n left: 0,\r\n bottom: \"2px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n navButton: {\r\n padding: \"8px\",\r\n color: theme.app.labelColor,\r\n height: \"100%\",\r\n transition: theme.transitions.create([\"color\"], {\r\n duration: theme.transitions.duration.short,\r\n easing: theme.transitions.easing.easeInOut,\r\n }),\r\n \"&:hover\": {\r\n color: theme.app.secondaryColor,\r\n },\r\n },\r\n removeBorderBg: {\r\n border: \"none\",\r\n background: \"none\",\r\n },\r\n}));\r\n\r\nconst EventCalendar = (props) => {\r\n const {\r\n startMonth = moment().format(\"YYYYMM\"),\r\n duration = 18,\r\n culture,\r\n active,\r\n setActive,\r\n events,\r\n withNav,\r\n } = props;\r\n const classes = useStyles();\r\n const containerRef = React.createRef();\r\n\r\n const monthsRef = React.createRef();\r\n const months = getMonths(startMonth, duration);\r\n const locale = culture.substring(0, 2).toLowerCase();\r\n const showScroll = () => {\r\n if (!containerRef.current) return true;\r\n if (\r\n containerRef.current &&\r\n containerRef.current.scrollWidth > containerRef.current.clientWidth\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n return (\r\n \r\n
    \r\n
    \r\n {months.map((m, i) => {\r\n const date = `${m}01`;\r\n const firstOfYear = moment(date).month() < 1;\r\n const isEnabled = hasMonthEvent(m, events);\r\n const isActive = active === Number(m);\r\n return (\r\n \r\n \r\n {moment(date).format(\"YYYY\")}\r\n \r\n setActive(Number(m))}\r\n disabled={!isEnabled && classes.monthDisabled}\r\n >\r\n {moment(date).locale(locale).format(\"MMMM\")}\r\n \r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n {showScroll() && (\r\n <>\r\n
    \r\n (containerRef.current.scrollLeft -= 150)}\r\n tabIndex={0}\r\n className={classes.navButton}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n (containerRef.current.scrollLeft += 150)}\r\n tabIndex={0}\r\n className={classes.navButton}\r\n >\r\n \r\n \r\n
    \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default EventCalendar;\r\n","import React, { useState } from \"react\";\r\nimport moment from \"moment\";\r\nimport classNames from \"classnames\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport LeftIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport RightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport { getMonthPickerMonths, hasMonthEvent } from \"./util\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n monthPicker: {},\r\n selector: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr auto 1fr\",\r\n alignItems: \"center\",\r\n },\r\n year: { textAlign: \"center\", fontWeight: 500 },\r\n right: { textAlign: \"right\" },\r\n calendar: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(3, 100px)\",\r\n borderLeft: `1px solid ${theme.app.borderColor}`,\r\n borderTop: `1px solid ${theme.app.borderColor}`,\r\n width: \"300px\",\r\n marginRight: \"16px\",\r\n margin: \"0 auto\",\r\n },\r\n monthItem: {\r\n borderRight: `1px solid ${theme.app.borderColor}`,\r\n borderBottom: `1px solid ${theme.app.borderColor}`,\r\n },\r\n monthButton: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n padding: \"8px 0\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n \"&:disabled\": {\r\n opacity: 0.2,\r\n },\r\n },\r\n monthText: {\r\n color: \"inherit\",\r\n },\r\n active: {\r\n color: theme.palette.getContrastText(theme.palette.primary.main),\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\nconst thisMonth = Number(moment().format(\"YYYYMM\"));\r\nconst calData = getMonthPickerMonths();\r\nconst calDataYears = calData.map((d) => Number(d.year));\r\n\r\nconst MonthPicker = (props) => {\r\n const { culture, active, setActive, events } = props;\r\n const classes = useStyles();\r\n const [cal, setCal] = useState(() => calData[0]);\r\n const locale = culture.substring(0, 2).toLowerCase();\r\n const handleSetCal = (year) =>\r\n setCal(calData.find((d) => d.yearValue === year));\r\n const prevDisabled = cal.yearValue <= calDataYears[0];\r\n const nextDisabled = cal.yearValue >= calDataYears[calDataYears.length - 1];\r\n return (\r\n
    \r\n
    \r\n
    \r\n handleSetCal(cal.yearValue - 1)}\r\n disabled={prevDisabled || false}\r\n >\r\n \r\n \r\n
    \r\n
    {cal.year}
    \r\n
    \r\n handleSetCal(cal.yearValue + 1)}\r\n disabled={nextDisabled || false}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n {cal.months.map((month, i) => {\r\n const isEnabled = hasMonthEvent(month.value.toString(), events);\r\n const isActive = active === month.value;\r\n return (\r\n \r\n setActive(month.value)}\r\n className={classes.monthButton}\r\n disabled={month.value < thisMonth || !isEnabled}\r\n >\r\n \r\n {moment(month.date).locale(locale).format(\"MMM\")}\r\n \r\n \r\n
    \r\n );\r\n })}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default MonthPicker;\r\n","import moment from \"moment\";\r\nimport slugify from \"../common/slugify\";\r\n\r\nexport const getEventConfig = (config, name) => {\r\n const { eventConfig, imageFolderUrl } = config;\r\n const event = eventConfig?.find((e) => e.name === name);\r\n if (!event) {\r\n return {\r\n name: name,\r\n slug: `/events/${slugify(name)}`,\r\n images: null,\r\n listImages: null,\r\n description: \"\",\r\n };\r\n }\r\n return {\r\n name: event.name,\r\n slug: `/events/${slugify(event.name)}`,\r\n images:\r\n !event.images || event.images.length < 1\r\n ? null\r\n : event.images.map(\r\n (img) => `${process.env.PUBLIC_URL}${imageFolderUrl}${img}`\r\n ),\r\n listImages: event.listImages\r\n ? event.listImages.length < 1\r\n ? null\r\n : event.listImages.map(\r\n (img) => `${process.env.PUBLIC_URL}${imageFolderUrl}${img}`\r\n )\r\n : null,\r\n description: event.description || \"\",\r\n exerpt: event.exerpt,\r\n };\r\n};\r\n\r\nexport const getMonths = (events) => {\r\n let filters = [];\r\n let months = [];\r\n\r\n events.forEach((e) => {\r\n e.occasions.forEach((o) => {\r\n let filter = moment(o.time).format(\"YYYYMM\");\r\n\r\n if (!filters.includes(filter)) {\r\n const occ = {\r\n year: moment(o.time).format(\"YYYY\"),\r\n month: Number(moment(o.time).format(\"MM\") - 1),\r\n filter: Number(filter),\r\n };\r\n filters = [...filters, filter];\r\n months = [...months, occ];\r\n }\r\n });\r\n });\r\n const sortedMonths = months.sort((a, b) => a.filter - b.filter);\r\n\r\n return sortedMonths;\r\n};\r\n\r\nexport const getMonthsByYear = (events) => {\r\n const months = getMonths(events);\r\n\r\n let years = [];\r\n let byYear = [];\r\n months.forEach((m) => {\r\n if (!years.includes(m.year)) {\r\n years = [...years, m.year];\r\n }\r\n });\r\n years.forEach((y) => {\r\n const monthsInYear = months.filter((m) => m.year === y);\r\n byYear = [...byYear, { year: y, months: monthsInYear }];\r\n });\r\n return byYear;\r\n};\r\n\r\nexport const getFirstOccasionInFilter = (occasions, filter) => {\r\n const filterMonth = filter ? moment(`${filter}01`).month() : null;\r\n const occasionsInFilter = occasions.filter(\r\n (o) => moment(o.time).month() === filterMonth\r\n );\r\n let occasionDates = [];\r\n occasionsInFilter.forEach((o) => {\r\n occasionDates = [...occasionDates, new Date(o.time)];\r\n });\r\n return moment(occasionDates.sort((a, b) => a - b));\r\n};\r\n\r\nexport const filterEvents = (events, filter) => {\r\n if (!filter || !events) return [];\r\n\r\n //event that have occasions in filter month\r\n let filterEvents = [];\r\n\r\n events.forEach((e) => {\r\n e.occasions.forEach((o) => {\r\n if (Number(moment(o.time).format(\"YYYYMM\")) === filter) {\r\n if (!filterEvents.includes(e.discription)) {\r\n filterEvents = [...filterEvents, e.description];\r\n }\r\n }\r\n });\r\n });\r\n const filteredEvents = events.filter((e) =>\r\n filterEvents.includes(e.description)\r\n );\r\n // sort by first event\r\n filteredEvents.sort(\r\n (a, b) =>\r\n moment(a.occasions[0].time).toDate() -\r\n moment(b.occasions[0].time).toDate()\r\n );\r\n return filteredEvents;\r\n};\r\n\r\nexport const getOccasionMonths = (events) => {\r\n let occasionMonths = [];\r\n events.forEach((e) => {\r\n e.occasions.forEach((o) => {\r\n const formattedMonth = moment(o.time).format(\"YYYYMM\");\r\n if (!occasionMonths.includes(formattedMonth)) {\r\n occasionMonths = [...occasionMonths, formattedMonth];\r\n }\r\n });\r\n });\r\n return occasionMonths;\r\n};\r\n\r\nexport const hasMonthEvent = (month, events) => {\r\n const occasionMonths = getOccasionMonths(events);\r\n return occasionMonths.includes(month);\r\n};\r\n\r\nexport const getOccasionTimes = (time) => ({\r\n from: moment(time).hour(0).minute(0).seconds(0).toISOString(),\r\n until: moment(time).hour(23).minute(59).seconds(59).toISOString(),\r\n});\r\n\r\nexport const getOccasionsByDay = (occasions) => {\r\n let byDay = [];\r\n let days = [];\r\n occasions.forEach((o) => {\r\n const day = moment(o.time).format(\"YYYYMMDD\");\r\n if (!days.includes(day)) {\r\n days = [...days, day];\r\n byDay = [...byDay, { day, times: [] }];\r\n }\r\n });\r\n\r\n return byDay.map((d) => {\r\n let newTimes = [];\r\n occasions.forEach((o) => {\r\n const oTime = moment(o.time).format(\"HH:mm\");\r\n const oDay = moment(o.time).format(\"YYYYMMDD\");\r\n if (d.day === oDay) {\r\n newTimes = [...newTimes, oTime];\r\n }\r\n });\r\n return { ...d, times: newTimes };\r\n });\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\nimport { Link } from \"@reach/router\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { arrowGenerator } from \"../common/util\";\r\nimport { getOccasionsByDay } from \"./util\";\r\nimport { ReactComponent as Placeholder } from \"../../images/placeholder_list.svg\";\r\nimport slugify from \"../common/slugify\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n link: {\r\n lineHeight: 1,\r\n },\r\n listItem: {\r\n padding: \"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 content: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"auto 1fr\",\r\n gridGap: \"16px\",\r\n alignItems: \"center\",\r\n \"@media(max-width: 667px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n gridGap: \"0px\",\r\n },\r\n },\r\n eventInfo: {},\r\n title: {\r\n lineHeight: 1,\r\n marginBottom: \"0.2em\",\r\n color: theme.app.labelColor,\r\n },\r\n imageContainer: {\r\n \"@media(max-width: 667px)\": {\r\n display: \"none\",\r\n },\r\n },\r\n image: {\r\n maxWidth: \"100px\",\r\n borderRadius: \"4px\",\r\n },\r\n exerpt: {\r\n \"& p\": {\r\n color: theme.app.secondaryColor,\r\n display: \"box\",\r\n lineClamp: 1,\r\n boxOrient: \"vertical\",\r\n overflow: \"hidden\",\r\n margin: 0,\r\n fontSize: \"0.8125rem\",\r\n fontStyle: \"italic\",\r\n },\r\n },\r\n actions: {\r\n display: \"flex\",\r\n alignItems: \"flex-end\",\r\n paddingBottom: \"4px\",\r\n },\r\n occasions: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n \"& p\": {\r\n lineHeight: 1.2,\r\n color: theme.app.secondaryColor,\r\n fontSize: \"0.875rem\",\r\n },\r\n },\r\n occasionDate: {\r\n color: \"inherit\",\r\n },\r\n occasionTime: {\r\n \"&:not(:last-child):after\": {\r\n content: \"', '\",\r\n whiteSpace: \"pre\",\r\n },\r\n },\r\n occasionTimes: {\r\n maxWidth: \"200px\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n },\r\n tootltipTime: {\r\n color: \"inherit\",\r\n fontSize: \"0.8125rem\",\r\n opacity: \"0.9\",\r\n \"&:not(:last-child):after\": {\r\n content: \"', '\",\r\n whiteSpace: \"pre\",\r\n },\r\n },\r\n tooltipDivider: {\r\n margin: \"8px 0\",\r\n backgroundColor: \"rgba(255,255,255,0.6)\",\r\n },\r\n htmlPopper: arrowGenerator(\"black\"),\r\n htmlTooltip: {\r\n backgroundColor: \"black\",\r\n color: \"white\",\r\n maxWidth: 220,\r\n minWidth: 200,\r\n fontSize: \"12px\",\r\n border: \"1px solid black\",\r\n \"& b\": {\r\n fontWeight: 500,\r\n },\r\n },\r\n arrow: {\r\n position: \"absolute\",\r\n fontSize: 6,\r\n width: \"3em\",\r\n height: \"3em\",\r\n \"&::before\": {\r\n content: '\"\"',\r\n margin: \"auto\",\r\n display: \"block\",\r\n width: 0,\r\n height: 0,\r\n borderStyle: \"solid\",\r\n },\r\n },\r\n placeholder: {\r\n maxWidth: \"100px\",\r\n borderRadius: \"4px\",\r\n border: `1px solid ${theme.app.borderColor}`,\r\n width: \"100%\",\r\n background: theme.app.background[2],\r\n },\r\n}));\r\n\r\nconst ListItem = (props) => {\r\n const { eventConfig, occasionsInMonth, event, config, culture } = props;\r\n const classes = useStyles();\r\n const [arrowRef, handleArrowRef] = useState(null);\r\n const language = useSelector((state) => state.language);\r\n const occasionsByDay = getOccasionsByDay(occasionsInMonth);\r\n const description =\r\n event.translation.find((t) => t.culture === culture)?.name ??\r\n language[event.description] ??\r\n event.description;\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n const imageUri = event.imageFileName\r\n ? `${uri}/allotmentimage/${event.imageFileName}`\r\n : undefined;\r\n\r\n const getCalendarBookingLinks = (item) => {\r\n const eventCalendarLinks = config.eventConfig.filter(\r\n (el) => el.eventCalendar && el?.name === item?.name\r\n );\r\n const articleBookingLinks = config.eventConfig.filter(\r\n (el) => el.articleBooking && el?.name === item?.name\r\n );\r\n if (eventCalendarLinks && eventCalendarLinks[0]) {\r\n return `/ticketshop/tickets/${slugify(eventCalendarLinks[0].name)}`;\r\n }\r\n if (articleBookingLinks && articleBookingLinks[0]) {\r\n return `/ticketshop/booking/${slugify(articleBookingLinks[0]?.name)}`;\r\n }\r\n if (!eventCalendarLinks[0] && !articleBookingLinks[0]) {\r\n return `${process.env.PUBLIC_URL}${eventConfig.slug}`;\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n {imageUri ? (\r\n \"event\"\r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n {description}\r\n \r\n
    \r\n
    \r\n {occasionsInMonth.length < 4 ? (\r\n occasionsInMonth.map((o, i) => (\r\n \r\n {moment(o.time).format(\"D MMM HH:mm\")}\r\n \r\n ))\r\n ) : (\r\n \r\n
    \r\n {occasionsByDay.map((o, i) => {\r\n return (\r\n
    \r\n \r\n {moment(o.day).format(\"D MMM\")}\r\n \r\n
    \r\n {o.times.map((t) => {\r\n return (\r\n \r\n {t}\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 {`${occasionsInMonth.length} ${language.Allotment_Occasions}`}\r\n \r\n )}\r\n
    \r\n \r\n

    {eventConfig.exerpt}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ListItem;\r\n","import React, { useContext, useEffect, useMemo, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport Description from \"../../components/common/Description\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport { DataContext } from \"../../components/common/dataProvider\";\r\nimport Events from \"../../components/Events\";\r\nimport AllEventsV2 from \"../../components/Events/AllEventsV2/index\";\r\n\r\nlet source;\r\n\r\nconst AllEventsPagePage = (props) => {\r\n const [text, setText] = useState(\"\");\r\n const { config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const { data, eventFilter, setEventFilter } = useContext(DataContext);\r\n useEffect(() => {\r\n source = axios.CancelToken.source();\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}/all-events.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data));\r\n return () => source.cancel(\"All Events Is Unmounting\");\r\n }, [culture, config.descriptionFolderUrl]);\r\n\r\n const filteredEvents = useMemo(() => {\r\n return data?.allotments.reduce((acc, curr) => {\r\n if (config?.hideEventsFromAllEvents?.includes(curr.id)) {\r\n return acc;\r\n } else {\r\n acc.push(curr);\r\n return acc;\r\n }\r\n }, []);\r\n }, [data.allotments, config]);\r\n\r\n if (!data) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {config?.useNewAllEventsPage ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AllEventsPagePage;\r\n","import React, { useContext, useEffect, useMemo, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Description from \"../../components/common/Description\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport Page from \"../../components/Page\";\r\nimport Toc from \"../../components/Page/toc\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport { getPage } from \"./util\";\r\nimport { DataContext } from \"../../components/common/dataProvider\";\r\nimport slugify from \"../../components/common/slugify\";\r\nimport { Button, Container, Text, Title } from \"@mantine/core\";\r\nimport { useNavigate } from \"@reach/router\";\r\n\r\nlet source;\r\n\r\nconst SitePage = ({ id, setPosition }) => {\r\n const [text, setText] = useState(\"\");\r\n const { config, culture, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const { data } = useContext(DataContext);\r\n const page = config.pages.find((p) => slugify(p.name) === id);\r\n const extendedPage = useMemo(\r\n () => getPage(data, config, page),\r\n [data, config, page]\r\n );\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n let CancelToken = axios.CancelToken;\r\n source = CancelToken.source();\r\n if (page && page.description && page.description.length > 0) {\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}/${page.description}.${culture}.md`,\r\n {\r\n cancelToken: source.token,\r\n }\r\n )\r\n .then((res) => setText(res.data));\r\n } else {\r\n setText(\"\");\r\n }\r\n return () => source.cancel(\"Component Is Unmounting\");\r\n }, [culture, config.descriptionFolderUrl, page]);\r\n if (!page)\r\n return (\r\n \r\n \r\n \r\n \r\n {language.CouldNotFindPageHeader}\r\n \r\n \r\n {language.CouldNotFindPageText}\r\n \r\n navigate(\"/ticketshop\")}\r\n className=\"mantine-Primary-btn primaryButton\"\r\n variant=\"filled\"\r\n size=\"md\"\r\n radius=\"sm\"\r\n color=\"indigo\"\r\n >\r\n {language.BackToHomepage}\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {config.useToc && }\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SitePage;\r\n","export function arrowGenerator(color) {\r\n return {\r\n '&[x-placement*=\"bottom\"] $arrow': {\r\n top: 0,\r\n left: 0,\r\n marginTop: \"-0.95em\",\r\n width: \"3em\",\r\n height: \"1em\",\r\n \"&::before\": {\r\n borderWidth: \"0 1em 1em 1em\",\r\n borderColor: `transparent transparent ${color} transparent`,\r\n },\r\n },\r\n '&[x-placement*=\"top\"] $arrow': {\r\n bottom: 0,\r\n left: 0,\r\n marginBottom: \"-0.95em\",\r\n width: \"3em\",\r\n height: \"1em\",\r\n \"&::before\": {\r\n borderWidth: \"1em 1em 0 1em\",\r\n borderColor: `${color} transparent transparent transparent`,\r\n },\r\n },\r\n '&[x-placement*=\"right\"] $arrow': {\r\n left: 0,\r\n marginLeft: \"-0.95em\",\r\n height: \"3em\",\r\n width: \"1em\",\r\n \"&::before\": {\r\n borderWidth: \"1em 1em 1em 0\",\r\n borderColor: `transparent ${color} transparent transparent`,\r\n },\r\n },\r\n '&[x-placement*=\"left\"] $arrow': {\r\n right: 0,\r\n marginRight: \"-0.95em\",\r\n height: \"3em\",\r\n width: \"1em\",\r\n \"&::before\": {\r\n borderWidth: \"1em 0 1em 1em\",\r\n borderColor: `transparent transparent transparent ${color}`,\r\n },\r\n },\r\n };\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport EventCalendar from \"../common/EventCalendar\";\r\nimport MonthPicker from \"../common/EventCalendar/monthPicker\";\r\nimport { filterEvents, getEventConfig, getOccasionMonths } from \"./util\";\r\nimport ListItem from \"./listItem\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n paddingBottom: 0,\r\n },\r\n listContainer: {\r\n marginTop: \"16px\",\r\n },\r\n largeScreen: {\r\n display: \"block\",\r\n \"@media(max-width: 667px)\": {\r\n display: \"none\",\r\n },\r\n },\r\n smallScreen: {\r\n display: \"none\",\r\n \"@media(max-width: 667px)\": {\r\n display: \"block\",\r\n },\r\n },\r\n});\r\n\r\nconst Index = (props) => {\r\n const { events, filter, setFilter, withNav } = props;\r\n const classes = useStyles();\r\n const { config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n\r\n useEffect(() => {\r\n const hasOccasionsInFilterMonth = filterEvents(events, filter).length > 0;\r\n if (!hasOccasionsInFilterMonth) {\r\n setFilter(Number(getOccasionMonths(events).sort()[0]));\r\n }\r\n }, [events, filter, setFilter]);\r\n const filteredEvents = filterEvents(events, filter);\r\n\r\n return (\r\n
    \r\n {events.length > 0 && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n {filteredEvents.map((e, i) => {\r\n const eventConfig = getEventConfig(config, e.description);\r\n const occasionsInMonth = e.occasions.filter(\r\n (o) => Number(moment(o.time).format(\"YYYYMM\")) === filter\r\n );\r\n if (!eventConfig) return null;\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Index;\r\n","import { useState, useEffect } from \"react\";\r\n\r\nconst useDebounce = (value, delay) => {\r\n // State and setters for debounced value\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n }, [value, delay]);\r\n\r\n return debouncedValue;\r\n};\r\n\r\nexport default useDebounce;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n Button,\r\n createStyles,\r\n RangeSlider,\r\n Text,\r\n TextInput,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport { BiSearch } from \"react-icons/bi\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport { DateRangePicker } from \"@mantine/dates\";\r\nimport \"dayjs/locale/sv\";\r\nimport \"./styles.css\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport autoAnimate from \"@formkit/auto-animate\";\r\nimport _ from \"lodash\";\r\nimport useDebounce from \"../../../hooks/useDebounce\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n wrapper: {\r\n width: \"100%\",\r\n maxWidth: \"80rem\",\r\n backgroundColor: \"#F0F4F8\",\r\n boxShadow: \"rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\",\r\n height: \"100%\",\r\n borderRadius: \"6px\",\r\n padding: \"2rem 2rem 2.5rem 2rem\",\r\n color: \"white\",\r\n marginBottom: \"1rem\",\r\n marginTop: \"1rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n padding: \"1.35rem 1.35rem 1.5rem 1.35rem\",\r\n },\r\n },\r\n filterWrapper: {\r\n display: \"grid\",\r\n gridGap: \"2rem\",\r\n gridTemplateColumns: \"1fr 30% 1fr\",\r\n alignItems: \"start\",\r\n justifyContent: \"space-between\",\r\n color: \"white\",\r\n marginTop: \"1rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n // gridTemplateColumns: \"1fr\",\r\n gap: \"1.25rem\",\r\n },\r\n },\r\n datePicker: {\r\n width: \"100%\",\r\n label: {\r\n color: \"black\",\r\n fontSize: \"1rem\",\r\n },\r\n },\r\n sliderWrapper: {\r\n color: \"black\",\r\n },\r\n label: {\r\n top: 0,\r\n height: 28,\r\n lineHeight: \"28px\",\r\n width: 34,\r\n padding: 0,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n fontWeight: 700,\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n thumb: {\r\n backgroundColor: \"var(--theme-primary-color)\",\r\n height: 28,\r\n width: 34,\r\n border: \"none\",\r\n },\r\n\r\n dragging: {\r\n transform: \"translate(-50%, -50%)\",\r\n },\r\n search: {\r\n borderColor: \"#8A8C93\",\r\n label: {\r\n color: \"black\",\r\n fontSize: \"1rem\",\r\n },\r\n },\r\n}));\r\nconst EventFilter = ({\r\n events,\r\n priceVal,\r\n priceValSet,\r\n priceBeforeChange,\r\n priceBeforeChangeSet,\r\n text,\r\n textSet,\r\n date,\r\n dateSet,\r\n setIsSorting,\r\n}) => {\r\n const [initialValues, initialValuesSet] = useState(null);\r\n const [newValues, newValuesSet] = useState([null]);\r\n const [show, showSet] = useState(false);\r\n const { language, culture } = useSelector((state) => ({\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const [searchText, searchTextSet] = useState(\"\");\r\n const debouncedTerm = useDebounce(searchText, 500);\r\n const isMobile = useMediaQuery(\"(max-width: 755px)\");\r\n const { classes } = useStyles();\r\n const parent = useRef(null);\r\n\r\n const getPriceRange = events.reduce((acc, curr) => {\r\n acc.push(curr.articles);\r\n return acc.flat();\r\n }, []);\r\n\r\n const articles = getPriceRange.sort(\r\n (a, b) => parseFloat(a.priceInclVat) - parseFloat(b.priceInclVat)\r\n );\r\n\r\n const maxDate = events.reduce((acc, curr) => {\r\n acc.push(curr.occasions);\r\n return acc.flat().sort((a, b) => new Date(a.time) - new Date(b.time));\r\n }, []);\r\n\r\n useEffect(() => {\r\n initialValuesSet([\r\n date,\r\n [\r\n parseFloat(articles?.[0]?.priceInclVat),\r\n parseFloat(articles?.[articles.length - 1]?.priceInclVat),\r\n ],\r\n text,\r\n ]);\r\n }, []);\r\n\r\n useEffect(() => {\r\n newValuesSet([date, priceVal, text]);\r\n setIsSorting(true);\r\n }, [date, priceVal, text]);\r\n\r\n useEffect(() => {\r\n textSet(debouncedTerm);\r\n }, [debouncedTerm]);\r\n\r\n useEffect(() => {\r\n parent.current && autoAnimate(parent.current);\r\n }, [parent]);\r\n\r\n useEffect(() => {\r\n if (!_.isEqual(initialValues, newValues)) {\r\n showSet(true);\r\n }\r\n if (_.isEqual(initialValues, newValues)) {\r\n showSet(false);\r\n }\r\n searchTextSet(text)\r\n\r\n }, [newValues, initialValues]);\r\n\r\n return (\r\n
    \r\n \r\n {language.FilterEvents}\r\n \r\n \r\n {language.FilterEventsBody}\r\n \r\n
    \r\n \r\n \r\n \r\n {language.ChoosePrice}\r\n \r\n \r\n
    \r\n }\r\n radius=\"md\"\r\n size=\"md\"\r\n placeholder={language.Search}\r\n rightSectionWidth={42}\r\n className={classes.search}\r\n value={searchText}\r\n onChange={(e) => searchTextSet(e.target.value)}\r\n style={{ width: \"100%\" }}\r\n />\r\n {show && (\r\n
    \r\n {\r\n dateSet(initialValues[0]);\r\n priceValSet(initialValues[1]);\r\n priceBeforeChangeSet([\r\n 0,\r\n parseFloat(\r\n articles?.[articles.length - 1]?.priceInclVat + 100\r\n ),\r\n ]);\r\n textSet(initialValues[2]);\r\n }}\r\n >\r\n {language.Clear_Filter}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default EventFilter;\r\n","import React, { useMemo } from \"react\";\r\nimport {\r\n Badge,\r\n createStyles,\r\n Divider,\r\n Image,\r\n UnstyledButton,\r\n} from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport { navigate } from \"@reach/router\";\r\nimport slugify from \"../../common/slugify\";\r\nimport Markdown from \"react-markdown\";\r\nimport { format } from \"date-fns\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n wrapper: {\r\n display: \"grid\",\r\n gridGap: \"1rem\",\r\n padding: \"0rem 1rem\",\r\n transition: \"0.2s\",\r\n borderRadius: \"8px\",\r\n \":hover\": {\r\n backgroundColor: theme.colors.gray[1],\r\n },\r\n \"@media screen and (max-width: 768px)\": {\r\n gridGap: \"0.5rem\",\r\n padding: \"0rem 0.5rem\",\r\n gridTemplateColumns: \"auto auto\",\r\n },\r\n },\r\n isCard: {\r\n \":hover\": {\r\n transform: \"translateY(-3px)\",\r\n },\r\n },\r\n priceWrapper: {\r\n p: {\r\n textAlign: \"right\",\r\n },\r\n \"&:last-child\": {\r\n justifySelf: \"end\",\r\n alignSelf: \"center\",\r\n },\r\n },\r\n imageWrapper: {\r\n width: \"100%\",\r\n position: \"relative\",\r\n },\r\n badge: {\r\n width: \"fit-content !important\",\r\n position: \"absolute\",\r\n bottom: \".7rem\",\r\n right: \".7rem\",\r\n },\r\n badgeList: {},\r\n badgeListWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n },\r\n badgeTextWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"0.35rem\",\r\n textTransform: \"initial\",\r\n color: \"var(--button-primary-color)\",\r\n },\r\n title: {\r\n fontWeight: \"bold\",\r\n marginBottom: 0,\r\n marginTop: \".6rem\",\r\n \"@media screen and (max-width: 768px)\": {},\r\n },\r\n price: {\r\n fontWeight: \"600\",\r\n color: theme.colors.gray[8],\r\n paddingRight: \"1rem\",\r\n marginTop: \".5rem\",\r\n },\r\n grid: {\r\n display: \"flex\",\r\n gap: \"1rem\",\r\n width: \"100%\",\r\n padding: \"1rem 0rem\",\r\n \"@media screen and (max-width: 768px)\": { gap: \"0.7rem\" },\r\n },\r\n markdown: {\r\n p: {\r\n display: \"inline\",\r\n color: \"black\",\r\n },\r\n },\r\n}));\r\n\r\nconst Event = ({ date, event }) => {\r\n const { config, culture, language } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n }));\r\n const listType =\r\n window.innerWidth < 768\r\n ? config?.allEventsListType?.sm\r\n : config?.allEventsListType?.lg;\r\n const isCard = listType\r\n ? listType === \"CARD\"\r\n : window.innerWidth < 768\r\n ? config.articleListType?.sm === \"CARD\"\r\n : config.articleListType?.lg === \"CARD\";\r\n const { classes, theme } = useStyles();\r\n\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n const image = useMemo(() => {\r\n return `${uri}/allotmentimage/${event.imageFileName}`;\r\n }, [event]);\r\n\r\n const filter = useMemo(\r\n () => event.translation.filter((el) => el.culture === culture)[0],\r\n [event]\r\n );\r\n\r\n const nextOccasion = useMemo(() => {\r\n const occasion = event?.occasions.filter(\r\n (occasion) => occasion.remaining > 0\r\n )?.[0]?.time;\r\n if (occasion)\r\n return `${language.NextOccasion} ${format(\r\n new Date(occasion),\r\n \"dd/M HH:mm\"\r\n )}`;\r\n return language.Allotment_Full;\r\n }, [event]);\r\n\r\n const links = () => {\r\n if (config?.ticketConfigurator) {\r\n const isEventCalendar = config?.ticketConfigurator.filter(\r\n (el) => slugify(el.name) === slugify(event.description)\r\n )?.[0];\r\n if (isEventCalendar) return `tickets/${slugify(event.description)}`;\r\n return `events/${slugify(event.description)}`;\r\n } else {\r\n return `events/${slugify(event.description)}`;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n navigate(links(), { state: date })}\r\n style={{\r\n gridTemplateColumns: isCard ? \"1fr\" : \"1fr\",\r\n height: isCard && \"100%\",\r\n alignContent: isCard && \"space-between\",\r\n width: \"100%\",\r\n }}\r\n aria-label={filter?.name}\r\n >\r\n \r\n \r\n \r\n \r\n
    {nextOccasion}
    \r\n \r\n
    \r\n
    \r\n \r\n
    {nextOccasion}
    \r\n \r\n
    \r\n \r\n {filter?.name}\r\n

    \r\n
    \r\n
    \r\n {filter?.description !== \"\" && (\r\n 230\r\n ? filter.description.substring(0, 100) + \"...\"\r\n : !isCard && filter?.description.length > 230\r\n ? filter?.description.substring(0, 230) + \"...\"\r\n : filter?.description\r\n }\r\n escapeHtml={false}\r\n skipHtml={false}\r\n />\r\n )}\r\n
    \r\n
    \r\n \r\n \r\n {!isCard && }\r\n \r\n );\r\n};\r\n\r\nexport default Event;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport Event from \"./Event\";\r\nimport { Container, Select, createStyles } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\nimport { FaSortAmountDown } from \"react-icons/fa\";\r\nimport { isAfter, isBefore } from \"date-fns\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n selectContainer: {\r\n display: \"flex\",\r\n justifyContent: \"end\",\r\n },\r\n selectWrapper: {\r\n width: \"fit-content\",\r\n marginBottom: \".5rem\",\r\n svg: { color: \"black !important\" },\r\n },\r\n}));\r\n\r\nconst EventWrapper = ({\r\n date,\r\n items,\r\n events,\r\n isSorting,\r\n setIsSorting\r\n}) => {\r\n const { language, culture, config } = useSelector((state) => ({\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n config: state.config,\r\n }));\r\n const { classes } = useStyles();\r\n const [value, setValue] = useState(null);\r\n const [mounted, setMounted] = useState(false);\r\n\r\n const hasChoosedSorting = sessionStorage.getItem(\"sorting\")\r\n\r\n const sortByTime = (val) => {\r\n if (val === \"timeAscending\") {\r\n items.sort((a, b) => {\r\n const timeA = new Date(a.occasions[0].time);\r\n const timeB = new Date(b.occasions[0].time);\r\n if (isBefore(timeB, timeA)) return 1;\r\n else if (isBefore(timeA, timeB)) return -1;\r\n else return 0;\r\n });\r\n setIsSorting(false);\r\n }\r\n if (val === \"timeDescending\") {\r\n items.sort((a, b) => {\r\n const timeA = new Date(a.occasions[0].time);\r\n const timeB = new Date(b.occasions[0].time);\r\n if (isBefore(timeA, timeB)) return 1;\r\n else if (isBefore(timeB, timeA)) return -1;\r\n else return 0;\r\n });\r\n setIsSorting(false);\r\n }\r\n sessionStorage.setItem(\"sorting\", val)\r\n };\r\n\r\n const sortByName = (val) => {\r\n if (val === \"nameDescending\") {\r\n items.sort((a, b) => {\r\n const nameA = a.translation\r\n .find((el) => el.culture === culture)\r\n .name.slice(0, 1)\r\n .toLowerCase();\r\n const nameB = b.translation\r\n .find((el) => el.culture === culture)\r\n .name.slice(0, 1)\r\n .toLowerCase();\r\n return nameB.localeCompare(nameA);\r\n });\r\n setIsSorting(false);\r\n }\r\n if (val === \"nameAscending\") {\r\n items.sort((a, b) => {\r\n const nameA = a.translation\r\n .find((el) => el.culture === culture)\r\n .name.slice(0, 1)\r\n .toLowerCase();\r\n const nameB = b.translation\r\n .find((el) => el.culture === culture)\r\n .name.slice(0, 1)\r\n .toLowerCase();\r\n return nameA.localeCompare(nameB);\r\n });\r\n setIsSorting(false);\r\n }\r\n sessionStorage.setItem(\"sorting\", val)\r\n };\r\n\r\n const sortValue = (val) => {\r\n if (val === \"nameAscending\" || val === \"nameDescending\") sortByName(val);\r\n if (val === \"timeAscending\" || val === \"timeDescending\") sortByTime(val);\r\n };\r\n\r\n const listType =\r\n window.innerWidth < 768\r\n ? config?.allEventsListType?.sm\r\n : config?.allEventsListType?.lg;\r\n const isCard = listType\r\n ? listType === \"CARD\"\r\n : window.innerWidth < 768\r\n ? config.articleListType?.sm === \"CARD\"\r\n : config.articleListType?.lg === \"CARD\";\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n show: {\r\n opacity: 1,\r\n transition: {\r\n delay: 0.2,\r\n staggerChildren: 0.08,\r\n },\r\n },\r\n };\r\n const item = {\r\n hidden: { opacity: 0, scale: 0.95 },\r\n show: { opacity: 1, scale: 1 },\r\n exit: { opacity: 0, scale: 0.95 },\r\n };\r\n\r\n useEffect(() => {\r\n if (!hasChoosedSorting && config?.allEventsDefaultSortBy) {\r\n setValue(config?.allEventsDefaultSortBy);\r\n } else setValue(hasChoosedSorting)\r\n }, [config]);\r\n\r\n useEffect(() => {\r\n if (items && items.length > 0 && !mounted) {\r\n if(hasChoosedSorting) sortValue(hasChoosedSorting);\r\n else sortValue(config?.allEventsDefaultSortBy);\r\n setMounted(true);\r\n }\r\n if (items && items.length > 0) {\r\n sortValue(value);\r\n }\r\n }, [items, config]);\r\n\r\n useEffect(() => {\r\n if (isSorting) {\r\n sortValue(value);\r\n }\r\n }, [isSorting]);\r\n\r\n return (\r\n <>\r\n
    \r\n {\r\n setValue(value);\r\n sortValue(value);\r\n }}\r\n data={[\r\n {\r\n value: \"timeAscending\",\r\n label: language.TimeAscending,\r\n },\r\n {\r\n value: \"timeDescending\",\r\n label: language.TimeDescending,\r\n },\r\n { value: \"nameAscending\", label: language.NameAscending },\r\n {\r\n value: \"nameDescending\",\r\n label: language.NameDescending,\r\n },\r\n ]}\r\n icon={}\r\n styles={{\r\n icon: { color: \"black\" },\r\n }}\r\n />\r\n
    \r\n {items.length > 0 ? (\r\n \r\n \r\n {items.map((el, i) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n ) : (\r\n events.length === 0 &&

    {language.AllEventsNoEvents}

    \r\n )}\r\n {items.length === 0 && events.length > 0 && (\r\n

    {language.AllEventsNoResults}

    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default EventWrapper;\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport EventFilter from \"./EventFilter\";\r\nimport _ from \"lodash\";\r\nimport EventWrapper from \"./EventWrapper\";\r\nimport { addYears, isAfter, isBefore, isSameDay } from \"date-fns\";\r\nimport { useSessionStorage } from \"@mantine/hooks\";\r\n\r\nconst AllEventsV2 = ({ events }) => {\r\n const getPriceRange = events.reduce((acc, curr) => {\r\n acc.push(curr.articles);\r\n return acc.flat();\r\n }, []);\r\n const maxDate = events.reduce((acc, curr) => {\r\n acc.push(curr.occasions);\r\n return acc.flat().sort((a, b) => new Date(a.time) - new Date(b.time));\r\n }, []);\r\n const articles = getPriceRange.sort(\r\n (a, b) => parseFloat(a.priceInclVat) - parseFloat(b.priceInclVat)\r\n );\r\n const [items, itemsSet] = useState([]);\r\n const [isSorting, setIsSorting] = useState(false);\r\n const [priceBeforeChange, priceBeforeChangeSet] = useState([\r\n 0,\r\n parseFloat(articles?.[articles.length - 1]?.priceInclVat + 100),\r\n ]);\r\n const [priceVal, priceValSet] = useSessionStorage({\r\n key: \"priceVal\",\r\n defaultValue: [\r\n parseFloat(articles?.[0]?.priceInclVat),\r\n parseFloat(articles?.[articles.length - 1]?.priceInclVat),\r\n ],\r\n });\r\n const [text, textSet] = useSessionStorage({\r\n key: \"text\",\r\n defaultValue: \"\",\r\n });\r\n const [date, dateSet] = useSessionStorage({\r\n key: \"date\",\r\n defaultValue: [\r\n maxDate?.[0]?.time ? new Date(maxDate?.[0]?.time) : new Date(),\r\n maxDate?.[maxDate.length - 1]?.time\r\n ? new Date(maxDate?.[maxDate.length - 1]?.time)\r\n : addYears(new Date(), 1),\r\n ],\r\n serialize: (value) => {\r\n return [...value];\r\n },\r\n deserialize: (value) => {\r\n if (value !== \",\") {\r\n let split = value.split(\",\");\r\n let newArr = [];\r\n newArr.push(new Date(split[0]));\r\n newArr.push(new Date(split[1]));\r\n return newArr;\r\n } else {\r\n return [\r\n new Date(maxDate?.[0]?.time),\r\n new Date(maxDate?.[maxDate.length - 1]?.time),\r\n ];\r\n }\r\n },\r\n });\r\n\r\n const checkPrice = (item) => {\r\n if (\r\n item.price.amountInclVat >= priceVal?.[0] &&\r\n item.price.amountInclVat <= priceVal?.[1]\r\n ) {\r\n return true;\r\n }\r\n };\r\n\r\n const checkName = (item) => {\r\n if (item.name.toLowerCase().includes(text.toLowerCase())) {\r\n return true;\r\n }\r\n };\r\n\r\n const checkDateRange = (item) => {\r\n let occasion = item?.occasions;\r\n const filter = occasion.some((el) => {\r\n if (\r\n (isSameDay(new Date(el.time), date[0]) ||\r\n isAfter(new Date(el.time), date[0])) &&\r\n (isSameDay(new Date(el.time), date[1]) ||\r\n isBefore(new Date(el.time), date[1]))\r\n ) {\r\n return true;\r\n }\r\n });\r\n\r\n if (filter) {\r\n return true;\r\n }\r\n };\r\n\r\n const filterByPrice = useMemo(() => {\r\n return (\r\n events &&\r\n events.reduce((acc, curr) => {\r\n // Price\r\n const amount = () => {\r\n for (let price of curr.articles) {\r\n if (checkPrice(price)) {\r\n return true;\r\n }\r\n }\r\n };\r\n\r\n const translation = () => {\r\n for (let translation of curr.translation) {\r\n if (checkName(translation)) {\r\n return true;\r\n }\r\n }\r\n };\r\n\r\n const dateRange = () => {\r\n if (checkDateRange(curr)) {\r\n return true;\r\n }\r\n };\r\n\r\n if (amount() && translation() && dateRange()) {\r\n acc.push(curr);\r\n }\r\n return _.uniq(acc);\r\n }, [])\r\n );\r\n }, [events, priceVal, text, date]);\r\n\r\n useEffect(() => {\r\n if (filterByPrice && filterByPrice.length !== items.length) {\r\n itemsSet(filterByPrice);\r\n }\r\n }, [priceVal, text, date]);\r\n useEffect(() => {\r\n if (date === \"\") {\r\n itemsSet(events);\r\n }\r\n }, []);\r\n\r\n if (!text && !priceVal && !date && !events) return null;\r\n\r\n return (\r\n <>\r\n {items && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AllEventsV2;\r\n","import * as React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { getAllProducts } from \"./util\";\r\nimport ProductList from \"../ProductList\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n allProducts: {},\r\n}));\r\n\r\n// Returns and displays products or events based on selected link, such as choosing \"Produkter\" or \"Simbassäng\" in the headline links.\r\n// In essence, filters what is to be displayed based on groups, if it's a product or event.\r\nconst AllProducts = ({ originalPage, page, setPosition }) => {\r\n const { data } = React.useContext(DataContext);\r\n const classes = useStyles();\r\n const config = useSelector((state) => state.config);\r\n const groups = page.productGroups;\r\n const products = getAllProducts(groups, config, data);\r\n const listType =\r\n window.innerWidth < 667 ? page.listType?.sm : page.listType?.lg;\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default AllProducts;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport ProductGroup from \"./productGroup\";\r\nimport AllProducts from \"./allProducts\";\r\nimport ArticleFilter from \"../common/ArticleFilter\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles(() => ({\r\n headerWrapper: {\r\n margin: \"1rem 1rem 1.5rem;\",\r\n },\r\n}));\r\n\r\nconst Page = ({ originalPage, page, setPosition }) => {\r\n const [filteredProductList, setFilteredProductList] = useState({ ...page });\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n setFilteredProductList({ ...page });\r\n }, [page]);\r\n if (!page) return null;\r\n return (\r\n
    \r\n {page.showProductGroupFilter && (\r\n <>\r\n

    \r\n Produktfilter\r\n

    \r\n setFilteredProductList(filterResult)}\r\n />\r\n \r\n )}\r\n\r\n {page.listByGroup ? (\r\n filteredProductList.productGroups.map((group, i) => (\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Page;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport slugify from \"../common/slugify\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n toc: {\r\n position: \"sticky\",\r\n top: 0,\r\n padding: \"0 16px\",\r\n textAlign: \"right\",\r\n },\r\n list: { listStyle: \"none\" },\r\n}));\r\n\r\nconst Toc = ({ groups }) => {\r\n const classes = useStyles();\r\n console.log(groups);\r\n const handleClick = (group) => console.log(group);\r\n return (\r\n
    \r\n
    \r\n
      \r\n {groups.map((g, i) => (\r\n
    • handleClick(slugify(g.name))}>\r\n {g.name}\r\n
    • \r\n ))}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Toc;\r\n","import uuid from \"uuid\";\r\nimport { getDisplayPrice } from \"../../components/ProductList/util\";\r\nimport slugify from \"../../components/common/slugify\";\r\n\r\nconst makeId = () => uuid.v4();\r\n\r\nconst getAllArticles = (tags) => {\r\n let ids = [];\r\n let articles = [];\r\n tags.forEach((t) => {\r\n t.articles.forEach((a) => {\r\n if (!ids.includes(a.id)) {\r\n ids = [...ids, a.id];\r\n articles = [...articles, a];\r\n }\r\n });\r\n });\r\n return articles;\r\n};\r\n\r\nconst extendArticle = (p, a = {}, config) => {\r\n const { imageFolderUrl } = config;\r\n // If its a product that only exists in config\r\n const plu = a.plu ? a.plu : p.plu;\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n return {\r\n id: a.id ? a.id : makeId(),\r\n name: a.name ? a.name : p.name,\r\n plu,\r\n images: a.imageFilename\r\n ? [`${uri}/articleimage/${a.imageFilename}`]\r\n : p.images\r\n ? p.images.map(\r\n (img) => `${process.env.PUBLIC_URL}${imageFolderUrl}${img}`\r\n )\r\n : undefined,\r\n price: a.price,\r\n priceInclVat: a.priceInclVat,\r\n displayPrice: a.priceInclVat,\r\n slug: `products/${plu}`,\r\n };\r\n};\r\n\r\nconst extendEvents = (page, allotments, config) => {\r\n if (!page.events) return [];\r\n let extendedEvents = [];\r\n page.events.forEach((e) => {\r\n const allotment = allotments.find((a) => a.description === e);\r\n const event = config.eventConfig?.find((cfg) => cfg.name === e);\r\n if (event) {\r\n if (allotment) {\r\n const displayPrice = getDisplayPrice(allotment.articles);\r\n extendedEvents = [\r\n ...extendedEvents,\r\n {\r\n id: allotment.id,\r\n name: event.name,\r\n images: event.images?.map(\r\n (img) => `${config.imageFolderUrl}${img}`\r\n ),\r\n listImages: event.listImages?.map(\r\n (img) => `${config.imageFolderUrl}${img}`\r\n ),\r\n displayPrice,\r\n slug: `events/${slugify(event.name)}`,\r\n },\r\n ];\r\n } else {\r\n console.log(`No event with name ${e} is published`);\r\n }\r\n } else {\r\n console.log(`No config for event: ${e}`);\r\n }\r\n });\r\n return extendedEvents;\r\n};\r\n\r\nconst extendProductGroups = (page, tags, config) =>\r\n page.productGroups.map((g) => {\r\n const tag = tags.find((t) => t.name === g);\r\n const groupConfig = config.productGroupConfig.find((c) => c.name === g);\r\n if (tag) {\r\n let products = [];\r\n tag.articles.forEach((a) => {\r\n const p = config.productConfig.find((c) => c.plu === a.plu);\r\n if (p) {\r\n products = [...products, extendArticle(p, a, config)];\r\n } else {\r\n products = [...products, extendArticle({}, a, config)];\r\n }\r\n });\r\n if (groupConfig.extraProducts?.length > 0) {\r\n groupConfig.extraProducts.forEach((p) => {\r\n const cfg = config.productConfig.find((c) => c.plu === p);\r\n const art = getAllArticles(tags).find((a) => a.plu === p);\r\n\r\n if (cfg) {\r\n products = [...products, extendArticle(cfg, art, config)];\r\n }\r\n });\r\n }\r\n return {\r\n name: g,\r\n images: groupConfig?.images || [],\r\n isGroup: true,\r\n description: groupConfig?.description,\r\n allProductsShow: groupConfig?.allProductsShow || true,\r\n isInfo: groupConfig?.isInfo || false,\r\n products: products.sort((a, b) => a.plu - b.plu),\r\n };\r\n }\r\n return {\r\n name: g,\r\n images: [],\r\n description: \"\",\r\n products: [],\r\n message: `${g} is not a published article group`,\r\n };\r\n });\r\n\r\nexport const getPage = (data, config, page) => {\r\n if (!page || !data) return;\r\n const productGroups = extendProductGroups(page, data.tags, config);\r\n const events = extendEvents(page, data.allotments, config);\r\n\r\n return { ...page, productGroups, events };\r\n};\r\n","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n sideMenu: {},\r\n item: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n marginBottom: \"8px\",\r\n },\r\n avatar: {\r\n width: \"40px\",\r\n height: \"40px\",\r\n marginRight: \"8px\",\r\n },\r\n name: {\r\n fontSize: \"0.875rem\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n },\r\n active: { color: theme.palette.secondary.main },\r\n}));\r\n\r\nconst SideMenu = ({ ticketOwners, activePerson, setActivePerson }) => {\r\n const classes = useStyles();\r\n if (ticketOwners.length < 2) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n {ticketOwners.map((o) => {\r\n const isActive = o.id === activePerson?.id;\r\n\r\n return (\r\n setActivePerson(o)}\r\n key={o.id}\r\n className={classes.item}\r\n >\r\n \r\n \r\n {o.name}\r\n \r\n \r\n );\r\n })}\r\n
    \r\n );\r\n};\r\n\r\nexport default SideMenu;\r\n","import React, { useContext } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { addModification } from \"../../common/sale\";\r\nimport { Context, TOAST } from \"../../context\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n activePerson: {},\r\n avatar: {\r\n width: \"160px\",\r\n height: \"160px\",\r\n },\r\n person: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr\",\r\n gridGap: \"16px\",\r\n justifyItems: \"center\",\r\n marginBottom: \"16px\",\r\n },\r\n name: {\r\n fontSize: \"2rem\",\r\n fontWeight: 900,\r\n textAlign: \"center\",\r\n },\r\n ticket: { padding: \"8px 0\", marginBottom: \"24px\" },\r\n modificationItem: {\r\n padding: \"8px 0\",\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n ticketName: { lineHeight: 1.3 },\r\n barcode: { fontSize: \"0.8125rem\" },\r\n valid: { fontSize: \"0.875rem\" },\r\n modArticleInfo: { flexGrow: 1 },\r\n modArticleName: { fontWeight: 500 },\r\n modArticlePrice: { fontSize: \"0.8125rem\" },\r\n noTickets: { textAlign: \"center\" },\r\n}));\r\n\r\nconst ActivePerson = ({ activePerson }) => {\r\n const classes = useStyles();\r\n const { dispatch } = useContext(Context);\r\n const rdxDispatch = useDispatch();\r\n const language = useSelector((state) => state.language);\r\n const add = (model) => {\r\n rdxDispatch(\r\n addModification(model, (status, msg) => {\r\n if (status >= 400) {\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: msg,\r\n variant: \"error\",\r\n },\r\n });\r\n }\r\n return dispatch({\r\n type: TOAST,\r\n payload: {\r\n text: language.Article_Added,\r\n variant: \"success\",\r\n },\r\n });\r\n })\r\n );\r\n };\r\n if (!activePerson) return null;\r\n return (\r\n
    \r\n
    \r\n \r\n {activePerson.name}\r\n
    \r\n {activePerson.tickets && activePerson.tickets.length > 0 ? (\r\n
    \r\n {activePerson.tickets.map((t) => {\r\n console.log(t);\r\n const validFrom =\r\n t.validFrom && moment(t.validFrom).format(\"YYYY-MM-DD\");\r\n const validUntil =\r\n t.validUntil && moment(t.validUntil).format(\"YYYY-MM-DD\");\r\n return (\r\n \r\n \r\n {t.article.name}\r\n \r\n \r\n {t.uniqueIdentifier}\r\n \r\n \r\n {validFrom} - {validUntil}\r\n \r\n {t.fundsId && (\r\n \r\n {`Saldo: ${t.fundsAmount}:-`}\r\n \r\n )}\r\n {t.applicableModifications.map((a) => {\r\n const model = {\r\n ticketId: t.id,\r\n articleId: t.article.id,\r\n plu: a.plu,\r\n fundsId: t.fundsId,\r\n amount: a.price.amountInclVat,\r\n };\r\n // const ticketId = t.id;\r\n // const articleId = t.article.id;\r\n // const plu = a.plu;\r\n return (\r\n \r\n \r\n \r\n {a.name}\r\n
    \r\n \r\n {a.priceInclVat}\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 Inga biljetter att förlänga\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ActivePerson;\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { Context } from \"../../context\";\r\nimport SideMenu from \"./sideMenu\";\r\nimport ActivePerson from \"./activePerson\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n user: {\r\n position: \"relative\",\r\n minHeight: `${theme.height - 168}px`,\r\n height: \"100%\",\r\n },\r\n content: {\r\n display: (p) => (p.sideMenu ? \"grid\" : \"block\"),\r\n gridTemplateColumns: (p) => (p.sideMenu ? \"200px 600px 200px\" : null),\r\n \"@media(max-width: 800px)\": {\r\n gridTemplateColumns: (p) => (p.sideMenu ? \"200px 1fr\" : null),\r\n },\r\n \"@media(max-width: 667px)\": {\r\n gridTemplateColumns: (p) => p.sideMenu && null,\r\n display: (p) => p.sideMenu && \"block\",\r\n },\r\n },\r\n actions: {\r\n position: \"sticky\",\r\n top: \"100%\",\r\n display: \"flex\",\r\n \"& button\": { marginRight: \"8px\" },\r\n \"& a\": { marginRight: \"8px\" },\r\n },\r\n}));\r\n\r\nconst User = ({ user: { whoami, ticketowners } }) => {\r\n const [activePerson, setActivePerson] = useState();\r\n const classes = useStyles({\r\n sideMenu: ticketowners && ticketowners.length > 1,\r\n });\r\n const navigate = useNavigate();\r\n const { handleLogout } = useContext(Context);\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n useEffect(() => {\r\n if (!activePerson) {\r\n const person = ticketowners.find((o) => o.id === whoami.id);\r\n setActivePerson(person);\r\n }\r\n }, [whoami, ticketowners, activePerson, setActivePerson]);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default User;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport gql from \"graphql-tag\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport User from \"../../components/User\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\n\r\nconst query = gql`\r\n query User($currency: String, $culture: String, $posId: Int) {\r\n ticketowners(currency: $currency, culture: $culture, posId: $posId) {\r\n id\r\n name\r\n email\r\n photo\r\n details {\r\n civicRegistrationNumber\r\n }\r\n tickets {\r\n id\r\n fundsAmount\r\n fundsId\r\n owner {\r\n name\r\n firstname\r\n lastname\r\n email\r\n civicRegistrationNumber\r\n }\r\n validFrom\r\n validUntil\r\n article {\r\n id\r\n name\r\n plu\r\n }\r\n uniqueIdentifier\r\n applicableModifications {\r\n id\r\n name\r\n description\r\n plu\r\n priceInclVat\r\n price {\r\n amountInclVat\r\n }\r\n }\r\n }\r\n }\r\n whoami {\r\n id\r\n name\r\n firstname\r\n lastname\r\n email\r\n civicRegistrationNumber\r\n isAuthenticated\r\n photo\r\n }\r\n }\r\n`;\r\n\r\nconst UserPage = (props) => {\r\n const { auth, config, culture, currency } = useSelector((state) => ({\r\n auth: state.oidc.user !== null && !state.oidc.user.expired,\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const { posId } = config;\r\n const { data, error, loading } = useQuery(query, {\r\n variables: { posId, currency, culture },\r\n });\r\n\r\n if (!auth) return
    Du behöver vara inloggad för att se din sida.
    ;\r\n if (loading) return
    ;\r\n if (error) {\r\n console.log(error.message);\r\n return
    ;\r\n }\r\n if (auth && !data.whoami) {\r\n console.log(data);\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserPage;\r\n","import React from \"react\";\r\nimport \"./styles.css\";\r\n\r\nconst TicketImage = ({ imageUrl, altText }) => {\r\n return (\r\n <>\r\n {imageUrl ? (\r\n {altText}\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TicketImage;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Typography } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Markdown from \"react-markdown\";\r\nimport TicketImage from \"./TicketImage\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n ticketWrapper: {\r\n width: \"100%\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 1fr\",\r\n alignItems: \"start\",\r\n transition: \"all 0.3s ease\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n // padding: \"0.5rem\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n gap: \"1rem\",\r\n gridTemplateColumns: \"1fr\",\r\n alignItems: \"center\",\r\n padding: \"0.5rem\",\r\n },\r\n },\r\n\r\n ticketTextWrapper: {\r\n marginTop: \"0\",\r\n },\r\n\r\n ticketTextPadding: {\r\n padding: \"0 0 0 1.5rem\",\r\n\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: \"1rem 0rem\",\r\n },\r\n },\r\n\r\n ticketTextPaddingNoImg: {\r\n [theme.breakpoints.up(\"sm\")]: {\r\n padding: \"0\",\r\n },\r\n\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: \"0rem 0rem\",\r\n },\r\n },\r\n\r\n ticketText: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n maskImage: \"none\",\r\n },\r\n },\r\n\r\n readMoreButton: {\r\n display: \"none\",\r\n border: \"none\",\r\n background: \"transparent\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n paddingTop: \"1rem\",\r\n color: \"#2a5fb5\",\r\n fontFamily: \"Montserrat, Roboto, Helvetica, Arial, sans-serif\",\r\n fontWeight: \"500\",\r\n display: \"block\",\r\n },\r\n },\r\n}));\r\n\r\nconst TicketIntroduction = (props) => {\r\n const { urlParams, ticketData, altText, text, language } = props;\r\n const [hideLongText, setHideLongText] = useState(true);\r\n\r\n const filter = ticketData.filter((el) => el.slug.toLowerCase() === urlParams);\r\n const classes = useStyles();\r\n useEffect(() => {\r\n setHideLongText(false);\r\n }, [text]);\r\n\r\n return (\r\n
    \r\n {filter && filter[0]?.image ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {filter && filter.length >= 1 ? (\r\n \r\n \r\n
    \r\n {text.length > 300 && window.screen.availWidth <= 768 ? (\r\n \r\n \r\n
    \r\n ) : (\r\n \r\n )}\r\n {text.length > 300 && window.screen.availWidth <= 768 ? (\r\n setHideLongText(!hideLongText)}\r\n >\r\n {hideLongText === false\r\n ? language.ReadMore\r\n : language.ShowLessText}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default TicketIntroduction;\r\n","import React, { useEffect } from \"react\";\r\nimport {\r\n addMonths,\r\n format,\r\n isBefore,\r\n isSameMonth,\r\n startOfMonth,\r\n subMonths,\r\n} from \"date-fns\";\r\nimport {\r\n IoIosArrowDropleftCircle,\r\n IoIosArrowDroprightCircle,\r\n} from \"react-icons/io\";\r\n\r\nconst Header = ({\r\n currentDate,\r\n setCurrentDate,\r\n allotmentSettings,\r\n firstDate,\r\n latestDate,\r\n cultureLocale,\r\n pathname,\r\n language,\r\n}) => {\r\n const monthStart = startOfMonth(new Date(firstDate?.time));\r\n const monthFormat = \"MMMM\";\r\n const yearFormat = \"yyyy\";\r\n const nextMonth = () => {\r\n setCurrentDate(addMonths(currentDate, 1));\r\n };\r\n const prevMonth = () => {\r\n setCurrentDate(subMonths(currentDate, 1));\r\n };\r\n\r\n useEffect(() => {\r\n setCurrentDate(new Date(firstDate?.time));\r\n }, [pathname, firstDate]);\r\n\r\n const lastMonthLabel = format(subMonths(currentDate, 1), \"MMMM\", {\r\n locale: cultureLocale,\r\n });\r\n const nextMonthLabel = format(addMonths(currentDate, 1), \"MMMM\", {\r\n locale: cultureLocale,\r\n });\r\n\r\n return (\r\n <>\r\n {allotmentSettings[0] && (\r\n \r\n
    \r\n {!isBefore(startOfMonth(currentDate), new Date(firstDate?.time)) ? (\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 {format(currentDate, monthFormat, { locale: cultureLocale })}{\" \"}\r\n \r\n {format(currentDate, yearFormat)}\r\n \r\n\r\n
    \r\n {!isSameMonth(new Date(currentDate), new Date(latestDate?.time)) ? (\r\n \r\n \r\n \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from \"react\";\r\nimport { startOfWeek, format, addDays } from \"date-fns\";\r\n\r\nconst Week = ({ currentDate, cultureLocale }) => {\r\n const dateFormat = \"E\";\r\n const days = [];\r\n let startDate = startOfWeek(new Date(), { locale: cultureLocale });\r\n\r\n for (let i = 0; i < 7; i++) {\r\n days.push(\r\n
    \r\n {format(addDays(startDate, i), dateFormat, { locale: cultureLocale })}\r\n
    \r\n );\r\n }\r\n return
    {days}
    ;\r\n};\r\n\r\nexport default Week;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n addDays,\r\n endOfMonth,\r\n endOfWeek,\r\n format,\r\n isBefore,\r\n isSameDay,\r\n isSameMonth,\r\n parseISO,\r\n startOfMonth,\r\n startOfWeek,\r\n toDate,\r\n} from \"date-fns\";\r\nimport \"./styles.css\";\r\nimport AlertIcon from \"../Drawer/AlertIcon\";\r\n\r\nconst WeekDay = ({\r\n currentDate,\r\n setSelectedDate,\r\n allotment,\r\n allotmentData,\r\n allotmentSettings,\r\n loading,\r\n chosenDate,\r\n setChosenDate,\r\n setFilteredData,\r\n scrollIntoView,\r\n language,\r\n cultureLocale,\r\n}) => {\r\n const [allotmentOccasion, setAllotmentOccasion] = useState([]);\r\n const [siteSettings, setSiteSettings] = useState([]);\r\n const monthStart = startOfMonth(currentDate, { locale: cultureLocale });\r\n const monthEnd = endOfMonth(monthStart);\r\n const startDate = startOfWeek(monthStart, { locale: cultureLocale });\r\n const endDate = endOfWeek(monthEnd);\r\n const dateFormat = \"d\";\r\n const rows = [];\r\n\r\n let days = [];\r\n let day = startDate;\r\n let formattedDate = \"\";\r\n\r\n useEffect(() => {\r\n if (allotmentData && allotment.length >= 1 && loading === false) {\r\n const filteredAllotment = allotmentData.allotments.filter((el) => {\r\n return allotment.some((FilteredData) => {\r\n return el.description === FilteredData.description;\r\n });\r\n });\r\n\r\n const filterAll = filteredAllotment.map((el) => el.occasions);\r\n const newAllotmentData = filterAll.flat().map((el) => [\r\n {\r\n time: format(parseISO(el.time), \"yyyy-MM-dd\"),\r\n remaining: el.remaining,\r\n articles: el.articles,\r\n price: el.articles.map((ele) => ele.priceInclVat).sort(),\r\n allotment: el.allotment,\r\n timeOccasions: el.time,\r\n },\r\n ]);\r\n\r\n // Set the calendar to show the earliest day\r\n let filtered = newAllotmentData.sort().flat();\r\n setFilteredData(filtered);\r\n\r\n // Get occasion time and data values\r\n let res = Object.values(\r\n newAllotmentData.flat().reduce((a, { time, ...props }) => {\r\n if (!a[time]) a[time] = Object.assign({}, { time, data: [props] });\r\n else a[time].data.push(props);\r\n return a;\r\n }, {})\r\n );\r\n let calendarSettings = [];\r\n calendarSettings.push(allotmentSettings[0]);\r\n setSiteSettings([\r\n {\r\n showAvailability: calendarSettings[0].showAvailability,\r\n showColors: calendarSettings[0].showColors,\r\n showPrice: calendarSettings[0].showPrice,\r\n lowAllotmentQty: calendarSettings[0].lowAllotmentQty,\r\n bgColor: calendarSettings[0].bgColor,\r\n lowTicketQty: calendarSettings[0].lowTicketQty,\r\n },\r\n ]);\r\n setAllotmentOccasion(res);\r\n }\r\n }, [allotment]);\r\n\r\n const onDateClick = (day) => {\r\n setSelectedDate(day);\r\n setChosenDate(day);\r\n setTimeout(() => {\r\n scrollIntoView(\"TimeChooser\");\r\n }, 100);\r\n };\r\n\r\n let formatDay = \"yyyy-MM-dd\";\r\n let today = new Date();\r\n let yesterday = today.setDate(today.getDate() - 1);\r\n\r\n const getPrice = (day) => {\r\n if (siteSettings[0] !== undefined && siteSettings[0].showPrice === true) {\r\n let filterByDay = allotmentOccasion.filter(\r\n (el) => format(parseISO(el.time), formatDay) === format(day, formatDay)\r\n );\r\n let getData = filterByDay.map((ele) => ele.data);\r\n let reducedOccasions = getData\r\n .flat()\r\n .map((el) => el.remaining)\r\n .reduce((sum, a) => sum + a, 0);\r\n\r\n const removeChar = (price) => {\r\n if (price) {\r\n let newPrice = price && price.replaceAll(/[^0-9\\,.]/g, \"\");\r\n return newPrice.replace(\",\", \"\");\r\n }\r\n };\r\n\r\n let price2 = getData.flat()[0]?.price;\r\n const filterOutZeroCost = price2?.filter((el) => removeChar(el) > 0);\r\n const getPrices = filterOutZeroCost?.sort(\r\n (a, b) => parseFloat(removeChar(a)) - parseFloat(removeChar(b))\r\n )[0];\r\n\r\n if (filterByDay.length > 0 && reducedOccasions === 0) {\r\n return

    {language.FullAllotment}

    ;\r\n }\r\n if (getPrices !== undefined) {\r\n return (\r\n

    \r\n {language.CostFromAbbreviation} {getPrices}{\" \"}\r\n

    \r\n );\r\n } else {\r\n return \"\";\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n const getAvailability = (day) => {\r\n let filterByDay = allotmentOccasion.filter(\r\n (el) => format(parseISO(el.time), formatDay) === format(day, formatDay)\r\n );\r\n let getData = filterByDay.map((ele) => ele.data);\r\n let reducedOccasions = getData\r\n .flat()\r\n .map((el) => el.remaining)\r\n .reduce((sum, a) => sum + a, 0);\r\n\r\n if (siteSettings.length > 0 && siteSettings[0].showColors === true) {\r\n if (reducedOccasions >= siteSettings[0].lowAllotmentQty) {\r\n return \"calendar-available\";\r\n }\r\n if (\r\n reducedOccasions < siteSettings[0].lowAllotmentQty &&\r\n reducedOccasions > 0\r\n ) {\r\n return \"calendar-low\";\r\n }\r\n if (filterByDay.length > 0 && reducedOccasions === 0) {\r\n return \"calendar-full\";\r\n }\r\n }\r\n\r\n if (siteSettings.length > 0 && siteSettings[0].showColors === false) {\r\n if (filterByDay.length > 0 && reducedOccasions > 0) {\r\n return \"calendar-nocolorallotment\";\r\n }\r\n if (filterByDay.length > 0 && reducedOccasions === 0) {\r\n return \"disabled\";\r\n }\r\n }\r\n };\r\n\r\n const labelAvailability = (day) => {\r\n if (getAvailability(day) === \"calendar-low\") {\r\n return `, ${language.FewLeft}`;\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n while (day <= endDate) {\r\n for (let i = 0; i < 7; i++) {\r\n formattedDate = format(day, dateFormat);\r\n const cloneDay = day;\r\n\r\n days.push(\r\n \r\n {getAvailability(day) === \"calendar-low\" && (\r\n \r\n \r\n \r\n )}\r\n \r\n format(parseISO(el.time), formatDay) === format(day, formatDay)\r\n )\r\n ? \"\"\r\n : \"disabled\"\r\n }\r\n\r\n `}\r\n key={day}\r\n onClick={() => onDateClick(toDate(cloneDay))}\r\n disabled={\r\n getAvailability(day) === \"calendar-full\"\r\n ? true\r\n : false ||\r\n (allotmentOccasion &&\r\n allotmentOccasion.find(\r\n (el) =>\r\n format(parseISO(el.time), formatDay) ===\r\n format(day, formatDay)\r\n ))\r\n ? \"\"\r\n : true\r\n }\r\n >\r\n
    \r\n \r\n {formattedDate}\r\n

    \r\n
    {getPrice(day)}
    \r\n
    \r\n \r\n \r\n );\r\n day = addDays(day, 1);\r\n }\r\n\r\n rows.push(\r\n
    \r\n {days}\r\n
    \r\n );\r\n days = [];\r\n }\r\n return
    {rows}
    ;\r\n};\r\nexport default WeekDay;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./styles.css\";\r\nimport Header from \"./Header\";\r\nimport Week from \"./Week\";\r\nimport WeekDay from \"./WeekDay\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nconst Calendar = ({\r\n allotment,\r\n allotmentData,\r\n loading,\r\n allotmentSettings,\r\n chosenDate,\r\n setChosenDate,\r\n currentDate,\r\n setCurrentDate,\r\n selectedDate,\r\n setSelectedDate,\r\n setFilteredData,\r\n scrollIntoView,\r\n firstDate,\r\n latestDate,\r\n language,\r\n cultureLocale,\r\n pathname,\r\n}) => {\r\n const [newMonthData, setNewMonthData] = useState(allotmentData);\r\n useEffect(() => {\r\n setNewMonthData(allotmentData);\r\n }, [allotmentData]);\r\n\r\n if (allotment.length === 0) return null;\r\n return (\r\n <>\r\n {allotmentSettings[0] && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {loading === true ? (\r\n
    \r\n \r\n

    {language.LoadingText}

    \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Calendar;\r\n","import React from \"react\";\r\nimport AlertIcon from \"../Drawer/AlertIcon\";\r\nimport \"./styles.css\";\r\n\r\nconst Legend = ({ language }) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {language.Chosen}

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

    {language.Available}

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

    {language.FewLeft}

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

    {language.FullAllotment}

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Legend;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport lottie from \"lottie-web\";\r\nimport animationData from \"./animations/pen.json\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst ChangeDateButton = (props) => {\r\n const [open, setOpen] = useState(false);\r\n const [hover, setHover] = useState(false);\r\n const animationContainer = useRef(null);\r\n const anim = useRef(null);\r\n\r\n useEffect(() => {\r\n if (animationContainer.current) {\r\n anim.current = lottie.loadAnimation({\r\n container: animationContainer.current,\r\n renderer: \"svg\",\r\n loop: false,\r\n autoplay: false,\r\n animationData,\r\n });\r\n anim.current.setSpeed(0.7);\r\n\r\n return () => anim.current.destroy();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n setOpen(!open);\r\n anim.current.setDirection(open ? -1 : 1);\r\n anim.current.play();\r\n }, [props.chooseTime]);\r\n\r\n const useStyles = makeStyles({\r\n btn: {\r\n width: \"45px\",\r\n height: \"45px\",\r\n marginRight: \"-0.5rem\",\r\n },\r\n\r\n wrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n margin: \"0 auto\",\r\n minWidth: \"10px\",\r\n // maxWidth: \"190px\",\r\n backgroundColor: \"white\",\r\n border: ({ outline }) =>\r\n outline ? \"solid 2px black\" : \"solid 2px white\",\r\n background: ({ outline }) => (outline ? \"white\" : \"black\"),\r\n color: ({ outline }) => (outline ? \"black\" : \"white\"),\r\n letterSpacing: \"0.7px\",\r\n fontSize: \"17px\",\r\n cursor: \"pointer\",\r\n transition: \".3s ease \",\r\n\r\n borderRadius: ({ round }) => (round ? \"50px\" : \"10px\"),\r\n \"&:hover\": {\r\n // boxShadow: \"rgba(0, 0, 0, 0.35) 0px 5px 15px\",\r\n // filter: \"invert(1)\",\r\n },\r\n },\r\n btnText: {\r\n fontWeight: \"600\",\r\n fontSize: \"1rem\",\r\n padding: \"0\",\r\n margin: \"0 1rem 0 0\",\r\n },\r\n });\r\n\r\n const classes = useStyles(props);\r\n\r\n return (\r\n {\r\n setOpen(!open);\r\n setHover(true);\r\n anim.current.setDirection(open ? -1 : 1);\r\n anim.current.play();\r\n }}\r\n onMouseLeave={() => {\r\n setHover(false);\r\n }}\r\n >\r\n \r\n \r\n {props.text}\r\n

    \r\n
    \r\n );\r\n};\r\nexport default ChangeDateButton;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport format from \"date-fns/format\";\r\nimport { isBefore, parseISO } from \"date-fns\";\r\nimport \"./styles.css\";\r\nimport ChangeDateButton from \"./ChangeDateButton\";\r\nimport { motion } from \"framer-motion\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport { useSelector } from \"react-redux\";\r\nimport AlertIcon from \"../Drawer/AlertIcon\";\r\n\r\nconst TimeChooser = ({\r\n chosenDate,\r\n setChosenDate,\r\n selectedDate,\r\n filteredData,\r\n dataContext,\r\n allotmentSettings,\r\n activeScreen,\r\n setActiveScreen,\r\n chooseTime,\r\n setChooseTime,\r\n setSelected,\r\n setActiveOptionScreen,\r\n scrollIntoView,\r\n language,\r\n cultureLocale,\r\n pathname,\r\n singleOccasion,\r\n setSingleOccasion,\r\n activeTicketConfigurator,\r\n setActiveTicketConfigurator,\r\n}) => {\r\n const [occasionsData, setOccasionsData] = useState();\r\n const changeDateBtn = useRef(null);\r\n let formatDay = \"yyyy-MM-dd\";\r\n\r\n const { config, culture } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n\r\n useEffect(() => {\r\n const getActiveTicketConfigurator = config?.ticketConfigurator.filter(\r\n (el) => el.slug.toLowerCase() === pathname.split(\"/\").pop()\r\n );\r\n setActiveTicketConfigurator(getActiveTicketConfigurator[0]);\r\n setChosenDate(undefined);\r\n setSelected(false);\r\n setActiveScreen(false);\r\n setActiveOptionScreen(false);\r\n }, [pathname]);\r\n\r\n useEffect(() => {\r\n setChooseTime(null);\r\n if (occasionsData && occasionsData.length === 1) {\r\n setSingleOccasion(true);\r\n } else {\r\n setSingleOccasion(false);\r\n }\r\n }, [occasionsData]);\r\n\r\n useEffect(() => {\r\n if (chosenDate !== undefined) {\r\n setActiveScreen(true);\r\n }\r\n if (chosenDate === undefined) {\r\n setActiveScreen(false);\r\n }\r\n }, [pathname, chosenDate]);\r\n\r\n const removeChars = (price) => {\r\n if (price) {\r\n let newPrice = price && price.replaceAll(/[^0-9\\,.]/g, \"\");\r\n return newPrice.replace(\",\", \"\");\r\n }\r\n };\r\n\r\n const getAvailability = (remaining) => {\r\n if (\r\n allotmentSettings !== undefined &&\r\n allotmentSettings[0].showColors === true\r\n ) {\r\n if (remaining >= allotmentSettings[0].lowTicketQty) {\r\n return \"calendar-available\";\r\n }\r\n if (remaining <= allotmentSettings[0].lowTicketQty && remaining > 0) {\r\n return \"calendar-low\";\r\n }\r\n if (remaining === 0) {\r\n return \"calendar-full\";\r\n }\r\n }\r\n if (\r\n allotmentSettings !== undefined &&\r\n allotmentSettings[0].showColors === false\r\n ) {\r\n if (remaining > allotmentSettings[0].lowTicketQty) {\r\n return \"calendar-nocolorallotment\";\r\n }\r\n if (remaining < allotmentSettings[0].lowTicketQty && remaining > 0) {\r\n return \"calendar-nocolorallotment\";\r\n }\r\n if (remaining === 0) {\r\n return \"disabled\";\r\n }\r\n }\r\n };\r\n const getPrice = (remaining, price) => {\r\n let newPrice = removeChars(price);\r\n if (\r\n allotmentSettings[0] !== undefined &&\r\n allotmentSettings[0].showPrice === true &&\r\n newPrice > 0\r\n ) {\r\n if (remaining === 0) {\r\n return

    {language.FullAllotment}

    ;\r\n }\r\n\r\n if (remaining > 0 && newPrice > 0) {\r\n return (\r\n

    \r\n {language.CostFromAbbreviation} {price}\r\n

    \r\n );\r\n } else {\r\n return \"\";\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (chosenDate !== undefined) {\r\n const filterDataByDay = filteredData.filter(\r\n (el) =>\r\n format(parseISO(el.time), formatDay) === format(chosenDate, formatDay)\r\n );\r\n filterDataByDay.sort(\r\n (a, b) => new Date(a?.timeOccasions) - new Date(b?.timeOccasions)\r\n );\r\n setOccasionsData(filterDataByDay);\r\n }\r\n }, [filteredData, chosenDate]);\r\n\r\n const resetDate = () => {\r\n scrollIntoView(\"NewCalendar\");\r\n setChosenDate(undefined);\r\n setSelected(false);\r\n setActiveScreen(false);\r\n setActiveOptionScreen(false);\r\n setChooseTime();\r\n setSingleOccasion();\r\n };\r\n\r\n const chooseOccasion = (occasion) => {\r\n setChooseTime(occasion);\r\n setSelected(occasion);\r\n scrollIntoView(\"ArticleChooser\");\r\n setActiveOptionScreen(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (\r\n activeTicketConfigurator?.hideTimeChooserIfSingleOccasion === true &&\r\n singleOccasion === true &&\r\n chosenDate\r\n ) {\r\n setChooseTime(occasionsData?.[0]);\r\n setSelected(occasionsData?.[0]);\r\n setActiveOptionScreen(true);\r\n } else {\r\n setChooseTime(\"\");\r\n setSelected(false);\r\n setActiveOptionScreen(false);\r\n }\r\n }, [activeTicketConfigurator, occasionsData, singleOccasion]);\r\n\r\n let time = [];\r\n\r\n if (occasionsData !== undefined) {\r\n const filterOutByIds = [\r\n ...occasionsData\r\n .reduce((a, b) => {\r\n a.set(b.allotment.id, b);\r\n return a;\r\n }, new Map())\r\n .values(),\r\n ];\r\n const mapOutIds = filterOutByIds.map((el) => el.allotment.id);\r\n\r\n const checkAllotmentId = (allotments) => {\r\n let allotmentData = [];\r\n allotmentData.push(dataContext.allotments);\r\n\r\n const filterIds = filterOutByIds.filter(\r\n (el) => el.allotment.id === allotments.allotment.id\r\n );\r\n const filterDataByIds = allotmentData\r\n .flat()\r\n .filter((el) => el.id === filterIds[0].allotment.id);\r\n return filterDataByIds[0].description;\r\n };\r\n\r\n for (let i = 0; i < occasionsData.length; i++) {\r\n time.push(\r\n
    \r\n {isBefore(new Date(occasionsData[i].timeOccasions), new Date()) ? (\r\n
    \r\n

    \r\n {mapOutIds.length > 1 && mapOutIds.length < occasionsData.length\r\n ? checkAllotmentId(occasionsData[i])\r\n : \"\"}\r\n

    \r\n
    \r\n chooseOccasion(occasionsData[i])}\r\n >\r\n \r\n {format(new Date(occasionsData[i].timeOccasions), \"HH:mm\")}\r\n

    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n

    \r\n {mapOutIds.length > 1 && mapOutIds.length < occasionsData.length\r\n ? checkAllotmentId(occasionsData[i])\r\n : \"\"}\r\n

    \r\n
    \r\n chooseOccasion(occasionsData[i])}\r\n >\r\n \r\n {format(new Date(occasionsData[i].timeOccasions), \"HH:mm\")}\r\n

    \r\n\r\n {getPrice(\r\n occasionsData[i].remaining,\r\n occasionsData[i].price\r\n .filter((el) => el > 0)\r\n .sort((a, b) => a - b)[0]\r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n }\r\n }\r\n\r\n const filterOutByIds = occasionsData && [\r\n ...occasionsData\r\n .reduce((a, b) => {\r\n a.set(b.allotment.id, b);\r\n return a;\r\n }, new Map())\r\n .values(),\r\n ];\r\n\r\n let res = [];\r\n const mapAllIds =\r\n filterOutByIds && filterOutByIds.map((el) => el.allotment.id);\r\n res.push(mapAllIds);\r\n\r\n const checkAllotmentId = (allotments, i) => {\r\n let allotmentData = [];\r\n allotmentData.push(dataContext.allotments);\r\n\r\n const filterDataByIds =\r\n allotmentData &&\r\n allotmentData.flat().filter((el) => el.id === allotments);\r\n\r\n const filterDataByCulture =\r\n filterDataByIds[0] &&\r\n filterDataByIds[0]?.translation.filter((el) => el.culture === culture);\r\n\r\n return filterDataByCulture && filterDataByCulture?.[0]?.name;\r\n };\r\n\r\n const removeChar = (price) => {\r\n if (price) {\r\n let newPrice = price && price.replaceAll(/[^0-9\\,.]/g, \"\");\r\n return newPrice.replace(\",\", \"\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const calendarTimePicker = document.getElementById(\"calendar-time-picker\");\r\n if (calendarTimePicker && occasionsData?.length > 0) {\r\n setTimeout(() => {\r\n calendarTimePicker.focus();\r\n }, 1000);\r\n }\r\n }, [occasionsData]);\r\n\r\n return (\r\n
    \r\n {occasionsData &&\r\n (!activeTicketConfigurator?.hideTimeChooserIfSingleOccasion ||\r\n occasionsData?.length > 1) ? (\r\n \r\n

    {language.ChooseTimeHeader}

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

    \r\n {format(selectedDate, \"EEEE\", { locale: cultureLocale })}{\" \"}\r\n {language.DateTheText.length > 0 ? language.DateTheText : \"\"}{\" \"}\r\n {format(selectedDate, \"do MMMM\", { locale: cultureLocale })}\r\n

    \r\n resetDate()}\r\n className=\"removeBorderBg calendar-changeDateBtn\"\r\n aria-label={language.ChangeDateBtn}\r\n >\r\n \r\n \r\n
    \r\n {res &&\r\n res.flat().map((allotmentId, i) => (\r\n \r\n

    \r\n {checkAllotmentId(allotmentId)}\r\n

    \r\n
    \r\n {occasionsData &&\r\n occasionsData.map((el, i) =>\r\n el.allotment.id === allotmentId ? (\r\n chooseOccasion(el)}\r\n aria-label={`${checkAllotmentId(\r\n allotmentId\r\n )} ${format(new Date(el.timeOccasions), \"HH:mm\", {\r\n locale: cultureLocale,\r\n })} ${el === chooseTime ? language.Chosen : \"\"}`}\r\n style={{ position: \"relative\" }}\r\n >\r\n {getAvailability(occasionsData[i].remaining) ===\r\n \"calendar-low\" && (\r\n \r\n \r\n
    \r\n )}\r\n \r\n {format(new Date(el.timeOccasions), \"HH:mm\")}\r\n

    \r\n {getPrice(\r\n el.remaining,\r\n el.price\r\n .filter((el) => removeChar(el) > 0)\r\n .sort(\r\n (a, b) => removeChar(a) - removeChar(b)\r\n )[0]\r\n )}\r\n \r\n ) : (\r\n \"\"\r\n )\r\n )}\r\n
    \r\n
    \r\n ))}\r\n
    \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TimeChooser;\r\n","import uuid from \"uuid\";\r\nimport slugify from \"../../components/common/slugify\";\r\nimport { getData } from \"../../components/Page/util\";\r\nconst makeId = () => uuid.v4();\r\n\r\nconst getArticlesFromTags = (tags) => {\r\n if (!tags || tags.length < 1) return [];\r\n let articles = [];\r\n let articleIds = [];\r\n tags.forEach((t) =>\r\n t.articles.forEach((a) => {\r\n if (!articleIds.includes(a.id)) {\r\n articleIds = [...articleIds, a.id];\r\n articles = [...articles, a];\r\n }\r\n })\r\n );\r\n return articles;\r\n};\r\n\r\nexport const extendProduct = (p, a = {}, config) => {\r\n const { imageFolderUrl } = config;\r\n const productGroupConfig = config.productGroupConfig.find(\r\n (x) => x.name === p.name\r\n );\r\n if (productGroupConfig?.useGroupsAsItems && !p.allProductsShow) return null;\r\n if (productGroupConfig?.useGroupsAsItems && !a.name) {\r\n console.log(`no published articleGroup with name ${p.name}`);\r\n return null;\r\n }\r\n if (!!a.id && !!p.isModification) return null;\r\n // If its a product that only exists in config\r\n const plu = a.plu ? a.plu : p.plu;\r\n return {\r\n id: a.id ? a.id : makeId(),\r\n name: a.name ? a.name : p.name,\r\n plu,\r\n images: p.images\r\n ? p.images.map((img) => `${imageFolderUrl}${img}`)\r\n : undefined,\r\n products: a.articles ? a.articles : null,\r\n displayPrice: a.priceInclVat,\r\n slug: productGroupConfig?.useGroupsAsItems\r\n ? `products/${slugify(p.name)}`\r\n : `products/${plu}`,\r\n isInfo: p?.isInfo || false,\r\n allProductsSort: p.allProductsSort,\r\n };\r\n};\r\n\r\nexport const getAllProducts = (data, config) => {\r\n if (!data) return [];\r\n let products = [];\r\n let noConfig = [];\r\n let unpublished = [];\r\n data.tags.forEach((tag) =>\r\n tag.articles.forEach((a) => {\r\n const p = config.productConfig.find((c) => c.plu === a.plu);\r\n if (!p) {\r\n noConfig = [...noConfig, { plu: a.plu, name: a.name }];\r\n }\r\n })\r\n );\r\n if (noConfig.length > 0) {\r\n console.log(`missing config for products:`, noConfig);\r\n }\r\n let publishedArticles = getArticlesFromTags(data.tags);\r\n if (!data || !config) return [];\r\n const { productConfig, productGroupConfig, useEventsAsProducts } = config;\r\n\r\n const { dataProductPlus, dataTags } = getData(data);\r\n\r\n productGroupConfig.forEach((g) => {\r\n if (g.useGroupsAsItems) {\r\n if (!dataTags.includes(g.name)) {\r\n unpublished = [...unpublished, { name: g.name, type: \"productGroup\" }];\r\n return;\r\n }\r\n const tag = data.tags.find((t) => t.name === g.name);\r\n const extendedProduct = extendProduct(g, tag, config);\r\n products = extendedProduct ? [...products, extendedProduct] : products;\r\n }\r\n });\r\n\r\n productConfig.forEach((p) => {\r\n if(!productGroupConfig.find(x => x.useGroupsAsItems && p.name.includes(x.name))) {\r\n let productConfig = config.productConfig.find((x) => x.plu === p.plu);\r\n let value =\r\n productConfig.isModification !== undefined\r\n ? productConfig.isModification\r\n : false;\r\n if (!dataProductPlus.includes(p.plu) && !value) {\r\n unpublished = [\r\n ...unpublished,\r\n { plu: p.plu, name: p.name, type: \"product\" },\r\n ];\r\n return;\r\n }\r\n const article = publishedArticles.find((a) => a.plu === p.plu);\r\n const extendedProduct = extendProduct(p, article, config);\r\n products = extendedProduct ? [...products, extendedProduct] : products;\r\n\r\n }\r\n\r\n });\r\n\r\n if (useEventsAsProducts) {\r\n // TODO\r\n // console.log(eventConfig);\r\n }\r\n return products.sort((a, b) => a.allProductsSort - b.allProductsSort);\r\n};\r\n\r\nexport const extendPage = (data, config) => {\r\n return {\r\n name: \"Alla Produkter\",\r\n productGroups: data.tags\r\n .map((t) => {\r\n const groupConfig = config.productGroupConfig.find(\r\n (g) => g.name === t.name\r\n );\r\n const products = t.articles.map((a) => {\r\n const product = config.productConfig.find((p) => p.plu === a.plu);\r\n return product ? extendProduct(product, a, config) : a;\r\n });\r\n return { ...t, ...groupConfig, products };\r\n })\r\n .sort((a, b) => a.allProductsSort - b.allProductsSort),\r\n };\r\n};\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport lottie from \"lottie-web\";\r\nimport animationData from \"./animations/clockblack.json\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst ChangeTimeButton = (props) => {\r\n const [open, setOpen] = useState(false);\r\n const [hover, setHover] = useState(false);\r\n const animationContainer2 = useRef(null);\r\n const anim = useRef(null);\r\n\r\n useEffect(() => {\r\n if (animationContainer2.current) {\r\n anim.current = lottie.loadAnimation({\r\n container: animationContainer2.current,\r\n renderer: \"svg\",\r\n loop: false,\r\n autoplay: false,\r\n animationData,\r\n });\r\n anim.current.setSpeed(1);\r\n\r\n return () => anim.current.destroy();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n setOpen(!open);\r\n anim.current.setDirection(open ? -1 : 1);\r\n anim.current.play();\r\n }, [props.selected]);\r\n\r\n const useStyles = makeStyles({\r\n btn: {\r\n position: \"relative\",\r\n width: \"45px\",\r\n height: \"45px\",\r\n },\r\n\r\n wrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n margin: \"0 auto\",\r\n padding: \"0 0.5rem\",\r\n minWidth: \"10px\",\r\n // maxWidth: \"190px\",\r\n backgroundColor: \"white\",\r\n border: ({ outline }) =>\r\n outline ? \"solid 2px black\" : \"solid 2px white\",\r\n background: ({ outline }) => (outline ? \"white\" : \"black\"),\r\n color: ({ outline }) => (outline ? \"black\" : \"white\"),\r\n letterSpacing: \"0.7px\",\r\n fontSize: \"17px\",\r\n cursor: \"pointer\",\r\n transition: \".3s ease \",\r\n\r\n borderRadius: ({ round }) => (round ? \"50px\" : \"10px\"),\r\n // \"&:hover\": {\r\n // // boxShadow: \"rgba(0, 0, 0, 0.35) 0px 5px 15px\",\r\n // // filter: \"invert(1)\",\r\n // },\r\n },\r\n btnText: {\r\n fontWeight: \"600\",\r\n fontSize: \"1rem\",\r\n padding: \"0\",\r\n margin: \"0 1rem 0 0\",\r\n },\r\n });\r\n\r\n const classes = useStyles(props);\r\n\r\n return (\r\n {\r\n setOpen(!open);\r\n setHover(true);\r\n anim.current.setDirection(open ? -1 : 1);\r\n anim.current.play();\r\n }}\r\n onMouseLeave={() => setHover(false)}\r\n >\r\n \r\n \r\n {props.text}\r\n

    \r\n \r\n );\r\n};\r\nexport default ChangeTimeButton;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport lottie from \"lottie-web\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport \"./styles.css\";\r\n\r\nconst AddToCartButton = (props) => {\r\n const [hovered, setHovered] = useState(false);\r\n const [hover, setHover] = useState(false);\r\n const [spinner, setSpinner] = useState(require(\"./animations/cartwhite\"));\r\n const animationContainer = useRef(null);\r\n const animationContainer2 = useRef(null);\r\n const anim = useRef(null);\r\n const anim2 = useRef(null);\r\n\r\n useEffect(() => {\r\n if (animationContainer.current) {\r\n anim.current = lottie.loadAnimation({\r\n container: animationContainer.current,\r\n renderer: \"svg\",\r\n loop: false,\r\n autoplay: false,\r\n animationData: spinner,\r\n });\r\n anim.current.setSpeed(1.25);\r\n\r\n return () => anim.current.destroy();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (animationContainer2.current) {\r\n anim2.current = lottie.loadAnimation({\r\n container: animationContainer.current,\r\n renderer: \"svg\",\r\n loop: true,\r\n autoplay: true,\r\n animationData: spinner,\r\n });\r\n anim2.current.setSpeed(1.25);\r\n\r\n return () => anim2.current.destroy();\r\n }\r\n }, []);\r\n\r\n const useStyles = makeStyles({\r\n btn: {\r\n position: \"relative\",\r\n width: \"45px\",\r\n height: \"45px\",\r\n },\r\n\r\n wrapper: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n margin: \"0 auto\",\r\n padding: \"3px 23px\",\r\n minWidth: \"10px\",\r\n maxWidth: \"280px\",\r\n backgroundColor: \"white\",\r\n border: ({ outline }) =>\r\n outline ? \"solid 2px black\" : \"solid 2px white\",\r\n background: ({ outline }) => (outline ? \"white\" : \"black\"),\r\n color: ({ outline }) => (outline ? \"black\" : \"white\"),\r\n letterSpacing: \"0.7px\",\r\n fontSize: \"17px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s ease \",\r\n borderRadius: ({ round }) => (round ? \"50px\" : \"10px\"),\r\n },\r\n btnText: {\r\n fontWeight: \"600\",\r\n fontSize: \"1rem\",\r\n margin: \"0\",\r\n padding: \"0\",\r\n },\r\n });\r\n\r\n const classes = useStyles(props);\r\n\r\n return (\r\n {\r\n setHovered(!hovered);\r\n setHover(true);\r\n anim.current.setDirection(hovered ? -1 : 1);\r\n anim.current.play();\r\n }}\r\n onMouseLeave={() => {\r\n setHover(false);\r\n }}\r\n style={{\r\n maxWidth: props.chosenAllotment?.length === 0 ? \"300px\" : \"280px\",\r\n }}\r\n >\r\n
    \r\n \r\n
    \r\n\r\n \r\n {props.text}\r\n

    \r\n \r\n );\r\n};\r\nexport default AddToCartButton;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport lottie from \"lottie-web\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport \"./styles.css\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst AddedButton = (props) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const [hovered, setHovered] = useState(false);\r\n const [spinner, setSpinner] = useState(require(\"./animations/loaderwhite\"));\r\n\r\n const animationContainer2 = useRef(null);\r\n\r\n const anim2 = useRef(null);\r\n\r\n useEffect(() => {\r\n if (animationContainer2.current) {\r\n anim2.current = lottie.loadAnimation({\r\n container: animationContainer2.current,\r\n renderer: \"svg\",\r\n loop: true,\r\n autoplay: true,\r\n animationData: spinner,\r\n });\r\n anim2.current.setSpeed(1.25);\r\n\r\n return () => anim2.current.destroy();\r\n }\r\n }, []);\r\n\r\n const useStyles = makeStyles({\r\n btn: {\r\n position: \"relative\",\r\n width: \"45px\",\r\n height: \"45px\",\r\n },\r\n\r\n wrapper2: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n margin: \"0 auto\",\r\n padding: \"3px 23px\",\r\n minWidth: \"10px\",\r\n fontFamily: \"Roboto, arial\",\r\n backgroundColor: \"rgb(135, 218, 97)\",\r\n color: ({ outline }) => (outline ? \"black\" : \"white\"),\r\n letterSpacing: \"0.7px\",\r\n fontSize: \"17px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s ease \",\r\n borderRadius: ({ round }) => (round ? \"50px\" : \"10px\"),\r\n },\r\n btnText: {\r\n fontWeight: \"600\",\r\n fontSize: \"1rem\",\r\n margin: \"0\",\r\n padding: \"0\",\r\n },\r\n });\r\n\r\n const classes = useStyles(props);\r\n\r\n return (\r\n {\r\n anim2.current.setDirection(hovered ? -1 : 1);\r\n anim2.current.play();\r\n }}\r\n aria-label={language.Loading}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nexport default AddedButton;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport AddToCartButton from \"./AddToCartButton\";\r\nimport {\r\n addArticleBatch,\r\n addArticleGroupTicket,\r\n addToCartTracking,\r\n} from \"../../common/sale\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { CART_ARTICLE_ADD, Context, OPEN_ALERT } from \"../../context\";\r\nimport { getCartArticle } from \"../cart/util\";\r\nimport AddedButton from \"./AddedButton\";\r\nimport { navigate } from \"@reach/router\";\r\nimport { STATE_CURRENCY } from \"../../common/state\";\r\n\r\nconst AddToCart = ({\r\n cart,\r\n setCart,\r\n allotmentId,\r\n clicked,\r\n setClicked,\r\n language,\r\n groupTicketCart,\r\n groupTicketCartSet,\r\n allotments,\r\n}) => {\r\n const rdxDispatch = useDispatch();\r\n const { dispatch } = useContext(Context);\r\n const { config, currency } = useSelector((state) => ({\r\n config: state.config,\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const [product, setProduct] = useState([]);\r\n const [text, setText] = useState(null);\r\n\r\n useEffect(() => {\r\n setProduct(groupByTimes(cart));\r\n }, [cart]);\r\n\r\n const reduceCart = Object.values(\r\n cart.reduce((acc, curr) => {\r\n if (!acc[curr.plu]) {\r\n acc[curr.plu] = {\r\n plu: curr.plu,\r\n quantity: 1,\r\n allotmentId: curr.allotmentId,\r\n allotmentOccasion: curr.timeOccasions,\r\n };\r\n } else {\r\n acc[curr.plu].quantity += 1;\r\n }\r\n return acc;\r\n }, {})\r\n );\r\n\r\n const chosenAllotment =\r\n cart &&\r\n allotmentId &&\r\n cart.filter((el) => {\r\n return allotmentId.articles.some((ele) => {\r\n return el.id === ele.id;\r\n });\r\n });\r\n\r\n const groupByTimes = (data) =>\r\n Object.values(\r\n data.reduce(\r\n (data, { id, plu }) =>\r\n Object.assign({}, data, {\r\n [id]: data[id]\r\n ? { id, plu: [...data[id].plu, plu] }\r\n : { id, plu: [plu] },\r\n }),\r\n {}\r\n )\r\n );\r\n\r\n const cartArticle = product && getCartArticle(product, config);\r\n\r\n const productPrice = (item) => {\r\n if (item && item.length > 0) {\r\n const regex = /[$€£kr]/g;\r\n let newPrice = item.replace(regex, \"\");\r\n if (newPrice.trim().split(\".\")[1] === \"00\") {\r\n return newPrice.split(\".\")[0];\r\n } else {\r\n return newPrice;\r\n }\r\n }\r\n };\r\n\r\n const trackReduceCart = Object.values(\r\n cart.reduce((acc, curr) => {\r\n if (!acc[curr.plu]) {\r\n acc[curr.plu] = {\r\n id: curr.plu,\r\n quantity: 1,\r\n price: parseFloat(productPrice(curr.priceInclVat).replace(\",\", \".\")),\r\n name: curr.name,\r\n };\r\n } else {\r\n acc[curr.plu].quantity += 1;\r\n }\r\n return acc;\r\n }, {})\r\n );\r\n const addGroupTicket = () => {\r\n const ticket = allotments.articles.find(\r\n (article) => article.plu === groupTicketCart.plu\r\n );\r\n const trackingGroupTicket = [\r\n {\r\n id: ticket.plu,\r\n quantity: 1,\r\n price: ticket.price.amountInclVat,\r\n name: ticket.name,\r\n },\r\n ];\r\n addToCartTracking(currency, trackingGroupTicket);\r\n setTimeout(() => {\r\n rdxDispatch(addArticleGroupTicket(groupTicketCart, cb));\r\n });\r\n };\r\n\r\n const add = () => {\r\n if (groupTicketCart) {\r\n setClicked(true);\r\n addGroupTicket();\r\n } else {\r\n setClicked(true);\r\n rdxDispatch(addArticleBatch(reduceCart, cb));\r\n }\r\n };\r\n\r\n const cb = (status, msg) => {\r\n if (status >= 400) {\r\n dispatch({\r\n type: OPEN_ALERT,\r\n payload: {\r\n text: language.ErrorMsgCouldNotAddToCart,\r\n severity: \"error\",\r\n },\r\n });\r\n setClicked(false);\r\n setCart([]);\r\n groupTicketCartSet(null);\r\n } else {\r\n dispatch({\r\n type: CART_ARTICLE_ADD,\r\n payload: cartArticle,\r\n });\r\n setCart([]);\r\n groupTicketCartSet(null);\r\n setClicked(false);\r\n setText(language.Added_To_Cart);\r\n setTimeout(() => {\r\n setText(null);\r\n }, 3000);\r\n config?.redirectEventCalendar && navigate(\"/ticketshop/cart\");\r\n addToCartTracking(currency, trackReduceCart);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n add()}\r\n id=\"multicalendar-add-to-cart\"\r\n className={`removeBorder add_to_cart_ticket ${\r\n chosenAllotment?.length === 0 && !groupTicketCart ? \"hideScreen\" : \"\"\r\n }`}\r\n disabled={\r\n chosenAllotment?.length === 0 && !groupTicketCart ? true : false\r\n }\r\n style={{ transition: \"all 0.25s ease\" }}\r\n aria-live=\"assertive\"\r\n >\r\n {clicked === false ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddToCart;\r\n","import React, { useContext, useEffect, useRef, useState } from \"react\";\r\nimport \"./styles.css\";\r\nimport { MdAddCircle, MdRemoveCircle } from \"react-icons/md\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\nimport { extendPage } from \"./util\";\r\nimport { useSelector } from \"react-redux\";\r\nimport format from \"date-fns/format\";\r\nimport ChangeTimeButton from \"./ChangeTimeButton\";\r\nimport AddToCart from \"./AddToCart\";\r\nimport { motion } from \"framer-motion\";\r\nimport { STATE_CURRENCY } from \"../../common/state\";\r\nimport { useDisclosure } from \"@mantine/hooks\";\r\nimport MultiTicketModal from \"../Event/EventV2/MultiTicketModal\";\r\n\r\nconst ArticleChooser = ({\r\n chosenDate,\r\n scrollIntoView,\r\n allotmentData,\r\n allotmentSettings,\r\n selected,\r\n setSelected,\r\n setChooseTime,\r\n setActiveOptionScreen,\r\n activeOptionScreen,\r\n language,\r\n cultureLocale,\r\n singleOccasion,\r\n activeTicketConfigurator,\r\n}) => {\r\n const [allotments, setAllotments] = useState();\r\n const [allotmentArticles, setAllotmentArticles] = useState();\r\n const [optionAllotments, setOptionAllotments] = useState([]);\r\n const [optionArticles, setOptionArticles] = useState([]);\r\n const [cart, setCart] = useState([]);\r\n const [cartTotal, setCartTotal] = useState(0);\r\n const [optionAllotmentsRemaining, setOptionAllotmentsRemaining] = useState();\r\n const [options, setOptions] = useState();\r\n const [disabledBtn, setDisabledBtn] = useState(false);\r\n const [timeSelected, setTimeSelected] = useState();\r\n const [addedAllotment, setAddedAllotment] = useState(0);\r\n const [fullAllotment, setFullAllotment] = useState(false);\r\n const [allotmentItemOutOfStock, setAllotmentItemOutOfStock] = useState([]);\r\n const [clicked, setClicked] = useState(false);\r\n const [groupTicketCart, groupTicketCartSet] = useState(null);\r\n const [opened, { open, close }] = useDisclosure(false);\r\n const { config, currency } = useSelector((state) => ({\r\n config: state.config,\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n\r\n const { data } = useContext(DataContext);\r\n const page = extendPage(data, config);\r\n const changeTimeBtnRef = useRef(null);\r\n\r\n const resetDate = () => {\r\n if (\r\n singleOccasion &&\r\n activeTicketConfigurator?.hideTimeChooserIfSingleOccasion\r\n ) {\r\n scrollIntoView(\"NewCalendar\");\r\n } else {\r\n scrollIntoView(\"TimeChooser\");\r\n }\r\n setActiveOptionScreen(false);\r\n setChooseTime(\"\");\r\n setSelected(false);\r\n setOptionAllotments();\r\n setTimeSelected(selected?.timeOccasions);\r\n setFullAllotment(false);\r\n setCart([]);\r\n setAddedAllotment(0);\r\n setAllotmentItemOutOfStock([]);\r\n };\r\n useEffect(() => {\r\n const optionAllotmentFilter =\r\n allotmentSettings[0] &&\r\n data.allotments.filter((el) =>\r\n allotmentSettings[0].optionAllotmentId.includes(el.id)\r\n );\r\n\r\n const sortOptionArticlesByPrice = optionAllotmentFilter?.map((el) =>\r\n el.articles.sort((a, b) => a.price.amountInclVat - b.price.amountInclVat)\r\n );\r\n\r\n const sortOptionArticles = optionAllotmentFilter?.sort(\r\n (a, b) =>\r\n a.articles?.[0].price.amountInclVat -\r\n b.articles?.[0].price.amountInclVat\r\n );\r\n\r\n const remainingFilter =\r\n allotmentData &&\r\n optionAllotmentFilter &&\r\n allotmentData.allotments.filter((el) => {\r\n return optionAllotmentFilter.some((ele) => {\r\n return el.description === ele.description;\r\n });\r\n });\r\n\r\n const mapArticles = page.productGroups.map((el) => el.articles);\r\n const optionArticleFilter =\r\n allotmentSettings[0] &&\r\n mapArticles\r\n .flat()\r\n .filter((el) => allotmentSettings[0].optionArticleId.includes(el.id));\r\n const removeDuplicates = [...new Set(optionArticleFilter)];\r\n\r\n const sortByPrice = removeDuplicates.sort(\r\n (a, b) => a.price.amountInclVat - b.price.amountInclVat\r\n );\r\n setOptionAllotments(optionAllotmentFilter);\r\n setOptionAllotmentsRemaining(remainingFilter);\r\n setOptionArticles(sortByPrice);\r\n }, [selected, allotmentSettings]);\r\n\r\n useEffect(() => {\r\n const articles = selected?.articles && selected?.articles;\r\n const sortSelected =\r\n selected && articles && articles.sort((a, b) => a.plu - b.plu);\r\n\r\n setAllotments(selected);\r\n setAllotmentArticles(sortSelected);\r\n setTimeSelected(selected?.timeOccasions);\r\n setFullAllotment(false);\r\n setCart([]);\r\n setAddedAllotment(0);\r\n setAllotmentItemOutOfStock([]);\r\n }, [selected, chosenDate]);\r\n\r\n useEffect(() => {\r\n if (chosenDate !== selected) {\r\n setActiveOptionScreen(false);\r\n }\r\n }, [chosenDate]);\r\n\r\n useEffect(() => {\r\n if (\r\n addedAllotment === allotments?.allotment?.maxPerSale ||\r\n (groupTicketCart && groupTicketCart.plu)\r\n ) {\r\n setDisabledBtn(true);\r\n }\r\n if (\r\n addedAllotment < allotments?.allotment?.maxPerSale &&\r\n !groupTicketCart\r\n ) {\r\n setDisabledBtn(false);\r\n }\r\n }, [addedAllotment, groupTicketCart]);\r\n\r\n const addItem = (product) => {\r\n if (calculateQuantity(product) + 1 <= product.inStock) {\r\n setCart([...cart, product]);\r\n }\r\n };\r\n\r\n const addAllotment = (product, timeSelected) => {\r\n if (product?.isMultiTicket) {\r\n setCart([]);\r\n open();\r\n groupTicketCartSet({\r\n plu: product.plu,\r\n quantity: 1,\r\n allotmentId: selected.allotment?.id,\r\n allotmentOccasion: timeSelected,\r\n ticketOwners: [],\r\n });\r\n } else {\r\n groupTicketCartSet(null);\r\n const newProduct = product;\r\n newProduct.allotmentId = selected.allotment?.id;\r\n newProduct.timeOccasions = timeSelected;\r\n if (\r\n addedAllotment < selected.remaining &&\r\n addedAllotment < allotments.allotment.maxPerSale\r\n ) {\r\n setAddedAllotment((prev) => prev + 1);\r\n setCart([...cart, newProduct]);\r\n }\r\n if (addedAllotment === selected.remaining - 1) {\r\n setFullAllotment(true);\r\n }\r\n }\r\n };\r\n\r\n const removeAllotment = (el) => {\r\n if (el?.isMultiTicket) {\r\n groupTicketCartSet(null);\r\n } else {\r\n setAddedAllotment((prev) => prev - 1);\r\n let newCart = [...cart];\r\n let res = cart.findIndex((i) => i.id === el.id);\r\n newCart.splice(res, 1);\r\n setCart(newCart);\r\n if (addedAllotment <= selected.remaining) {\r\n setFullAllotment(false);\r\n }\r\n }\r\n };\r\n const addAllotmentItem = (product, timeSelected, occasion) => {\r\n if (optionAllotments !== undefined) {\r\n let data = [];\r\n data = [occasion];\r\n const newFilter =\r\n data &&\r\n data.reduce((acc, curr) => {\r\n const item = curr.occasions.filter((ele) => {\r\n return ele.time.split(\"T\")[0] === timeSelected.split(\"T\")[0];\r\n });\r\n acc.push(item);\r\n return acc;\r\n }, []);\r\n\r\n const newFilterFlat = newFilter[0];\r\n const time = newFilterFlat[0].time;\r\n const newProduct = product;\r\n newProduct.allotmentId = occasion.id;\r\n newProduct.timeOccasions = time;\r\n\r\n const filterAllotment = optionAllotmentsRemaining.filter(\r\n (el) => el.description === occasion.description\r\n );\r\n\r\n const filterTime = filterAllotment[0].occasions.filter(\r\n (el) => el.time.split(\"T\")[0] === timeSelected.split(\"T\")[0]\r\n );\r\n if (\r\n calculateQuantity(newProduct) + 1 <= filterTime[0].remaining &&\r\n calculateQuantity(newProduct) + 1 <= filterTime[0].allotment.maxPerSale\r\n ) {\r\n setCart([...cart, newProduct]);\r\n }\r\n if (\r\n calculateQuantity(newProduct) + 1 === filterTime[0].remaining ||\r\n calculateQuantity(newProduct) + 1 === filterTime[0].allotment.maxPerSale\r\n ) {\r\n setAllotmentItemOutOfStock([\r\n ...allotmentItemOutOfStock,\r\n newProduct.name,\r\n ]);\r\n }\r\n }\r\n };\r\n\r\n const removeAllotmentItem = (el, occasion) => {\r\n const filterAllotment = optionAllotmentsRemaining.filter(\r\n (ele) => ele.description === occasion.description\r\n );\r\n const filterTime = filterAllotment[0].occasions.filter(\r\n (ele) => ele.time.split(\"T\")[0] === timeSelected.split(\"T\")[0]\r\n );\r\n\r\n let newCart = [...cart];\r\n let res = cart.findIndex((i) => i.id === el.id);\r\n newCart.splice(res, 1);\r\n setCart(newCart);\r\n\r\n if (calculateQuantity(el) <= filterTime[0].remaining) {\r\n setAllotmentItemOutOfStock(\r\n allotmentItemOutOfStock.filter((name) => name !== el.name)\r\n );\r\n }\r\n };\r\n\r\n const checkAllotmentItemRemaining = (el, timeSelected) => {\r\n if (timeSelected !== undefined) {\r\n const filterAllotment = optionAllotmentsRemaining.filter(\r\n (item) => item.description === el.description\r\n );\r\n const filterTime = filterAllotment[0]?.occasions.filter(\r\n (item) => item.time.split(\"T\")[0] === timeSelected.split(\"T\")[0]\r\n );\r\n if (filterTime && filterTime[0]?.remaining === 0) {\r\n return \"full\";\r\n }\r\n }\r\n };\r\n\r\n const removeItem = (el) => {\r\n let newCart = [...cart];\r\n let res = cart.findIndex((i) => i.id === el.id);\r\n newCart.splice(res, 1);\r\n setCart(newCart);\r\n };\r\n\r\n const calculateValue = () => {\r\n const removeChar = (price) => {\r\n if (price) {\r\n let newPrice = price && price.replaceAll(/[^0-9,.]/g, \"\");\r\n const commaIndex = newPrice.lastIndexOf(\",\");\r\n if (commaIndex !== -1) {\r\n if (commaIndex === 1) {\r\n newPrice =\r\n newPrice.substring(0, commaIndex) +\r\n newPrice.substring(commaIndex + 1);\r\n } else {\r\n newPrice =\r\n newPrice.substring(0, commaIndex) +\r\n \".\" +\r\n newPrice.substring(commaIndex + 1);\r\n }\r\n }\r\n return parseFloat(newPrice);\r\n }\r\n };\r\n let total = 0;\r\n for (let i = 0; i < cart.length; i++) {\r\n if (cart[i]?.price?.amountInclVat !== 0) {\r\n total += parseFloat(\r\n removeChar(cart[i].priceInclVat)\r\n ? removeChar(cart[i].priceInclVat)\r\n : removeChar(cart[i].displayPrice)\r\n ? removeChar(cart[i].displayPrice)\r\n : \"\"\r\n );\r\n }\r\n }\r\n const groupTicket = allotments?.articles?.filter(\r\n (groupTicket) => groupTicket?.plu === groupTicketCart?.plu\r\n );\r\n if (groupTicket && groupTicket.length > 0) {\r\n total = groupTicket?.[0]?.price?.amountInclVat;\r\n }\r\n setCartTotal(total.toFixed(2));\r\n };\r\n\r\n const calculateQuantity = (el) => {\r\n if (groupTicketCart && groupTicketCart.plu === el.plu) {\r\n return 1;\r\n }\r\n const findItems = cart.filter((item) => item.id === el.id);\r\n return findItems.length;\r\n };\r\n\r\n const disabledGroupAddToCart = () => {\r\n const getQuantity = groupTicketCart?.ticketOwners?.filter(\r\n (el) => el.quantity > 0\r\n );\r\n if (getQuantity && getQuantity.length > 0) return false;\r\n return true;\r\n };\r\n\r\n const closeModal = () => {\r\n groupTicketCartSet(null);\r\n close();\r\n };\r\n\r\n const returnFocus = () => {\r\n const button = document.getElementById(\"multicalendar-add-to-cart\");\r\n button.focus();\r\n };\r\n\r\n useEffect(() => {\r\n calculateValue();\r\n }, [cart, groupTicketCart]);\r\n\r\n useEffect(() => {\r\n if (optionAllotments !== undefined && timeSelected !== undefined) {\r\n let results = optionAllotments.filter((x) => {\r\n let data = x.occasions.some(\r\n (y) => y.time.split(\"T\")[0] === timeSelected.split(\"T\")[0]\r\n );\r\n return data;\r\n });\r\n setOptions(results);\r\n }\r\n }, [optionAllotments, timeSelected]);\r\n\r\n const spring = {\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 30,\r\n };\r\n\r\n useEffect(() => {\r\n const calendarTimePicker = document.getElementById(\r\n \"calendar-article-picker\"\r\n );\r\n if (calendarTimePicker && selected?.timeOccasions) {\r\n setTimeout(() => {\r\n calendarTimePicker.focus();\r\n }, 1000);\r\n }\r\n }, [selected]);\r\n\r\n return (\r\n \r\n

    {language?.ChooseAllotmentHeader}

    \r\n\r\n \r\n
    \r\n {!singleOccasion ? (\r\n

    \r\n {selected?.timeOccasions !== undefined &&\r\n format(new Date(selected?.timeOccasions), \"EEEE\", {\r\n locale: cultureLocale,\r\n })}\r\n  \r\n {language?.DateTheText}\r\n  \r\n {selected?.timeOccasions !== undefined &&\r\n format(new Date(selected?.timeOccasions), \"do MMMM HH:mm\", {\r\n locale: cultureLocale,\r\n })}\r\n

    \r\n ) : (\r\n

    \r\n {selected?.timeOccasions !== undefined &&\r\n format(new Date(selected?.timeOccasions), \"EEEE do MMMM\", {\r\n locale: cultureLocale,\r\n })}\r\n

    \r\n )}\r\n\r\n resetDate()}\r\n className=\"removeBorderBg calendar-changeTimeBtn\"\r\n aria-label={\r\n singleOccasion &&\r\n activeTicketConfigurator?.hideTimeChooserIfSingleOccasion\r\n ? language?.ChangeDateBtn\r\n : language?.ChangeTimeBtn\r\n }\r\n ref={changeTimeBtnRef}\r\n >\r\n \r\n \r\n
    \r\n {allotments &&\r\n allotments.articles.map((el, i) =>\r\n allotmentArticles.length > 0 ? (\r\n
    \r\n {el?.isMultiTicket && (\r\n \r\n )}\r\n
    \r\n

    {el.name}

    \r\n

    {el.priceInclVat}

    \r\n
    \r\n
    \r\n 0 ? true : \"\"}\r\n transition={spring}\r\n layout\r\n />\r\n 0 ? true : \"\"}\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n style={{\r\n pointerEvents: disabledBtn ? \"none\" : \"\",\r\n }}\r\n >\r\n addAllotment(el, timeSelected)}\r\n style={{\r\n opacity: disabledBtn ? \"0.2\" : \"1\",\r\n }}\r\n aria-label={`${language?.AddQuantity} ${el.name}`}\r\n disabled={disabledBtn}\r\n >\r\n \r\n \r\n \r\n 0 ? true : \"\"}\r\n layout\r\n transition={spring}\r\n role=\"region\"\r\n aria-live=\"assertive\"\r\n >\r\n {calculateQuantity(el)}\r\n \r\n 0 ? true : \"\"}\r\n className=\"calendar-handle2\"\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n >\r\n removeAllotment(el)}\r\n aria-label={`${language?.DecreaseQuantity} ${el.name}`}\r\n disabled={calculateQuantity(el) === 0 ? true : false}\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 {(options && optionArticles && options.length > 0) ||\r\n optionArticles.length > 0 ? (\r\n

    {language?.Options}

    \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {options &&\r\n options.map((el, i) => (\r\n
    \r\n {el.articles.map((ele, i) =>\r\n checkAllotmentItemRemaining(el, timeSelected) === \"full\" ? (\r\n \r\n
    \r\n

    {ele.name}

    \r\n

    \r\n {language?.SoldOut}\r\n

    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n
    \r\n

    {ele.name}

    \r\n

    \r\n {ele && ele.priceInclVat}\r\n

    \r\n
    \r\n
    \r\n 0 ? true : \"\"}\r\n transition={spring}\r\n layout\r\n />\r\n 0 ? true : \"\"}\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n style={{\r\n pointerEvents: allotmentItemOutOfStock.includes(\r\n ele.name\r\n )\r\n ? \"none\"\r\n : \"\",\r\n }}\r\n >\r\n \r\n addAllotmentItem(ele, timeSelected, el)\r\n }\r\n aria-label={`${language?.AddProduct} ${ele.name}`}\r\n >\r\n \r\n \r\n \r\n 0 ? true : \"\"}\r\n layout\r\n transition={spring}\r\n >\r\n {calculateQuantity(ele)}\r\n \r\n 0 ? true : \"\"}\r\n className=\"calendar-handle2\"\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n >\r\n removeAllotmentItem(ele, el)}\r\n aria-label={`${\r\n language?.RemoveProduct\r\n } ${calculateQuantity(ele)} ${ele.name}`}\r\n >\r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n )}\r\n
    \r\n ))}\r\n {optionArticles && optionArticles !== null\r\n ? optionArticles.map((el, i) => (\r\n \r\n
    \r\n

    {el.name}

    \r\n

    \r\n {el.inStock === 0 ? language?.SoldOut : el.priceInclVat}\r\n

    \r\n
    \r\n {el.inStock === 0 ? (\r\n \"\"\r\n ) : (\r\n
    \r\n 0 ? true : \"\"}\r\n transition={spring}\r\n layout\r\n />\r\n 0 ? true : \"\"}\r\n // whileHover={{ scale: 1.1 }}\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n style={{\r\n pointerEvents:\r\n calculateQuantity(el) === el.inStock ? \"none\" : \"\",\r\n }}\r\n >\r\n addItem(el)}\r\n aria-label={`${language?.AddProduct} ${el.name}`}\r\n >\r\n \r\n \r\n \r\n 0 ? true : \"\"}\r\n layout\r\n transition={spring}\r\n >\r\n {calculateQuantity(el)}\r\n \r\n 0 ? true : \"\"}\r\n className=\"calendar-handle2\"\r\n layout\r\n whileTap={{ scale: 1.2 }}\r\n transition={spring}\r\n >\r\n removeItem(el)}\r\n aria-label={`${\r\n language?.RemoveProduct\r\n } ${calculateQuantity(el)} ${el.name}`}\r\n disabled={calculateQuantity(el) === 0 ? true : false}\r\n >\r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n ))\r\n : \"\"}\r\n {cartTotal > 0 ? (\r\n

    \r\n {language?.ToPay} {cartTotal} {currency}\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\nexport default ArticleChooser;\r\n","import React, { useContext, useEffect, useRef, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\r\nimport { navigate, useLocation } from \"@reach/router\";\r\nimport TicketIntroduction from \"./TicketIntroduction\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Calendar from \"./Calendar\";\r\nimport Legend from \"./Legend\";\r\nimport gql from \"graphql-tag\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport TimeChooser from \"./TimeChooser\";\r\nimport ArticleChooser from \"./ArticleChooser\";\r\nimport { endOfMonth, startOfMonth } from \"date-fns\";\r\nimport { da, de, enGB, sv } from \"date-fns/locale\";\r\nimport smoothscroll from \"smoothscroll-polyfill\";\r\nimport { Button, Container } from \"@mantine/core\";\r\n\r\nconst oldQuery = gql`\r\n query oldDetailQuery(\r\n $currency: String\r\n $culture: String\r\n $posId: Int\r\n $from: DateTime\r\n $until: DateTime\r\n ) {\r\n allotments(\r\n currency: $currency\r\n culture: $culture\r\n posId: $posId\r\n from: $from\r\n until: $until\r\n ) {\r\n description\r\n occasions {\r\n time\r\n remaining\r\n allotment {\r\n id\r\n maxPerSale\r\n }\r\n articles {\r\n id\r\n name\r\n description\r\n plu\r\n priceInclVat\r\n isPersonalTicket\r\n ticketHolders {\r\n categoryName\r\n categoryId\r\n maximumNumber\r\n defaultNumber\r\n }\r\n price {\r\n amountInclVat\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst query = gql`\r\n query detailQuery(\r\n $currency: String\r\n $culture: String\r\n $posId: Int\r\n $from: DateTime\r\n $until: DateTime\r\n ) {\r\n allotments(\r\n currency: $currency\r\n culture: $culture\r\n posId: $posId\r\n from: $from\r\n until: $until\r\n ) {\r\n description\r\n occasions {\r\n time\r\n remaining\r\n allotment {\r\n id\r\n maxPerSale\r\n }\r\n articles {\r\n id\r\n name\r\n description\r\n plu\r\n priceInclVat\r\n isPersonalTicket\r\n isMultiTicket\r\n ticketHolders {\r\n categoryName\r\n categoryId\r\n maximumNumber\r\n defaultNumber\r\n }\r\n price {\r\n amountInclVat\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n border: \"1px solid #8A8C93\",\r\n },\r\n buttonWrapper: {\r\n maxWidth: \"100%\",\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"start\",\r\n paddingTop: 0,\r\n paddingBottom: \".5rem\",\r\n paddingLeft: 0,\r\n \"@media screen and (max-width: 768px)\": {\r\n paddingLeft: \".5rem\",\r\n },\r\n },\r\n ticketWrapper: {},\r\n introductionWrapper: {\r\n margin: \"0 auto\",\r\n minHeight: \"100%\",\r\n },\r\n calendarWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignContent: \"center\",\r\n justifyContent: \"center\",\r\n justifyItems: \"center\",\r\n alignItems: \"center\",\r\n width: \"100%\",\r\n // minHeight: \"70vh\",\r\n paddingTop: \"3rem\",\r\n // paddingBottom: \"5rem\",\r\n height: \"auto\",\r\n margin: \"0rem 0rem 3rem 0rem\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: \"0.5rem\",\r\n paddingTop: \"2rem\",\r\n // minHeight: \"100vh\",\r\n },\r\n },\r\n timeWrapper: {\r\n display: \"flex\",\r\n alignContent: \"center\",\r\n justifyContent: \"center\",\r\n justifyItems: \"center\",\r\n alignItems: \"center\",\r\n height: \"auto\",\r\n // paddingTop: \"10rem\",\r\n // paddingBottom: \"5rem\",\r\n // minHeight: \"30vh\",\r\n width: \"100%\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n // paddingTop: \"5rem\"\r\n },\r\n },\r\n\r\n smallWrapper: {\r\n minHeight: \"auto\",\r\n },\r\n\r\n largeWrapper: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: \"0\",\r\n minHeight: \"100vh\",\r\n },\r\n },\r\n\r\n chooseArticleWrapper: {\r\n display: \"flex\",\r\n alignContent: \"center\",\r\n justifyContent: \"center\",\r\n justifyItems: \"center\",\r\n alignItems: \"center\",\r\n height: \"auto\",\r\n // paddingTop: \"3rem\",\r\n // minWidth: \"500px\",\r\n // minHeight: \"25vh\",\r\n // paddingBottom: \"5rem\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: \"1rem\",\r\n // minWidth: \"5px\",\r\n paddingTop: \"0rem\",\r\n },\r\n },\r\n articleWrapper: {\r\n // paddingTop: \"10rem\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: \"1rem\",\r\n },\r\n },\r\n}));\r\n\r\nconst Ticket = (props) => {\r\n const { config, language, currency, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n\r\n const { data } = useContext(DataContext);\r\n const { event, ticketData, shopName } = props;\r\n const [text, setText] = useState(\"\");\r\n const [allotment, setAllotment] = useState([]);\r\n const [allotmentSettings, setAllotmentSettings] = useState([]);\r\n const [chosenDate, setChosenDate] = useState();\r\n const [currentDate, setCurrentDate] = useState(new Date());\r\n const [selectedDate, setSelectedDate] = useState(new Date());\r\n const [filteredData, setFilteredData] = useState();\r\n const [firstDate, setFirstDate] = useState([]);\r\n const [latestDate, setLatestDate] = useState([]);\r\n const [activeScreen, setActiveScreen] = useState(false);\r\n const [chooseOccasion, setChooseOccasion] = useState();\r\n const [chooseTime, setChooseTime] = useState();\r\n const [selected, setSelected] = useState(false);\r\n const [cultureLocale, setCultureLocale] = useState();\r\n const [activeOptionScreen, setActiveOptionScreen] = useState(false);\r\n const [from, setFrom] = useState();\r\n const [until, setUntil] = useState();\r\n const [singleOccasion, setSingleOccasion] = useState();\r\n const [activeTicketConfigurator, setActiveTicketConfigurator] = useState();\r\n\r\n const pageRefs = useRef({});\r\n let location = useLocation();\r\n let urlParams = location.pathname.split(\"/\").pop();\r\n const classes = useStyles();\r\n const { posId } = config;\r\n\r\n const useNewQuery = config && config?.useNewQuery;\r\n const dataQuery = useNewQuery ? query : oldQuery;\r\n\r\n const result = useQuery(dataQuery, {\r\n fetchPolicy: \"cache-and-network\",\r\n variables: { posId, currency, culture, from, until },\r\n });\r\n\r\n smoothscroll.polyfill();\r\n const locales = [\r\n { culture: \"sv-SE\", data: sv },\r\n { culture: \"en-US\", data: enGB },\r\n { culture: \"en-GB\", data: enGB },\r\n { culture: \"de-DE\", data: de },\r\n { culture: \"da-DK\", data: da },\r\n ];\r\n\r\n useEffect(() => {\r\n const getLocale = locales.filter((el) => el.culture === culture)[0].data;\r\n setCultureLocale(getLocale);\r\n }, []);\r\n\r\n useEffect(() => {\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/ee-static/shop/${shopName}/Texts//${urlParams}.${culture}.md`\r\n )\r\n .then((data) => setText(data.data))\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n }, [location.pathname]);\r\n\r\n useEffect(() => {\r\n const siteSettings = config.ticketConfigurator.filter(\r\n (el) => el.slug.toLowerCase() === urlParams\r\n );\r\n\r\n if (siteSettings[0] !== undefined) {\r\n const allotmentFilter = data.allotments.filter((el) =>\r\n siteSettings[0].allotmentId.includes(el.id)\r\n );\r\n if (allotmentFilter.length !== 0) {\r\n let firstAllotmentDate = allotmentFilter;\r\n let lastAllotmentDate = allotmentFilter;\r\n const getLastDates = lastAllotmentDate\r\n .map((el) => el.occasions.slice(-1))\r\n .flat();\r\n const getFirstDates = firstAllotmentDate.map((el) => el.occasions[0]);\r\n const sortLastDates = getLastDates.sort(\r\n (a, b) => new Date(b.time) - new Date(a.time)\r\n );\r\n\r\n const sortFirstDates = getFirstDates.sort(\r\n (a, b) => new Date(a.time) - new Date(b.time)\r\n );\r\n setAllotment(allotmentFilter);\r\n setAllotmentSettings(siteSettings);\r\n setFirstDate(sortFirstDates[0]);\r\n setLatestDate(sortLastDates[0]);\r\n }\r\n if (allotmentFilter.length === 0) {\r\n setAllotment([]);\r\n }\r\n }\r\n\r\n // get all occasions, sort den backwards and get the latest date. If the month of the latest date, set until to the latest working month\r\n }, [location.pathname, result]);\r\n\r\n const scrollIntoView = (type) => {\r\n if (pageRefs.current !== null) {\r\n setTimeout(() => {\r\n pageRefs.current[type].scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n }, 10);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setFrom(startOfMonth(currentDate));\r\n setUntil(endOfMonth(currentDate));\r\n }, [currentDate]);\r\n\r\n return (\r\n
    \r\n \r\n navigate(-1)}\r\n >\r\n {language.Back}\r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n (pageRefs.current = { ...pageRefs.current, NewCalendar: el })\r\n }\r\n >\r\n

    \r\n {allotment.length > 0\r\n ? language.Choose_Date\r\n : language.NoOccasionsAvailable}\r\n

    \r\n\r\n {allotment.length === 0 ||\r\n (allotmentSettings[0] !== undefined &&\r\n allotmentSettings[0].showColors === false) ? (\r\n \"\"\r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n {allotment.length > 0 && (\r\n \r\n (pageRefs.current = { ...pageRefs.current, TimeChooser: el })\r\n }\r\n // style={{ paddingTop: singleOccasion ? \"0\" : \"0\" }}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n\r\n \r\n (pageRefs.current = { ...pageRefs.current, ArticleChooser: el })\r\n }\r\n >\r\n {allotment.length > 0 && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Ticket;\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { DataContext } from \"../../components/common/dataProvider\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport Ticket from \"../../components/Ticket\";\r\nimport { getEvent } from \"../EventPage/util\";\r\nimport slugify from \"../../components/common/slugify\";\r\nimport { Button, Container, Text, Title } from \"@mantine/core\";\r\nimport { useNavigate } from \"@reach/router\";\r\n\r\nconst TicketPage = ({ id }) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const { data, eventFilter } = useContext(DataContext);\r\n const config = useSelector((state) => state.config);\r\n const ticketData = config.ticketConfigurator;\r\n const event = useMemo(() => getEvent(data, config, id), [data, id, config]);\r\n const configurator = config?.ticketConfigurator.find(\r\n (el) => slugify(el.slug) === id\r\n );\r\n const navigate = useNavigate();\r\n\r\n if (!configurator || configurator?.disabled)\r\n return (\r\n \r\n \r\n \r\n \r\n {language.CouldNotFindEventHeader}\r\n \r\n \r\n {language.CouldNotFindEventText}\r\n \r\n navigate(\"/ticketshop\")}\r\n className=\"mantine-Primary-btn\"\r\n variant=\"filled\"\r\n size=\"md\"\r\n radius=\"sm\"\r\n color=\"indigo\"\r\n >\r\n {language.BackToHomepage}\r\n \r\n \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 TicketPage;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport Settings from \"../Settings\";\r\n\r\nconst Header = ({ progress, step, language }) => {\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const variants = {\r\n initial: {\r\n scale: 1,\r\n },\r\n active: {\r\n scale: [1, 1.5, 1],\r\n },\r\n };\r\n\r\n useEffect(() => {}, [step]);\r\n\r\n const circle = (el, i) => {\r\n if (step === i) {\r\n return (\r\n i ? \"progressCircle\" : \"progressCircleOutline\"\r\n }`}\r\n // animate={isActive ? \"active\" : \"initial\"}\r\n style={{ paddingLeft: \"1rem\" }}\r\n animate=\"active\"\r\n variants={variants}\r\n transition={{\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 30,\r\n duration: 0.3,\r\n }}\r\n key={el + i}\r\n />\r\n );\r\n }\r\n\r\n if (step > i) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (step < i) {\r\n return (\r\n \r\n );\r\n }\r\n };\r\n return (\r\n
    \r\n

    {language.Header}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {progress.map((el, i) => circle(el, i))}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Link, navigate } from \"@reach/router\";\r\n\r\nconst OccasionButton = (props) => {\r\n const useStyles = makeStyles({\r\n occasionBtn: {\r\n minWidth: \"11rem\",\r\n width: \"100%\",\r\n padding: \" 0 2rem\",\r\n height: \"3.5rem\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 2px 6px rgba(0, 0, 0, 0.15)\",\r\n border: \"1.5px solid rgb(75, 75, 75);\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"600\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.2s ease\",\r\n \"&:hover\": {\r\n opacity: ({ primaryBtn }) => (primaryBtn ? \"0.7\" : \"\"),\r\n background: ({ primaryBtn }) => (primaryBtn ? \"\" : \"#e3e3e3\"),\r\n transform: \"translateY(-1px)\",\r\n },\r\n \"&:disabled\": {\r\n pointerEvents: \"none\",\r\n opacity: \"0.3\",\r\n },\r\n },\r\n });\r\n const classes = useStyles(props);\r\n\r\n return (\r\n
    \r\n {props.click ? (\r\n props.setStep(props.click)}\r\n disabled={props.disabled}\r\n aria-label={props.primaryText}\r\n >\r\n {props.primaryText}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {props.submit ? (\r\n \r\n {props.primaryText}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {props.redirect ? (\r\n navigate(props.redirect)}\r\n aria-label={props.primaryText}\r\n >\r\n \r\n {props.primaryText}\r\n
    \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {props.text ? (\r\n navigate(props.secondaryClick)}\r\n aria-label={props.text}\r\n > \r\n \r\n {props.text}\r\n
    \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default OccasionButton;\r\n","import React, { useEffect } from \"react\";\r\nimport \"./styles.css\";\r\n\r\nconst PreviousPageBtn = ({\r\n step,\r\n setStep,\r\n setChosenOldOccasion,\r\n returnClick,\r\n setReturnClick,\r\n language\r\n}) => {\r\n const clicked = () => {\r\n setStep(step - 1);\r\n setReturnClick(false);\r\n };\r\n const markdown = language.GoToPreviousStepBtn;\r\n return (\r\n <>\r\n {step !== 0 ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PreviousPageBtn;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n addMonths,\r\n subMonths,\r\n format,\r\n isBefore,\r\n startOfWeek,\r\n startOfMonth,\r\n isSameMonth,\r\n} from \"date-fns\";\r\n\r\nimport { IoIosArrowDroprightCircle } from \"react-icons/io\";\r\nimport { IoIosArrowDropleftCircle } from \"react-icons/io\";\r\n\r\nconst Header = ({\r\n currentDate,\r\n setCurrentDate,\r\n selectedDate,\r\n firstOccasion,\r\n lastOccasion,\r\n culture,\r\n cultureLocale\r\n}) => {\r\n const [allotmentDate, setAllotmentDate] = useState();\r\n const monthStart = startOfMonth(currentDate);\r\n const startDate = startOfWeek(monthStart);\r\n const dateFormat = \"MMMM yyyy\";\r\n\r\n const nextMonth = () => {\r\n setCurrentDate(addMonths(currentDate, 1));\r\n };\r\n const prevMonth = () => {\r\n setCurrentDate(subMonths(currentDate, 1));\r\n };\r\n\r\n useEffect(() => {\r\n setAllotmentDate(selectedDate);\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n {!isBefore(monthStart, new Date(firstOccasion?.time)) ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n\r\n
    \r\n {format(currentDate, dateFormat, { locale: cultureLocale })} \r\n
    \r\n\r\n
    \r\n {!isSameMonth(new Date(monthStart), new Date(lastOccasion?.time)) ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from \"react\";\r\nimport { startOfWeek, format, addDays } from \"date-fns\";\r\n\r\nconst Week = ({ currentDate, cultureLocale }) => {\r\n const dateFormat = \"E\";\r\n const days = [];\r\n let startDate = startOfWeek(currentDate, { locale: cultureLocale });\r\n for (let i = 0; i < 7; i++) {\r\n days.push(\r\n
    \r\n {format(addDays(startDate, i), dateFormat, {locale: cultureLocale})}\r\n
    \r\n );\r\n }\r\n return
    {days}
    ;\r\n};\r\n\r\nexport default Week;\r\n","import React from \"react\";\r\nimport {\r\n format,\r\n startOfWeek,\r\n addDays,\r\n startOfMonth,\r\n endOfMonth,\r\n endOfWeek,\r\n isSameMonth,\r\n isSameDay,\r\n toDate,\r\n isBefore,\r\n isAfter,\r\n} from \"date-fns\";\r\nimport \"../styles.css\";\r\nimport \"./calendarStyles.css\";\r\n\r\nconst WeekDay = ({\r\n currentDate,\r\n selectedDate,\r\n setSelectedDate,\r\n firstOccasion,\r\n occasion,\r\n chosenOldOccasion,\r\n cultureLocale,\r\n}) => {\r\n const monthStart = startOfMonth(currentDate, { locale: cultureLocale });\r\n const monthEnd = endOfMonth(monthStart);\r\n const startDate = startOfWeek(monthStart, { locale: cultureLocale });\r\n const endDate = endOfWeek(monthEnd);\r\n const dateFormat = \"d\";\r\n const regularDateFormat = \"yyyy-MM-dd\";\r\n const rows = [];\r\n\r\n let days = [];\r\n let day = startDate;\r\n let formattedDate = \"\";\r\n let today = new Date();\r\n let yesterday = today.setDate(today.getDate() - 1);\r\n\r\n const onDateClick = (day) => {\r\n setSelectedDate(day);\r\n };\r\n\r\n const getAvailability = (day, chosenOldOccasion) => {\r\n if (\r\n occasion !== undefined &&\r\n day !== undefined &&\r\n chosenOldOccasion !== undefined\r\n ) {\r\n let data = occasion;\r\n\r\n const filter = data[0]?.occasions.filter(\r\n (el) => el.remaining >= chosenOldOccasion.numberOfTickets\r\n );\r\n\r\n const removeBeforeNow = filter.filter((el) =>\r\n isAfter(new Date(el.time), new Date())\r\n );\r\n\r\n const newFilter =\r\n removeBeforeNow.filter(\r\n (el) => el.time.split(\"T\")[0].toString() === day.toString()\r\n ).length > 0;\r\n\r\n if (newFilter === true) {\r\n return \"available\";\r\n } else {\r\n return \"null\";\r\n }\r\n }\r\n };\r\n\r\n getAvailability(chosenOldOccasion);\r\n\r\n while (day <= endDate) {\r\n for (let i = 0; i < 7; i++) {\r\n formattedDate = format(day, dateFormat);\r\n const cloneDay = day;\r\n\r\n days.push(\r\n onDateClick(toDate(cloneDay))}\r\n >\r\n {formattedDate}\r\n \r\n );\r\n day = addDays(day, 1);\r\n }\r\n\r\n rows.push(\r\n
    \r\n {days}\r\n
    \r\n );\r\n days = [];\r\n }\r\n return
    {rows}
    ;\r\n};\r\nexport default WeekDay;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport \"./calendarStyles.css\";\r\nimport Header from \"./Header\";\r\nimport Week from \"./Week\";\r\nimport WeekDay from \"./WeekDay\";\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport { sv, de, da, enGB, enUS } from \"date-fns/locale\";\r\nimport { addMonths, isAfter, isSameMonth } from \"date-fns\";\r\n\r\nconst MoveOccasaionCalendar = ({\r\n currentDate,\r\n setCurrentDate,\r\n selectedDate,\r\n setSelectedDate,\r\n occasion,\r\n chosenOldOccasion,\r\n culture,\r\n language,\r\n}) => {\r\n const [lastOccasion, setLastOccasion] = useState();\r\n const [firstOccasion, setFirstOccasion] = useState();\r\n const [cultureLocale, setCultureLocale] = useState();\r\n\r\n useEffect(() => {\r\n if (occasion !== undefined) {\r\n setFirstOccasion(occasion[0].occasions[0])\r\n setLastOccasion(occasion[0].occasions.slice(-1)[0])\r\n }\r\n }, [occasion]);\r\n\r\n useEffect(() => {\r\n if(isAfter(new Date(firstOccasion?.time), new Date(currentDate))) {\r\n setCurrentDate(new Date(firstOccasion?.time));\r\n }\r\n },[firstOccasion])\r\n\r\n const locales = [\r\n { culture: \"sv-SE\", data: sv },\r\n { culture: \"en-US\", data: enGB },\r\n { culture: \"en-GB\", data: enGB },\r\n { culture: \"de-DE\", data: de },\r\n { culture: \"da-DK\", data: da },\r\n ];\r\n\r\n useEffect(() => {\r\n const getLocale = locales.filter((el) => el.culture === culture)[0].data;\r\n setCultureLocale(getLocale);\r\n }, []);\r\n\r\n return (\r\n
    \r\n {occasion === undefined ? (\r\n
    \r\n {\" \"}\r\n \r\n

    {language.CalendarLoading}

    \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MoveOccasaionCalendar;\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport lottie from \"lottie-web\";\r\nimport animationData from \"./animations/1103-confetti-outline-edited.json\";\r\n\r\nconst ConfirmationAnimation = ({ step }) => {\r\n const animationContainer = useRef(null);\r\n const anim = useRef(null);\r\n\r\n useEffect(() => {\r\n if (animationContainer.current) {\r\n anim.current = lottie.loadAnimation({\r\n container: animationContainer.current,\r\n renderer: \"svg\",\r\n loop: false,\r\n autoplay: false,\r\n animationData,\r\n });\r\n anim.current.setSpeed(1);\r\n setTimeout(() => {anim.current.play()}, 500);\r\n return () => anim.current.destroy();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {}, [step]);\r\n\r\n return
    ;\r\n};\r\n\r\nexport default ConfirmationAnimation;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { CircularProgress } from \"@material-ui/core\";\r\n\r\nconst SubmitButton = (props) => {\r\n const useStyles = makeStyles({\r\n submitBtn: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n minWidth: \"11rem\",\r\n // width: \"100%\",\r\n padding: \" 0 2rem\",\r\n height: \"3.5rem\",\r\n borderRadius: \"10px\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"600\",\r\n cursor: \"pointer\",\r\n boxShadow: \"0px 2px 6px rgba(0, 0, 0, 0.15)\",\r\n\r\n transition: \"all 0.2s ease\",\r\n \"&:hover\": {\r\n transform: \"translateY(-1px)\",\r\n },\r\n },\r\n });\r\n const classes = useStyles(props);\r\n\r\n return (\r\n
    \r\n \r\n {props.loading === true ? (\r\n \r\n ) : (\r\n props.primaryText\r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default SubmitButton;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport OccasionButton from \"./OccasionButton\";\r\nimport PreviousPageBtn from \"./PreviousPageBtn\";\r\nimport MoveOccasaionCalendar from \"./Calendar\";\r\nimport \"./styles.css\";\r\nimport ConfirmationAnimation from \"./ConfirmationAnimation\";\r\nimport { motion } from \"framer-motion\";\r\nimport { format, isBefore } from \"date-fns\";\r\nimport axios from \"axios\";\r\nimport SubmitButton from \"./SubmitButton\";\r\nimport { Typography } from \"@material-ui/core\";\r\nimport Markdown from \"react-markdown\";\r\n\r\nconst Content = ({\r\n step,\r\n setStep,\r\n ticketData,\r\n currentDate,\r\n setCurrentDate,\r\n filteredTicketData,\r\n chosenOldOccasion,\r\n setChosenOldOccasion,\r\n occasion,\r\n config,\r\n language,\r\n culture,\r\n posId,\r\n token,\r\n errorMsg,\r\n setErrorMsg,\r\n introductionText,\r\n}) => {\r\n const [selectedDate, setSelectedDate] = useState();\r\n const [content, setContent] = useState();\r\n const [newOccasions, setNewOccasions] = useState([]);\r\n const [returnClick, setReturnClick] = useState(false);\r\n const [pinValue, setPinValue] = useState(\"\");\r\n const [changeView, setChangeView] = useState(false);\r\n const [chosenNewOccasion, setChosenNewOccasion] = useState();\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n if (occasion !== undefined && selectedDate !== undefined) {\r\n let date = new Date(selectedDate);\r\n let filterOccasions = occasion[0].occasions.filter(\r\n (el) => el.time.split(\"T\")[0].toString() === format(date, \"yyyy-MM-dd\")\r\n );\r\n let removeBeforeNow = filterOccasions.filter(\r\n (el) => !isBefore(new Date(el.time), new Date())\r\n );\r\n setNewOccasions(removeBeforeNow);\r\n setChosenNewOccasion();\r\n }\r\n }, [selectedDate]);\r\n\r\n useEffect(() => {\r\n if (ticketData !== undefined && ticketData.length === 0) {\r\n setErrorMsg(language.ErrorMsgMissingToken);\r\n }\r\n }, [ticketData]);\r\n\r\n useEffect(() => {\r\n setChangeView(false);\r\n if (step === 0) {\r\n setContent(introduction);\r\n setChangeView(true);\r\n }\r\n if (step === 1) {\r\n setContent(chooseOldOccasion);\r\n setChangeView(true);\r\n }\r\n if (step === 2) {\r\n setContent(chooseNewDate);\r\n }\r\n if (step === 3) {\r\n setErrorMsg(\"\");\r\n setContent(chooseNewTime);\r\n }\r\n if (step === 4) {\r\n setErrorMsg(\"\");\r\n setContent(confirmNewOccasion);\r\n setPinValue(\"\");\r\n }\r\n if (step === 5) {\r\n setErrorMsg(\"\");\r\n setContent(receiptScreen);\r\n }\r\n }, [step]);\r\n\r\n const introduction = {\r\n text: introductionText,\r\n btnTextPrimary: language.GoToBookingBtn,\r\n clickToSection: 1,\r\n };\r\n\r\n const chooseOldOccasion = {\r\n header: language.ChooseOldOccasionHeader,\r\n btnText: language.SecondaryBtn,\r\n btnTextPrimary: language.PrimaryBtn,\r\n progress: 0,\r\n clickToSection: 2,\r\n secondaryClick: config?.self,\r\n chooseData: ticketData,\r\n };\r\n\r\n const chooseNewDate = {\r\n header: language.ChooseNewOccasionHeader,\r\n btnText: language.SecondaryBtn,\r\n btnTextPrimary: language.PrimaryBtn,\r\n clickToSection: 3,\r\n secondaryClick: config?.self,\r\n chooseData: \"\",\r\n };\r\n\r\n const chooseNewTime = {\r\n header: language.ChooseNewOccasionTimeHeader,\r\n btnText: language.SecondaryBtn,\r\n btnTextPrimary: language.PrimaryBtn,\r\n clickToSection: 4,\r\n secondaryClick: config?.self,\r\n chooseData: newOccasions,\r\n };\r\n\r\n const confirmNewOccasion = {\r\n header: language.ConfirmNewOccasionHeader,\r\n btnText: language.SecondaryBtn,\r\n btnTextPrimary: language.SubmitBtn,\r\n clickToSection: \"submit\",\r\n secondaryClick: config?.self,\r\n confirmOldOccasion: chosenOldOccasion,\r\n confirmNewOccasion: chosenNewOccasion,\r\n };\r\n\r\n const receiptScreen = {\r\n header: language.ConfirmationHeader,\r\n btnTextPrimary: language.RedirectBtn,\r\n clickToSection: \"redirect\",\r\n redirect: config?.logoLink,\r\n confirmationOldData: chosenOldOccasion,\r\n confirmationNewData: chosenNewOccasion,\r\n };\r\n\r\n const handlePost = (e) => {\r\n e.preventDefault();\r\n setErrorMsg(\"\");\r\n\r\n if (\r\n posId &&\r\n pinValue.length === 4 &&\r\n chosenOldOccasion &&\r\n chosenNewOccasion\r\n ) {\r\n setLoading(true);\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n axios\r\n .post(`${uri}/api/managesale/${token}/allotments`, {\r\n posId: posId,\r\n pin: pinValue,\r\n allotmentId: chosenOldOccasion.allotmentId,\r\n fromOccasion: chosenOldOccasion.occasion,\r\n toOccasion: chosenNewOccasion.time,\r\n })\r\n .then(function (response) {\r\n setLoading(false);\r\n setStep(5);\r\n setErrorMsg(\"\");\r\n })\r\n .catch(function (error) {\r\n setLoading(false);\r\n if (error.response.data === 1) {\r\n setErrorMsg(language.ErrorMsgIllegalPin);\r\n }\r\n if (error.response.data === 2) {\r\n setErrorMsg(language.ErrorMsgNoOccasionsToMoveFrom);\r\n }\r\n if (error.response.data === 3) {\r\n setErrorMsg(language.ErrorMsgTooCloseToOccasion);\r\n }\r\n if (error.response.data === 4) {\r\n setErrorMsg(language.ErrorMsgInvalidParameter);\r\n }\r\n if (error.response.data === 5) {\r\n setErrorMsg(language.ErrorMsgApiError);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const disabled = () => {\r\n if (step === 0 && errorMsg.length === 0) {\r\n return false;\r\n }\r\n if (step === 1 && chosenOldOccasion !== undefined) {\r\n return false;\r\n }\r\n\r\n if (step === 2 && selectedDate !== undefined) {\r\n return false;\r\n }\r\n if (step === 3 && chosenNewOccasion !== undefined) {\r\n return false;\r\n }\r\n if (step === 4 && pinValue.length === 4) {\r\n return false;\r\n }\r\n\r\n if (step === 5) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n const handleChange = (e) => {\r\n let onlyNumbers = /^[0-9]*$/;\r\n if (onlyNumbers.test(e.target.value)) {\r\n setPinValue(e.target.value);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {step !== 0 && step !== 5 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n

    {content?.header}

    \r\n {step === 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n
    \r\n {step !== 3\r\n ? content?.chooseData &&\r\n Object.values(content?.chooseData).map((el, i) => (\r\n setChosenOldOccasion(el)}\r\n key={el + i}\r\n disabled={el.canBeMoved === false ? true : false}\r\n >\r\n {step === 1 ? (\r\n

    \r\n {el.occasion.replace(\"T\", \" \").slice(0, -3)}\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n

    \r\n {el.numberOfTickets === 1\r\n ? el.numberOfTickets + \" \" + language.Ticket.toLowerCase()\r\n : el.numberOfTickets + \" \" + language.Tickets.toLowerCase()}\r\n

    \r\n \r\n ))\r\n : \"\"}\r\n\r\n {step === 3\r\n ? content?.chooseData &&\r\n chosenOldOccasion &&\r\n Object.values(content?.chooseData).map((el, i) =>\r\n el.time !== chosenOldOccasion.occasion ? (\r\n setChosenNewOccasion(el)}\r\n key={el + i}\r\n >\r\n

    \r\n {el.time.split(\"T\")[1].slice(0, -3)}\r\n

    \r\n \r\n ) : (\r\n \"\"\r\n )\r\n )\r\n : \"\"}\r\n\r\n {content?.confirmOldOccasion && content?.confirmNewOccasion && (\r\n <>\r\n {step === 4 ? (\r\n <>\r\n

    \r\n {chosenOldOccasion.numberOfTickets === 1\r\n ? language.OldOccasionAllotment\r\n : language.OldOccasionAllotments}\r\n

    \r\n \r\n

    \r\n {Object.values(\r\n content?.confirmOldOccasion.occasion\r\n .replace(\"T\", \" \")\r\n .slice(0, -3)\r\n )}\r\n

    \r\n

    \r\n {content?.confirmOldOccasion.numberOfTickets > 1\r\n ? content?.confirmOldOccasion.numberOfTickets +\r\n \" \" +\r\n language.Tickets.toLowerCase()\r\n : content?.confirmOldOccasion.numberOfTickets +\r\n \" \" +\r\n language.Ticket.toLowerCase()}\r\n

    \r\n
    \r\n

    \r\n {content?.confirmOldOccasion.numberOfTickets > 1\r\n ? language.NewOccasionAllotments\r\n : language.NewTicket}\r\n

    \r\n \r\n

    \r\n {Object.values(\r\n content?.confirmNewOccasion.time\r\n .replace(\"T\", \" \")\r\n .slice(0, -3)\r\n )}\r\n

    \r\n

    \r\n {content?.confirmOldOccasion.numberOfTickets > 1\r\n ? content?.confirmOldOccasion.numberOfTickets +\r\n \" \" +\r\n language.Tickets.toLowerCase()\r\n : content?.confirmOldOccasion.numberOfTickets +\r\n \" \" +\r\n language.Tickets.toLowerCase()}\r\n

    \r\n \r\n
    handlePost(e)} className=\"pinWrapper\">\r\n \r\n

    \r\n {language.PinCodeHelperText}\r\n

    \r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n )}\r\n \r\n {content?.confirmationNewData && step === 5 ? (\r\n <>\r\n
    \r\n \r\n {Object.values(\r\n content?.confirmationNewData.time.replace(\"T\", \" \").slice(0, -3)\r\n )}\r\n  \r\n {content?.confirmationOldData.numberOfTickets > 1\r\n ? content?.confirmationOldData.numberOfTickets +\r\n \" \" +\r\n language?.Tickets.toLowerCase()\r\n : content?.confirmationOldData.numberOfTickets +\r\n \" \" +\r\n language?.Ticket.toLowerCase()}\r\n

    \r\n
    \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {step === 2 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {errorMsg.length > 0 ? (\r\n \r\n

    {errorMsg}

    \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n 0 ? \"1rem 0rem 0.5rem 0\" : \"\",\r\n }}\r\n >\r\n {content?.btnText ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {content?.clickToSection === \"submit\" ? (\r\n handlePost(e)}\r\n >\r\n \r\n \r\n ) : content?.clickToSection === \"redirect\" ? (\r\n \r\n ) : step === 0 && errorMsg.length > 0 ? (\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 { useCallback, useLayoutEffect, useRef, useState } from \"react\";\r\nimport ResizeObserver from 'resize-observer-polyfill';\r\n\r\nconst useResizeObserver = () => {\r\n const [observerEntry, setObserverEntry] = useState({});\r\n const [node, setNode] = useState(null);\r\n const observer = useRef(null);\r\n\r\n const disconnect = useCallback(() => observer.current?.disconnect(), []);\r\n\r\n const observe = useCallback(() => {\r\n observer.current = new ResizeObserver(([entry]) => setObserverEntry(entry));\r\n if (node) observer.current.observe(node);\r\n }, [node]);\r\n\r\n useLayoutEffect(() => {\r\n observe();\r\n return () => disconnect();\r\n }, [disconnect, observe]);\r\n\r\n return [setNode, observerEntry];\r\n};\r\n\r\nexport default useResizeObserver;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport gql from \"graphql-tag\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Header from \"./Header\";\r\nimport Content from \"./Content\";\r\nimport \"./styles.css\";\r\nimport { useLocation } from \"@reach/router\";\r\nimport Modal from \"react-modal\";\r\nimport { motion } from \"framer-motion\";\r\nimport { addYears, startOfMonth } from \"date-fns\";\r\nimport useResizeObserver from \"./hooks/useResizeObserver\";\r\n\r\nconst query = gql`\r\n query detailQuery(\r\n $currency: String\r\n $culture: String\r\n $posId: Int\r\n $from: DateTime\r\n $until: DateTime\r\n ) {\r\n allotments(\r\n currency: $currency\r\n culture: $culture\r\n posId: $posId\r\n from: $from\r\n until: $until\r\n ) {\r\n id\r\n description\r\n occasions {\r\n time\r\n remaining\r\n allotment {\r\n id\r\n maxPerSale\r\n }\r\n articles {\r\n id\r\n name\r\n description\r\n plu\r\n priceInclVat\r\n isPersonalTicket\r\n price {\r\n amountInclVat\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst MoveOccasions = () => {\r\n const { config, language, currency, culture } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const [step, setStep] = useState(0);\r\n const [currentDate, setCurrentDate] = useState(new Date());\r\n const [progress, setProgress] = useState([1, 1, 1, 1, 1]);\r\n const [ticketData, setTicketData] = useState();\r\n const [from, setFrom] = useState();\r\n const [until, setUntil] = useState();\r\n const [filteredTicketData, setFilteredTicketData] = useState([]);\r\n const [chosenOldOccasion, setChosenOldOccasion] = useState();\r\n const [occasion, setOccasion] = useState();\r\n const [errorMsg, setErrorMsg] = useState(\"\");\r\n const [introductionText, setIntroductionText] = useState(\"\");\r\n const [initialHeight, setInitialHeight] = useState();\r\n const [newHeight, setNewHeight] = useState();\r\n\r\n const { posId } = config;\r\n const location = useLocation();\r\n\r\n const token = location.pathname.split(\"/\").slice(-1);\r\n\r\n useEffect(() => {\r\n setFrom(startOfMonth(new Date()));\r\n setUntil(addYears(currentDate, 1));\r\n }, [currentDate]);\r\n\r\n const result = useQuery(query, {\r\n fetchPolicy: \"cache-and-network\",\r\n variables: { posId, currency, culture, from, until },\r\n });\r\n\r\n useEffect(() => {\r\n const uri = config?.apiUriOverride?.startsWith(\"http\")\r\n ? config.apiUriOverride\r\n : config.apiUri;\r\n\r\n axios\r\n .get(`${uri}/api/managesale/${token}/allotments`)\r\n .then((res) => {\r\n const result = res.data;\r\n setTicketData(result);\r\n })\r\n .catch((error) => {\r\n if (error.response.data === 100) {\r\n setErrorMsg(language.ErrorMsgMissingToken);\r\n }\r\n if (error.response.data === 101) {\r\n setErrorMsg(language.ErrorMsgBadToken);\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/ee-static/shop/${config?.shopName}/Texts//moveoccasions.${culture}.md`\r\n )\r\n .then((data) => setIntroductionText(data.data))\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n const filter = result.data?.allotments.filter((el) => {\r\n return (\r\n ticketData &&\r\n ticketData.some((ele) => {\r\n return el.id === ele.allotmentId;\r\n })\r\n );\r\n });\r\n setFilteredTicketData(filter);\r\n }, [result, ticketData]);\r\n\r\n useEffect(() => {\r\n if (chosenOldOccasion !== undefined && filteredTicketData !== undefined) {\r\n const filter =\r\n chosenOldOccasion &&\r\n filteredTicketData &&\r\n filteredTicketData.filter(\r\n (el) => el.id === chosenOldOccasion.allotmentId\r\n );\r\n setOccasion(filter);\r\n }\r\n }, [chosenOldOccasion, filteredTicketData]);\r\n\r\n const style = {\r\n top: \"50%\",\r\n left: \"50%\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n marginRight: \"-50%\",\r\n paddingLeft: \"20px\",\r\n transform: \"translate(-50%, -50%)\",\r\n zIndex: \"2000\",\r\n position: \"absolute\",\r\n backgroundColor: \"rgb(250, 250, 250)\",\r\n };\r\n let isOpen = true;\r\n\r\n // const [ref, { height }] = useMeasure();\r\n const headerRef = useRef(null);\r\n const [ref, entry] = useResizeObserver();\r\n\r\n useEffect(() => {\r\n setNewHeight(entry?.contentRect?.height);\r\n window.addEventListener(\"resize\", setNewHeight(entry?.contentRect?.height));\r\n return window.removeEventListener(\r\n \"resize\",\r\n setNewHeight(entry?.contentRect?.height)\r\n );\r\n }, [entry.contentRect]);\r\n\r\n useEffect(() => {\r\n if (headerRef.current) {\r\n headerRef.current.scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }, [headerRef, step]);\r\n\r\n const variants = {\r\n initial: {\r\n height: newHeight,\r\n transition: {\r\n duration: 0,\r\n },\r\n },\r\n updated: {\r\n height: newHeight,\r\n transition: {\r\n duration: 0.5,\r\n },\r\n },\r\n };\r\n\r\n return (\r\n
    \r\n \r\n 0 ? \"updated\" : \"initial\"}\r\n className=\"moveoccasions-modal\"\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default MoveOccasions;\r\n","import React from \"react\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport MoveOccasions from \"../../components/MoveOccasions\";\r\n\r\nconst MoveOccasionsPage = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MoveOccasionsPage;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport lottie from \"lottie-web\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport \"../styles.css\";\r\n\r\nconst LoadingAnimation = (props) => {\r\n const [hovered, setHovered] = useState(false);\r\n const [spinner, setSpinner] = useState(require(\"./loaderwhite\"));\r\n\r\n const animationContainer3 = useRef(null);\r\n\r\n const anim3 = useRef(null);\r\n\r\n useEffect(() => {\r\n if (animationContainer3.current) {\r\n anim3.current = lottie.loadAnimation({\r\n container: animationContainer3.current,\r\n renderer: \"svg\",\r\n loop: true,\r\n autoplay: true,\r\n animationData: spinner,\r\n });\r\n anim3.current.setSpeed(1.25);\r\n\r\n return () => anim3.current.destroy();\r\n }\r\n }, []);\r\n\r\n const useStyles = makeStyles((theme) => ({\r\n addedbtn: {\r\n position: \"relative\",\r\n width: \"45px\",\r\n height: \"45px\",\r\n },\r\n\r\n btnText: {\r\n fontWeight: \"600\",\r\n fontSize: \"1rem\",\r\n margin: \"0\",\r\n padding: \"0\",\r\n },\r\n\r\n addedBtnIcon: {\r\n width: \"45px\",\r\n height: \"45px\",\r\n margin: \"0 auto\"\r\n\r\n },\r\n }));\r\n\r\n const classes = useStyles(props);\r\n\r\n return
    ;\r\n};\r\nexport default LoadingAnimation;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport LoadingAnimation from \"./animations/LoadingAnimation\";\r\n\r\nconst AddToCartButton = (props) => {\r\n const useStyles = makeStyles({\r\n cartBtn: {\r\n maxWidth: \"15rem\",\r\n minWidth: \"14rem\",\r\n padding: \"0 2rem\",\r\n marginBottom: \"0.5rem\",\r\n height: \"3.5rem\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 2px 6px rgba(0, 0, 0, 0.15)\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"600\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s ease\",\r\n \"&:disabled\": {\r\n pointerEvents: \"none\",\r\n opacity: \"0.3\",\r\n },\r\n \"@media screen and (max-width: 768px)\": {\r\n width: \"100%\",\r\n padding: 0,\r\n maxWidth: \"100%\"\r\n },\r\n },\r\n\r\n btnBackground: {\r\n \"&:hover\": {\r\n opacity: ({ primaryBtn }) => (primaryBtn ? \"0.7\" : \"\"),\r\n },\r\n },\r\n loadingBtn: {\r\n transition: \"all 5s ease\",\r\n width: \"70px\",\r\n },\r\n });\r\n const classes = useStyles(props);\r\n return (\r\n \r\n {props.loading === false ?

    {props.text}

    : }\r\n
    \r\n );\r\n};\r\n\r\nexport default AddToCartButton;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { CART_ARTICLE_ADD, Context, OPEN_ALERT } from \"../../context\";\r\nimport { addArticleBatch, addToCartTracking } from \"../../common/sale\";\r\nimport { navigate } from \"@reach/router\";\r\nimport AddToCartButton from \"./AddToCartButton\";\r\nimport { STATE_CURRENCY } from \"../../common/state\";\r\n\r\nconst AddToCart = ({\r\n articlesData,\r\n cart,\r\n setCart,\r\n config,\r\n setAddedOrder,\r\n language,\r\n settingsData,\r\n}) => {\r\n const rdxDispatch = useDispatch();\r\n const { dispatch } = useContext(Context);\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n const [loading, setLoading] = useState(false);\r\n const { currency } = useSelector((state) => ({\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n\r\n useEffect(() => {\r\n const checkCartForTickets = () => {\r\n let newCart = cart;\r\n const filter = newCart.filter((el) => {\r\n return articlesData.some((ele) => {\r\n return ele.id === el.id;\r\n });\r\n });\r\n if (filter.length > 0) {\r\n setDisabledBtn(false);\r\n } else {\r\n setDisabledBtn(true);\r\n }\r\n };\r\n checkCartForTickets();\r\n }, [cart]);\r\n\r\n const productPrice = (item) => {\r\n if (item && item.length > 0) {\r\n const regex = /[$€£kr]/g;\r\n let newPrice = item.replace(regex, \"\");\r\n if (newPrice.trim().split(\".\")[1] === \"00\") {\r\n return newPrice.split(\".\")[0];\r\n } else {\r\n return newPrice;\r\n }\r\n }\r\n };\r\n\r\n const reduceCart = Object.values(\r\n cart.reduce((acc, curr) => {\r\n if (!acc[curr.plu]) {\r\n acc[curr.plu] = {\r\n plu: curr.plu,\r\n quantity: 1,\r\n };\r\n } else {\r\n acc[curr.plu].quantity += 1;\r\n }\r\n return acc;\r\n }, {})\r\n );\r\n\r\n const trackReduceCart = Object.values(\r\n cart.reduce((acc, curr) => {\r\n if (!acc[curr.plu]) {\r\n acc[curr.plu] = {\r\n id: curr.plu,\r\n quantity: 1,\r\n price: curr.priceInclVat\r\n ? parseFloat(productPrice(curr.priceInclVat).replace(\",\", \".\"))\r\n : parseFloat(productPrice(curr.displayPrice).replace(\",\", \".\")),\r\n name: curr.name,\r\n };\r\n } else {\r\n acc[curr.plu].quantity += 1;\r\n }\r\n return acc;\r\n }, {})\r\n );\r\n\r\n const add = () => {\r\n setLoading(true);\r\n rdxDispatch(addArticleBatch(reduceCart, cb));\r\n };\r\n\r\n const linkToCart = config.self.split(\"/\").slice(-1);\r\n\r\n const redirectToCart = () => {\r\n if (settingsData.goToCartOnSubmit === true) {\r\n window.scrollTo(0, 0);\r\n navigate(`/${linkToCart}/cart`);\r\n }\r\n };\r\n\r\n const cb = (status, msg) => {\r\n setLoading(false);\r\n\r\n if (status >= 400) {\r\n dispatch({\r\n type: OPEN_ALERT,\r\n payload: {\r\n text: language.ArticleBooking.ErrorMsg,\r\n severity: \"error\",\r\n },\r\n });\r\n setCart([]);\r\n } else {\r\n dispatch({\r\n type: CART_ARTICLE_ADD,\r\n payload: reduceCart,\r\n });\r\n setCart([]);\r\n setAddedOrder(true);\r\n addToCartTracking(currency, trackReduceCart);\r\n redirectToCart();\r\n }\r\n };\r\n\r\n return (\r\n add()}\r\n aria-label={language.AddToCartBtn}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddToCart;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { MdAddCircle, MdRemoveCircle } from \"react-icons/md\";\r\nimport AddToCart from \"./AddToCart\";\r\n\r\nconst Cart = ({\r\n section,\r\n articlesData,\r\n optionsData,\r\n config,\r\n setAddedOrder,\r\n language,\r\n isVisible,\r\n setIsVisible,\r\n settingsData,\r\n culture,\r\n currency,\r\n}) => {\r\n const [cart, setCart] = useState([]);\r\n const [cartTotal, setCartTotal] = useState(0);\r\n const [isOn, setIsOn] = useState(true);\r\n const [disabledBtn, setDisabledBtn] = useState(false);\r\n\r\n const addItem = (item) => {\r\n if (item.inStock) {\r\n if (calculateQuantity(item) + 1 <= item.inStock) {\r\n setCart([...cart, item]);\r\n }\r\n if (calculateQuantity(item) === item.inStock) {\r\n setDisabledBtn(true);\r\n }\r\n }\r\n if (!item.inStock) {\r\n setCart([...cart, item]);\r\n }\r\n };\r\n\r\n const removeItem = (item) => {\r\n let newCart = [...cart];\r\n let res = cart.findIndex((el) => el.id === item.id);\r\n newCart.splice(res, 1);\r\n setCart(newCart);\r\n };\r\n\r\n const calculateQuantity = (item) => {\r\n const findItems = cart.filter((el) => el.id === item.id);\r\n return findItems.length;\r\n };\r\n\r\n const calculateValue = () => {\r\n const removeChar = (price) => {\r\n if (price) {\r\n const regex = /[$€£kr]/g;\r\n let newPrice = price && price.replace(regex, \"\");\r\n return newPrice;\r\n }\r\n };\r\n\r\n let total = 0;\r\n for (let i = 0; i < cart.length; i++) {\r\n total += parseFloat(\r\n removeChar(cart[i].priceInclVat)\r\n ? removeChar(cart[i].priceInclVat)\r\n : removeChar(cart[i].displayPrice)\r\n ? removeChar(cart[i].displayPrice)\r\n : \"\"\r\n );\r\n }\r\n setCartTotal(total.toFixed(2));\r\n };\r\n\r\n const translation = (item) => {\r\n const getLang = item.translation.filter((el) => el.culture === culture);\r\n return getLang[0].name;\r\n };\r\n\r\n const spring = {\r\n type: \"spring\",\r\n stiffness: 500,\r\n damping: 30,\r\n };\r\n\r\n useEffect(() => {\r\n setCart([]);\r\n }, [section]);\r\n\r\n useEffect(() => {\r\n calculateValue();\r\n }, [cart]);\r\n\r\n const total = (item) => {\r\n switch (currency) {\r\n case \"SEK\":\r\n return item + \" kr\";\r\n break;\r\n case \"EUR\":\r\n return \"€\" + item;\r\n break;\r\n case \"DKK\":\r\n return item + \" kr\";\r\n break;\r\n case \"GBP\":\r\n return \"£\" + item;\r\n break;\r\n case \"USD\":\r\n return \"$\" + item;\r\n break;\r\n case \"NOK\":\r\n return item + \" kr\";\r\n break;\r\n }\r\n };\r\n\r\n const productPrice = (item) => {\r\n const regex = /[$€£kr]/g;\r\n let newPrice =\r\n item !== null && item !== undefined && item.replace(regex, \"\");\r\n if (newPrice.trim().split(\".\")[1] === \"00\") {\r\n return newPrice.split(\".\")[0];\r\n } else {\r\n return newPrice;\r\n }\r\n };\r\n return (\r\n \r\n
    \r\n

    {language?.ArticleBooking.CartHeader}

    \r\n {articlesData && articlesData.length > 0 ? (\r\n
    \r\n {articlesData.map((el, i) => (\r\n \r\n
    \r\n

    {translation(el)}

    \r\n

    \r\n {el.inStock !== 0\r\n ? `${total(productPrice(el?.priceInclVat))}`\r\n : language?.ArticleBooking.OutOfStock}\r\n

    \r\n
    \r\n
    \r\n 0 ? isOn : \"\"}\r\n transition={spring}\r\n layout\r\n />\r\n 0 ? isOn : \"\"}\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n >\r\n addItem(el)}\r\n aria-label={language?.ArticleBooking.AddProduct}\r\n >\r\n \r\n \r\n \r\n 0 ? isOn : \"\"}\r\n data-over9={calculateQuantity(el) > 9 ? \"true\" : \"\"}\r\n data-over99={calculateQuantity(el) >= 100 ? \"true\" : \"\"}\r\n layout\r\n transition={spring}\r\n >\r\n {calculateQuantity(el)}\r\n \r\n 0 ? isOn : \"\"}\r\n className=\"handle2\"\r\n layout\r\n whileTap={{ scale: 1.2 }}\r\n transition={spring}\r\n >\r\n removeItem(el)}\r\n disabled={calculateQuantity(el) === 0 ? true : false}\r\n >\r\n \r\n \r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n {optionsData && optionsData.length > 0 ? (\r\n
    \r\n

    \r\n {language.ArticleBooking.OptionsHeader}\r\n

    \r\n {optionsData.map((el, i) => (\r\n \r\n
    \r\n

    {el.name}

    \r\n

    \r\n {el?.priceInclVat ? (\r\n <>\r\n {el.inStock !== 0\r\n ? `${total(productPrice(el?.priceInclVat))}`\r\n : language.ArticleBooking.OutOfStock}\r\n \r\n ) : el.inStock !== 0 ? (\r\n el.displayPrice\r\n ) : (\r\n language.ArticleBooking.OutOfStock\r\n )}\r\n

    \r\n
    \r\n
    \r\n 0 ? isOn : \"\"}\r\n transition={spring}\r\n layout\r\n />\r\n 0 ? isOn : \"\"}\r\n whileTap={{ scale: 1.2 }}\r\n layout\r\n transition={spring}\r\n >\r\n addItem(el)}\r\n aria-label={language?.ArticleBooking.AddProduct}\r\n >\r\n \r\n \r\n \r\n 0 ? isOn : \"\"}\r\n data-over9={calculateQuantity(el) > 9 ? \"true\" : \"\"}\r\n data-over99={calculateQuantity(el) >= 100 ? \"true\" : \"\"}\r\n layout\r\n transition={spring}\r\n >\r\n {calculateQuantity(el)}\r\n \r\n 0 ? isOn : \"\"}\r\n className=\"handle2\"\r\n layout\r\n whileTap={{ scale: 1.2 }}\r\n transition={spring}\r\n >\r\n removeItem(el)}\r\n aria-label={language?.ArticleBooking.RemoveProduct}\r\n disabled={calculateQuantity(el) === 0 ? true : false}\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 {language.ArticleBooking.CostText}:{\" \"}\r\n {total(productPrice(cartTotal.toString()))}\r\n

    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Cart;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { useLocation } from \"@reach/router\";\r\nimport { green } from \"@material-ui/core/colors\";\r\n\r\nconst Button = (props) => {\r\n const [activeBtn, setActiveBtn] = useState(false);\r\n const useStyles = makeStyles({\r\n occasionBtn: {\r\n minWidth: \"11rem\",\r\n width: \"100%\",\r\n padding: \" 0 2rem\",\r\n height: \"3.5rem\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 2px 6px rgba(0, 0, 0, 0.15)\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"600\",\r\n cursor: \"pointer\",\r\n\r\n transition: \"all 0.1s ease\",\r\n \"&:disabled\": {\r\n pointerEvents: \"none\",\r\n opacity: \"0.3\",\r\n },\r\n \"&:focus\": {\r\n outline : \"2px solid black\", \r\n },\r\n \"&:hover\": {\r\n transform: \"translateY(-1px)\",\r\n },\r\n \"&:active\": {\r\n outline: \"none\",\r\n }\r\n },\r\n btnBackground: {\r\n \"&:hover\": {\r\n opacity: ({ primaryBtn }) => (primaryBtn ? \"0.7\" : \"\"),\r\n },\r\n },\r\n });\r\n const classes = useStyles(props);\r\n const location = useLocation();\r\n const click = (data) => {\r\n setActiveBtn(data);\r\n props.setIsVisible(false);\r\n sessionStorage.setItem(\"articleBookingBtn\", data);\r\n setTimeout(() => {\r\n props.setSection(data);\r\n }, 50);\r\n setTimeout(() => {\r\n props.scrollIntoView(\"IntroductionSection\");\r\n }, 70);\r\n };\r\n\r\n useEffect(() => {\r\n props.setSection(\"\");\r\n }, [location.pathname]);\r\n\r\n useEffect(() => {\r\n props.setIsVisible(true);\r\n if (props.section.length === 0) {\r\n setActiveBtn(false);\r\n }\r\n if (props.text === props.section.name) {\r\n setActiveBtn(true);\r\n } else {\r\n setActiveBtn(false);\r\n }\r\n }, [props.section]);\r\n\r\n useEffect(() => {\r\n setActiveBtn(\"\");\r\n sessionStorage.setItem(\"articleBookingBtn\", \"notactive\");\r\n }, [location.pathname]);\r\n\r\n return (\r\n <>\r\n click(props.data)}\r\n // disabled={props.disabled}\r\n style={{ pointerEvents: activeBtn ? \"none\" : \"\" }}\r\n >\r\n {props.text}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Button;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Link, navigate, useLocation } from \"@reach/router\";\r\n\r\nconst ChosenButton = (props) => {\r\n const [activeBtn, setActiveBtn] = useState(false);\r\n const useStyles = makeStyles({\r\n occasionBtn: {\r\n minWidth: \"11rem\",\r\n width: \"100%\",\r\n padding: \" 0 2rem\",\r\n height: \"3.5rem\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 2px 6px rgba(0, 0, 0, 0.15)\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"600\",\r\n cursor: \"pointer\",\r\n\r\n transition: \"all 0.1s ease\",\r\n \"&:disabled\": {\r\n pointerEvents: \"none\",\r\n opacity: \"0.3\",\r\n },\r\n \"&:hover\": {\r\n transform: \"translateY(-1px)\",\r\n },\r\n },\r\n btnBackground: {\r\n \"&:hover\": {\r\n opacity: ({ primaryBtn }) => (primaryBtn ? \"0.7\" : \"\"),\r\n },\r\n },\r\n });\r\n const classes = useStyles(props);\r\n const location = useLocation()\r\n const click = (data) => {\r\n setActiveBtn(data);\r\n props.setIsVisible(false);\r\n \r\n setTimeout(() => {\r\n props.setSection(data);\r\n }, 50);\r\n\r\n };\r\n\r\n useEffect(() => {\r\n setActiveBtn(props.data)\r\n sessionStorage.setItem(\"articleBookingBtn\", props.data)\r\n props.setSection(props.data)\r\n props.setIsVisible(true)\r\n },[props.data])\r\n\r\n\r\n \r\n // useEffect(() => {\r\n // if (props.section.length === 0) {\r\n // setActiveBtn(false);\r\n // }\r\n // if (props.text === props.section.name) {\r\n // setActiveBtn(true);\r\n // } else {\r\n // setActiveBtn(false);\r\n // }\r\n \r\n // }, [props.section]);\r\n\r\n // useEffect(() => {\r\n // props.setIsVisible(true);\r\n\r\n // setTimeout(() => {\r\n // props.scrollIntoView(\"IntroductionSection\")\r\n\r\n // }, 70);\r\n // }, [props.section]);\r\n\r\n // useEffect(() => {\r\n // setActiveBtn(\"\")\r\n // },[location.pathname])\r\n\r\n return (\r\n
    \r\n click(props.data)}\r\n // disabled={props.disabled}\r\n style={{ pointerEvents: activeBtn ? \"none\" : \"\" }}\r\n aria-label={props.text}\r\n >\r\n {props.text}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ChosenButton;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\nimport Button from \"./Button\";\r\nimport \"./styles.css\";\r\nimport { Typography } from \"@material-ui/core\";\r\nimport Markdown from \"react-markdown\";\r\nimport { useLocation } from \"@reach/router\";\r\nimport ChosenButton from \"./ChosenButton\";\r\nimport { getApolloContext } from \"@apollo/react-hooks\";\r\n\r\nconst Header = ({\r\n bookingData,\r\n section,\r\n setSection,\r\n scrollIntoView,\r\n language,\r\n setIsVisible,\r\n settingsData,\r\n config,\r\n culture,\r\n}) => {\r\n const [introduction, setIntroduction] = useState();\r\n const [newContent, setNewContent] = useState();\r\n const location = useLocation();\r\n const urlPathName = location.pathname.split(\"/\").slice(-1);\r\n\r\n const getText = (data) => {\r\n const filter =\r\n data.translations &&\r\n data?.translations?.filter((el) => el.culture === culture);\r\n if (filter?.[0]?.name && filter?.[0]?.name !== undefined) {\r\n return filter?.[0]?.name;\r\n } else {\r\n return data.name;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/ee-static/shop/${config.shopName}//Texts/article-booking-${urlPathName}.${culture}.md`\r\n )\r\n .then((data) => setIntroduction(data.data))\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n }, [urlPathName]);\r\n\r\n useEffect(() => {\r\n setNewContent(bookingData);\r\n }, [bookingData, location.pathname]);\r\n\r\n return (\r\n <>\r\n {newContent && newContent.length > 0 ? (\r\n \r\n \r\n \r\n \r\n
    \r\n {newContent.length > 1\r\n ? newContent.map((el, i) => (\r\n
    \r\n \r\n
    \r\n ))\r\n : newContent.map((el, i) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Markdown from \"react-markdown\";\r\nimport { Typography } from \"@material-ui/core\";\r\nimport axios from \"axios\";\r\nimport { StylesContext } from \"@material-ui/styles\";\r\nimport _ from \"lodash\";\r\nimport { motion } from \"framer-motion\";\r\nimport { useLocation } from \"@reach/router\";\r\nimport slugify from \"../common/slugify\";\r\n\r\nconst IntroductionSection = ({\r\n config,\r\n language,\r\n culture,\r\n section,\r\n selfUrl,\r\n settingsData,\r\n bookingData,\r\n}) => {\r\n const [content, setContent] = useState();\r\n const [showLongText, setShowLongText] = useState(false);\r\n const [text, setText] = useState();\r\n const [header, setHeader] = useState(\"\");\r\n\r\n useEffect(() => {\r\n const filter = bookingData.filter((el) => el.name === section.name);\r\n\r\n if (filter.length > 0 && settingsData) {\r\n axios.all([\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/ee-static/shop/${\r\n config.shopName\r\n }//Texts/article-booking-${slugify(settingsData?.name)}-${\r\n filter[0].slug\r\n }.${culture}.md`\r\n )\r\n .then((data) => setText(data.data))\r\n .catch((err) => {\r\n console.log(err);\r\n }),\r\n ]);\r\n setContent(filter);\r\n }\r\n }, [bookingData, settingsData, section]);\r\n\r\n return (\r\n \r\n {sessionStorage.getItem(\"articleBookingBtn\") !== \"notactive\" ? (\r\n <>\r\n \r\n \r\n \r\n {content && content[0] !== undefined ? (\r\n \r\n \r\n \r\n {text &&\r\n window.screen.availWidth <= 768 &&\r\n text.length > 300 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {text && text?.length > 300 ? (\r\n setShowLongText(!showLongText)}\r\n aria-label={\r\n !showLongText\r\n ? language.ArticleBooking.ReadMoreButton\r\n : language.ArticleBooking.HideText\r\n }\r\n >\r\n {!showLongText\r\n ? language.ArticleBooking.ReadMoreButton\r\n : language.ArticleBooking.HideText}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default IntroductionSection;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { navigate, useLocation } from \"@reach/router\";\r\n\r\nconst ModalButton = (props) => {\r\n const useStyles = makeStyles((theme) => ({\r\n modalButtonWrapper: {\r\n width: \"100%\",\r\n },\r\n occasionBtn: {\r\n minWidth: \"11rem\",\r\n width: \"100%\",\r\n padding: \" 0 2rem\",\r\n height: \"3.5rem\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 2px 6px rgba(0, 0, 0, 0.15)\",\r\n border: \"2px solid rgb(75, 75, 75);\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"600\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.1s ease\",\r\n \"&:disabled\": {\r\n pointerEvents: \"none\",\r\n opacity: \"0.3\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n minWidth: \"1rem\",\r\n },\r\n },\r\n\r\n btnBackground: {\r\n background: ({ primaryBtn }) => (primaryBtn ? \"#000\" : \"#fff\"),\r\n color: ({ primaryBtn }) => (primaryBtn ? \"#fff\" : \"#000\"),\r\n border: ({ primaryBtn }) =>\r\n primaryBtn ? \"solid 1px #313A2F\" : \"solid 2px #000;\",\r\n \"&:hover\": {\r\n opacity: ({ primaryBtn }) => (primaryBtn ? \"0.7\" : \"\"),\r\n background: ({ primaryBtn }) => (primaryBtn ? \"\" : \"#e3e3e3\"),\r\n transform: \"translateY(-1px)\",\r\n },\r\n },\r\n }));\r\n const classes = useStyles(props);\r\n const { setAddedOrder, selfUrl } = props;\r\n const location = useLocation();\r\n const redirect = () => {\r\n window.scrollTo(0, 0);\r\n navigate(`${location.origin}/ticketshop/cart`);\r\n };\r\n\r\n return (\r\n <>\r\n {props.redirect ? (\r\n redirect()}\r\n aria-label={props.text}\r\n >\r\n {props.text}\r\n \r\n ) : (\r\n setAddedOrder(false)}\r\n aria-label={props.text}\r\n >\r\n {props.text}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ModalButton;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport lottie from \"lottie-web\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport \"../styles.css\";\r\n\r\nconst SuccessAnimation = (props) => {\r\n const [hovered, setHovered] = useState(false);\r\n const [animation, setAnimation] = useState(require(\"./success\"));\r\n\r\n const successAnimationContainer = useRef(null);\r\n\r\n const successAnimation = useRef(null);\r\n\r\n useEffect(() => {\r\n if (successAnimationContainer.current) {\r\n setTimeout(() => {\r\n successAnimation.current = lottie.loadAnimation({\r\n container: successAnimationContainer.current,\r\n renderer: \"svg\",\r\n loop: false,\r\n autoplay: true,\r\n animationData: animation,\r\n });\r\n successAnimation.current.setSpeed(1);\r\n\r\n return () => successAnimation.current.destroy();\r\n }, 200);\r\n }\r\n }, []);\r\n\r\n const useStyles = makeStyles((theme) => ({\r\n addedBtnIcon: {\r\n width: \"120px\",\r\n height: \"120px\",\r\n margin: \"0 auto\",\r\n },\r\n }));\r\n\r\n const classes = useStyles(props);\r\n\r\n return (\r\n \r\n );\r\n};\r\nexport default SuccessAnimation;\r\n","import React from \"react\";\r\nimport Modal from \"react-modal\";\r\nimport ModalButton from \"./ModalButton\";\r\nimport { motion } from \"framer-motion\";\r\nimport SuccessAnimation from \"./animations/SuccessAnimation\";\r\n\r\nconst ModalDialog = ({ addedOrder, setAddedOrder, language, selfUrl }) => {\r\n const style = {\r\n left: \"50%\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n marginRight: \"-50%\",\r\n paddingLeft: \"20px\",\r\n zIndex: \"2000\",\r\n position: \"absolute\",\r\n backgroundColor: \"rgb(0, 0, 0, 0.5)\",\r\n };\r\n const variants = {\r\n initial: {\r\n opacity: 0,\r\n transition: {\r\n duration: 1,\r\n },\r\n },\r\n visible: {\r\n opacity: 1,\r\n transition: {\r\n duration: 0.3,\r\n },\r\n },\r\n };\r\n return (\r\n \r\n \r\n

    {language.ArticleBooking.ModalHeader}

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

    {language.ArticleBooking.ModalText}

    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n","import React, { useContext, useEffect, useRef, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\r\nimport { DataContext } from \"../common/dataProvider\";\r\nimport Cart from \"./Cart\";\r\nimport Header from \"./Header\";\r\nimport IntroductionSection from \"./IntroductionSection\";\r\nimport ModalDialog from \"./ModalDialog\";\r\nimport { useLocation, useNavigate } from \"@reach/router\";\r\nimport smoothscroll from \"smoothscroll-polyfill\";\r\nimport { extendPage } from \"../../Pages/AllProductsPage/util\";\r\nimport PageLayout from \"../Styles/PageLayout\";\r\nimport PageContent from \"../Styles/PageContent\";\r\nimport { Button, Container, createStyles, Text, Title } from \"@mantine/core\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n button: {\r\n border: \"1px solid #8A8C93\",\r\n },\r\n buttonWrapper: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"start\",\r\n paddingTop: 0,\r\n paddingBottom: \".5rem\",\r\n paddingLeft: 0,\r\n \"@media screen and (max-width: 768px)\": {\r\n paddingLeft: \"1rem\",\r\n },\r\n },\r\n}));\r\n\r\nconst ArticleBooking = () => {\r\n const [section, setSection] = useState(\"\");\r\n const [bookingData, setBookingData] = useState([]);\r\n const [settingsData, setSettingsData] = useState([]);\r\n const [articlesData, setArticlesData] = useState([]);\r\n const [optionsData, setOptionsData] = useState([]);\r\n const [addedOrder, setAddedOrder] = useState(false);\r\n const [isVisible, setIsVisible] = useState(false);\r\n const { config, language, culture, currency } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n currency: state.cookies[STATE_CURRENCY],\r\n }));\r\n const pageRefs = useRef();\r\n const { data } = useContext(DataContext);\r\n const location = useLocation();\r\n smoothscroll.polyfill();\r\n\r\n const urlPathName = location.pathname.split(\"/\").slice(-1)[0];\r\n const navigate = useNavigate();\r\n const page = extendPage(data, config);\r\n const { classes } = useStyles();\r\n\r\n useEffect(() => {\r\n if (config?.articleBookingConfigurator) {\r\n const filter = config?.articleBookingConfigurator.filter(\r\n (el) => el.slug === urlPathName && !el?.disabled\r\n );\r\n if (filter[0]) {\r\n setBookingData(filter[0].tickets);\r\n setSettingsData(filter[0]);\r\n }\r\n }\r\n }, [config?.articleBookingConfigurator, location.pathname]);\r\n\r\n useEffect(() => {\r\n let allotmentTickets = data.articles;\r\n const articleIds = section.articleId;\r\n const optionIds = section.optionId;\r\n const productData = page?.productGroups;\r\n if (\r\n productData &&\r\n section.articleId?.[0] !== undefined &&\r\n section.articleId?.length > 0\r\n ) {\r\n const filterArticles = allotmentTickets.filter((el) => {\r\n return articleIds.some((item) => {\r\n return item === el.id;\r\n });\r\n });\r\n\r\n const removeArticlesDuplicates = new Set(filterArticles);\r\n const newArticlesData = [...removeArticlesDuplicates];\r\n\r\n // Get options\r\n const filterOptions = productData\r\n .map((el) => {\r\n return el.products.filter((ele) => {\r\n return optionIds.some((item) => {\r\n return item === ele.id;\r\n });\r\n });\r\n })\r\n .flat();\r\n\r\n const removeOptionsDuplicates = Array.from(\r\n new Set(filterOptions.map((a) => a.plu))\r\n ).map((plu) => {\r\n return filterOptions.find((a) => a.plu === plu);\r\n });\r\n\r\n const newOptionsData = [...removeOptionsDuplicates];\r\n\r\n const sortArticles = newArticlesData.sort(\r\n (a, b) => articleIds.indexOf(a.id) - articleIds.indexOf(b.id)\r\n );\r\n\r\n const sortOptions = newOptionsData.sort(\r\n (a, b) => optionIds.indexOf(a.id) - optionIds.indexOf(b.id)\r\n );\r\n setArticlesData(sortArticles);\r\n setOptionsData(sortOptions);\r\n }\r\n }, [section]);\r\n\r\n const selfUrl = config.self.split(\"/\").slice(-1);\r\n\r\n const scrollIntoView = (type) => {\r\n if (isVisible === true) {\r\n pageRefs.current[type].scrollIntoView({\r\n block: \"nearest\",\r\n inline: \"center\",\r\n behavior: \"smooth\",\r\n alignToTop: false,\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setIsVisible(false);\r\n }, [location.pathname]);\r\n\r\n if (bookingData.length === 0) {\r\n return (\r\n \r\n \r\n \r\n \r\n {language.CouldNotFindEventHeader}\r\n \r\n \r\n {language.CouldNotFindEventText}\r\n \r\n navigate(\"/ticketshop\")}\r\n className=\"mantine-Primary-btn backButton\"\r\n variant=\"filled\"\r\n size=\"md\"\r\n radius=\"sm\"\r\n color=\"indigo\"\r\n >\r\n {language.BackToHomepage}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n navigate(-1)}\r\n >\r\n {language.Back}\r\n \r\n \r\n \r\n\r\n \r\n (pageRefs.current = {\r\n ...pageRefs.current,\r\n IntroductionSection: el,\r\n })\r\n }\r\n >\r\n
    \r\n {!section.name || section.name === undefined ? (\r\n

    \r\n {language?.ArticleBooking?.ChooseTicketToContinue}\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
    \r\n {section && section.length !== 0 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {settingsData.showGoToCartModal ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ArticleBooking;\r\n","import React from \"react\";\r\nimport ArticleBooking from \"../../components/ArticleBooking\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\n\r\nconst ArticleBookingPage = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ArticleBookingPage;\r\n","import { useEffect } from \"react\";\r\nimport { useLocation, useNavigate } from \"@reach/router\";\r\n\r\nexport default function ScrollToTop() {\r\n const { pathname } = useLocation();\r\n let location = useLocation();\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n const goBackUrl = localStorage.getItem(\"goBackUrl\");\r\n if (goBackUrl && goBackUrl.startsWith(\"publicBooking\")) {\r\n navigate(goBackUrl.split(\"?\")?.[1]);\r\n }\r\n window.scrollTo(0, 0);\r\n localStorage.setItem(\"goBackUrl\", location.href);\r\n }, [pathname]);\r\n\r\n return null;\r\n}\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const GET_PUBLIC_BOOKING_PUBLIC_INFO = gql`\r\n query publicBookingQuery($activityId: String!) {\r\n publicBookingPublicInfo(activityId: $activityId) {\r\n formFields {\r\n id\r\n name\r\n description\r\n order\r\n fieldType\r\n fieldConstraints {\r\n isMandatory\r\n min\r\n max\r\n values\r\n }\r\n }\r\n publicBookingTypes {\r\n id\r\n name\r\n description\r\n minParticipants\r\n maxParticipants\r\n articlesToApply\r\n occasionLengthInMinutes\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_PUBLIC_BOOKING_OCCASIONS = gql`\r\n query publicBookingOccasionsQuery(\r\n $activityId: String!\r\n $occasionsFrom: DateTime\r\n $occasionsTo: DateTime\r\n ) {\r\n publicBookingOccasions(\r\n activityId: $activityId\r\n occasionsFrom: $occasionsFrom\r\n occasionsTo: $occasionsTo\r\n )\r\n }\r\n`;\r\n\r\nexport const CREATE_PUBLIC_BOOKING_REQUEST = gql`\r\n mutation PublicBookingRequest(\r\n $activityId: String!\r\n $responsibleId: Guid\r\n $publicBookingTypeId: Guid\r\n $occasion: DateTime!\r\n $numberOfParticipants: Int!\r\n $formFields: [String]\r\n ) {\r\n publicBookingRequest(\r\n activityId: $activityId\r\n responsibleId: $responsibleId\r\n publicBookingTypeId: $publicBookingTypeId\r\n occasion: $occasion\r\n numberOfParticipants: $numberOfParticipants\r\n formFields: $formFields\r\n ) {\r\n success\r\n errorMessage\r\n }\r\n }\r\n`;\r\n","import React from \"react\";\r\nimport { createStyles, Title } from \"@mantine/core\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n width: \"100%\",\r\n marginTop: \"1rem\",\r\n borderRadius: \"6px\",\r\n },\r\n section: {\r\n marginTop: \"1.25rem\",\r\n },\r\n}));\r\nconst BookingSection = ({ label, subLabel, children }) => {\r\n const { classes } = useStyles();\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {label} <span style={{ fontWeight: 400 }}>{subLabel}</span>\r\n \r\n
    \r\n
    {children}
    \r\n
    \r\n );\r\n};\r\n\r\nexport default BookingSection;\r\n","import React, { useContext } from \"react\";\r\nimport { Button } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Context } from \"../../context\";\r\n\r\nconst Login = () => {\r\n const { handleLogin, handleLogout } = useContext(Context);\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const { auth } = useSelector((state) => ({\r\n auth: state.oidc.user !== null && !state.oidc.user.expired,\r\n }));\r\n\r\n return (\r\n
    \r\n {\r\n if (auth) {\r\n handleLogout();\r\n } else {\r\n localStorage.setItem(\r\n \"goBackUrl\",\r\n `publicBooking?${window.location.pathname}`\r\n );\r\n handleLogin();\r\n }\r\n }}\r\n >\r\n {!auth && language.Log_On}\r\n {auth && language.Log_Off}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Login;\r\n","import React, { useState } from \"react\";\r\nimport {\r\n Badge,\r\n Button,\r\n Card,\r\n createStyles,\r\n Group,\r\n Modal,\r\n Text,\r\n Title,\r\n} from \"@mantine/core\";\r\nimport { HiOutlineClock } from \"react-icons/hi\";\r\nimport { MdEmojiPeople } from \"react-icons/md\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n card: {\r\n position: \"relative\",\r\n backgroundColor:\r\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\r\n height: \"100%\",\r\n },\r\n wrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n height: \"100%\",\r\n },\r\n\r\n rating: {\r\n position: \"absolute\",\r\n top: theme.spacing.xs,\r\n right: theme.spacing.xs + 2,\r\n pointerEvents: \"none\",\r\n },\r\n\r\n title: {\r\n fontSize: \"1.15rem\",\r\n display: \"block\",\r\n marginTop: theme.spacing.xs,\r\n marginBottom: theme.spacing.xs / 2,\r\n },\r\n subTitle: {\r\n fontSize: \"1rem\",\r\n fontWeight: 400,\r\n },\r\n footer: {\r\n marginTop: \"1rem\",\r\n marginBottom: \"1.5rem\",\r\n },\r\n textContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n}));\r\n\r\nconst Type = ({\r\n id,\r\n name,\r\n description,\r\n articlesToApply,\r\n occasionLengthInMinutes,\r\n maxParticipants,\r\n minParticipants,\r\n form,\r\n tag,\r\n ...props\r\n}) => {\r\n const [opened, openedSet] = useState(false);\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const { classes, cx } = useStyles();\r\n\r\n return (\r\n <>\r\n \r\n {tag && {tag}}\r\n
    \r\n
    \r\n \r\n {name}\r\n \r\n\r\n \r\n {description}\r\n \r\n {description.length > 200 && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {minParticipants} - {maxParticipants} {language.Persons}\r\n \r\n
    \r\n \r\n \r\n \r\n {occasionLengthInMinutes} {language.Minutes}\r\n \r\n
    \r\n \r\n \r\n form.setFieldValue(\"publicBookingTypeId\", id)}\r\n aria-label={`${\r\n props.value !== id ? language.ChooseType : language.Chosen\r\n } ${name}`}\r\n >\r\n {props.value !== id ? language.ChooseType : language.Chosen}\r\n \r\n \r\n \r\n
    \r\n openedSet(false)}\r\n title={name}\r\n closeButtonLabel={language.Close}\r\n >\r\n {description}\r\n \r\n openedSet(false)}\r\n >\r\n {language.Close}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Type;\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Calendar } from \"@mantine/dates\";\r\nimport { createStyles, Loader, Text, Title } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport \"../styles.css\";\r\nimport \"dayjs/locale/sv\";\r\nimport \"dayjs/locale/en\";\r\nimport \"dayjs/locale/de\";\r\nimport \"dayjs/locale/da\";\r\nimport {\r\n addYears,\r\n endOfMonth,\r\n format,\r\n getDate,\r\n isSameMonth,\r\n startOfMonth,\r\n} from \"date-fns\";\r\nimport { STATE_CULTURE } from \"../../../common/state\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n width: \"100%\",\r\n position: \"relative\",\r\n marginBottom: \"1rem\",\r\n },\r\n loader: {\r\n position: \"absolute\",\r\n left: 0,\r\n right: 0,\r\n top: \"3.9rem\",\r\n bottom: 0,\r\n margin: \"auto\",\r\n zIndex: 1,\r\n },\r\n calendarWrapper: {\r\n position: \"relative\",\r\n },\r\n alertWrapper: {\r\n display: \"flex\",\r\n marginTop: \"10rem\",\r\n position: \"absolute\",\r\n bottom: 0,\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n fontWeight: 500,\r\n fontSize: \"1.15rem\",\r\n span: {\r\n marginBottom: \"9rem\",\r\n },\r\n },\r\n\r\n titleWrapper: {\r\n marginBottom: \"1rem\",\r\n },\r\n calendar: {\r\n backgroundColor: \"white\",\r\n borderRadius: \"6px\",\r\n boxShadow:\r\n \"rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px\",\r\n },\r\n calendarBase: {\r\n // width: \"fit-content\",\r\n padding: \"1rem\",\r\n maxWidth: \"100%\",\r\n },\r\n center: {\r\n textAlign: \"center\",\r\n },\r\n}));\r\nconst DateChooser = ({\r\n initialData,\r\n initialLoading,\r\n occasions,\r\n form,\r\n calendarDatesSet,\r\n}) => {\r\n const { language, culture } = useSelector((state) => ({\r\n language: state.language,\r\n culture: state.cookies[STATE_CULTURE],\r\n }));\r\n const [value, valueSet] = useState(null);\r\n const [month, onMonthChange] = useState(new Date());\r\n const matches = useMediaQuery(\"(max-width: 768px)\");\r\n\r\n const { classes } = useStyles();\r\n\r\n const exclude = (date) => {\r\n const check =\r\n occasions &&\r\n occasions.some(\r\n (el) =>\r\n isSameMonth(date, new Date(el)) &&\r\n date.getDate() === getDate(new Date(el))\r\n );\r\n if (!check) return true;\r\n };\r\n\r\n useEffect(() => {\r\n if (value) {\r\n form.setFieldValue(\"occasion\", format(value, \"yyyy-MM-dd\"));\r\n }\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n if (form.values.occasion) {\r\n valueSet(new Date(form.values.occasion));\r\n }\r\n calendarDatesSet({\r\n from: format(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\r\n to: format(addYears(new Date(), 1), \"yyyy-MM-dd'T'HH:mm\"),\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n calendarDatesSet({\r\n from: startOfMonth(month),\r\n to: endOfMonth(month),\r\n });\r\n }, [month]);\r\n\r\n const getLastOccasion = useMemo(() => {\r\n return (\r\n initialData &&\r\n initialData?.publicBookingOccasions.sort(\r\n (a, b) => new Date(a) - new Date(b)\r\n )\r\n );\r\n }, [initialData]);\r\n\r\n useEffect(() => {\r\n if (occasions && occasions.length > 0 && initialData && !value) {\r\n onMonthChange(new Date(initialData?.publicBookingOccasions[0]));\r\n }\r\n\r\n if (occasions && occasions.length === 0 && initialData && !value) {\r\n onMonthChange(new Date(initialData?.publicBookingOccasions[0]));\r\n }\r\n\r\n if (value) {\r\n onMonthChange(value);\r\n }\r\n }, [initialData, value]);\r\n\r\n return (\r\n
    \r\n {initialLoading && }\r\n\r\n
    \r\n \r\n {language.Date}\r\n \r\n {language.ChooseDateToContinue}\r\n
    \r\n
    \r\n exclude(date)}\r\n minDate={new Date(getLastOccasion?.[0])}\r\n maxDate={new Date(getLastOccasion?.[getLastOccasion.length - 1])}\r\n month={month}\r\n onMonthChange={onMonthChange}\r\n hideOutsideDates\r\n style={{ opacity: initialLoading && 0.5 }}\r\n />\r\n\r\n {!initialLoading && occasions && occasions.length === 0 && (\r\n
    \r\n \r\n {language.NoOccasionsAvailable}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default DateChooser;\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Button, createStyles, Text, Title } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport \"../styles.css\";\r\nimport { format, isSameDay } from \"date-fns\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n width: \"100%\",\r\n \"@media screen and (max-width: 768px)\": {\r\n marginBottom: \"1.5rem\",\r\n },\r\n },\r\n wrapper: {\r\n width: \"100%\",\r\n height: \"fit-content\",\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(auto-fill, minmax(70px, 1fr))\",\r\n gap: \".75rem\",\r\n },\r\n titleWrapper: {\r\n marginBottom: \"1rem\",\r\n },\r\n}));\r\nconst TimeChooser = ({ form, occasions }) => {\r\n const [activeTime, activeTimeSet] = useState(null);\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const { classes } = useStyles();\r\n\r\n useEffect(() => {\r\n if (activeTime) {\r\n const date = activeTime;\r\n form.setFieldValue(\"occasion\", date);\r\n }\r\n }, [activeTime]);\r\n\r\n const getOccasions = useMemo(() => {\r\n const filter =\r\n occasions &&\r\n occasions.filter((el) =>\r\n isSameDay(new Date(el), new Date(form.values.occasion))\r\n );\r\n if (filter) return filter.sort((a, b) => new Date(a) - new Date(b));\r\n }, [form, occasions]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n {language.Occasion_Time_Label}\r\n \r\n {language.ChooseTimeToContinue}\r\n
    \r\n
    \r\n {getOccasions &&\r\n getOccasions.map((el) => (\r\n activeTimeSet(el)}\r\n >\r\n {format(new Date(el), \"HH:mm\")}\r\n \r\n ))}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default TimeChooser;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { createStyles } from \"@mantine/core\";\r\nimport DateChooser from \"./DateChooser\";\r\nimport TimeChooser from \"./TimeChooser\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport { useLazyQuery } from \"@apollo/react-hooks\";\r\nimport { GET_PUBLIC_BOOKING_OCCASIONS } from \"../publicBookingQuery\";\r\nimport { addYears } from \"date-fns\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n display: \"flex\",\r\n gap: \"2.5rem\",\r\n paddingRight: \"1rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n gap: \"1.5rem\",\r\n paddingRight: 0,\r\n },\r\n },\r\n}));\r\n\r\nconst DateTimePicker = ({ form, bookingApiClient }) => {\r\n const [calendarDates, calendarDatesSet] = useState({ from: null, to: null });\r\n\r\n const [lazyOccasionsQuery, { data: initialData, loading: initialLoading }] =\r\n useLazyQuery(GET_PUBLIC_BOOKING_OCCASIONS, {\r\n client: bookingApiClient,\r\n });\r\n\r\n useEffect(() => {\r\n lazyOccasionsQuery({\r\n variables: {\r\n activityId: form.values.activityId,\r\n occasionsFrom: new Date(),\r\n occasionsTo: addYears(new Date(), 1),\r\n },\r\n });\r\n }, [form.values.activityId]);\r\n\r\n const { classes } = useStyles();\r\n const matches = useMediaQuery(\"(max-width: 768px)\");\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DateTimePicker;\r\n","import React, { useMemo, useState } from \"react\";\r\nimport { createStyles, Textarea, TextInput } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n label: {\r\n fontSize: \"1rem !important\",\r\n },\r\n description: {\r\n fontSize: \"1rem\",\r\n marginTop: \"-0.35rem\",\r\n paddingBottom: \".5rem\",\r\n color: \"black\",\r\n },\r\n}));\r\n\r\nconst TextField = ({\r\n id,\r\n index,\r\n placeholder,\r\n description,\r\n required,\r\n label,\r\n min,\r\n max,\r\n form,\r\n extraFormIsValid,\r\n extraFormIsValidSet,\r\n}) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const [isError, isErrorSet] = useState(null);\r\n const { classes } = useStyles();\r\n\r\n const addInput = (e) => {\r\n const split = e.target.value.split(\"\");\r\n form.setFieldValue(`formFields.${index}.stringVal`, e.target.value);\r\n if (split.length !== 0 && split.length < min) {\r\n isErrorSet(\r\n `${language.FormErrorMinChar} ${min - 1} ${language.Characters}`\r\n );\r\n extraFormIsValidSet([...extraFormIsValid, { id: index, isValid: false }]);\r\n } else if (!required && split.length === 0) {\r\n const filter =\r\n extraFormIsValid && extraFormIsValid.filter((el) => el.id !== index);\r\n extraFormIsValidSet(filter);\r\n } else if (split.length > max) {\r\n isErrorSet(`${language.FormErrorMaxChar} ${max} ${language.Characters}`);\r\n extraFormIsValidSet([...extraFormIsValid, { id: index, isValid: false }]);\r\n } else if (!required || split.length >= min || split.length <= max) {\r\n isErrorSet(null);\r\n\r\n if (extraFormIsValid) {\r\n const filter =\r\n extraFormIsValid && extraFormIsValid.filter((el) => el.id !== index);\r\n extraFormIsValidSet(filter);\r\n }\r\n }\r\n if (!required && split.length === 0) {\r\n isErrorSet(null);\r\n }\r\n };\r\n\r\n const getValue = useMemo(() => {\r\n const filter = form.values?.formFields.filter((el) => el.id === id)?.[0];\r\n if (!filter?.stringVal) {\r\n return \"\";\r\n } else {\r\n return filter?.stringVal;\r\n }\r\n }, [id, form]);\r\n\r\n return (\r\n
    \r\n {max > 50 ? (\r\n addInput(e)}\r\n />\r\n ) : (\r\n addInput(e)}\r\n />\r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default TextField;\r\n","import React from \"react\";\r\nimport { createStyles, NumberInput } from \"@mantine/core\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n label: {\r\n fontSize: \"1rem !important\",\r\n },\r\n description: {\r\n fontSize: \"1rem\",\r\n marginTop: \"-0.35rem\",\r\n paddingBottom: \".5rem\",\r\n color: \"black\",\r\n },\r\n}));\r\n\r\nconst NumberField = ({\r\n form,\r\n index,\r\n placeholder,\r\n label,\r\n description,\r\n required,\r\n min,\r\n max,\r\n}) => {\r\n const { classes } = useStyles();\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default NumberField;\r\n","import React from \"react\";\r\nimport { Checkbox, createStyles } from \"@mantine/core\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n label: {\r\n fontSize: \"1rem !important\",\r\n },\r\n description: {\r\n fontSize: \"1rem\",\r\n marginTop: \"0.25rem\",\r\n paddingBottom: \".5rem\",\r\n color: \"black\",\r\n },\r\n}));\r\n\r\nconst CheckboxGroupField = ({\r\n form,\r\n label,\r\n description,\r\n values,\r\n required,\r\n index,\r\n}) => {\r\n const { classes } = useStyles();\r\n\r\n return (\r\n
    \r\n \r\n {values.map((el) => (\r\n \r\n ))}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CheckboxGroupField;\r\n","import React from \"react\";\r\nimport { createStyles, Text, Title } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { format } from \"date-fns\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {},\r\n titleWrapper: {\r\n marginBottom: \"1rem\",\r\n },\r\n listWrapper: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"30% 70%\",\r\n gap: \"3rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n gap: \"0rem\",\r\n },\r\n \"& ul\": {\r\n marginTop: \"-.3rem\",\r\n listStyle: \"none\",\r\n padding: 0,\r\n paddingRight: \"2rem\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"0.5rem\",\r\n \"& li\": {\r\n wordBreak: \"break-word\",\r\n },\r\n },\r\n \"& span\": {\r\n fontWeight: 400,\r\n },\r\n },\r\n}));\r\n\r\nconst Confirmation = ({ form, data, name }) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const { classes } = useStyles();\r\n\r\n const fieldText = (field) => {\r\n if (field?.stringVal) {\r\n return {field?.stringVal};\r\n } else if (field?.multiVal && field?.multiVal?.length > 0) {\r\n return (\r\n field?.multiVal &&\r\n field?.multiVal.map((el, i) => (\r\n \r\n {el}\r\n \r\n ))\r\n );\r\n } else if (field?.intVal) {\r\n return {field?.intVal};\r\n } else {\r\n return -;\r\n }\r\n };\r\n const fields = (field) => {\r\n const getData = data && data?.formFields.filter((el) => el.id === field.id);\r\n if (getData) {\r\n const getValue = form.values.formFields.filter(\r\n (el) => el.id === getData?.[0].id\r\n );\r\n return (\r\n
  • \r\n {getData?.[0].name}\r\n
    \r\n
    {fieldText(getValue?.[0])}
    \r\n
  • \r\n );\r\n }\r\n };\r\n const dataFields = () => {\r\n const type = data?.publicBookingTypes.filter(\r\n (el) => el.id === form.values.publicBookingTypeId\r\n )?.[0];\r\n if (form) {\r\n return Object.entries(form.values).map((field) => {\r\n if (field?.[0] === \"activityId\") {\r\n return (\r\n
  • \r\n
    \r\n {language.Type}\r\n
    \r\n {type?.name}\r\n
    \r\n
    \r\n {language.Length}\r\n
    \r\n \r\n {type?.occasionLengthInMinutes} {language.Minutes}\r\n \r\n
    \r\n
  • \r\n );\r\n }\r\n if (field?.[0] === \"occasion\") {\r\n return (\r\n
  • \r\n
    \r\n {language.Occasion}\r\n
    \r\n {format(new Date(field?.[1]), \"yyyy-MM-dd HH:mm\")}\r\n
    \r\n
  • \r\n );\r\n }\r\n if (field?.[0] === \"numberOfParticipants\") {\r\n return (\r\n
  • \r\n
    \r\n {language.AmountOfParticipants}\r\n
    \r\n {field?.[1]}\r\n
    \r\n
  • \r\n );\r\n }\r\n if (field?.[0] === \"responsibleId\") {\r\n return (\r\n
  • \r\n
    \r\n {language.Responsible}\r\n
    \r\n {name}\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 {language.Summary}\r\n \r\n \r\n {language.CheckSummary}\r\n \r\n
    \r\n
    \r\n
      {dataFields()}
    \r\n
    \r\n \r\n {language.ExtraFields}\r\n \r\n
      {form.values.formFields.map((el) => fields(el))}
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Confirmation;\r\n","import React from \"react\";\r\nimport { Button, createStyles } from \"@mantine/core\";\r\nimport { FaArrowLeft, FaArrowRight } from \"react-icons/fa\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n wrapper: {\r\n display: \"flex\",\r\n width: \"100%\",\r\n justifyContent: \"space-between\",\r\n marginTop: \"1.25rem\",\r\n },\r\n firstButton: {\r\n \"@media screen and (max-width: 768px)\": {\r\n width: \"100% !important\",\r\n },\r\n },\r\n}));\r\nconst ButtonNavigation = ({\r\n activeStep,\r\n onPrevClick,\r\n onNextClick,\r\n isDisabled,\r\n onClick,\r\n}) => {\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n const { classes } = useStyles();\r\n const prevClick = () => {\r\n if (onClick) {\r\n Promise.resolve(onClick()).then(() => onPrevClick());\r\n } else {\r\n onPrevClick();\r\n }\r\n };\r\n const nextClick = () => {\r\n if (onClick) {\r\n Promise.resolve(onClick()).then(() => onNextClick());\r\n } else {\r\n onNextClick();\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {activeStep !== 0 && (\r\n }\r\n onClick={() => {\r\n prevClick();\r\n }}\r\n aria-label={language.GoToPreviousStepBtn}\r\n >\r\n {language.Back}\r\n \r\n )}\r\n {activeStep === 0 &&
    }\r\n {activeStep !== 5 && (\r\n }\r\n onClick={() => {\r\n nextClick();\r\n }}\r\n disabled={isDisabled}\r\n >\r\n {language.NextStep}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default ButtonNavigation;\r\n","import React from \"react\";\r\nimport { Button, createStyles, Text, Title } from \"@mantine/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useNavigate } from \"@reach/router\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {},\r\n titleWrapper: {\r\n marginBottom: \"1rem\",\r\n },\r\n buttonWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n width: \"100%\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"1.5rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n}));\r\nconst Receipt = ({ success, error, onPrevClick }) => {\r\n const { classes } = useStyles();\r\n const { language } = useSelector((state) => ({\r\n language: state.language,\r\n }));\r\n\r\n const navigate = useNavigate();\r\n return (\r\n
    \r\n
    \r\n \r\n {success && language.BookingComplete}\r\n {!success && language.BookingError}\r\n \r\n \r\n {success && language.BookingDescription}\r\n {!success && language.BookingErrorDescription}\r\n \r\n
    \r\n
    \r\n {!success ? (\r\n onPrevClick()}\r\n className={\"primaryButton backButton\"}\r\n size=\"md\"\r\n >\r\n {language.Back}\r\n \r\n ) : (\r\n
    \r\n )}\r\n navigate(\"/ticketshop\")}\r\n className={\"primaryButton backButton\"}\r\n size=\"md\"\r\n >\r\n {language.BackToHomepage}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Receipt;\r\n","import React from \"react\";\r\nimport { createStyles, Radio } from \"@mantine/core\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n label: {\r\n fontSize: \"1rem !important\",\r\n },\r\n description: {\r\n fontSize: \"1rem\",\r\n marginTop: \"0.25rem\",\r\n paddingBottom: \".5rem\",\r\n color: \"black\",\r\n },\r\n radio: {\r\n textAlign: \"left\",\r\n },\r\n}));\r\n\r\nconst RadioGroupField = ({\r\n form,\r\n label,\r\n description,\r\n values,\r\n required,\r\n index,\r\n}) => {\r\n const { classes } = useStyles();\r\n\r\n return (\r\n
    \r\n \r\n {values.map((el) => (\r\n \r\n ))}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default RadioGroupField;\r\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport {\r\n Button,\r\n Checkbox,\r\n Container,\r\n createStyles,\r\n NumberInput,\r\n Stepper,\r\n} from \"@mantine/core\";\r\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\r\nimport {\r\n CREATE_PUBLIC_BOOKING_REQUEST,\r\n GET_PUBLIC_BOOKING_PUBLIC_INFO,\r\n} from \"./publicBookingQuery\";\r\nimport BookingSection from \"./BookingSection\";\r\nimport Login from \"./Login\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Type from \"./Type\";\r\nimport DateTimePicker from \"./DateTimePicker\";\r\nimport { useMediaQuery } from \"@mantine/hooks\";\r\nimport TextField from \"./ExtraForm/TextField\";\r\nimport NumberField from \"./ExtraForm/NumberField\";\r\nimport CheckboxGroupField from \"./ExtraForm/CheckboxGroupField\";\r\nimport Confirmation from \"./Confirmation\";\r\nimport ButtonNavigation from \"./ButtonNavigation\";\r\nimport autoAnimate from \"@formkit/auto-animate\";\r\nimport { useForm } from \"@mantine/form\";\r\nimport Receipt from \"./Receipt\";\r\nimport { IoIosCloseCircleOutline } from \"react-icons/io\";\r\nimport { STATE_CULTURE } from \"../../common/state\";\r\nimport axios from \"axios\";\r\nimport Markdown from \"react-markdown\";\r\nimport RadioGroupField from \"./ExtraForm/RadioGroupField\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {},\r\n introduction: {},\r\n separator: {\r\n marginLeft: \"5px\",\r\n marginRight: \"5px\",\r\n },\r\n accordionWrapper: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n // alignItems: \"center\",\r\n gap: \"1rem\",\r\n marginBottom: \"1.25rem\",\r\n \"& button\": {\r\n width: \"fit-content\",\r\n alignSelf: \"end\",\r\n },\r\n },\r\n typeWrapper: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 1fr 1fr\",\r\n gap: \"1rem\",\r\n padding: 0,\r\n \"@media screen and (max-width: 768px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n },\r\n listStyle: \"none\",\r\n },\r\n extraFieldWrapper: {\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 1fr\",\r\n gap: \"2rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n gridTemplateColumns: \"1fr\",\r\n },\r\n },\r\n confirmationWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n marginTop: \"1rem\",\r\n gap: \"1rem\",\r\n \"& button\": {\r\n alignSelf: \"end\",\r\n },\r\n },\r\n numberInput: {\r\n fontSize: \"1rem !important\",\r\n },\r\n description: {\r\n fontSize: \"1rem !important\",\r\n marginTop: \"-0.3rem\",\r\n paddingBottom: \"0.25rem\",\r\n },\r\n confirmationButtonWrapper: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n \"@media screen and (max-width: 768px)\": {\r\n flexDirection: \"column\",\r\n gap: \"1.5rem\",\r\n \"div button\": {\r\n width: \"100%\",\r\n },\r\n button: {\r\n width: \"100%\",\r\n },\r\n },\r\n },\r\n confirmationCheckbox: {\r\n textAlign: \"left\",\r\n \"@media screen and (max-width: 768px)\": {\r\n padding: \"0 0 0 0.7rem\",\r\n marginTop: \"-0.2rem\",\r\n },\r\n },\r\n}));\r\n\r\nconst PublicBooking = ({ activityId, bookingApiClient, tag, subLabel }) => {\r\n const { user, auth } = useSelector((state) => ({\r\n user: state.oidc.user,\r\n auth: state.oidc.user !== null && !state.oidc.user.expired,\r\n }));\r\n const [introduction, introductionSet] = useState(null);\r\n const [extraFormIsValid, extraFormIsValidSet] = useState([\r\n { id: 99999, isValid: true },\r\n ]);\r\n const [consent, consentSet] = useState(false);\r\n const [active, activeSet] = useState(0);\r\n const [firstFetch, firstFetchSet] = useState(false);\r\n const [queryData, queryDataSet] = useState(null);\r\n const { config, culture, language } = useSelector((state) => ({\r\n config: state.config,\r\n culture: state.cookies[STATE_CULTURE],\r\n language: state.language,\r\n }));\r\n\r\n const form = useForm({\r\n initialValues: {\r\n activityId: \"\",\r\n responsibleId: \"\",\r\n publicBookingTypeId: \"\",\r\n occasion: \"\",\r\n numberOfParticipants: 0,\r\n formFields: [],\r\n },\r\n });\r\n\r\n const { data, loading, error } = useQuery(GET_PUBLIC_BOOKING_PUBLIC_INFO, {\r\n client: bookingApiClient,\r\n variables: { activityId },\r\n fetchPolicy: \"cache-and-network\",\r\n skip: firstFetch === false,\r\n onCompleted: () => {\r\n firstFetchSet(false);\r\n queryDataSet(data);\r\n },\r\n });\r\n\r\n const [\r\n publicBookingRequest,\r\n { data: mutationData, loading: mutationLoading, error: mutationError },\r\n ] = useMutation(CREATE_PUBLIC_BOOKING_REQUEST, {\r\n client: bookingApiClient,\r\n });\r\n\r\n useEffect(() => {\r\n if (activityId) {\r\n firstFetchSet(true);\r\n }\r\n form.reset();\r\n activeSet(0);\r\n consentSet(false);\r\n }, [activityId, window.location.pathname]);\r\n\r\n useEffect(() => {\r\n if (activityId) {\r\n form.setFieldValue(\"activityId\", activityId);\r\n axios\r\n .get(\r\n `${process.env.PUBLIC_URL}/ee-static/shop/${config.shopName}/Texts/public-booking-${activityId}.${culture}.md`\r\n )\r\n .then((res) => introductionSet(res.data))\r\n .catch(() => introductionSet(\"\"));\r\n }\r\n }, [config, culture, activityId]);\r\n\r\n const handleSubmit = (values) => {\r\n const getStringifiedFields = values?.formFields.reduce((acc, curr) => {\r\n acc.push(JSON.stringify(curr));\r\n return acc;\r\n }, []);\r\n\r\n publicBookingRequest({\r\n variables: {\r\n activityId: values.activityId,\r\n numberOfParticipants: values.numberOfParticipants,\r\n occasion: values.occasion,\r\n publicBookingTypeId: values.publicBookingTypeId,\r\n responsibleId: user?.profile?.id ? user?.profile?.id : \"0\",\r\n formFields: getStringifiedFields,\r\n },\r\n });\r\n };\r\n\r\n const parent = useRef(null);\r\n const stepRef = useRef(null);\r\n const matches = useMediaQuery(\"(max-width: 768px)\");\r\n\r\n const { classes } = useStyles();\r\n\r\n const formFields = (field, index) => {\r\n switch (field.fieldType) {\r\n case \"STRING\":\r\n return (\r\n \r\n );\r\n break;\r\n case \"TEXT\":\r\n return (\r\n \r\n );\r\n break;\r\n case \"INTEGER\":\r\n return (\r\n \r\n );\r\n break;\r\n case \"SINGLE_SELECT\":\r\n return (\r\n \r\n );\r\n break;\r\n case \"MULTI_SELECT\":\r\n return (\r\n \r\n );\r\n break;\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const nextStep = () => activeSet((current) => current + 1);\r\n const prevStep = () => activeSet((current) => current - 1);\r\n\r\n useEffect(() => {\r\n parent.current && autoAnimate(parent.current);\r\n }, [parent]);\r\n\r\n useEffect(() => {\r\n stepRef.current &&\r\n stepRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n }, [active]);\r\n\r\n const getMinMaxParticipants = useMemo(() => {\r\n const type = queryData?.publicBookingPublicInfo?.publicBookingTypes.filter(\r\n (el) => el.id === form.values.publicBookingTypeId\r\n );\r\n return type;\r\n }, [queryData, form]);\r\n\r\n const type = (item) => {\r\n if (item.fieldType === \"STRING\") {\r\n return { id: item.id, stringVal: null };\r\n }\r\n if (item.fieldType === \"TEXT\") {\r\n return { id: item.id, stringVal: null };\r\n }\r\n if (item.fieldType === \"INTEGER\") {\r\n return { id: item.id, intVal: null };\r\n }\r\n if (item.fieldType === \"SINGLE_SELECT\") {\r\n return { id: item.id, stringVal: null };\r\n }\r\n if (item.fieldType === \"MULTI_SELECT\") {\r\n return { id: item.id, multiVal: [] };\r\n }\r\n };\r\n const insertListItems = () => {\r\n if (form.values.formFields.length === 0) {\r\n return queryData?.publicBookingPublicInfo?.formFields.map((el) =>\r\n form.insertListItem(\"formFields\", type(el))\r\n );\r\n }\r\n };\r\n\r\n const checkData = (value) => {\r\n if (value === undefined) {\r\n return true;\r\n } else if (value === null) {\r\n return true;\r\n } else if (value?.length === 0) {\r\n return true;\r\n } else if (value) {\r\n return false;\r\n }\r\n };\r\n\r\n const checkMandatory = (fields) => {\r\n const isMandatory =\r\n form.values.formFields.length > 0 &&\r\n fields &&\r\n fields.length > 0 &&\r\n fields.reduce((acc, curr) => {\r\n if (curr.fieldConstraints.isMandatory) {\r\n const getFormData = form.values.formFields.filter(\r\n (el) => el.id === curr.id\r\n );\r\n if (getFormData?.[0]) {\r\n acc.push(getFormData?.[0]);\r\n }\r\n }\r\n return acc;\r\n }, []);\r\n\r\n const check =\r\n isMandatory &&\r\n isMandatory.some((el) =>\r\n el.hasOwnProperty(\"intVal\")\r\n ? checkData(el.intVal)\r\n : el.hasOwnProperty(\"stringVal\")\r\n ? checkData(el.stringVal)\r\n : checkData(el.multiVal)\r\n );\r\n\r\n const checkExtraForm = extraFormIsValid.filter(\r\n (el) => el.isValid === false\r\n );\r\n if (checkExtraForm.length === 0) return check;\r\n return true;\r\n };\r\n\r\n const sortedTypes = useMemo(() => {\r\n if (\r\n queryData &&\r\n queryData?.publicBookingPublicInfo?.publicBookingTypes.length > 0\r\n ) {\r\n const typesCopy = [\r\n ...queryData?.publicBookingPublicInfo?.publicBookingTypes,\r\n ];\r\n return typesCopy.sort((a, b) => {\r\n if (a.name.toLowerCase() > b.name.toLowerCase()) return 1;\r\n if (a.name.toLowerCase() < b.name.toLowerCase()) return -1;\r\n else return 0;\r\n });\r\n }\r\n return [];\r\n }, [queryData]);\r\n\r\n const loggedInUser = `${language.LoggedInAs} ${user?.profile?.given_name} ${user?.profile?.family_name}`;\r\n const loggedOutUser = `${language.Not_Logged_In}`;\r\n\r\n if (!activityId) return null;\r\n return (\r\n \r\n {\r\n handleSubmit(values);\r\n nextStep();\r\n })}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n 0}\r\n aria-label={`${language.Step} ${1}, ${language.Log_On}`}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n 1}\r\n disabled={active < 1}\r\n aria-label={`${language.Step} ${2}, ${language.ChooseType}`}\r\n >\r\n
    \r\n \r\n
      \r\n {sortedTypes.map((el, i) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n\r\n 2}\r\n disabled={active < 2}\r\n aria-label={`${language.Step} ${3}, ${language.ChooseDateHeader}`}\r\n >\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n\r\n 3}\r\n disabled={active < 3}\r\n aria-label={`${language.Step} ${4}, ${language.BasicInformation}`}\r\n >\r\n
    \r\n \r\n \r\n \r\n insertListItems()}\r\n />\r\n
    \r\n \r\n 4}\r\n disabled={active < 4}\r\n aria-label={`${language.Step} ${5}, ${language.ExtraFields}`}\r\n >\r\n
    \r\n \r\n
    \r\n {queryData &&\r\n queryData?.publicBookingPublicInfo?.formFields\r\n .sort((a, b) => a.order - b.order)\r\n .map((el, i) =>
    {formFields(el, i)}
    )}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n 5}\r\n disabled={active < 5}\r\n color={\r\n mutationData?.publicBookingRequest?.success === false\r\n ? \"#ef4444 !important\"\r\n : mutationData?.publicBookingRequest?.success &&\r\n \"#16a34a !important\"\r\n }\r\n aria-label={`${language.Step} ${6}, ${language.ConfirmBooking}`}\r\n completedIcon={\r\n mutationData?.publicBookingRequest?.success === false && (\r\n \r\n )\r\n }\r\n >\r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n consentSet(e.currentTarget.checked)}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n {language.SendBooking}\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\nexport default PublicBooking;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport PageLayout from \"../../components/Styles/PageLayout\";\r\nimport PageContent from \"../../components/Styles/PageContent\";\r\nimport { Button, Container, createStyles, Text, Title } from \"@mantine/core\";\r\nimport PublicBooking from \"../../components/PublicBooking\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useNavigate } from \"@reach/router\";\r\nimport slugify from \"../../components/common/slugify\";\r\nimport { ApolloClient, HttpLink, InMemoryCache } from \"apollo-boost\";\r\n\r\nconst useStyles = createStyles((theme) => ({\r\n container: {\r\n marginTop: \"-0rem\",\r\n \"@media screen and (max-width: 768px)\": {\r\n marginTop: 0,\r\n },\r\n },\r\n button: {\r\n border: \"1px solid #8A8C93\",\r\n },\r\n buttonWrapper: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"start\",\r\n padding: \"1rem\",\r\n maxWidth: \"100%\",\r\n },\r\n}));\r\n\r\nconst PublicBookingPage = ({ id }) => {\r\n const [activity, activitySet] = useState(null);\r\n const { config, language } = useSelector((state) => ({\r\n config: state.config,\r\n language: state.language,\r\n }));\r\n const { classes } = useStyles();\r\n const navigate = useNavigate();\r\n\r\n const bookingHttpLink = new HttpLink({\r\n uri: `${config.bookingApiUri}/graphql`,\r\n });\r\n\r\n const bookingApiClient = new ApolloClient({\r\n link: bookingHttpLink,\r\n cache: new InMemoryCache(),\r\n });\r\n\r\n useEffect(() => {\r\n const publicBookingId = config?.publicBookingConfigurator.filter(\r\n (el) => slugify(el.name) === slugify(id)\r\n )?.[0];\r\n if (publicBookingId) {\r\n activitySet(publicBookingId);\r\n }\r\n }, [window.location.pathname]);\r\n\r\n if (!config?.bookingApiUri || !config?.usePublicBooking || !activity) {\r\n return (\r\n \r\n \r\n \r\n \r\n {language.CouldNotFindEventHeader}\r\n \r\n \r\n {language.CouldNotFindEventText}\r\n \r\n navigate(\"/ticketshop\")}\r\n className=\"mantine-Primary-btn backButton\"\r\n variant=\"filled\"\r\n size=\"md\"\r\n radius=\"sm\"\r\n color=\"indigo\"\r\n >\r\n {language.BackToHomepage}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n \r\n navigate(-1)}\r\n >\r\n {language.Back}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PublicBookingPage;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Router, Redirect } from \"@reach/router\";\r\nimport Cart from \"./Pages/CartPage\";\r\nimport LandingPage from \"./Pages/LandingPage\";\r\nimport Product from \"./Pages/ProductPage\";\r\nimport Event from \"./Pages/EventPage\";\r\nimport AllProducts from \"./Pages/AllProductsPage\";\r\nimport AllEvents from \"./Pages/AllEventsPage\";\r\nimport SitePage from \"./Pages/SitePage\";\r\nimport User from \"./Pages/UserPage\";\r\nimport TicketPage from \"./Pages/TicketPage\";\r\nimport MoveOccasionsPage from \"./Pages/MoveOccasionsPage\";\r\nimport ArticleBookingPage from \"./Pages/ArticleBookingPage\";\r\nimport ScrollToTop from \"./components/common/ScrollToTop\";\r\nimport PublicBookingPage from \"./Pages/PublicBookingPage\";\r\n\r\nconst Routes = ({ setPosition }) => {\r\n const { auth, config } = useSelector((state) => ({\r\n auth: state.oidc.user !== null && !state.oidc.user.expired,\r\n config: state.config,\r\n }));\r\n\r\n const Private = ({ component: Component, path }) =>\r\n auth ? (\r\n \r\n ) : (\r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n {config && !config.useLandingPage && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Routes;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useLocation } from \"@reach/router\";\r\nimport { useSelector } from \"react-redux\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport SiteHeading from \"../common/SiteHeading\";\r\nimport Footer from \"../common/Footer\";\r\nimport Routes from \"../../routes\";\r\nimport { ref } from \"airbnb-prop-types\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n appContent: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n // height: (p) =>\r\n // p.headerHeight\r\n // ? p.useNav\r\n // ? `${theme.height - p.headerHeight - 64}px`\r\n // : `${theme.height - p.headerHeight}px`\r\n // : p.useNav\r\n // ? `${theme.height - 128}px`\r\n // : `${theme.height - 64}px`,\r\n // overflowY: \"auto\",\r\n // \"@media(min-width: 768px)\": {\r\n // overflowY: \"scroll\",\r\n // \"-webkit-overflow-scrolling\": \"touch\",\r\n // },\r\n // height: \"auto\",\r\n // \"@media(max-width: 667px)\": {\r\n // height: (p) =>\r\n // p.headerHeight\r\n // ? `${theme.height - p.headerHeight}px`\r\n // : `${theme.height - 64}px`,\r\n // },\r\n },\r\n}));\r\n\r\nconst AppContent = () => {\r\n const location = useLocation();\r\n const [scrollPos, setScrollPos] = useState({});\r\n const [height, setHeight] = useState();\r\n const [totalHeight, setTotalHeight] = useState();\r\n const contentRef = React.createRef();\r\n const config = useSelector((state) => state.config);\r\n const classes = useStyles({\r\n useNav: config.useNav,\r\n headerHeight: config.headerHeight,\r\n });\r\n\r\n useEffect(() => {\r\n let calc = `calc(100vh - ${\r\n config?.headerHeight ? config?.headerHeight : \"60px\"\r\n }px)`;\r\n setTotalHeight(calc);\r\n }, [config]);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n setHeight(ref.current.offsetHeight);\r\n }\r\n }, [ref.current]);\r\n\r\n useEffect(() => {\r\n if (Object.keys(scrollPos).includes(location.pathname)) {\r\n contentRef.current.scrollTop = scrollPos[location.pathname];\r\n } else {\r\n contentRef.current.scrollTop = 0;\r\n }\r\n }, [scrollPos, contentRef, location.pathname]);\r\n\r\n const setPosition = () => {\r\n const page = location.pathname;\r\n const position = contentRef.current.scrollTop;\r\n setScrollPos({ [page]: position });\r\n };\r\n return (\r\n \r\n
    \r\n {!config.showSiteHeadingOnlyOnLanding && }\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default AppContent;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Busy from \"../components/common/busy\";\r\n\r\n//Need to wait for oidc.isLoadingUser to go from true to false before querying the GraphQL endpoint.\r\n//Also need to prevent further state changes in oidc.isLoadingUser to propagate to the page and thus\r\n//show the spinner once the state has been set.\r\nconst OidcClientInitializer = ({ children }) => {\r\n const [isInitializing, setIsInitializing] = useState(true);\r\n const finalState = { isLoadingUser: false };\r\n\r\n const { isLoadingUser } = useSelector((state) => {\r\n if (isInitializing === true) {\r\n return { isLoadingUser: state?.oidc?.isLoadingUser };\r\n }\r\n\r\n return finalState;\r\n });\r\n\r\n useEffect(() => {\r\n if (isLoadingUser === false && isInitializing === true) {\r\n setIsInitializing(false);\r\n }\r\n }, [isLoadingUser, isInitializing]);\r\n\r\n if (isInitializing === true) {\r\n return ;\r\n }\r\n\r\n return <> {children} ;\r\n};\r\n\r\nexport default OidcClientInitializer;\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport Header from \"./components/Header\";\r\nimport Nav from \"./components/common/Nav\";\r\nimport Cart from \"./components/cart\";\r\nimport SaleProvider from \"./components/common/saleProvider\";\r\nimport CookieBanner from \"./components/common/cookieBanner\";\r\nimport Toast from \"./components/common/toast\";\r\nimport Alert from \"./components/common/alert\";\r\nimport DataProvider from \"./components/common/dataProvider\";\r\nimport AppLayout from \"./components/Styles/AppLayout\";\r\nimport AppContent from \"./components/Styles/AppContent\";\r\nimport OidcClientInitializer from \"./common/oidcClientInitializer\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { STATE_CONSENT, STATE_CULTURE } from \"./common/state\";\r\nimport axios from \"axios\";\r\n\r\nconst App = () => {\r\n const culture = useSelector((state) => state.cookies[STATE_CULTURE]);\r\n const consent = useSelector((state) => state.cookies[STATE_CONSENT]);\r\n const config = useSelector((state) => state.config);\r\n const [newConsent, setNewConsent] = useState([]);\r\n\r\n useEffect(() => {\r\n let data = [];\r\n data = consent.toString();\r\n setNewConsent(data.length > 0 && data.split(\",\"));\r\n }, [consent]);\r\n\r\n useEffect(() => {\r\n if (newConsent[0] === \"true\") {\r\n let tgm = window.document.createElement(\"script\");\r\n tgm.setAttribute(\"type\", \"text/javascript\");\r\n tgm.setAttribute(\r\n \"src\",\r\n `${process.env.PUBLIC_URL}/ee-static/shop/${config.shopName}/Scripts/tgm.js`\r\n );\r\n window.document.getElementsByTagName(\"head\")[0].appendChild(tgm);\r\n }\r\n }, [newConsent]);\r\n\r\n // Add Favicon\r\n useMemo(() => {\r\n let icon = [\r\n `${process.env.PUBLIC_URL}/ee-static/shop/${config.shopName}/favicon.ico`,\r\n `${process.env.PUBLIC_URL}/favicon.ico`,\r\n ];\r\n \r\n const getIcon = (arr, index) => {\r\n return axios.get(arr[index]).catch((err) => {\r\n if (index < arr.length - 1) {\r\n return getIcon(arr, index + 1);\r\n }\r\n throw err;\r\n });\r\n };\r\n \r\n getIcon(icon, 0)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n let link = window.document.createElement(\"link\");\r\n link.href = response.request.responseURL;\r\n link.rel = \"shortcut icon\";\r\n window.document.getElementsByTagName(\"head\")[0].appendChild(link);\r\n }\r\n })\r\n .catch((err) => console.log(err));\r\n },[])\r\n\r\n\r\n // Set HTML language\r\n useEffect(() => {\r\n document.documentElement.lang = culture.split(\"-\")[0];\r\n }, [culture]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {config?.useNewHeader ? \"\" :