{"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/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/ArticleList.jsx","components/Event/EventV2/ArticlePicker.jsx","components/Event/EventV2/TimePicker.jsx","components/Page/productGroup.js","Pages/AllProductsPage/index.js","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","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","container","left","transform","flexDirection","primary","main","outline","progress","marginTop","backdrop","Busy","props","busy","busyText","Modal","BackdropProps","open","disableAutoFocus","CircularProgress","colorPrimary","size","Typography","DataContext","hour","minute","toISOString","until","add","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","query","SaleContext","NoSaleId","sale","WithSaleId","ctx","saleId","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","li","internalLink","layoutId","obj","ticketConfiguratorFilter","getTicketLang","articleBookingConfiguratorFilter","getBookingLang","publicBooking","onMouseEnter","whileFocus","documentElement","clientWidth","onMouseLeave","aria-live","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","addMod","addModification","removeArticle","increaseQuantity","decreaseQuantity","checkout","nextVersion","saleReducer","s","readyState","isError","addToCartTracking","dataLayer","ecommerce","currencyCode","actionButton","actionWrapper","QuantityInput","rdxDispatch","Group","spacing","ActionIcon","canChangeQuantity","isGiftCertificate","DecreaseQuantity","NumberInput","Quantity","hideControls","max","min","step","styles","input","pointerEvents","AddQuantity","trashIcon","TrashIcon","itemWrapper","gap","rowWrapper","leftWrapper","textWrapper","textSmall","fontStyle","rightWrapper","price","loadingWrapper","loader","bottom","hideAriaLive","DrawerItem","loadingSet","allotmentRemaining","allotmentRemainingSet","remove","reducedItem","pricePerPiece","removeFromCartTracking","getTranslation","getStock","allotment","occasions","time","occasion","remaining","Loader","withPlaceholder","radius","fit","Grid","Col","ticketOwners","Removed","trashButton","RemoveProduct","totalPriceInclVat","my","DrawerList","itemsSet","shippingArticle","useCallback","filterOutShipping","every","damping","stiffness","AlertIcon","x1","y1","x2","y2","alert","paddingBottom","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","parseFloat","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","format","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","flexWrap","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_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","ticket","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","sx","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","Form_Error_InvalidLength","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","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","ticketData","chosenOccasion","availableOccasions","spring","calculateQuantity","timeData","checkIfAvailable","newProduct","timeOccasions","newCart","findAllotment","findIndex","splice","removeAllotment","justify","Stack","flexBasis","ArticleList","cartTotalSet","isLoadingSet","removeChar","replaceAll","total","calcCartValue","reduceCart","ErrorMsgCouldNotAddToCart","addedToCartTimer","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","mx","ChooseTimeHeader","ChooseTimeDescription","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","Skeleton","visible","ImageFileName","EventAltLabel","Space","h","ChooseDateHeader","ChooseDateDescription","EventPage","useNewEventPage","CouldNotFindEventHeader","CouldNotFindEventText","getDisplayPrice","filteredArticles","productName","isEvent","setPosition","filterGiftCard","CardMedia","isGroup","ListRow","eventCalendarLinks","articleBookingLinks","getCalendarBookingLinks","skeleton","skeletonTextWrapper","ListItemV2","priceSet","clicked","clickedSet","trackProductData","rating","CardItemV2","pb","m","cardList","justifyItems","ProductList","originalPage","eventCalendarSet","isCardList","articleListType","ec","ProductGroup","Categories","ArticleFilter","availableGroups","setAvailableGroups","showProductGroupFilter","groupName","prev","handleChange","originalName","entries","category","translateProductGroup","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","Boolean","element","Allotment_Occasions","listContainer","largeScreen","smallScreen","Index","setFilter","listImages","getEventConfig","filterWrapper","datePicker","thumb","dragging","search","EventFilter","priceVal","priceValSet","priceBeforeChange","priceBeforeChangeSet","dateSet","initialValuesSet","newValues","newValuesSet","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","markdown","allEventsListType","alignContent","skeletonWrapper","EventWrapper","itemsArrSet","AllEventsV2","getPriceRange","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","setCartTotal","optionAllotmentsRemaining","setOptionAllotmentsRemaining","setOptions","disabledBtn","setDisabledBtn","timeSelected","setTimeSelected","addedAllotment","setAddedAllotment","fullAllotment","setFullAllotment","allotmentItemOutOfStock","setAllotmentItemOutOfStock","changeTimeBtnRef","optionAllotmentFilter","remainingFilter","mapArticles","optionArticleFilter","optionArticleId","sortByPrice","Set","sortSelected","commaIndex","lastIndexOf","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","slice","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","PrimaryBtn","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","addYears","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","centered","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","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.feeb0975.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 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 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\";\nimport { useSelector } from \"react-redux\";\nimport { useQuery } from \"@apollo/react-hooks\";\nimport gql from \"graphql-tag\";\nimport { RefetchSaleQuery } from \"./refetch\";\nimport {\n STATE_CULTURE,\n STATE_CURRENCY,\n STATE_SALE_ID,\n} from \"../../common/state\";\n\nconst query = gql`\n query SaleQuery(\n $saleId: Guid\n $posId: Int\n $culture: String\n $currency: String\n ) {\n sale(\n saleId: $saleId\n posId: $posId\n culture: $culture\n currency: $currency\n ) {\n id\n version\n isActive\n isCreated\n sumInclVat\n itemQuantity\n firstArticleExpiresAt\n items {\n expires\n key\n quantity\n totalPriceInclVat\n information\n canRemove\n canChangeQuantity\n pricePerPieceInclVat\n type\n pricePerPiece {\n amountInclVat\n }\n totalPrice {\n amountInclVat\n }\n article {\n name\n plu\n imageFilename\n priceInclVat\n translation {\n culture\n name\n description\n }\n isAllotted\n isPersonalTicket\n isAnonymousTicket\n isFee\n isProduct\n overrideStartDate\n }\n ticketOwners {\n name\n }\n occasion\n allotmentId\n }\n }\n }\n`;\n\nexport const SaleContext = React.createContext();\n\nconst NoSaleId = (props) => {\n return (\n \n {props.children}\n \n );\n};\n\nconst WithSaleId = (props) => {\n const { culture, currency, saleId, posId, version } = props.ctx;\n\n const { data, error, refetch } = useQuery(query, {\n variables: {\n saleId,\n posId,\n currency,\n culture,\n },\n fetchPolicy: \"network-only\",\n });\n\n if (error)\n return (\n \n {props.children}\n \n );\n const sale = data && data.sale;\n return (\n <>\n \n \n {props.children}\n \n \n );\n};\n\nconst SaleProvider = (props) => {\n const ctx = useSelector((state) => ({\n version: state.sale.version,\n culture: state.cookies[STATE_CULTURE],\n currency: state.cookies[STATE_CURRENCY],\n saleId: state.cookies[STATE_SALE_ID],\n }));\n if (!ctx.saleId) return ;\n return ;\n};\n\nexport default SaleProvider;\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\";\nimport { useNavigate } from \"@reach/router\";\nimport clsx from \"clsx\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\nimport { useSelector } from \"react-redux\";\nimport { SaleContext } from \"../common/saleProvider\";\nimport CountdownContent from \"./CountdownContent\";\nimport Button from \"@material-ui/core/Button\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport { Context, OPEN_CART } from \"../../context\";\n\nconst useStyles = makeStyles((theme) => ({\n countDownText: {\n marginLeft: \"4px\",\n color: \"inherit\",\n },\n}));\n\nconst TimerWarning = (props) => {\n const forceReload = (isOpenModal) => {\n closeModal(isOpenModal);\n window.location.reload();\n };\n\n const { isOpenModal, closeModal, language } = props;\n return (\n \n \n {language ? language.Information : \"Information\"}\n \n \n {language.Article_Expired\n ? language.Article_Expired\n : \"Reservationstiden för ditt köp har utgått och din varukorg har uppdaterats. Kontrollera din varukorg och försök igen.\"}\n \n \n \n \n \n );\n};\n\nconst CountdownContainer = ({ changeBackground }) => {\n const classes = useStyles();\n const { dispatch } = useContext(Context);\n const {\n state: { sale },\n } = useContext(SaleContext);\n const navigate = useNavigate();\n\n const { config, language } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n }));\n const [itemQuantity, setItemQuantity] = useState(0);\n const [isOpenModal, setIsOpenModal] = useState(false);\n\n useEffect(() => {\n if (sale && sale?.itemQuantity) {\n setItemQuantity(sale.itemQuantity);\n } else {\n setItemQuantity(0);\n }\n }, [sale]);\n\n const isAllotment = sale?.items.some((el) => el.allotmentId);\n\n if (!isAllotment) return null;\n if (isOpenModal) {\n return (\n \n );\n } else {\n if (itemQuantity > 0) {\n return (\n \n config?.useCartDrawer\n ? dispatch({ type: OPEN_CART })\n : navigate(`${process.env.PUBLIC_URL}/cart`)\n }\n disabled={sale.itemQuantity < 1}\n classes={{ disabled: classes.disabled }}\n aria-label={language.OpenCart}\n style={{\n width: \"fit-content\",\n height: \"fit-content\",\n padding: 0,\n marginRight: \"1rem\",\n marginBottom: \"0.2rem\",\n }}\n >\n \n \n );\n } else {\n return null;\n }\n }\n};\n\nexport default CountdownContainer;\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\";\nimport slugify from \"../../components/common/slugify\";\nimport { getData } from \"../../components/Page/util\";\n\nconst makeId = () => uuid.v4();\n\nconst getArticlesFromTags = (tags) => {\n if (!tags || tags.length < 1) return [];\n let articles = [];\n let articleIds = [];\n tags.forEach((t) =>\n t.articles.forEach((a) => {\n if (!articleIds.includes(a.id)) {\n articleIds = [...articleIds, a.id];\n articles = [...articles, a];\n }\n })\n );\n return articles;\n};\n\nexport const extendProduct = (p, a = {}, config, imageUri) => {\n const { imageFolderUrl } = config;\n const productGroupConfig = config.productGroupConfig.find(\n (x) => x.name === p.name\n );\n if (productGroupConfig?.useGroupsAsItems && !p.allProductsShow) return null;\n if (productGroupConfig?.useGroupsAsItems && !a.name) {\n console.log(`no published articleGroup with name ${p.name}`);\n return null;\n }\n if (!!a.id && !!p.isModification) return null;\n // If its a product that only exists in config\n const plu = a.plu ? a.plu : p.plu;\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n return {\n id: a.id ? a.id : makeId(),\n name: a.name ? a.name : p.name,\n plu,\n imageUri,\n images: imageUri\n ? [`${uri}/articleimage/${imageUri}`]\n : p.images\n ? p.images.map(\n (img) => `${process.env.PUBLIC_URL}${imageFolderUrl}${img}`\n )\n : undefined,\n products: a.articles ? a.articles : null,\n displayPrice: a.priceInclVat,\n slug: productGroupConfig?.useGroupsAsItems\n ? `products/${slugify(p.name)}`\n : `products/${plu}`,\n isInfo: p?.isInfo || false,\n allProductsSort: p.allProductsSort,\n };\n};\n\nexport const extendArticleFromApi = (a, config, imageUri, culture) => {\n if (!a) return null;\n const plu = a.plu;\n const name =\n a.translation.find((t) => t.culture === culture)?.name ||\n a.translation.find((t) => t.culture === \"sv-SE\")?.name ||\n `Product Name (${plu})`;\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n return {\n id: a.id ? a.id : makeId(),\n name,\n plu,\n imageUri,\n images: imageUri ? [`${uri}/articleimage/${imageUri}`] : undefined,\n displayPrice: a.priceInclVat,\n slug: `products/${plu}`,\n inStock: a.inStock,\n };\n};\n\nexport const getAllProducts = (data, config, culture) => {\n if (!data) return [];\n let products = [];\n let unpublished = [];\n let publishedArticles = getArticlesFromTags(data.tags);\n if (!data || !config) return [];\n const { productConfig, productGroupConfig } = config;\n const { dataProductPlus, dataTags } = getData(data);\n productGroupConfig.forEach((g) => {\n if (g.useGroupsAsItems) {\n if (!dataTags.includes(g.name)) {\n unpublished = [...unpublished, { name: g.name, type: \"productGroup\" }];\n return;\n }\n const tag = data.tags.find((t) => t.name === g.name);\n const extendedProduct = extendProduct(g, tag, config);\n products = extendedProduct ? [...products, extendedProduct] : products;\n }\n });\n\n productConfig.forEach((p) => {\n if (\n !productGroupConfig.find(\n (x) => x.useGroupsAsItems && p.name.includes(x.name)\n )\n ) {\n let productConfig = config.productConfig.find((x) => x.plu === p.plu);\n let value =\n productConfig.isModification !== undefined\n ? productConfig.isModification\n : false;\n if (!dataProductPlus.includes(p.plu) && !value) {\n unpublished = [\n ...unpublished,\n { plu: p.plu, name: p.name, type: \"product\" },\n ];\n return;\n }\n const article = publishedArticles.find((a) => a.plu === p.plu);\n const imageUri =\n article &&\n data.articles.find((a) => a.plu === article.plu)?.imageFilename;\n const extendedProduct = extendProduct(p, article, config, imageUri);\n products = extendedProduct ? [...products, extendedProduct] : products;\n }\n });\n\n data.articles.forEach((article) => {\n if (products.some((p) => p.id === article.id)) return;\n const imageUri =\n article && data.articles.find((a) => a.plu === article.plu).imageFilename;\n const extendedProduct = extendArticleFromApi(\n article,\n config,\n imageUri,\n culture\n );\n products = extendedProduct ? [...products, extendedProduct] : products;\n });\n\n return products.sort((a, b) => a.allProductsSort - b.allProductsSort);\n};\n\nexport const extendPage = (data, config) => {\n return {\n name: \"Alla Produkter\",\n productGroups: data.tags\n // Loops over all products groups (tags) from GraphQL\n .map((t) => {\n const groupConfig = config.productGroupConfig.find(\n (g) => g.name === t.name\n );\n const products = t.articles\n // Loops over each product under each product group\n .map((a) => {\n const product = config.productConfig.find((p) => p.plu === a.plu);\n const imageUri =\n product &&\n data.articles.find((article) => article.plu === product.plu)\n ?.imageFilename;\n // If article exists in config, return an extended object\n return product ? extendProduct(product, a, config, imageUri) : a;\n });\n return { ...t, ...groupConfig, products };\n })\n .sort((a, b) => a.allProductsSort - b.allProductsSort),\n };\n};\n","import React, { useContext, useEffect, useState } from \"react\";\nimport { navigate } from \"@reach/router\";\nimport { GrFormClose } from \"react-icons/gr\";\nimport { useSelector } from \"react-redux\";\nimport slugify from \"../slugify\";\nimport { DataContext } from \"../dataProvider\";\nimport Placeholder from \"../../../images/placeholder.svg\";\nimport { getAllProducts } from \"../../../Pages/AllProductsPage/util\";\nimport { motion } from \"framer-motion\";\nimport _ from \"lodash\";\n\nconst SearchResult = ({\n toggleSearch,\n setToggleSearch,\n searchValue,\n setSearchValue,\n articles,\n allotments,\n loading,\n setLoading,\n culture,\n}) => {\n const [result, setResult] = useState([]);\n const [newResult, setNewResult] = useState([]);\n const [toggleAllotment, setToggleAllotment] = useState(true);\n const [toggleArticle, setToggleArticle] = useState(true);\n const [extensionArticles, setExtensionArticles] = useState(null);\n const [loadingResults, setLoadingResults] = useState(true);\n const { config, language } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n }));\n const { data } = useContext(DataContext);\n const products = getAllProducts(data, config, culture);\n\n useEffect(() => {\n const filter = config?.productConfig.filter(\n (el) => el?.isModification === true\n );\n if (filter?.length > 0) {\n setExtensionArticles(filter);\n }\n }, [searchValue]);\n\n useEffect(() => {\n if (\n (allotments.length > 0 || articles.length > 0) &&\n searchValue.length > 0\n ) {\n let allAllotments = allotments;\n let articleBooking = config?.articleBookingConfigurator;\n let eventCalendar = config?.ticketConfigurator;\n const reduceAllotmentsToId =\n eventCalendar &&\n eventCalendar?.reduce((acc, curr) => {\n acc.push({\n id: curr.allotmentId,\n optionAllotmentId: curr.optionAllotmentId,\n });\n\n return acc;\n }, []);\n\n let arr = [];\n articleBooking &&\n articleBooking.forEach((el) => {\n el.tickets.forEach((ele) => {\n arr.push({\n id: ele.articleId,\n });\n });\n });\n const flatArr =\n articleBooking &&\n arr &&\n arr.reduce((acc, curr) => {\n acc.push(curr?.id);\n return acc;\n }, []);\n\n const reduceArticleBookingToId =\n flatArr &&\n flatArr?.reduce((a, b) => {\n return a.concat(b);\n });\n\n let flattenedArr =\n reduceAllotmentsToId &&\n reduceAllotmentsToId.reduce((a, b) => {\n if (b.id) {\n a.push(b.id);\n }\n if (b.optionAllotmentId) {\n a.push(b.optionAllotmentId);\n }\n return a;\n }, []);\n\n const removeEmptyArr =\n flattenedArr && flattenedArr.filter((el) => el.length).flat();\n\n let reducedArr;\n if (reduceArticleBookingToId || removeEmptyArr) {\n reducedArr = [].concat(removeEmptyArr, reduceArticleBookingToId);\n }\n setLoading(true);\n setLoadingResults(true);\n let addCalendar = [];\n if (reducedArr) {\n let newAllotments = allotments.filter(\n (el) => !reducedArr.includes(el.id)\n );\n\n if (config?.ticketConfigurator || config?.articleBookingConfigurator) {\n let calendarAllotments = config?.ticketConfigurator;\n let articleBookingAllotments = config?.articleBookingConfigurator;\n // addCalendar = newAllotments.concat(calendarAllotments);\n addCalendar = newAllotments.concat(\n calendarAllotments,\n articleBookingAllotments\n );\n } else {\n addCalendar = newAllotments;\n }\n } else {\n addCalendar = allotments;\n }\n\n const articleFilter = articles.filter((x) => {\n let data = x.translation.some((y) =>\n y?.name.toLowerCase().includes(searchValue.toLowerCase())\n );\n return data;\n });\n\n const removeDisabledAllotments = addCalendar.filter(\n (el) => !el?.disabledNav\n );\n\n const allotmentFilter = removeDisabledAllotments.filter((x) => {\n let data = x?.translation\n ? x?.translation.some((y) =>\n y?.name.toLowerCase().includes(searchValue.toLowerCase())\n )\n : x?.translations.some((y) =>\n y?.name.toLowerCase().includes(searchValue.toLowerCase())\n );\n return data;\n });\n\n if (articleFilter.length > 0 || allotmentFilter.length > 0) {\n if (articleFilter.length > 0 && allotmentFilter.length > 0) {\n setResult(articleFilter.concat(allotmentFilter));\n } else if (allotmentFilter.length > 0 && articleFilter.length === 0) {\n setResult(allotmentFilter);\n } else if (articleFilter.length > 0 && allotmentFilter.length === 0) {\n setResult(articleFilter);\n }\n } else {\n setResult(null);\n }\n setLoading(false);\n }\n }, [searchValue]);\n\n useEffect(() => {\n setLoadingResults(true);\n const extensionFilter =\n extensionArticles &&\n extensionArticles.filter((x) => {\n let data;\n if (x.translation) {\n data =\n x.translation &&\n x.translation.some((y) =>\n y?.name.toLowerCase().includes(searchValue.toLowerCase())\n );\n } else {\n data = x.name.toLowerCase().includes(searchValue.toLowerCase());\n }\n return data;\n });\n if (extensionFilter !== null && extensionFilter?.length > 0) {\n let arr = [];\n arr = [result, extensionArticles.flat()];\n setNewResult(arr.flat());\n } else {\n setNewResult(result);\n }\n }, [searchValue, result]);\n\n useEffect(() => {\n setLoadingResults(false);\n }, [newResult, searchValue]);\n\n const getName = (item) => {\n if (item) {\n const filter = item.filter((el) => el?.culture === culture);\n if (filter?.length > 0) {\n return filter[0]?.name;\n } else {\n return item[0].name;\n }\n }\n };\n\n const getMarkdownDescription = (item) => {\n let text = language?.LandingTexts;\n if (text) {\n let getDesc = Object.values(_.pick(text, [item?.name]));\n return getDesc?.[0]?.secondary;\n }\n };\n\n const getDescription = (item) => {\n if (\n config?.showSearchDescription &&\n item &&\n !item.isEventCalendar &&\n !item.isArticleBooking\n ) {\n const filter = item.filter((el) => el.culture === culture);\n if (filter.length === 0) {\n return item?.[0].description\n .replace(/(<([^>]+)>)/gi, \"\")\n .replace(/#(\\S)/g, \"\");\n }\n if (filter !== null && filter[0]?.description?.length > 60) {\n return (\n filter[0]?.description\n .replace(/(<([^>]+)>)/gi, \"\")\n .replace(/#(\\S)/g, \"\")\n .substring(0, 60) + \"...\"\n );\n } else if (filter[0]?.description) {\n return filter[0]?.description\n .replace(/(<([^>]+)>)/gi, \"\")\n .replace(/#(\\S)/g, \"\");\n }\n }\n };\n const getImage = (id) => {\n const filter = products?.filter((el) => el.id === id);\n return filter[0].images;\n };\n\n const getNewImage = (item) => {\n if (item?.isEventCalendar || item?.isArticleBooking) {\n if (item?.image) {\n return `${process.env.PUBLIC_URL}/ee-static/shop/${config?.shopName}/Images/${item?.image}`;\n } else {\n return Placeholder;\n }\n }\n if (item?.isModification === true) {\n return `${process.env.PUBLIC_URL}/ee-static/shop/${config?.shopName}/Images/${item?.images?.[0]}`;\n }\n if (!item?.isModification) {\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n let link3 = `${uri + \"/articleimage/\" + item.imageFilename}`;\n let link2 = `${\n item.plu ? uri + \"/articleimage/\" + item.imageUri : uri\n }/allotmentimage/${item.imageFileName}`;\n\n let link = `${uri}/articleimage/${item?.imageFileName}`;\n if (\n !item?.isProduct &&\n item?.imageFilename !== null &&\n item?.imageFilename !== undefined\n ) {\n return link3;\n }\n if (\n item?.imageFilename !== null &&\n !item?.imageFileName &&\n item?.imageFileName?.length > 0\n ) {\n return link;\n }\n if (item?.imageFilename !== null && item?.imageFileName) {\n return link2;\n }\n if (item?.imageFileName && !item?.imageFilename) {\n return link2;\n } else {\n return Placeholder;\n }\n }\n };\n\n const giftCard = (item) => {\n if (parseInt(item?.priceInclVat) === 0) {\n const filter = config?.productConfig.filter((el) => el.plu === item.plu);\n if (\n filter[0]?.openPriceValues &&\n filter[0]?.openPriceValues.length > 0 &&\n config?.showSearchPrice\n ) {\n return (\n

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

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

{language?.OpenPrice}

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

{language?.SearchCategories}

\n ) : (\n

{language?.NotFound}

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

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

    \n

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

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

    \n {el.priceInclVat}\n {/* {language?.CurrencyAbbreviation} */}\n

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

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

\n

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

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

{el?.priceInclVat}

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

loading

\n )}\n \n )}\n \n
\n \n );\n};\n\nexport default SearchResult;\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\";\nimport React, { useContext } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Context, OPEN_CART } from \"../../context\";\nimport { SaleContext } from \"../common/saleProvider\";\n\nconst useStyles = createStyles({\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n marginLeft: \"0.7rem\",\n marginRight: \"0.9rem\",\n paddingTop: \"0.3rem\",\n },\n button: {\n padding: 0,\n margin: 0,\n backgroundColor: \"transparent\",\n border: \"none\",\n cursor: \"pointer\",\n },\n shoppingBag: {\n minWidth: \"1.6rem\",\n minHeight: \"1.6rem\",\n // color: \"var(--header-link-color-light)\",\n color: \"inherit\",\n \"@media screen and (max-width: 768px)\": {},\n strokeWidth: \"2px\",\n },\n indicator: {\n fontWeight: \"500\",\n },\n});\n\nconst CartV2 = ({ changeBackground }) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const {\n state: { sale },\n } = useContext(SaleContext);\n const { classes } = useStyles();\n const { dispatch } = useContext(Context);\n\n const openCart = () => {\n dispatch({ type: OPEN_CART });\n };\n\n return (\n
\n \n openCart()}\n aria-label={language.OpenCart}\n >\n {sale?.itemQuantity > 0 ? (\n \n \n \n ) : (\n \n \n \n )}\n \n \n
\n );\n};\n\nexport default CartV2;\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\";\nimport { motion } from \"framer-motion\";\nimport { useSelector } from \"react-redux\";\n\nconst Path = (props) => (\n \n);\n\nconst HamburgerMenu = ({ open, setOpen, changeBackground }) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n useEffect(() => {\n setOpen(false);\n }, [window.location.pathname]);\n\n useEffect(() => {\n const body = document.getElementById(\"AppBody\");\n if (open) {\n body.setAttribute(\"aria-hidden\", true);\n } else {\n body.removeAttribute(\"aria-hidden\");\n }\n }, [open]);\n\n return (\n setOpen(!open)}\n className=\"mobileMenuV2\"\n data-isopen={open}\n initial={false}\n animate={open ? \"open\" : \"closed\"}\n aria-label={open ? language.Close : language.OpenMenu}\n aria-expanded={open}\n >\n \n \n \n \n \n \n );\n};\n\nexport default HamburgerMenu;\n","import React, { useEffect, useState } from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport slugify from \"../../common/slugify\";\nimport { Link } from \"@reach/router\";\nimport {\n MdOutlineKeyboardArrowDown,\n MdOutlineKeyboardArrowUp,\n} from \"react-icons/md\";\nimport { useSelector } from \"react-redux\";\nimport { CloseButton } from \"@mantine/core\";\n\nconst MenuItemV2 = ({\n data,\n culture,\n config,\n changeBackground,\n selected,\n setSelected,\n onClick,\n open,\n}) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const [showLinks, setShowLinks] = useState(false);\n useEffect(() => {\n if (data?.subLinks) {\n setShowLinks(false);\n }\n }, [window.location.pathname]);\n\n let pathname = window.location.pathname !== \"/ticketshop/cart\";\n\n const getLink = (item, dropdown) => {\n let productGroup = item?.productGroups;\n if (item?.name) {\n let theme;\n let underlineTheme;\n if (open) {\n theme = \"menuItem-item openMenu\";\n underlineTheme = \"menuItem-underline-color\";\n } else {\n theme = `menuItem-item ${\n changeBackground ? \"darkColor\" : \"lightColor\"\n }`;\n underlineTheme = `${\n changeBackground\n ? \"menuItem-darkUnderline\"\n : \"menuItem-lightUnderline\"\n }`;\n }\n\n if (item?.externalLink) {\n return (\n \n \n {item?.name}\n \n \n );\n }\n\n if (item?.internalLink) {\n return (\n \n \n {item?.name}\n \n {selected && pathname && !dropdown && (\n <>\n \n \n )}\n \n );\n }\n if (\n productGroup?.length === 1 &&\n productGroup?.[0]?.length > 0 &&\n language?.LandingTexts\n ) {\n const filter = Object.keys(language?.LandingTexts)\n .filter((key) => item?.name.includes(key))\n .reduce((obj, key) => {\n obj[key] = language?.LandingTexts[key];\n return obj[key];\n }, []);\n return (\n \n \n {filter ? filter?.primary : item?.name}\n \n {selected && pathname && !dropdown && (\n <>\n \n \n )}\n \n );\n }\n if (productGroup?.length > 1) {\n return (\n \n \n {item?.name}\n \n {selected && pathname && !dropdown && (\n \n )}\n \n );\n }\n\n if (item?.name === \"Hem\") {\n return (\n \n \n {language?.Home}\n \n {selected && pathname && !dropdown && (\n \n )}\n \n );\n }\n if (item?.name === \"Alla produkter\" || item?.name === \"Alla evenemang\") {\n return (\n \n \n {item?.name === \"Alla produkter\"\n ? language.All_Products\n : language.All_Events}\n \n {selected && pathname && !dropdown && (\n \n )}\n \n );\n }\n\n if (item?.eventCalendar || item?.articleBooking) {\n if (config?.ticketConfigurator || config?.articleBookingConfigurator) {\n const ticketConfiguratorFilter =\n config?.ticketConfigurator &&\n config?.ticketConfigurator?.filter(\n (el) => el.name.toLowerCase() === item?.name.toLowerCase()\n );\n const getTicketLang =\n ticketConfiguratorFilter?.[0]?.translations.filter(\n (el) => el.culture === culture\n );\n const articleBookingConfiguratorFilter =\n config?.articleBookingConfigurator &&\n config?.articleBookingConfigurator.filter(\n (el) => el.name.toLowerCase() === item?.name.toLowerCase()\n );\n\n const getBookingLang =\n articleBookingConfiguratorFilter?.[0]?.translations?.filter(\n (el) => el.culture === culture\n );\n\n return (\n \n \n {item?.eventCalendar\n ? getTicketLang?.[0]?.name\n : getBookingLang?.[0]?.name}\n \n {selected && pathname && !dropdown && (\n \n )}\n \n );\n }\n }\n if (item?.events?.length === 1) {\n return (\n \n \n {item?.name}\n \n {selected && pathname && !dropdown && (\n \n )}\n \n );\n }\n\n if (item?.events?.length > 1) {\n return (\n \n \n {item?.name}\n \n {selected && pathname && !dropdown && (\n \n )}\n \n );\n }\n\n if (item?.publicBooking) {\n return (\n \n \n {item?.name}\n \n {selected && pathname && !dropdown && (\n \n )}\n \n );\n } else {\n return (\n \n \n {item?.name}\n \n {selected && pathname && !dropdown && (\n \n )}\n \n );\n }\n }\n };\n let underlineTheme;\n if (open) {\n underlineTheme = \"menuItem-lightUnderline\";\n } else {\n underlineTheme = `${\n changeBackground ? \"menuItem-darkUnderline\" : \"menuItem-lightUnderline\"\n }`;\n }\n\n const nameTranslation = (data) => {\n const filter = data?.translations.filter((el) => el.culture === culture);\n if (filter.length > 0) {\n return filter[0]?.name;\n } else {\n return data?.name;\n }\n };\n\n return (\n <>\n {data && data?.subLinks && data.subLinks.length > 0 ? (\n
  • \n
      \n setShowLinks(true)}\n whileFocus={() => {\n if (document.documentElement.clientWidth > 768) {\n setShowLinks(true);\n }\n }}\n onMouseLeave={() => {\n if (document.documentElement.clientWidth > 768) {\n setShowLinks(false);\n }\n }}\n onClick={() => {\n setShowLinks(!showLinks);\n }}\n animate={{\n opacity: selected || showLinks ? 1 : 1,\n }}\n aria-live={\"polite\"}\n >\n setShowLinks(!showLinks)}\n aria-expanded={showLinks}\n >\n {nameTranslation(data)}\n {showLinks ? (\n \n \n \n ) : (\n \n \n \n )}\n \n\n \n {showLinks && (\n 10 ? \"repeat(2, 1fr)\" : \"1fr\",\n }}\n initial={{ opacity: 0, y: \"-5px\" }}\n animate={{ opacity: 1, y: \"0px\" }}\n exit={{ opacity: 0, y: \"-5px\" }}\n transition={{ duration: 0.2 }}\n >\n {data.subLinks.map((el) => (\n \n {el?.header && !el.disabled ? (\n
      \n \n {el.subLinks.map((ele) => (\n \n {!ele.disabled && getLink(ele, \"dropdown\")}\n \n ))}\n
      \n ) : (\n \"\"\n )}\n
      \n ))}\n
    • \n setShowLinks(false)}\n iconSize={20}\n />\n
    • \n {data.subLinks.map((el) => (\n \n {!el.disabled && !el.header ? (\n <>{getLink(el, \"dropdown\")}\n ) : (\n \"\"\n )}\n \n ))}\n \n )}\n
      \n \n
    \n {selected && pathname && (\n \n )}\n
  • \n ) : (\n getLink(data)\n )}\n \n );\n};\n\nexport default MenuItemV2;\n","import { useLocation } from \"@reach/router\";\nimport { AnimateSharedLayout } from \"framer-motion\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport slugify from \"../../common/slugify\";\nimport MenuItemV2 from \"./MenuItemV2\";\nimport { useSessionStorage } from \"@mantine/hooks\";\n\nconst NavContentV2 = ({\n config,\n language,\n changeBackground,\n culture,\n open,\n}) => {\n const [links, setLinks] = useState();\n const [updatedLinks, setUpdatedLinks] = useState();\n const [addedLinks, setAddedLinks] = useState([]);\n const [selected, setSelected] = useSessionStorage({\n key: \"activeLink\",\n defaultValue: \"\",\n });\n const location = useLocation();\n\n useMemo(() => {\n let getLinks = [];\n getLinks = config?.pages;\n let filter = getLinks?.filter((el) => !el.disabled);\n setLinks(filter);\n }, []);\n\n useMemo(() => {\n if (config?.newHeaderDropDown) {\n let newLinks = [];\n let originalLinks = links;\n let dropDownItems = config?.newHeaderDropDown;\n newLinks.push(originalLinks, dropDownItems);\n let flatLinks = newLinks.flat();\n const filter = flatLinks.filter((el) => !el?.disabled);\n setUpdatedLinks(filter);\n } else {\n setUpdatedLinks(links);\n }\n }, [links]);\n\n useEffect(() => {\n let pathName = location.pathname;\n const home =\n pathName === \"/ticketshop\" ||\n pathName === \"ticketshop\" ||\n pathName === \"/ticketshop/\";\n let path = pathName.split(\"/\").pop();\n\n const getSubLinks =\n config?.newHeaderDropDown &&\n config?.newHeaderDropDown.reduce((acc, curr) => {\n updatedLinks.some((el) => {\n return curr.subLinks.some((ele) => {\n return el.name.toLowerCase() === ele.name.toLowerCase() &&\n slugify(ele.name) === slugify(path)\n ? acc.push(curr)\n : \"\";\n });\n });\n return acc;\n }, []);\n\n const getPath = updatedLinks.filter((el) => slugify(el.name) === path)?.[0]\n ?.name;\n\n if (getSubLinks && getSubLinks.length > 0) {\n setSelected(getSubLinks?.[0]?.name);\n }\n\n if (\n (getPath && !getSubLinks) ||\n (getSubLinks && getSubLinks.length === 0 && getPath)\n ) {\n setSelected(getPath);\n }\n if (home) {\n setSelected(\"Hem\");\n }\n }, [location.pathname]);\n\n useMemo(() => {\n if (updatedLinks) {\n let arr = updatedLinks;\n let home = {\n name: \"Hem\",\n disabled: false,\n };\n let allProducts = {\n name: \"Alla produkter\",\n disabled: false,\n };\n\n let allEvents = {\n name: \"Alla evenemang\",\n disabled: false,\n };\n let getAllProducts = config?.showAllProducts;\n let getAllEvents = config?.useAllEvents;\n\n if (\n getAllProducts ||\n getAllEvents ||\n !home.disabled ||\n config?.newHeaderDropDown\n ) {\n if (getAllProducts && getAllEvents) {\n arr.push(allProducts, allEvents);\n arr.unshift(home);\n }\n if (getAllProducts && !getAllEvents) {\n arr.push(allProducts);\n arr.unshift(home);\n }\n if (!getAllProducts && getAllEvents) {\n arr.push(allEvents);\n arr.unshift(home);\n }\n if (!getAllProducts && !getAllEvents) {\n arr.unshift(home);\n }\n\n const filterDropDownLinks = arr.filter((el) => !el?.useInDropDown);\n let sortByConfiguration = filterDropDownLinks.sort((a, b) =>\n a.sortInMenu ? -1 : b.sortInMenu ? 1 : 0\n );\n let sortHome = sortByConfiguration.sort((a, b) =>\n a.name === \"Hem\" ? -1 : b.name === \"Hem\" ? 1 : 0\n );\n setAddedLinks(filterDropDownLinks);\n }\n }\n }, [updatedLinks]);\n\n return (\n
      \n \n {addedLinks &&\n addedLinks.map((el, i) => (\n \n setSelected(el?.name.toLowerCase())}\n setSelected={setSelected}\n selectedIndex={el?.name}\n open={open}\n />\n \n ))}\n \n
    \n );\n};\nexport default NavContentV2;\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\";\nimport { AnimatePresence, AnimateSharedLayout, motion } from \"framer-motion\";\nimport NavContentV2 from \"./NavContentV2\";\nimport Settings from \"../../Settings\";\nimport Login from \"../login\";\nimport FocusTrap from \"./hooks/useFocusTrap\";\nimport useClickDetector from \"./hooks/useClickDetector\";\nimport { useLocation } from \"@reach/router\";\n\nconst MobileMenuOverlay = ({\n open,\n setOpen,\n config,\n language,\n changeBackground,\n culture,\n}) => {\n const ref = useRef(null);\n useClickDetector(ref, open, setOpen);\n useEffect(() => {});\n const location = useLocation();\n\n const variants = {\n show: {\n opacity: 1,\n x: \"0%\",\n y: \"0\",\n transition: {\n delay: 0.1,\n duration: 0.25,\n ease: \"easeInOut\",\n },\n },\n hidden: {\n opacity: 0,\n x: \"-100%\",\n y: \"0\",\n transition: {\n delay: 0.25,\n duration: 0.4,\n ease: \"easeInOut\",\n },\n },\n };\n\n const overlayVariant = {\n show: {\n opacity: 1,\n transition: {\n delay: 0,\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n hidden: {\n opacity: 0,\n transition: {\n delay: 0.3,\n duration: 0.5,\n ease: \"easeInOut\",\n },\n },\n };\n\n useEffect(() => {\n setOpen(false);\n }, [location.pathname]);\n\n return (\n \n \n {open && (\n <>\n \n \n setOpen(!open)}\n style={{\n position: \"absolute\",\n top: 0,\n left: \"1rem\",\n width: \"5rem\",\n height: \"5rem\",\n background: \"none\",\n border: \"none\",\n zIndex: \"2900\",\n }}\n aria-expanded={open}\n aria-label={language.Close}\n />\n \n
    \n \n
    \n {config?.showLogin ? (\n
    \n \n
    \n ) : (\n \"\"\n )}\n
    \n \n \n \n )}\n
    \n
    \n );\n};\n\nexport default MobileMenuOverlay;\n","import React, { useState } from \"react\";\nimport SearchV2 from \"../../common/Search/SearchV2\";\nimport Cart from \"../cart\";\nimport CartV2 from \"../CartV2\";\nimport HamburgerMenu from \"./HamburgerMenu\";\nimport LogoV2 from \"./LogoV2\";\nimport MobileMenuOverlay from \"./MobileMenuOverlay\";\n\nconst MobileMenuV2 = ({ changeBackground, config, language, culture }) => {\n const [open, setOpen] = useState(false);\n return (\n <>\n
    \n
    \n \n
    \n {!open ? (\n <>\n \n \n {config?.useCartDrawer ? (\n \n ) : (\n \n )}\n \n ) : (\n \"\"\n )}\n
    \n
    \n \n
    \n \n );\n};\n\nexport default MobileMenuV2;\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\";\nimport HeaderLayout from \"../Styles/HeaderLayout\";\nimport HeaderContent from \"../Styles/HeaderContent\";\nimport MobileMenu from \"./mobileMenu\";\nimport Logo from \"./logo\";\nimport Login from \"./login\";\nimport Cart from \"./cart\";\nimport CountdownContainer from \"./CountdownContainer\";\nimport Settings from \"../Settings\";\nimport SearchV2 from \"../common/Search/SearchV2\";\nimport { useSelector } from \"react-redux\";\nimport { STATE_CULTURE } from \"../../common/state\";\nimport HeaderV2 from \"./HeaderV2/HeaderV2\";\n\nconst Header = (props) => {\n const { config, language, culture } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n culture: state.cookies[STATE_CULTURE],\n }));\n return (\n <>\n \n {language.SkipToMainContent}\n \n {config?.useNewHeader ? (\n \n ) : (\n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n )}\n \n );\n};\n\nexport default Header;\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\";\nimport { useSelector } from \"react-redux\";\nimport axios from \"axios\";\nimport Markdown from \"react-markdown\";\nimport clsx from \"clsx\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { STATE_CULTURE } from \"../../../common/state\";\nimport { useElementSize, useLocalStorage } from \"@mantine/hooks\";\n\nlet source;\n\nconst useStyles = makeStyles({\n container: {\n marginTop: \"16px\",\n },\n bottomText: {\n textAlign: \"center\",\n fontSize: \"0.8rem\",\n marginBottom: \"-1rem\",\n },\n});\n\nconst Footer = (props) => {\n const classes = useStyles();\n const [text, setText] = useState(\"\");\n const { culture, config } = useSelector((state) => ({\n culture: state.cookies[STATE_CULTURE],\n config: state.config,\n }));\n\n const { ref, height } = useElementSize();\n const [value, setValue] = useLocalStorage({\n key: \"footerHeight\",\n defaultValue: 0,\n });\n useEffect(() => {\n let CancelToken = axios.CancelToken;\n source = CancelToken.source();\n axios\n .get(\n `${process.env.PUBLIC_URL}${config.descriptionFolderUrl}footer.${culture}.md`,\n {\n cancelToken: source.token,\n }\n )\n .then((res) => setText(res.data));\n return () => source.cancel(\"Footer Is Unmounting\");\n }, [culture, config.descriptionFolderUrl]);\n\n useEffect(() => {\n if (height > 0) {\n setValue(height);\n }\n }, [height]);\n\n return (\n \n );\n};\n\nexport default Footer;\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 {\n clearSaleId,\n setSaleId,\n STATE_CULTURE,\n STATE_CURRENCY,\n STATE_SALE_ID,\n} from \"./state\";\nimport uuid from \"uuid\";\n\nconst callApi = (command, method, payload, message, then, cb) => {\n return {\n type: \"@EE/API_CALL\",\n method,\n command,\n payload,\n message,\n then,\n cb,\n };\n};\n\nconst saleState = (id, isActive) => {\n return {\n type: \"@EE/SALE_STATE\",\n id,\n isActive,\n };\n};\n\nexport const saleMiddleware =\n ({ apiUri, posId }) =>\n ({ dispatch, getState }) =>\n (next) =>\n (action) => {\n if (action.type === \"@EE/API_CALL\" && !action.promise) {\n const state = getState();\n const sale = state.sale;\n const language = state.language;\n const id = sale.id || state.cookies[STATE_SALE_ID] || uuid.v1();\n const uri = `${apiUri}/sales/${id}/${action.command}`;\n const isFormData = action.payload instanceof FormData;\n var headers = new Headers();\n var user = state.oidc.user;\n console.log(uri);\n\n if (user && user.access_token) {\n headers.append(\"Authorization\", \"Bearer \" + user.access_token);\n }\n\n if (!isFormData) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n const execute = () => {\n return fetch(uri, {\n method: action.method,\n body: isFormData\n ? action.payload\n : action.payload\n ? JSON.stringify(action.payload)\n : null,\n headers: headers,\n }).then((response) => {\n if (response.status === 406) {\n response.text().then((msg) => {\n action.cb(response.status, language[msg] || msg);\n if (msg === \"Sale is cancelled\") {\n console.log(\"Sale has been cancelled - forcing reload\");\n window.location.reload();\n }\n });\n } else if (response.status >= 400) {\n response.text().then((msg) => {\n action.cb(response.status, language[msg] || msg);\n });\n } else {\n action.cb && action.cb(response.status, \"ok\");\n }\n\n return response;\n });\n };\n\n const promise = sale.isActive\n ? execute()\n : fetch(`${apiUri}/pos/${posId}/sales/${id}`, {\n method: \"POST\",\n }).then((response) => {\n if (response.status !== 201 && response.status !== 200) {\n return new Promise((resolve, reject) =>\n reject(\"Could not create or activate sale!\")\n );\n } else {\n dispatch(setSaleId(id));\n dispatch(saleState(id, true));\n return execute();\n }\n });\n\n dispatch({\n type: action.type,\n promise,\n then: action.then,\n });\n } else {\n next(action);\n }\n };\n\nexport const validateSaleId = (api, reset) => (dispatch, getState) => {\n //Ensures current saleid is an open sale, otherwise clears from cookies\n var id = getState().cookies[STATE_SALE_ID];\n if (!id) {\n return;\n }\n\n const promise = fetch(`${api}/sales/${id}`).then((response) => {\n if (response.status === 410) {\n dispatch(clearSaleId());\n reset();\n }\n });\n\n return {\n type: \"@EE/VALIDATE_SALE_ID\",\n promise,\n };\n};\n\nexport const add = (model, cb) => {\n return callApi(\"articles\", \"POST\", model, \"Article_Added\", null, cb);\n};\n\nexport const addBatch = (model, cb) => {\n return callApi(\"articles/batch\", \"POST\", model, \"Article_Added\", null, cb);\n};\n\nexport const addArticle = (saleData, then) => {\n return (dispatch) => dispatch(add(saleData, then));\n};\n\nexport const addArticleBatch = (saleData, then) => {\n return (dispatch) => dispatch(addBatch(saleData, then));\n};\n\nexport const addAllotment = (saleData, then) => {\n return (dispatch) => {\n dispatch(add(saleData, then));\n };\n};\n\nexport const addMod = (model, cb) => {\n return callApi(\"modifications\", \"POST\", model, \"Article_Added\", null, cb);\n};\n\nexport const addModification = (model, cb) => (dispatch) =>\n dispatch(addMod(model, cb));\n\nexport const addFunds = (mod, cb) => {\n return (dispatch) => dispatch(addMod(mod, cb));\n};\n\nexport const setQuantity = (key, quantity) => {\n return callApi(`articles/${key}/quantity/${quantity}`, \"PUT\");\n};\n\nexport const removeArticle = (key, cb) => {\n return callApi(\"articles/\" + key, \"DELETE\", null, \"Article_Removed\", cb);\n};\n\nexport const discount = (id, info) => {\n return callApi(\"discount\", \"POST\", {\n id,\n info,\n });\n};\n\nexport const increaseQuantity = (key, cb) => {\n return callApi(\n `articles/${key}/increasequantity`,\n \"POST\",\n null,\n null,\n null,\n cb\n );\n};\n\nexport const decreaseQuantity = (key, cb) => {\n return callApi(\n `articles/${key}/decreasequantity`,\n \"POST\",\n null,\n null,\n null,\n cb\n );\n};\n\nexport const checkout = () => (dispatch, getState) => {\n var state = getState();\n var payload = {\n currency: state.cookies[STATE_CURRENCY],\n culture: state.cookies[STATE_CULTURE],\n };\n\n dispatch(\n callApi(\"checkout\", \"POST\", payload, null, (r) => {\n if (r.status === 202) {\n const url = r.headers.get(\"Location\");\n console.log(\"url\", url);\n window.location.assign(url);\n }\n })\n );\n};\n\nconst nextVersion = () => {\n return new Date().getTime();\n};\n\nexport const saleReducer = (state = { version: nextVersion() }, action) => {\n switch (action.type) {\n case \"@EE/API_CALL\": {\n var s = {\n ...state,\n version:\n action.readyState === \"success\" ? nextVersion() : state.version,\n };\n\n return s;\n }\n case \"@EE/SALE_STATE\": {\n return {\n id: action.id,\n isActive: action.isActive,\n isError: action.isError,\n error: action.error,\n version: nextVersion(),\n };\n }\n\n default:\n return state;\n }\n};\n\nexport const addToCartTracking = (currency, products) => {\n if (window.dataLayer) {\n window.dataLayer.push({\n event: \"add_to_cart\",\n ecommerce: {\n currencyCode: currency,\n add: {\n products: products,\n },\n },\n });\n }\n};\n\nexport const removeFromCartTracking = (currency, products, totalPrice) => {\n if (window.dataLayer) {\n window.dataLayer.push({\n event: \"remove_from_cart\",\n ecommerce: {\n currency,\n value: totalPrice,\n items: products,\n },\n });\n }\n};\n","import { ActionIcon, createStyles, Group, NumberInput } from \"@mantine/core\";\nimport React from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { decreaseQuantity, increaseQuantity } from \"../../common/sale\";\nimport { HiMinusSm, HiPlusSm } from \"react-icons/hi\";\n\nconst useStyles = createStyles({\n actionButton: {\n borderRadius: \"50%\",\n border: \"none\",\n },\n actionWrapper: {\n backgroundColor: \"#F3F3F4\",\n padding: \"0rem 0.38rem\",\n borderRadius: \"1.25rem\",\n width: \"fit-content\",\n },\n});\nconst QuantityInput = ({ inStock, item, id, quantity, name }) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const { classes } = useStyles();\n const rdxDispatch = useDispatch();\n\n const increase = () => {\n rdxDispatch(increaseQuantity(id));\n };\n\n const decrease = () => {\n rdxDispatch(decreaseQuantity(id));\n };\n return (\n
    \n \n decrease()}\n aria-label={`${name} ${language.DecreaseQuantity}`}\n >\n
    \n \n
    \n \n \n increase()}\n >\n
    \n \n
    \n \n \n
    \n );\n};\n\nexport default QuantityInput;\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 {\n ActionIcon,\n createStyles,\n Divider,\n Grid,\n Image,\n Loader,\n} from \"@mantine/core\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { removeArticle, removeFromCartTracking } from \"../../common/sale\";\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\nimport { DataContext } from \"../common/dataProvider\";\nimport QuantityInput from \"./QuantityInput\";\nimport TrashIcon from \"./TrashIcon\";\nimport { Context } from \"../../context\";\n\nconst useStyles = createStyles({\n wrapper: {\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n },\n itemWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"1rem\",\n \"@media screen and (max-width: 768px)\": {\n gap: \"0.5rem\",\n },\n },\n image: {\n width: \"6rem\",\n height: \"5rem\",\n },\n rowWrapper: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n leftWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n },\n textWrapper: {\n display: \"flex\",\n gap: \"0.7rem\",\n },\n text: {\n fontWeight: \"bold\",\n margin: 0,\n lineHeight: \"normal\",\n },\n textSmall: {\n margin: 0,\n lineHeight: \"normal\",\n fontStyle: \"italic\",\n },\n rightWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"end\",\n },\n price: {\n fontWeight: \"bold\",\n margin: 0,\n textAlign: \"right\",\n },\n divider: {\n opacity: 0.5,\n },\n loadingWrapper: {\n opacity: 0.5,\n },\n loader: {\n position: \"absolute\",\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n margin: \"auto\",\n },\n hideAriaLive: {\n position: \"absolute\",\n width: \"0px\",\n height: \"0px\",\n opacity: 0,\n },\n});\n\nconst DrawerItem = ({ item, sale }) => {\n const [loading, loadingSet] = useState(null);\n const [allotmentRemaining, allotmentRemainingSet] = useState(null);\n const { config, culture, language, currency } = useSelector((state) => ({\n config: state.config,\n culture: state.cookies[STATE_CULTURE],\n language: state.language,\n currency: state.cookies[STATE_CURRENCY],\n }));\n const { data } = useContext(DataContext);\n const { classes } = useStyles();\n const rdxDispatch = useDispatch();\n const { dispatch } = useContext(Context);\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n const image = `${uri}/articleimage/${item?.article?.imageFilename}`;\n\n const remove = () => {\n loadingSet(true);\n rdxDispatch(\n removeArticle(item.key, (cb, msg) => {\n if (cb.status === 200) {\n const reducedItem = {\n id: item.article.plu,\n quantity: item.quantity,\n price: item.pricePerPiece.amountInclVat,\n name: item.article.name,\n };\n removeFromCartTracking(\n currency,\n reducedItem,\n item.totalPrice.amountInclVat\n );\n }\n })\n );\n };\n\n const getName = () => {\n const getTranslation = item?.article?.translation.filter(\n (el) => el.culture === culture\n );\n return getTranslation?.[0]?.name;\n };\n\n const getStock =\n item.article.plu &&\n data &&\n data.articles.filter((el) => el.plu === item.article.plu)?.[0]?.inStock;\n\n const allotment =\n item.allotmentId &&\n data &&\n data.allotments.reduce((acc, curr) => {\n if (curr.id === item.allotmentId) {\n let occasion = curr.occasions.filter((el) => el.time === item.occasion);\n acc = occasion;\n }\n return acc;\n }, {});\n\n useEffect(() => {\n if (allotment && allotment.length > 0) {\n allotmentRemainingSet(allotment[0].remaining);\n }\n }, [allotment]);\n\n useEffect(() => {\n loadingSet(false);\n return () => loadingSet(null);\n }, [sale.items]);\n\n return (\n
    \n
    \n {loading && }\n
    \n \n \n \n
    \n
    \n

    {getName()}

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

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

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

    \n {item.totalPriceInclVat}\n

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

    {language.ShippingCost}

    \n

    {shipping?.[0]?.totalPriceInclVat}

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

    {language.ServiceFee}

    \n

    {serviceFee?.[0]?.totalPriceInclVat}

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

    {language.ToPay}

    \n

    {sale?.sumInclVat}

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

    {language.Cart}

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

    {language.EmptyCart}

    }\n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default DrawerCart;\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\";\nimport classNames from \"classnames\";\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\nimport ErrorIcon from \"@material-ui/icons/Error\";\nimport InfoIcon from \"@material-ui/icons/Info\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport SnackbarContent from \"@material-ui/core/SnackbarContent\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { CLOSE_TOAST, Context } from \"../../context\";\n\nconst variantIcon = {\n success: CheckCircleIcon,\n warning: WarningIcon,\n error: ErrorIcon,\n info: InfoIcon,\n};\n\nconst useStyles = makeStyles((theme) => ({\n success: {\n backgroundColor: theme.app.successColor,\n color: \"white\",\n },\n error: {\n backgroundColor: theme.app.dangerColor,\n color: \"white\",\n },\n info: {\n backgroundColor: theme.app.infoColor,\n color: \"white\",\n },\n warning: {\n backgroundColor: theme.app.warningColor,\n color: \"white\",\n },\n icon: {\n fontSize: 20,\n },\n iconVariant: {\n opacity: 0.9,\n marginRight: \"8px\",\n },\n message: {\n display: \"flex\",\n alignItems: \"center\",\n },\n}));\n\nconst Content = (props) => {\n const classes = useStyles();\n const { className, message, onClose, variant } = props;\n const Icon = variantIcon[variant];\n\n return (\n \n \n {message}\n \n }\n action={[\n \n \n ,\n ]}\n />\n );\n};\n\nconst Toast = (props) => {\n const {\n state: { toastOpen, toastText, toastVariant },\n dispatch,\n } = useContext(Context);\n const handleClose = () => dispatch({ type: CLOSE_TOAST });\n return (\n
    \n \n {!toastVariant ? (\n
    \n ) : (\n \n )}\n \n
    \n );\n};\n\nexport default Toast;\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\";\nimport clsx from \"clsx\";\nimport { makeStyles } from \"@material-ui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n app: {\n position: \"relative\",\n background: theme.app.background[0],\n \"& ::-webkit-scrollbar\": {\n width: \"10px\",\n },\n \"& ::-webkit-scrollbar-track\": {\n \"-webkit-box-shadow\": \"inset 0 0 6px rgba(0,0,0,0.3)\",\n },\n \"& ::-webkit-scrollbar-thumb\": {\n backgroundColor: theme.app.scrollbar,\n outline: `1px solid ${theme.palette.divider}`,\n },\n },\n}));\n\nconst AppLayout = ({ children }) => {\n const classes = useStyles();\n return
    {children}
    ;\n};\n\nexport default AppLayout;\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 = (\n config,\n item,\n url,\n baseUrl,\n allotmentImage = undefined\n) => {\n const plu = item.article.plu;\n const isModification =\n !item.article.isPersonalTicket && item.ticketOwners.length > 0;\n const prodConf = config.productConfig.find((a) => a.plu === plu);\n\n let productGroupConfig = config.productGroupConfig.find((c) =>\n prodConf?.name?.includes(c?.name)\n );\n const articleImage = plu && item.article.imageFilename;\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n const imageUri =\n plu && item.article.imageFilename\n ? `${uri}/articleimage/${articleImage}`\n : plu && item.allotmentId\n ? `${uri}/allotmentimage/${allotmentImage}`\n : undefined;\n\n return {\n thumbnail: imageUri ? imageUri : undefined,\n slug: isModification\n ? null\n : productGroupConfig?.useGroupsAsItems\n ? null\n : item.article.isProduct\n ? `${baseUrl}/products/${plu}`\n : null,\n };\n};\n\nexport const getCartArticle = (\n product,\n config,\n article,\n eventImage = undefined\n) => {\n let productGroupConfig = config.productGroupConfig.find(\n (c) => c.name === product.name\n );\n\n const groupArticle =\n productGroupConfig?.useGroupsAsItems &&\n product.articles &&\n product.articles.find((a) => a.id === article);\n const prodConf =\n productGroupConfig?.useGroupsAsItems && product.articles\n ? config.productConfig.find((c) => c.plu === groupArticle.plu)\n : config.productConfig.find((c) => c.plu === product.plu);\n const a = productGroupConfig?.useGroupsAsItems ? groupArticle : product;\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n const imageUri = article ? `${uri}/articleimage/${article}.jpg` : undefined;\n if (!prodConf) return { ...a, apiUri: uri, eventImage };\n return {\n ...a,\n cartImage: imageUri ? imageUri : undefined,\n apiUri: uri,\n };\n};\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\";\nimport { useNavigate } from \"@reach/router\";\nimport clsx from \"clsx\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport Card from \"@material-ui/core/Card\";\nimport CardActionArea from \"@material-ui/core/CardActionArea\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { ReactComponent as Placeholder } from \"../../images/placeholder.svg\";\nimport slugify from \"../common/slugify\";\nimport useLocalStorage from \"../Header/HeaderV2/hooks/useLocalStorage\";\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n width: \"100%\",\n \"@media(max-width: 1024px)\": {\n margin: \"8px\",\n },\n },\n img: {\n width: \"100%\",\n maxWidth: \"100%\",\n height: \"auto\",\n },\n content: {\n background: theme.palette.background.paper,\n borderTop: `1px solid ${theme.palette.divider}`,\n width: \"100%\",\n // height: \"100%\",\n display: \"grid\",\n alignItems: \"end\",\n },\n primary: {\n fontSize: \"1rem\",\n lineHeight: 1.1,\n display: \"box\",\n lineClamp: 2,\n boxOrient: \"vertical\",\n overflow: \"hidden\",\n },\n secondary: {\n fontSize: \"0.8125rem\",\n lineHeight: 1,\n },\n buttonDisabled: {\n color: \"rgba(255,255,255,0.5)!important\",\n },\n button: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n // height: \"100%\",\n justifyContent: \"flex-start\",\n },\n}));\n\nconst CardItem = ({ item, slug }) => {\n const [selected, setSelected] = useLocalStorage();\n const classes = useStyles();\n const navigate = useNavigate();\n let itemSlug =\n item?.eventCalendar === true\n ? `${process.env.PUBLIC_URL}/tickets/${slugify(item.name)}`\n : item?.articleBooking === true\n ? `${process.env.PUBLIC_URL}/booking/${slugify(item.name)}`\n : slug\n ? slug\n : item?.externalLink\n ? item?.externalLink\n : `${process.env.PUBLIC_URL}/${slugify(item.name)}`;\n return (\n \n {item?.externalLink ? (\n \n \n {item.image ? (\n \"product\"\n ) : (\n \n )}\n \n \n {item?.text?.primary\n ? item?.text?.primary\n : \"Add landing primary text in language config\"}\n \n \n {item?.text?.secondary\n ? item?.text.secondary\n : \"Add landing secondary text in language config\"}\n \n \n \n \n ) : (\n {\n localStorage.setItem(\"selected\", item?.name);\n navigate(itemSlug);\n }}\n classes={{ root: classes.button }}\n >\n {item.image ? (\n \"product\"\n ) : (\n \n )}\n \n \n {item?.text?.primary\n ? item?.text.primary\n : \"Add landing primary text in language config\"}\n \n \n {item?.text?.secondary\n ? item?.text.secondary\n : \"Add landing secondary text in language config\"}\n \n \n \n )}\n {/* {\n localStorage.setItem(\"selected\", item?.name)\n navigate(itemSlug)\n }}\n classes={{ root: classes.button }}\n >\n {item.image ? (\n \"product\"\n ) : (\n \n )}\n \n \n {item?.text?.primary\n ? item?.text.primary\n : \"Add landing primary text in language config\"}\n \n \n {item?.text?.secondary\n ? item?.text.secondary\n : \"Add landing secondary text in language config\"}\n \n \n */}\n \n );\n};\n\nexport default CardItem;\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\";\nimport { useSelector } from \"react-redux\";\nimport axios from \"axios\";\nimport { STATE_CULTURE } from \"../../common/state\";\nimport Landing from \"../../components/Landing\";\nimport PageLayout from \"../../components/Styles/PageLayout\";\nimport PageContent from \"../../components/Styles/PageContent\";\nimport Description from \"../../components/common/Description\";\nimport SiteHeading from \"../../components/common/SiteHeading\";\n\nlet source;\n\nconst LandingPage = () => {\n const [text, setText] = useState(\"\");\n const { config, culture } = useSelector((state) => ({\n config: state.config,\n culture: state.cookies[STATE_CULTURE],\n }));\n useEffect(() => {\n source = axios.CancelToken.source();\n axios\n .get(\n `${process.env.PUBLIC_URL}/${config.descriptionFolderUrl}landingpage.${culture}.md`,\n {\n cancelToken: source.token,\n }\n )\n .then((res) => setText(res.data));\n return () => source.cancel(\"Component Is Unmounting\");\n }, [culture, config.descriptionFolderUrl]);\n\n return (\n <>\n {config.showSiteHeadingOnlyOnLanding && }\n \n \n \n {config.landingPage && }\n \n \n \n );\n};\n\nexport default LandingPage;\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\";\nimport { useNavigate } from \"@reach/router\";\nimport clsx from \"clsx\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport { ReactComponent as Placeholder } from \"../../images/placeholder_list.svg\";\nimport slugify from \"../common/slugify\";\nimport useLocalStorage from \"../Header/HeaderV2/hooks/useLocalStorage\";\n\nconst useStyles = makeStyles((theme) => ({\n listItem: {\n \"&:nth-child(even)\": {\n backgroundColor: theme.app.tableHighlight,\n \"&:hover\": {\n backgroundColor: theme.palette.action.hover,\n },\n },\n \"@media(max-width: 667px)\": {\n paddingLeft: \"4px\",\n paddingRight: \"4px\",\n },\n },\n imageContainer: {\n lineHeight: 1,\n },\n listItemText: {\n paddingLeft: \"16px\",\n },\n image: {\n width: \"100px\",\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: \"4px\",\n objectFit: \"cover\",\n backgroundColor: theme.app.background[2],\n \"@media(max-width: 667px)\": {\n width: \"75px\",\n },\n },\n}));\n\nconst List = ({ item, slug }) => {\n const [selected, setSelected] = useLocalStorage();\n const classes = useStyles();\n const navigate = useNavigate();\n let itemSlug =\n item?.eventCalendar === true\n ? `${process.env.PUBLIC_URL}/tickets/${slugify(item.name)}`\n : item?.articleBooking === true\n ? `${process.env.PUBLIC_URL}/booking/${slugify(item.name)}`\n : slug\n ? slug\n : item?.externalLink\n ? item?.externalLink\n : `${process.env.PUBLIC_URL}/${slugify(item.name)}`;\n return (\n <>\n {item?.externalLink ? (\n \n \n \n {item.image ? (\n \"product\"\n ) : (\n \n )}\n
    \n \n \n \n ) : (\n {\n localStorage.setItem(\"selected\", item?.name);\n navigate(itemSlug);\n }}\n className={clsx(classes.listItem, \"landing__group-item__list\")}\n divider\n >\n \n {item.image ? (\n \"product\"\n ) : (\n \n )}\n
    \n \n \n )}\n \n );\n};\n\nexport default List;\n","import React from \"react\";\nimport { Card, createStyles, Image, Text, UnstyledButton } from \"@mantine/core\";\nimport { useNavigate } from \"@reach/router\";\nimport { useSelector } from \"react-redux\";\nimport slugify from \"../common/slugify\";\nimport { v4 as uuid } from \"uuid\";\nimport { useSessionStorage } from \"@mantine/hooks\";\n\nconst useStyles = createStyles((theme) => ({\n cardWrapper: {\n position: \"relative\",\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n cursor: \"pointer\",\n transition: \"0.2s\",\n border: \"none\",\n borderRadius: \"8px\",\n padding: \"1rem 1rem\",\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.blue[3]\n : theme.colors.gray[2],\n transform: \"translateY(-3px)\",\n p: {\n color: \"black\",\n },\n div: {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.blue[3]\n : theme.colors.gray[2],\n },\n },\n },\n\n card: {\n transition: \"0.2s\",\n },\n\n title: {\n display: \"block\",\n marginTop: theme.spacing.md,\n marginBottom: theme.spacing.xs / 2,\n fontSize: \"1.25rem\",\n },\n\n footer: {\n marginTop: theme.spacing.md,\n },\n}));\n\nconst CardV2 = ({ item, slug }) => {\n const { config, language } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n }));\n const [selected, setSelected] = useSessionStorage({\n key: \"activeLink\",\n defaultValue: \"\",\n });\n const { classes, cx, theme } = useStyles();\n const navigate = useNavigate();\n\n const link = () => {\n setSelected(item?.text?.primary.toLowerCase());\n const filter = config.landingPage.links.filter(\n (el) => el.name === item.name\n )?.[0];\n if (slug) {\n return slug;\n }\n if (item?.eventCalendar) {\n return `/ticketshop/tickets/${slugify(item.name)}`;\n }\n if (item?.articleBooking) {\n return `/ticketshop/booking/${slugify(item.name)}`;\n }\n if (item?.externalLink) {\n return item?.externalLink;\n }\n if (item?.internalLink) {\n return item?.internalLink;\n }\n if (item?.publicBooking) {\n return `/ticketshop/publicbooking/${slugify(item.name)}`;\n } else {\n if (filter) {\n return `/ticketshop/${slugify(filter.name)}`;\n }\n }\n };\n return (\n !item.externalLink && navigate(link())}\n href={item?.externalLink && item?.externalLink}\n target={item?.externalLink && \"_blank\"}\n key={uuid()}\n aria-label={`${item?.text?.primary}, ${item?.text?.secondary}`}\n tabIndex={0}\n >\n \n \n \n \n\n \n {item?.text?.primary}\n \n\n \n {item?.text?.secondary}  \n \n \n \n );\n};\nexport default CardV2;\n","import React from \"react\";\nimport {\n createStyles,\n Divider,\n Image,\n Text,\n UnstyledButton,\n} from \"@mantine/core\";\nimport { useNavigate } from \"@reach/router\";\nimport { useSelector } from \"react-redux\";\nimport slugify from \"../common/slugify\";\nimport { v4 as uuid } from \"uuid\";\nimport { useSessionStorage } from \"@mantine/hooks\";\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n display: \"grid\",\n gridTemplateColumns: \"90% 1fr\",\n gridGap: \"1rem\",\n padding: \"0rem 1rem\",\n width: \"100%\",\n \":hover\": {\n backgroundColor: theme.colors.gray[1],\n p: {\n color: \"black\",\n },\n },\n \"@media screen and (max-width: 768px)\": {\n gridGap: \"0.5rem\",\n padding: \"0rem 0.5rem\",\n gridTemplateColumns: \"auto auto\",\n },\n },\n priceWrapper: {\n p: {\n textAlign: \"right\",\n },\n \"&:last-child\": {\n justifySelf: \"end\",\n alignSelf: \"center\",\n },\n },\n imageWrapper: {},\n title: {\n fontWeight: \"bold\",\n marginBottom: 0,\n marginTop: \"1rem\",\n \"@media screen and (max-width: 768px)\": {},\n },\n price: {\n paddingRight: \"1rem\",\n marginTop: \".5rem\",\n },\n grid: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"1rem\",\n width: \"100%\",\n padding: \"1rem 0rem\",\n \"@media screen and (max-width: 768px)\": { gap: \"0.7rem\" },\n },\n}));\n\nconst ListV2 = ({ item, slug }) => {\n const { config, language } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n }));\n const [selected, setSelected] = useSessionStorage({\n key: \"activeLink\",\n defaultValue: \"\",\n });\n const { classes, theme } = useStyles();\n const navigate = useNavigate();\n\n const link = () => {\n setSelected(item?.text?.primary.toLowerCase());\n const filter = config.landingPage.links.filter(\n (el) => el.name === item.name\n )?.[0];\n if (slug) {\n return slug;\n }\n if (item?.eventCalendar) {\n return `/ticketshop/tickets/${slugify(item.name)}`;\n }\n if (item?.articleBooking) {\n return `/ticketshop/booking/${slugify(item.name)}`;\n }\n if (item?.externalLink) {\n return item?.externalLink;\n }\n if (item?.internalLink) {\n return item?.internalLink;\n }\n if (item?.publicBooking) {\n return `/ticketshop/publicbooking/${slugify(item.name)}`;\n } else {\n if (filter) {\n return `/ticketshop/${slugify(filter.name)}`;\n }\n }\n };\n\n return (\n <>\n !item.externalLink && navigate(link())}\n href={item?.externalLink && item?.externalLink}\n target={item?.externalLink && \"_blank\"}\n style={{ borderRadius: \"8px\" }}\n key={uuid()}\n aria-label={`${item?.text?.primary}, ${item?.text?.secondary}`}\n tabIndex={0}\n >\n
    \n
    \n \n
    \n
    \n \n {item?.text?.primary}\n \n \n {item?.text?.secondary}\n \n
    \n
    \n \n \n \n );\n};\n\nexport default ListV2;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport clsx from \"clsx\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport Card from \"./card\";\nimport List from \"./list\";\nimport slugify from \"../common/slugify\";\nimport CardV2 from \"./CardV2\";\nimport ListV2 from \"./ListV2\";\n\nconst useStyles = makeStyles((theme) => ({\n landingContent: {\n display: (p) => (p.list === \"CARD\" ? \"grid\" : \"block\"),\n gridTemplateColumns: \"repeat(3, 1fr)\",\n \"@media screen and (max-width: 768px)\": {\n gridTemplateColumns: (p) => p.list === \"CARD\" && \"1fr\",\n },\n gridGap: (p) => (p.list === \"CARD\" ? \"0.25rem\" : \"1rem\"),\n },\n}));\n\nconst getPagesWithOnlyOneEvent = (pages) => {\n let pagesWithOnlyOneEvent = [];\n\n pages.map((page) =>\n page.events && page.events.length === 1\n ? pagesWithOnlyOneEvent.push(page.name)\n : null\n );\n\n return pagesWithOnlyOneEvent;\n};\n\nconst LandingPage = () => {\n const { config, language } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n }));\n\n const { pages } = config;\n const pagesWithOnlyOneEvent = getPagesWithOnlyOneEvent(pages);\n\n const { landingPage } = config;\n const { listType, links } = landingPage;\n const list = window.innerWidth > 667 ? listType.lg : listType.sm || \"CARD\";\n const classes = useStyles({ list });\n return (\n
    \n {links.map((landingPage, index) => {\n if (landingPage.disabled) return null;\n const landingTexts = language.LandingTexts;\n const text = landingTexts\n ? landingTexts[landingPage.name]\n : { primary: null, secondary: null };\n const image = `${process.env.PUBLIC_URL}${config.imageFolderUrl}${\n landingPage.image ? landingPage.image : \"placeholder.jpg\"\n }`;\n const item = { ...landingPage, image, text };\n\n if (\n pagesWithOnlyOneEvent.includes(item.name) &&\n config.useAutoNavigationOnSingleEvent\n ) {\n const eventSlug = `${process.env.PUBLIC_URL}/events/${slugify(\n item.name\n )}`;\n return list === \"CARD\" ? (\n config?.useNewCard ? (\n \n ) : (\n \n )\n ) : config?.useNewList ? (\n \n ) : (\n \n );\n } else {\n return list === \"CARD\" ? (\n config?.useNewCard ? (\n \n ) : (\n \n )\n ) : config?.useNewList ? (\n \n ) : (\n \n );\n }\n })}\n
    \n );\n};\n\nexport default LandingPage;\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\";\n\n// const getAllArticles = (tags) => {\n// let ids = [];\n// let articles = [];\n// tags.forEach((t) => {\n// t.articles.forEach((a) => {\n// if (!ids.includes(a.id)) {\n// ids = [...ids, a.id];\n// articles = [...articles, a];\n// }\n// });\n// });\n// return articles;\n// };\n\nconst extendArticle = (\n productConfig = {},\n a = {},\n config,\n imageUri,\n culture\n) => {\n const { imageFolderUrl, descriptionFolderUrl, thumbnailsFolderUrl } = config;\n\n // If it's a product that only exists in config\n const plu = a.plu ? a.plu : productConfig.plu;\n // If a is productGroup with useGroupsAsItems\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n if (a.articles)\n return {\n ...a,\n name: a.name ? a.name : productConfig.name,\n plu,\n description: productConfig.description\n ? `${descriptionFolderUrl}${productConfig.description}`\n : undefined,\n id: a.id,\n imageUri,\n images: imageUri\n ? [`${uri}/articleimage/${imageUri}`]\n : !plu && productConfig.images\n ? productConfig.images.map(\n (img) => `${process.env.PUBLIC_URL}${imageFolderUrl}${img}`\n )\n : undefined,\n thumbnail: productConfig.thumbnail\n ? `${process.env.PUBLIC_URL}${thumbnailsFolderUrl}${productConfig.thumbnail}`\n : undefined,\n isInfo: productConfig.isInfo || false,\n isModification: productConfig.isModification || false,\n isOpenPrice: productConfig.isOpenPrice,\n openPriceValues:\n productConfig.openPriceValues?.length > 0\n ? productConfig.openPriceValues\n : null,\n relatedProducts: productConfig.relatedProducts || [],\n displayPrice: a.priceInclVat,\n slug: `products/${plu}`,\n };\n\n return {\n ...a,\n name:\n a.translation?.find((t) => t.culture === culture)?.name ||\n a.translation?.find((t) => t.culture === \"sv-SE\")?.name ||\n a.name ||\n productConfig.name ||\n `Product Name (${plu})`,\n plu,\n description: productConfig.description\n ? `${descriptionFolderUrl}${productConfig.description}`\n : undefined,\n id: a.id,\n imageUri,\n images: imageUri ? [`${uri}/articleimage/${imageUri}`] : undefined,\n thumbnail: productConfig.thumbnail\n ? `${process.env.PUBLIC_URL}${thumbnailsFolderUrl}${productConfig.thumbnail}`\n : undefined,\n isInfo: productConfig.isInfo || false,\n isModification: productConfig.isModification || false,\n isOpenPrice: productConfig.isOpenPrice,\n openPriceValues:\n productConfig.openPriceValues?.length > 0\n ? productConfig.openPriceValues\n : null,\n relatedProducts: productConfig.relatedProducts || [],\n displayPrice: a.priceInclVat,\n slug: `products/${plu}`,\n };\n};\n\nexport const getProduct = (data, config, id, culture) => {\n let productGroupConfig = config.productGroupConfig.find(\n (c) => slugify(c.name) === id\n );\n if (!data || (productGroupConfig && !productGroupConfig?.useGroupsAsItems))\n return undefined;\n\n const productConfig = productGroupConfig?.useGroupsAsItems\n ? productGroupConfig\n : config.productConfig.find((c) => c.plu === Number(id));\n let a = productGroupConfig?.useGroupsAsItems\n ? // Checks if product is productGroup with useGroupsAsItems\n data.tags.find((t) => slugify(t.name) === id)\n : // If not, looks for article in data.articles\n data.articles.find((article) => article.plu === Number(id));\n\n const imageUri = productGroupConfig?.useGroupsAsItems\n ? undefined\n : data.articles.find((article) => article.plu === Number(id))\n ?.imageFilename;\n\n return extendArticle(productConfig, a, config, imageUri, culture);\n};\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\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\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 //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 {\n Badge,\n createStyles,\n Group,\n Paper,\n Text,\n ThemeIcon,\n Title,\n} from \"@mantine/core\";\nimport Ticket from \"./icons/Ticket\";\nimport React from \"react\";\nimport { differenceInDays } from \"date-fns\";\nimport { useSelector } from \"react-redux\";\n\nconst ICON_SIZE = 60;\n\nconst useStyles = createStyles((theme) => ({\n card: {\n position: \"relative\",\n overflow: \"visible\",\n padding: theme.spacing.xl,\n paddingTop: theme.spacing.xl * 1.5 + ICON_SIZE / 3,\n border: \"1px solid #8A8C93\",\n },\n\n icon: {\n position: \"absolute\",\n top: -ICON_SIZE / 3,\n left: `calc(50% - ${ICON_SIZE / 2}px)`,\n },\n\n title: {\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n lineHeight: 1,\n },\n}));\n\nconst ExtensionCard = ({ card }) => {\n const { language, config } = useSelector((state) => ({\n language: state.language,\n config: state.config,\n }));\n const { classes } = useStyles();\n\n return (\n <>\n {language.YourTicket}\n \n \n \n \n\n \n {card.owner?.firstname} {card.owner?.lastname}\n \n \n {card.validFrom.split(\"T\")[0]} - {card.validUntil.split(\"T\")[0]}\n \n \n {card.article.name}\n \n {differenceInDays(new Date(card.validUntil), new Date())}{\" \"}\n {language.DaysLeft}\n \n \n \n \n );\n};\n\nexport default ExtensionCard;\n","import { Checkbox, createStyles, Text, UnstyledButton } from \"@mantine/core\";\nimport React from \"react\";\n\nconst useStyles = createStyles((theme, { checked }) => ({\n button: {\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n transition: \"background-color 150ms ease, border-color 150ms ease\",\n border: `1px solid ${\n checked\n ? theme.fn.variant({ variant: \"outline\", color: theme.primaryColor })\n .border\n : theme.colorScheme === \"dark\"\n ? theme.colors.dark[8]\n : \"#8A8C93\"\n }`,\n borderRadius: \"6px\",\n padding: theme.spacing.sm,\n backgroundColor: checked\n ? theme.fn.variant({ variant: \"light\", color: theme.primaryColor })\n .background\n : theme.colorScheme === \"dark\"\n ? theme.colors.dark[8]\n : theme.white,\n marginBottom: theme.spacing.sm,\n \":hover\": {\n backgroundColor: theme.colors.gray[1],\n },\n },\n\n body: {\n flex: 1,\n marginLeft: theme.spacing.md,\n },\n checkbox: {\n // backgroundColor: checked ? theme.colors.dark[6] : theme.colors.gray[2],\n border: checked ? theme.colors.gray[5] : null,\n borderRadius: \"4px\",\n },\n}));\n\nconst ExtensionModifications = ({\n modification,\n id,\n title,\n price,\n checked,\n checkedSet,\n}) => {\n const { classes, cx } = useStyles({ checked: checked?.id === id });\n\n return (\n checkedSet(modification)}\n className={cx(classes.button)}\n >\n
    \n \n {price}\n \n \n {title}\n \n
    \n {\n checkedSet(modification);\n }}\n tabIndex={-1}\n styles={{ input: { cursor: \"pointer\" } }}\n className={`${classes.checkbox}`}\n />\n \n );\n};\n\nexport default ExtensionModifications;\n","import {\n Button,\n Container,\n createStyles,\n Grid,\n Image,\n Loader,\n Popover,\n Text,\n TextInput,\n Title,\n} from \"@mantine/core\";\nimport React, { useContext, useMemo, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { addModification } from \"../../../common/sale\";\nimport { STATE_CULTURE } from \"../../../common/state\";\nimport Markdown from \"react-markdown\";\nimport { motion } from \"framer-motion\";\nimport { SaleContext } from \"../../common/saleProvider\";\nimport { useLazyQuery } from \"@apollo/react-hooks\";\nimport gql from \"graphql-tag\";\nimport ExtensionCard from \"./ExtensionCard\";\nimport ExtensionModifications from \"./ExtensionModifications\";\nimport { useMediaQuery } from \"@mantine/hooks\";\nimport { Context, OPEN_CART, TOAST } from \"../../../context\";\n\nconst useStyles = createStyles((theme) => ({\n container: {\n \"@media screen and (max-width: 768px)\": {\n paddingTop: \"0.3rem\",\n },\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n gap: \"1rem\",\n button: {\n width: \"fit-content\",\n },\n },\n inputWrapper: {\n margin: \"1rem 0rem\",\n },\n stockWrapper: {\n marginTop: \".5rem\",\n \"@media screen and (max-width: 768px)\": {\n marginTop: \".35rem\",\n },\n },\n stockIndicator: {\n width: \"1rem\",\n height: \"1rem\",\n borderRadius: \"50%\",\n },\n inStock: {\n backgroundColor: theme.colors.green[1],\n },\n outOfStock: {\n backgroundColor: theme.colors.red[2],\n },\n stockText: {\n fontSize: \"1rem\",\n fontWeight: \"inherit\",\n },\n price: {\n display: \"flex\",\n alignItems: \"end\",\n justifySelf: \"end\",\n fontSize: \"1.25rem\",\n fontWeight: \"bold\",\n },\n list: {\n display: \"flex\",\n alignItems: \"center\",\n },\n button: {\n width: \"fit-content\",\n justifySelf: \"end\",\n },\n descriptionTitle: {\n fontSize: \"1rem\",\n },\n descriptionBody: {\n marginTop: \"0.5rem\",\n p: {\n marginTop: \"-.1rem\",\n },\n },\n buttonWrapper: {\n display: \"flex\",\n justifyContent: \"end\",\n },\n actionButton: {\n borderRadius: \"50%\",\n border: \"none\",\n },\n actionWrapper: {\n backgroundColor: \"#F3F3F4\",\n padding: \"0.5rem\",\n borderRadius: \"2rem\",\n width: \"fit-content\",\n minWidth: \"8.2rem\",\n },\n actionGrid: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"1rem\",\n alignItems: \"center\",\n marginTop: \"1rem\",\n \"@media screen and (min-width: 769px)\": {\n gap: \"2rem\",\n },\n },\n alertWrapper: {\n marginTop: \"1.25rem\",\n width: \"100%\",\n },\n addToCart: {\n justifySelf: \"end\",\n },\n}));\n\nconst GET_INTERNAL_FUNDS = gql`\n query InternalFundsQuery($barcode: String) {\n internalFundsLookup(barcode: $barcode) {\n hasInternalFunds\n fundsAmount\n isRefundable\n minimumAmount\n maximumAmount\n articleId\n fundsId\n ticketId\n }\n }\n`;\n\nconst TICKET_BY_BARCODE = gql`\n query ticketByBarcode($barcode: String, $posId: Int) {\n ticketByBarcode(barcode: $barcode, posId: $posId) {\n id\n applicableModifications {\n id\n name\n priceInclVat\n plu\n }\n article {\n id\n }\n validFrom\n validUntil\n owner {\n firstname\n lastname\n }\n uniqueIdentifier\n article {\n id\n name\n }\n }\n }\n`;\n\nconst Extension = ({ product, description }) => {\n const { config, culture, language } = useSelector((state) => ({\n config: state.config,\n culture: state.cookies[STATE_CULTURE],\n language: state.language,\n }));\n\n const [value, valueSet] = useState(null);\n const [checked, checkedSet] = useState(null);\n const [quantity, quantitySet] = useState(1);\n const [addedToCart, addedToCartSet] = useState(null);\n const [openPrice, openPriceSet] = useState(100);\n\n const { classes } = useStyles();\n const handlers = useRef();\n const rdxDispatch = useDispatch();\n const saleContext = useContext(SaleContext);\n const { sale } = saleContext.state;\n const { posId } = config;\n const mobile = useMediaQuery(\"(max-width: 768px)\");\n const { dispatch } = useContext(Context);\n\n const [getTicket, { loading, error, data }] = useLazyQuery(\n TICKET_BY_BARCODE,\n {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"no-cache\",\n }\n );\n\n const [\n getFunds,\n { loading: loadingFunds, error: errorFunds, data: dataFunds },\n ] = useLazyQuery(GET_INTERNAL_FUNDS, {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"no-cache\",\n });\n\n const getProduct = config.productConfig.filter(\n (el) => el?.plu === product?.plu\n )?.[0];\n const getTranslation =\n getProduct &&\n getProduct?.translation.filter((el) => el.culture === culture)?.[0];\n\n const getImage = `${process.env.PUBLIC_URL}/${config?.imageFolderUrl}${getProduct.images?.[0]}`;\n\n const callback = (status, msg) => {\n if (status === 200) {\n dispatch({ type: OPEN_CART });\n }\n if (status !== 200) {\n return dispatch({\n type: TOAST,\n payload: {\n text: msg,\n variant: \"error\",\n },\n });\n }\n };\n const ticketId = data?.ticketByBarcode?.[0]?.id;\n const articleId = data?.ticketByBarcode?.[0]?.article.id;\n const plu = checked?.plu;\n const fundsId = dataFunds ? dataFunds?.internalFundsLookup?.fundsId : null;\n const amount = dataFunds\n ? checked?.priceInclVat.replace(/[^0-9\\.]+/g, \"\")\n : null;\n const handleAdd = () => {\n const model = {\n ticketId,\n articleId,\n plu,\n fundsId,\n amount,\n };\n\n rdxDispatch(\n addModification(model, (status, msg) => {\n callback(status, msg);\n })\n );\n };\n const getExtensions = () => {\n getTicket({ variables: { barcode: value, posId: posId } });\n getFunds({ variables: { barcode: value, posId: posId } });\n };\n\n const disabledAdd = useMemo(() => {\n if (sale) {\n const qty = sale.items.filter(\n (el) => el.article.plu === product?.plu\n )?.[0]?.quantity;\n const calc = product?.inStock - (qty ? qty : 0);\n if (quantity > calc || quantity === undefined) {\n return true;\n }\n }\n }, [sale, product, quantity]);\n\n return (\n \n \n \n \n \n \n \n \n
    \n \n {getTranslation.name}\n \n
    \n
    \n \n
    \n
    \n valueSet(e.currentTarget.value)}\n label={language.Extend}\n />\n
    \n
    \n \n {loading ? : language.Fetch_Ticket}\n \n \n \n
    \n \n \n \n {language.CouldNotFindTicket}\n \n \n \n
    \n {/* */}\n {/* */}\n {/* \n {language.Description}\n */}\n \n \n {data && data?.ticketByBarcode.length > 0 && (\n \n \n \n \n\n \n {data?.ticketByBarcode.length > 0 && (\n \n {language.AvailableModifications}\n \n )}\n {data &&\n data?.ticketByBarcode.length > 0 &&\n data.ticketByBarcode[0].applicableModifications.length > 0 &&\n data.ticketByBarcode[0].applicableModifications.map((el) => (\n \n ))}\n \n \n handleAdd()}\n >\n {language.AddToCartBtn}\n \n \n \n )}\n \n );\n};\n\nexport default Extension;\n","import { createStyles, Image, Select } from \"@mantine/core\";\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { STATE_CULTURE } from \"../../../common/state\";\nimport \"./styles.css\";\n\nconst useStyles = createStyles((theme) => ({\n chooseVariant: {\n fontWeight: \"bold\",\n },\n chooseArticle: {\n color: theme.colors.gray[7],\n marginTop: \"-.5rem\",\n fontSize: \"0.8rem\",\n fontWeight: \"400\",\n },\n produtSelectorWrapper: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \".8rem\",\n },\n productImageSelector: {\n width: \"100%\",\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fit, minmax(7rem, 1fr))\",\n gap: \"1rem\",\n \"@media screen and (max-width: 768px)\": {\n gridTemplateColumns: \"repeat(auto-fit, minmax(6rem, 1fr))\",\n },\n },\n productWrapper: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \".5rem\",\n },\n container: {\n marginTop: \"1rem\",\n },\n wrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \".8rem\",\n marginTop: \"0.5rem\",\n },\n\n imageButton: {\n width: \"100%\",\n border: \"none\",\n background: \"none\",\n cursor: \"pointer\",\n \"&:hover\": {\n opacity: 0.8,\n },\n },\n\n productImage: {\n height: \"6rem\",\n width: \"7rem\",\n objectFit: \"cover\",\n \"@media screen and (max-width: 768px)\": { height: \"6rem\", width: \"6rem\" },\n },\n}));\nconst ProductSelector = ({ product, selected, selectedSet }) => {\n const [value, valueSet] = useState(null);\n const { config, culture, language } = useSelector((state) => ({\n config: state.config,\n culture: state.cookies[STATE_CULTURE],\n language: state.language,\n }));\n const { classes } = useStyles();\n\n const itemsArr =\n !product.openPriceValues &&\n product.articles.reduce((acc, curr, index) => {\n acc.push({\n key: index,\n value: curr.id,\n label:\n curr.inStock <= 0\n ? curr.name + \" \" + language.ArticleBooking.OutOfStock\n : curr.name + \" \" + curr.priceInclVat,\n disabled: curr.inStock <= 0,\n });\n return acc;\n }, []);\n\n const openPriceValues =\n product.openPriceValues &&\n product.openPriceValues.reduce((acc, curr, index) => {\n acc.push({\n key: index,\n value: curr,\n label: curr + \" kr\",\n });\n return acc;\n }, []);\n\n useEffect(() => {\n if (value && product.articles) {\n const getItem = product.articles.filter((el) => el.id === value);\n if (getItem) {\n selectedSet(getItem);\n } else {\n selectedSet(null);\n }\n }\n if (value && product.openPriceValues) {\n selectedSet({ plu: product.plu, priceInclVat: value, quantity: 1 });\n }\n }, [product, value]);\n\n const getName = (item) => {\n return item.translation.filter((el) => el.culture === culture)[0].name;\n };\n\n const image = (item) => {\n if (item.imageFilename) {\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n return `${uri}/articleimage/${item.imageFilename}`;\n }\n return;\n };\n\n return (\n
    \n
    \n {config?.useProductImageSelector && !product?.openPriceValues ? (\n
    \n \n {language.ChooseVariant}\n \n \n {language.ChooseArticle}\n \n
    \n {!product?.openPriceValues &&\n product.articles.map((el, i) => (\n
    \n valueSet(el.id)}\n aria-label={`${language.ChooseVariant} ${getName(el)} ${\n el?.id === value ? language.Chosen : \"\"\n }`}\n >\n \n \n
    \n ))}\n
    \n
    \n ) : (\n !product?.openPriceValues &&\n itemsArr &&\n itemsArr.length > 0 && (\n \n )\n )}\n {product?.openPriceValues && (\n \n )}\n
    \n
    \n );\n};\n\nexport default ProductSelector;\n","import {\n ActionIcon,\n Button,\n Container,\n createStyles,\n Divider,\n Grid,\n Group,\n Image,\n List,\n NumberInput,\n Text,\n ThemeIcon,\n Title,\n} from \"@mantine/core\";\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { addArticle, addToCartTracking } from \"../../../common/sale\";\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../../common/state\";\nimport { getSaleData } from \"../util\";\nimport Markdown from \"react-markdown\";\nimport ProductSelector from \"./ProductSelector\";\nimport slugify from \"../../common/slugify\";\nimport axios from \"axios\";\nimport { motion } from \"framer-motion\";\nimport \"./styles.css\";\nimport { SaleContext } from \"../../common/saleProvider\";\nimport { useMediaQuery } from \"@mantine/hooks\";\nimport { HiMinusSm, HiPlusSm } from \"react-icons/hi\";\n\nconst useStyles = createStyles((theme) => ({\n container: {\n \"@media screen and (max-width: 768px)\": {\n paddingTop: \"0.3rem\",\n },\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n gap: \"1rem\",\n button: {\n width: \"fit-content\",\n },\n },\n imageWrapper: {\n height: \"100%\",\n minHeight: \"12rem\",\n maxHeight: \"30rem\",\n },\n image: {\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"30rem\",\n },\n stockWrapper: {\n marginTop: \".5rem\",\n \"@media screen and (max-width: 768px)\": {\n marginTop: \".35rem\",\n },\n },\n stockIndicator: {\n width: \"1rem\",\n height: \"1rem\",\n borderRadius: \"50%\",\n },\n inStock: {\n backgroundColor: theme.colors.green[1],\n },\n outOfStock: {\n backgroundColor: theme.colors.red[2],\n },\n stockText: {\n fontSize: \"1rem\",\n fontWeight: \"inherit\",\n },\n price: {\n display: \"flex\",\n alignItems: \"end\",\n justifySelf: \"end\",\n fontSize: \"1.15rem\",\n fontWeight: \"bold\",\n },\n list: {\n display: \"flex\",\n alignItems: \"center\",\n },\n button: {\n width: \"fit-content\",\n justifySelf: \"end\",\n },\n descriptionTitle: {\n fontSize: \"1rem\",\n },\n descriptionBody: {\n marginTop: \"0.5rem\",\n p: {\n marginTop: \"-.1rem\",\n },\n },\n buttonWrapper: {\n display: \"flex\",\n justifyContent: \"end\",\n },\n actionButton: {\n borderRadius: \"50%\",\n border: \"none\",\n },\n actionWrapper: {\n backgroundColor: \"#F3F3F4\",\n padding: \"0.3rem 0.4rem\",\n borderRadius: \"2rem\",\n width: \"fit-content\",\n minWidth: \"8.2rem\",\n },\n actionGrid: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"1rem\",\n alignItems: \"center\",\n marginTop: \"1.5rem\",\n \"@media screen and (min-width: 769px)\": {\n gap: \"2rem\",\n },\n },\n alertWrapper: {\n width: \"100%\",\n },\n alertContainer: {\n position: \"absolute\",\n width: \"15rem\",\n marginTop: \"2.5rem\",\n },\n hideLabel: {\n opacity: 0,\n position: \"absolute\",\n width: \"0px\",\n height: \"0px\",\n },\n}));\nconst GroupProduct = ({ product, description }) => {\n const { config, culture, language, currency } = useSelector((state) => ({\n config: state.config,\n culture: state.cookies[STATE_CULTURE],\n language: state.language,\n currency: state.cookies[STATE_CURRENCY],\n }));\n const [quantity, quantitySet] = useState(1);\n const [addedToCart, addedToCartSet] = useState(null);\n const [selected, selectedSet] = useState(null);\n const [text, textSet] = useState(\"\");\n const { classes } = useStyles();\n const handlers = useRef();\n const quantityChangeRef = useRef();\n const rdxDispatch = useDispatch();\n const saleContext = useContext(SaleContext);\n const { sale } = saleContext.state;\n const mobile = useMediaQuery(\"(max-width: 768px)\");\n\n const handleAdd = () => {\n const productData = [\n {\n id: selected?.[0]?.plu,\n name: selected?.[0]?.name,\n price: selected?.[0]?.price?.amountInclVat,\n quantity: quantity,\n },\n ];\n addToCartTracking(currency, productData);\n announceQuantityChange(quantity);\n const callback = (status, msg) => {\n if (status === 200) {\n quantitySet(1);\n addedToCartSet(true);\n setTimeout(() => {\n addedToCartSet(null);\n }, 5000);\n }\n if (status !== 200) {\n quantitySet(1);\n addedToCartSet(false);\n setTimeout(() => {\n addedToCartSet(null);\n }, 5000);\n }\n };\n let article;\n let values;\n let photo;\n let overrideDate;\n const saleData = product.articles\n ? getSaleData(selected[0], article, values, photo, quantity, overrideDate)\n : {\n plu: selected.plu,\n quantity: quantity,\n priceInclVat: selected.priceInclVat * 100,\n };\n rdxDispatch(addArticle(saleData, callback));\n };\n\n useEffect(() => {\n axios\n .get(\n `${process.env.PUBLIC_URL}/ee-static/shop/${\n config?.shopName\n }/Texts/${slugify(product.name)}.${culture}.md`\n )\n .then((res) => textSet(res.data))\n .catch((err) => console.log(err));\n }, [product]);\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n const img = `${uri}/articleimage/${selected?.[0]?.imageFilename}`;\n const regex = /\\D/g;\n const reduce =\n product.articles &&\n product.articles.reduce((acc, curr) => {\n acc.push(curr.priceInclVat);\n return acc;\n }, []);\n\n const reduceChooseValue =\n product.openPriceValues &&\n product.openPriceValues.reduce((acc, curr) => {\n acc.push(curr);\n return acc;\n }, []);\n\n const sortPrice = (prices) => {\n if (prices && typeof prices?.[0] === typeof 0) {\n const sortOpenPrice = prices.sort((a, b) => a - b);\n return sortOpenPrice;\n } else if (prices && typeof prices?.[0] === typeof \"\") {\n const sortStringValue = prices.sort(\n (a, b) => a.replace(regex, \"\") - b.replace(regex, \"\")\n );\n return sortStringValue;\n }\n };\n\n const price = useCallback(() => {\n if (product?.priceInclVat > 0) {\n return product?.priceInclVat;\n }\n\n if (product?.openPriceValues && !reduceChooseValue) {\n return `${language.FromCost} ${product?.openPriceValues?.[0]} kr`;\n }\n\n if (selected?.[0]?.priceInclVat) {\n return selected?.[0].priceInclVat;\n }\n\n if (reduce) {\n return `${sortPrice(reduce)?.[0]} - ${\n sortPrice(reduce)?.[sortPrice(reduce).length - 1]\n }`;\n }\n\n if (reduceChooseValue) {\n return `${sortPrice(reduceChooseValue)?.[0]} kr - ${\n sortPrice(reduceChooseValue)?.[sortPrice(reduceChooseValue).length - 1]\n } kr`;\n }\n }, [product, selected, reduceChooseValue, reduce]);\n\n const disabledIncrement = useMemo(() => {\n if (sale) {\n const qty = sale.items.filter(\n (el) => el.article.plu === selected?.[0]?.plu\n )?.[0]?.quantity;\n const calc = selected?.[0]?.inStock - (qty ? qty : 0);\n if (quantity >= calc) {\n return true;\n }\n }\n }, [sale, selected, quantity]);\n\n const disabledAdd = useMemo(() => {\n if (sale) {\n const qty = sale.items.filter(\n (el) => el.article.plu === selected?.[0]?.plu\n )?.[0]?.quantity;\n const calc = selected?.[0]?.inStock - (qty ? qty : 0);\n if (quantity > calc) {\n return true;\n }\n }\n }, [sale, selected, quantity]);\n\n const isAddedToCart = sale?.items.filter(\n (el) => el?.article?.plu === selected?.[0]?.plu\n );\n\n const announceQuantityChange = (newQuantity) => {\n quantityChangeRef.current.innerText = `${language.Quantity} ${newQuantity}`;\n };\n\n const increment = () => {\n handlers.current.increment();\n announceQuantityChange(quantity + 1);\n };\n\n const decrement = () => {\n handlers.current.decrement();\n announceQuantityChange(quantity - 1);\n };\n\n if (!product) return null;\n return (\n \n \n \n \n \n \n \n \n
    \n \n {product.name}\n \n
    \n \n \n {selected && selected?.[0]?.isProduct ? (\n \n 0 ? \"#40C057\" : \"#FA5252\"\n }\n size={19}\n radius=\"xl\"\n >\n
    \n \n }\n >\n \n {selected?.[0].inStock > 0\n ? language.In_Stock\n : language.Not_In_Stock}\n

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

    {language.PersonalDetails}

    \n

    {language.FillForm}

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

    {language.Photo}

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

    {language.AddPhoto}

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

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

    \n \n )}\n \n \n \n \n {!product.isOpenPrice ? product.priceInclVat : \"\"}\n \n \n \n\n {product.isPersonalTicket && }\n {product.isOpenPrice && (\n
    \n openPriceSet(val)}\n min={1}\n icon={\n \n kr\n \n }\n parser={(value) => value.replace(/[$€]\\s?|(,*)/g, \"\")}\n formatter={(value) =>\n !Number.isNaN(parseFloat(value))\n ? `${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"\")\n : \"\"\n }\n />\n
    \n )}\n
    \n \n \n decrement()}\n aria-label={`${getTranslation.name} ${language.DecreaseQuantity}`}\n >\n
    \n \n
    \n \n quantitySet(val)}\n handlersRef={handlers}\n max={product.inStock}\n min={1}\n step={1}\n disabled={\n product.inStock <= 0 ||\n (product.isOpenPrice && !openPrice) ||\n product.isGiftCertificate\n }\n styles={{\n input: {\n backgroundColor: \"transparent\",\n border: \"none\",\n width: 35,\n textAlign: \"center\",\n height: 35,\n fontWeight: \"600\",\n fontSize: \"1.25rem\",\n padding: 0,\n },\n }}\n />\n increment()}\n >\n
    \n \n
    \n \n \n\n \n \n {!product.isOpenPrice &&\n disabledAdd &&\n isAddedToCart?.length > 0\n ? language.MaxInCart\n : !product.isOpenPrice &&\n disabledAdd &&\n language.Not_In_Stock}\n\n {!disabledAdd && addedToCart\n ? language.Added_To_Cart\n : !disabledAdd && language.AddToCartBtn}\n\n {product.isOpenPrice && disabledAdd && language.AddToCartBtn}\n \n
    \n
    \n\n \n \n {language.Description}\n \n\n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default SingleProduct;\n","import { Button, Container, createStyles } from \"@mantine/core\";\nimport axios from \"axios\";\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { STATE_CULTURE } from \"../../../common/state\";\nimport Extension from \"./Extension\";\nimport GroupProduct from \"./GroupProduct\";\nimport PersonalTicket from \"./PersonalTicket\";\nimport SingleProduct from \"./SingleProduct\";\nimport { navigate } from \"@reach/router\";\n\nconst useStyles = createStyles((theme) => ({\n container: {\n marginTop: \"-0rem\",\n \"@media screen and (max-width: 768px)\": {\n marginTop: 0,\n },\n },\n button: {\n border: \"1px solid #8A8C93\",\n },\n buttonWrapper: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"start\",\n paddingTop: 0,\n paddingBottom: \".5rem\",\n },\n}));\nconst ProductV2 = ({ product }) => {\n const [description, descriptionSet] = useState(null);\n const { language, culture } = useSelector((state) => ({\n language: state.language,\n culture: state.cookies[STATE_CULTURE],\n }));\n const { classes } = useStyles();\n\n useEffect(() => {\n if (product.description !== undefined) {\n axios\n .get(`${process.env.PUBLIC_URL}/${product.description}.${culture}.md`)\n .then((res) => descriptionSet(res.data))\n .catch((err) => console.log(err));\n }\n return () => descriptionSet(null);\n }, [product]);\n\n return (\n
    \n \n navigate(-1)}\n >\n {language.Back}\n \n \n {product?.articles || product?.openPriceValues?.length > 0 ? (\n \n ) : !product.isPersonalTicket && !product.isModification ? (\n \n ) : product.isModification ? (\n \n ) : (\n \n )}\n
    \n );\n};\n\nexport default ProductV2;\n","import React, { useContext, useMemo } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getProduct } from \"./util\";\nimport Product from \"../../components/Product\";\nimport PageLayout from \"../../components/Styles/PageLayout\";\nimport PageContent from \"../../components/Styles/PageContent\";\nimport { STATE_CULTURE } from \"../../common/state\";\nimport { DataContext } from \"../../components/common/dataProvider\";\nimport ProductV2 from \"../../components/Product/ProductV2\";\nimport { Button, Container, Text, Title } from \"@mantine/core\";\nimport { useNavigate } from \"@reach/router\";\nimport { SaleContext } from \"../../components/common/saleProvider\";\n\nconst ProductPage = ({ id }) => {\n const { config, culture, language } = useSelector((state) => ({\n config: state.config,\n culture: state.cookies[STATE_CULTURE],\n language: state.language,\n }));\n const { data } = useContext(DataContext);\n const saleContext = useContext(SaleContext);\n const { sale } = saleContext.state;\n\n const product = useMemo(\n () => getProduct(data, config, id, culture),\n [data, id, config, culture, sale]\n );\n const navigate = useNavigate();\n const isProduct = product?.plu || product?.articles;\n\n if (!product || !isProduct) {\n return (\n \n \n \n \n {language.CouldNotFindProductHeader}\n \n \n {language.CouldNotFindProductText}\n \n navigate(-1)}\n className=\"primaryButton\"\n variant=\"filled\"\n size=\"md\"\n radius=\"sm\"\n >\n {language.BackToHomepage}\n \n \n \n \n );\n }\n return (\n \n \n {config?.useNewProductPage ? (\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default ProductPage;\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\";\nimport { useLocation } from \"@reach/router\";\nimport { useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport axios from \"axios\";\nimport classNames from \"classnames\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport Button from \"@material-ui/core/Button\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Typography from \"@material-ui/core/Typography\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport PrevIcon from \"@material-ui/icons/ChevronLeft\";\nimport NextIcon from \"@material-ui/icons/ChevronRight\";\nimport ImageGallery from \"react-image-gallery\";\nimport Markdown from \"react-markdown\";\nimport Calendar from \"../common/Calendar\";\nimport Articles from \"./articles\";\nimport { getOccasionTimes } from \"./util\";\nimport SocialShare from \"../common/socialShare\";\nimport { STATE_CULTURE } from \"../../common/state\";\nimport { ReactComponent as Placeholder } from \"../../images/placeholder.svg\";\n\nlet source;\nconst useStyles = makeStyles((theme) => ({\n header: {\n height: \"54px\",\n display: \"flex\",\n alignItems: \"center\",\n },\n divider: {\n marginBottom: \"16px\",\n },\n titleText: {\n flexGrow: 1,\n \"@media(max-width: 576px)\": {\n fontSize: \"1.125rem\",\n },\n },\n backContainer: {\n marginBottom: \"16px\",\n },\n contentContainer: {\n display: \"grid\",\n gridTemplateColumns: \"450px 1fr\",\n gridGap: \"16px\",\n \"@media(max-width: 768px)\": {\n gridTemplateColumns: \"350px 1fr\",\n },\n \"@media(max-width: 576px)\": {\n gridTemplateColumns: \"1fr\",\n },\n },\n calendarContainer: {\n marginBottom: \"24px\",\n display: \"flex\",\n justifyContent: \"center\",\n paddingTop: \"1px\",\n },\n calendar: {\n width: \"100%\",\n \"@media(max-width: 667px)\": {\n width: \"100%\",\n },\n },\n description: {\n color: theme.app.secondaryColor,\n },\n carouselButton: {\n backgroundColor: \"rgba(0,0,0,0.23)\",\n color: \"white\",\n },\n left: {\n position: \"absolute\",\n zIndex: 100,\n left: 0,\n top: \"50%\",\n transform: \"translate(0, -50%)\",\n },\n right: {\n position: \"absolute\",\n zIndex: 100,\n right: 0,\n top: \"50%\",\n transform: \"translate(0, -50%)\",\n },\n placeholder: {\n background: theme.app.background[2],\n border: `1px solid ${theme.app.borderColor}`,\n borderRadius: \"4px\",\n },\n image: {\n maxWidth: \"100%\",\n },\n}));\n\nconst Event = (props) => {\n const { filter, event } = props;\n const location = useLocation();\n const classes = useStyles();\n const { config, language, culture } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n culture: state.cookies[STATE_CULTURE],\n }));\n const name =\n event.translation.find((t) => t.culture === culture)?.name ??\n language[event.name] ??\n event.name;\n const [text, setText] = useState(\"\");\n const [from, setFrom] = useState();\n const [until, setUntil] = useState();\n const [singleOccasion, setSingleOccasion] = useState(false);\n\n useEffect(() => {\n if (event.occasions.length < 2) {\n setSingleOccasion(true);\n const singleOccasionTimes = getOccasionTimes(event.occasions[0].time);\n setFrom(singleOccasionTimes.from);\n setUntil(singleOccasionTimes.until);\n }\n }, [event.occasions]);\n\n let filterOverride = null;\n if (\n event.occasions.length > 1 &&\n (filter === undefined || (Array.isArray(filter) && filter.length === 0))\n ) {\n const occasions = event.occasions.map((a) => a.time);\n const orderedOccasions = [...occasions].sort();\n const firstOccasion = moment(orderedOccasions[0]).format(\"YYYYMM\");\n console.log(\n \"--> Set event date filter override to first coming month with occasion:\",\n firstOccasion\n );\n filterOverride = firstOccasion;\n }\n\n useEffect(() => {\n let CancelToken = axios.CancelToken;\n source = CancelToken.source();\n if (event) {\n setText(\n event.translation.find((t) => t.culture === culture)?.description ?? \"\"\n );\n }\n return () => source.cancel(\"Event Component Is Unmounting\");\n }, [culture, event]);\n\n const handleDateChange = (date) => {\n const occasionTimes = getOccasionTimes(date);\n setFrom(occasionTimes.from);\n setUntil(occasionTimes.until);\n };\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n const images = event.imageFileName && [\n {\n original: `${uri}/allotmentimage/${event.imageFileName}`,\n },\n ];\n\n const initialMonth = () =>\n filterOverride != null\n ? moment(`${filterOverride}01`)\n : filter\n ? moment(`${filter}01`)\n : moment();\n\n const highlightedDates = event.occasions.map((o) => {\n return moment(o.time).format(\"YYYY-MM-DD\");\n });\n return (\n
    \n \n \n {name}\n \n \n
    \n \n \n \n \n {text.length > 0 && }\n
    \n
    \n {event.imageFileName ? (\n (\n \n \n \n )}\n renderRightNav={(onClick, disabled) => (\n \n \n \n )}\n />\n ) : (\n \n )}\n {config.socialShareButtons &&\n config.socialShareButtons.length > 0 && (\n \n )}\n
    \n
    \n {!singleOccasion && (\n
    \n {filter || filterOverride ? (\n \n ) : (\n \n )}\n
    \n )}\n \n
    \n
    \n
    \n );\n};\n\nexport default Event;\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\";\nimport { MdAddCircle, MdRemoveCircle } from \"react-icons/md\";\nimport { motion } from \"framer-motion\";\nimport { useSelector } from \"react-redux\";\nimport { Text } from \"@mantine/core\";\n\nconst ArticleButtons = ({\n cart,\n cartSet,\n ticketData,\n chosenOccasion,\n availableOccasions,\n name,\n}) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n\n const spring = {\n type: \"spring\",\n stiffness: 500,\n damping: 30,\n };\n let disabledBtn = false;\n\n const addAllotment = (product) => {\n let newProduct = product;\n newProduct.allotmentId = chosenOccasion.allotment.id;\n newProduct.timeOccasions = chosenOccasion.time;\n cartSet([...cart, product]);\n };\n\n const removeAllotment = (ticketData) => {\n let newCart = [...cart];\n let findAllotment = cart.findIndex((i) => i.id === ticketData.id);\n newCart.splice(findAllotment, 1);\n cartSet(newCart);\n };\n\n const checkIfAvailable = () => {\n let timeData = availableOccasions.filter(\n (el) => chosenOccasion.time === el.time\n );\n if (\n timeData?.[0]?.remaining <= cart.length ||\n timeData?.[0]?.allotment.maxPerSale === cart.length\n ) {\n return true;\n } else {\n return false;\n }\n };\n\n const calculateQuantity = (ticketData) => {\n const findItems = cart.filter((item) => item.id === ticketData.id);\n return findItems.length;\n };\n\n return (\n
    \n 0 ? true : \"\"}\n transition={spring}\n layout\n />\n 0 ? true : \"\"}\n whileTap={{ scale: 1.2 }}\n layout\n transition={spring}\n style={{\n pointerEvents: disabledBtn ? \"none\" : \"\",\n }}\n >\n addAllotment(ticketData)}\n aria-label={`${language?.AddQuantity} ${name}`}\n style={{ border: \"none\", background: \"none\" }}\n >\n \n \n \n 0 ? true : false}\n layout\n transition={spring}\n aria-live=\"assertive\"\n >\n \n {calculateQuantity(ticketData)}\n \n \n 0 ? true : \"\"}\n className=\"handle2\"\n whileTap={{ scale: 1.2 }}\n layout\n transition={spring}\n >\n removeAllotment(ticketData)}\n aria-label={`${language?.DecreaseQuantity} ${name}`}\n disabled={calculateQuantity(ticketData) === 0 ? true : false}\n style={{ border: \"none\", background: \"none\" }}\n >\n \n \n \n
    \n );\n};\n\nexport default ArticleButtons;\n","import { Divider, Grid, Stack, Text } from \"@mantine/core\";\nimport React from \"react\";\nimport ArticleButtons from \"./ArticleButtons\";\nimport { useSelector } from \"react-redux\";\nimport { STATE_CULTURE } from \"../../../common/state\";\n\nconst Article = ({\n ticketData,\n cart,\n cartSet,\n chosenOccasion,\n availableOccasions,\n}) => {\n const { culture } = useSelector((state) => ({\n culture: state.cookies[STATE_CULTURE],\n }));\n const getName = () => {\n const getTranslation = ticketData.translation.filter(\n (el) => el.culture === culture\n );\n return getTranslation?.[0]?.name;\n };\n\n return (\n <>\n {ticketData && (\n \n \n \n {getName()}\n \n {ticketData.priceInclVat}\n \n \n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default Article;\n","import {\n Button,\n Container,\n Grid,\n Loader,\n MediaQuery,\n Stack,\n Text,\n Title,\n} from \"@mantine/core\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { STATE_CURRENCY } from \"../../../common/state\";\nimport Article from \"./Article\";\nimport { CART_ARTICLE_ADD, Context, OPEN_ALERT } from \"../../../context\";\nimport { addArticleBatch, addToCartTracking } from \"../../../common/sale\";\n\nconst ArticleList = ({ chosenOccasion, availableOccasions }) => {\n const [cart, cartSet] = useState([]);\n const [cartTotal, cartTotalSet] = useState(0);\n const [isLoading, isLoadingSet] = useState(false);\n const [addedToCart, addedToCartSet] = useState(null);\n const { language, currency } = useSelector((state) => ({\n language: state.language,\n currency: state.cookies[STATE_CURRENCY],\n }));\n const { dispatch } = useContext(Context);\n const rdxDispatch = useDispatch();\n\n useEffect(() => {\n cartSet([]);\n }, [availableOccasions, chosenOccasion]);\n\n const total = (item) => {\n switch (currency) {\n case \"SEK\":\n return item + \" kr\";\n break;\n case \"EUR\":\n return \"€\" + item;\n break;\n case \"DKK\":\n return item + \" kr\";\n break;\n case \"GBP\":\n return \"£\" + item;\n break;\n case \"USD\":\n return \"$\" + item;\n break;\n case \"NOK\":\n return item + \" kr\";\n break;\n }\n };\n\n const productPrice = (item) => {\n if (item && item.length > 0) {\n const regex = /[$€£kr]/g;\n let newPrice = item.replace(regex, \"\");\n if (newPrice.trim().split(\".\")[1] === \"00\") {\n return newPrice.split(\".\")[0];\n } else {\n return newPrice;\n }\n }\n };\n\n const calcCartValue = () => {\n const removeChar = (price) => {\n if (price) {\n let newPrice = price && price.replaceAll(/[^0-9\\,.]/g, \"\");\n return parseFloat(newPrice.replace(/[^\\d.-]/g, \"\"));\n }\n };\n let total = 0;\n for (let i = 0; i < cart.length; i++) {\n total += parseFloat(\n removeChar(cart[i].priceInclVat)\n ? removeChar(cart[i].priceInclVat)\n : removeChar(cart[i].displayPrice)\n ? removeChar(cart[i].displayPrice)\n : \"\"\n );\n }\n cartTotalSet(total.toFixed(2));\n };\n\n useEffect(() => {\n calcCartValue();\n }, [cart]);\n\n const reduceCart = Object.values(\n cart.reduce((acc, curr) => {\n if (!acc[curr.plu]) {\n acc[curr.plu] = {\n plu: curr.plu,\n quantity: 1,\n allotmentId: curr.allotmentId,\n allotmentOccasion: curr.timeOccasions,\n };\n } else {\n acc[curr.plu].quantity += 1;\n }\n return acc;\n }, {})\n );\n\n const trackReduceCart = Object.values(\n cart.reduce((acc, curr) => {\n if (!acc[curr.plu]) {\n acc[curr.plu] = {\n id: curr.plu,\n quantity: 1,\n price: parseFloat(productPrice(curr.priceInclVat).replace(\",\", \".\")),\n name: curr.name,\n };\n } else {\n acc[curr.plu].quantity += 1;\n }\n return acc;\n }, {})\n );\n\n const cb = (status, msg) => {\n if (status >= 400) {\n dispatch({\n type: OPEN_ALERT,\n payload: {\n text: language.ErrorMsgCouldNotAddToCart,\n severity: \"error\",\n },\n });\n cartSet([]);\n isLoadingSet(false);\n } else {\n dispatch({\n type: CART_ARTICLE_ADD,\n payload: reduceCart,\n });\n cartSet([]);\n addedToCartSet(\"success\");\n isLoadingSet(false);\n }\n };\n\n useEffect(() => {\n let addedToCartTimer = setTimeout(() => {\n addedToCartSet(null);\n }, 3000);\n return () => {\n clearTimeout(addedToCartTimer);\n };\n }, [addedToCart]);\n\n const add = () => {\n addToCartTracking(currency, trackReduceCart);\n\n isLoadingSet(true);\n setTimeout(() => {\n rdxDispatch(addArticleBatch(reduceCart, cb));\n }, 300);\n };\n return (\n \n {chosenOccasion && (\n \n {chosenOccasion.articles.map((el, i) => (\n \n ))}\n \n )}\n \n \n \n {cart.length > 0 && (\n <>\n \n \n {language.Total}\n \n {total(productPrice(cartTotal))}\n \n \n \n \n )}\n \n \n \n add()}\n sx={{\n opacity: isLoading ? 0.7 : 1,\n transition: \"all 0.2s ease-in-out\",\n marginTop: \"0.1rem\",\n pointerEvents: cart.length === 0 ? \"none\" : \"\",\n width: addedToCart === \"success\" && \"100%\",\n }}\n >\n {addedToCart === \"success\" && !isLoading ? (\n language.Added_To_Cart\n ) : !isLoading ? (\n language.AddToCartBtn\n ) : (\n \n )}\n \n \n \n \n \n \n );\n};\n\nexport default ArticleList;\n","import React, { useEffect, useState } from \"react\";\nimport { Badge, Container, Group, Title, Transition } from \"@mantine/core\";\nimport { da, de, enGB, sv } from \"date-fns/locale\";\nimport { useSelector } from \"react-redux\";\nimport { STATE_CULTURE } from \"../../../common/state\";\nimport { format } from \"date-fns\";\nimport ArticleList from \"./ArticleList\";\n\nconst ArticlePicker = ({ chosenOccasion, availableOccasions }) => {\n const [cultureLocale, cultureLocaleSet] = useState();\n const [show, showSet] = useState(false);\n const { language, culture } = useSelector((state) => ({\n language: state.language,\n culture: state.cookies[STATE_CULTURE],\n }));\n const locales = [\n { culture: \"sv-SE\", data: sv },\n { culture: \"en-US\", data: enGB },\n { culture: \"en-GB\", data: enGB },\n { culture: \"de-DE\", data: de },\n { culture: \"da-DK\", data: da },\n ];\n let formatDay = \"EEEE d MMMM HH:mm\";\n\n useEffect(() => {\n const getLocale = locales.filter((el) => el.culture === culture)[0].data;\n cultureLocaleSet(getLocale);\n }, [culture]);\n\n useEffect(() => {\n if (chosenOccasion) {\n showSet(true);\n } else {\n showSet(false);\n }\n }, [chosenOccasion]);\n const articlePicker = document.getElementById(\"event-article-picker\");\n\n useEffect(() => {\n if (chosenOccasion && show) {\n if (articlePicker) {\n articlePicker.focus();\n }\n }\n }, [chosenOccasion, show]);\n return (\n \n \n {(styles) => (\n
    \n \n \n \n {language.ChooseTicket}\n \n \n {format(new Date(chosenOccasion?.time), formatDay, {\n locale: cultureLocale,\n })}\n \n \n \n \n
    \n )}\n \n
    \n );\n};\n\nexport default ArticlePicker;\n","import { useQuery } from \"@apollo/react-hooks\";\nimport {\n Button,\n Container,\n MediaQuery,\n SimpleGrid,\n Text,\n Title,\n} from \"@mantine/core\";\nimport { format, isSameDay } from \"date-fns\";\nimport gql from \"graphql-tag\";\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../../common/state\";\nimport ArticlePicker from \"./ArticlePicker\";\n\nconst query = gql`\n query detailQuery(\n $currency: String\n $culture: String\n $posId: Int\n $from: DateTime\n $until: DateTime\n ) {\n allotments(\n currency: $currency\n culture: $culture\n posId: $posId\n from: $from\n until: $until\n ) {\n description\n imageFileName\n translation {\n culture\n name\n description\n }\n occasions {\n time\n remaining\n allotment {\n id\n maxPerSale\n }\n articles {\n id\n name\n description\n imageFilename\n plu\n priceInclVat\n translation {\n culture\n name\n description\n }\n isPersonalTicket\n }\n }\n }\n }\n`;\n\nconst TimePicker = ({ day, allotment, occasions, cultureLocale }) => {\n const [from, fromSet] = useState();\n const [until, untilSet] = useState();\n const [availableOccasions, availableOccasionsSet] = useState();\n const [chosenOccasion, chosenOccasionSet] = useState();\n const { config, currency, culture, language } = useSelector((state) => ({\n config: state.config,\n currency: state.cookies[STATE_CURRENCY],\n culture: state.cookies[STATE_CULTURE],\n language: state.language,\n }));\n\n const { posId } = config;\n\n const { data, loading } = useQuery(query, {\n variables: { posId, currency, culture, from, until },\n });\n\n let timeFormat = \"HH:mm\";\n\n useEffect(() => {\n chosenOccasionSet(\"\");\n }, [day]);\n\n useEffect(() => {\n if (!loading && data && allotment && day) {\n const filterAllotments = data?.allotments?.filter(\n (el) => allotment.name === el.description\n );\n\n const filterOccasions = filterAllotments?.[0]?.occasions.filter((el) =>\n isSameDay(new Date(el.time), new Date(day))\n );\n availableOccasionsSet(filterOccasions);\n }\n }, [day, data, loading, allotment]);\n\n useEffect(() => {\n const timePicker = document.getElementById(\"event-time-picker\");\n if (timePicker) {\n timePicker.focus();\n }\n }, [day]);\n\n return (\n \n \n \n \n {language.ChooseTimeHeader}\n \n \n {language.ChooseTimeDescription}\n \n \n\n \n {cultureLocale &&\n day &&\n availableOccasions &&\n availableOccasions.map((el, i) =>\n el.remaining > 0 ? (\n chosenOccasionSet(el)}\n key={el + i}\n style={{ border: \"1px solid #8A8C93\" }}\n >\n \n \n {format(new Date(el.time), timeFormat)}\n \n \n \n {language.ApproximatelyShort} {el.remaining}{\" \"}\n {language.Tickets.toLowerCase()}\n \n \n \n \n ) : (\n \n )\n )}\n \n \n \n \n );\n};\n\nexport default TimePicker;\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 React, { useEffect, useState } from \"react\";\nimport {\n addMonths,\n format,\n isAfter,\n isBefore,\n isSameMonth,\n parseISO,\n startOfMonth,\n subMonths,\n} from \"date-fns\";\nimport { GoChevronLeft, GoChevronRight } from \"react-icons/go\";\n\nconst Header = ({\n currentDate,\n setCurrentDate,\n selectedDate,\n firstOccasion,\n lastOccasion,\n cultureLocale,\n initialMonth,\n language,\n}) => {\n const [allotmentDate, setAllotmentDate] = useState();\n const monthStart = startOfMonth(currentDate);\n const dateFormat = \"MMMM yyyy\";\n\n const nextMonth = () => {\n setCurrentDate(addMonths(currentDate, 1));\n };\n const prevMonth = () => {\n setCurrentDate(subMonths(currentDate, 1));\n };\n\n useEffect(() => {\n setCurrentDate(new Date(firstOccasion.time));\n setAllotmentDate(selectedDate);\n }, []);\n\n useEffect(() => {\n let checkIfAfter = isAfter(initialMonth, parseISO(lastOccasion.time));\n if (\n !checkIfAfter &&\n initialMonth !== undefined &&\n !isSameMonth(new Date(currentDate), new Date(initialMonth))\n ) {\n setCurrentDate(new Date(initialMonth));\n }\n if (checkIfAfter) {\n setCurrentDate(parseISO(lastOccasion.time));\n }\n }, [initialMonth, lastOccasion.time]);\n\n const lastMonthLabel = format(subMonths(currentDate, 1), \"MMMM\", {\n locale: cultureLocale,\n });\n const nextMonthLabel = format(addMonths(currentDate, 1), \"MMMM\", {\n locale: cultureLocale,\n });\n\n return (\n
    \n
    \n {!isBefore(monthStart, new Date(firstOccasion?.time)) ? (\n \n \n \n ) : (\n \"\"\n )}\n
    \n\n
    \n \n {format(currentDate, dateFormat, { locale: cultureLocale })}{\" \"}\n \n
    \n\n
    \n {!isSameMonth(new Date(monthStart), new Date(lastOccasion?.time)) ? (\n \n \n \n ) : (\n \"\"\n )}\n
    \n
    \n );\n};\n\nexport default Header;\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\";\nimport {\n addDays,\n endOfMonth,\n endOfWeek,\n format,\n isBefore,\n isSameDay,\n isSameMonth,\n startOfMonth,\n startOfWeek,\n toDate,\n} from \"date-fns\";\nimport \"../styles.css\";\nimport \"./eventStyles.css\";\nimport { useSelector } from \"react-redux\";\n\nconst WeekDay = ({\n currentDate,\n selectedDate,\n daySet,\n occasions,\n cultureLocale,\n}) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const monthStart = startOfMonth(currentDate, {\n locale: cultureLocale,\n });\n const monthEnd = endOfMonth(monthStart);\n const startDate = startOfWeek(monthStart, { locale: cultureLocale });\n const endDate = endOfWeek(monthEnd, { locale: cultureLocale });\n const dateFormat = \"d\";\n const regularDateFormat = \"yyyy-MM-dd\";\n const rows = [];\n\n let days = [];\n let day = startDate;\n let formattedDate = \"\";\n let today = new Date();\n let yesterday = today.setDate(today.getDate() - 1);\n\n const onDateClick = (day) => {\n daySet(day);\n };\n\n const getAvailability = (day, occasion) => {\n if (occasion) {\n const filter = occasion.filter(\n (el) =>\n format(new Date(el.time), \"yyyy-MM-dd\") ===\n format(new Date(day), \"yyyy-MM-dd\")\n );\n if (filter.length > 0) {\n return \"available\";\n } else {\n return null;\n }\n }\n };\n\n while (day <= endDate) {\n for (let i = 0; i < 7; i++) {\n formattedDate = format(day, dateFormat);\n const cloneDay = day;\n let isAvailable;\n getAvailability(format(day, regularDateFormat), occasions) === \"available\"\n ? (isAvailable = \"available\")\n : (isAvailable = \"disabled\");\n days.push(\n onDateClick(toDate(cloneDay))}\n >\n {formattedDate}\n \n );\n day = addDays(day, 1);\n }\n\n rows.push(\n
    \n {days}\n
    \n );\n days = [];\n }\n return
    {rows}
    ;\n};\nexport default WeekDay;\n","import React, { useEffect } from \"react\";\nimport \"./eventStyles.css\";\nimport Header from \"./Header\";\nimport Week from \"./Week\";\nimport WeekDay from \"./WeekDay\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport { da, de, enGB, sv } from \"date-fns/locale\";\nimport { STATE_CULTURE } from \"../../../../common/state\";\nimport { useSelector } from \"react-redux\";\n\nconst EventCalendarV2 = ({\n currentDate,\n setCurrentDate,\n firstOccasion,\n lastOccasion,\n occasions,\n day,\n daySet,\n initialMonth,\n cultureLocale,\n setCultureLocale,\n}) => {\n const { culture, language } = useSelector((state) => ({\n culture: state.cookies[STATE_CULTURE],\n language: state.language,\n }));\n\n const locales = [\n { culture: \"sv-SE\", data: sv },\n { culture: \"en-US\", data: enGB },\n { culture: \"en-GB\", data: enGB },\n { culture: \"de-DE\", data: de },\n { culture: \"da-DK\", data: da },\n ];\n\n useEffect(() => {\n const getLocale = locales.filter((el) => el.culture === culture)[0].data;\n setCultureLocale(getLocale);\n }, []);\n\n return (\n
    \n {occasions === undefined ? (\n
    \n {\" \"}\n \n

    {language.CalendarLoading}

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

    {product.name}

    \n

    \n {price}\n

    \n
    \n \n \n {productData?.isProduct ? (\n handleAdd()}\n color={addedToCart && \"green\"}\n loading={clicked}\n disabled={product.inStock <= 0}\n >\n {!addedToCart && (!product.inStock || product.inStock >= 1)\n ? language.Buy\n : !addedToCart && product.inStock <= 0\n ? language.SoldOut\n : addedToCart && language.Added_To_Cart}\n \n ) : (\n links(product)}\n variant=\"outline\"\n className=\"productChooseBtn\"\n aria-label={`${language.Choose} ${product.name}`}\n >\n {language.Choose}\n \n )}\n
    \n \n \n \n );\n};\n\nexport default ListItemV2;\n","import React, { useContext, useEffect, useMemo, useState } from \"react\";\nimport {\n Button,\n Card,\n createStyles,\n Image,\n SimpleGrid,\n Skeleton,\n Text,\n UnstyledButton,\n} from \"@mantine/core\";\nimport { useNavigate } from \"@reach/router\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport slugify from \"../common/slugify\";\nimport { getSaleData } from \"../Product/util\";\nimport { addArticle, addToCartTracking } from \"../../common/sale\";\nimport { DataContext } from \"../common/dataProvider\";\nimport { SaleContext } from \"../common/saleProvider\";\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\nimport { getProduct } from \"../../Pages/ProductPage/util\";\nimport \"./styles.css\";\n\nconst useStyles = createStyles((theme) => ({\n card: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n border: \"none\",\n position: \"relative\",\n padding: \"0rem\",\n width: \"100%\",\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n cursor: \"pointer\",\n transition: \"0.2s\",\n \"&:hover\": {\n // opacity: 0.9,\n // transform: \"translateY(-2px)\",\n },\n },\n\n imageButton: {\n transition: \"0.2s\",\n borderRadius: \"8px\",\n \"&:hover\": {\n opacity: 0.9,\n },\n },\n\n rating: {\n position: \"absolute\",\n top: theme.spacing.xs,\n right: theme.spacing.xs + 2,\n pointerEvents: \"none\",\n },\n\n title: {\n display: \"block\",\n marginTop: theme.spacing.sm,\n marginBottom: 0,\n fontSize: \"1rem\",\n textAlign: \"left\",\n },\n\n action: {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n ...theme.fn.hover({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n }),\n },\n price: {\n marginTop: 0,\n fontSize: \"1rem\",\n \"@media screen and (max-width: 768px)\": {\n fontWeight: \"bold\",\n fontSize: \"1rem\",\n width: \"100%\",\n textAlign: \"start\",\n },\n },\n footer: {\n cursor: \"default\",\n marginTop: theme.spacing.md,\n button: {\n \"@media screen and (max-width: 768px)\": {\n width: \"100%\",\n },\n },\n },\n skeleton: {\n width: \"100%\",\n padding: \"1rem 0.7rem\",\n },\n addToCart: {\n width: \"100%\",\n },\n}));\n\nconst CardItemV2 = ({ product }) => {\n const { config, language, culture, currency } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n culture: state.cookies[STATE_CULTURE],\n currency: state.cookies[STATE_CURRENCY],\n }));\n const [addedToCart, addedToCartSet] = useState(null);\n const [clicked, clickedSet] = useState(false);\n const [price, priceSet] = useState(null);\n const { classes, theme, cx } = useStyles();\n const navigate = useNavigate();\n const { data } = useContext(DataContext);\n const saleContext = useContext(SaleContext);\n const { sale } = saleContext.state;\n\n const rdxDispatch = useDispatch();\n const regex = /\\D/g;\n\n const reduce =\n product.products &&\n product.products.reduce((acc, curr) => {\n acc.push(curr.priceInclVat);\n return acc;\n }, []);\n const reduceChooseValue =\n product.openPriceValues &&\n product.openPriceValues.reduce((acc, curr) => {\n acc.push(curr);\n return acc;\n }, []);\n\n const sortPrice = (prices) => {\n if (prices && typeof prices?.[0] === typeof 0) {\n const sortOpenPrice = prices.sort((a, b) => a - b);\n return sortOpenPrice;\n } else if (prices && typeof prices?.[0] === typeof \"\") {\n const sortStringValue = prices.sort(\n (a, b) => a.replace(regex, \"\") - b.replace(regex, \"\")\n );\n return sortStringValue;\n }\n };\n\n const links = (item) => {\n const eventCalendarLinks = config.eventConfig.filter(\n (el) => el.eventCalendar && el?.name === item?.name\n );\n const articleBookingLinks = config.eventConfig.filter(\n (el) => el.articleBooking && el?.name === item?.name\n );\n if (eventCalendarLinks && eventCalendarLinks[0]) {\n return navigate(`tickets/${slugify(eventCalendarLinks[0].name)}`);\n }\n if (articleBookingLinks && articleBookingLinks[0]) {\n return navigate(`booking/${slugify(articleBookingLinks[0]?.name)}`);\n }\n if (!eventCalendarLinks[0] && !articleBookingLinks[0]) {\n return navigate(`/ticketshop/${product.slug}`);\n }\n };\n\n useEffect(() => {\n const giftCard = config?.productConfig?.filter((el) =>\n el.description?.includes(\"presentkort\")\n );\n const filterGiftCard = giftCard?.filter((el) => el.plu === product.plu);\n\n if (product?.displayPrice && !reduce && !reduceChooseValue) {\n priceSet(product.displayPrice);\n }\n\n if (product?.priceInclVat && !reduce && !reduceChooseValue) {\n priceSet(product.priceInclVat);\n }\n if (\n filterGiftCard.length > 0 &&\n filterGiftCard[0].openPriceValues.length > 0\n ) {\n priceSet(\n `${language.FromCost} ${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\n );\n }\n if (\n filterGiftCard.length > 0 &&\n filterGiftCard[0].openPriceValues.length === 0\n ) {\n priceSet(language.OpenPrice);\n }\n if (\n filterGiftCard.length > 0 &&\n filterGiftCard[0].openPriceValues.length === 1\n ) {\n priceSet(\n `${filterGiftCard[0].openPriceValues[0]} ${language.CurrencyAbbreviation}`\n );\n }\n if (reduce) {\n priceSet(\n `${sortPrice(reduce)?.[0]} - ${\n sortPrice(reduce)?.[sortPrice(reduce).length - 1]\n }`\n );\n }\n\n if (reduceChooseValue) {\n priceSet(\n `${sortPrice(reduceChooseValue)?.[0]} kr - ${\n sortPrice(reduceChooseValue)?.[\n sortPrice(reduceChooseValue).length - 1\n ]\n } kr`\n );\n }\n }, [config, product]);\n\n const trackProductData = [\n {\n id: product.plu,\n name: product.name,\n price: product?.price?.amountInclVat,\n quantity: 1,\n },\n ];\n\n const handleAdd = () => {\n addToCartTracking(currency, trackProductData);\n clickedSet(true);\n const callback = (status, msg) => {\n if (status === 200) {\n clickedSet(false);\n addedToCartSet(true);\n setTimeout(() => {\n addedToCartSet(null);\n }, 5000);\n }\n if (status !== 200) {\n clickedSet(false);\n addedToCartSet(false);\n setTimeout(() => {\n addedToCartSet(null);\n }, 5000);\n }\n };\n let article;\n let values;\n let photo;\n let overrideDate;\n let quantity = 1;\n const saleData = getSaleData(\n product,\n article,\n values,\n photo,\n quantity,\n overrideDate\n );\n rdxDispatch(addArticle(saleData, callback));\n };\n\n const image = useMemo(() => {\n if (product?.images?.[0].startsWith(\"http\")) {\n return product?.images?.[0];\n }\n if (product?.images?.[0].startsWith(\"/ticketshop/\")) {\n return `${process.env.PUBLIC_URL}${product?.images?.[0].replace(\n \"/ticketshop/\",\n \"/\"\n )}`;\n }\n if (product?.images?.[0]) {\n return `${process.env.PUBLIC_URL}${product?.images?.[0]}`;\n } else {\n return \"\";\n }\n }, [product.images]);\n\n const productData = useMemo(() => {\n if (sale) {\n return getProduct(data, config, product.plu, culture);\n }\n }, [data, product, config, culture, sale]);\n\n if (!product || !productData)\n return (\n
    \n \n \n \n \n
    \n );\n return (\n \n links(product)}\n sx={{ width: \"100%\" }}\n >\n \n \n \n\n \n {product?.name}\n \n \n \n \n {price}\n \n {productData?.isProduct ? (\n
    \n handleAdd()}\n color={addedToCart && \"green\"}\n disabled={product.inStock <= 0}\n loading={clicked}\n >\n {!addedToCart && (!product.inStock || product.inStock >= 1)\n ? language.AddToCartBtn\n : !addedToCart && product.inStock <= 0\n ? language.SoldOut\n : addedToCart && language.Added_To_Cart}\n \n
    \n ) : (\n links(product)}\n variant=\"outline\"\n aria-label={`${language.Choose} ${product.name}`}\n >\n {language.Choose}\n \n )}\n
    \n
    \n );\n};\n\nexport default CardItemV2;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport clsx from \"clsx\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport CardItem from \"./cardItem\";\nimport ListItem from \"./listItem\";\nimport { STATE_CULTURE } from \"../../common/state\";\nimport ListItemV2 from \"./ListItemV2\";\nimport CardItemV2 from \"./CardItemV2\";\n\nconst useStyles = makeStyles((theme) => ({\n cardList: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(4, 1fr)\",\n gridGap: \"1rem 0rem\",\n justifyItems: \"center\",\n padding: \"16px 0\",\n \"@media(max-width: 667px)\": {\n gridTemplateColumns: \"1fr 1fr\",\n gridGap: \"1rem 0rem\",\n },\n \"@media(max-width: 300px)\": {\n gridTemplateColumns: \"1fr\",\n gridGap: \"1rem 0rem\",\n },\n },\n list: {},\n}));\n\nconst ProductList = ({\n originalPage,\n products,\n events,\n listType,\n setPosition,\n data,\n}) => {\n const [eventCalendar, eventCalendarSet] = useState(null);\n const { config, culture } = useSelector((state) => ({\n config: state.config,\n culture: state.cookies[STATE_CULTURE],\n }));\n const classes = useStyles();\n const isCardList = listType\n ? listType === \"CARD\"\n : window.innerWidth < 667\n ? config.articleListType?.sm === \"CARD\"\n : config.articleListType?.lg === \"CARD\";\n\n // insert imageFileName and translations into the \"events\" object, using data from API\n if (events) {\n events.forEach((event) => {\n event.imageFileName = data.allotments.find(\n (allotment) => event.id === allotment.id\n ).imageFileName;\n event.translation = data.allotments.find(\n (allotment) => event.id === allotment.id\n ).translation;\n });\n }\n\n useEffect(() => {\n if (originalPage && originalPage?.events && config?.ticketConfigurator) {\n const filter = config?.ticketConfigurator.filter((ele) => {\n return originalPage?.events.some((el) => {\n return el === ele.name;\n });\n });\n\n if (filter && filter.length > 0) {\n eventCalendarSet(filter);\n }\n return () => eventCalendarSet(null);\n }\n }, [config, originalPage]);\n\n return (\n \n {eventCalendar &&\n eventCalendar.map((ec, key) =>\n isCardList ? (\n config?.useNewCard ? (\n \n \n \n ) : (\n \n )\n ) : (\n \n {config?.useNewList ? (\n \n ) : (\n \n )}\n \n )\n )}\n\n {events?.map((event) =>\n isCardList ? (\n config?.useNewCard ? (\n \n \n \n ) : (\n \n )\n ) : config?.useNewList ? (\n \n \n \n ) : (\n \n )\n )}\n {products.map((product) =>\n isCardList ? (\n config?.useNewCard ? (\n \n \n \n ) : (\n \n )\n ) : config?.useNewList ? (\n \n \n \n ) : (\n \n )\n )}\n \n );\n};\n\nexport default ProductList;\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\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 [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 // Reset availableGroups\r\n setAvailableGroups(page.productGroups.map((group) => group.name));\r\n };\r\n\r\n const translateProductGroup = (originalName) => {\r\n const translatedName = Object.entries(language.Categories).find(\r\n (category) => originalName === category[0]\r\n );\r\n\r\n return translatedName ? translatedName[1] : originalName;\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, key) => {\r\n return (\r\n \r\n {\r\n handleChange(e);\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
    \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\";\nimport { useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { Link } from \"@reach/router\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { arrowGenerator } from \"../common/util\";\nimport { getOccasionsByDay } from \"./util\";\nimport { ReactComponent as Placeholder } from \"../../images/placeholder_list.svg\";\nimport slugify from \"../common/slugify\";\n\nconst useStyles = makeStyles((theme) => ({\n link: {\n lineHeight: 1,\n },\n listItem: {\n padding: \"8px\",\n transition: theme.transitions.create([\"background-color\"], {\n duration: theme.transitions.duration.short,\n easing: theme.transitions.easing.easeInOut,\n }),\n \"&:hover\": {\n backgroundColor: theme.palette.action.hover,\n },\n },\n content: {\n display: \"grid\",\n gridTemplateColumns: \"auto 1fr\",\n gridGap: \"16px\",\n alignItems: \"center\",\n \"@media(max-width: 667px)\": {\n gridTemplateColumns: \"1fr\",\n gridGap: \"0px\",\n },\n },\n eventInfo: {},\n title: {\n lineHeight: 1,\n marginBottom: \"0.2em\",\n color: theme.app.labelColor,\n },\n imageContainer: {\n \"@media(max-width: 667px)\": {\n display: \"none\",\n },\n },\n image: {\n maxWidth: \"100px\",\n borderRadius: \"4px\",\n },\n exerpt: {\n \"& p\": {\n color: theme.app.secondaryColor,\n display: \"box\",\n lineClamp: 1,\n boxOrient: \"vertical\",\n overflow: \"hidden\",\n margin: 0,\n fontSize: \"0.8125rem\",\n fontStyle: \"italic\",\n },\n },\n actions: {\n display: \"flex\",\n alignItems: \"flex-end\",\n paddingBottom: \"4px\",\n },\n occasions: {\n display: \"flex\",\n flexWrap: \"wrap\",\n \"& p\": {\n lineHeight: 1.2,\n color: theme.app.secondaryColor,\n fontSize: \"0.875rem\",\n },\n },\n occasionDate: {\n color: \"inherit\",\n },\n occasionTime: {\n \"&:not(:last-child):after\": {\n content: \"', '\",\n whiteSpace: \"pre\",\n },\n },\n occasionTimes: {\n maxWidth: \"200px\",\n display: \"flex\",\n flexWrap: \"wrap\",\n },\n tootltipTime: {\n color: \"inherit\",\n fontSize: \"0.8125rem\",\n opacity: \"0.9\",\n \"&:not(:last-child):after\": {\n content: \"', '\",\n whiteSpace: \"pre\",\n },\n },\n tooltipDivider: {\n margin: \"8px 0\",\n backgroundColor: \"rgba(255,255,255,0.6)\",\n },\n htmlPopper: arrowGenerator(\"black\"),\n htmlTooltip: {\n backgroundColor: \"black\",\n color: \"white\",\n maxWidth: 220,\n minWidth: 200,\n fontSize: \"12px\",\n border: \"1px solid black\",\n \"& b\": {\n fontWeight: 500,\n },\n },\n arrow: {\n position: \"absolute\",\n fontSize: 6,\n width: \"3em\",\n height: \"3em\",\n \"&::before\": {\n content: '\"\"',\n margin: \"auto\",\n display: \"block\",\n width: 0,\n height: 0,\n borderStyle: \"solid\",\n },\n },\n placeholder: {\n maxWidth: \"100px\",\n borderRadius: \"4px\",\n border: `1px solid ${theme.app.borderColor}`,\n width: \"100%\",\n background: theme.app.background[2],\n },\n}));\n\nconst ListItem = (props) => {\n const { eventConfig, occasionsInMonth, event, config, culture } = props;\n const classes = useStyles();\n const [arrowRef, handleArrowRef] = useState(null);\n const language = useSelector((state) => state.language);\n const occasionsByDay = getOccasionsByDay(occasionsInMonth);\n const description =\n event.translation.find((t) => t.culture === culture)?.name ??\n language[event.description] ??\n event.description;\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n const imageUri = event.imageFileName\n ? `${uri}/allotmentimage/${event.imageFileName}`\n : undefined;\n\n const getCalendarBookingLinks = (item) => {\n const eventCalendarLinks = config.eventConfig.filter(\n (el) => el.eventCalendar && el?.name === item?.name\n );\n const articleBookingLinks = config.eventConfig.filter(\n (el) => el.articleBooking && el?.name === item?.name\n );\n if (eventCalendarLinks && eventCalendarLinks[0]) {\n return `/ticketshop/tickets/${slugify(eventCalendarLinks[0].name)}`;\n }\n if (articleBookingLinks && articleBookingLinks[0]) {\n return `/ticketshop/booking/${slugify(articleBookingLinks[0]?.name)}`;\n }\n if (!eventCalendarLinks[0] && !articleBookingLinks[0]) {\n return `${process.env.PUBLIC_URL}${eventConfig.slug}`;\n }\n };\n return (\n <>\n \n
    \n
    \n
    \n {imageUri ? (\n \"event\"\n ) : (\n \n )}\n
    \n
    \n
    \n \n {description}\n \n
    \n
    \n {occasionsInMonth.length < 4 ? (\n occasionsInMonth.map((o, i) => (\n \n {moment(o.time).format(\"D MMM HH:mm\")}\n \n ))\n ) : (\n \n
    \n {occasionsByDay.map((o, i) => {\n return (\n
    \n \n {moment(o.day).format(\"D MMM\")}\n \n
    \n {o.times.map((t) => {\n return (\n \n {t}\n \n );\n })}\n
    \n \n
    \n );\n })}\n
    \n \n \n }\n >\n {`${occasionsInMonth.length} ${language.Allotment_Occasions}`}\n \n )}\n
    \n \n

    {eventConfig.exerpt}

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

    \n
    \n 230\n ? filter.description.substring(0, 230) + \"...\"\n : !isCard\n ? filter?.description.substring(0, 70)\n : filter?.description\n }\n escapeHtml={false}\n skipHtml={false}\n />\n
    \n
    \n \n \n {!isCard && }\n \n );\n};\n\nexport default Event;\n","import React, { useEffect, useState } from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport Event from \"./Event\";\nimport { Container, createStyles, Skeleton } from \"@mantine/core\";\nimport { useSelector } from \"react-redux\";\n\nconst useStyles = createStyles((theme) => ({\n skeletonWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"1rem\",\n },\n}));\n\nconst EventWrapper = ({ date, items, events }) => {\n const { config } = useSelector((state) => ({\n config: state.config,\n }));\n const [itemsArr, itemsArrSet] = useState([]);\n const { classes } = useStyles();\n const listType =\n window.innerWidth < 768\n ? config?.allEventsListType?.sm\n : config?.allEventsListType?.lg;\n const isCard = listType\n ? listType === \"CARD\"\n : window.innerWidth < 768\n ? config.articleListType?.sm === \"CARD\"\n : config.articleListType?.lg === \"CARD\";\n\n useEffect(() => {\n itemsArrSet(items);\n }, [items]);\n\n const container = {\n hidden: { opacity: 0 },\n show: {\n opacity: 1,\n transition: {\n delay: 0.2,\n staggerChildren: 0.08,\n },\n },\n };\n\n const item = {\n hidden: { opacity: 0, scale: 0.95 },\n show: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.95 },\n };\n\n return (\n \n {itemsArr.length > 0 ? (\n \n {itemsArr.map((el, i) => (\n \n \n \n ))}\n \n ) : (\n events.length === 0 && (\n
    \n \n
    \n \n \n \n
    \n \n
    \n )\n )}\n {itemsArr.length === 0 && events.length > 0 && (\n

    Inga resultat matchar kriterierna, ändra filtret och försök igen

    \n )}\n
    \n );\n};\n\nexport default EventWrapper;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport EventFilter from \"./EventFilter\";\nimport _ from \"lodash\";\nimport EventWrapper from \"./EventWrapper\";\nimport { isAfter, isBefore, isSameDay } from \"date-fns\";\nimport { useSessionStorage } from \"@mantine/hooks\";\n\nconst AllEventsV2 = ({ events }) => {\n const getPriceRange = events.reduce((acc, curr) => {\n acc.push(curr.articles);\n return acc.flat();\n }, []);\n const maxDate = events.reduce((acc, curr) => {\n acc.push(curr.occasions);\n return acc.flat().sort((a, b) => new Date(a.time) - new Date(b.time));\n }, []);\n const articles = getPriceRange.sort(\n (a, b) => parseFloat(a.priceInclVat) - parseFloat(b.priceInclVat)\n );\n const [items, itemsSet] = useState([]);\n const [priceBeforeChange, priceBeforeChangeSet] = useState([\n 0,\n parseFloat(articles?.[articles.length - 1]?.priceInclVat + 100),\n ]);\n const [priceVal, priceValSet] = useSessionStorage({\n key: \"priceVal\",\n defaultValue: [\n parseFloat(articles?.[0]?.priceInclVat),\n parseFloat(articles?.[articles.length - 1]?.priceInclVat),\n ],\n });\n const [text, textSet] = useSessionStorage({\n key: \"text\",\n defaultValue: \"\",\n });\n const [date, dateSet] = useSessionStorage({\n key: \"date\",\n defaultValue: [\n new Date(maxDate?.[0]?.time),\n new Date(maxDate?.[maxDate.length - 1]?.time),\n ],\n serialize: (value) => {\n return [...value];\n },\n deserialize: (value) => {\n if (value !== \",\") {\n let split = value.split(\",\");\n let newArr = [];\n newArr.push(new Date(split[0]));\n newArr.push(new Date(split[1]));\n return newArr;\n } else {\n return [\n new Date(maxDate?.[0]?.time),\n new Date(maxDate?.[maxDate.length - 1]?.time),\n ];\n }\n },\n });\n\n const checkPrice = (item) => {\n if (\n item.price.amountInclVat >= priceVal?.[0] &&\n item.price.amountInclVat <= priceVal?.[1]\n ) {\n return true;\n }\n };\n\n const checkName = (item) => {\n if (item.name.toLowerCase().includes(text.toLowerCase())) {\n return true;\n }\n };\n\n const checkDateRange = (item) => {\n let occasion = item?.occasions;\n const filter = occasion.some((el) => {\n if (\n (isSameDay(new Date(el.time), date[0]) ||\n isAfter(new Date(el.time), date[0])) &&\n (isSameDay(new Date(el.time), date[1]) ||\n isBefore(new Date(el.time), date[1]))\n ) {\n return true;\n }\n });\n\n if (filter) {\n return true;\n }\n };\n\n const filterByPrice = useMemo(() => {\n return (\n events &&\n events.reduce((acc, curr) => {\n // Price\n const amount = () => {\n for (let price of curr.articles) {\n if (checkPrice(price)) {\n return true;\n }\n }\n };\n\n const translation = () => {\n for (let translation of curr.translation) {\n if (checkName(translation)) {\n return true;\n }\n }\n };\n\n const dateRange = () => {\n if (checkDateRange(curr)) {\n return true;\n }\n };\n\n if (amount() && translation() && dateRange()) {\n acc.push(curr);\n }\n return _.uniq(acc);\n }, [])\n );\n }, [events, priceVal, text, date]);\n\n useEffect(() => {\n if (filterByPrice && filterByPrice.length !== items.length) {\n itemsSet(filterByPrice);\n }\n }, [priceVal, text, date]);\n useEffect(() => {\n if (date === \"\") {\n itemsSet(events);\n }\n }, []);\n\n if (!text && !priceVal && !date && !events) return null;\n\n return (\n <>\n {items && (\n <>\n \n \n \n )}\n \n );\n};\n\nexport default AllEventsV2;\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 \"../../components/common/ArticleFilter/filter.css\";\r\n\r\nconst Page = ({ originalPage, page, setPosition }) => {\r\n const [filteredProductList, setFilteredProductList] = useState({ ...page });\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 setFilteredProductList(filterResult)}\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\";\nimport { getDisplayPrice } from \"../../components/ProductList/util\";\nimport slugify from \"../../components/common/slugify\";\n\nconst makeId = () => uuid.v4();\n\nconst getAllArticles = (tags) => {\n let ids = [];\n let articles = [];\n tags.forEach((t) => {\n t.articles.forEach((a) => {\n if (!ids.includes(a.id)) {\n ids = [...ids, a.id];\n articles = [...articles, a];\n }\n });\n });\n return articles;\n};\n\nconst extendArticle = (p, a = {}, config) => {\n const { imageFolderUrl } = config;\n // If its a product that only exists in config\n const plu = a.plu ? a.plu : p.plu;\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n return {\n id: a.id ? a.id : makeId(),\n name: a.name ? a.name : p.name,\n plu,\n images: a.imageFilename\n ? [`${uri}/articleimage/${a.imageFilename}`]\n : p.images\n ? p.images.map(\n (img) => `${process.env.PUBLIC_URL}${imageFolderUrl}${img}`\n )\n : undefined,\n price: a.price,\n priceInclVat: a.priceInclVat,\n displayPrice: a.priceInclVat,\n slug: `products/${plu}`,\n };\n};\n\nconst extendEvents = (page, allotments, config) => {\n if (!page.events) return [];\n let extendedEvents = [];\n page.events.forEach((e) => {\n const allotment = allotments.find((a) => a.description === e);\n const event = config.eventConfig?.find((cfg) => cfg.name === e);\n if (event) {\n if (allotment) {\n const displayPrice = getDisplayPrice(allotment.articles);\n extendedEvents = [\n ...extendedEvents,\n {\n id: allotment.id,\n name: event.name,\n images: event.images?.map(\n (img) => `${config.imageFolderUrl}${img}`\n ),\n listImages: event.listImages?.map(\n (img) => `${config.imageFolderUrl}${img}`\n ),\n displayPrice,\n slug: `events/${slugify(event.name)}`,\n },\n ];\n } else {\n console.log(`No event with name ${e} is published`);\n }\n } else {\n console.log(`No config for event: ${e}`);\n }\n });\n return extendedEvents;\n};\n\nconst extendProductGroups = (page, tags, config) =>\n page.productGroups.map((g) => {\n const tag = tags.find((t) => t.name === g);\n const groupConfig = config.productGroupConfig.find((c) => c.name === g);\n if (tag) {\n let products = [];\n tag.articles.forEach((a) => {\n const p = config.productConfig.find((c) => c.plu === a.plu);\n if (p) {\n products = [...products, extendArticle(p, a, config)];\n } else {\n products = [...products, extendArticle({}, a, config)];\n }\n });\n if (groupConfig.extraProducts?.length > 0) {\n groupConfig.extraProducts.forEach((p) => {\n const cfg = config.productConfig.find((c) => c.plu === p);\n const art = getAllArticles(tags).find((a) => a.plu === p);\n\n if (cfg) {\n products = [...products, extendArticle(cfg, art, config)];\n }\n });\n }\n return {\n name: g,\n images: groupConfig?.images || [],\n isGroup: true,\n description: groupConfig?.description,\n allProductsShow: groupConfig?.allProductsShow || true,\n isInfo: groupConfig?.isInfo || false,\n products: products.sort((a, b) => a.plu - b.plu),\n };\n }\n return {\n name: g,\n images: [],\n description: \"\",\n products: [],\n message: `${g} is not a published article group`,\n };\n });\n\nexport const getPage = (data, config, page) => {\n if (!page || !data) return;\n const productGroups = extendProductGroups(page, data.tags, config);\n const events = extendEvents(page, data.allotments, config);\n\n return { ...page, productGroups, events };\n};\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\";\nimport { Typography } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport Markdown from \"react-markdown\";\nimport TicketImage from \"./TicketImage\";\n\nconst useStyles = makeStyles((theme) => ({\n ticketWrapper: {\n width: \"100%\",\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr\",\n alignItems: \"start\",\n transition: \"all 0.3s ease\",\n [theme.breakpoints.up(\"sm\")]: {\n // padding: \"0.5rem\",\n },\n [theme.breakpoints.down(\"sm\")]: {\n gap: \"1rem\",\n gridTemplateColumns: \"1fr\",\n alignItems: \"center\",\n padding: \"0.5rem\",\n },\n },\n\n ticketTextWrapper: {\n marginTop: \"0\",\n },\n\n ticketTextPadding: {\n padding: \"0 0 0 1.5rem\",\n\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"1rem 0rem\",\n },\n },\n\n ticketTextPaddingNoImg: {\n [theme.breakpoints.up(\"sm\")]: {\n padding: \"0\",\n },\n\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"0rem 0rem\",\n },\n },\n\n ticketText: {\n [theme.breakpoints.down(\"sm\")]: {\n maskImage: \"none\",\n },\n },\n\n readMoreButton: {\n display: \"none\",\n border: \"none\",\n background: \"transparent\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingTop: \"1rem\",\n color: \"#2a5fb5\",\n fontFamily: \"Montserrat, Roboto, Helvetica, Arial, sans-serif\",\n fontWeight: \"500\",\n display: \"block\",\n },\n },\n}));\n\nconst TicketIntroduction = (props) => {\n const { urlParams, ticketData, altText, text, language } = props;\n const [hideLongText, setHideLongText] = useState(true);\n\n const filter = ticketData.filter((el) => el.slug.toLowerCase() === urlParams);\n const classes = useStyles();\n useEffect(() => {\n setHideLongText(false);\n }, [text]);\n\n return (\n
    \n {filter && filter[0]?.image ? (\n \n ) : (\n \"\"\n )}\n {filter && filter.length >= 1 ? (\n \n \n
    \n {text.length > 300 && window.screen.availWidth <= 768 ? (\n \n \n
    \n ) : (\n \n )}\n {text.length > 300 && window.screen.availWidth <= 768 ? (\n setHideLongText(!hideLongText)}\n >\n {hideLongText === false\n ? language.ReadMore\n : language.ShowLessText}\n \n ) : (\n \"\"\n )}\n
    \n \n
    \n ) : (\n \"\"\n )}\n
    \n );\n};\n\nexport default TicketIntroduction;\n","import React, { useEffect } from \"react\";\nimport {\n addMonths,\n format,\n isBefore,\n isSameMonth,\n startOfMonth,\n subMonths,\n} from \"date-fns\";\nimport {\n IoIosArrowDropleftCircle,\n IoIosArrowDroprightCircle,\n} from \"react-icons/io\";\n\nconst Header = ({\n currentDate,\n setCurrentDate,\n allotmentSettings,\n firstDate,\n latestDate,\n cultureLocale,\n pathname,\n language,\n}) => {\n const monthStart = startOfMonth(new Date(firstDate?.time));\n const monthFormat = \"MMMM\";\n const yearFormat = \"yyyy\";\n const nextMonth = () => {\n setCurrentDate(addMonths(currentDate, 1));\n };\n const prevMonth = () => {\n setCurrentDate(subMonths(currentDate, 1));\n };\n\n useEffect(() => {\n setCurrentDate(new Date(firstDate?.time));\n }, [pathname, firstDate]);\n\n const lastMonthLabel = format(subMonths(currentDate, 1), \"MMMM\", {\n locale: cultureLocale,\n });\n const nextMonthLabel = format(addMonths(currentDate, 1), \"MMMM\", {\n locale: cultureLocale,\n });\n\n return (\n <>\n {allotmentSettings[0] && (\n \n
    \n {!isBefore(startOfMonth(currentDate), new Date(firstDate?.time)) ? (\n \n \n \n ) : (\n
    \n \n
    \n )}\n
    \n\n \n \n {format(currentDate, monthFormat, { locale: cultureLocale })}{\" \"}\n \n {format(currentDate, yearFormat)}\n \n\n
    \n {!isSameMonth(new Date(currentDate), new Date(latestDate?.time)) ? (\n \n \n \n ) : (\n
    \n \n
    \n )}\n
    \n \n )}\n \n );\n};\n\nexport default Header;\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\";\nimport {\n addDays,\n endOfMonth,\n endOfWeek,\n format,\n isBefore,\n isSameDay,\n isSameMonth,\n parseISO,\n startOfMonth,\n startOfWeek,\n toDate,\n} from \"date-fns\";\nimport \"./styles.css\";\nimport AlertIcon from \"../Drawer/AlertIcon\";\n\nconst WeekDay = ({\n currentDate,\n setSelectedDate,\n allotment,\n allotmentData,\n allotmentSettings,\n loading,\n chosenDate,\n setChosenDate,\n setFilteredData,\n scrollIntoView,\n language,\n cultureLocale,\n}) => {\n const [allotmentOccasion, setAllotmentOccasion] = useState([]);\n const [siteSettings, setSiteSettings] = useState([]);\n const monthStart = startOfMonth(currentDate, { locale: cultureLocale });\n const monthEnd = endOfMonth(monthStart);\n const startDate = startOfWeek(monthStart, { locale: cultureLocale });\n const endDate = endOfWeek(monthEnd);\n const dateFormat = \"d\";\n const rows = [];\n\n let days = [];\n let day = startDate;\n let formattedDate = \"\";\n\n useEffect(() => {\n if (allotmentData && allotment.length >= 1 && loading === false) {\n const filteredAllotment = allotmentData.allotments.filter((el) => {\n return allotment.some((FilteredData) => {\n return el.description === FilteredData.description;\n });\n });\n\n const filterAll = filteredAllotment.map((el) => el.occasions);\n const newAllotmentData = filterAll.flat().map((el) => [\n {\n time: format(parseISO(el.time), \"yyyy-MM-dd\"),\n remaining: el.remaining,\n articles: el.articles,\n price: el.articles.map((ele) => ele.priceInclVat).sort(),\n allotment: el.allotment,\n timeOccasions: el.time,\n },\n ]);\n\n // Set the calendar to show the earliest day\n let filtered = newAllotmentData.sort().flat();\n setFilteredData(filtered);\n\n // Get occasion time and data values\n let res = Object.values(\n newAllotmentData.flat().reduce((a, { time, ...props }) => {\n if (!a[time]) a[time] = Object.assign({}, { time, data: [props] });\n else a[time].data.push(props);\n return a;\n }, {})\n );\n let calendarSettings = [];\n calendarSettings.push(allotmentSettings[0]);\n setSiteSettings([\n {\n showAvailability: calendarSettings[0].showAvailability,\n showColors: calendarSettings[0].showColors,\n showPrice: calendarSettings[0].showPrice,\n lowAllotmentQty: calendarSettings[0].lowAllotmentQty,\n bgColor: calendarSettings[0].bgColor,\n lowTicketQty: calendarSettings[0].lowTicketQty,\n },\n ]);\n setAllotmentOccasion(res);\n }\n }, [allotment]);\n\n const onDateClick = (day) => {\n setSelectedDate(day);\n setChosenDate(day);\n setTimeout(() => {\n scrollIntoView(\"TimeChooser\");\n }, 100);\n };\n\n let formatDay = \"yyyy-MM-dd\";\n let today = new Date();\n let yesterday = today.setDate(today.getDate() - 1);\n\n const getPrice = (day) => {\n if (siteSettings[0] !== undefined && siteSettings[0].showPrice === true) {\n let filterByDay = allotmentOccasion.filter(\n (el) => format(parseISO(el.time), formatDay) === format(day, formatDay)\n );\n let getData = filterByDay.map((ele) => ele.data);\n let reducedOccasions = getData\n .flat()\n .map((el) => el.remaining)\n .reduce((sum, a) => sum + a, 0);\n\n const removeChar = (price) => {\n if (price) {\n let newPrice = price && price.replaceAll(/[^0-9\\,.]/g, \"\");\n return newPrice.replace(\",\", \"\");\n }\n };\n\n let price2 = getData.flat()[0]?.price;\n const filterOutZeroCost = price2?.filter((el) => removeChar(el) > 0);\n const getPrices = filterOutZeroCost?.sort(\n (a, b) => parseFloat(removeChar(a)) - parseFloat(removeChar(b))\n )[0];\n\n if (filterByDay.length > 0 && reducedOccasions === 0) {\n return

    {language.FullAllotment}

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

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

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

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

    {language.LoadingText}

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

    {language.FullAllotment}

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

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

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

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

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

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

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

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

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

    {language.ChooseTimeHeader}

    \n\n \n

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

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

    \n {checkAllotmentId(allotmentId)}\n

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

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

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

    {language?.ChooseAllotmentHeader}

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

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

    \n ) : (\n

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

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

    {el.name}

    \n

    {el.priceInclVat}

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

    {language?.Options}

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

    {ele.name}

    \n

    \n {language?.SoldOut}\n

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

    {ele.name}

    \n

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

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

    {el.name}

    \n

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

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

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

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

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

    \n\n {allotment.length === 0 ||\n (allotmentSettings[0] !== undefined &&\n allotmentSettings[0].showColors === false) ? (\n \"\"\n ) : (\n \n )}\n \n
    \n
    \n {allotment.length > 0 && (\n \n (pageRefs.current = { ...pageRefs.current, TimeChooser: el })\n }\n // style={{ paddingTop: singleOccasion ? \"0\" : \"0\" }}\n >\n
    \n \n
    \n
    \n )}\n\n \n (pageRefs.current = { ...pageRefs.current, ArticleChooser: el })\n }\n >\n {allotment.length > 0 && (\n
    \n \n
    \n )}\n \n \n \n );\n};\n\nexport default Ticket;\n","import React, { useContext, useMemo } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { DataContext } from \"../../components/common/dataProvider\";\nimport PageContent from \"../../components/Styles/PageContent\";\nimport PageLayout from \"../../components/Styles/PageLayout\";\nimport Ticket from \"../../components/Ticket\";\nimport { getEvent } from \"../EventPage/util\";\nimport slugify from \"../../components/common/slugify\";\nimport { Button, Container, Text, Title } from \"@mantine/core\";\nimport { useNavigate } from \"@reach/router\";\n\nconst TicketPage = ({ id }) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const { data, eventFilter } = useContext(DataContext);\n const config = useSelector((state) => state.config);\n const ticketData = config.ticketConfigurator;\n const event = useMemo(() => getEvent(data, config, id), [data, id, config]);\n const configurator = config?.ticketConfigurator.find(\n (el) => slugify(el.slug) === id\n );\n const navigate = useNavigate();\n\n if (!configurator || configurator?.disabled)\n return (\n \n \n \n \n {language.CouldNotFindEventHeader}\n \n \n {language.CouldNotFindEventText}\n \n navigate(\"/ticketshop\")}\n className=\"mantine-Primary-btn\"\n variant=\"filled\"\n size=\"md\"\n radius=\"sm\"\n color=\"indigo\"\n >\n {language.BackToHomepage}\n \n \n \n \n );\n\n return (\n \n \n \n \n \n );\n};\n\nexport default TicketPage;\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\";\nimport OccasionButton from \"./OccasionButton\";\nimport PreviousPageBtn from \"./PreviousPageBtn\";\nimport MoveOccasaionCalendar from \"./Calendar\";\nimport \"./styles.css\";\nimport ConfirmationAnimation from \"./ConfirmationAnimation\";\nimport { motion } from \"framer-motion\";\nimport { format, isBefore } from \"date-fns\";\nimport axios from \"axios\";\nimport SubmitButton from \"./SubmitButton\";\nimport { Typography } from \"@material-ui/core\";\nimport Markdown from \"react-markdown\";\n\nconst Content = ({\n step,\n setStep,\n ticketData,\n currentDate,\n setCurrentDate,\n filteredTicketData,\n chosenOldOccasion,\n setChosenOldOccasion,\n occasion,\n config,\n language,\n culture,\n posId,\n token,\n errorMsg,\n setErrorMsg,\n introductionText,\n}) => {\n const [selectedDate, setSelectedDate] = useState();\n const [content, setContent] = useState();\n const [newOccasions, setNewOccasions] = useState([]);\n const [returnClick, setReturnClick] = useState(false);\n const [pinValue, setPinValue] = useState(\"\");\n const [changeView, setChangeView] = useState(false);\n const [chosenNewOccasion, setChosenNewOccasion] = useState();\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if (occasion !== undefined && selectedDate !== undefined) {\n let date = new Date(selectedDate);\n let filterOccasions = occasion[0].occasions.filter(\n (el) => el.time.split(\"T\")[0].toString() === format(date, \"yyyy-MM-dd\")\n );\n let removeBeforeNow = filterOccasions.filter(\n (el) => !isBefore(new Date(el.time), new Date())\n );\n setNewOccasions(removeBeforeNow);\n setChosenNewOccasion();\n }\n }, [selectedDate]);\n\n useEffect(() => {\n if (ticketData !== undefined && ticketData.length === 0) {\n setErrorMsg(language.ErrorMsgMissingToken);\n }\n }, [ticketData]);\n\n useEffect(() => {\n setChangeView(false);\n if (step === 0) {\n setContent(introduction);\n setChangeView(true);\n }\n if (step === 1) {\n setContent(chooseOldOccasion);\n setChangeView(true);\n }\n if (step === 2) {\n setContent(chooseNewDate);\n }\n if (step === 3) {\n setErrorMsg(\"\");\n setContent(chooseNewTime);\n }\n if (step === 4) {\n setErrorMsg(\"\");\n setContent(confirmNewOccasion);\n setPinValue(\"\");\n }\n if (step === 5) {\n setErrorMsg(\"\");\n setContent(receiptScreen);\n }\n }, [step]);\n\n const introduction = {\n text: introductionText,\n btnTextPrimary: language.GoToBookingBtn,\n clickToSection: 1,\n };\n\n const chooseOldOccasion = {\n header: language.ChooseOldOccasionHeader,\n btnText: language.SecondaryBtn,\n btnTextPrimary: language.PrimaryBtn,\n progress: 0,\n clickToSection: 2,\n secondaryClick: config?.self,\n chooseData: ticketData,\n };\n\n const chooseNewDate = {\n header: language.ChooseNewOccasionHeader,\n btnText: language.SecondaryBtn,\n btnTextPrimary: language.PrimaryBtn,\n clickToSection: 3,\n secondaryClick: config?.self,\n chooseData: \"\",\n };\n\n const chooseNewTime = {\n header: language.ChooseNewOccasionTimeHeader,\n btnText: language.SecondaryBtn,\n btnTextPrimary: language.PrimaryBtn,\n clickToSection: 4,\n secondaryClick: config?.self,\n chooseData: newOccasions,\n };\n\n const confirmNewOccasion = {\n header: language.ConfirmNewOccasionHeader,\n btnText: language.SecondaryBtn,\n btnTextPrimary: language.SubmitBtn,\n clickToSection: \"submit\",\n secondaryClick: config?.self,\n confirmOldOccasion: chosenOldOccasion,\n confirmNewOccasion: chosenNewOccasion,\n };\n\n const receiptScreen = {\n header: language.ConfirmationHeader,\n btnTextPrimary: language.RedirectBtn,\n clickToSection: \"redirect\",\n redirect: config?.logoLink,\n confirmationOldData: chosenOldOccasion,\n confirmationNewData: chosenNewOccasion,\n };\n\n const handlePost = (e) => {\n e.preventDefault();\n setErrorMsg(\"\");\n\n if (\n posId &&\n pinValue.length === 4 &&\n chosenOldOccasion &&\n chosenNewOccasion\n ) {\n setLoading(true);\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n axios\n .post(`${uri}/api/managesale/${token}/allotments`, {\n posId: posId,\n pin: pinValue,\n allotmentId: chosenOldOccasion.allotmentId,\n fromOccasion: chosenOldOccasion.occasion,\n toOccasion: chosenNewOccasion.time,\n })\n .then(function (response) {\n setLoading(false);\n setStep(5);\n setErrorMsg(\"\");\n })\n .catch(function (error) {\n setLoading(false);\n if (error.response.data === 1) {\n setErrorMsg(language.ErrorMsgIllegalPin);\n }\n if (error.response.data === 2) {\n setErrorMsg(language.ErrorMsgNoOccasionsToMoveFrom);\n }\n if (error.response.data === 3) {\n setErrorMsg(language.ErrorMsgTooCloseToOccasion);\n }\n if (error.response.data === 4) {\n setErrorMsg(language.ErrorMsgInvalidParameter);\n }\n if (error.response.data === 5) {\n setErrorMsg(language.ErrorMsgApiError);\n }\n });\n }\n };\n\n const disabled = () => {\n if (step === 0 && errorMsg.length === 0) {\n return false;\n }\n if (step === 1 && chosenOldOccasion !== undefined) {\n return false;\n }\n\n if (step === 2 && selectedDate !== undefined) {\n return false;\n }\n if (step === 3 && chosenNewOccasion !== undefined) {\n return false;\n }\n if (step === 4 && pinValue.length === 4) {\n return false;\n }\n\n if (step === 5) {\n return false;\n } else {\n return true;\n }\n };\n const handleChange = (e) => {\n let onlyNumbers = /^[0-9]*$/;\n if (onlyNumbers.test(e.target.value)) {\n setPinValue(e.target.value);\n }\n };\n\n return (\n \n {step !== 0 && step !== 5 ? (\n \n ) : (\n \"\"\n )}\n\n

    {content?.header}

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

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

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

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

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

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

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

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

    \n \n

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

    \n {/*

    \n {Object.values(content?.confirmData[0].name)}\n

    */}\n

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

    \n
    \n

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

    \n \n

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

    \n {/*

    \n {Object.values(content?.confirmData[1].name)}\n

    */}\n

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

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

    \n {language.PinCodeHelperText}\n

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

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

    {errorMsg}

    \n \n ) : (\n \"\"\n )}\n\n 0 ? \"1rem 0rem 0.5rem 0\" : \"\",\n }}\n >\n {content?.btnText ? (\n \n ) : (\n \"\"\n )}\n {content?.clickToSection === \"submit\" ? (\n handlePost(e)}\n >\n \n \n ) : content?.clickToSection === \"redirect\" ? (\n \n ) : step === 0 && errorMsg.length > 0 ? (\n \"\"\n ) : (\n \n )}\n \n \n );\n};\n\nexport default Content;\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\";\nimport axios from \"axios\";\nimport gql from \"graphql-tag\";\nimport { useQuery } from \"@apollo/react-hooks\";\nimport { STATE_CULTURE, STATE_CURRENCY } from \"../../common/state\";\nimport { useSelector } from \"react-redux\";\nimport Header from \"./Header\";\nimport Content from \"./Content\";\nimport \"./styles.css\";\nimport { useLocation } from \"@reach/router\";\nimport Modal from \"react-modal\";\nimport { motion } from \"framer-motion\";\nimport { addYears, startOfMonth } from \"date-fns\";\nimport useResizeObserver from \"./hooks/useResizeObserver\";\n\nconst query = gql`\n query detailQuery(\n $currency: String\n $culture: String\n $posId: Int\n $from: DateTime\n $until: DateTime\n ) {\n allotments(\n currency: $currency\n culture: $culture\n posId: $posId\n from: $from\n until: $until\n ) {\n id\n description\n occasions {\n time\n remaining\n allotment {\n id\n maxPerSale\n }\n articles {\n id\n name\n description\n plu\n priceInclVat\n isPersonalTicket\n price {\n amountInclVat\n }\n }\n }\n }\n }\n`;\n\nconst MoveOccasions = () => {\n const { config, language, currency, culture } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n culture: state.cookies[STATE_CULTURE],\n currency: state.cookies[STATE_CURRENCY],\n }));\n const [step, setStep] = useState(0);\n const [currentDate, setCurrentDate] = useState(new Date());\n const [progress, setProgress] = useState([1, 1, 1, 1, 1]);\n const [ticketData, setTicketData] = useState();\n const [from, setFrom] = useState();\n const [until, setUntil] = useState();\n const [filteredTicketData, setFilteredTicketData] = useState([]);\n const [chosenOldOccasion, setChosenOldOccasion] = useState();\n const [occasion, setOccasion] = useState();\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [introductionText, setIntroductionText] = useState(\"\");\n const [initialHeight, setInitialHeight] = useState();\n const [newHeight, setNewHeight] = useState();\n\n const { posId } = config;\n const location = useLocation();\n\n const token = location.pathname.split(\"/\").slice(-1);\n\n useEffect(() => {\n setFrom(startOfMonth(new Date()));\n setUntil(addYears(currentDate, 1));\n }, [currentDate]);\n\n const result = useQuery(query, {\n fetchPolicy: \"cache-and-network\",\n variables: { posId, currency, culture, from, until },\n });\n\n useEffect(() => {\n const uri = config?.apiUriOverride?.startsWith(\"http\")\n ? config.apiUriOverride\n : config.apiUri;\n\n axios\n .get(`${uri}/api/managesale/${token}/allotments`)\n .then((res) => {\n const result = res.data;\n setTicketData(result);\n })\n .catch((error) => {\n if (error.response.data === 100) {\n setErrorMsg(language.ErrorMsgMissingToken);\n }\n if (error.response.data === 101) {\n setErrorMsg(language.ErrorMsgBadToken);\n }\n });\n }, []);\n\n useEffect(() => {\n axios\n .get(\n `${process.env.PUBLIC_URL}/ee-static/shop/${config?.shopName}/Texts//moveoccasions.${culture}.md`\n )\n .then((data) => setIntroductionText(data.data))\n .catch((err) => {\n console.log(err);\n });\n }, []);\n\n useEffect(() => {\n const filter = result.data?.allotments.filter((el) => {\n return (\n ticketData &&\n ticketData.some((ele) => {\n return el.id === ele.allotmentId;\n })\n );\n });\n setFilteredTicketData(filter);\n }, [result, ticketData]);\n\n useEffect(() => {\n if (chosenOldOccasion !== undefined && filteredTicketData !== undefined) {\n const filter =\n chosenOldOccasion &&\n filteredTicketData &&\n filteredTicketData.filter(\n (el) => el.id === chosenOldOccasion.allotmentId\n );\n setOccasion(filter);\n }\n }, [chosenOldOccasion, filteredTicketData]);\n\n const style = {\n top: \"50%\",\n left: \"50%\",\n right: \"auto\",\n bottom: \"auto\",\n marginRight: \"-50%\",\n paddingLeft: \"20px\",\n transform: \"translate(-50%, -50%)\",\n zIndex: \"2000\",\n position: \"absolute\",\n backgroundColor: \"rgb(250, 250, 250)\",\n };\n let isOpen = true;\n\n // const [ref, { height }] = useMeasure();\n const headerRef = useRef(null);\n const [ref, entry] = useResizeObserver();\n\n useEffect(() => {\n setNewHeight(entry?.contentRect?.height);\n window.addEventListener(\"resize\", setNewHeight(entry?.contentRect?.height));\n return window.removeEventListener(\n \"resize\",\n setNewHeight(entry?.contentRect?.height)\n );\n }, [entry.contentRect]);\n\n useEffect(() => {\n if (headerRef.current) {\n headerRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n }, [headerRef, step]);\n\n const variants = {\n initial: {\n height: newHeight,\n transition: {\n duration: 0,\n },\n },\n updated: {\n height: newHeight,\n transition: {\n duration: 0.5,\n },\n },\n };\n\n return (\n
    \n \n 0 ? \"updated\" : \"initial\"}\n className=\"moveoccasions-modal\"\n >\n
    \n
    \n \n
    \n \n
    \n \n \n
    \n );\n};\n\nexport default MoveOccasions;\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\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { CART_ARTICLE_ADD, Context, OPEN_ALERT } from \"../../context\";\nimport { addArticleBatch, addToCartTracking } from \"../../common/sale\";\nimport { navigate } from \"@reach/router\";\nimport AddToCartButton from \"./AddToCartButton\";\nimport { STATE_CURRENCY } from \"../../common/state\";\n\nconst AddToCart = ({\n articlesData,\n cart,\n setCart,\n config,\n setAddedOrder,\n language,\n settingsData,\n}) => {\n const rdxDispatch = useDispatch();\n const { dispatch } = useContext(Context);\n const [disabledBtn, setDisabledBtn] = useState(true);\n const [loading, setLoading] = useState(false);\n const { currency } = useSelector((state) => ({\n currency: state.cookies[STATE_CURRENCY],\n }));\n\n useEffect(() => {\n const checkCartForTickets = () => {\n let newCart = cart;\n const filter = newCart.filter((el) => {\n return articlesData.some((ele) => {\n return ele.id === el.id;\n });\n });\n if (filter.length > 0) {\n setDisabledBtn(false);\n } else {\n setDisabledBtn(true);\n }\n };\n checkCartForTickets();\n }, [cart]);\n\n const productPrice = (item) => {\n if (item && item.length > 0) {\n const regex = /[$€£kr]/g;\n let newPrice = item.replace(regex, \"\");\n if (newPrice.trim().split(\".\")[1] === \"00\") {\n return newPrice.split(\".\")[0];\n } else {\n return newPrice;\n }\n }\n };\n\n const reduceCart = Object.values(\n cart.reduce((acc, curr) => {\n if (!acc[curr.plu]) {\n acc[curr.plu] = {\n plu: curr.plu,\n quantity: 1,\n };\n } else {\n acc[curr.plu].quantity += 1;\n }\n return acc;\n }, {})\n );\n\n const trackReduceCart = Object.values(\n cart.reduce((acc, curr) => {\n if (!acc[curr.plu]) {\n acc[curr.plu] = {\n id: curr.plu,\n quantity: 1,\n price: curr.priceInclVat\n ? parseFloat(productPrice(curr.priceInclVat).replace(\",\", \".\"))\n : parseFloat(productPrice(curr.displayPrice).replace(\",\", \".\")),\n name: curr.name,\n };\n } else {\n acc[curr.plu].quantity += 1;\n }\n return acc;\n }, {})\n );\n\n const add = () => {\n setLoading(true);\n rdxDispatch(addArticleBatch(reduceCart, cb));\n };\n\n const linkToCart = config.self.split(\"/\").slice(-1);\n\n const redirectToCart = () => {\n if (settingsData.goToCartOnSubmit === true) {\n window.scrollTo(0, 0);\n navigate(`/${linkToCart}/cart`);\n }\n };\n\n const cb = (status, msg) => {\n setLoading(false);\n\n if (status >= 400) {\n dispatch({\n type: OPEN_ALERT,\n payload: {\n text: language.ArticleBooking.ErrorMsg,\n severity: \"error\",\n },\n });\n setCart([]);\n } else {\n dispatch({\n type: CART_ARTICLE_ADD,\n payload: reduceCart,\n });\n setCart([]);\n setAddedOrder(true);\n addToCartTracking(currency, trackReduceCart);\n redirectToCart();\n }\n };\n\n return (\n add()}\n aria-label={language.AddToCartBtn}\n >\n \n \n );\n};\n\nexport default AddToCart;\n","import React, { useEffect, useState } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { MdAddCircle, MdRemoveCircle } from \"react-icons/md\";\nimport AddToCart from \"./AddToCart\";\n\nconst Cart = ({\n section,\n articlesData,\n optionsData,\n config,\n setAddedOrder,\n language,\n isVisible,\n setIsVisible,\n settingsData,\n culture,\n currency,\n}) => {\n const [cart, setCart] = useState([]);\n const [cartTotal, setCartTotal] = useState(0);\n const [isOn, setIsOn] = useState(true);\n const [disabledBtn, setDisabledBtn] = useState(false);\n\n const addItem = (item) => {\n if (item.inStock) {\n if (calculateQuantity(item) + 1 <= item.inStock) {\n setCart([...cart, item]);\n }\n if (calculateQuantity(item) === item.inStock) {\n setDisabledBtn(true);\n }\n }\n if (!item.inStock) {\n setCart([...cart, item]);\n }\n };\n\n const removeItem = (item) => {\n let newCart = [...cart];\n let res = cart.findIndex((el) => el.id === item.id);\n newCart.splice(res, 1);\n setCart(newCart);\n };\n\n const calculateQuantity = (item) => {\n const findItems = cart.filter((el) => el.id === item.id);\n return findItems.length;\n };\n\n const calculateValue = () => {\n const removeChar = (price) => {\n if (price) {\n const regex = /[$€£kr]/g;\n let newPrice = price && price.replace(regex, \"\");\n return newPrice;\n }\n };\n\n let total = 0;\n for (let i = 0; i < cart.length; i++) {\n total += parseFloat(\n removeChar(cart[i].priceInclVat)\n ? removeChar(cart[i].priceInclVat)\n : removeChar(cart[i].displayPrice)\n ? removeChar(cart[i].displayPrice)\n : \"\"\n );\n }\n setCartTotal(total.toFixed(2));\n };\n\n const translation = (item) => {\n const getLang = item.translation.filter((el) => el.culture === culture);\n return getLang[0].name;\n };\n\n const spring = {\n type: \"spring\",\n stiffness: 500,\n damping: 30,\n };\n\n useEffect(() => {\n setCart([]);\n }, [section]);\n\n useEffect(() => {\n calculateValue();\n }, [cart]);\n\n const total = (item) => {\n switch (currency) {\n case \"SEK\":\n return item + \" kr\";\n break;\n case \"EUR\":\n return \"€\" + item;\n break;\n case \"DKK\":\n return item + \" kr\";\n break;\n case \"GBP\":\n return \"£\" + item;\n break;\n case \"USD\":\n return \"$\" + item;\n break;\n case \"NOK\":\n return item + \" kr\";\n break;\n }\n };\n\n const productPrice = (item) => {\n const regex = /[$€£kr]/g;\n let newPrice =\n item !== null && item !== undefined && item.replace(regex, \"\");\n if (newPrice.trim().split(\".\")[1] === \"00\") {\n return newPrice.split(\".\")[0];\n } else {\n return newPrice;\n }\n };\n return (\n \n
    \n

    {language?.ArticleBooking.CartHeader}

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

    {translation(el)}

    \n

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

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

    \n {language.ArticleBooking.OptionsHeader}\n

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

    {el.name}

    \n

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

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

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

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

    \n ) : (\n \"\"\n )}\n \n
    \n {section && section.length !== 0 ? (\n \n ) : (\n \"\"\n )}\n {settingsData.showGoToCartModal ? (\n \n ) : (\n \"\"\n )}\n \n
    \n );\n};\n\nexport default ArticleBooking;\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\";\nimport { useLocation, useNavigate } from \"@reach/router\";\n\nexport default function ScrollToTop() {\n const { pathname } = useLocation();\n let location = useLocation();\n const navigate = useNavigate();\n\n useEffect(() => {\n const goBackUrl = localStorage.getItem(\"goBackUrl\");\n if (goBackUrl && goBackUrl.startsWith(\"publicBooking\")) {\n navigate(goBackUrl.split(\"?\")?.[1]);\n }\n window.scrollTo(0, 0);\n localStorage.setItem(\"goBackUrl\", location.href);\n }, [pathname]);\n\n return null;\n}\n","import gql from \"graphql-tag\";\n\nexport const GET_PUBLIC_BOOKING_PUBLIC_INFO = gql`\n query publicBookingQuery($activityId: String!) {\n publicBookingPublicInfo(activityId: $activityId) {\n formFields {\n id\n name\n description\n order\n fieldType\n fieldConstraints {\n isMandatory\n min\n max\n values\n }\n }\n publicBookingTypes {\n id\n name\n description\n minParticipants\n maxParticipants\n articlesToApply\n occasionLengthInMinutes\n }\n }\n }\n`;\n\nexport const GET_PUBLIC_BOOKING_OCCASIONS = gql`\n query publicBookingOccasionsQuery(\n $activityId: String!\n $occasionsFrom: DateTime\n $occasionsTo: DateTime\n ) {\n publicBookingOccasions(\n activityId: $activityId\n occasionsFrom: $occasionsFrom\n occasionsTo: $occasionsTo\n )\n }\n`;\n\nexport const CREATE_PUBLIC_BOOKING_REQUEST = gql`\n mutation PublicBookingRequest(\n $activityId: String!\n $responsibleId: Guid\n $publicBookingTypeId: Guid\n $occasion: DateTime!\n $numberOfParticipants: Int!\n $formFields: [String]\n ) {\n publicBookingRequest(\n activityId: $activityId\n responsibleId: $responsibleId\n publicBookingTypeId: $publicBookingTypeId\n occasion: $occasion\n numberOfParticipants: $numberOfParticipants\n formFields: $formFields\n ) {\n success\n errorMessage\n }\n }\n`;\n","import React from \"react\";\nimport { createStyles, Title } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme) => ({\n container: {\n width: \"100%\",\n marginTop: \"1rem\",\n borderRadius: \"6px\",\n },\n section: {\n marginTop: \"1.25rem\",\n },\n}));\nconst BookingSection = ({ label, subLabel, children }) => {\n const { classes } = useStyles();\n\n return (\n
    \n
    \n \n {label} <span style={{ fontWeight: 400 }}>{subLabel}</span>\n \n
    \n
    {children}
    \n
    \n );\n};\n\nexport default BookingSection;\n","import React, { useContext } from \"react\";\nimport { Button } from \"@mantine/core\";\nimport { useSelector } from \"react-redux\";\nimport { Context } from \"../../context\";\n\nconst Login = () => {\n const { handleLogin, handleLogout } = useContext(Context);\n const { config, language } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n }));\n const { auth } = useSelector((state) => ({\n auth: state.oidc.user !== null && !state.oidc.user.expired,\n }));\n\n return (\n
    \n {\n if (auth) {\n handleLogout();\n } else {\n localStorage.setItem(\n \"goBackUrl\",\n `publicBooking?${window.location.pathname}`\n );\n handleLogin();\n }\n }}\n >\n {!auth && language.Log_On}\n {auth && language.Log_Off}\n \n
    \n );\n};\n\nexport default Login;\n","import React, { useState } from \"react\";\nimport {\n Badge,\n Button,\n Card,\n createStyles,\n Group,\n Modal,\n Text,\n Title,\n} from \"@mantine/core\";\nimport { HiOutlineClock } from \"react-icons/hi\";\nimport { MdEmojiPeople } from \"react-icons/md\";\nimport { useSelector } from \"react-redux\";\n\nconst useStyles = createStyles((theme) => ({\n card: {\n position: \"relative\",\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n height: \"100%\",\n },\n wrapper: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n height: \"100%\",\n },\n\n rating: {\n position: \"absolute\",\n top: theme.spacing.xs,\n right: theme.spacing.xs + 2,\n pointerEvents: \"none\",\n },\n\n title: {\n fontSize: \"1.15rem\",\n display: \"block\",\n marginTop: theme.spacing.xs,\n marginBottom: theme.spacing.xs / 2,\n },\n subTitle: {\n fontSize: \"1rem\",\n fontWeight: 400,\n },\n footer: {\n marginTop: \"1rem\",\n marginBottom: \"1.5rem\",\n },\n textContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n}));\n\nconst Type = ({\n id,\n name,\n description,\n articlesToApply,\n occasionLengthInMinutes,\n maxParticipants,\n minParticipants,\n form,\n tag,\n ...props\n}) => {\n const [opened, openedSet] = useState(false);\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const { classes, cx } = useStyles();\n\n return (\n <>\n \n {/**/}\n {/* */}\n {/**/}\n\n {tag && {tag}}\n
    \n
    \n \n {name}\n \n\n \n {description}\n \n {description.length > 200 && (\n \n )}\n
    \n
    \n \n \n \n \n \n {minParticipants} - {maxParticipants} {language.Persons}\n \n
    \n \n \n \n {occasionLengthInMinutes} {language.Minutes}\n \n
    \n \n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/**/}\n \n form.setFieldValue(\"publicBookingTypeId\", id)}\n aria-label={`${\n props.value !== id ? language.ChooseType : language.Chosen\n } ${name}`}\n >\n {props.value !== id ? language.ChooseType : language.Chosen}\n \n \n \n
    \n openedSet(false)}\n title={name}\n closeButtonLabel={language.Close}\n >\n {description}\n \n openedSet(false)}\n >\n {language.Close}\n \n \n \n \n );\n};\n\nexport default Type;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { Calendar } from \"@mantine/dates\";\nimport { createStyles, Loader, Text, Title } from \"@mantine/core\";\nimport { useSelector } from \"react-redux\";\nimport { useMediaQuery } from \"@mantine/hooks\";\nimport \"../styles.css\";\nimport \"dayjs/locale/sv\";\nimport \"dayjs/locale/en\";\nimport \"dayjs/locale/de\";\nimport \"dayjs/locale/da\";\nimport {\n addYears,\n endOfMonth,\n format,\n getDate,\n isSameMonth,\n startOfMonth,\n} from \"date-fns\";\nimport { STATE_CULTURE } from \"../../../common/state\";\n\nconst useStyles = createStyles((theme) => ({\n container: {\n width: \"100%\",\n position: \"relative\",\n marginBottom: \"1rem\",\n },\n loader: {\n position: \"absolute\",\n left: 0,\n right: 0,\n top: \"3.9rem\",\n bottom: 0,\n margin: \"auto\",\n zIndex: 1,\n },\n calendarWrapper: {\n position: \"relative\",\n },\n alertWrapper: {\n display: \"flex\",\n marginTop: \"10rem\",\n position: \"absolute\",\n bottom: 0,\n top: 0,\n left: 0,\n right: 0,\n justifyContent: \"center\",\n alignItems: \"center\",\n fontWeight: 500,\n fontSize: \"1.15rem\",\n span: {\n marginBottom: \"9rem\",\n },\n },\n\n titleWrapper: {\n marginBottom: \"1rem\",\n },\n calendar: {\n backgroundColor: \"white\",\n borderRadius: \"6px\",\n boxShadow:\n \"rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px\",\n },\n calendarBase: {\n // width: \"fit-content\",\n padding: \"1rem\",\n maxWidth: \"100%\",\n },\n center: {\n textAlign: \"center\",\n },\n}));\nconst DateChooser = ({\n initialData,\n initialLoading,\n occasions,\n form,\n calendarDatesSet,\n}) => {\n const { language, culture } = useSelector((state) => ({\n language: state.language,\n culture: state.cookies[STATE_CULTURE],\n }));\n const [value, valueSet] = useState(null);\n const [month, onMonthChange] = useState(new Date());\n const matches = useMediaQuery(\"(max-width: 768px)\");\n\n const { classes } = useStyles();\n\n const exclude = (date) => {\n const check =\n occasions &&\n occasions.some(\n (el) =>\n isSameMonth(date, new Date(el)) &&\n date.getDate() === getDate(new Date(el))\n );\n if (!check) return true;\n };\n\n useEffect(() => {\n if (value) {\n form.setFieldValue(\"occasion\", format(value, \"yyyy-MM-dd\"));\n }\n }, [value]);\n\n useEffect(() => {\n if (form.values.occasion) {\n valueSet(new Date(form.values.occasion));\n }\n calendarDatesSet({\n from: format(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n to: format(addYears(new Date(), 1), \"yyyy-MM-dd'T'HH:mm\"),\n });\n }, []);\n\n useEffect(() => {\n calendarDatesSet({\n from: startOfMonth(month),\n to: endOfMonth(month),\n });\n }, [month]);\n\n const getLastOccasion = useMemo(() => {\n return (\n initialData &&\n initialData?.publicBookingOccasions.sort(\n (a, b) => new Date(a) - new Date(b)\n )\n );\n }, [initialData]);\n\n useEffect(() => {\n if (occasions && occasions.length > 0 && initialData && !value) {\n onMonthChange(new Date(initialData?.publicBookingOccasions[0]));\n }\n\n if (occasions && occasions.length === 0 && initialData && !value) {\n onMonthChange(new Date(initialData?.publicBookingOccasions[0]));\n }\n\n if (value) {\n onMonthChange(value);\n }\n }, [initialData, value]);\n\n return (\n
    \n {initialLoading && }\n\n
    \n \n {language.Date}\n \n {language.ChooseDateToContinue}\n
    \n
    \n exclude(date)}\n minDate={new Date(getLastOccasion?.[0])}\n maxDate={new Date(getLastOccasion?.[getLastOccasion.length - 1])}\n month={month}\n onMonthChange={onMonthChange}\n hideOutsideDates\n style={{ opacity: initialLoading && 0.5 }}\n />\n\n {!initialLoading && occasions && occasions.length === 0 && (\n
    \n \n {language.NoOccasionsAvailable}\n \n
    \n )}\n
    \n
    \n );\n};\n\nexport default DateChooser;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { Button, createStyles, Text, Title } from \"@mantine/core\";\nimport { useSelector } from \"react-redux\";\nimport \"../styles.css\";\nimport { format, isSameDay } from \"date-fns\";\n\nconst useStyles = createStyles((theme) => ({\n container: {\n width: \"100%\",\n \"@media screen and (max-width: 768px)\": {\n marginBottom: \"1.5rem\",\n },\n },\n wrapper: {\n width: \"100%\",\n height: \"fit-content\",\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(70px, 1fr))\",\n gap: \".75rem\",\n },\n titleWrapper: {\n marginBottom: \"1rem\",\n },\n}));\nconst TimeChooser = ({ form, occasions }) => {\n const [activeTime, activeTimeSet] = useState(null);\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const { classes } = useStyles();\n\n useEffect(() => {\n if (activeTime) {\n const date = activeTime;\n form.setFieldValue(\"occasion\", date);\n }\n }, [activeTime]);\n\n const getOccasions = useMemo(() => {\n const filter =\n occasions &&\n occasions.filter((el) =>\n isSameDay(new Date(el), new Date(form.values.occasion))\n );\n if (filter) return filter.sort((a, b) => new Date(a) - new Date(b));\n }, [form, occasions]);\n\n return (\n \n
    \n \n {language.Occasion_Time_Label}\n \n {language.ChooseTimeToContinue}\n
    \n
    \n {getOccasions &&\n getOccasions.map((el) => (\n activeTimeSet(el)}\n >\n {format(new Date(el), \"HH:mm\")}\n \n ))}\n
    \n \n );\n};\n\nexport default TimeChooser;\n","import React, { useEffect, useState } from \"react\";\nimport { createStyles } from \"@mantine/core\";\nimport DateChooser from \"./DateChooser\";\nimport TimeChooser from \"./TimeChooser\";\nimport { useMediaQuery } from \"@mantine/hooks\";\nimport { useLazyQuery } from \"@apollo/react-hooks\";\nimport { GET_PUBLIC_BOOKING_OCCASIONS } from \"../publicBookingQuery\";\nimport { addYears } from \"date-fns\";\n\nconst useStyles = createStyles((theme) => ({\n container: {\n display: \"flex\",\n gap: \"2.5rem\",\n paddingRight: \"1rem\",\n \"@media screen and (max-width: 768px)\": {\n gap: \"1.5rem\",\n paddingRight: 0,\n },\n },\n}));\n\nconst DateTimePicker = ({ form, bookingApiClient }) => {\n const [calendarDates, calendarDatesSet] = useState({ from: null, to: null });\n\n const [lazyOccasionsQuery, { data: initialData, loading: initialLoading }] =\n useLazyQuery(GET_PUBLIC_BOOKING_OCCASIONS, {\n client: bookingApiClient,\n });\n\n useEffect(() => {\n lazyOccasionsQuery({\n variables: {\n activityId: form.values.activityId,\n occasionsFrom: new Date(),\n occasionsTo: addYears(new Date(), 1),\n },\n });\n }, [form.values.activityId]);\n\n const { classes } = useStyles();\n const matches = useMediaQuery(\"(max-width: 768px)\");\n return (\n \n \n \n \n );\n};\n\nexport default DateTimePicker;\n","import React, { useMemo, useState } from \"react\";\nimport { createStyles, Textarea, TextInput } from \"@mantine/core\";\nimport { useSelector } from \"react-redux\";\n\nconst useStyles = createStyles((theme) => ({\n label: {\n fontSize: \"1rem !important\",\n },\n description: {\n fontSize: \"1rem\",\n marginTop: \"-0.35rem\",\n paddingBottom: \".5rem\",\n color: \"black\",\n },\n}));\n\nconst TextField = ({\n id,\n index,\n placeholder,\n description,\n required,\n label,\n min,\n max,\n form,\n extraFormIsValid,\n extraFormIsValidSet,\n}) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const [isError, isErrorSet] = useState(null);\n const { classes } = useStyles();\n\n const addInput = (e) => {\n const split = e.target.value.split(\"\");\n form.setFieldValue(`formFields.${index}.stringVal`, e.target.value);\n if (split.length !== 0 && split.length < min) {\n isErrorSet(\n `${language.FormErrorMinChar} ${min - 1} ${language.Characters}`\n );\n extraFormIsValidSet([...extraFormIsValid, { id: index, isValid: false }]);\n } else if (!required && split.length === 0) {\n const filter =\n extraFormIsValid && extraFormIsValid.filter((el) => el.id !== index);\n extraFormIsValidSet(filter);\n } else if (split.length > max) {\n isErrorSet(`${language.FormErrorMaxChar} ${max} ${language.Characters}`);\n extraFormIsValidSet([...extraFormIsValid, { id: index, isValid: false }]);\n } else if (!required || split.length >= min || split.length <= max) {\n isErrorSet(null);\n\n if (extraFormIsValid) {\n const filter =\n extraFormIsValid && extraFormIsValid.filter((el) => el.id !== index);\n extraFormIsValidSet(filter);\n }\n }\n if (!required && split.length === 0) {\n isErrorSet(null);\n }\n };\n\n const getValue = useMemo(() => {\n const filter = form.values?.formFields.filter((el) => el.id === id)?.[0];\n if (!filter?.stringVal) {\n return \"\";\n } else {\n return filter?.stringVal;\n }\n }, [id, form]);\n\n return (\n
    \n {max > 50 ? (\n addInput(e)}\n />\n ) : (\n addInput(e)}\n />\n )}\n
    \n );\n};\n\nexport default TextField;\n","import React from \"react\";\nimport { createStyles, NumberInput } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme) => ({\n label: {\n fontSize: \"1rem !important\",\n },\n description: {\n fontSize: \"1rem\",\n marginTop: \"-0.35rem\",\n paddingBottom: \".5rem\",\n color: \"black\",\n },\n}));\n\nconst NumberField = ({\n form,\n index,\n placeholder,\n label,\n description,\n required,\n min,\n max,\n}) => {\n const { classes } = useStyles();\n return (\n \n );\n};\n\nexport default NumberField;\n","import React from \"react\";\nimport { Checkbox, createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme) => ({\n label: {\n fontSize: \"1rem !important\",\n },\n description: {\n fontSize: \"1rem\",\n marginTop: \"0.25rem\",\n paddingBottom: \".5rem\",\n color: \"black\",\n },\n}));\n\nconst CheckboxGroupField = ({\n form,\n label,\n description,\n values,\n required,\n index,\n}) => {\n const { classes } = useStyles();\n\n return (\n
    \n \n {values.map((el) => (\n \n ))}\n \n
    \n );\n};\n\nexport default CheckboxGroupField;\n","import React from \"react\";\nimport { createStyles, Text, Title } from \"@mantine/core\";\nimport { useSelector } from \"react-redux\";\nimport { format } from \"date-fns\";\n\nconst useStyles = createStyles((theme) => ({\n container: {},\n titleWrapper: {\n marginBottom: \"1rem\",\n },\n listWrapper: {\n display: \"grid\",\n gridTemplateColumns: \"30% 70%\",\n gap: \"3rem\",\n \"@media screen and (max-width: 768px)\": {\n gridTemplateColumns: \"1fr\",\n gap: \"0rem\",\n },\n \"& ul\": {\n marginTop: \"-.3rem\",\n listStyle: \"none\",\n padding: 0,\n paddingRight: \"2rem\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"0.5rem\",\n \"& li\": {\n wordBreak: \"break-word\",\n },\n },\n \"& span\": {\n fontWeight: 400,\n },\n },\n}));\n\nconst Confirmation = ({ form, data, name }) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const { classes } = useStyles();\n\n const fieldText = (field) => {\n if (field?.stringVal) {\n return {field?.stringVal};\n } else if (field?.multiVal && field?.multiVal?.length > 0) {\n return (\n field?.multiVal &&\n field?.multiVal.map((el, i) => (\n \n {el}\n \n ))\n );\n } else if (field?.intVal) {\n return {field?.intVal};\n } else {\n return -;\n }\n };\n const fields = (field) => {\n const getData = data && data?.formFields.filter((el) => el.id === field.id);\n if (getData) {\n const getValue = form.values.formFields.filter(\n (el) => el.id === getData?.[0].id\n );\n return (\n
  • \n {getData?.[0].name}\n
    \n
    {fieldText(getValue?.[0])}
    \n
  • \n );\n }\n };\n const dataFields = () => {\n const type = data?.publicBookingTypes.filter(\n (el) => el.id === form.values.publicBookingTypeId\n )?.[0];\n if (form) {\n return Object.entries(form.values).map((field) => {\n if (field?.[0] === \"activityId\") {\n return (\n
  • \n
    \n {language.Type}\n
    \n {type?.name}\n
    \n
    \n {language.Length}\n
    \n \n {type?.occasionLengthInMinutes} {language.Minutes}\n \n
    \n
  • \n );\n }\n if (field?.[0] === \"occasion\") {\n return (\n
  • \n
    \n {language.Occasion}\n
    \n {format(new Date(field?.[1]), \"yyyy-MM-dd HH:mm\")}\n
    \n
  • \n );\n }\n if (field?.[0] === \"numberOfParticipants\") {\n return (\n
  • \n
    \n {language.AmountOfParticipants}\n
    \n {field?.[1]}\n
    \n
  • \n );\n }\n if (field?.[0] === \"responsibleId\") {\n return (\n
  • \n
    \n {language.Responsible}\n
    \n {name}\n
    \n
  • \n );\n }\n });\n }\n };\n return (\n
    \n
    \n \n {language.Summary}\n \n \n {language.CheckSummary}\n \n
    \n
    \n
      {dataFields()}
    \n
    \n \n {language.ExtraFields}\n \n
      {form.values.formFields.map((el) => fields(el))}
    \n
    \n
    \n
    \n );\n};\n\nexport default Confirmation;\n","import React from \"react\";\nimport { Button, createStyles } from \"@mantine/core\";\nimport { FaArrowLeft, FaArrowRight } from \"react-icons/fa\";\nimport { useSelector } from \"react-redux\";\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n display: \"flex\",\n width: \"100%\",\n justifyContent: \"space-between\",\n marginTop: \"1.25rem\",\n },\n firstButton: {\n \"@media screen and (max-width: 768px)\": {\n width: \"100% !important\",\n },\n },\n}));\nconst ButtonNavigation = ({\n activeStep,\n onPrevClick,\n onNextClick,\n isDisabled,\n onClick,\n}) => {\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n const { classes } = useStyles();\n const prevClick = () => {\n if (onClick) {\n Promise.resolve(onClick()).then(() => onPrevClick());\n } else {\n onPrevClick();\n }\n };\n const nextClick = () => {\n if (onClick) {\n Promise.resolve(onClick()).then(() => onNextClick());\n } else {\n onNextClick();\n }\n };\n\n return (\n
    \n {activeStep !== 0 && (\n }\n onClick={() => {\n prevClick();\n }}\n aria-label={language.GoToPreviousStepBtn}\n >\n {language.Back}\n \n )}\n {activeStep === 0 &&
    }\n {activeStep !== 5 && (\n }\n onClick={() => {\n nextClick();\n }}\n disabled={isDisabled}\n >\n {language.NextStep}\n \n )}\n
    \n );\n};\n\nexport default ButtonNavigation;\n","import React from \"react\";\nimport { Button, createStyles, Text, Title } from \"@mantine/core\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"@reach/router\";\n\nconst useStyles = createStyles((theme) => ({\n container: {},\n titleWrapper: {\n marginBottom: \"1rem\",\n },\n buttonWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n width: \"100%\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: \"1.5rem\",\n \"@media screen and (max-width: 768px)\": {\n flexDirection: \"column\",\n },\n },\n}));\nconst Receipt = ({ success, error, onPrevClick }) => {\n const { classes } = useStyles();\n const { language } = useSelector((state) => ({\n language: state.language,\n }));\n\n const navigate = useNavigate();\n return (\n
    \n
    \n \n {success && language.BookingComplete}\n {!success && language.BookingError}\n \n \n {success && language.BookingDescription}\n {!success && language.BookingErrorDescription}\n \n
    \n
    \n {!success ? (\n onPrevClick()}\n className={\"primaryButton\"}\n size=\"md\"\n >\n {language.Back}\n \n ) : (\n
    \n )}\n navigate(\"/ticketshop\")}\n className={\"primaryButton\"}\n size=\"md\"\n >\n {language.BackToHomepage}\n \n
    \n
    \n );\n};\n\nexport default Receipt;\n","import React from \"react\";\nimport { createStyles, Radio } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme) => ({\n label: {\n fontSize: \"1rem !important\",\n },\n description: {\n fontSize: \"1rem\",\n marginTop: \"0.25rem\",\n paddingBottom: \".5rem\",\n color: \"black\",\n },\n radio: {\n textAlign: \"left\",\n },\n}));\n\nconst RadioGroupField = ({\n form,\n label,\n description,\n values,\n required,\n index,\n}) => {\n const { classes } = useStyles();\n\n return (\n
    \n \n {values.map((el) => (\n \n ))}\n \n
    \n );\n};\n\nexport default RadioGroupField;\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 loggedInUser = `${language.LoggedInAs} ${user?.profile?.given_name} ${user?.profile?.family_name}`;\r\n const loggedOutUser = `${language.Not_Logged_In}`;\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 {queryData &&\r\n queryData?.publicBookingPublicInfo?.publicBookingTypes\r\n ?.length > 0 &&\r\n queryData?.publicBookingPublicInfo?.publicBookingTypes?.map(\r\n (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 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\";\nimport PageLayout from \"../../components/Styles/PageLayout\";\nimport PageContent from \"../../components/Styles/PageContent\";\nimport { Button, Container, createStyles, Text, Title } from \"@mantine/core\";\nimport PublicBooking from \"../../components/PublicBooking\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"@reach/router\";\nimport slugify from \"../../components/common/slugify\";\nimport { ApolloClient, HttpLink, InMemoryCache } from \"apollo-boost\";\n\nconst useStyles = createStyles((theme) => ({\n container: {\n marginTop: \"-0rem\",\n \"@media screen and (max-width: 768px)\": {\n marginTop: 0,\n },\n },\n button: {\n border: \"1px solid #8A8C93\",\n },\n buttonWrapper: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"start\",\n padding: \"1rem\",\n maxWidth: \"100%\",\n },\n}));\n\nconst PublicBookingPage = ({ id }) => {\n const [activity, activitySet] = useState(null);\n const { config, language } = useSelector((state) => ({\n config: state.config,\n language: state.language,\n }));\n const { classes } = useStyles();\n const navigate = useNavigate();\n\n const bookingHttpLink = new HttpLink({\n uri: `${config.bookingApiUri}/graphql`,\n });\n\n const bookingApiClient = new ApolloClient({\n link: bookingHttpLink,\n cache: new InMemoryCache(),\n });\n\n useEffect(() => {\n const publicBookingId = config?.publicBookingConfigurator.filter(\n (el) => slugify(el.name) === slugify(id)\n )?.[0];\n if (publicBookingId) {\n activitySet(publicBookingId);\n }\n }, [window.location.pathname]);\n\n if (!config?.bookingApiUri || !config?.usePublicBooking || !activity) {\n return (\n \n \n \n \n {language.CouldNotFindEventHeader}\n \n \n {language.CouldNotFindEventText}\n \n navigate(\"/ticketshop\")}\n className=\"mantine-Primary-btn\"\n variant=\"filled\"\n size=\"md\"\n radius=\"sm\"\n color=\"indigo\"\n >\n {language.BackToHomepage}\n \n \n \n \n );\n }\n return (\n \n \n \n navigate(-1)}\n >\n {language.Back}\n \n \n \n \n \n );\n};\n\nexport default PublicBookingPage;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Router, Redirect } from \"@reach/router\";\nimport Cart from \"./Pages/CartPage\";\nimport LandingPage from \"./Pages/LandingPage\";\nimport Product from \"./Pages/ProductPage\";\nimport Event from \"./Pages/EventPage\";\nimport AllProducts from \"./Pages/AllProductsPage\";\nimport AllEvents from \"./Pages/AllEventsPage\";\nimport SitePage from \"./Pages/SitePage\";\nimport User from \"./Pages/UserPage\";\nimport TicketPage from \"./Pages/TicketPage\";\nimport MoveOccasionsPage from \"./Pages/MoveOccasionsPage\";\nimport ArticleBookingPage from \"./Pages/ArticleBookingPage\";\nimport ScrollToTop from \"./components/common/ScrollToTop\";\nimport PublicBookingPage from \"./Pages/PublicBookingPage\";\n\nconst Routes = ({ setPosition }) => {\n const { auth, config } = useSelector((state) => ({\n auth: state.oidc.user !== null && !state.oidc.user.expired,\n config: state.config,\n }));\n\n const Private = ({ component: Component, path }) =>\n auth ? (\n \n ) : (\n \n );\n\n return (\n <>\n \n \n {config && !config.useLandingPage && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Routes;\n","import React, { useEffect, useState } from \"react\";\nimport { useLocation } from \"@reach/router\";\nimport { useSelector } from \"react-redux\";\nimport clsx from \"clsx\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport SiteHeading from \"../common/SiteHeading\";\nimport Footer from \"../common/Footer\";\nimport Routes from \"../../routes\";\nimport { ref } from \"airbnb-prop-types\";\n\nconst useStyles = makeStyles((theme) => ({\n appContent: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n // height: (p) =>\n // p.headerHeight\n // ? p.useNav\n // ? `${theme.height - p.headerHeight - 64}px`\n // : `${theme.height - p.headerHeight}px`\n // : p.useNav\n // ? `${theme.height - 128}px`\n // : `${theme.height - 64}px`,\n // overflowY: \"auto\",\n // \"@media(min-width: 768px)\": {\n // overflowY: \"scroll\",\n // \"-webkit-overflow-scrolling\": \"touch\",\n // },\n // height: \"auto\",\n // \"@media(max-width: 667px)\": {\n // height: (p) =>\n // p.headerHeight\n // ? `${theme.height - p.headerHeight}px`\n // : `${theme.height - 64}px`,\n // },\n },\n}));\n\nconst AppContent = () => {\n const location = useLocation();\n const [scrollPos, setScrollPos] = useState({});\n const [height, setHeight] = useState();\n const [totalHeight, setTotalHeight] = useState();\n const contentRef = React.createRef();\n const config = useSelector((state) => state.config);\n const classes = useStyles({\n useNav: config.useNav,\n headerHeight: config.headerHeight,\n });\n\n useEffect(() => {\n let calc = `calc(100vh - ${\n config?.headerHeight ? config?.headerHeight : \"60px\"\n }px)`;\n setTotalHeight(calc);\n }, [config]);\n\n useEffect(() => {\n if (ref.current) {\n setHeight(ref.current.offsetHeight);\n }\n }, [ref.current]);\n\n useEffect(() => {\n if (Object.keys(scrollPos).includes(location.pathname)) {\n contentRef.current.scrollTop = scrollPos[location.pathname];\n } else {\n contentRef.current.scrollTop = 0;\n }\n }, [scrollPos, contentRef, location.pathname]);\n\n const setPosition = () => {\n const page = location.pathname;\n const position = contentRef.current.scrollTop;\n setScrollPos({ [page]: position });\n };\n return (\n \n
    \n {!config.showSiteHeadingOnlyOnLanding && }\n \n
    \n
    \n
    \n );\n};\n\nexport default AppContent;\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 ? \"\" :