{"version":3,"sources":["serverData.ts","store.ts","configurator/model/reducer.ts","search/model/reducer.ts","wishlist/model/reducer.ts","account/model/reducer.ts","reducer.ts","search/model/actions.ts","wishlist/model/actions.ts","configurator/model/actions.ts","configurator/view/urls.ts","notifications.ts","interceptors.ts","components/Fullbleed.tsx","icons/Favorite.tsx","icons/ChevronLeft.tsx","icons/Menu.tsx","icons/Search.tsx","icons/Settings.tsx","icons/Logout.tsx","icons/Calendar.tsx","icons/Docs.tsx","icons/User.tsx","components/Page/UserMenu.tsx","icons/ExpandMore.tsx","components/Page/Dropdown.tsx","utils/deepMerge.ts","themes/createCustomTheme.ts","search/model/model.ts","themes/vdbvr.ts","themes/arnold.ts","themes/galletclaeys.ts","themes/geers.ts","themes/kortrijksegoudcentrale.ts","themes/limpach.ts","themes/luyten.ts","themes/nevejan.ts","themes/siebel.ts","themes/thierensvanwauwe.ts","themes/vanparrys.ts","themes/vanruyskensvelde2.ts","themes/versato.ts","themes/vrancken.ts","themes/willems.ts","skin.ts","themes/skin.ts","components/CustomButtons.tsx","components/Page/Desktop.tsx","components/Page/MobileMenuSelector.tsx","icons/Country.tsx","icons/Language.tsx","icons/Currency.tsx","components/Page/index.tsx","search/view/url.ts","configurator/view/Thumbnail.tsx","icons/Filter.tsx","icons/ChevronRight.tsx","icons/Close.tsx","useAsyncCall.ts","search/view/ReferenceSearchDialog.tsx","search/view/OrderSelect.tsx","icons/CheckboxChecked.tsx","icons/CheckboxUnchecked.tsx","icons/CheckboxCheckedFilled.tsx","search/view/Filter.tsx","search/view/SearchPage.tsx","utils/createOrder.ts","components/TextFieldInput.tsx","components/DialogExplanation.tsx","components/EmailDialog.tsx","icons/Edit.tsx","icons/FavoritePlus.tsx","icons/FavoriteSelected.tsx","icons/TouchApp.tsx","configurator/view/ProductDetails.tsx","configurator/view/ProductInformation.tsx","configurator/view/AlternativeDialog.tsx","icons/RadioButtonChecked.tsx","icons/RadioButtonUnchecked.tsx","icons/Info.tsx","configurator/view/ConfigurationDialog.tsx","configurator/view/ConfiguratorPage.tsx","models.ts","icons/FavoriteMin.tsx","wishlist/view/WishListPage.tsx","icons/VisibilityOff.tsx","icons/VisibilityOn.tsx","components/PasswordInput.tsx","account/view/LoginPage.tsx","account/view/RegisterPage.tsx","account/view/ChangePasswordPage.tsx","account/view/ProfilePage.tsx","account/view/Routes.tsx","header-interop.js","App.tsx","serviceWorker.ts","index.tsx","account/model/actions.ts"],"names":["w","window","allCurrencies","code","description","allCountries","allLanguages","DEFAULT","skinKey","logoUrl","currency","country","language","username","bccAddress","hideLogin","hideBccAddress","hidePrintButton","hideSendEmailButton","canOrder","maxOrderRings","makeAppointmentUrl","placeExternalOrderUrl","footerHtml","buttons","translationKey","buttonHtmlId","mainMenuSort","productMenuSort","productMenuAddUrlDetails","url","openInNewWindow","svgContent","serverData","SERVER_DATA","devToolsEnhancer","global","__REDUX_DEVTOOLS_EXTENSION__","x","store","createStore","reducer","undefined","compose","applyMiddleware","thunkMiddleware","defaultState","isLoading","isUpdating","ringView","isLoadingInitially","isUpdatingFilter","filterId","filter","results","lastPageNumber","totalCount","totalLoaded","pages","newestPageNumber","items","combineReducers","configurator","state","action","type","ACTION","LOAD_RING_REQUEST","payload","updateType","ConfiguratorUpdateType","Initial","LOAD_RING_SUCCESS","search","LOAD_INITIAL_SUCCESS","UPDATE_FILTER_REQUEST","selection","UPDATE_FILTER_SUCCESS","LOAD_PAGE_SUCCESS","page","pageNumber","wishList","LOAD_WISHLIST_SUCCESS","UPDATE_REQUEST","ADD_ITEM_SUCCESS","item","REMOVE_ITEM_SUCCESS","i","id","EMPTY_WISHLIST_SUCCESS","account","LOGIN","LOGOUT","FilterUpdateType","LOAD_INITIAL_REQUEST","LOAD_PAGE_REQUEST","updateFilterRequest","initialLoad","urlFilterSelection","dispatch","a","update","response","data","updateFilter","upd","newMobileView","getState","merge","request","Sorting","sorting","Price","priceRange","Category","categories","map","c","filterType","ids","length","find","Clear","loadPage","method","body","Axios","r","LOAD_WISHLIST_REQUEST","loadWishListSuccess","updateRequest","removeItemSuccess","emptyWishListSuccess","BASE_URL","loadWishList","axios","get","addItem","identifier","post","jsonResponse","status","location","href","encodeURIComponent","ringAndPurity","removeItem","delete","sendEmail","email","emailRequest","updateConfigurator","makeRequest","existing","reference","purity","selectedConfigurationType","selectedRingSize","ringSize","Reference","Purity","purityInCarat","RingSize","ConfigurationType","configurationTypeKey","_","localized","PURITY_PREFIX","ringUrl","path","includeConfigurationType","rs","ct","ringLink","pathname","parseRingFromUrl","params","queryString","parse","purityKey","Object","keys","p","startsWith","Notyf","duration","position","y","interceptors","use","config","headers","resp","error","notifications","i18next","t","Promise","reject","useStyles","makeStyles","theme","root","marginLeft","spacing","marginRight","marginTop","marginBottom","Fullbleed","children","isEnabled","className","classes","cx","props","SvgIcon","width","height","d","fillRule","clipRule","fill","viewBox","anchorOrigin","vertical","horizontal","transformOrigin","UserMenu","onLogout","onSettings","useTranslation","popupState","usePopupState","variant","popupId","IconButton","bindTrigger","User","bindMenu","getContentAnchorEl","MenuItem","onClick","divider","ListItemIcon","Settings","ListItemText","secondary","Logout","Dropdown","selected","onChange","Button","color","endIcon","ExpandMore","MenuListProps","disablePadding","index","key","isObject","Array","isArray","deepMerge","target","source","forEach","assign","FilterType","SortType","SortOrder","createCustomTheme","palette","typography","shape","breakpoints","overrides","createTheme","MuiCssBaseline","html","WebkitFontSmoothing","margin","padding","MuiContainer","MuiButton","contained","boxShadow","outlined","containedPrimary","common","white","MuiList","paddingTop","paddingBottom","MuiListItemText","multiline","MuiListItemIcon","minWidth","MuiChip","fontSize","sizeSmall","MuiDialog","paper","borderRadius","paperFullWidth","down","maxHeight","paperFullScreen","MuiDialogTitle","borderBottom","textAlign","display","justifyContent","alignItems","MuiDialogContent","backgroundColor","grey","MuiDialogActions","borderTopLeftRadius","borderTopRightRadius","MuiSvgIcon","primary","main","MuiCheckbox","MuiFormControlLabel","MuiFormLabel","h4","MuiSelect","background","icon","select","lineHeight","MuiOutlinedInput","default","borderColor","notchedOutline","MuiDrawer","paperAnchorLeft","MuiCardHeader","content","paddingLeft","title","MuiCardContent","MuiLink","cursor","createPalette","black","light","text","dark","warning","info","success","fontFamily","weightNormal","skin","logoPath","headerPath","headerHeight","createTypography","h1","fontStyle","fontWeight","letterSpacing","h2","h3","h5","h6","subtitle1","subtitle2","textTransform","button","caption","body1","body2","createBreakpoints","values","xs","sm","md","lg","xl","fontDisplay","src","unicodeRange","MuiAppBar","colorDefault","outlinedPrimary","backgroundImage","border","label","weightBold","getSkinByKey","vdbvrSkin","arnoldSkin","galletClaeysSkin","geersSkin","kortrijksegoudcentraleSkin","limpachSkin","luytenSkin","nevejanSkin","siebelSkin","thierensVanWauweSkin","vanParrysSkin","vanRuyskensveldeSkin","versatoSkin","vranckenSkin","willemsSkin","CustomButtons","sortingKey","extraProps","boxed","sorted","sort","b","Wrapper","Box","mt","rel","targetProps","CustomMenuItems","open","CustomSvg","dangerouslySetInnerHTML","__html","logo","maxWidth","headerContent","columnGap","headerImage","backgroundSize","backgroundPositionX","Desktop","numberOfWishlistItems","useDispatch","history","useHistory","isFullscreen","useMediaQuery","useSelector","s","logoutAndRedirect","AppBar","elevation","Toolbar","style","paddingRight","alt","push","flex","displayPrint","then","reload","Badge","badgeContent","Favorite","minHeight","MobileMenuSelector","selectedItem","urlBuilder","ListSubheader","Divider","toolbar","top","left","zIndex","spacer","mixins","progress","tooltip","up","sidebar","Page","onBack","onReferenceSearch","isPrint","isMobile","useTheme","useState","setOpen","doLogout","overflow","edge","ChevronLeft","Menu","Drawer","anchor","onClose","m","Typography","MenuList","Docs","Calendar","Search","Language","Country","Currency","CircularProgress","format","arrayFormat","arrayFormatSeparator","createQuery","min","max","sto","Stones","mat","Materials","col","Collections","tag","Tags","sortOrder","Ascending","sortType","Default","all","inner","img","Thumbnail","inline","initial","meta","isLoaded","isError","dialogContent","input","menu","ReferenceSearchDialog","inputValue","setInputValue","inputRef","useRef","term","trim","fn","useReducer","counter","setCounter","useEffect","isMounted","catch","refresh","useAsyncCall","useCallback","resolve","options","useAutocomplete","autoHighlight","option","getRootProps","getInputProps","getListboxProps","getOptionProps","groupedOptions","value","inputProps","onBlur","Dialog","fullScreen","onScroll","current","blur","fullWidth","DialogTitle","disableTypography","Hidden","smUp","InputBase","e","toUpperCase","autoFocus","autoComplete","autoCorrect","placeholder","endAdornment","InputAdornment","size","xsDown","Close","DialogContent","Paper","List","matches","match","part","highlight","Fragment","otherProps","ListItem","ListItemSecondaryAction","ChevronRight","SIMPLIFIED_SORT_ORDERS","PriceAscending","PriceDescending","Descending","Popularity","NewlyAdded","toSimplifiedSortOrder","OrderSelect","Select","IconComponent","Filter","selectedItems","flatMap","category","isSelected","absoluteMin","Math","apply","priceLevels","l","amount","absoluteMax","selectedMin","selectedMax","updatePrice","Chip","onDelete","filterUpdate","FormControl","FormLabel","evt","disabled","amountFormatted","component","getFilterTranslation","FormGroup","FormControlLabel","control","Checkbox","indeterminate","every","checked","transform","CheckboxUnchecked","checkedIcon","CheckboxCheckedFilled","indeterminateIcon","CheckboxChecked","thumbnailContainer","SearchPage","rootState","getFilter","open1","setOpen1","query","parsed","parseNumbers","searchQuery","cat","arr","parseSearchQuery","replace","stringifyUrl","skipNull","searchUrl","Grid","container","startIcon","DialogActions","dataLength","hasMore","next","loader","mb","TextField","ringTypeDescription","previewImageUrl","flexDirection","minPriceFormatted","maxPriceFormatted","collectionImageUrl","foo","selectedIds","includes","onError","rings","alert","orderRequest","purities","purityToPair","TextFieldInput","name","helperText","useField","field","touched","explanation","DialogExplanation","closeButton","right","initialValues","to","message","EmailDialog","doSubmit","onSubmit","toAddresses","ccAddresses","extraMessage","validationSchema","useMemo","createValidationSchema","disablePortal","direction","rows","Yup","required","ProductDetails","properties","property","idx","ProductInformation","preferShort","ringCollection","shortDescription","longDescription","AlternativeDialog","alternative","onAccept","onReject","ring","newValues","newValue","rx","stroke","gridItem","borderRight","gridItemHeader","preview","ConfigurationDialog","selectedTypeValues","showAlternatives","setShowAlternatives","some","textDecoration","useDropdown","numberOfColumns","borderRightWidth","selectedValue","RadioButtonChecked","RadioButtonUnchecked","bottom","Info","leftColumn","centerColumn","rightColumn","ConfiguratorPage","React","setSelectedConfigurationType","isEmailModalOpen","setIsEmailModalOpen","selector","wishListItemId","onAddToWishList","onRemoveFromWishList","isAddedToWishlist","price","currentDate","onTypeClick","configurationType","onEmailClick","mdUp","useStyles1","Navigation","createOrder","ButtonGroup","print","useStyles2","Sidebar","lineRef","isIntersecting","setIsIntersecting","observer","IntersectionObserver","entries","threshold","observe","Fade","in","TouchApp","configurationTypes","ref","InputProps","readOnly","useStyles3","thumbnail","thumbnailImage","ImageSelector","imageUrls","ringCollectionUrl","currentUrl","setCurrentUrl","objectFit","FavoritePlus","FavoriteSelected","htmlColor","additionalCurrencyPriceInfo","standardCurrencyPriceInfo","formattedPrice","scrollTo","behavior","getBoundingClientRect","pageYOffset","Edit","ConfigurationTypeDialog","doClick","setAlternative","WishListPage","Card","CardHeader","FavoriteMin","CardContent","PasswordInput","showPassword","setShowPassword","VisibilityOff","VisibilityOn","password","LoginPage","i18n","returnUrl","URLSearchParams","helpers","loginAndRedirect","setFieldError","isSubmitting","Container","exists","Link","emailaddress","RegisterPage","oldpassword","newpassword","ChangePasswordPage","ProfilePage","PATH","updateMakeAppointmentUrls","$","each","this","attr","URL","load","on","preventDefault","getAttribute","XHR","initReactI18next","init","lng","interpolation","escapeValue","backend","loadPath","Router","listen","listener","ThemeProvider","CssBaseline","AccountRoutes","exact","from","App","fallback","Boolean","hostname","smoothscroll","polyfill","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister","login","redirectUrl"],"mappings":"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","file":"static/js/main.a3f8d499.chunk.js","sourcesContent":["import { Button } from \"components/CustomButtons\";\n\nconst w = window as any;\n\nconst allCurrencies = [\n { code: \"EUR\", description: \"Euro\" },\n { code: \"PLN\", description: \"Zloty\" },\n];\n\nconst allCountries = [\n { code: \"NL\", description: \"Nederland\" },\n { code: \"EU\", description: \"Europa\" },\n];\n\nconst allLanguages = [\n { code: \"nl\", description: \"Nederlands\" },\n { code: \"fr\", description: \"Français\" },\n { code: \"en\", description: \"English\" },\n { code: \"de\", description: \"Deutsch\" },\n];\n\ntype ServerData = {\n skinKey: string;\n logoUrl: string | null;\n currency: CodeDescription;\n allCurrencies: CodeDescription[];\n country: CodeDescription;\n allCountries: CodeDescription[];\n language: CodeDescription;\n allLanguages: CodeDescription[];\n username: string | null;\n bccAddress: string | null;\n hideLogin: boolean;\n hideBccAddress: boolean;\n hidePrintButton: boolean;\n hideSendEmailButton: boolean;\n canOrder: boolean;\n maxOrderRings: number;\n makeAppointmentUrl: string | null;\n placeExternalOrderUrl: string | null;\n footerHtml: string | null;\n buttons: Button[];\n};\n\nexport type CodeDescription = { code: string; description: string };\n\nconst buttons: Button[] = [\n {\n translationKey: \"t\",\n buttonHtmlId: \"left-top1id\",\n mainMenuSort: -2,\n productMenuSort: -2,\n productMenuAddUrlDetails: true,\n url: \"http://left-top1\",\n openInNewWindow: true,\n svgContent: ``,\n },\n {\n translationKey: \"left-top2\",\n buttonHtmlId: \"left-top2id\",\n mainMenuSort: null,\n productMenuSort: -1,\n productMenuAddUrlDetails: false,\n url: \"http://left-top2\",\n openInNewWindow: false,\n svgContent: null,\n },\n {\n translationKey: \"right-under\",\n buttonHtmlId: \"right-under\",\n mainMenuSort: 1,\n productMenuSort: 1,\n productMenuAddUrlDetails: false,\n url: \"http://right-under\",\n openInNewWindow: false,\n svgContent: null,\n },\n];\n\nconst DEFAULT: ServerData = {\n skinKey: \"vdbvr\",\n logoUrl: \"http://vdbvr.be\",\n currency: allCurrencies[0],\n allCurrencies,\n country: allCountries[0],\n allCountries,\n language: allLanguages[0],\n allLanguages,\n username: null,\n bccAddress: \"\",\n hideLogin: true,\n hideBccAddress: false,\n hidePrintButton: false,\n hideSendEmailButton: false,\n canOrder: false,\n maxOrderRings: 0,\n makeAppointmentUrl: \"http://localhost\",\n placeExternalOrderUrl: \"http://external\",\n footerHtml: ``,\n buttons: buttons,\n};\n\nconst getData = () => {\n if (!w.SERVER_DATA) {\n return DEFAULT;\n }\n\n return w.SERVER_DATA;\n};\n\nconst serverData: ServerData = getData();\n\nexport { serverData };\n","/* eslint global-require: 0 */\n/* eslint no-underscore-dangle: 0 */\nimport { applyMiddleware, compose, createStore } from \"redux\";\nimport thunkMiddleware, { ThunkMiddleware } from \"redux-thunk\";\nimport { useDispatch } from \"react-redux\";\n\nimport { Action } from \"./actions\";\nimport reducer, { State } from \"./reducer\";\n\nconst devToolsEnhancer = global.__REDUX_DEVTOOLS_EXTENSION__\n ? global.__REDUX_DEVTOOLS_EXTENSION__()\n : (x: any) => x;\n\nconst store = createStore(\n reducer,\n undefined,\n compose(\n applyMiddleware(thunkMiddleware as ThunkMiddleware),\n devToolsEnhancer\n )\n);\n\n// @ts-ignore\nif (module.hot) {\n // @ts-ignore\n module.hot.accept(\"./reducer\", () => {\n const nextRootReducer = require(\"./reducer\").default;\n\n store.replaceReducer(nextRootReducer);\n });\n}\n\nexport default store;\n\nexport const useThunkDispatch = () => useDispatch();\n","import { RingView } from \"./model\";\nimport { ACTION, Action, ConfiguratorUpdateType } from \"./actions\";\n\nexport type State = {\n readonly isLoading: boolean;\n readonly isUpdating: boolean;\n readonly ringView: RingView | null;\n};\n\nconst defaultState = {\n isLoading: true,\n isUpdating: false,\n ringView: null,\n};\n\nexport default (state: State = defaultState, action: Action): State => {\n switch (action.type) {\n case ACTION.LOAD_RING_REQUEST:\n // We only want to show the loading spinner if there is not currently one shown\n return action.payload.updateType === ConfiguratorUpdateType.Initial\n ? { ...state, ringView: null, isLoading: true }\n : { ...state, isUpdating: true };\n case ACTION.LOAD_RING_SUCCESS:\n return {\n ...state,\n isLoading: false,\n isUpdating: false,\n ringView: action.payload.ringView,\n };\n default:\n return state;\n }\n};\n","import { FilterInfo, SearchResults } from \"./model\";\nimport { ACTION, Action } from \"./actions\";\n\nexport type State = {\n readonly isLoadingInitially: boolean;\n readonly isUpdatingFilter: boolean;\n readonly filterId: number;\n readonly filter: FilterInfo | null;\n readonly results: SearchResults;\n readonly newestPageNumber: number;\n};\n\nconst defaultState: State = {\n isLoadingInitially: true,\n isUpdatingFilter: false,\n filterId: 0,\n filter: null,\n results: {\n lastPageNumber: 0,\n totalCount: 0,\n totalLoaded: 0,\n pages: [],\n },\n newestPageNumber: 0,\n};\n\nexport default (state: State = defaultState, action: Action): State => {\n switch (action.type) {\n case ACTION.LOAD_INITIAL_SUCCESS:\n return {\n ...state,\n isLoadingInitially: false,\n ...action.payload,\n };\n case ACTION.UPDATE_FILTER_REQUEST:\n return {\n ...state,\n isUpdatingFilter: true,\n filterId: action.payload.filterId,\n filter: {\n ...state.filter!,\n selection: action.payload.selection,\n },\n newestPageNumber: 0,\n };\n case ACTION.UPDATE_FILTER_SUCCESS:\n if (action.payload.filterId === state.filterId) {\n return {\n ...state,\n isUpdatingFilter: false,\n filter: {\n ...state.filter!,\n selection: action.payload.selection,\n },\n results: action.payload.results,\n };\n } else return state;\n case ACTION.LOAD_PAGE_SUCCESS:\n if (action.payload.filterId === state.filterId) {\n return {\n ...state,\n results: {\n ...state.results,\n totalLoaded: action.payload.totalLoaded,\n pages: [...state.results.pages, action.payload.page],\n },\n newestPageNumber: action.payload.page.pageNumber,\n };\n } else return state;\n default:\n return state;\n }\n};\n","import { WishListItem } from \"./model\";\nimport { ACTION, Action } from \"./actions\";\n\nexport type State = {\n readonly isLoading: boolean;\n readonly isUpdating: boolean;\n readonly items: WishListItem[];\n};\n\nconst defaultState = {\n isLoading: true,\n isUpdating: false,\n items: [],\n};\n\nexport default (state: State = defaultState, action: Action): State => {\n switch (action.type) {\n case ACTION.LOAD_WISHLIST_SUCCESS:\n return {\n ...state,\n isLoading: false,\n ...action.payload,\n };\n case ACTION.UPDATE_REQUEST:\n return {\n ...state,\n isUpdating: true,\n };\n case ACTION.ADD_ITEM_SUCCESS:\n return {\n ...state,\n isUpdating: false,\n items: [...state.items, action.payload.item],\n };\n case ACTION.REMOVE_ITEM_SUCCESS:\n return {\n ...state,\n isUpdating: false,\n items: state.items.filter((i) => i.id !== action.payload.id),\n };\n case ACTION.EMPTY_WISHLIST_SUCCESS:\n return {\n ...state,\n isUpdating: false,\n items: [],\n };\n default:\n return state;\n }\n};\n","import { Action, ACTION } from \"./actions\";\nimport { serverData } from \"serverData\";\n\nexport type State = { username: string | null };\n\nconst defaultState: State = { username: serverData.username };\n\nexport default (state: State = defaultState, action: Action): State => {\n switch (action.type) {\n case ACTION.LOGIN:\n return { username: action.username };\n case ACTION.LOGOUT:\n return { username: null };\n default:\n return state;\n }\n};\n","import configuratorReducer, {\n State as ConfiguratorState,\n} from \"./configurator/model/reducer\";\nimport searchReducer, { State as SearchState } from \"./search/model/reducer\";\nimport wishListReducer, {\n State as WishListState,\n} from \"./wishlist/model/reducer\";\nimport accountReducer, { State as AccountState } from \"./account/model/reducer\";\nimport { combineReducers } from \"redux\";\n\nexport type State = {\n readonly configurator: ConfiguratorState;\n readonly search: SearchState;\n readonly wishList: WishListState;\n readonly account: AccountState;\n};\n\nexport default combineReducers({\n configurator: configuratorReducer,\n search: searchReducer,\n wishList: wishListReducer,\n account: accountReducer,\n});\n","import {\n FilterInfo,\n FilterSelection,\n SearchResults,\n Page,\n UrlFilterSelection,\n PriceRange,\n FilterType,\n Sorting,\n} from \"./model\";\nimport { ThunkAction } from \"redux-thunk\";\nimport { State } from \"reducer\";\nimport Axios from \"axios\";\n\nexport const ACTION = {\n LOAD_INITIAL_REQUEST: \"LOAD_INITIAL_REQUEST\",\n LOAD_INITIAL_SUCCESS: \"LOAD_INITIAL_SUCCESS\",\n UPDATE_FILTER_REQUEST: \"UPDATE_FILTER_REQUEST\",\n UPDATE_FILTER_SUCCESS: \"UPDATE_FILTER_SUCCESS\",\n LOAD_PAGE_REQUEST: \"LOAD_PAGE_REQUEST\",\n LOAD_PAGE_SUCCESS: \"LOAD_PAGE_SUCCESS\",\n} as const;\n\nexport type Action =\n | LoadInitialRequestAction\n | LoadInitialSuccessAction\n | UpdateFilterRequestAction\n | UpdateFilterSuccessAction\n | LoadPageRequestAction\n | LoadPageSuccessAction;\n\ntype LoadInitialRequestAction = {\n type: typeof ACTION.LOAD_INITIAL_REQUEST;\n};\n\ntype LoadInitialSuccessAction = {\n type: typeof ACTION.LOAD_INITIAL_SUCCESS;\n payload: {\n filter: FilterInfo;\n results: SearchResults;\n };\n};\n\ntype UpdateFilterRequestAction = {\n type: typeof ACTION.UPDATE_FILTER_REQUEST;\n payload: {\n filterId: number;\n selection: FilterSelection;\n };\n};\n\ntype UpdateFilterSuccessAction = {\n type: typeof ACTION.UPDATE_FILTER_SUCCESS;\n payload: {\n filterId: number;\n selection: FilterSelection;\n results: SearchResults;\n };\n};\n\ntype LoadPageRequestAction = {\n type: typeof ACTION.LOAD_PAGE_REQUEST;\n};\n\ntype LoadPageSuccessAction = {\n type: typeof ACTION.LOAD_PAGE_SUCCESS;\n payload: {\n filterId: number;\n page: Page;\n totalLoaded: number;\n };\n};\n\nlet filterId = 1;\n\nexport const loadInitialRequest = (): LoadInitialRequestAction => ({\n type: ACTION.LOAD_INITIAL_REQUEST,\n});\n\nexport const loadInitialSucces = (\n data: LoadInitialSuccessAction[\"payload\"]\n): LoadInitialSuccessAction => ({\n type: ACTION.LOAD_INITIAL_SUCCESS,\n payload: data,\n});\n\nexport const updateFilterRequest = (\n selection: FilterSelection\n): UpdateFilterRequestAction => ({\n type: ACTION.UPDATE_FILTER_REQUEST,\n payload: {\n filterId: filterId++,\n selection,\n },\n});\n\nexport const updateFilterSuccess = (\n data: UpdateFilterSuccessAction[\"payload\"]\n): UpdateFilterSuccessAction => ({\n type: ACTION.UPDATE_FILTER_SUCCESS,\n payload: data,\n});\n\nexport const loadPageRequest = (): LoadPageRequestAction => ({\n type: ACTION.LOAD_PAGE_REQUEST,\n});\n\nexport const loadPageSuccess = (\n data: LoadPageSuccessAction[\"payload\"]\n): LoadPageSuccessAction => ({\n type: ACTION.LOAD_PAGE_SUCCESS,\n payload: data,\n});\n\nexport function initialLoad(\n urlFilterSelection: UrlFilterSelection | null\n): ThunkAction, State, {}, Action> {\n return async (dispatch) => {\n try {\n dispatch(loadInitialRequest());\n\n const response = await update(\n \"POST\",\n \"initial\",\n urlFilterSelection\n );\n\n dispatch(loadInitialSucces(response));\n } catch (error) {\n // dispatch(failed(error))\n throw error;\n }\n };\n}\n\nexport enum FilterUpdateType {\n Sorting,\n Price,\n Category,\n Clear,\n}\n\nexport type FilterUpdate =\n | { type: FilterUpdateType.Clear }\n | { type: FilterUpdateType.Sorting; sorting: Sorting }\n | { type: FilterUpdateType.Price; priceRange: PriceRange }\n | { type: FilterUpdateType.Category; filterType: FilterType; ids: number[] };\n\nexport function updateFilter(\n upd: FilterUpdate,\n newMobileView: boolean\n): ThunkAction, State, {}, Action> {\n return async (dispatch, getState) => {\n try {\n const selection = merge(getState().search.filter!, upd, newMobileView);\n\n const request = updateFilterRequest(selection);\n\n dispatch(request);\n\n const response = await update(\n \"POST\",\n \"update-filter\",\n { filterId: request.payload.filterId, selection }\n );\n\n dispatch(updateFilterSuccess(response));\n } catch (error) {\n // dispatch(failed(error))\n throw error;\n }\n };\n}\n\nfunction merge(\n filter: FilterInfo,\n upd: FilterUpdate,\n newMobileView: Boolean\n): FilterSelection {\n const selection = filter.selection;\n switch (upd.type) {\n case FilterUpdateType.Sorting:\n return { ...selection, sorting: upd.sorting };\n\n case FilterUpdateType.Price:\n return { ...selection, priceRange: upd.priceRange };\n\n case FilterUpdateType.Category:\n return {\n ...selection,\n categories: selection.categories.map((c) => {\n if (c.filterType === upd.filterType) {\n return newMobileView\n ? {\n filterType: upd.filterType,\n\n // Convert empty selection back to selection of all options. Possibility to simplify if we change backend\n ids:\n upd.ids.length === 0\n ? filter.categories\n .find((c) => c.filterType === upd.filterType)!\n .items.map((item) => item.id)\n : upd.ids,\n }\n : { filterType: upd.filterType, ids: upd.ids };\n } else {\n return c;\n }\n }),\n };\n\n case FilterUpdateType.Clear:\n return {\n priceRange: { ...filter.priceRange },\n sorting: { ...filter.selection.sorting },\n categories: filter.categories.map((c) => ({\n filterType: c.filterType,\n ids: c.items.map((i) => i.id),\n })),\n };\n }\n}\n\nexport function loadPage(\n pageNumber: number\n): ThunkAction, State, {}, Action> {\n return async (dispatch, getState) => {\n const { search: state } = getState();\n\n try {\n dispatch(loadPageRequest());\n\n const response = await update(\n \"POST\",\n `page/${pageNumber}`,\n { filterId: state.filterId, selection: state.filter!.selection }\n );\n\n dispatch(loadPageSuccess(response));\n } catch (error) {\n // dispatch(failed(error))\n throw error;\n }\n };\n}\n\nasync function update(\n method: \"GET\" | \"POST\",\n url: string,\n body: any = null\n): Promise {\n const r = await Axios.request({\n url: `/api/search/${url}`,\n method,\n data: body,\n });\n return r.data;\n}\n","import { WishListItem } from \"./model\";\nimport { ThunkAction } from \"redux-thunk\";\nimport axios from \"axios\";\nimport { State } from \"reducer\";\nimport { Email, RingIdentifier } from \"models\";\nimport { ringAndPurity } from \"configurator/view/urls\";\n\nexport const ACTION = {\n LOAD_WISHLIST_REQUEST: \"LOAD_WISHLIST_REQUEST\",\n LOAD_WISHLIST_SUCCESS: \"LOAD_WISHLIST_SUCCESS\",\n UPDATE_REQUEST: \"UPDATE_REQUEST\",\n ADD_ITEM_SUCCESS: \"ADD_ITEM_SUCCESS\",\n REMOVE_ITEM_SUCCESS: \"REMOVE_ITEM_SUCCESS\",\n EMPTY_WISHLIST_SUCCESS: \"EMPTY_WISHLIST_SUCCESS\",\n} as const;\n\nexport type Action =\n | LoadWishListSuccessAction\n | UpdateRequestAction\n | AddItemSuccessAction\n | RemoveItemSuccessAction\n | EmptyWishListSuccessAction;\n\ntype LoadWishListSuccessAction = {\n type: typeof ACTION.LOAD_WISHLIST_SUCCESS;\n payload: {\n items: WishListItem[];\n };\n};\n\ntype UpdateRequestAction = {\n type: typeof ACTION.UPDATE_REQUEST;\n};\n\ntype AddItemSuccessAction = {\n type: typeof ACTION.ADD_ITEM_SUCCESS;\n payload: {\n item: WishListItem;\n };\n};\n\ntype RemoveItemSuccessAction = {\n type: typeof ACTION.REMOVE_ITEM_SUCCESS;\n payload: {\n id: number;\n };\n};\n\nexport type EmptyWishListSuccessAction = {\n type: typeof ACTION.EMPTY_WISHLIST_SUCCESS;\n};\n\nexport const loadWishListSuccess = (\n items: WishListItem[]\n): LoadWishListSuccessAction => ({\n type: ACTION.LOAD_WISHLIST_SUCCESS,\n payload: { items },\n});\n\nexport const updateRequest = (): UpdateRequestAction => ({\n type: ACTION.UPDATE_REQUEST,\n});\n\nexport const addItemSuccess = (item: WishListItem): AddItemSuccessAction => ({\n type: ACTION.ADD_ITEM_SUCCESS,\n payload: { item },\n});\n\nexport const removeItemSuccess = (id: number): RemoveItemSuccessAction => ({\n type: ACTION.REMOVE_ITEM_SUCCESS,\n payload: { id },\n});\n\nexport const emptyWishListSuccess = (): EmptyWishListSuccessAction => ({\n type: ACTION.EMPTY_WISHLIST_SUCCESS,\n});\n\nconst BASE_URL = `/api/v2/wishlist`;\n\nexport function loadWishList(): ThunkAction, State, {}, Action> {\n return async (dispatch) => {\n try {\n const r = await axios.get(BASE_URL);\n\n dispatch(loadWishListSuccess(r.data));\n } catch (error) {\n dispatch(loadWishListSuccess([]));\n }\n };\n}\n\nexport function addItem(\n identifier: RingIdentifier\n): ThunkAction, State, {}, Action> {\n return async (dispatch) => {\n try {\n dispatch(updateRequest());\n\n const jsonResponse = await axios.post(BASE_URL, identifier);\n\n dispatch(addItemSuccess(jsonResponse.data));\n } catch (error) {\n if (error.response.status === 401) {\n window.location.href = `${\"#/account/login\"}?returnUrl=${encodeURIComponent(\n `/Wishlist/Add?${ringAndPurity(identifier)}`\n )}`;\n } else {\n throw error;\n }\n }\n };\n}\n\nexport function removeItem(\n id: number\n): ThunkAction, State, {}, Action> {\n return async (dispatch) => {\n try {\n dispatch(updateRequest());\n\n await axios.delete(`${BASE_URL}/${id}`);\n\n dispatch(removeItemSuccess(id));\n } catch (error) {\n // dispatch(failed(error))\n throw error;\n }\n };\n}\n\nexport function emptyWishList(): ThunkAction, State, {}, Action> {\n return async (dispatch) => {\n try {\n dispatch(updateRequest());\n\n await axios.delete(BASE_URL);\n\n dispatch(emptyWishListSuccess());\n } catch (error) {\n // dispatch(failed(error))\n throw error;\n }\n };\n}\n\ntype EmailRequest = Email & {\n url: string; // TODO baseUrl?\n};\n\nexport function sendEmail(\n email: Email\n): ThunkAction, State, {}, Action> {\n return async () => {\n try {\n const emailRequest: EmailRequest = {\n ...email,\n url: window.location.href,\n };\n\n await axios.post(`/api/email/wishlist`, emailRequest);\n } catch (error) {\n //TODO\n throw error;\n }\n };\n}\n","import { RingView } from \"./model\";\nimport { ThunkAction } from \"redux-thunk\";\nimport axios from \"axios\";\nimport { State } from \"reducer\";\nimport { Email } from \"models\";\n\nexport const ACTION = {\n LOAD_RING_REQUEST: \"LOAD_RING_REQUEST\",\n LOAD_RING_SUCCESS: \"LOAD_RING_SUCCESS\",\n} as const;\n\nexport type Action = LoadRingRequestAction | LoadRingSuccessAction;\n\ntype LoadRingRequestAction = {\n type: typeof ACTION.LOAD_RING_REQUEST;\n payload: {\n updateType: ConfiguratorUpdateType;\n };\n};\n\ntype LoadRingSuccessAction = {\n type: typeof ACTION.LOAD_RING_SUCCESS;\n payload: {\n ringView: RingView;\n };\n};\n\nexport const loadRingRequest = (\n updateType: ConfiguratorUpdateType\n): LoadRingRequestAction => ({\n type: ACTION.LOAD_RING_REQUEST,\n payload: { updateType },\n});\n\nexport const loadRingSuccess = (ringView: RingView): LoadRingSuccessAction => ({\n type: ACTION.LOAD_RING_SUCCESS,\n payload: {\n ringView,\n },\n});\n\n// All these type of updates will return the same result from api/configurator\n\nexport enum ConfiguratorUpdateType {\n Initial,\n Reference,\n Purity,\n ConfigurationType,\n RingSize,\n}\n\ntype ConfiguratorUpdate =\n | {\n type: ConfiguratorUpdateType.Initial;\n reference: string;\n purity: number | null;\n ringSize: number | null;\n selectedConfigurationType: string | null;\n }\n | { type: ConfiguratorUpdateType.Reference; reference: string }\n | { type: ConfiguratorUpdateType.Purity; purityInCarat: number }\n | { type: ConfiguratorUpdateType.RingSize; ringSize: number }\n | {\n type: ConfiguratorUpdateType.ConfigurationType;\n configurationTypeKey: string;\n };\n\nexport function updateConfigurator(\n update: ConfiguratorUpdate\n): ThunkAction, State, {}, Action> {\n return async (dispatch, getState) => {\n try {\n const { configurator } = getState();\n\n dispatch(loadRingRequest(update.type));\n\n const response = await axios.post<{\n ringView: RingView;\n }>(`/api/configurator`, makeRequest(update, configurator.ringView));\n\n dispatch(loadRingSuccess(response.data.ringView));\n\n return response.data.ringView;\n } catch (error) {\n // dispatch(failed(error))\n throw error;\n }\n };\n}\n\ninterface ConfiguratorRequest {\n reference: string;\n purity: number | null;\n selectedConfigurationType: string | null;\n selectedRingSize: number | null;\n}\n\nfunction makeRequest(\n update: ConfiguratorUpdate,\n ringView: RingView | null\n): Partial {\n // We fill in the defaults, so we don't always have to pass these in the components\n\n const existing = ringView\n ? {\n reference: ringView.reference,\n purity: ringView.purity,\n selectedConfigurationType: ringView.selectedConfigurationType,\n selectedRingSize: ringView.selectedRingSize?.ringSize,\n }\n : {};\n\n switch (update.type) {\n case ConfiguratorUpdateType.Initial:\n return {\n ...existing,\n reference: update.reference,\n purity: update.purity,\n selectedRingSize: update.ringSize,\n selectedConfigurationType: update.selectedConfigurationType,\n };\n case ConfiguratorUpdateType.Reference:\n return { ...existing, reference: update.reference };\n case ConfiguratorUpdateType.Purity:\n return {\n ...existing,\n purity: update.purityInCarat,\n };\n case ConfiguratorUpdateType.RingSize:\n return {\n ...existing,\n selectedRingSize: update.ringSize,\n };\n case ConfiguratorUpdateType.ConfigurationType:\n return {\n ...existing,\n selectedConfigurationType: update.configurationTypeKey,\n };\n }\n}\n\n// TODO Legacy, need to be reworked after deploying\ntype EmailRequest = Email & {\n reference: string;\n purity: number | null;\n selectedRingSize: string | null;\n url: string;\n};\n\nexport function sendEmail(\n email: Email\n): ThunkAction, State, {}, Action> {\n return async (_, getState) => {\n const {\n configurator: { ringView },\n } = getState();\n\n if (!ringView) return;\n\n const emailRequest: EmailRequest = {\n ...email,\n reference: ringView.reference,\n purity: ringView.purity,\n selectedRingSize: ringView.selectedRingSize?.localized || null,\n url: window.location.href,\n };\n\n // Show result/success?\n\n await axios.post(`/api/email/ring`, emailRequest);\n };\n}\n","import { RingView } from \"configurator/model/model\";\n\nimport queryString from \"query-string\";\nimport { RingIdentifier } from \"models\";\n\nconst PURITY_PREFIX = \"purity\";\n\nexport const ringUrl = (\n path: string,\n ringView: RingView,\n includeConfigurationType: Boolean = true\n) => {\n const rs = ringView.selectedRingSize\n ? `&ringSize=${ringView.selectedRingSize?.ringSize}`\n : \"\";\n const ct =\n includeConfigurationType && ringView.selectedConfigurationType\n ? `&selectedConfigurationType=${ringView.selectedConfigurationType}`\n : \"\";\n\n return `${path}?${ringAndPurity(ringView)}${rs}${ct}`;\n};\n\nexport const ringLink = (request: RingIdentifier) => ({\n pathname: \"/ring\",\n search: ringAndPurity(request),\n});\n\nexport const ringAndPurity = ({ reference, purity }: RingIdentifier) =>\n `reference=${reference}` + (purity ? `&${PURITY_PREFIX}=${purity}` : \"\");\n\nexport const parseRingFromUrl = (search: string) => {\n const params = queryString.parse(search);\n\n const reference = params.reference as string;\n\n const selectedConfigurationType = params.selectedConfigurationType as\n | string\n | null;\n\n const ringSize = params.ringSize as string | null;\n\n const purityKey = Object.keys(params).find((p) =>\n p.startsWith(PURITY_PREFIX)\n );\n\n return {\n reference,\n ringSize: ringSize ? +ringSize : null,\n purity: purityKey ? +(params[purityKey] as string) : null,\n selectedConfigurationType,\n };\n};\n","import { Notyf } from \"notyf\";\nimport \"notyf/notyf.min.css\";\n\nexport default new Notyf({\n duration: 4000,\n position: {\n x: \"center\",\n y: \"bottom\",\n },\n});\n","import axios from \"axios\";\nimport i18next from \"i18next\";\nimport notifications from \"notifications\";\n\naxios.interceptors.request.use((config) => {\n config.headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n return config;\n});\n\naxios.interceptors.response.use(\n (resp) => resp,\n (error) => {\n if (error.response.status >= 500) {\n notifications.error(i18next.t(\"SomethingWentWrong_PleaseRefresh\"));\n }\n\n return Promise.reject(error);\n }\n);\n","import React from \"react\";\nimport cx from \"classnames\";\nimport { makeStyles, Theme } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n marginLeft: theme.spacing(-2),\n marginRight: theme.spacing(-2),\n marginTop: theme.spacing(-2),\n marginBottom: theme.spacing(-2),\n },\n}));\n\ntype Props = {\n children: React.ReactNode;\n className?: string;\n isEnabled?: boolean;\n};\n\nexport const Fullbleed = ({\n children,\n isEnabled = false,\n className,\n}: Props) => {\n const classes = useStyles({});\n\n return (\n
\n {children}\n
\n );\n};\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n \n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport {\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n PopoverOrigin,\n IconButton,\n} from \"@material-ui/core\";\nimport {\n usePopupState,\n bindTrigger,\n bindMenu,\n} from \"material-ui-popup-state/hooks\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Settings from \"icons/Settings\";\nimport Logout from \"icons/Logout\";\nimport User from \"icons/User\";\n\nconst anchorOrigin: PopoverOrigin = {\n vertical: \"bottom\",\n horizontal: \"right\",\n};\n\nconst transformOrigin: PopoverOrigin = {\n vertical: \"top\",\n horizontal: \"right\",\n};\n\ntype Props = {\n onLogout: () => void;\n onSettings: () => void;\n};\n\nexport const UserMenu: React.FC = ({ onLogout, onSettings }) => {\n const { t } = useTranslation();\n\n const popupState = usePopupState({\n variant: \"popover\",\n popupId: \"user-menu\",\n });\n\n // The getContentAnchorEl={null} is needed to make sure that the `Menu` appears below the `Button`!\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport {\n Menu,\n MenuItem,\n ListItemText,\n PopoverOrigin,\n Button,\n} from \"@material-ui/core\";\nimport {\n usePopupState,\n bindTrigger,\n bindMenu,\n} from \"material-ui-popup-state/hooks\";\n\nimport { CodeDescription } from \"serverData\";\nimport ExpandMore from \"icons/ExpandMore\";\n\nconst anchorOrigin: PopoverOrigin = {\n vertical: \"bottom\",\n horizontal: \"right\",\n};\n\nconst transformOrigin: PopoverOrigin = {\n vertical: \"top\",\n horizontal: \"right\",\n};\n\ntype Props = {\n items: CodeDescription[];\n selected: CodeDescription;\n onChange: (code: string) => void;\n};\n\nexport const Dropdown: React.FC = ({ items, selected, onChange }) => {\n const popupState = usePopupState({\n variant: \"popover\",\n popupId: \"user-menu\",\n });\n\n if (items.length < 2) return null;\n\n // The getContentAnchorEl={null} is needed to make sure that the `Menu` appears below the `Button`!\n return (\n <>\n }\n {...bindTrigger(popupState)}\n >\n {selected.description}\n \n \n {items.map((item, index) => (\n onChange(item.code)}\n divider={items.length !== index - 1}\n >\n \n \n ))}\n \n \n );\n};\n","function isObject(item: A): boolean {\n return (\n item && typeof item === \"object\" && !Array.isArray(item) && item !== null\n );\n}\n\nexport function deepMerge(target: any, source: any): any {\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((key) => {\n if (isObject(source[key])) {\n if (!target[key] || !isObject(target[key])) {\n target[key] = source[key];\n }\n deepMerge(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n });\n }\n\n return target;\n}\n","import { createTheme, Theme } from \"@material-ui/core\";\n\nimport { deepMerge } from \"utils/deepMerge\";\n\nexport const createCustomTheme = (\n palette: Theme[\"palette\"],\n typography: Theme[\"typography\"],\n shape: Theme[\"shape\"],\n breakpoints: Theme[\"breakpoints\"],\n overrides: Theme[\"overrides\"] = {}\n) =>\n createTheme({\n palette,\n typography,\n shape,\n breakpoints,\n overrides: deepMerge(\n {\n MuiCssBaseline: {\n \"@global\": {\n html: {\n WebkitFontSmoothing: \"auto\",\n },\n body: {\n margin: 0,\n padding: 0,\n },\n },\n },\n MuiContainer: {\n root: {\n marginLeft: 0,\n marginRight: 0,\n },\n },\n MuiButton: {\n contained: {\n boxShadow: \"none\",\n padding: \"12px\",\n\n \"&:hover\": {\n boxShadow: \"none\",\n },\n\n \"&:active\": {\n boxShadow: \"none\",\n },\n },\n outlined: {\n padding: \"12px\",\n },\n containedPrimary: {\n color: palette.common.white,\n },\n },\n MuiList: {\n padding: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n },\n MuiListItemText: {\n multiline: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n },\n MuiListItemIcon: {\n root: {\n minWidth: \"36px\",\n },\n },\n MuiChip: {\n root: {\n fontSize: \"18px\",\n },\n sizeSmall: {\n fontSize: \"16px\",\n padding: \"2px\",\n },\n },\n MuiDialog: {\n root: {\n margin: 0,\n },\n paper: {\n margin: \"8px\",\n borderRadius: shape.borderRadius,\n },\n paperFullWidth: {\n width: \"100%\",\n height: \"100%\",\n\n [breakpoints.down(\"xs\")]: {\n maxHeight: \"calc(100% - 16px)\",\n },\n },\n paperFullScreen: {\n height: \"100%\",\n },\n },\n MuiDialogTitle: {\n root: {\n borderBottom: `1px solid ${palette.divider}`,\n textAlign: \"center\",\n height: \"60px\",\n padding: 0,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n },\n MuiDialogContent: {\n root: {\n padding: \"16px\",\n backgroundColor: palette.grey[100],\n },\n },\n MuiDialogActions: {\n root: {\n padding: 0,\n\n \"& .MuiButton-root\": {\n height: \"60px\",\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n },\n },\n },\n MuiSvgIcon: {\n root: {\n width: \"24px\",\n height: \"24px\",\n color: palette.primary.main,\n },\n },\n MuiCheckbox: {\n root: {\n padding: 0,\n },\n },\n MuiFormControlLabel: {\n root: {\n marginLeft: 0,\n },\n },\n MuiFormLabel: {\n root: {\n ...typography.h4,\n marginBottom: \"8px\",\n \"&$focused\": {\n color: palette.grey[700],\n },\n },\n },\n MuiSelect: {\n root: {\n background: palette.common.white,\n paddingTop: \"8px\",\n paddingBottom: \"8px\",\n },\n icon: {\n color: palette.primary.main,\n },\n select: {\n height: \"24px\",\n lineHeight: \"24px\",\n },\n },\n MuiOutlinedInput: {\n root: {\n background: palette.background.default,\n\n \"&:hover $notchedOutline\": {\n background: \"rgba(0,0,0,0.05)\",\n borderColor: palette.grey[400],\n },\n },\n notchedOutline: {\n borderColor: palette.grey[400],\n },\n },\n MuiDrawer: {\n paperAnchorLeft: {\n minWidth: \"min(80%, 300px)\",\n },\n },\n MuiCardHeader: {\n root: {\n padding: 0,\n },\n content: {\n display: \"flex\",\n alignItems: \"center\",\n height: \"48px\",\n paddingLeft: \"16px\",\n },\n title: {\n ...typography.h4,\n },\n action: {\n marginTop: 0,\n marginRight: \"4px\",\n height: \"48px\",\n display: \"flex\",\n alignItems: \"center\",\n },\n },\n MuiCardContent: {\n root: {\n \"&:last-child\": {\n paddingBottom: \"16px\",\n },\n },\n },\n MuiLink: {\n root: {\n cursor: \"pointer\",\n },\n },\n },\n overrides\n ),\n });\n","import { FilterUpdate } from \"./actions\";\n\nexport type Optional = {\n [P in keyof T]: T[P] | null;\n};\n\nexport interface FilterItem {\n id: number;\n description: string;\n isSelected: boolean;\n filterUpdate: FilterUpdate;\n}\n\nexport enum FilterType {\n Stones,\n Materials,\n Collections,\n Tags,\n}\n\nexport interface FilterCategory {\n filterType: FilterType;\n items: FilterItem[];\n}\n\nexport type PriceRange = {\n min: number;\n max: number;\n};\n\nexport interface FilterInfo {\n priceRange: PriceRange;\n priceLevels: PriceLevel[];\n currencySymbol: string;\n categories: FilterCategory[];\n selection: FilterSelection;\n}\n\ninterface PriceLevel {\n amount: number;\n amountFormatted: string;\n}\n\nexport interface Sorting {\n sortType: SortType;\n sortOrder: SortOrder;\n}\n\nexport enum SortType {\n Default,\n Price,\n Popularity,\n NewlyAdded,\n}\n\nexport enum SortOrder {\n Ascending,\n Descending,\n}\n\nexport interface FilterSelection {\n priceRange: Optional;\n categories: FilterCategorySelection[];\n sorting: Sorting;\n}\n\nexport interface UrlFilterSelection {\n priceRange: Optional;\n categories: FilterCategorySelection[];\n sorting: Optional;\n}\n\nexport interface FilterCategorySelection {\n filterType: FilterType;\n ids: number[];\n}\n\nexport interface SearchResults {\n lastPageNumber: number;\n totalCount: number;\n totalLoaded: number;\n pages: Page[];\n}\n\nexport interface Page {\n pageNumber: number;\n items: PageItem[];\n}\n\nexport interface PageItem {\n ringTypeDescription: string;\n reference: string;\n previewImageUrl: string;\n minPriceFormatted: string;\n maxPriceFormatted: string;\n collectionImageUrl: string;\n}\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Vdbvr/logo3.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Vdbvr/bg3.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n light: \"#FBF7F1\",\n main: \"#DAB679\",\n },\n text: {\n primary: \"#343C48\",\n secondary: \"#DAB679\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"Lato, Arial, sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Lato\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/lato/v23/S6uyw4BMUTPHjxAwXjeu.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Lato\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/lato/v23/S6uyw4BMUTPHjx4wXg.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Lato\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh6UVSwaPGR_p.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Lato\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh6UVSwiPGQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".MuiAppBar-root .MuiButton-label\":\n { \n color: \"#F9EFE3\", \n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#343C48\",\n }\n },\n MuiButton: {\n outlinedPrimary: { \n color: \"#343C48\",\n borderColor: \"#343C48\",\n },\n containedPrimary: {\n backgroundColor: \"#DAB679\",\n borderColor: \"#343C48\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 250,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Arnold/logo2.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Arnold/bg2.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n light: \"#EFF8F8\",\n main: \"#66C1BF\",\n },\n text: {\n primary: \"#222222\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Granville', sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.3,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Granville\",\n fontWeight: 400,\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n src: `url(\"https://use.typekit.net/af/ae9c08/00000000000000007735bffb/30/l?primer=cd89bfea83225e29c3dc15f871708a0cb21f4a86ba808412c9c6f637938e51bb&fvd=n4&v=3\") format(\"woff2\"),url(\"https://use.typekit.net/af/ae9c08/00000000000000007735bffb/30/d?primer=cd89bfea83225e29c3dc15f871708a0cb21f4a86ba808412c9c6f637938e51bb&fvd=n4&v=3\") format(\"woff\"),url(\"https://use.typekit.net/af/ae9c08/00000000000000007735bffb/30/a?primer=cd89bfea83225e29c3dc15f871708a0cb21f4a86ba808412c9c6f637938e51bb&fvd=n4&v=3\") format(\"opentype\")`,\n },\n {\n fontFamily: \"Granville\",\n fontWeight: 700,\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n src: `url(\"https://use.typekit.net/af/ca35d2/00000000000000007735bfff/30/l?primer=cd89bfea83225e29c3dc15f871708a0cb21f4a86ba808412c9c6f637938e51bb&fvd=n7&v=3\") format(\"woff2\"),url(\"https://use.typekit.net/af/ca35d2/00000000000000007735bfff/30/d?primer=cd89bfea83225e29c3dc15f871708a0cb21f4a86ba808412c9c6f637938e51bb&fvd=n7&v=3\") format(\"woff\"),url(\"https://use.typekit.net/af/ca35d2/00000000000000007735bfff/30/a?primer=cd89bfea83225e29c3dc15f871708a0cb21f4a86ba808412c9c6f637938e51bb&fvd=n7&v=3\") format(\"opentype\")`,\n },\n ],\n \".MuiTypography-colorTextSecondary\":\n {\n color: \"#66C1BF\",\n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#FFFFFF\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 300,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/GalletClaeys/logo2.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/GalletClaeys/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n light: \"#E7E9ED\",\n main: \"#13274c\",\n },\n text: {\n primary: \"#777777\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Titillium Web',Helvetica,Arial,sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Titillium Web\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdM3mDbRS.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Titillium Web\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdMPmDQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Titillium Web\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGIVzY4SY.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Titillium Web\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGItzYw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".MuiTypography-colorTextSecondary\":\n {\n color: \"#1F7C8D\",\n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#FFFFFF\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 250,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Geers/logo.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Geers/bg3.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n main: \"#1FA085\",\n light: \"#EEEEEE\",\n },\n text: {\n primary: \"#777777\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n /*headerImage: {\n\tbackgroundPositionX: \"center\",\n },*/\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdM3mDbRS.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdMPmDQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGIVzY4SY.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGItzYw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#FFFFFF\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 300,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/KortrijkseGoudcentrale/logo3.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/KortrijkseGoudcentrale/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n light: \"#F6F2ED\",\n main: \"#A67D4E\",\n },\n text: {\n primary: \"#777777\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Montserrat', Arial, sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily,\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400&display=swap')`,\n },\n {\n fontFamily,\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url('https://fonts.googleapis.com/css2?family=Montserrat:wght@700;900&display=swap')`,\n },\n ],\n \".MuiAppBar-root .MuiButton-label\":\n { \n color: \"#000000\", \n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#FFFFFF\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 200,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Limpach/logo3.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Limpach/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n light: \"#F9F1E9\",\n main: \"#C7752A\",\n },\n text: {\n primary: \"#777777\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#FFFFFF\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n /*headerImage: {\n\tbackgroundPositionX: \"center\",\n },*/\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdM3mDbRS.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdMPmDQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGIVzY4SY.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGItzYw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".MuiAppBar-root .MuiButton-label\":\n { \n color: \"#ffffff\", \n },\n \".MuiButton-containedPrimary\":\n { \n backgroundImage: \"linear-gradient(to right, #E9AC01, #C7752A)\",\n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#2B2B2B\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 400,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Luyten/logo.svg\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Luyten/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n light: \"#F9F5ED\",\n main: \"#C59D4B\",\n },\n text: {\n primary: \"#777777\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Nunito Sans', sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n /*headerImage: {\n\tbackgroundPositionX: \"center\",\n },*/\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Nunito Sans\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/nunitosans/v12/pe0qMImSLYBIv1o4X1M8ccezI9tScg.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Nunito Sans\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/nunitosans/v12/pe0qMImSLYBIv1o4X1M8cce9I9s.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Nunito Sans\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/nunitosans/v12/pe03MImSLYBIv1o4X1M8cc8GBs5jU1EQVg.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Nunito Sans\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/nunitosans/v12/pe03MImSLYBIv1o4X1M8cc8GBs5tU1E.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".MuiAppBar-root .MuiButton-label\":\n { \n color: \"#00000\", \n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#FFFFFF\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 400,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Nevejan/logo.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Nevejan/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#ffffff\",\n black: \"#333333\",\n },\n primary: {\n light: \"#FFF8F9\",\n main: \"#89BE30\",\n },\n text: {\n primary: \"#1F1F1F\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Open Sans', Arial, Helvetica, Sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 5,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdM3mDbRS.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdMPmDQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGIVzY4SY.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGItzYw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \"#place-external-order\": \n { \n background: \"rgb(92, 156, 0) url(https://ringconfigimg.blob.core.windows.net/skins/Nevejan/icon-add-to-cart.png) no-repeat 90% center\", \n border: \"1px solid rgb(92, 156, 0)\", \n color: \"#FFFFFF\",\n paddingTop: \"1.5em\",\n paddingBottom: \"1.4em\",\n },\n \"#place-external-order:hover\": \n { \n backgroundColor: \"rgb(95, 133, 33) !important\", \n border: \"1px solid rgb(95, 133, 33) !important\", \n }, \n \".value-icon\":\n {\n height: \".75em\"\n },\n \".MuiButton-containedPrimary:hover\":\n {\n backgroundColor: \"inherit\",\n border: \"1px solid #89BE30\",\n },\n \".MuiButton-fullWidth[href='https://www.juwelennevejan.be/nl/contact']\": {\n display: \"none\",\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#f7f7f7\", \n },\n },\n MuiButton: {\n containedPrimary: {\n backgroundColor: \"inherit\",\n color: \"#89BE30\",\n border: \"1px solid rgba(137, 190, 48, 0.5)\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 300,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Siebel/logo_web.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Siebel/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#ffffff\",\n black: \"#000000\",\n },\n primary: {\n light: \"#f7f0e4\",\n main: \"#c4a36c\",\n },\n text: {\n secondary: \"#666666\",\n primary: \"#1F1F1F\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"ff-dax-pro\";\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: 900,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 900,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: 400,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: 400,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: 700,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: 900,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: 400,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: 300,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: 500,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: 400,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: 300,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: 300,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 5,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily,\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(\"https://use.typekit.net/af/9f3f13/0000000000000000773599be/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3\") format(\"woff2\"),url(\"https://use.typekit.net/af/9f3f13/0000000000000000773599be/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3\") format(\"woff\"),url(\"https://use.typekit.net/af/9f3f13/0000000000000000773599be/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3\") format(\"opentype\")`,\n },\n {\n fontFamily,\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(\"https://use.typekit.net/af/831858/0000000000000000773599ab/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3\") format(\"woff2\"),url(\"https://use.typekit.net/af/831858/0000000000000000773599ab/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3\") format(\"woff\"),url(\"https://use.typekit.net/af/831858/0000000000000000773599ab/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3\") format(\"opentype\")`,\n },\n ],\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 210,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/ThierensVanWauwe/logo3.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/ThierensVanWauwe/bg2.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n light: \"#FDF9F3\",\n main: \"#EBCA90\",\n },\n text: {\n primary: \"#000000\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Open Sans', sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdM3mDbRS.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdMPmDQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGIVzY4SY.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGItzYw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".MuiAppBar-root .MuiButton-label\":\n { \n color: \"#ffffff\", \n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: \n { \n backgroundColor: \"#202020\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 300,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/VanParrys/logo2.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/VanParrys/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#4F4F4F\",\n },\n primary: {\n light: \"#F9F8F7\",\n main: \"#C4BEB5\",\n },\n text: {\n primary: \"#000000\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Poppins', sans-serif\";\n\nconst weightNormal = 300;\nconst weightBold = 600;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Poppins\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 300,\n src: `url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Poppins\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 300,\n src: `url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Poppins\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 600,\n src: `url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Poppins\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 600,\n src: `url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: { \n colorDefault: { \n backgroundColor: \"#FFFFFF\",\n },\n },\n MuiButton: {\n label: {\n color: \"#4F4F4F\",\n },\n containedPrimary: { \n backgroundColor: \"#FFC8A9\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 100,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/VanRuyskensvelde/logo.jpg\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/VanRuyskensvelde/bg.png\";\n\nexport const palette = createPalette({\n common: {\n white: \"#ffffff\",\n black: \"#333333\",\n },\n primary: {\n light: \"#FAF5F0\",\n main: \"#D0A171\",\n },\n text: {\n primary: \"#1F1F1F\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"Lato, Arial\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 5,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Lato\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/lato/v23/S6uyw4BMUTPHjxAwXjeu.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Lato\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/lato/v23/S6uyw4BMUTPHjx4wXg.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Lato\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh6UVSwaPGR_p.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Lato\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh6UVSwiPGQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".MuiAppBar-root .MuiButton-label\": \n { \n color: \"#ffffff\", \n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#202d39\", \n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 500,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Versato/logo2.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Versato/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#ffffff\",\n black: \"#333333\",\n },\n primary: {\n light: \"#F9F4F3\",\n main: \"#CA9889\",\n },\n text: {\n primary: \"#000000\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E8E8E8\",\n});\n\nconst fontFamily = \"Montserrat, sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Montserrat\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Montserrat\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Montserrat\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Montserrat\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#ffffff\", \n },\n },\n MuiFormLabel: {\n root: { \n color: \"#000000\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 300,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Vrancken/logo.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Vrancken/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n light: \"#FAF7F3\",\n main: \"#907C0F\",\n },\n text: {\n primary: \"#777777\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"Raleway, sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 2,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Raleway\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/raleway/v28/1Ptug8zYS_SKggPNyCMIT5lu.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Raleway\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/raleway/v28/1Ptug8zYS_SKggPNyC0ITw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Raleway\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/raleway/v28/1Ptug8zYS_SKggPNyCMIT5lu.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Raleway\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/raleway/v28/1Ptug8zYS_SKggPNyC0ITw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".MuiAppBar-root .MuiButton-label\":\n { \n color: \"#ffffff\", \n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#2D2A26\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 200,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\nimport createPalette from \"@material-ui/core/styles/createPalette\";\nimport createTypography from \"@material-ui/core/styles/createTypography\";\nimport { Overrides } from \"@material-ui/core/styles/overrides\";\nimport { Skin } from \"themes/model\";\nimport { createCustomTheme } from \"./createCustomTheme\";\n\nconst logoPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Willems/logo2.png\";\n\nconst headerPath =\n \"https://ringconfigimg.blob.core.windows.net/skins/Willems/bg.jpg\";\n\nexport const palette = createPalette({\n common: {\n white: \"#FFFFFF\",\n black: \"#333333\",\n },\n primary: {\n light: \"#FCF1EB\",\n main: \"#E3753F\",\n },\n text: {\n primary: \"#777777\",\n secondary: \"#666666\",\n },\n error: {\n light: \"#FF5833\",\n main: \"#E43A15\",\n dark: \"#D02601\",\n },\n warning: {\n light: \"#FF893E\",\n main: \"#EF6B20\",\n dark: \"#DB570C\",\n },\n info: {\n light: \"#1E97FD\",\n main: \"#0079DF\",\n dark: \"#0065CB\",\n },\n success: {\n light: \"#1EC669\",\n main: \"#00A84B\",\n dark: \"#009437\",\n },\n background: {\n default: \"#ffffff\",\n },\n grey: {\n 100: \"#F7F7F7\",\n 200: \"#EEEEEE\",\n 300: \"#E7E7E7\",\n 400: \"#E4E2E3\",\n 500: \"#B2B2B2\",\n 600: \"#8C8C8C\",\n 700: \"#666666\",\n 800: \"#333333\",\n 900: \"#1F1F1F\",\n },\n divider: \"#E4E2E3\",\n});\n\nconst fontFamily = \"'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif\";\n\nconst weightNormal = 400;\nconst weightBold = 700;\n\nexport const typography = createTypography(palette, {\n h1: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: 33,\n lineHeight: 1,\n letterSpacing: 0,\n },\n h2: {\n fontStyle: \"normal\",\n fontWeight: 700,\n fontFamily,\n fontSize: \"26px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h3: {\n fontStyle: \"normal\",\n fontWeight: weightNormal,\n fontFamily,\n fontSize: \"20px\",\n lineHeight: 1,\n letterSpacing: 0,\n },\n h4: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"18px\",\n lineHeight: 1,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n h5: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n lineHeight: 1.2,\n fontWeight: weightBold,\n letterSpacing: 0,\n },\n h6: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: 0,\n },\n subtitle1: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"12px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n },\n subtitle2: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"22px\",\n lineHeight: 1.2,\n fontWeight: weightNormal,\n letterSpacing: 0,\n textTransform: \"uppercase\" as \"uppercase\",\n },\n button: {\n fontFamily,\n fontStyle: \"normal\",\n fontSize: \"16px\",\n fontWeight: weightBold,\n lineHeight: 1,\n letterSpacing: \"1px\",\n },\n caption: {\n fontFamily,\n fontSize: \"12px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body1: {\n fontFamily,\n fontSize: \"16px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n },\n body2: {\n fontFamily,\n fontSize: \"14px\",\n fontWeight: weightNormal,\n lineHeight: 1.4,\n letterSpacing: 0,\n \"-webkit-font-smoothing\": \"subpixel-antialiased\",\n },\n});\n\nconst shape = {\n borderRadius: 0,\n};\n\nconst breakpoints = createBreakpoints({\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1206,\n xl: 1920,\n },\n});\n\nconst overrides: Overrides = {\n MuiCssBaseline: {\n \"@global\": {\n \"@font-face\": [\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdM3mDbRS.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 400,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPecZTIAOhVxoMyOr9n_E7fdMPmDQ.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGIVzY4SY.woff2) format('woff2')`,\n unicodeRange: \"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",\n },\n {\n fontFamily: \"Open Sans\",\n fontDisplay: \"auto\",\n fontStyle: \"normal\",\n fontWeight: 700,\n src: `url(https://fonts.gstatic.com/s/titilliumweb/v15/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGItzYw.woff2) format('woff2')`,\n unicodeRange: \"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",\n },\n ],\n \".MuiAppBar-root .MuiButton-label\":\n { \n color: \"#000000\", \n },\n \".value-icon\":\n {\n height: \".75em\"\n },\n },\n },\n MuiAppBar: {\n colorDefault: { \n backgroundColor: \"#FFFFFF\",\n },\n },\n};\n\nexport const skin: Skin = {\n logoPath,\n headerPath,\n headerHeight: 250,\n theme: createCustomTheme(palette, typography, shape, breakpoints, overrides),\n};\n","import { serverData } from \"serverData\";\nimport { getSkinByKey } from \"themes/skin\";\n\nexport default getSkinByKey(serverData.skinKey);\n","import { skin as vdbvrSkin } from \"./vdbvr\";\n\nimport { skin as arnoldSkin } from \"./arnold\";\nimport { skin as galletClaeysSkin } from \"./galletclaeys\";\nimport { skin as geersSkin } from \"./geers\";\nimport { skin as kortrijksegoudcentraleSkin } from \"./kortrijksegoudcentrale\";\nimport { skin as limpachSkin } from \"./limpach\";\nimport { skin as luytenSkin } from \"./luyten\";\nimport { skin as nevejanSkin } from \"./nevejan\";\nimport { skin as siebelSkin } from \"./siebel\";\nimport { skin as thierensVanWauweSkin } from \"./thierensvanwauwe\";\nimport { skin as vanParrysSkin } from \"./vanparrys\";\nimport { skin as vanRuyskensveldeSkin } from \"./vanruyskensvelde2\";\nimport { skin as versatoSkin } from \"./versato\";\nimport { skin as vranckenSkin } from \"./vrancken\";\nimport { skin as willemsSkin } from \"./willems\";\n\nexport const getSkinByKey = (key: string | null) => {\n switch (key) {\n case \"vdbvr\":\n return vdbvrSkin;\n case \"arnold\":\n return arnoldSkin;\n case \"galletclaeys\":\n return galletClaeysSkin;\n case \"geers\":\n return geersSkin;\n case \"kortrijksegoudcentrale\":\n return kortrijksegoudcentraleSkin;\n case \"limpach\":\n return limpachSkin;\n case \"luyten\":\n return luytenSkin;\n case \"nevejan\":\n return nevejanSkin;\n case \"siebel\":\n return siebelSkin;\n case \"thierensvanwauwe\":\n return thierensVanWauweSkin;\n case \"vanparrys\":\n return vanParrysSkin;\n case \"vanruyskensvelde\":\n return vanRuyskensveldeSkin;\n case \"versato\":\n return versatoSkin;\n case \"vrancken\":\n return vranckenSkin;\n case \"willems\":\n return willemsSkin;\n default:\n return vdbvrSkin;\n }\n};\n","import {\n Box,\n Button as MuiButton,\n ButtonProps,\n ListItemIcon,\n MenuItem,\n SvgIconProps,\n} from \"@material-ui/core\";\nimport { RingView } from \"configurator/model/model\";\nimport { ringUrl } from \"configurator/view/urls\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nexport type Button = {\n translationKey: string;\n buttonHtmlId: string;\n mainMenuSort: number | null;\n productMenuSort: number | null;\n productMenuAddUrlDetails: boolean;\n openInNewWindow: boolean;\n url: string;\n svgContent: string | null;\n};\n\ntype Props = {\n buttons: Button[];\n sortingKey: \"mainMenuSort\" | \"productMenuSort\";\n ringView?: RingView;\n extraProps?: Partial;\n boxed?: boolean;\n};\n\nexport const CustomButtons: React.FC = ({\n buttons,\n sortingKey,\n ringView,\n extraProps,\n boxed,\n}: Props) => {\n const { t } = useTranslation();\n\n const sorted = buttons.sort((a, b) =>\n a[sortingKey]! < b[sortingKey]!\n ? -1\n : a[sortingKey]! > b[sortingKey]!\n ? 1\n : 0\n );\n\n const Wrapper: React.FC = ({ children }) => {\n if (!boxed) return <>{children};\n return {children};\n };\n\n const targetProps = (button: Button) =>\n button.openInNewWindow\n ? { target: \"_blank\", rel: \"noopener noreferrer\" }\n : {};\n\n return (\n <>\n {sorted.map((button) => (\n \n \n {t(`btn_${button.translationKey}`)}\n \n \n ))}\n \n );\n};\n\nexport const CustomMenuItems: React.FC = ({\n buttons,\n sortingKey,\n}: Props) => {\n const { t } = useTranslation();\n\n const sorted = buttons.sort((a, b) =>\n a[sortingKey]! < b[sortingKey]!\n ? -1\n : a[sortingKey]! > b[sortingKey]!\n ? 1\n : 0\n );\n\n return (\n <>\n {sorted.map((button) => (\n {\n if (button.openInNewWindow) {\n window.open(button.url, \"_blank\");\n } else {\n window.location.href = button.url;\n }\n }}\n >\n \n {button.svgContent && }\n \n {t(`btn_${button.translationKey}`)}\n \n ))}\n \n );\n};\n\nconst CustomSvg: React.FC = (props) => (\n \n);\n","import React from \"react\";\nimport axios from \"axios\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n AppBar,\n Box,\n Button,\n Theme,\n makeStyles,\n Toolbar,\n useMediaQuery,\n IconButton,\n Badge,\n} from \"@material-ui/core\";\nimport { useHistory } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { State } from \"reducer\";\nimport { logoutAndRedirect } from \"account/model/actions\";\nimport { serverData } from \"serverData\";\n\nimport Favorite from \"icons/Favorite\";\n\nimport { UserMenu } from \"./UserMenu\";\nimport { Dropdown } from \"./Dropdown\";\nimport skin from \"skin\";\nimport { CustomButtons } from \"components/CustomButtons\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n logo: {\n maxWidth: \"70vw\",\n maxHeight: \"36px\",\n cursor: \"pointer\",\n },\n headerContent: {\n columnGap: theme.spacing(1),\n },\n headerImage: {\n width: \"100%\",\n maxWidth: \"1180px\",\n height: `${skin.headerHeight}px`,\n backgroundImage: `url(${skin.headerPath})`,\n backgroundSize: \"cover\",\n backgroundPositionX: \"center\",\n marginBottom: \"16px\",\n },\n}));\n\ntype Props = {\n numberOfWishlistItems?: number;\n};\n\nexport const Desktop: React.FC = ({\n children,\n numberOfWishlistItems = 0,\n}) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const history = useHistory();\n const isFullscreen = useMediaQuery(\"(min-width:1206px)\");\n const username = useSelector((s: State) => s.account.username);\n const classes = useStyles();\n\n const onLogout = async () => {\n dispatch(logoutAndRedirect(\"/#/search\"));\n };\n\n const onSettings = () => {\n history.push(\"/account/profile\");\n };\n\n const onLogoClick = () => {\n if (serverData.logoUrl) {\n window.location.href = serverData.logoUrl;\n } else {\n history.push(\"/search\");\n }\n };\n\n return (\n <>\n \n \n \n \n b.mainMenuSort !== null && b.mainMenuSort < 0\n )}\n sortingKey=\"mainMenuSort\"\n />\n\n \n axios\n .post(\"/update-currency?currency=\" + code)\n .then(() => window.location.reload())\n }\n />\n\n \n axios\n .post(\"/update-country?country=\" + code)\n .then(() => window.location.reload())\n }\n />\n\n \n axios\n .post(\"/update-language?language=\" + code)\n .then(() => window.location.reload())\n }\n />\n\n {username && (\n history.push(\"/WishList\")}>\n \n \n \n \n )}\n\n {serverData.makeAppointmentUrl && (\n \n {t(\"MakeAppointment\")}\n \n )}\n\n b.mainMenuSort !== null && b.mainMenuSort > 0\n )}\n sortingKey=\"mainMenuSort\"\n />\n\n {username && (\n \n )}\n\n {!username && !serverData.hideLogin && (\n history.push(\"/account/login\")}\n >\n {t(\"LoginPartial_LogIn\")}\n \n )}\n \n \n \n \n \n \n
\n \n {children}\n
\n\n {serverData.footerHtml && (\n
\n )}\n \n );\n};\n","import {\n Divider,\n ListItemIcon,\n ListSubheader,\n MenuItem,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { CodeDescription } from \"serverData\";\n\ntype Props = {\n items: CodeDescription[];\n selectedItem: CodeDescription;\n translationKey: string;\n icon: React.ReactNode;\n urlBuilder: (code: string) => string;\n divider?: boolean;\n};\n\nexport const MobileMenuSelector: React.FC = ({\n items,\n selectedItem,\n translationKey,\n icon,\n urlBuilder,\n divider,\n}) => {\n const { t } = useTranslation();\n if (items.length < 2) return null;\n return (\n <>\n {t(translationKey)}\n\n {items.map((item) => (\n {\n axios\n .post(urlBuilder(item.code))\n .then(() => window.location.reload());\n }}\n >\n {item.code !== selectedItem.code ? (\n \n ) : (\n {icon}\n )}\n {item.description}\n \n ))}\n\n {divider && }\n \n );\n};\n","import React from \"react\";\n\nimport { SvgIcon } from \"@material-ui/core\";\n\nexport default () => (\n \n \n \n \n);\n","import React from \"react\";\n\nimport { SvgIcon } from \"@material-ui/core\";\n\nexport default () => (\n \n \n \n);\n","import React from \"react\";\n\nimport { SvgIcon } from \"@material-ui/core\";\n\nexport default () => (\n \n \n \n);\n","import React, { useState } from \"react\";\nimport {\n Toolbar,\n IconButton,\n Badge,\n Theme,\n useMediaQuery,\n useTheme,\n makeStyles,\n CircularProgress,\n Drawer,\n MenuList,\n MenuItem,\n ListItemText,\n ListItemIcon,\n Typography,\n Box,\n AppBar,\n} from \"@material-ui/core\";\nimport { useHistory } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Fullbleed } from \"components/Fullbleed\";\nimport Favorite from \"icons/Favorite\";\nimport ChevronLeft from \"icons/ChevronLeft\";\nimport Menu from \"icons/Menu\";\nimport Search from \"icons/Search\";\nimport Settings from \"icons/Settings\";\nimport Logout from \"icons/Logout\";\nimport Calendar from \"icons/Calendar\";\nimport Docs from \"icons/Docs\";\nimport User from \"icons/User\";\n\nimport { State } from \"reducer\";\nimport { serverData } from \"serverData\";\nimport { logoutAndRedirect } from \"account/model/actions\";\nimport { Desktop } from \"./Desktop\";\nimport skin from \"skin\";\nimport { MobileMenuSelector } from \"components/Page/MobileMenuSelector\";\nimport Country from \"icons/Country\";\nimport Language from \"icons/Language\";\nimport Currency from \"icons/Currency\";\nimport { CustomMenuItems } from \"components/CustomButtons\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n toolbar: {\n display: \"flex\",\n justifyContent: \"space-between\",\n top: 0,\n left: 0,\n width: \"100vw\",\n zIndex: 10,\n },\n logo: {\n maxWidth: \"70vw\",\n maxHeight: \"36px\",\n },\n spacer: theme.mixins.toolbar,\n progress: {\n zIndex: theme.zIndex.tooltip + 1,\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n marginLeft: \"-20px\",\n marginTop: \"-20px\",\n },\n content: {\n [theme.breakpoints.up(\"sm\")]: {\n display: \"flex\",\n minHeight: `calc(100% - ${skin.headerHeight + 16}px)`,\n },\n },\n sidebar: {\n marginBottom: 0,\n backgroundColor: theme.palette.primary.light,\n padding: theme.spacing(2),\n minHeight: `calc(100% - ${skin.headerHeight + 64}px)`,\n [theme.breakpoints.up(\"sm\")]: {\n marginTop: 0,\n minWidth: \"225px\",\n maxWidth: \"225px\",\n marginRight: theme.spacing(2),\n },\n [theme.breakpoints.up(\"md\")]: {\n minWidth: \"300px\",\n maxWidth: \"300px\",\n },\n },\n}));\n\ntype Props = {\n isLoading: boolean;\n children: React.ReactNode;\n sidebar?: React.ReactNode;\n onBack?: () => void;\n onReferenceSearch?: () => void;\n};\n\nexport const Page: React.FC = ({\n isLoading,\n children,\n onBack,\n onReferenceSearch,\n sidebar,\n}) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const isPrint = useMediaQuery(\"@media print\");\n const isMobile = useMediaQuery(useTheme().breakpoints.down(\"sm\"));\n const classes = useStyles();\n const history = useHistory();\n const numberOfWishlistItems = useSelector(\n (state: State) => state.wishList.items.length\n );\n const username = useSelector((s: State) => s.account.username);\n const isFullscreen = useMediaQuery(\"(min-width:1206px)\");\n const [open, setOpen] = useState(false);\n\n if (isPrint) {\n return <>{children};\n }\n\n const doLogout = async () => {\n dispatch(logoutAndRedirect(\"/#/search\"));\n };\n\n const onLogoClick = () => {\n if (serverData.logoUrl) {\n window.location.href = serverData.logoUrl;\n } else {\n // Not going to search for now on mobile - might be annoying\n // history.push(\"/search\");\n }\n };\n\n if (isMobile) {\n return (\n
\n \n \n {onBack && (\n \n \n \n )}\n\n {!onBack && (\n <>\n setOpen(true)}>\n \n \n\n setOpen(false)}\n >\n \n {t(\"Profile_Welcome\")}\n {username}\n \n\n \n {\n setOpen(false);\n history.push(\"/Search\");\n }}\n divider\n >\n \n \n \n \n \n {serverData.makeAppointmentUrl && (\n \n (window.location.href = serverData.makeAppointmentUrl!)\n }\n divider\n >\n \n \n \n \n \n )}\n\n b.mainMenuSort !== null && b.mainMenuSort < 0\n )}\n sortingKey=\"mainMenuSort\"\n />\n {username && (\n {\n setOpen(false);\n history.push(\"/WishList\");\n }}\n divider\n >\n \n \n \n \n \n )}\n {onReferenceSearch && (\n \n \n \n \n \n \n )}\n {username && (\n {\n setOpen(false);\n history.push(\"/account/profile\");\n }}\n divider\n >\n \n \n \n \n \n )}\n {username && (\n \n \n \n \n \n \n )}\n {!username && (\n {\n setOpen(false);\n history.push(\"/account/login\");\n }}\n divider\n >\n \n \n \n \n \n )}\n\n b.mainMenuSort !== null && b.mainMenuSort > 0\n )}\n sortingKey=\"mainMenuSort\"\n />\n\n }\n urlBuilder={(code) => \"/update-language?language=\" + code}\n divider={\n serverData.allCountries.length > 1 ||\n serverData.allCurrencies.length > 1\n }\n />\n\n }\n urlBuilder={(code) => \"/update-country?country=\" + code}\n divider={serverData.allCurrencies.length > 1}\n />\n\n }\n urlBuilder={(code) => \"/update-currency?currency=\" + code}\n />\n \n \n \n )}\n\n \n\n history.push(\"/WishList\")}>\n \n \n \n \n \n \n\n
\n\n {isLoading && }\n\n
{children}
\n
\n );\n } else {\n return (\n \n {isLoading && }\n\n \n {sidebar && (\n \n {sidebar}\n \n )}\n\n {children}\n
\n \n );\n }\n};\n","import queryString from \"query-string\";\n\nimport {\n FilterInfo,\n FilterType,\n SortOrder,\n SortType,\n UrlFilterSelection,\n} from \"search/model/model\";\n\ninterface SearchQuery {\n min: number | null;\n max: number | null;\n sto: number[] | number | null;\n mat: number[] | number | null;\n col: number[] | number | null;\n tag: number[] | number | null;\n sortType: SortType | null;\n sortOrder: SortOrder | null;\n}\n\nconst format = { arrayFormat: \"separator\" as const, arrayFormatSeparator: \"|\" };\n\nexport const searchUrl = (filter: FilterInfo) =>\n queryString.stringifyUrl(\n {\n url: \"search\",\n query: createQuery(filter) as any,\n },\n { skipNull: true, ...format }\n );\n\nfunction createQuery(filter: FilterInfo): SearchQuery {\n return {\n min:\n filter.selection.priceRange.min !== filter.priceRange.min\n ? filter.selection.priceRange.min\n : null,\n max:\n filter.selection.priceRange.max !== filter.priceRange.max\n ? filter.selection.priceRange.max\n : null,\n sto: categories(filter, FilterType.Stones),\n mat: categories(filter, FilterType.Materials),\n col: categories(filter, FilterType.Collections),\n tag: categories(filter, FilterType.Tags),\n sortOrder:\n filter.selection.sorting.sortOrder !== SortOrder.Ascending\n ? filter.selection.sorting.sortOrder\n : null,\n sortType:\n filter.selection.sorting.sortType !== SortType.Default\n ? filter.selection.sorting.sortType\n : null,\n };\n}\n\nconst categories = (filter: FilterInfo, type: FilterType) => {\n const all = filter.categories.find((c) => c.filterType === type);\n\n const selected =\n filter.selection.categories.find((c) => c.filterType === type)?.ids ?? [];\n\n return all?.items.length === selected.length ? null : selected;\n};\n\nexport const parseSearchQuery = (query: string): UrlFilterSelection | null => {\n const parsed = queryString.parse(query, { parseNumbers: true, ...format });\n\n if (Object.keys(parsed).length === 0) return null;\n\n const searchQuery = (parsed as unknown) as SearchQuery;\n\n const cat = (type: FilterType, ids: number[] | number | null) => {\n const arr = (typeof ids === \"number\" ? [ids] : ids) ?? [];\n\n return ids ? [{ filterType: type, ids: arr }] : [];\n };\n\n const categories = [\n ...cat(FilterType.Materials, searchQuery.mat),\n ...cat(FilterType.Stones, searchQuery.sto),\n ...cat(FilterType.Collections, searchQuery.col),\n ...cat(FilterType.Tags, searchQuery.tag),\n ];\n\n return {\n priceRange: {\n min: searchQuery.min,\n max: searchQuery.max,\n },\n categories,\n sorting: {\n sortType: searchQuery.sortType,\n sortOrder: searchQuery.sortOrder,\n },\n };\n};\n","import React from \"react\";\nimport { makeStyles, Theme } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n height: \"100%\",\n },\n inner: {\n borderRadius: theme.shape.borderRadius,\n position: \"relative\",\n overflow: \"hidden\",\n },\n img: {\n display: \"block\",\n height: \"auto\",\n maxHeight: \"350px\",\n maxWidth: \"100%\",\n marginLeft: \"auto\",\n marginRight: \"auto\",\n marginTop: \"-12px\",\n marginBottom: \"-12px\",\n [theme.breakpoints.up(\"xs\")]: {\n marginTop: \"-8px\",\n marginBottom: \"-8px\",\n },\n },\n}));\n\nexport const Thumbnail: React.FC<{\n src: string;\n children?: any;\n inline?: any;\n}> = ({ src, children, inline }) => {\n const classes = useStyles();\n\n return (\n
\n {inline}\n\n
\n \"\"\n\n {children}\n
\n
\n );\n};\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import { Reducer, useReducer, useEffect, useState } from \"react\";\n\ntype State = {\n response: O | null;\n meta: {\n isLoading: boolean;\n isLoaded: boolean;\n isError: boolean;\n error?: any;\n };\n};\n\ntype ResetAction = {\n type: \"RESET\";\n};\n\ntype RequestedAction = {\n type: \"REQUESTED\";\n};\n\ntype SuccessAction = {\n type: \"SUCCESS\";\n payload: O | null;\n};\n\ntype FailureAction = {\n type: \"FAILURE\";\n payload: any;\n};\n\ntype Action =\n | ResetAction\n | RequestedAction\n | SuccessAction\n | FailureAction;\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case \"RESET\":\n return initial;\n case \"REQUESTED\":\n return {\n ...state,\n meta: {\n isLoaded: state.meta.isLoaded,\n isLoading: true,\n isError: false,\n },\n };\n case \"SUCCESS\":\n return {\n response: action.payload,\n meta: {\n isLoaded: true,\n isLoading: false,\n isError: false,\n },\n };\n case \"FAILURE\":\n return {\n ...state,\n response: null,\n meta: {\n isLoaded: true,\n isLoading: false,\n isError: true,\n error: action.payload,\n },\n };\n default:\n return state;\n }\n}\n\nexport type AsyncCallResponse = [\n T,\n {\n isLoading: boolean;\n isLoaded: boolean;\n isError: boolean;\n error?: any;\n refresh: () => void;\n }\n];\n\nexport type AsyncCallConfig = {\n disabled: boolean;\n};\n\nconst initial = {\n response: null,\n meta: {\n isLoaded: false,\n isLoading: false,\n isError: false,\n },\n};\n\nexport function useAsyncCall
(\n fn?: () => Promise\n): AsyncCallResponse {\n const [state, dispatch] = useReducer(\n reducer as Reducer, Action>,\n initial\n );\n const [counter, setCounter] = useState(0);\n\n const refresh = () => {\n setCounter(counter + 1);\n };\n\n useEffect(() => {\n let isMounted = true;\n\n if (!fn) {\n dispatch({ type: \"RESET\" });\n } else {\n dispatch({ type: \"REQUESTED\" });\n\n fn()\n .then((response) => {\n if (isMounted) {\n dispatch({ type: \"SUCCESS\", payload: response });\n }\n })\n .catch((error) => {\n if (isMounted) {\n dispatch({ type: \"FAILURE\", payload: error });\n }\n });\n }\n return () => {\n isMounted = false;\n };\n }, [fn, counter]);\n\n return [\n state.response,\n {\n ...state.meta,\n refresh,\n },\n ];\n}\n","import React, { useCallback, useRef, useState } from \"react\";\nimport {\n InputAdornment,\n Theme,\n Hidden,\n DialogTitle,\n DialogContent,\n Paper,\n Dialog,\n IconButton,\n InputBase,\n makeStyles,\n ListItemText,\n Typography,\n useMediaQuery,\n useTheme,\n List,\n ListItem,\n ListItemSecondaryAction,\n CircularProgress,\n} from \"@material-ui/core\";\nimport { useAutocomplete } from \"@material-ui/lab\";\nimport parse from \"autosuggest-highlight/parse\";\nimport match from \"autosuggest-highlight/match\";\nimport { useHistory } from \"react-router-dom\";\nimport axios from \"axios\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ChevronLeft from \"icons/ChevronLeft\";\nimport ChevronRight from \"icons/ChevronRight\";\nimport Close from \"icons/Close\";\nimport { useAsyncCall } from \"useAsyncCall\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n dialogContent: {\n height: \"450px\",\n paddingBottom: \"16px\",\n },\n input: {\n marginRight: theme.spacing(2),\n [theme.breakpoints.up(\"sm\")]: {\n marginLeft: theme.spacing(2),\n },\n },\n menu: {\n '& div[data-focus=\"true\"]': {\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\n },\n },\n}));\n\ntype Props = {\n onClose: () => void;\n open: boolean;\n};\n\nexport const ReferenceSearchDialog: React.FC = ({ onClose, open }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const isMobile = useMediaQuery(useTheme().breakpoints.down(\"xs\"));\n const [inputValue, setInputValue] = useState(\"\");\n const history = useHistory();\n const inputRef = useRef();\n\n const term = inputValue.trim();\n\n const [options, meta] = useAsyncCall(\n useCallback(() => {\n if (term.length > 0) {\n return axios\n .get(`/api/search/references?term=${term}`)\n .then((response) => response.data);\n } else {\n return Promise.resolve([]);\n }\n }, [term])\n );\n\n const {\n getRootProps,\n getInputProps,\n getListboxProps,\n getOptionProps,\n groupedOptions,\n } = useAutocomplete({\n id: \"reference-search\",\n options: options || [],\n inputValue,\n open: inputValue !== \"\",\n autoHighlight: true,\n onChange: (_, option) =>\n history.push({\n pathname: \"/ring\",\n search: \"?reference=\" + option,\n }),\n });\n\n //@ts-ignore\n const { value, onBlur, onChange: doChange, ...inputProps } = getInputProps();\n\n const onChange = (e: React.ChangeEvent) => {\n setInputValue(e.target.value.toUpperCase());\n };\n\n const onScroll = () => {\n inputRef.current?.blur();\n };\n\n return (\n \n \n \n \n \n \n \n\n \n \n \n )\n }\n />\n\n \n \n \n \n \n \n \n {groupedOptions.length === 0 && term.length > 0 && !meta.isLoading && (\n \n {t(\"ReferenceSearch_NoResults\")}\n \n )}\n\n {groupedOptions.length > 0 && (\n \n \n {groupedOptions.map((option, index) => {\n const matches = match(option, value);\n const parts = parse(option, matches);\n\n const text = parts.map((part) => {\n if (part.highlight) {\n return {part.text};\n } else {\n return (\n \n {part.text}\n \n );\n }\n });\n\n //@ts-ignore\n const { onClick, ...otherProps } = getOptionProps({\n option,\n index,\n });\n\n return (\n \n {text}}\n disableTypography\n />\n \n \n \n \n \n \n );\n })}\n \n \n )}\n \n \n );\n};\n","import React from \"react\";\nimport { MenuItem, Select } from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Sorting, SortOrder, SortType } from \"search/model/model\";\n\nimport ExpandMore from \"icons/ExpandMore\";\n\nconst SIMPLIFIED_SORT_ORDERS = {\n Default: {\n sortType: SortType.Default,\n sortOrder: SortOrder.Ascending,\n },\n PriceAscending: {\n sortType: SortType.Price,\n sortOrder: SortOrder.Ascending,\n },\n PriceDescending: {\n sortType: SortType.Price,\n sortOrder: SortOrder.Descending,\n },\n Popularity: {\n sortType: SortType.Popularity,\n sortOrder: SortOrder.Descending,\n },\n NewlyAdded: {\n sortType: SortType.NewlyAdded,\n sortOrder: SortOrder.Descending,\n },\n} as const;\n\ntype SimplifiedSortOrders = keyof typeof SIMPLIFIED_SORT_ORDERS;\n\nconst toSimplifiedSortOrder = (\n sorting: Sorting | undefined\n): SimplifiedSortOrders => {\n switch (sorting?.sortType) {\n case SortType.Default:\n return \"Default\";\n case SortType.Popularity:\n return \"Popularity\";\n case SortType.NewlyAdded:\n return \"NewlyAdded\";\n default:\n switch (sorting?.sortOrder) {\n case SortOrder.Descending:\n return \"PriceDescending\";\n default:\n return \"PriceAscending\";\n }\n }\n};\n\ntype Props = {\n value?: Sorting;\n onChange: (value: Sorting) => void;\n};\n\nexport const OrderSelect: React.FC = ({ value, onChange }) => {\n const { t } = useTranslation();\n\n return (\n \n onChange(SIMPLIFIED_SORT_ORDERS[e.target.value as SimplifiedSortOrders])\n }\n variant=\"outlined\"\n IconComponent={ExpandMore}\n fullWidth\n >\n {Object.keys(SIMPLIFIED_SORT_ORDERS).map((sorting) => (\n \n {t(`Search_Sorting_${sorting}`)}\n \n ))}\n \n );\n};\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n \n);\n","import React from \"react\";\nimport {\n Box,\n Checkbox,\n Chip,\n Divider,\n FormControl,\n FormControlLabel,\n FormGroup,\n FormLabel,\n Typography,\n Select,\n MenuItem,\n} from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch } from \"react-redux\";\n\nimport { FilterUpdateType, updateFilter } from \"search/model/actions\";\nimport { FilterInfo, FilterType, PriceRange } from \"search/model/model\";\n\nimport ExpandMore from \"icons/ExpandMore\";\nimport CheckboxChecked from \"icons/CheckboxChecked\";\nimport CheckboxUnchecked from \"icons/CheckboxUnchecked\";\nimport CheckboxCheckedFilled from \"icons/CheckboxCheckedFilled\";\n\nexport const getFilterTranslation = (filterType: FilterType) => {\n switch (filterType) {\n case FilterType.Stones:\n return \"Search_Stones\";\n case FilterType.Materials:\n return \"Search_Materials\";\n case FilterType.Collections:\n return \"Search_Collections\";\n case FilterType.Tags:\n return \"Search_Tags\";\n }\n};\n\ntype Props = {\n filter: FilterInfo | null;\n};\n\nexport const Filter: React.FC = ({ filter }) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const selectedItems = filter?.categories\n .flatMap((category) => category.items)\n .filter((item) => item.isSelected);\n\n // TODO: set this in filter.PriceRange in backend, as soon as this is used everywhere\n const absoluteMin = Math.min.apply(\n Math,\n filter?.priceLevels.map((l) => l.amount) || []\n );\n const absoluteMax = Math.max.apply(\n Math,\n filter?.priceLevels.map((l) => l.amount) || []\n );\n\n const selectedMin = filter?.selection.priceRange.min || absoluteMin;\n const selectedMax = filter?.selection.priceRange.max || absoluteMax;\n\n const updatePrice = (priceRange: PriceRange) =>\n dispatch(\n updateFilter(\n {\n type: FilterUpdateType.Price,\n priceRange,\n },\n true\n )\n );\n\n return (\n <>\n {selectedItems && selectedItems.length > 0 && (\n <>\n \n {t(\"Search_SelectedFilters\")}\n \n\n \n {selectedItems.map((item) => (\n dispatch(updateFilter(item.filterUpdate, true))}\n color=\"primary\"\n size=\"small\"\n style={{ marginRight: \"4px\", marginTop: \"4px\" }}\n />\n ))}\n \n\n \n \n )}\n\n \n \n {t(\"Search_MinimumPrice\")}\n \n updatePrice({ min: evt.target.value as number, max: selectedMax })\n }\n IconComponent={ExpandMore}\n >\n {filter?.priceLevels.map((l) => (\n = selectedMax}\n >\n {l.amountFormatted}\n \n ))}\n \n \n \n \n \n {t(\"Search_MaximumPrice\")}\n \n updatePrice({ min: selectedMin, max: evt.target.value as number })\n }\n IconComponent={ExpandMore}\n >\n {filter?.priceLevels.map((l) => (\n \n {l.amountFormatted}\n \n ))}\n \n \n \n \n\n {filter &&\n filter.categories.map((category) => (\n \n \n \n \n {t(getFilterTranslation(category.filterType))}\n \n \n {category.items.map((item) => (\n !item.isSelected\n )}\n checked={\n item.isSelected ||\n category.items.every((item) => !item.isSelected)\n }\n style={{ transform: \"scale(0.75)\" }}\n onChange={() =>\n dispatch(updateFilter(item.filterUpdate, true))\n }\n icon={}\n checkedIcon={}\n indeterminateIcon={}\n />\n }\n />\n ))}\n \n \n \n \n \n ))}\n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport {\n Box,\n useMediaQuery,\n Theme,\n Grid,\n Button,\n Hidden,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n makeStyles,\n Typography,\n FormControl,\n FormLabel,\n TextField,\n} from \"@material-ui/core\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Page } from \"components/Page\";\nimport { State } from \"reducer\";\nimport {\n initialLoad,\n updateFilter,\n FilterUpdateType,\n loadPage,\n} from \"search/model/actions\";\nimport { parseSearchQuery, searchUrl } from \"search/view/url\";\nimport { Thumbnail } from \"configurator/view/Thumbnail\";\nimport FilterIcon from \"icons/Filter\";\n\nimport { ringLink } from \"configurator/view/urls\";\nimport { Fullbleed } from \"components/Fullbleed\";\nimport { FilterInfo } from \"search/model/model\";\n\nimport { ReferenceSearchDialog } from \"./ReferenceSearchDialog\";\nimport { OrderSelect } from \"./OrderSelect\";\nimport { Filter } from \"./Filter\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n body: {\n [theme.breakpoints.up(\"sm\")]: {\n display: \"flex\",\n width: \"100%\",\n },\n },\n filter: {\n backgroundColor: theme.palette.primary.light,\n padding: theme.spacing(2),\n marginBottom: theme.spacing(2),\n [theme.breakpoints.up(\"sm\")]: {\n marginTop: 0,\n minWidth: \"225px\",\n maxWidth: \"225px\",\n marginRight: theme.spacing(2),\n padding: 0,\n },\n [theme.breakpoints.up(\"md\")]: {\n minWidth: \"300px\",\n maxWidth: \"300px\",\n },\n },\n thumbnailContainer: {\n cursor: \"pointer\",\n height: \"100%\",\n },\n}));\n\nexport const SearchPage: React.FC<{}> = () => {\n const { t } = useTranslation();\n const search = useSelector((rootState: State) => rootState.search);\n const filter = useSelector(getFilter);\n const dispatch = useDispatch();\n const history = useHistory();\n const [open, setOpen] = useState(false);\n const classes = useStyles();\n const isFullscreen = useMediaQuery(\"(min-width:1206px)\");\n const [open1, setOpen1] = useState(false);\n\n useEffect(() => {\n dispatch(initialLoad(parseSearchQuery(history.location.search)));\n }, [history, dispatch]);\n\n useEffect(() => {\n if (search.filter) {\n history.replace(searchUrl(search.filter));\n }\n }, [search.filter, history]);\n\n const isLoading = search.isUpdatingFilter || search.isLoadingInitially;\n\n return (\n setOpen1(true)}>\n
\n \n \n \n \n \n \n \n \n {t(\"Search_NumberOfResults\", {\n totalCount: search.results.totalCount,\n })}\n \n \n \n setOpen(true)}\n startIcon={}\n fullWidth\n size=\"small\"\n variant=\"outlined\"\n >\n {t(\"Search_FilterButtonLabel\")}\n \n \n \n \n {t(\"Search_SortLabel\")}\n \n dispatch(\n updateFilter(\n {\n type: FilterUpdateType.Sorting,\n sorting,\n },\n true\n )\n )\n }\n />\n \n \n \n\n setOpen(false)}\n maxWidth=\"sm\"\n fullWidth\n >\n {t(\"Search_FilterDialogTitle\")}\n \n \n \n \n \n \n setOpen(false)}\n fullWidth\n >\n {t(\"Search_FilterDialogButtonLabel\", {\n totalCount: search.results.totalCount,\n })}\n \n \n \n \n \n\n
\n dispatch(loadPage(search.newestPageNumber + 1))}\n loader={null}\n style={{ width: \"100%\", overflow: \"hidden\" }}\n >\n \n \n \n \n setOpen1(true)}\n />\n \n \n \n dispatch(\n updateFilter(\n {\n type: FilterUpdateType.Sorting,\n sorting,\n },\n true\n )\n )\n }\n />\n \n \n \n \n\n \n {search.results.pages\n .flatMap((page) => page.items)\n .map((item) => (\n \n history.push(ringLink(item))}\n className={classes.thumbnailContainer}\n >\n \n \n \n \n {item.minPriceFormatted}\n {item.minPriceFormatted !==\n item.maxPriceFormatted && (\n - {item.maxPriceFormatted}\n )}\n \n \n\n \n \n {item.reference}\n \n \n\n \n \n \n
\n \n ))}\n \n\n {!isLoading &&\n search.results.pages.flatMap((page) => page.items).length ===\n 0 && (\n \n {t(\"Search_NoResults\")}\n \n )}\n \n
\n
\n\n setOpen1(false)} />\n \n );\n};\n\n/* \n\n * Can be removed if we change the backend\n */\n\nconst getFilter = (state: State): FilterInfo | null => {\n if (state.search.filter) {\n const categories = state.search.filter.categories.map((category) => {\n const foo = state.search.filter!.selection.categories.find(\n (c) => c.filterType === category.filterType\n )!.ids;\n\n const selectedIds = foo.length === category.items.length ? [] : foo;\n\n return {\n ...category,\n items: category.items.map((item) => {\n const isSelected = selectedIds.includes(item.id);\n\n return {\n ...item,\n isSelected,\n filterUpdate: {\n type: FilterUpdateType.Category as FilterUpdateType.Category,\n filterType: category.filterType,\n ids: isSelected\n ? selectedIds.filter((id) => id !== item.id)\n : [...selectedIds, item.id],\n },\n };\n }),\n };\n });\n\n return {\n ...state.search.filter,\n categories,\n };\n } else {\n return null;\n }\n};\n","import { RingIdentifier } from \"models\";\nimport { serverData } from \"serverData\";\nimport axios from \"axios\";\n\ninterface OrderRequest {\n rings: OrderRequestItem[];\n}\n\ninterface OrderRequestItem {\n reference: string;\n purities: MaterialPurityPair[];\n ringSize: string | null;\n}\n\n// Legacy version, from when multiple purities where still possible\ninterface MaterialPurityPair {\n key: number;\n value: number;\n}\n\nexport async function createOrder(\n onError: () => void,\n ...rings: RingIdentifier[]\n) {\n try {\n if (rings.length > serverData.maxOrderRings) {\n alert(\n \"A maximum of \" +\n serverData.maxOrderRings +\n \" can be ordered at the same time.\"\n );\n return;\n }\n\n const orderRequest: OrderRequest = {\n rings: rings.map((r) => ({\n reference: r.reference,\n purities: purityToPair(r.purity),\n ringSize: r.selectedRingSize?.localized || null,\n })),\n };\n\n const jsonResponse = await axios.post<{ id: number }>(\n \"/api/orders\",\n orderRequest\n );\n\n window.location.href = \"/Order/Index/\" + jsonResponse.data.id;\n } catch (error) {\n onError();\n throw error;\n }\n}\n\nfunction purityToPair(purity?: number | null): MaterialPurityPair[] {\n if (!purity) return [];\n\n return [\n {\n key: 0,\n value: purity,\n },\n ];\n}\n","import React from \"react\";\nimport { FieldInputProps, useField } from \"formik\";\nimport { TextField, TextFieldProps } from \"@material-ui/core\";\n\ntype Props = Omit | \"error\"> & {\n name: string;\n};\n\nexport const TextFieldInput: React.FC = ({\n name,\n helperText,\n ...props\n}: Props) => {\n const [field, meta] = useField(name);\n\n return (\n \n );\n};\n","import React from \"react\";\n\nimport { makeStyles, Theme, Typography } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderBottom: `1px solid ${theme.palette.divider}`,\n width: \"100%\",\n height: \"fit-content\",\n },\n explanation: {\n border: `1px solid ${theme.palette.primary.main}`,\n margin: theme.spacing(2),\n padding: theme.spacing(2),\n borderRadius: theme.shape.borderRadius,\n },\n title: {\n marginBottom: theme.spacing(1),\n },\n}));\n\nexport const DialogExplanation: React.FC<{\n title?: string;\n children: React.ReactNode;\n}> = ({ title, children }) => {\n const classes = useStyles();\n\n return (\n
\n
\n {title && (\n \n {title}\n \n )}\n\n {children}\n
\n
\n );\n};\n","import React, { useMemo } from \"react\";\nimport {\n makeStyles,\n Theme,\n Dialog,\n DialogTitle,\n Typography,\n IconButton,\n Grid,\n DialogContent,\n DialogActions,\n Button,\n Box,\n} from \"@material-ui/core\";\nimport * as Yup from \"yup\";\nimport { Formik, Form } from \"formik\";\nimport { useTranslation } from \"react-i18next\";\nimport { TFunction } from \"i18next\";\n\nimport Close from \"icons/Close\";\nimport { TextFieldInput } from \"components/TextFieldInput\";\nimport { DialogExplanation } from \"components/DialogExplanation\";\nimport { Email } from \"models\";\nimport { Fullbleed } from \"./Fullbleed\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n closeButton: {\n position: \"absolute\",\n right: theme.spacing(1),\n top: theme.spacing(1),\n },\n content: {\n padding: theme.spacing(2),\n width: \"100%\",\n },\n}));\n\ntype FormValues = {\n to: string;\n message: string;\n};\n\nconst initialValues: FormValues = {\n to: \"\",\n message: \"\",\n};\n\ntype Props = {\n open: boolean;\n onClose: () => void;\n onSubmit: (email: Email) => Promise;\n title: string;\n explanation: string;\n};\n\nexport const EmailDialog: React.FC = ({\n open,\n onClose,\n onSubmit: doSubmit,\n title,\n explanation,\n}: Props) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n const onSubmit = async (values: FormValues) => {\n try {\n await doSubmit({\n toAddresses: [values.to],\n bccAddress: null,\n ccAddresses: [],\n extraMessage: values.message,\n });\n\n onClose();\n } catch {\n // TODO\n }\n };\n\n const validationSchema = useMemo(() => createValidationSchema(t), [t]);\n\n return (\n \n
\n \n \n E-mail\n \n \n \n \n \n \n \n {explanation}\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst createValidationSchema = (t: TFunction) =>\n Yup.object({\n to: Yup.string()\n .required(t(\"EmailDialog_Required\"))\n .email(t(\"EmailDialog_InvalidEmail\")),\n\n message: Yup.string().required(t(\"EmailDialog_Required\")),\n });\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { Paper, List, ListItem, ListItemText } from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { RingView } from \"configurator/model/model\";\n\ntype Props = {\n ringView: RingView;\n};\n\nexport const ProductDetails: React.FC = ({ ringView }) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n \n \n\n {ringView.properties.map((property, idx) => (\n \n \n \n ))}\n \n \n );\n};\n","import React from \"react\";\nimport { Box, Typography, TypographyProps } from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { RingView } from \"configurator/model/model\";\n\ntype Props = {\n ringView?: RingView;\n variant: TypographyProps[\"variant\"];\n preferShort?: boolean;\n};\n\nexport const ProductInformation: React.FC = ({\n ringView,\n variant,\n preferShort = false,\n}) => {\n const { t } = useTranslation();\n\n if (\n ringView &&\n (ringView.ringCollection.shortDescription ||\n ringView.ringCollection.longDescription)\n ) {\n return (\n <>\n \n {t(\"Ring_ProductInformation\")}\n \n \n \n {preferShort\n ? ringView.ringCollection.shortDescription ||\n ringView.ringCollection.longDescription\n : ringView.ringCollection.longDescription ||\n ringView.ringCollection.shortDescription}\n \n \n \n );\n }\n\n return null;\n};\n","import React from \"react\";\nimport {\n Box,\n Button,\n Dialog,\n DialogContent,\n DialogTitle,\n List,\n ListItem,\n ListItemText,\n Paper,\n Typography,\n} from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ConfiguratorValue, Value } from \"configurator/model/model\";\n\ntype Props = {\n open: boolean;\n onClose: () => void;\n alternative: ConfiguratorValue | null;\n onAccept: () => void;\n onReject: () => void;\n};\n\nexport const AlternativeDialog: React.FC = ({\n open,\n onClose,\n alternative,\n onAccept,\n onReject,\n}) => {\n const { t } = useTranslation();\n\n return (\n \n {alternative && alternative.ring && (\n <>\n {t(\"Alternative_Title\")}\n \n \n \n {t(\"Alternative_Description\")}\n \n \n\n \n \n \n {alternative.ring.newValues.map((newValue, idx) => (\n \n \n \n ))}\n \n \n \n\n \n \n {t(\"Alternative_Continue\")}\n \n \n\n \n {t(\"Alternative_Back\")}\n \n \n \n )}\n \n );\n};\n","import React from \"react\";\n\nexport default () => (\n \n \n \n \n);\n","import React from \"react\";\n\nexport default () => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n \n);\n","import React, { useState } from \"react\";\nimport {\n Grid,\n Button,\n CircularProgress,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n ListItemIcon,\n ListItemText,\n Typography,\n Theme,\n makeStyles,\n useMediaQuery,\n useTheme,\n MenuList,\n MenuItem,\n} from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\n\nimport RadioButtonChecked from \"icons/RadioButtonChecked\";\nimport RadioButtonUnchecked from \"icons/RadioButtonUnchecked\";\nimport { DialogExplanation } from \"components/DialogExplanation\";\nimport { Fullbleed } from \"components/Fullbleed\";\nimport {\n ConfiguratorValue,\n SelectedTypeValues,\n Value,\n} from \"configurator/model/model\";\nimport ChevronRight from \"icons/ChevronRight\";\nimport Info from \"icons/Info\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n progress: {\n zIndex: theme.zIndex.tooltip + 1,\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n marginLeft: \"-20px\",\n marginTop: \"-20px\",\n },\n content: {\n position: \"relative\",\n minHeight: \"200px\",\n },\n gridItem: {\n borderBottom: `1px solid ${theme.palette.divider}`,\n borderRight: `1px solid ${theme.palette.divider}`,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n position: \"relative\",\n cursor: \"pointer\",\n background: \"white\",\n },\n gridItemHeader: {\n width: \"100%\",\n textAlign: \"center\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: theme.spacing(2),\n paddingBottom: \"0px\",\n },\n preview: {\n display: \"block\",\n marginBottom: theme.spacing(2),\n height: \"auto\",\n maxHeight: \"350px\",\n maxWidth: \"100%\",\n },\n}));\n\ntype Props = {\n open: boolean;\n onClose: () => void;\n onClick: (value: ConfiguratorValue) => void;\n selectedTypeValues: SelectedTypeValues | null;\n title: string;\n};\n\nexport const ConfigurationDialog: React.FC = ({\n open,\n onClose,\n onClick,\n selectedTypeValues,\n title,\n}) => {\n const isMobile = useMediaQuery(useTheme().breakpoints.down(\"xs\"));\n const classes = useStyles();\n const { t } = useTranslation();\n const [showAlternatives, setShowAlternatives] = useState(true);\n\n return (\n \n {title}\n\n \n {selectedTypeValues && (\n \n {!selectedTypeValues && (\n \n )}\n\n {selectedTypeValues.title && selectedTypeValues.description && (\n \n \n {selectedTypeValues.description}\n \n \n )}\n\n {selectedTypeValues.values.some(\n ({ ring }) => ring.newValues.length > 0\n ) && (\n \n setShowAlternatives(!showAlternatives)}\n >\n {\" \"}\n {showAlternatives\n ? t(\"Ring_Alternative_Toggle_Button_Show\")\n : t(\"Ring_Alternative_Toggle_Button_Hide\")}\n \n \n )}\n\n {!selectedTypeValues.useDropdown && (\n \n {selectedTypeValues.values\n .filter((value) =>\n showAlternatives ? true : value.ring.newValues.length === 0\n )\n .map((value, idx) => {\n const numberOfColumns =\n !isMobile &&\n (selectedTypeValues.values.length === 3 ||\n selectedTypeValues.values.length > 4)\n ? 3\n : 2;\n\n return (\n onClick(value)}\n >\n
\n
\n\n \n\n {selectedTypeValues.selectedValue === value.value ? (\n \n ) : (\n \n )}\n
\n\n \n\n {value.ring.newValues.length > 0 && (\n \n {\" \"}\n \n {t(\"Ring_Alternative\")}\n \n
\n )}\n
\n );\n })}\n \n )}\n\n {selectedTypeValues.useDropdown && (\n <>\n \n {selectedTypeValues.values.map((value) => (\n onClick(value)}\n divider\n >\n \n {selectedTypeValues.selectedValue === value.value ? (\n \n ) : (\n \n )}\n \n \n \n ))}\n \n \n )}\n
\n )}\n
\n \n \n \n
\n );\n};\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Hidden,\n Theme,\n IconButton,\n makeStyles,\n Typography,\n Button,\n Grid,\n ButtonGroup,\n Box,\n useTheme,\n Chip,\n useMediaQuery,\n Fade,\n TextField,\n InputAdornment,\n} from \"@material-ui/core\";\n\nimport { State } from \"reducer\";\nimport { areRingsEqual, Email } from \"models\";\nimport { Page } from \"components/Page\";\n\nimport {\n updateConfigurator,\n ConfiguratorUpdateType,\n sendEmail,\n} from \"configurator/model/actions\";\nimport { ConfiguratorValue, Value } from \"configurator/model/model\";\n\nimport { removeItem, addItem } from \"wishlist/model/actions\";\n\nimport { ringUrl, parseRingFromUrl } from \"../view/urls\";\nimport { ConfigurationType, RingView } from \"configurator/model/model\";\nimport { serverData } from \"serverData\";\nimport { createOrder } from \"utils/createOrder\";\nimport { EmailDialog } from \"components/EmailDialog\";\nimport { Fullbleed } from \"components/Fullbleed\";\n\nimport Edit from \"icons/Edit\";\nimport ExpandMore from \"icons/ExpandMore\";\nimport FavoritePlus from \"icons/FavoritePlus\";\nimport FavoriteSelected from \"icons/FavoriteSelected\";\nimport TouchApp from \"icons/TouchApp\";\n\nimport { ProductDetails } from \"./ProductDetails\";\nimport { ProductInformation } from \"./ProductInformation\";\nimport { AlternativeDialog } from \"./AlternativeDialog\";\nimport { ConfigurationDialog } from \"./ConfigurationDialog\";\nimport { Thumbnail } from \"./Thumbnail\";\nimport { CustomButtons } from \"components/CustomButtons\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n body: {\n [theme.breakpoints.up(\"sm\")]: {\n display: \"flex\",\n margin: \"0 auto\",\n maxWidth: \"1190px\",\n marginRight: \"-16px\",\n },\n [theme.breakpoints.up(\"lg\")]: {\n marginRight: 0,\n },\n // eslint-disable-next-line no-useless-computed-key\n [\"@media print\"]: {\n display: \"block\",\n },\n },\n leftColumn: {\n background: \"white\",\n marginBottom: \"16px\",\n [theme.breakpoints.up(\"sm\")]: {\n width: \"50%\",\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"34%\",\n },\n // eslint-disable-next-line no-useless-computed-key\n [\"@media print\"]: {\n width: \"100%\",\n },\n },\n centerColumn: {\n display: \"none\",\n\n [theme.breakpoints.up(\"md\")]: {\n marginLeft: theme.spacing(2),\n display: \"block\",\n width: \"33%\",\n background: \"white\",\n },\n // eslint-disable-next-line no-useless-computed-key\n [\"@media print\"]: {\n display: \"block\",\n width: \"100%\",\n },\n },\n rightColumn: {\n background: theme.palette.primary.light,\n marginTop: 0,\n [theme.breakpoints.up(\"sm\")]: {\n width: \"50%\",\n marginLeft: theme.spacing(2),\n },\n [theme.breakpoints.up(\"md\")]: {\n width: \"33%\",\n },\n // eslint-disable-next-line no-useless-computed-key\n [\"@media print\"]: {\n display: \"none\",\n },\n },\n}));\n\nexport const ConfiguratorPage = () => {\n const [\n selectedConfigurationType,\n setSelectedConfigurationType,\n ] = React.useState(null);\n const [isEmailModalOpen, setIsEmailModalOpen] = React.useState(\n false\n );\n\n const dispatch = useDispatch();\n const history = useHistory();\n const classes = useStyles({ maxWidth: \"sm\" });\n const { t } = useTranslation();\n const isMobile = useMediaQuery(useTheme().breakpoints.down(\"xs\"));\n\n useEffect(() => {\n dispatch(\n updateConfigurator({\n type: ConfiguratorUpdateType.Initial,\n ...parseRingFromUrl(history.location.search),\n })\n );\n }, [history, dispatch]);\n\n const { isLoading, isUpdating, ringView, wishListItemId } = useSelector(\n selector\n );\n\n useEffect(() => {\n if (ringView) {\n history.replace(ringUrl(\"ring\", ringView));\n }\n }, [ringView, history]);\n\n const onTypeClick = (configurationType: ConfigurationType) => {\n setSelectedConfigurationType(configurationType);\n dispatch(\n updateConfigurator({\n type: ConfiguratorUpdateType.ConfigurationType,\n configurationTypeKey: configurationType.key,\n })\n );\n };\n\n const onConfiguratorValueClick = (\n value: ConfiguratorValue,\n selectedConfigurationType: ConfigurationType\n ) => {\n switch (selectedConfigurationType.key) {\n case \"Purity\":\n //@ts-ignore,\n dispatch(\n //@ts-ignore,\n updateConfigurator({\n type: ConfiguratorUpdateType.Purity,\n purityInCarat: value.value as number,\n })\n );\n setSelectedConfigurationType(null);\n\n break;\n case \"RingSize\":\n //@ts-ignore,\n dispatch(\n //@ts-ignore,\n updateConfigurator({\n type: ConfiguratorUpdateType.RingSize,\n ringSize: value.value as number,\n })\n );\n\n setSelectedConfigurationType(null);\n break;\n default:\n dispatch(\n updateConfigurator({\n type: ConfiguratorUpdateType.Reference,\n reference: value.ring!.reference,\n })\n );\n\n setSelectedConfigurationType(null);\n }\n };\n\n const onBack = () => {\n history.push(\"/search\");\n };\n\n const onSubmit = (email: Email) => dispatch(sendEmail(email));\n\n return (\n \n {ringView && (\n <>\n
\n
\n \n dispatch(\n addItem({\n reference: ringView.reference,\n purity: ringView.purity,\n })\n )\n }\n onRemoveFromWishList={() => {\n wishListItemId && dispatch(removeItem(wishListItemId));\n }}\n isAddedToWishlist={!!wishListItemId}\n />\n\n \n ⁽ⁱ⁾ {t(\"Ring_PriceValidUntil\")} {ringView.price.currentDate}\n \n\n \n \n \n
\n\n
\n \n
\n\n \n
\n setIsEmailModalOpen(true)}\n onBack={onBack}\n />\n
\n\n \n \n \n\n \n
\n \n
\n
\n
\n
\n
\n
\n\n \n\n setIsEmailModalOpen(false)}\n //@ts-ignore\n onSubmit={onSubmit}\n explanation={t(\"EmailDialog_Text\")}\n title={t(\"EmailDialog_Title\")}\n />\n \n )}\n
\n );\n};\n\nfunction selector(rootState: State) {\n const wishListItemId = rootState.configurator.ringView\n ? rootState.wishList.items.find((item) =>\n areRingsEqual(item, rootState.configurator.ringView!)\n )?.id ?? null\n : null;\n\n return {\n ...rootState.configurator,\n wishListItemId,\n };\n}\n\nconst useStyles1 = makeStyles((theme: Theme) => ({\n root: {\n background: theme.palette.primary.light,\n },\n}));\n\nconst Navigation = ({\n ringView,\n children,\n onEmailClick,\n onBack,\n}: {\n ringView: RingView;\n children?: any;\n onEmailClick: () => void;\n onBack: () => void;\n}) => {\n const isMobile = useMediaQuery(useTheme().breakpoints.down(\"xs\"));\n const { t } = useTranslation();\n const classes = useStyles1();\n\n const onOrder = () => {\n if (ringView) {\n createOrder(() => {\n // TODO: Handle error\n }, ringView);\n }\n };\n\n return (\n
\n b.productMenuSort !== null && b.productMenuSort < 0\n )}\n sortingKey=\"productMenuSort\"\n ringView={ringView}\n extraProps={{ fullWidth: true, color: \"primary\", variant: \"contained\" }}\n boxed\n />\n\n {serverData.canOrder && (\n \n \n {t(\"Order\")}\n \n \n )}\n {serverData.placeExternalOrderUrl && (\n \n \n {t(\"PlaceExternalOrder\")}\n \n \n )}\n {serverData.makeAppointmentUrl && (\n \n \n {t(\"MakeAppointment\")}\n \n \n )}\n\n \n \n \n\n {((!isMobile && !serverData.hidePrintButton) ||\n !serverData.hideSendEmailButton) && (\n \n \n {!isMobile && !serverData.hidePrintButton && (\n \n )}\n {!serverData.hideSendEmailButton && (\n \n )}\n \n \n )}\n\n b.productMenuSort !== null && b.productMenuSort > 0\n )}\n sortingKey=\"productMenuSort\"\n ringView={ringView}\n extraProps={{ fullWidth: true, color: \"primary\", variant: \"contained\" }}\n boxed\n />\n {children}\n
\n );\n};\n\nconst useStyles2 = makeStyles(() => ({\n select: {\n cursor: \"pointer\",\n },\n}));\n\nconst Sidebar = ({\n ringView,\n onTypeClick,\n onEmailClick,\n onBack,\n}: {\n ringView: RingView;\n onTypeClick: any;\n onEmailClick: () => void;\n onBack: () => void;\n}) => {\n const lineRef = React.useRef(null);\n const { t } = useTranslation();\n const classes = useStyles2();\n\n const [isIntersecting, setIsIntersecting] = React.useState(false);\n\n React.useEffect(() => {\n let isMounted = true;\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (isMounted) {\n setIsIntersecting(entries[0].isIntersecting);\n }\n },\n { threshold: [0, 1] }\n );\n\n if (lineRef.current) {\n observer.observe(lineRef.current);\n }\n\n return () => {\n isMounted = false;\n };\n }, []);\n\n return (\n \n \n \n
\n \n
\n \n\n \n {t(\"Ring_ScrollToView\")}\n \n
\n
\n
\n \n
\n\n
\n {ringView.configurationTypes.map((configurationType, idx) => (\n
\n
\n \n {configurationType.description}\n \n
\n\n {ringView.configurationTypes.length === idx + 1 && (\n
\n )}\n\n onTypeClick(configurationType)}\n inputProps={{ className: classes.select }}\n InputProps={{\n readOnly: true,\n endAdornment: (\n \n \n \n ),\n }}\n fullWidth\n />\n
\n ))}\n
\n\n \n \n \n
\n );\n};\n\nconst useStyles3 = makeStyles((theme: Theme) => ({\n thumbnail: {\n marginBottom: 0,\n border: `1px solid ${theme.palette.grey[400]}`,\n borderRadius: theme.shape.borderRadius,\n cursor: \"pointer\",\n },\n thumbnailImage: {\n maxWidth: \"100%\",\n borderRadius: theme.shape.borderRadius - 1,\n },\n}));\n\nconst ImageSelector: React.FC<{\n ringView: RingView;\n isAddedToWishlist: boolean;\n onAddToWishList: () => void;\n onRemoveFromWishList: () => void;\n}> = ({\n ringView: {\n imageUrls,\n price,\n ringCollection: { url: ringCollectionUrl },\n },\n isAddedToWishlist,\n onRemoveFromWishList,\n onAddToWishList,\n}) => {\n const [currentUrl, setCurrentUrl] = React.useState(imageUrls[0]);\n const ref = React.useRef(null);\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"xs\"));\n const { t } = useTranslation();\n const classes = useStyles3();\n\n useEffect(() => {\n setCurrentUrl(imageUrls[0]);\n }, [imageUrls]);\n\n const onEdit = () => {\n const y =\n ref.current!.getBoundingClientRect().bottom + window.pageYOffset - 60;\n\n window.scrollTo({ top: y, behavior: \"smooth\" });\n };\n\n const onChange = (url: string) => {\n setCurrentUrl(url);\n if (isMobile) {\n window.scrollTo({ top: 0, behavior: \"smooth\" });\n }\n };\n\n return (\n \n \n \n \n \n }\n >\n {!serverData.hideLogin && (\n \n {!isAddedToWishlist && (\n \n \n \n )}\n\n {isAddedToWishlist && (\n \n \n \n )}\n \n )}\n\n \n \n \n \n \n\n {imageUrls.map((url) => (\n \n
onChange(url)}>\n \"\"\n
\n
\n ))}\n\n \n \n \n \n\n \n \n \n {\" \"}\n {t(\"Ring_Edit\")}\n \n \n \n \n
\n );\n};\n\ntype ConfigurationTypeDialogProps = {\n ringView: RingView;\n selectedConfigurationType: ConfigurationType | null;\n setSelectedConfigurationType: (value: ConfigurationType | null) => void;\n onClick: (\n value: ConfiguratorValue,\n selectedConfigurationType: ConfigurationType\n ) => void;\n};\n\nconst ConfigurationTypeDialog: React.FC = ({\n selectedConfigurationType,\n setSelectedConfigurationType,\n ringView,\n onClick: doClick,\n}: ConfigurationTypeDialogProps) => {\n const [alternative, setAlternative] = React.useState | null>(null);\n\n const selectedTypeValues =\n selectedConfigurationType &&\n ringView.selectedTypeValues[selectedConfigurationType.key]\n ? ringView.selectedTypeValues[selectedConfigurationType.key]\n : null;\n\n const onClick = (value: ConfiguratorValue) => {\n if (!value.ring || value.ring.newValues.length === 0) {\n doClick(value, selectedConfigurationType!);\n } else {\n setAlternative(value);\n }\n };\n\n const onAccept = () => {\n if (alternative) {\n setAlternative(null);\n doClick(alternative, selectedConfigurationType!);\n }\n };\n\n const onReject = () => {\n setAlternative(null);\n };\n\n return (\n <>\n setAlternative(null)}\n alternative={alternative}\n onAccept={onAccept}\n onReject={onReject}\n />\n\n setSelectedConfigurationType(null)}\n selectedTypeValues={selectedTypeValues}\n onClick={onClick}\n title={selectedConfigurationType?.description || \"\"}\n />\n \n );\n};\n","export type Email = {\n toAddresses: string[];\n ccAddresses: string[];\n bccAddress: string | null;\n extraMessage: string;\n};\n\nexport type RingSize = {\n ringSize: number;\n localized: string;\n};\n\nexport interface RingIdentifier {\n reference: string;\n purity?: number | null;\n selectedRingSize?: RingSize | null;\n}\n\nexport function areRingsEqual(left: RingIdentifier, right: RingIdentifier) {\n if (left.reference !== right.reference) return false;\n\n if (!left.purity && !right.purity) return true;\n\n if (left.purity && right.purity) {\n return left.purity === right.purity;\n }\n\n return false;\n}\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React, { useState } from \"react\";\nimport {\n Card,\n CardContent,\n CardHeader,\n Divider,\n Grid,\n IconButton,\n Box,\n Button,\n Typography,\n} from \"@material-ui/core\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router\";\n\nimport { Page } from \"components/Page\";\nimport { Email } from \"models\";\nimport { State } from \"reducer\";\n\nimport FavoriteMin from \"icons/FavoriteMin\";\nimport { Thumbnail } from \"configurator/view/Thumbnail\";\nimport { removeItem, sendEmail } from \"wishlist/model/actions\";\nimport { ringLink } from \"configurator/view/urls\";\nimport { EmailDialog } from \"components/EmailDialog\";\n\nexport const WishListPage: React.FC<{}> = () => {\n const { t } = useTranslation();\n const wishList = useSelector((rootState: State) => rootState.wishList);\n const dispatch = useDispatch();\n const history = useHistory();\n const [isEmailModalOpen, setIsEmailModalOpen] = useState(false);\n\n const onSubmit = (email: Email) => dispatch(sendEmail(email));\n\n const isLoading = wishList.isLoading || wishList.isUpdating;\n\n const Sidebar = () => {\n if (wishList.items.length > 0) {\n return (\n \n \n setIsEmailModalOpen(true)}\n fullWidth\n >\n {t(\"WishList_EmailList\")}\n \n \n \n window.print()}\n fullWidth\n >\n {t(\"WishList_PrintList\")}\n \n \n \n );\n }\n\n return null;\n };\n\n return (\n }>\n {!isLoading && wishList.items.length === 0 && (\n {t(\"WishList_NoResults\")}\n )}\n\n {wishList.items.length > 0 && (\n \n {wishList.items.map((item) => (\n \n \n history.push(ringLink(item))}\n >\n {item.reference}\n \n }\n action={\n dispatch(removeItem(item.id))}>\n \n \n }\n />\n \n \n \n \n \n {item.price.additionalCurrencyPriceInfo && (\n \n {t(\"Ring_Price\")}:{\" \"}\n {item.price.additionalCurrencyPriceInfo.formattedPrice}\n \n )}\n \n {t(\"Ring_Price\")}:{\" \"}\n {item.price.standardCurrencyPriceInfo.formattedPrice}\n \n \n {t(\"Ring_PriceValidDate\")} {item.price.currentDate}\n \n \n \n \n ))}\n \n )}\n\n setIsEmailModalOpen(false)}\n //@ts-ignore\n onSubmit={onSubmit}\n explanation={t(\"EmailDialog_Text\")}\n title={t(\"EmailDialog_Title\")}\n />\n \n );\n};\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React from \"react\";\nimport { SvgIcon, SvgIconProps } from \"@material-ui/core\";\n\nexport default (props: SvgIconProps) => (\n \n \n \n);\n","import React, { useState } from \"react\";\nimport {\n InputAdornment,\n IconButton,\n TextField,\n TextFieldProps,\n} from \"@material-ui/core\";\nimport { FieldInputProps, useField } from \"formik\";\n\nimport VisibilityOff from \"icons/VisibilityOff\";\nimport VisibilityOn from \"icons/VisibilityOn\";\n\ntype Props = Omit<\n TextFieldProps,\n keyof FieldInputProps | \"type\" | \"error\" | \"InputProps\"\n> & {\n name: string;\n showStrength?: boolean;\n};\n\nconst PasswordInput: React.FC = ({ name, helperText, ...props }) => {\n const [field, meta] = useField(name);\n const [showPassword, setShowPassword] = useState(false);\n\n return (\n \n setShowPassword(!showPassword)}>\n {showPassword ? : }\n \n \n ),\n }}\n />\n );\n};\n\nexport default PasswordInput;\n","import React from \"react\";\nimport { Form, Formik, FormikHelpers } from \"formik\";\nimport * as Yup from \"yup\";\nimport { TFunction } from \"i18next\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Box,\n Button,\n Container,\n Grid,\n Link,\n Typography,\n} from \"@material-ui/core\";\nimport { RouteComponentProps } from \"react-router\";\n\nimport { Page } from \"components/Page\";\nimport { TextFieldInput } from \"components/TextFieldInput\";\nimport PasswordInput from \"components/PasswordInput\";\nimport { loginAndRedirect } from \"account/model/actions\";\nimport { useDispatch } from \"react-redux\";\n\ntype FormValues = {\n username: string;\n password: string;\n};\n\nconst initialValues: FormValues = {\n username: \"\",\n password: \"\",\n};\n\nconst createValidationSchema = (t: TFunction) =>\n Yup.object({\n username: Yup.string().required(t(\"Account_Login_Username_Required\")),\n password: Yup.string().required(t(\"Account_Login_Password_Required\")),\n });\n\nexport const LoginPage = ({ location, history }: RouteComponentProps) => {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const returnUrl =\n new URLSearchParams(location.search).get(\"returnUrl\") || \"/#/search\";\n\n const onSubmit = async (\n values: FormValues,\n helpers: FormikHelpers\n ) => {\n (dispatch(\n loginAndRedirect(values.username, values.password, returnUrl)\n ) as any).catch(() =>\n helpers.setFieldError(\"username\", \"Ongeldige combinatie\")\n );\n };\n\n const validationSchema = createValidationSchema(t);\n\n // TODO: Clean up the exists\n\n return (\n \n {({ isSubmitting }) => (\n \n \n
\n \n {!i18n.exists(\"Account_Login_Title\") && (\n \n \n {t(\"Account_LocalAccount\")}\n \n \n )}\n {i18n.exists(\"Account_Login_Title\") && (\n <>\n \n \n {t(\"Account_Login_Title\")}\n \n \n \n \n {t(\"Account_LocalAccount\")}\n \n \n \n )}\n \n \n \n \n \n \n \n \n {t(\"Account_LogIn\")}\n \n \n \n\n \n {!i18n.exists(\"Account_Login_Register_Title\") && (\n \n \n history.push(`/account/register?returnUrl=${returnUrl}`)\n }\n >\n {t(\"Account_Register\")}\n {\" \"}\n {t(\"Account_IfNoAccount\")}\n \n )}\n {i18n.exists(\"Account_Login_Register_Title\") && (\n \n \n \n {t(\"Account_Login_Register_Title\")}\n \n \n \n \n {t(\"Account_Login_Register\")}{\" \"}\n \n history.push(\n `/account/register?returnUrl=${returnUrl}`\n )\n }\n >\n {t(\"Account_Login_Register_Link\")}\n \n \n \n \n )}\n \n
\n
\n
\n )}\n \n );\n};\n","import React from \"react\";\nimport { Form, Formik, FormikHelpers } from \"formik\";\nimport * as Yup from \"yup\";\nimport { TFunction } from \"i18next\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Box,\n Button,\n Container,\n Grid,\n Link,\n Typography,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { RouteComponentProps } from \"react-router\";\n\nimport { Page } from \"components/Page\";\nimport { TextFieldInput } from \"components/TextFieldInput\";\nimport PasswordInput from \"components/PasswordInput\";\n\ntype FormValues = {\n emailaddress: string;\n password: string;\n};\n\nconst initialValues: FormValues = {\n emailaddress: \"\",\n password: \"\",\n};\n\nconst createValidationSchema = (t: TFunction) =>\n Yup.object({\n emailaddress: Yup.string()\n .required(t(\"Account_Register_EmailId_required\"))\n .email(t(\"Account_Register_InvalidEmailId\")),\n password: Yup.string()\n .required(t(\"Account_Register_Password_required\"))\n .min(8, t(\"Account_Register_Tooshort\")),\n });\n\nexport const RegisterPage = ({ history }: RouteComponentProps) => {\n const { t } = useTranslation();\n\n const onSubmit = async (\n values: FormValues,\n helpers: FormikHelpers\n ) => {\n try {\n await axios.post(\"/api/account/register\", values);\n\n history.push(\"/account/login\");\n } catch {\n // TODO\n }\n };\n\n const validationSchema = createValidationSchema(t);\n\n return (\n \n {({ isSubmitting }) => (\n \n \n
\n \n \n {t(\"Account_Register\")}\n \n \n \n \n \n \n \n \n \n {t(\"Account_Register\")}\n \n \n \n\n \n \n {t(\"Account_Register_AlreadyRegistered\")}{\" \"}\n history.push(\"/account/login\")}>\n {t(\"Account_Register_GoToLogin\")}\n \n \n \n
\n
\n
\n )}\n \n );\n};\n","import React from \"react\";\nimport { Form, Formik, FormikHelpers } from \"formik\";\nimport * as Yup from \"yup\";\nimport { TFunction } from \"i18next\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button, Container, Grid, Typography } from \"@material-ui/core\";\nimport { RouteComponentProps } from \"react-router\";\nimport axios from \"axios\";\n\nimport { Page } from \"components/Page\";\nimport PasswordInput from \"components/PasswordInput\";\n\ntype FormValues = {\n oldpassword: string;\n newpassword: string;\n};\n\nconst initialValues: FormValues = {\n oldpassword: \"\",\n newpassword: \"\",\n};\n\nconst createValidationSchema = (t: TFunction) =>\n Yup.object({\n oldpassword: Yup.string().required(\n t(\"Account_ChangePassword_OldPassword_required\")\n ),\n newpassword: Yup.string()\n .required(t(\"Account_ChangePassword_NewPassword_required\"))\n .min(8, t(\"Account_ChangePassword_NewPassword_MinimumLength\")),\n });\n\nexport const ChangePasswordPage = ({ history }: RouteComponentProps) => {\n const { t } = useTranslation();\n\n const onSubmit = async (\n values: FormValues,\n helpers: FormikHelpers\n ) => {\n try {\n await axios.post(\"/api/account/changepassword\", values);\n\n history.push(\"/account/profile\");\n } catch {}\n };\n\n const validationSchema = createValidationSchema(t);\n\n const onBack = () => history.push(\"/account/profile\");\n\n return (\n \n {({ isSubmitting }) => (\n \n \n
\n \n \n \n {t(\"Account_ChangePassword\")}\n \n \n \n \n \n \n \n \n \n \n {t(\"Account_ChangePassword\")}\n \n \n \n
\n
\n
\n )}\n \n );\n};\n","import React from \"react\";\nimport { Button, Grid, Typography } from \"@material-ui/core\";\nimport { RouteComponentProps } from \"react-router\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Page } from \"components/Page\";\nimport { State } from \"reducer\";\nimport { useSelector } from \"react-redux\";\n\nexport const ProfilePage = ({ history }: RouteComponentProps) => {\n const { t } = useTranslation();\n const username = useSelector((s: State) => s.account.username);\n\n return (\n \n \n \n \n {t(\"Profile_Welcome\")} {username},\n \n \n \n history.push(\"/account/change-password\")}\n >\n {t(\"Profile_ChangePasswordButtonLabel\")}\n \n \n \n \n );\n};\n","import React from \"react\";\nimport { Route, RouteComponentProps, Switch } from \"react-router\";\n\nimport { LoginPage } from \"./LoginPage\";\nimport { RegisterPage } from \"./RegisterPage\";\nimport { ChangePasswordPage } from \"./ChangePasswordPage\";\nimport { ProfilePage } from \"./ProfilePage\";\n\nconst PATH = {\n LOGIN: \"login\",\n REGISTER: \"register\",\n CHANGE_PASSWORD: \"change-password\",\n PROFILE: \"profile\",\n};\n\nexport default ({ match }: RouteComponentProps) => (\n \n \n \n \n \n \n);\n","/* eslint-disable no-undef */\n\nimport axios from \"axios\";\n// This is made to interact with the currency dropdown outside of the react application.\n// Would be nicer to have the whole site in react...\n\nexport function updateMakeAppointmentUrls(query) {\n $('a[data-make-appointment=\"true\"]').each(function () {\n var href = $(this).attr(\"href\");\n if (href) {\n const url = new URL(href);\n url.search = query;\n $(this).attr(\"href\", url.href);\n }\n });\n}\n\n$(window).load(function () {\n $(function () {\n $(\"#currency-dropdown\").on(\"click\", \"li\", function (evt) {\n evt.preventDefault();\n axios\n .post(\n \"/update-currency?currency=\" + evt.target.getAttribute(\"data-value\")\n )\n .then(() => window.location.reload());\n });\n\n $(\"#language-dropdown\").on(\"click\", \"li\", function (evt) {\n evt.preventDefault();\n axios\n .post(\n \"/update-language?language=\" + evt.target.getAttribute(\"data-value\")\n )\n .then(() => window.location.reload());\n });\n\n $(\"#country-dropdown\").on(\"click\", \"li\", function (evt) {\n evt.preventDefault();\n axios\n .post(\n \"/update-country?country=\" + evt.target.getAttribute(\"data-value\")\n )\n .then(() => window.location.reload());\n });\n });\n});\n","import React, { Suspense, useEffect } from \"react\";\nimport { Provider } from \"react-redux\";\nimport i18n from \"i18next\";\nimport XHR from \"i18next-xhr-backend\";\nimport { initReactI18next } from \"react-i18next\";\nimport {\n HashRouter,\n Switch,\n Route,\n Redirect,\n useHistory,\n} from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { CssBaseline, ThemeProvider } from \"@material-ui/core\";\n\nimport \"./interceptors\";\n\nimport { SearchPage } from \"search/view/SearchPage\";\nimport { ConfiguratorPage } from \"configurator/view/ConfiguratorPage\";\nimport { WishListPage } from \"wishlist/view/WishListPage\";\nimport AccountRoutes from \"account/view/Routes\";\n\nimport store from \"./store\";\nimport { serverData } from \"./serverData\";\nimport { loadWishList } from \"wishlist/model/actions\";\n\nimport \"./header-interop\";\nimport { updateMakeAppointmentUrls } from \"header-interop\";\nimport skin from \"skin\";\n\ni18n\n .use(XHR)\n .use(initReactI18next) // passes i18n down to react-i18next\n .init({\n lng: serverData.language.code,\n interpolation: {\n escapeValue: false,\n },\n backend: { loadPath: \"/translations/{{lng}}\" },\n });\n\nconst Router: React.FC = () => {\n const dispatch = useDispatch();\n const history = useHistory();\n\n useEffect(() => {\n dispatch(loadWishList());\n }, [dispatch]);\n\n useEffect(() => {\n updateMakeAppointmentUrls(history.location.search);\n history.listen((listener) => updateMakeAppointmentUrls(listener.search));\n }, [history]);\n\n return (\n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n );\n};\n\nconst App: React.FC = () => (\n \n \n \n \n \n \n \n);\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\n\n//@ts-ignore\nimport smoothscroll from \"smoothscroll-polyfill\";\n\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nsmoothscroll.polyfill();\n\nReactDOM.render(, document.getElementById(\"root\"));\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __REDUX_DEVTOOLS_EXTENSION__: any;\n }\n }\n}\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import axios from \"axios\";\nimport { State } from \"reducer\";\nimport { ThunkAction } from \"redux-thunk\";\nimport {\n emptyWishListSuccess,\n EmptyWishListSuccessAction,\n} from \"wishlist/model/actions\";\n\nexport const ACTION = {\n LOGIN: \"LOGIN\",\n LOGOUT: \"LOGOUT\",\n} as const;\n\nexport type Action = LoginAction | LogoutAction;\n\ntype LoginAction = {\n type: typeof ACTION.LOGIN;\n username: string;\n};\n\ntype LogoutAction = {\n type: typeof ACTION.LOGOUT;\n};\n\nexport const login = (username: string) => ({\n type: ACTION.LOGIN,\n username,\n});\n\nexport const logout = () => ({\n type: ACTION.LOGOUT,\n});\n\nexport function loginAndRedirect(\n username: string,\n password: string,\n redirectUrl: string\n): ThunkAction, State, {}, Action> {\n return async (dispatch) => {\n await axios.post(\"/api/account/login\", { username, password });\n dispatch(login(username));\n window.location.href = redirectUrl;\n window.location.reload();\n };\n}\n\nexport function logoutAndRedirect(\n redirectUrl: string\n): ThunkAction, State, {}, Action | EmptyWishListSuccessAction> {\n return async (dispatch) => {\n await axios.post(\"/api/account/logout\");\n dispatch(logout());\n dispatch(emptyWishListSuccess());\n window.location.href = redirectUrl;\n };\n}\n"],"sourceRoot":""}