{"version":3,"sources":["middlewares/apiMiddleware.js","config.js","globals.js","reducers/main.js","reducers/offices.js","reducers/services.js","reducers/intervals.js","reducers/reservation.js","reducers/confirmEmail.js","reducers/deleteReservation.js","reducers/officeStats.js","reducers/stats.js","store/configureReducers.js","components/PageContainer/styles/StyledPageContainer.js","components/PageContainer/PageContainer.js","pages/MainLayout.js","components/Map/index.js","components/Stats/actions.js","common/InputSelect/InputSelect.js","components/Stats/TableHeader.js","common/LoadingSpinner/styles/StyledLoadingSpinner.js","common/LoadingSpinner/LoadingSpinner.js","components/Stats/TableRows.js","components/Stats/styles/StyledStatsTable.js","components/Stats/styles/StyledStats.js","components/Stats/StatsView.js","components/Stats/StatsContainer.js","components/Header/styles/StyledHeader.js","components/Header/Header.js","common/BtnSideBar/styles/StyledBtnSideBar.js","common/BtnSideBar/BtnSideBar.js","common/SeparatorSideBar/styles/StyledSeparatorSideBar.js","common/SeparatorSideBar/SeparatorSideBar.js","components/SideBar/styles/StyledSideBar.js","components/SideBar/SideBar.js","common/TitleTop/styles/StyledTitleTop.js","common/TitleTop/TitleTop.js","common/TextWrapper/styles/StyledTextWrapper.js","common/TextWrapper/TextWrapper.js","common/ErrorScreen/styles/StyledErrorScreen.js","common/ErrorScreen/ErrorScreen.js","common/DataWrapper/styles/StyledBlockWrapper.js","common/DataWrapper/DataWrapper.js","common/BtnOffice/styles/StyledBtnOffice.js","common/BtnOffice/BtnOffice.js","components/OfficesContent/styles/StyledOfficesContent.js","components/OfficesContent/OfficesContent.js","components/Main/actions.js","components/OfficesContent/actions.js","common/Timezones/index.js","components/IntervalsContent/actions.js","pages/Offices.js","common/BtnBack/styles/StyledBtnBack.js","common/BtnBack/BtnBack.js","common/LabelStandart/styles/StyledLabelStandart.js","common/LabelStandart/LabelStandart.js","common/InfoWrapper/styles/StyledInfoWrapper.js","common/InfoWrapper/InfoWrapper.js","common/InfoPanel/styles/StyledInfoPanel.js","common/InfoPanel/InfoPanel.js","common/RowHorizontal/styles/StyledRowHorizontal.js","common/RowHorizontal/RowHorizontal.js","common/CategoryDropDown/styles/StyledCategoryDropDown.js","common/CategoryDropDown/CategoryDropDown.js","common/BtnService/styles/StyledBtnService.js","common/BtnService/BtnService.js","components/ServicesContent/styles/StyledServicesContent.js","components/ServicesContent/ServicesContent.js","components/ServicesContent/actions.js","pages/Services.js","common/LabelMainColor/styles/StyledLabelMainColor.js","common/LabelMainColor/styles/StyledLabelMainColorLower.js","common/LabelMainColor/LabelMainColor.js","components/IntervalsContent/styles/StyledTableTimes.js","components/IntervalsContent/TimesHeader.js","components/IntervalsContent/styles/StyledIntervals.js","components/IntervalsContent/BtnTimes.js","components/IntervalsContent/TableTimes.js","components/IntervalsContent/styles/StyledCalendar.js","components/IntervalsContent/styles/StyledLegend.js","components/IntervalsContent/Legend.js","components/IntervalsContent/Calendar.js","components/IntervalsContent/styles/StyledIntervalsContent.js","components/IntervalsContent/IntervalsContent.js","components/OfficeStats/actions.js","common/Switch/styles/StyledSwitch.js","common/Switch/Switch.js","components/OfficeStats/styles/StyledStatsSwitcher.js","components/OfficeStats/StatsSwitcher.js","common/Chart/styles/StyledChart.js","common/Chart/Chart.js","common/Chart/utils.js","components/OfficeStats/styles/StyledCharts.js","components/OfficeStats/Charts.js","components/OfficeStats/styles/StyledOfficeStats.js","components/OfficeStats/OfficeStats.js","pages/Intervals.js","common/ControlledInput/styles/StyledControlledInput.js","common/ControlledInput/ControlledInput.js","common/CheckBox/styles/StyledCheckBox.js","common/CheckBox/CheckBox.js","common/Captcha/styles/StyledCaptcha.js","common/Captcha/Captcha.js","common/BtnConfirm/styles/StyledBtnConfirm.js","common/BtnConfirm/BtnConfirm.js","common/ControlledTextArea/styles/StyledControlledTextArea.js","common/ControlledTextArea/ControlledTextArea.js","components/ReservationContent/ConfirmForm.js","components/ReservationContent/ConfirmInfo.js","components/ReservationContent/styles/StyledReservationContent.js","components/ReservationContent/ReservationContent.js","components/ReservationSuccess/styles/StyledReservationSuccess.js","components/ReservationSuccess/ReservationSuccess.js","components/ReservationError/styles/StyledReservationError.js","components/ReservationError/ReservationError.js","components/ReservationContent/actions.js","components/ReservationContent/utils.js","pages/Reservation.js","components/NotFoundContent/styles/StyledNotFoundContent.js","components/NotFoundContent/NotFoundContent.js","pages/NotFound.js","components/EmailConfirmContent/actions.js","components/EmailConfirmContent/styles/StyledEmailConfirmContent.js","components/EmailConfirmContent/EmailConfirmContent.js","pages/EmailConfirm.js","components/DeleteReservationContent/actions.js","components/DeleteReservationContent/styles/StyledDeleteReservationContent.js","components/DeleteReservationContent/DeleteReservationContent.js","pages/DeleteReservation.js","components/StatsOffice/styles/StyledStatsOffice.js","components/StatsOffice/StatsOfficeView.js","components/StatsOffice/StatsOffice.js","pages/StatsOfficePage.js","routes.js","App.js","store/configureStore.js","registerServiceWorker.js","index.js"],"names":["CALL_API","apiMiddleware","store","next","action","callAPI","method","url","data","actions","addData","Error","Array","isArray","length","some","request","success","failure","axios","headers","then","response","catch","error","_objectSpread","API_URL","APP_TITLE","COLOR_1","COLOR_3","MAIN_CONTENT_DATA_WRAPPER_SETTINGS","HEIGHT_HEADER","BACKGROUND_HEADER","BACKGROUND_HEADER_LOGO","BORDER_HEADER_LOGO","BACKGROUND_HEADER_MOBILE","WIDTH_SIDE_BAR","BACKGROUND_SIDE_BAR","COLOR_BTN_SIDE_BAR","BACKGROUND_ERROR","COLOR_ERROR","BACKGROUND_BTN_BACK","BACKGROUND_BTN_BACK_HOVER","COLOR_MAIN_LABEL","BACKGROUND_ROW_HORIZONTAL","COLOR_NUMBER_TITLE_TOP","BACKGROUND_BTN","BACKGROUND_BTN_HOVER","COLOR_BTN_HOVER","BACKGROUND_BTN_CONFIRM","BACKGROUND_BTN_CONFIRM_HOVER","BACKGROUND_TABLE_TIMES","BACKGROUND_TABLE_TIMES_HOVER","COLOR_TABLE_TIMES_HOVER","COLOR_TABLE_TIMES_FULL","BACKGROUND_CALENDAR","BACKGROUND_CALENDAR_SELECTED","COLOR_CALENDAR_FREE","COLOR_CALENDAR_OCCUPIED","COLOR_CALENDAR_BLOCKED","COLOR_CALENDAR_HOLIDAY","BORDER_COLOR_CONTROLLED_INPUT_NORMAL","BORDER_COLOR_CONTROLLED_INPUT_VALID","BORDER_COLOR_CONTROLLED_INPUT_ERROR","COLOR_CONTROLLED_INPUT_NORMAL","COLOR_ICON_INFO_WRAPPER","BACKGROUND_RESERVATION_ERROR_INFO","COLOR_RESERVATION_ERROR_ICON","COLOR_EMAIL_CONFIRM_ICON_WARNING","COLOR_DELETE_RESERVATION_ICON_WARNING","COLOR_GRAPH_NO_DATA","SWITCH_BACKGROUND_COLOR","CONTROLLED_INPUT_NORMAL","CONTROLLED_INPUT_VALID","CONTROLLED_INPUT_INVALID","MAIN_GET_COMMON_DATA","PENDING","FULFILLED","REJECTED","OFFICES_GET_OFFICES","SERVICES_SINGLE_OFFICE_INIT","SERVICES_GET_OFFICE_INFO","SERVICES_GET_OFFICE_STATS","SERVICES_GET_SERVICES","INTERVALS_GET_DAYS","INTERVALS_GET_INTERVALS","INTERVALS_GET_OFFICE_INFO","INTERVALS_GET_OFFICE_STATS","INTERVALS_SELECT_DAY","INTERVALS_RESET_DATA","RESERVATION_POST_RESERVE_INTERVAL","RESERVATION_PUT_CONFIRM","RESERVATION_DELETE_FREE_INTERVAL","RESERVATION_CLICK_CONFIRM_BTN","RESERVATION_CHANGE_INPUT","RESERVATION_TIME_EXPIRATION","RESERVATION_GET_OFFICE_INFO","CONFIRM_MAIL_CONFIRM","DELETE_RESERVATION_DELETE","OFFICE_STATS_YEAR","OFFICE_STATS_MONTH","OFFICE_STATS_RESET","OFFICE_STATS_SWITCH","OFFICE_STATS_SELECT_DAY","OFFICE_STATS_CHANGE_DATE","STATS__MODAL_STATS__TOGGLE","STATS__MODAL_STATS__SELECT_OFFICE","STATS__MODAL_STATS__GET_OFFICES","STATS__MODAL_STATS__GET_STATS","defaultAgreement","initialState","isLoading","status","previousSteps","one","two","three","officesCommon","content","title","servicesCommon","intervalsCommon","showStats","reservationCommon","name","show","isRequired","phone","agreement","text","document","note","logo","fileName","errorMessage","reducer","state","arguments","undefined","type","payload","concat","step_one_selected","step_two_selected","step_three_selected","step_one","step_one_title","step_two","step_two_title","step_three","step_three_title","show_stats","step_four","step_four_title","form_name","form_name_required","form_phone","form_phone_required","form_checkbox","step_four_conditions","hasOwnProperty","file_name","form_note","form_note_required","servicesData","groups","officeData","statsData","serviceState","selectedDateId","selectedDateDay","daysData","intervalsData","serviceData","dayId","day","reserveData","errorType","confirmData","deleteReservationData","reservationState","phase","inputs","email","agreementValid","captcha","captchaValid","nameValid","emailValid","phoneValid","noteValid","storeName","storeAddress","serviceName","reservedTime","emailConfirmation","pin","blacklist","timeLimit","nonDuplicatedEmail","errorConfirm","message","phone_number","time","non_duplicated_email","other","newPhase","full","successConfirm","store_name","store_address","service_name","email_confirmation","newCaptcha","inputName","value","completed","deleted","emailConfirmed","statsChecked","dateChecked","year","month","selected","statsYear","catchedData","stats","maxValue","statsMonth","parseGraphData","inData","newChartData","dayIndex","tmpCliSum","tmpAvgTime","newData","maxCliSum","maxAvgTime","i","clients_sum","avg_time","labels","objKeys","Object","keys","j","push","hour","modalData","isOpen","defaultOffice","selectedOffice","officesDDData","office","officesDD","id","pub_server_name","toString","combineReducers","main","offices","services","intervals","reservation","confirmEmail","deleteReservation","officeStats","StyledPageContainer","styled","div","_templateObject","_taggedTemplateLiteral","PageContainer","Component","render","_jsx","children","this","props","MainLayout","defaultIcon","L","icon","iconUrl","iconSize","iconAnchor","shadowUrl","shadowSize","Marker","prototype","options","MapComponent","_ref","center","lat","lng","height","zoom","isSingleOffice","hasOffices","console","log","_jsxs","Map","lon","style","width","TileLayer","attribution","map","position","Popup","server_address","place_additional_info","toggleStatsModal","selectOffice","getOfficesDDRequest","getOfficesDDSuccess","getOfficesDDFailure","getOfficesDD","getStatsRequest","getStatsSuccess","getStatsFailure","getStats","officeId","InputSelect","constructor","customStyles","control","base","isFocused","isSelected","borderWidth","borderStyle","borderColor","borderRadius","backgroundColor","boxShadow","menu","option","_ref2","color","Select","styles","TableHeader","className","StyledLoadingSpinner","spinnerFat","spinnerSize","textSize","LoadingSpinner","role","defaultProps","TableRows","item","index","service_id","web_order_name","open_desks","served_clients","Math","round","waiting_max_length","waiting_clients","waiting_avg_length","last_number","StyledStatsTable","StyledStats","StatsView","componentDidMount","handleSelectOffice","onChange","getOptionValue","getOptionLabel","placeholder","noOptionsMessage","loadingMessage","StatsContainer","super","handleToggle","bind","Modal","showCloseIcon","open","onClose","animationDuration","modal","background","padding","top","maxWidth","marginLeft","marginRight","marginTop","marginBottom","overlay","display","connect","dispatch","bindActionCreators","StyledHeader","Header","logoName","haveLogo","logoSrc","Link","to","src","alt","onClick","StyledBtnSideBar","isActive","enableClick","BtnSideBar","handleOnClickBtn","e","preventDefault","linkTo","StyledSeparatorSideBar","SeparatorSideBar","StyledSideBar","SideBar","activePage","serviceId","intervalId","titleOne","titleTwo","titleThree","titleFour","StyledTitleTop","h1","TitleTop","number","StyledTextWrapper","TextWrapper","StyledErrorScreen","ErrorScreen","StyledBlockWrapper","setMinHeight","minHeight","DataWrapper","isLoadingText","textSizeLoading","textSizeError","StyledBtnOffice","BtnOffice","handleOnMouseMoveBtnOffice","onMouseMove","StyledOfficesContent","OfficesContent","renderOffices","renderOffice","officesData","ret","dangerouslySetInnerHTML","__html","getCommonDataRequest","refresh","getCommonDataSuccess","getCommonDataFailure","getCommonData","getOfficesRequest","getOfficesSuccess","getOfficesFailure","getOffices","parseDateTimeToSpecificTimezone","date","timezone","serverDate","momentTZ","tz","serverOffset","utcOffset","localTimezone","guess","serverCloneDate","clone","recountedOffset","format","add","getDayRequest","getDaySuccess","getDatesInSpecificTimezone","days","getDayFailure","getIntervalsRequest","getIntervalsSuccess","getIntervalsFailure","getOfficeInfoServiceRequest","getOfficeInfoServiceSuccess","getOfficeInfoServiceFailure","getServiceInfoServiceRequest","getServiceInfoServiceSuccess","getServiceInfoServiceFailure","serviceSelectDay","intervalsResetData","getDays","getIntervals","getOfficeInfo","getServiceInfo","dates","parameters","parameter","parameterDate","Date","OfficesPage","centerOfficePos","centerOfficeId","inrange","openStats","params","setState","min","max","isNaN","router","sideBarTitles","StyledBtnBack","BtnBack","StyledLabelStandart","LabelStandart","StyledInfoWrapper","InfoWrapper","StyledInfoPanel","InfoPanel","locationData","timeData","text1","text2","place","placeAdditionalInfo","StyledRowHorizontal","RowHorizontal","StyledCategoryDropDown","CategoryDropDown","onClickCategory","handleKeyDown","keyCode","tabIndex","onKeyDown","StyledBtnService","servicesGroups","BtnService","StyledServicesContent","ServicesContent","renderCategories","renderServicesForCategory","renderServicesNoCategories","renderService","row","btnBackTitle","getServicesRequest","getServicesSuccess","getServicesFailure","getOfficeInfoRequest","getOfficeInfoSuccess","getOfficeInfoFailure","getServices","singleOfficePending","singleOfficeFulfiled","singleOfficeFailure","ServicesPage","singleOfficeInit","get","StyledLabelMainColor","h2","StyledLabelMainColorLower","h3","LabelMainColor","tpye","StyledTableTimes","TimesHeader","header1","header2","StyledIntervals","li","getTimeWithZero","BtnTimes","onClickRow","time_from","getHours","getMinutes","count","max_count","TableTimes","showTimes","from","edge","ceil","times1","times2","StyledCalendar","StyledLegend","Legend","COMMON_DATE_FORMAT","DAY_TYPES","Calendar","selectedDay","handleDayClick","modifiers","reduce","result","dateToDayMap","moment","n","ReactDOM","findDOMNode","scroll","offsetTop","clientHeight","handleOnClickDay","dayObject","setTimeout","window","scrollTo","left","behavior","selectedDate","handleMonthChange","firstDay","lastDay","disabledRange","before","toDate","after","DayPicker","localeUtils","LocaleUtils","locale","disabledDays","onDayClick","onMonthChange","selectedDays","fromMonth","toMonth","StyledIntervalsContent","IntervalsContent","onClickTableRow","showTable","getDateToDayMap","getOfficeStatsYearRequest","getOfficeStatsYearSuccess","getOfficeStatsYearFailure","getOfficeStatsMonthRequest","getOfficeStatsMonthSuccess","getOfficeStatsMonthFailure","getOfficeStatsYear","getOfficeStatsMonth","officeStatsChangeDate","switchOfficeStats","officeStatsReset","officeSelectDay","StyledSwitch","Switch","isChecked","onChangeHandle","checked","htmlFor","StyledStatsSwitcher","StatsSwitcher","showDateSwitch","statsSwitch","dateSwitch","statsCheck","StyledChart","Chart","yMax","formatter","Bar","datasets","hoverBackgroundColor","hoverBorderColor","datalabels","align","anchor","layout","right","bottom","tooltips","enabled","legend","responsive","maintainAspectRatio","scales","yAxes","ticks","xAxes","maxBarThickness","drawTicks","gridLines","drawOnChartArea","formatterTimes","context","floor","sec","parseTime","StyledCharts","showWeekDay","Charts","statsType","isRenderedChart","graphData","slice","StyledOfficeStats","OfficeStats","switchStats","switchDate","dateFormat","getMonth","getFullYear","newDataChecked","IntervalsPage","componentDidUpdate","prevProps","tmpDay","tmpDayNum","getDay","newMonth","newYear","mainData","StyledControlledInput","ControlledInput","createPlaceholder","handleChange","inputState","placeHolder","required","form","target","StyledCheckBox","CheckBox","StyledCaptcha","Captcha","handleOnChangeCaptcha","validation","ReCAPTCHA","ref","sitekey","StyledBtnConfirm","button","p","disabled","BtnConfirm","handleOnCLick","isEnabled","StyledControlledTextArea","ControlledTextArea","Textarea","maxRows","ConfirmForm","handleTextAreaChange","handleChangeInput","handleOnClickConfirm","fileSrc","autoComplete","href","ConfirmInfo","StyledReservationContent","ReservationContent","clickBtnConfirm","handleTimerExpiration","StyledReservationSuccess","ReservationSuccess","StyledReservationError","ReservationError","reserveIntervalRequest","reserveIntervalSuccess","reserveIntervalFailure","freeIntervalRequest","freeIntervalSuccess","freeIntervalFailure","confirmReservationRequest","confirmReservationSuccess","confirmReservationFailure","reserveInterval","store_id","interval_id","freeInterval","orderId","uuid","order_id","confirmReservation","newNameValid","newEmailValid","newPhoneValid","newNoteValid","newAgreementValid","changeInput","timerExpired","regValidateEmail","regValidatePhone","ReservationPage","handleOnClickBackToService","componentWillUnmount","newAgreement","test","replace","StyledNotFoundContent","NotFoundContent","NotFoundPage","confirmEmailRequest","confirmEmailSuccess","confirmEmailFailure","email_confirmed","emailHash","StyledEmailConfirmContent","EmailConfirmContent","confirmEmailData","EmailConfirm","deleteReservationRequest","deleteReservationSuccess","deleteReservationFailure","reservationHash","StyledDeleteReservationContent","DeleteReservationContent","hasBeenSent","confirmDeleteReservation","DeleteReservation","StyledStatsOffice","StatsOfficeView","StatsOffice","Route","path","component","IndexRoute","StatsOfficePage","create","devToolsExtension","createStore","applyMiddleware","thunkMiddleware","createStoreWithMiddleware","rootReducer","configureStore","App","Provider","Router","history","browserHistory","applyRouterMiddleware","useScroll","routes","Boolean","location","hostname","match","navigator","serviceWorker","ready","registration","unregister","getElementById"],"mappings":"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","file":"static/js/main.845022c2.chunk.js","sourcesContent":["import axios from 'axios';\n\n// Action key that carries API call info interpreted by this Redux middleware.\nexport const CALL_API = 'Call API v2';\nexport const ERROR = 'Call API Error';\n\n// A Redux middleware that interprets actions with CALL_API info specified.\n// Performs the call and promises when such actions are dispatched.\nconst apiMiddleware = store => next => action => {\n const callAPI = action[CALL_API];\n if (typeof callAPI === 'undefined') {\n return next(action);\n }\n\n const { method = 'get', url, data, actions, addData } = callAPI;\n\n if (typeof url !== 'string') {\n throw new Error('Specify a string URL.');\n }\n if (!Array.isArray(actions) || actions.length !== 3) {\n throw new Error('Expected an array of three action types.');\n }\n if (actions.some(actions => typeof actions !== 'function')) {\n throw new Error('Expected action types to be functions (action creators).');\n }\n\n const [request, success, failure] = actions;\n\n next(request());\n\n const headers = {};\n \n /*\n const token = store.getState().auth.token;\n if (token) {\n headers.Authorization = `Bearer ${token}`;\n }\n */\n\n return axios({ method, url, data, headers })\n .then(response => next(success(response.data, addData)))\n .catch(error =>\n next({\n ...failure(error),\n }),\n );\n};\n\nexport default apiMiddleware;","\n// - Basic settings - //\n\n // server\n export const API_URL = 'https://api.plzen.qtcloud.cz';\n\n // Google maps api key\n export const GOOGLE_API_KEY = 'AIzaSyCxCABAWscYGeJtXMv7tkAbsVVeqSc_Q_Y';\n\n // google recapcha v2\n export const CAPRCHA_CLIENT_KEY = '6LchWxYUAAAAAHS5JBSMFlSP3Fu-uHNr47WYzU0W';\n\n // title\n export const APP_TITLE = 'Rezervační systém'; // 'Rezervační systém'\n\n // single office mode\n export const SINGLE_OFFICE_MODE = false;\n\n // graph statistics\n // - default: month or year\n export const STATS_DEFAULT_SETTING = 'year';\n // - if switching is bad idea\n export const STATS_SHOW_DATE_SWITCH = true;\n\n// -------------------- //\n\n\n// ~ Colors ~ //\n\n // color 1\n // - main color in header and selected button\n export const COLOR_1 = '#1FA22E';\n export const COLOR_1_BORDER_BOTTOM = '#1FA22E';\n export const COLOR_1_BORDER_LEFT = '#1FA22E';\n\n // color 2\n // - color in header under logo\n export const COLOR_2 = '#fff';\n export const COLOR_2_BORDER_BOTTOM = '#ececec';\n export const COLOR_2_BORDER_RIGHT = '#ececec';\n\n // color 3\n // - side panel color\n export const COLOR_3 = '#2e3647';\n export const COLOR_3_BORDER_RIGHT = 'rgba(73, 79, 94, 0.71)';\n\n// -------------------- //\n","import {\n COLOR_1,\n COLOR_1_BORDER_BOTTOM,\n COLOR_1_BORDER_LEFT,\n COLOR_2,\n COLOR_2_BORDER_BOTTOM,\n COLOR_2_BORDER_RIGHT,\n COLOR_3,\n COLOR_3_BORDER_RIGHT,\n} from './config';\n\n\n/* When changing style !!!\n * - move this globals to StyledComponents\n * - here should be only shared variables like errorColor etc.\n */\n\n\nexport const backgroundSideBar = COLOR_3;\nexport const col_error = '#b91111';\n\nexport const MAIN_CONTENT_DATA_WRAPPER_SETTINGS = {\n spinnerFat: 5, \n spinnerSize: 25, \n textSizeLoading: 1,\n textSizeError: 1.25,\n};\n\n\n\n// ~ CSS ~ //\n\n// total page padding = PADDING_PAGE + PADDING_CONTENT_PAGE\n// - PADDING_CONTENT_PAGE - between buttons + in line with other text\nexport const PADDING_CONTENT_PAGE = 6; \nexport const PADDING_PAGE = 6;\nexport const BORDER_COLOR_LINE_VERTICAL = '#7d7d7d';\n\n\n// - CSS - HEADER\nexport const HEIGHT_HEADER = 50;\nexport const BACKGROUND_HEADER = COLOR_1;\nexport const BORDER_HEADER = COLOR_1_BORDER_BOTTOM;\nexport const BORDER_HEADER_LEFT = COLOR_1_BORDER_LEFT;\nexport const WIDTH_HEADER_IMG = 20;\n\n // - CSS - HEADER - LOGO\n export const BACKGROUND_HEADER_LOGO = COLOR_2;\n export const BORDER_HEADER_LOGO = COLOR_2_BORDER_BOTTOM;\n export const BORDER_HEADER_LOGO_RIGHT = COLOR_2_BORDER_RIGHT;\n export const FONT_SIZE_HEADER_LOGO = 1.2;\n export const HEIGHT_HEADER_LOGO_ICON_PERCENT = 26;\n // - CSS HEADER - LOGO - MOBILE\n export const BACKGROUND_HEADER_MOBILE = COLOR_1;\n \n// - CSS - SIDEBAR\nexport const WIDTH_SIDE_BAR = 240;\nexport const BACKGROUND_SIDE_BAR = COLOR_3; // same as map - river\nexport const BORDER_SIDE_BAR = COLOR_3_BORDER_RIGHT;\n\n // - CSS - SIDEBAR - BTN\n export const PADDING_BTN_SIDE_BAR = 12; \n export const FONT_BTN_SIDE_BAR_ICON = 1.4;\n export const FONT_BTN_SIDE_BAR_STEP = 0.75;\n export const FONT_BTN_SIDE_BAR_TITLE = 0.9;\n export const COLOR_BTN_SIDE_BAR = 'white';\n export const FONT_BTN_SIDE_BAR_ICON_MOBILE = 1.5;\n\n // - CSS - SIDEBAR - SEPARATOR\n export const PADDING_SEPARATOR_SIDE_BAR = 0;\n export const FONT_SEPARATOR_SIDE_BAR_ICON = 20;\n export const COLOR_SIDE_BAR_ICON = 'white';\n export const WIDTH_SIDE_BAR_SEPARATOR_MOBILE = 25;\n export const FONT_SEPARATOR_SIDE_BAR_ICON_MOBILE = 1.5;\n\n// CSS - ERROR\nexport const BACKGROUND_ERROR = 'rgba(235, 111, 131, 0.36)';\nexport const COLOR_ERROR = '#b91111';\nexport const FONT_SIZE_ERROR = 14;\n\n// CSS - LOADER\nexport const BACKGROUND_LOADER = '#ebe7e7';\nexport const COLOR_LOADER = '#616161';\nexport const FONT_SIZE_LOADER = 1;\nexport const SIZE_LOADER = 15;\nexport const FAT_LOADER = 3;\n\n// - CSS - BTN_BACK\nexport const BACKGROUND_BTN_BACK = COLOR_1;\nexport const BACKGROUND_BTN_BACK_HOVER = COLOR_3;\nexport const FONT_SIZE_BTN_BACK = 14;\nexport const FONT_SIZE_BTN_BACK_ARROW = 18;\n\n// - CSS - LABEL\nexport const FONT_SIZE_LABEL = 0.9;\nexport const COLOR_MAIN_LABEL = COLOR_1;\n\n// CSS - ROW_HORIZONTAL\nexport const BACKGROUND_ROW_HORIZONTAL = COLOR_3;\nexport const BORDER_SIZE_ROW_HORIZONTAL = 2;\n\n// CSS - TITLE_MEDIUM\nexport const FONT_SIZE_TITLE_MEDIUM = 1;\n\n// CSS - TITLE_TOP\nexport const FONT_SIZE_TITLE_TOP = 1.325;\nexport const COLOR_NUMBER_TITLE_TOP = COLOR_1;\n\n// CSS - BTN_OFFICE \n// CSS - BTN_SERVICE\nexport const FONT_SIZE_BTN_TITLE = 1;\nexport const FONT_SIZE_BTN_TEXT = 0.9;\nexport const BACKGROUND_BTN = '#f2f2f2';\nexport const BACKGROUND_BTN_HOVER = COLOR_1;\nexport const COLOR_BTN_HOVER = 'white';\nexport const HEIGHT_BTN = 1; // LINE_HEIGHT_BTN * ROWS\nexport const LINE_HEIGHT_BTN = 1;\nexport const FONT_SIZE_BTN_ARROW = 1; \n\n// CSS - BTN_CONFIRM\nexport const FONT_SIZE_BTN_CONFIRM_TITLE = 1;\nexport const BACKGROUND_BTN_CONFIRM = COLOR_1;\nexport const BACKGROUND_BTN_CONFIRM_HOVER = COLOR_3;\nexport const BACKGROUND_BTN_CONFIRM_DISABLED = '#ffb06e';\nexport const COLOR_BTN_CONFIRM_HOVER = 'white';\n\n// CSS - TIBLE_TIMES\nexport const BACKGROUND_TABLE_TIMES = '#f2f2f2';\nexport const BACKGROUND_TABLE_TIMES_HOVER = COLOR_1;\nexport const COLOR_TABLE_TIMES_HOVER = 'white';\nexport const COLOR_TABLE_TIMES_FULL = '#c7caca';\nexport const BORDER_COLOR_TABLE_TIMES = '#656565';\nexport const FONT_SIZE_TABLE_TIMES_ROW = 1;\nexport const FONT_SIZE_TABLE_TIMES_HEADER = 1;\n\n// CSS - CALENDAR\nexport const BACKGROUND_CALENDAR = '#f2f2f2';\nexport const BACKGROUND_CALENDAR_HOVER = '#dedede';\nexport const BACKGROUND_CALENDAR_SELECTED = COLOR_1;\nexport const COLOR_CALENDAR_OUTSIDE = '#b5bcbc';\nexport const COLOR_CALENDAR_FREE = 'black';\nexport const COLOR_CALENDAR_OCCUPIED = '#e91a1a';\nexport const COLOR_CALENDAR_NOTAVAILABLE = '#c7caca';\nexport const COLOR_CALENDAR_BLOCKED = '#c7caca';\nexport const COLOR_CALENDAR_HOLIDAY = '#44b0fb';\nexport const FONT_SIZE_CALENDAR = 1;\nexport const FONT_SIZE_CALENDAR_LEGEND_TEXT = 1;\nexport const FONT_SIZE_CALENDAR_LEGEND_ICON = 1;\n\n// CSS - STATS_TABLE_INPUT\nexport const BACKGROUND_STATS_TABLE_ODD_ROW = '#f2f2f2';\nexport const COLOR_STATS_TABLE_BORDER = '#a6a6a6';\nexport const BACKGROUND_STATS_TABLE_ROW = 'white';\nexport const FONT_SIZE_STAST_TABLE_TH = '0.8';\nexport const FONT_SIZE_STAST_TABLE_TD = '0.9';\nexport const COLOR_STATS_TABLE_ARROW = '#a6a6a6';\nexport const COLOR_STATS_TABLE_ARROW_ACTIVE = 'black';\nexport const WIDTH_STATS_TABLE_COL_FIRST_PCT = '28'; // WIDTH_STATS_TABLE_COL_FIRST_PCT + X * WIDTH_STATS_TABLE_COL_OTHER_PCT = 100%\nexport const WIDTH_STATS_TABLE_COL_OTHER_PCT = '18';\n\n// CSS - CONTROLLED_INPUT\nexport const BORDER_COLOR_CONTROLLED_INPUT_NORMAL = '#656565';\nexport const BORDER_COLOR_CONTROLLED_INPUT_VALID = '#64a105';\nexport const BORDER_COLOR_CONTROLLED_INPUT_ERROR = '#ce1c1c';\nexport const COLOR_CONTROLLED_INPUT_NORMAL = '#9b9b9b';\n\n// CSS - INFO_WRAPPER\nexport const FONT_SIZE_INFO_WRAPPER_TITLE = 1; \nexport const FONT_SIZE_INFO_WRAPPER_TEXT = 1;\nexport const COLOR_ICON_INFO_WRAPPER = COLOR_3;\n\n// CSS - RESERVATION_ERROR\nexport const BACKGROUND_RESERVATION_ERROR_INFO = 'rgba(235, 111, 131, 0.36)';\nexport const COLOR_RESERVATION_ERROR_ICON = '#b91111';\nexport const FONT_SIZE_RESERVATION_ERROR_ICON = 2;\n\n// CSS - RESERVATION_SUCCESS\nexport const BACKGROUND_RESERVATION_SUCCESS_INFO = 'rgba(148, 204, 95, 0.5)';\nexport const COLOR_RESERVATION_SUCCESS_ICON = '#237416';\nexport const FONT_SIZE_RESERVATION_SUCCESS_ICON = 2;\n\n// CSS - EMAIL_CONFIRM\nexport const BACKGROUND_EMAIL_CONFIRM_INFO_SUCCESS = 'rgba(148, 204, 95, 0.5)';\nexport const COLOR_EMAIL_CONFIRM_ICON_SUCCESS = '#237416';\nexport const BACKGROUND_EMAIL_CONFIRM_INFO_ERROR = 'rgba(235, 111, 131, 0.36)';\nexport const COLOR_EMAIL_CONFIRM_ICON_ERROR = '#b91111';\nexport const BACKGROUND_EMAIL_CONFIRM_INFO_WARNING = 'rgba(235, 209, 111, 0.36)';\nexport const COLOR_EMAIL_CONFIRM_ICON_WARNING = '#fa8320';\nexport const FONT_SIZE_EMAIL_CONFIRM_ICON = 2;\n\n// CSS - DELETE_RESERVATION\nexport const BACKGROUND_DELETE_RESERVATION_INFO_SUCCESS = 'rgba(148, 204, 95, 0.5)';\nexport const COLOR_DELETE_RESERVATION_ICON_SUCCESS = '#237416';\nexport const BACKGROUND_DELETE_RESERVATION_INFO_ERROR = 'rgba(235, 111, 131, 0.36)';\nexport const COLOR_DELETE_RESERVATION_ICON_ERROR = '#b91111';\nexport const BACKGROUND_DELETE_RESERVATION_INFO_WARNING = 'rgba(235, 209, 111, 0.36)';\nexport const COLOR_DELETE_RESERVATION_ICON_WARNING = '#fa8320';\nexport const FONT_SIZE_DELETE_RESERVATION_ICON = 2;\n\n// CSS - GRAPH\nexport const COLOR_GRAPH_NO_DATA = COLOR_1;\n\n\n// CSS - SWITCH\nexport const SWITCH_BACKGROUND_COLOR = COLOR_3;\n\n// ~ CSS ~ //\n\n\n// ~ INPUT STATES ~ //\n\nexport const CONTROLLED_INPUT_NORMAL = 'normal';\nexport const CONTROLLED_INPUT_VALID = 'valid';\nexport const CONTROLLED_INPUT_INVALID = 'invalid';\n\n// ~ REDUCERS ~ //\n\nexport const MAIN_GET_COMMON_DATA = 'MAIN_GET_COMMON_DATA';\n\nexport const PENDING = 'PENDING';\nexport const FULFILLED = 'FULFILLED';\nexport const REJECTED = 'REJECTED';\n\nexport const OFFICES_GET_OFFICES = 'OFFICES_GET_OFFICES';\n\nexport const SERVICES_SINGLE_OFFICE_INIT = 'SERVICES_SINGLE_OFFICE_INIT';\nexport const SERVICES_GET_OFFICE_INFO ='SERVICES_GET_OFFICE_INFO';\nexport const SERVICES_GET_OFFICE_STATS ='SERVICES_GET_OFFICE_STATS';\nexport const SERVICES_GET_SERVICES ='SERVICES_GET_SERVICES';\n\nexport const INTERVALS_GET_DAYS = 'INTERVALS_GET_DAYS';\nexport const INTERVALS_GET_INTERVALS = 'INTERVALS_GET_INTERVALS';\nexport const INTERVALS_GET_OFFICE_INFO ='INTERVALS_GET_OFFICE_INFO';\nexport const INTERVALS_GET_OFFICE_STATS ='INTERVALS_GET_OFFICE_STATS';\nexport const INTERVALS_SELECT_DAY = 'INTERVALS_SELECT_DAY';\nexport const INTERVALS_RESET_DATA = 'INTERVALS_RESET_DATA';\n\nexport const RESERVATION_POST_RESERVE_INTERVAL = 'RESERVATION_POST_RESERVE_INTERVAL';\nexport const RESERVATION_PUT_CONFIRM = 'RESERVATION_PUT_CONFIRM';\nexport const RESERVATION_DELETE_FREE_INTERVAL = 'RESERVATION_DELETE_FREE_INTERVAL';\nexport const RESERVATION_CLICK_CONFIRM_BTN = 'RESERVATION_CLICK_CONFIRM_BTN';\nexport const RESERVATION_CHANGE_INPUT = 'RESERVATION_CHANGE_INPUT';\nexport const RESERVATION_TIME_EXPIRATION = 'RESERVATION_TIME_EXPIRATION';\nexport const RESERVATION_GET_OFFICE_INFO ='RESERVATION_GET_OFFICE_INFO';\n\nexport const CONFIRM_MAIL_CONFIRM = 'CONFIRM_MAIL_CONFIRM';\n\nexport const DELETE_RESERVATION_DELETE = 'DELETE_RESERVATION_DELETE';\n\nexport const OFFICE_STATS_YEAR = 'OFFICE_STATS_YEAR';\nexport const OFFICE_STATS_MONTH = 'OFFICE_STATS_MONTH';\nexport const OFFICE_STATS_RESET = 'OFFICE_STATS_RESET';\nexport const OFFICE_STATS_SWITCH = 'OFFICE_STATS_SWITCH';\nexport const OFFICE_STATS_SELECT_DAY = 'OFFICE_STATS_SELECT_DAY';\nexport const OFFICE_STATS_CHANGE_DATE = 'OFFICE_STATS_CHANGE_DATE';\n\nexport const STATS__MODAL_STATS__TOGGLE = 'STATS__MODAL_STATS__TOGGLE';\nexport const STATS__MODAL_STATS__SELECT_OFFICE = 'STATS__MODAL_STATS__SELECT_OFFICE';\nexport const STATS__MODAL_STATS__GET_OFFICES ='STATS__MODAL_STATS__GET_OFFICES';\nexport const STATS__MODAL_STATS__GET_STATS ='STATS__MODAL_STATS__GET_STATS';\n\n// ~ REDUCERS ~ //\n","import { \n MAIN_GET_COMMON_DATA, \n PENDING, FULFILLED, REJECTED,\n} from '../globals';\n\nconst defaultAgreement = 'Souhlasím se zpracováním osobních údajů.';\n\nexport const initialState = {\n isLoading: false,\n status: false,\n error: false,\n data: {\n previousSteps: {\n one: '',\n two: '',\n three: '',\n },\n officesCommon: {\n content: '',\n title: '',\n },\n servicesCommon: {\n content: '',\n title: '',\n },\n intervalsCommon: {\n content: '',\n showStats: false,\n title: '',\n },\n reservationCommon: {\n content: '',\n name: {\n show: true,\n isRequired: true,\n },\n phone: {\n show: true,\n isRequired: true,\n },\n agreement: {\n show: true,\n text: defaultAgreement,\n document: null,\n },\n note: {\n show: false,\n isRequired: false,\n },\n },\n logo: {\n fileName: '',\n },\n },\n errorMessage: [],\n};\n\nconst reducer = (state = initialState, action) => {\n const { type, payload } = action;\n switch (type) {\n case `${MAIN_GET_COMMON_DATA}_${PENDING}`:\n return {\n ...initialState,\n isLoading: true,\n };\n\n case `${MAIN_GET_COMMON_DATA}_${FULFILLED}`:\n return {\n ...state,\n isLoading: false,\n status: payload.status,\n data: {\n ...state.data,\n previousSteps: {\n one: payload.data.step_one_selected === '' ? 'Vybrané místo:' : payload.data.step_one_selected,\n two: payload.data.step_two_selected === '' ? 'Vybraná služba:' : payload.data.step_two_selected,\n three: payload.data.step_three_selected === '' ? 'Vybraný termín:' : payload.data.step_three_selected,\n },\n officesCommon: {\n content: payload.data.step_one,\n title: payload.data.step_one_title === '' ? 'Výběr místa' : payload.data.step_one_title,\n },\n servicesCommon: {\n content: payload.data.step_two,\n title: payload.data.step_two_title === '' ? 'Výběr služby' : payload.data.step_two_title,\n },\n intervalsCommon: {\n content: payload.data.step_three,\n title: payload.data.step_three_title === '' ? 'Výběr termínu' : payload.data.step_three_title,\n showStats: payload.data.show_stats,\n },\n reservationCommon: {\n content: payload.data.step_four,\n title: payload.data.step_four_title === '' ? 'Potvrzení rezervace' : payload.data.step_four_title,\n name: {\n show: payload.data.form_name,\n isRequired: payload.data.form_name_required,\n },\n phone: {\n show: payload.data.form_phone,\n isRequired: payload.data.form_phone_required,\n },\n agreement: {\n show: payload.data.form_checkbox,\n text: payload.data.step_four_conditions === '' ? defaultAgreement : payload.data.step_four_conditions,\n document: (payload.data.document !== null && payload.data.document.hasOwnProperty('file_name')) ? payload.data.document.file_name : null,\n },\n note: {\n show: payload.data.form_note,\n isRequired: payload.data.form_note_required,\n },\n },\n logo: {\n ...state.data.logo,\n fileName: (payload.data.logo !== null && payload.data.logo.hasOwnProperty('file_name')) ? payload.data.logo.file_name : '',\n },\n },\n };\n\n case `${MAIN_GET_COMMON_DATA}_${REJECTED}`: \n return {\n ...state,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: payload.error,\n };\n \n default:\n return state;\n }\n};\n\nexport default reducer;","import { \n OFFICES_GET_OFFICES, \n PENDING, FULFILLED, REJECTED,\n} from '../globals';\n\nexport const initialState = {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n errorMessage: [],\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case `${OFFICES_GET_OFFICES}_${PENDING}`:\n return {\n ...initialState,\n isLoading: true,\n };\n\n case `${OFFICES_GET_OFFICES}_${FULFILLED}`:\n return {\n ...state,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data,\n };\n\n case `${OFFICES_GET_OFFICES}_${REJECTED}`:\n return {\n ...state,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n };\n default:\n return state;\n }\n};\n\nexport default reducer;","import { \n SERVICES_GET_OFFICE_INFO,\n SERVICES_GET_OFFICE_STATS,\n SERVICES_GET_SERVICES, \n SERVICES_SINGLE_OFFICE_INIT,\n PENDING, FULFILLED, REJECTED \n} from '../globals';\n\n\nexport const initialState = {\n servicesData: {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n groups: null,\n errorMessage: [],\n },\n officeData: {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n errorMessage: [],\n },\n statsData: {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n errorMessage: [],\n },\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case `${SERVICES_SINGLE_OFFICE_INIT}_${PENDING}`:\n return {\n ...initialState,\n servicesData: {\n ...state.servicesData,\n isLoading: true,\n }\n };\n\n // dont need to proc\n /*case `${SERVICES_SINGLE_OFFICE_INIT}_${FULFILLED}`:\n return {\n };*/\n\n case `${SERVICES_SINGLE_OFFICE_INIT}_${REJECTED}`: \n return {\n ...state,\n servicesData: {\n ...state.servicesData,\n isLoading: false,\n status: false,\n error: true,\n }\n };\n\n\n\n case `${SERVICES_GET_SERVICES}_${PENDING}`:\n return {\n ...initialState,\n servicesData: {\n ...state.servicesData,\n isLoading: true,\n }\n };\n\n case `${SERVICES_GET_SERVICES}_${FULFILLED}`:\n return {\n ...state,\n servicesData: {\n ...state.servicesData,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data.data,\n groups: action.payload.data.groups,\n }\n };\n\n case `${SERVICES_GET_SERVICES}_${REJECTED}`: \n return {\n ...state,\n servicesData: {\n ...state.servicesData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n };\n\n\n\n case `${SERVICES_GET_OFFICE_INFO}_${PENDING}`:\n return {\n ...state,\n officeData: {\n ...state.officeData,\n isLoading: true,\n }\n };\n\n case `${SERVICES_GET_OFFICE_INFO}_${FULFILLED}`:\n return {\n ...state,\n officeData: {\n ...state.officeData,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data,\n }\n };\n\n case `${SERVICES_GET_OFFICE_INFO}_${REJECTED}`: \n return {\n ...state,\n officeData: {\n ...state.officeData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n };\n \n\n \n case `${SERVICES_GET_OFFICE_STATS}_${PENDING}`:\n return {\n ...state,\n statsData: {\n ...state.statsData,\n isLoading: true,\n }\n };\n\n case `${SERVICES_GET_OFFICE_STATS}_${FULFILLED}`:\n return {\n ...state,\n statsData: {\n ...state.statsData,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data,\n }\n };\n\n case `${SERVICES_GET_OFFICE_STATS}_${REJECTED}`: \n return {\n ...state,\n statsData: {\n ...state.statsData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n };\n \n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { \n INTERVALS_GET_DAYS,\n INTERVALS_GET_INTERVALS, \n INTERVALS_GET_OFFICE_INFO,\n INTERVALS_GET_OFFICE_STATS,\n INTERVALS_SELECT_DAY,\n INTERVALS_RESET_DATA,\n PENDING, FULFILLED, REJECTED, \n} from '../globals';\n\n\nexport const initialState = {\n serviceState: {\n selectedDateId: '',\n selectedDateDay: null,\n },\n daysData: {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n errorMessage: [],\n },\n intervalsData: {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n errorMessage: [],\n },\n officeData: {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n errorMessage: [],\n },\n serviceData: {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n errorMessage: [],\n },\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case `${INTERVALS_GET_DAYS}_${PENDING}`:\n return {\n ...initialState,\n daysData: {\n isLoading: true,\n status: false,\n error: false,\n data: [],\n errorMessage: [],\n },\n serviceState: {\n ...state.serviceState,\n },\n };\n\n case `${INTERVALS_GET_DAYS}_${FULFILLED}`:\n return {\n ...state,\n daysData: {\n ...state.daysData,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data,\n }\n };\n\n case `${INTERVALS_GET_DAYS}_${REJECTED}`: \n return {\n ...state,\n daysData: {\n ...state.daysData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n };\n\n\n\n case `${INTERVALS_GET_INTERVALS}_${PENDING}`:\n return {\n ...state,\n intervalsData: {\n ...state.intervalsData,\n isLoading: true,\n }\n };\n\n case `${INTERVALS_GET_INTERVALS}_${FULFILLED}`:\n return {\n ...state,\n intervalsData: {\n ...state.intervalsData,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data,\n }\n };\n\n case `${INTERVALS_GET_INTERVALS}_${REJECTED}`: \n return {\n ...state,\n intervalsData: {\n ...state.intervalsData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n };\n\n\n\n case `${INTERVALS_GET_OFFICE_INFO}_${PENDING}`:\n return {\n ...state,\n officeData: {\n ...state.officeData,\n isLoading: true,\n }\n };\n\n case `${INTERVALS_GET_OFFICE_INFO}_${FULFILLED}`:\n return {\n ...state,\n officeData: {\n ...state.officeData,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data,\n }\n };\n\n case `${INTERVALS_GET_OFFICE_INFO}_${REJECTED}`: \n return {\n ...state,\n officeData: {\n ...state.officeData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n };\n\n case `${INTERVALS_GET_OFFICE_STATS}_${PENDING}`:\n return {\n ...state,\n serviceData: {\n ...state.serviceData,\n isLoading: true,\n }\n };\n\n case `${INTERVALS_GET_OFFICE_STATS}_${FULFILLED}`:\n return {\n ...state,\n serviceData: {\n ...state.serviceData,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data,\n }\n };\n\n case `${INTERVALS_GET_OFFICE_STATS}_${REJECTED}`:\n return {\n ...state,\n serviceData: {\n ...state.serviceData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n };\n\n\n case `${INTERVALS_SELECT_DAY}`:\n return {\n ...state,\n serviceState: {\n ...state.serviceState,\n selectedDateId: action.payload.dayId,\n selectedDateDay: action.payload.day,\n }\n };\n\n case `${INTERVALS_RESET_DATA}`:\n return {\n ...initialState,\n };\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { \n RESERVATION_POST_RESERVE_INTERVAL, \n RESERVATION_PUT_CONFIRM,\n RESERVATION_DELETE_FREE_INTERVAL,\n RESERVATION_CLICK_CONFIRM_BTN,\n RESERVATION_CHANGE_INPUT,\n RESERVATION_TIME_EXPIRATION,\n PENDING, FULFILLED, REJECTED,\n CONTROLLED_INPUT_NORMAL, CONTROLLED_INPUT_VALID, CONTROLLED_INPUT_INVALID,\n INTERVALS_GET_OFFICE_INFO,\n} from '../globals';\n\n\nexport const initialState = {\n reserveData: {\n isLoading: false,\n status: false,\n error: false,\n errorType: '',\n data: {},\n errorMessage: {},\n },\n confirmData: {\n isLoading: false,\n error: false,\n },\n deleteReservationData : {\n isLoading: false,\n },\n officeData: {\n isLoading: false,\n status: false,\n data: {},\n error: false,\n errorMessage: {},\n },\n reservationState: {\n // 0 - noraml, \n // 1 - succes, \n // 2 - error, \n phase: 0, \n inputs: {\n name: '',\n email: '',\n phone: '',\n note: '',\n agreement: false,\n agreementValid: CONTROLLED_INPUT_NORMAL,\n captcha: null,\n captchaValid: CONTROLLED_INPUT_NORMAL, \n nameValid: CONTROLLED_INPUT_NORMAL, \n emailValid: CONTROLLED_INPUT_NORMAL, \n phoneValid: CONTROLLED_INPUT_NORMAL,\n noteValid: CONTROLLED_INPUT_NORMAL,\n },\n success: {\n storeName: '', \n storeAddress: '',\n serviceName: '',\n reservedTime: '',\n emailConfirmation: false,\n pin: '',\n }, \n error: {\n blacklist: true,\n timeLimit: true,\n nonDuplicatedEmail: true,\n }\n },\n};\n\n\nconst successConfirm = (state, payload) => {\n const { store_name, store_address, service_name, time, email_confirmation, pin } = payload.data;\n\n const newState = {\n ...state,\n confirmData: {\n ...state.confirmData,\n isLoading: false,\n error: false,\n },\n reservationState: {\n ...state.reservationState,\n phase: 1,\n inputs: {\n ...state.reservationState.inputs,\n nameValid: CONTROLLED_INPUT_NORMAL, \n emailValid: CONTROLLED_INPUT_NORMAL, \n phoneValid: CONTROLLED_INPUT_NORMAL,\n },\n success: {\n storeName: store_name, \n storeAddress: store_address,\n serviceName: service_name,\n reservedTime: time,\n emailConfirmation: email_confirmation,\n pin: pin,\n }, \n },\n }; \n\n return newState;\n}\n\n\nconst errorConfirm = (state, payload) => {\n if (payload.message !== undefined) {\n const { email, name, phone_number, time, blacklist, non_duplicated_email, other } = payload.message.data.message.message;\n\n // CHYBA - false\n const newPhase = time ? 0 : 2; \n\n const newState = {\n ...state,\n confirmData: {\n ...state.confirmData,\n isLoading: false,\n error: true,\n },\n reservationState: {\n ...state.reservationState,\n phase: newPhase,\n inputs: {\n ...state.reservationState.inputs,\n nameValid: name ? CONTROLLED_INPUT_VALID : CONTROLLED_INPUT_INVALID, \n emailValid: email ? CONTROLLED_INPUT_VALID : CONTROLLED_INPUT_INVALID, \n phoneValid: phone_number ? CONTROLLED_INPUT_VALID : CONTROLLED_INPUT_INVALID, \n },\n error: {\n blacklist: blacklist,\n timeLimit: time,\n nonDuplicatedEmail: non_duplicated_email,\n }\n },\n }; \n\n return newState;\n }\n\n const newState = {\n ...state,\n confirmData: {\n ...state.confirmData,\n isLoading: false,\n error: true,\n },\n reservationState: {\n ...state.reservationState,\n phase: 0,\n error: initialState.reservationState.error,\n },\n }; \n\n return (newState);\n}\n\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case `${RESERVATION_POST_RESERVE_INTERVAL}_${PENDING}`:\n return {\n ...initialState,\n reserveData: {\n ...initialState.reserveData,\n isLoading: true,\n }\n };\n\n case `${RESERVATION_POST_RESERVE_INTERVAL}_${FULFILLED}`:\n return {\n ...state,\n reserveData: {\n ...state.reserveData,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data,\n }\n };\n\n case `${RESERVATION_POST_RESERVE_INTERVAL}_${REJECTED}`:\n return {\n ...state,\n reserveData: {\n ...state.reserveData,\n isLoading: false,\n status: false,\n error: true,\n errorType: (action.payload.message && action.payload.message.data.message.message && action.payload.message.data.message.message.full === false) ? 'full' : '',\n errorMessage: action.payload.error,\n }\n };\n \n \n\n case `${RESERVATION_PUT_CONFIRM}_${PENDING}`:\n return {\n ...state,\n confirmData: {\n ...state.confirmData,\n isLoading: true,\n error: false,\n }\n };\n\n case `${RESERVATION_PUT_CONFIRM}_${FULFILLED}`:\n if (action.payload.status) {\n return successConfirm(state, action.payload);\n }\n return errorConfirm(state, action.payload);\n\n \n case `${RESERVATION_PUT_CONFIRM}_${REJECTED}`: \n return errorConfirm(state, action.payload);\n\n\n case `${RESERVATION_DELETE_FREE_INTERVAL}_${PENDING}`:\n return {\n ...state,\n deleteReservationData: {\n ...state.deleteReservationData,\n isLoading: true,\n }\n };\n\n case `${RESERVATION_DELETE_FREE_INTERVAL}_${FULFILLED}`:\n return {\n ...state,\n deleteReservationData: {\n ...state.deleteReservationData,\n isLoading: false,\n }\n };\n\n case `${RESERVATION_DELETE_FREE_INTERVAL}_${REJECTED}`: \n return {\n ...state,\n deleteReservationData: {\n ...state.deleteReservationData,\n isLoading: false,\n }\n };\n\n\n \n case `${RESERVATION_CLICK_CONFIRM_BTN}`: \n return {\n ...state,\n reservationState: {\n ...state.reservationState,\n inputs: {\n ...state.reservationState.inputs,\n nameValid: action.payload.nameValid, \n emailValid: action.payload.emailValid, \n phoneValid: action.payload.phoneValid,\n noteValid: action.payload.noteValid,\n agreementValid: action.payload.agreementValid,\n captchaValid: action.payload.newCaptcha,\n },\n }\n };\n\n case `${RESERVATION_CHANGE_INPUT}`:\n return {\n ...state,\n reservationState: {\n ...state.reservationState,\n inputs: {\n ...state.reservationState.inputs,\n [action.payload.inputName]: action.payload.value,\n [action.payload.inputName + 'Valid']: CONTROLLED_INPUT_NORMAL,\n },\n }\n };\n\n case `${RESERVATION_TIME_EXPIRATION}`:\n return {\n ...state,\n reservationState: {\n ...state.reservationState,\n phase: 2, \n error: {\n blacklist: true,\n timeLimit: false,\n nonDuplicatedEmail: true,\n }\n }\n }\n\n case `${INTERVALS_GET_OFFICE_INFO}_${PENDING}`:\n return {\n ...state,\n officeData: {\n ...state.officeData,\n isLoading: true,\n }\n };\n\n case `${INTERVALS_GET_OFFICE_INFO}_${FULFILLED}`:\n return {\n ...state,\n officeData: {\n ...state.officeData,\n isLoading: false,\n status: action.payload.status,\n data: action.payload.data,\n }\n };\n\n case `${INTERVALS_GET_OFFICE_INFO}_${REJECTED}`: \n return {\n ...state,\n officeData: {\n ...state.officeData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n };\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { \n CONFIRM_MAIL_CONFIRM, \n PENDING, FULFILLED, REJECTED \n} from '../globals';\n\nexport const initialState = {\n isLoading: true,\n status: false,\n error: false,\n errorType: {\n time: true,\n completed: true,\n deleted: true,\n emailConfirmed: true,\n },\n};\n\nconst reducer = (state = initialState, action) => {\n const { type, payload, } = action;\n\n switch (type) {\n case `${CONFIRM_MAIL_CONFIRM}_${PENDING}`:\n return {\n ...initialState,\n isLoading: true,\n };\n\n case `${CONFIRM_MAIL_CONFIRM}_${FULFILLED}`:\n return {\n ...state,\n isLoading: false,\n status: true,\n error: false,\n };\n\n case `${CONFIRM_MAIL_CONFIRM}_${REJECTED}`:\n return {\n ...state,\n isLoading: false,\n status: false,\n error: true,\n errorType: payload,\n };\n \n default:\n return state;\n }\n};\n\nexport default reducer;","import { \n DELETE_RESERVATION_DELETE, \n PENDING, FULFILLED, REJECTED \n} from '../globals';\n\nexport const initialState = {\n isLoading: true,\n status: false,\n error: false,\n errorType: {\n time: true,\n completed: true,\n deleted: true,\n emailConfirmed: true,\n },\n};\n\nconst reducer = (state = initialState, action) => {\n const { type, payload, } = action;\n\n switch (type) {\n case `${DELETE_RESERVATION_DELETE}_${PENDING}`:\n return {\n ...initialState,\n isLoading: true,\n };\n\n case `${DELETE_RESERVATION_DELETE}_${FULFILLED}`:\n return {\n ...state,\n isLoading: false,\n status: true,\n error: false,\n };\n\n case `${DELETE_RESERVATION_DELETE}_${REJECTED}`: \n return {\n ...state,\n isLoading: false,\n status: false,\n error: true,\n errorType: payload,\n };\n \n default:\n return state;\n }\n};\n\nexport default reducer;","import { \n OFFICE_STATS_YEAR, OFFICE_STATS_MONTH, OFFICE_STATS_SWITCH, OFFICE_STATS_RESET, OFFICE_STATS_SELECT_DAY, OFFICE_STATS_CHANGE_DATE,\n PENDING, FULFILLED, REJECTED,\n} from '../globals';\n\nimport {\n STATS_DEFAULT_SETTING,\n} from '../config';\n\nexport const initialState = {\n statsChecked: 'waitingTime',\n dateChecked: STATS_DEFAULT_SETTING,\n year: -1,\n month: -1,\n selected: {\n day: -1,\n month: -1,\n year: -1,\n },\n statsYear: {\n isLoading: false,\n catchedData: false,\n status: false,\n error: false,\n data: {\n stats: [],\n maxValue: [],\n },\n errorMessage: [],\n },\n statsMonth: {\n isLoading: false,\n catchedData: false,\n status: false,\n error: false,\n data: {\n stats: [],\n maxValue: [],\n },\n errorMessage: [],\n },\n};\n\n\nconst parseGraphData = (inData) => {\n let newData = [];\n let newChartData;\n let dayIndex;\n let tmpCliSum;\n let tmpAvgTime;\n let maxCliSum = 0;\n let maxAvgTime = 0;\n\n for (let i = 0; i < inData.length; i++) {\n dayIndex = i === 0 ? 6 : i - 1;\n newChartData = {\n clients_sum: [],\n avg_time: [],\n labels: [],\n }\n\n // if data are empty\n if (inData[i].data === null) {\n newChartData = null;\n }\n else {\n const objKeys = Object.keys(inData[i].data);\n for (let j = 0; j < objKeys.length; j++) {\n tmpCliSum = inData[i].data[objKeys[j]].clients_sum;\n tmpAvgTime = inData[i].data[objKeys[j]].avg_time / 60;\n \n // get max values\n if (tmpCliSum > maxCliSum)\n maxCliSum = tmpCliSum;\n if (tmpAvgTime > maxAvgTime)\n maxAvgTime = tmpAvgTime;\n\n // fill data for one chart\n newChartData.clients_sum.push(tmpCliSum);\n newChartData.avg_time.push(tmpAvgTime);\n newChartData.labels.push(inData[i].data[objKeys[j]].hour + ':00');\n }\n }\n newData[dayIndex] = newChartData;\n }\n\n return {\n maxCliSum: maxCliSum + maxCliSum * 0.1,\n maxAvgTime: maxAvgTime + maxAvgTime * 0.1,\n stats: newData,\n };\n}\n\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n \n case `${OFFICE_STATS_YEAR}_${PENDING}`:\n return {\n ...state,\n statsYear: {\n ...state.statsYear,\n isLoading: true,\n catchedData: true,\n },\n };\n\n case `${OFFICE_STATS_YEAR}_${FULFILLED}`:\n return {\n ...state,\n year: action.payload.year,\n month: action.payload.month,\n statsYear: {\n ...state.statsYear,\n isLoading: false,\n status: action.payload.status,\n data: parseGraphData(action.payload.data),\n catchedData: true,\n },\n statsMonth: {\n ...state.statsMonth,\n catchedData: action.payload.year === state.year && action.payload.month === state.month ? state.statsMonth.catchedData : false,\n },\n }\n\n case `${OFFICE_STATS_YEAR}_${REJECTED}`: \n return {\n ...state,\n statsYear: {\n ...state.statsYear,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n },\n };\n\n\n case `${OFFICE_STATS_MONTH}_${PENDING}`:\n return {\n ...state,\n statsMonth: {\n ...state.statsMonth,\n isLoading: true,\n catchedData: true,\n },\n };\n\n case `${OFFICE_STATS_MONTH}_${FULFILLED}`:\n return {\n ...state,\n year: action.payload.year,\n month: action.payload.month,\n statsMonth: {\n ...state.statsMonth,\n isLoading: false,\n status: action.payload.status,\n data: parseGraphData(action.payload.data),\n catchedData: true,\n },\n statsYear: {\n ...state.statsYear,\n catchedData: action.payload.year === state.year ? state.statsYear.catchedData : false,\n },\n }\n\n case `${OFFICE_STATS_MONTH}_${REJECTED}`: \n return {\n ...state,\n statsMonth: {\n ...state.statsMonth,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n },\n };\n\n\n case `${OFFICE_STATS_SWITCH}`:\n return {\n ...state,\n statsChecked: action.payload.statsChecked,\n dateChecked: action.payload.dateChecked,\n };\n\n case `${OFFICE_STATS_RESET}`:\n return {\n ...initialState,\n }\n\n case `${OFFICE_STATS_SELECT_DAY}`:\n return {\n ...state,\n selected: {\n day: action.payload.day,\n month: action.payload.month,\n year: action.payload.year,\n }\n }\n\n case `${OFFICE_STATS_CHANGE_DATE}`:\n return {\n ...state,\n month: action.payload.month,\n year: action.payload.year,\n statsYear: {\n ...state.statsYear,\n catchedData: action.payload.year === state.year ? state.statsYear.catchedData : false,\n },\n statsMonth: {\n ...state.statsMonth,\n catchedData: action.payload.year === state.year && action.payload.month === state.month ? state.statsMonth.catchedData : false,\n },\n }\n \n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { \n PENDING, FULFILLED, REJECTED, \n STATS__MODAL_STATS__TOGGLE,\n STATS__MODAL_STATS__SELECT_OFFICE,\n STATS__MODAL_STATS__GET_OFFICES,\n STATS__MODAL_STATS__GET_STATS,\n} from '../globals';\n\nexport const initialState = {\n modalData: {\n isOpen: false,\n defaultOffice: null,\n selectedOffice: null,\n },\n officesDDData: {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n errorMessage: '',\n },\n statsData: {\n isLoading: false,\n status: false,\n error: false,\n data: [],\n errorMessage: '',\n },\n};\n\nconst reducer = (state = initialState, action) => {\n const { payload, } = action;\n switch (action.type) {\n\n /**\n * Modal Stats - Toggle\n */\n case `${STATS__MODAL_STATS__TOGGLE}`: {\n return {\n ...state,\n modalData: {\n ...state.modalData,\n isOpen: !state.modalData.isOpen,\n defaultOffice: payload.defaultOffice,\n },\n statsData: {\n ...initialState.statsData,\n }\n }\n }\n\n /**\n * Modal Stats - Select Offife\n */\n case `${STATS__MODAL_STATS__SELECT_OFFICE}`: {\n return {\n ...state,\n modalData: {\n ...state.modalData,\n selectedOffice: payload.office,\n }\n }\n }\n\n\n /**\n * Modal Stats - Get Offices DD\n */\n case `${STATS__MODAL_STATS__GET_OFFICES}_${PENDING}`: {\n return {\n ...state,\n officesDDData: {\n ...initialState.officesDDData,\n isLoading: true,\n }\n };\n }\n \n\n case `${STATS__MODAL_STATS__GET_OFFICES}_${FULFILLED}`: {\n let officesDD = [];\n let selectedOffice = null;\n\n for (let i = 0; i < payload.data.length; i++) {\n officesDD.push({\n id: payload.data[i].id,\n name: payload.data[i].pub_server_name,\n });\n\n if (state.modalData.defaultOffice !== null && (state.modalData.defaultOffice).toString() === (payload.data[i].id).toString()) {\n selectedOffice = {\n id: payload.data[i].id,\n name: payload.data[i].pub_server_name,\n };\n }\n }\n\n return {\n ...state,\n officesDDData: {\n ...state.officesDDData,\n isLoading: false,\n status: payload.status,\n data: officesDD,\n },\n modalData: {\n ...state.modalData,\n selectedOffice: selectedOffice,\n }\n };\n }\n \n\n case `${STATS__MODAL_STATS__GET_OFFICES}_${REJECTED}`: {\n return {\n ...state,\n officesDDData: {\n ...state.officesDDData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n }\n }\n\n \n /**\n * Modal Stats - Get Offices DD\n */\n case `${STATS__MODAL_STATS__GET_STATS}_${PENDING}`: {\n return {\n ...state,\n statsData: {\n ...initialState.statsData,\n isLoading: true,\n }\n };\n }\n \n\n case `${STATS__MODAL_STATS__GET_STATS}_${FULFILLED}`: {\n return {\n ...state,\n statsData: {\n ...state.statsData,\n isLoading: false,\n status: payload.status,\n data: payload.data,\n },\n };\n }\n \n\n case `${STATS__MODAL_STATS__GET_STATS}_${REJECTED}`: {\n return {\n ...state,\n statsData: {\n ...state.statsData,\n isLoading: false,\n status: false,\n error: true,\n errorMessage: action.payload.error,\n }\n }\n }\n \n default:\n return state;\n }\n};\n\nexport default reducer;","import { combineReducers } from 'redux';\n\nimport main from './../reducers/main';\nimport offices from './../reducers/offices';\nimport services from './../reducers/services';\nimport intervals from './../reducers/intervals';\nimport reservation from './../reducers/reservation';\nimport confirmEmail from './../reducers/confirmEmail';\nimport deleteReservation from './../reducers/deleteReservation';\nimport officeStats from './../reducers/officeStats';\nimport stats from './../reducers/stats';\n\n\nexport default combineReducers({\n main,\n offices,\n services,\n intervals,\n reservation,\n confirmEmail,\n deleteReservation,\n officeStats,\n stats,\n});\n","import styled from 'styled-components';\n\nimport { WIDTH_SIDE_BAR, HEIGHT_HEADER, BORDER_COLOR_LINE_VERTICAL } from '../../../globals';\n\n\nexport const StyledPageContainer = styled.div`\n .page-header {\n margin-top: ${HEIGHT_HEADER - 1}px;\n border: none;\n }\n\n .page-sidebar {\n margin-left: ${WIDTH_SIDE_BAR}px;\n }\n\n .page-col-left-border {\n border-left: 1px solid ${BORDER_COLOR_LINE_VERTICAL};\n }\n\n .page-row, .page-col {\n min-height: -webkit-calc(100vh - ${HEIGHT_HEADER}px);\n min-height: -moz-calc(100vh - ${HEIGHT_HEADER}px);\n min-height: calc(100vh - ${HEIGHT_HEADER}px);\n }\n\n .page-col-fixed {\n top: ${HEIGHT_HEADER}px;\n right: 0px;\n position: fixed;\n\n width: -webkit-calc((100% - ${WIDTH_SIDE_BAR}px) * 0.5);\n width: -moz-calc((100% - ${WIDTH_SIDE_BAR}px) * 0.5);\n width: calc((100% - ${WIDTH_SIDE_BAR}px) * 0.5);\n\n height: -webkit-calc(100% - ${HEIGHT_HEADER}px);\n height: -moz-calc(100% - ${HEIGHT_HEADER}px);\n height: calc(100% - ${HEIGHT_HEADER}px);\n }\n\n .row-equal {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n flex-wrap: wrap;\n }\n .row-equal > [class*='col-'] {\n display: flex;\n flex-direction: column;\n }\n\n\n @media (max-width: 992px) {\n .page-col-fixed {\n display: none;\n }\n\n .row-equal > [class*='col-'] {\n display: block;\n }\n\n .row-equal > .page-col-hide-md {\n display: none;\n }\n }\n\n\n @media (max-width: 767px) {\n .page-header {\n margin-top: 0px;\n }\n \n .page-sidebar {\n margin-left: 0px;\n }\n\n .page-row, .page-col {\n min-height: 0;\n width: 100%;\n }\n\n .page-col-fixed {\n top: inherit;\n right: inherit;\n position: fixed;\n width: inherit;\n height: inherit;\n }\n }\n`;\n","import React, { Component } from 'react';\n\nimport { StyledPageContainer } from './styles/StyledPageContainer';\n\nclass PageContainer extends Component {\n render() {\n return (\n \n { this.props.children }\n \n );\n }\n}\n\nexport default PageContainer;","import React, { Component } from 'react';\n\nimport PageContainer from '../components/PageContainer/PageContainer';\n\n\nclass MainLayout extends Component {\n render() {\n \n return (\n
\n
\n { this.props.children }\n \n
\n );\n }\n}\n\nexport default MainLayout;\n","// src/MapComponent.js\nimport React from 'react';\nimport { Map, TileLayer, Marker, Popup } from 'react-leaflet';\nimport 'leaflet/dist/leaflet.css';\nimport L from 'leaflet';\n\n// Set the default icon for markers\nconst defaultIcon = L.icon({\n iconUrl: 'https://unpkg.com/leaflet@1.7.1/dist/images/marker-icon.png',\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n shadowUrl: 'https://unpkg.com/leaflet@1.7.1/dist/images/marker-shadow.png',\n shadowSize: [41, 41],\n});\n\n// Assign the default marker icon to all markers\nL.Marker.prototype.options.icon = defaultIcon;\n\nconst MapComponent = ({ center = { lat: 50.075172019694584, lng: 14.450660048824602 }, height, zoom, officeData } ) => {\n const isSingleOffice = !Array.isArray(officeData.data);\n const hasOffices = Array.isArray(officeData.data) && officeData.data.length > 0;\n \n console.log(isSingleOffice, hasOffices, officeData)\n\n return (\n \n \n {/* Conditionally render markers based on data presence */}\n {hasOffices && officeData.data.map(office => (\n \n \n \n {office.pub_server_name} \n {office.server_address} \n {office.place_additional_info}\n
\n \n \n ))}\n {/* If officeData is a single office object, display that marker */}\n {isSingleOffice && (\n \n \n \n {officeData.data.pub_server_name} \n {officeData.data.server_address} \n {officeData.data.place_additional_info}\n
\n \n \n )}\n \n );\n};\n\nexport default MapComponent;","import { API_URL } from '../../config';\nimport { CALL_API } from '../../middlewares/apiMiddleware';\nimport { \n PENDING, FULFILLED, REJECTED,\n STATS__MODAL_STATS__TOGGLE,\n STATS__MODAL_STATS__GET_OFFICES,\n STATS__MODAL_STATS__SELECT_OFFICE,\n STATS__MODAL_STATS__GET_STATS,\n} from '../../globals';\n\n\n/**\n * Modal Stats - Toggle\n */\nexport function toggleStatsModal(defaultOffice = null) {\n return {\n type: `${STATS__MODAL_STATS__TOGGLE}`,\n payload: {\n defaultOffice,\n },\n };\n}\n\n\n/**\n * Modal Stats - Select Office\n */\nexport function selectOffice(office) {\n return {\n type: `${STATS__MODAL_STATS__SELECT_OFFICE}`,\n payload: {\n office,\n },\n };\n}\n\n\n/**\n * Get Offices DropDown data\n */\nexport function getOfficesDDRequest(){\n return {\n type: `${STATS__MODAL_STATS__GET_OFFICES}_${PENDING}`,\n };\n}\n\nexport function getOfficesDDSuccess(response){\n return {\n type: `${STATS__MODAL_STATS__GET_OFFICES}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function getOfficesDDFailure(response){\n return {\n type: `${STATS__MODAL_STATS__GET_OFFICES}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\nexport const getOfficesDD = () => ({\n [CALL_API]: {\n actions: [getOfficesDDRequest, getOfficesDDSuccess, getOfficesDDFailure],\n url: `${API_URL}/web/stores`,\n },\n});\n\n\n/**\n * Get Stats for Office\n */\nexport function getStatsRequest(){\n return {\n type: `${STATS__MODAL_STATS__GET_STATS}_${PENDING}`,\n };\n}\n\nexport function getStatsSuccess(response){\n return {\n type: `${STATS__MODAL_STATS__GET_STATS}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function getStatsFailure(response){\n return {\n type: `${STATS__MODAL_STATS__GET_STATS}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\nexport const getStats = (officeId) => ({\n [CALL_API]: {\n actions: [getStatsRequest, getStatsSuccess, getStatsFailure],\n url: `${API_URL}/web/stat?store_id=${officeId}`,\n },\n});\n","import React, { Component } from 'react';\nimport Select from 'react-select';\n\nimport {\n COLOR_1,\n} from '../../config';\n\n\nclass InputSelect extends Component {\n customStyles = {\n control: (base, {isFocused, isSelected}) => ({\n ...base,\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: isFocused || isSelected ? COLOR_1 : '#ccc',\n borderRadius: 0,\n backgroundColor: 'white',\n boxShadow: 'none',\n '&:hover': {\n borderColor: COLOR_1,\n }\n }),\n menu: (base) => ({\n ...base,\n borderRadius: 0,\n }),\n\n option: (base, {isSelected}) => ({\n ...base,\n backgroundColor: isSelected ? COLOR_1 : 'white',\n color: isSelected ? 'white' : 'inherit',\n '&:hover': {\n backgroundColor: COLOR_1,\n color: 'white',\n },\n }),\n }\n\n \n render() {\n return (\n \n );\n }\n}\n\nexport default InputSelect;\n","import React from 'react';\n\n\nconst TableHeader = () => (\n \n
\n
Id
\n
Název
\n
Přepážky
\n
Odbavených
\n
Maximální doba čekání
\n
Čekajících klientů
\n
Průměrná doba čekání
\n
Poslední vyvolaný
\n
\n
\n);\n\n\nexport default TableHeader;\n","import styled from 'styled-components';\n\nimport { COLOR_LOADER } from '../../../globals';\n\n\nexport const StyledLoadingSpinner = styled.div`\n display: inherit;\n overflow: hidden;\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0px;\n left: 0px;\n background-color: ${props => props.backgroundColor};\n\n .loader-container {\n height: 100%;\n width: 100%;\n display: table;\n position: relative;\n left: 0;\n top: 0;\n }\n\n .loader-content {\n border-radius: 1px;\n padding-top: 0;\n padding-left: 10%;\n padding-right: 10%;\n position: static;\n vertical-align: middle;\n display: table-cell;\n }\n\n .loader-spinner {\n border: ${props => props.spinnerFat}px solid #b9b6b6;\n -webkit-animation: spin 1s linear infinite;\n animation: spin 1s linear infinite;\n border-top: ${props => props.spinnerFat}px solid #555;\n border-radius: 50%;\n width: ${props => props.spinnerSize}px;\n height: ${props => props.spinnerSize}px;\n left: 50%;\n margin: 0 auto;\n }\n\n .loader-text {\n margin: 5px;\n color: ${COLOR_LOADER};\n text-align: center;\n font-size: ${props => props.textSize}em;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { BACKGROUND_LOADER, FONT_SIZE_LOADER, SIZE_LOADER, FAT_LOADER } from '../../globals';\n\nimport { StyledLoadingSpinner } from './styles/StyledLoadingSpinner';\n\n\nclass LoadingSpinner extends Component {\n render() {\n const { text, textSize, spinnerSize, backgroundColor, spinnerFat } = this.props;\n\n return (\n \n \n \n );\n }\n}\n\n\nLoadingSpinner.propTypes = {\n text: PropTypes.string,\n textSize: PropTypes.number,\n spinnerSize: PropTypes.number,\n spinnerFat: PropTypes.number,\n backgroundColor: PropTypes.string,\n};\n\nLoadingSpinner.defaultProps = {\n textSize: FONT_SIZE_LOADER,\n spinnerSize: SIZE_LOADER,\n spinnerFat: FAT_LOADER,\n backgroundColor: BACKGROUND_LOADER\n};\n\nexport default LoadingSpinner;","import React from 'react';\nimport pt from 'prop-types';\n\nimport LoadingSpinner from '../../common/LoadingSpinner/LoadingSpinner';\n\n\nconst TableRows = ({ \n statsData: {\n isLoading,\n data,\n },\n}) => {\n if (isLoading) {\n return (\n \n \n
\n );\n }\n \n return (\n \n { data.map((item, index) => (\n
\n
Id:
\n
{item.service_id}
\n
Název:
\n
{item.web_order_name}
\n
Přepážky:
\n
{item.open_desks}
\n
Odbavených:
\n
{item.served_clients}
\n
Maximální doba čekání:
\n
{Math.round((item.waiting_max_length / 60)) + ' min'}
\n
Čekajících klientů:
\n
{item.waiting_clients}
\n
Průměrná doba čekání:
\n
{Math.round((item.waiting_avg_length / 60)) + ' min'}
\n
Poslední vyvolaný:
\n
{item.last_number === null || item.last_number === 0 ? '-' : item.last_number}
\n
\n ))}\n
\n );\n};\n\n\nTableRows.propTypes = {\n statsData: pt.shape({\n isLoading: pt.bool.isRequired,\n data: pt.arrayOf(pt.shape({\n service_id: pt.number.isRequired,\n web_order_name: pt.string,\n open_desks: pt.number,\n served_clients: pt.number,\n waiting_max_length: pt.number,\n waiting_clients: pt.number,\n waiting_avg_length: pt.number,\n last_number: pt.number,\n })).isRequired,\n }).isRequired,\n};\n\n\nexport default TableRows;\n","import styled from 'styled-components';\n\n\nconst StyledStatsTable = styled.div`\n .stats-view--header {\n font-size: 1.325em;\n font-weight: bold;\n margin-bottom: 14px;\n }\n\n .stats-view--input-label {\n font-weight: 700;\n font-size: 0.9em;\n }\n\n .stats-view--input {\n max-width: 500px;\n }\n\n .stats-view--table--laoder {\n position: relative;\n height: 80px;\n }\n\n .stats-view--table--data {\n min-height: 80px;\n }\n\n .stats-view--table--header--wrapper {\n margin-top: 7px;\n }\n\n .stats-view--table--header {\n margin-right: 0;\n margin-left: 0;\n box-sizing: border-box;\n border-bottom: 2px solid #ccc;\n }\n\n .stats-view--table--header-item {\n text-align: right;\n padding-right: 7px;\n padding-left: 7px;\n font-weight: 700;\n }\n\n .stats-view--table--name {\n text-align: left;\n }\n\n .stats-view--table--header-sm {\n display: none;\n }\n\n .stats-view--table--row {\n margin-right: 0;\n margin-left: 0;\n box-sizing: border-box;\n\n padding-top: 10px;\n padding-bottom: 10px;\n border-bottom: 2px solid #ccc;\n }\n\n .stats-view--table--row--even {\n background: #f4f4f4;\n }\n\n .stats-view--table--item {\n padding-right: 7px;\n padding-left: 7px;\n text-align: right;\n width: unset;\n }\n\n .stats-view--table--id {\n display: inline-block;\n width: 4%;\n text-align: left;\n }\n\n .stats-view--table--name {\n display: inline-block;\n width: 24%;\n text-align: left;\n }\n\n .stats-view--table--desk {\n display: inline-block;\n width: 12%;\n }\n\n .stats-view--table--clients {\n display: inline-block;\n width: 12%;\n }\n\n .stats-view--table--max-len {\n display: inline-block;\n width: 12%;\n }\n\n .stats-view--table--wait-cli {\n display: inline-block;\n width: 12%;\n }\n\n .stats-view--table--wait-avg {\n display: inline-block;\n width: 12%;\n }\n\n .stats-view--table--last {\n display: inline-block;\n width: 12%;\n }\n\n\n @media (max-width: 992px) {\n .stats-view--table--item {\n text-align: left;\n width: 100%;\n }\n \n .stats-view--table--header {\n display: none;\n }\n\n .stats-view--table--header-sm {\n display: block;\n font-size: 0.9em;\n font-weight: 700;\n padding-right: 7px;\n padding-left: 7px;\n }\n\n .stats-view--table--row {\n display: block;\n -ms-flex-wrap: unset;\n flex-wrap: unset;\n box-sizing: border-box;\n }\n\n .stats-view--table--id {\n max-width: 100%;\n -ms-flex: unset;\n flex: unset;\n }\n\n .stats-view--table--name {\n max-width: 100%;\n -ms-flex: unset;\n flex: unset;\n }\n\n .stats-view--table--desk {\n max-width: 100%;\n -ms-flex: unset;\n flex: unset; \n }\n\n .stats-view--table--clients {\n max-width: 100%;\n -ms-flex: unset;\n flex: unset; \n }\n\n .stats-view--table--max-len {\n max-width: 100%;\n -ms-flex: unset;\n flex: unset; \n }\n\n .stats-view--table--wait-cli {\n max-width: 100%;\n -ms-flex: unset;\n flex: unset; \n }\n\n .stats-view--table--wait-avg {\n max-width: 100%;\n -ms-flex: unset;\n flex: unset; \n }\n\n .stats-view--table--last {\n max-width: 100%;\n -ms-flex: unset;\n flex: unset; \n }\n }\n\n @media print {\n .stats-view--header {\n font-size: 1em;\n font-weight: bold;\n margin-bottom: 14px;\n color: red;\n }\n\n .stats-view--input-label {\n font-weight: 700;\n font-size: 0.9em;\n }\n\n .stats-view--input {\n max-width: 500px;\n }\n\n .stats-view--table--laoder {\n position: relative;\n height: 80px;\n }\n\n .stats-view--table--data {\n border: 2px solid #ccc;\n font-size: 0.85em;\n }\n\n .stats-view--table--header--wrapper {\n font-size: 0.9em;\n border: 2px solid #ccc;\n border-bottom: none;\n }\n\n .stats-view--table--header {\n display: block;\n border-bottom: 2px solid #ccc;\n }\n\n .stats-view--table--header-item {\n text-align: right;\n padding-right: 7px;\n padding-left: 7px;\n font-weight: 700;\n }\n\n .stats-view--table--name {\n text-align: left;\n }\n\n .stats-view--table--header-sm {\n display: none;\n }\n\n .stats-view--table--row {\n margin-right: 0;\n margin-left: 0;\n box-sizing: border-box;\n\n padding-top: 10px;\n padding-bottom: 10px;\n border-bottom: 2px solid #ccc;\n }\n\n .stats-view--table--row--even {\n background: #f4f4f4;\n }\n\n .stats-view--table--item {\n padding-right: 7px;\n padding-left: 7px;\n text-align: right;\n width: unset;\n }\n\n .stats-view--table--id {\n display: inline-block;\n width: 4%;\n text-align: left;\n }\n\n .stats-view--table--name {\n display: inline-block;\n width: 36%;\n text-align: left;\n }\n\n .stats-view--table--desk {\n display: inline-block;\n width: 10%;\n }\n\n .stats-view--table--clients {\n display: inline-block;\n width: 10%;\n }\n\n .stats-view--table--max-len {\n display: inline-block;\n width: 10%;\n }\n\n .stats-view--table--wait-cli {\n display: inline-block;\n width: 10%;\n }\n\n .stats-view--table--wait-avg {\n display: inline-block;\n width: 10%;\n }\n\n .stats-view--table--last {\n display: inline-block;\n width: 10%;\n }\n }\n`;\n\nexport default StyledStatsTable;\n","import styled from 'styled-components';\n\n\nconst StyledStats = styled.div`\n max-width: 1200px;\n width: calc(95vw - 28px);\n background: white;\n padding: 14px;\n\n @media (max-width: 992px) {\n width: calc(95vw - 28px);\n }\n`;\n\nexport default StyledStats;\n","import React, { Component } from 'react';\n\nimport InputSelect from '../../common/InputSelect/InputSelect';\nimport TableHeader from './TableHeader';\nimport TableRows from './TableRows';\n\nimport StyledStatsTable from './styles/StyledStatsTable';\nimport StyledStats from './styles/StyledStats';\n\n\nclass StatsView extends Component {\n componentDidMount() {\n const { \n modalData,\n getOfficesDD, getStats,\n } = this.props;\n\n getOfficesDD();\n if (modalData.defaultOffice !== null) {\n getStats(modalData.defaultOffice)\n }\n }\n\n render() {\n const { \n modalData, statsData, officesDDData,\n handleSelectOffice,\n } = this.props;\n return (\n \n \n\n \n Statistiky\n
\n\n \n
\n Pobočka\n
\n
handleSelectOffice(selected)}\n value={modalData.selectedOffice}\n getOptionValue={(option) => option.id}\n getOptionLabel={(option) => option.name}\n isLoading={officesDDData.isLoading}\n placeholder=\"Zvolte pobočku\"\n noOptionsMessage={() => 'Žádné pobočky'}\n loadingMessage={() => 'Načítám'}\n />\n \n \n \n \n\n \n \n );\n }\n}\n\nexport default StatsView;\n","import React, { Component } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport Modal from 'react-responsive-modal';\n\nimport { toggleStatsModal, selectOffice, getOfficesDD, getStats, } from './actions';\nimport StatsView from './StatsView';\n\n\nclass StatsContainer extends Component {\n constructor(props) {\n super(props);\n\n this.handleToggle = this.handleToggle.bind(this);\n this.handleSelectOffice = this.handleSelectOffice.bind(this);\n }\n\n handleToggle() {\n const { toggleStatsModal, } = this.props;\n\n toggleStatsModal();\n }\n\n handleSelectOffice(selected) {\n const { selectOffice, getStats, } = this.props;\n if (selected !== null) {\n getStats(selected.id);\n }\n\n selectOffice(selected);\n }\n \n render() {\n const { \n modalData, statsData, officesDDData,\n getOfficesDD, getStats,\n } = this.props;\n\n return (\n \n { modalData.isOpen &&\n \n }\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n const { stats, } = state;\n return { \n officesDDData: stats.officesDDData,\n statsData: stats.statsData,\n modalData: stats.modalData,\n };\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n toggleStatsModal: bindActionCreators(toggleStatsModal, dispatch),\n selectOffice: bindActionCreators(selectOffice, dispatch),\n getOfficesDD: bindActionCreators(getOfficesDD, dispatch),\n getStats: bindActionCreators(getStats, dispatch),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StatsContainer);","import styled from 'styled-components';\n\nimport { BACKGROUND_HEADER, BACKGROUND_HEADER_LOGO, BORDER_HEADER, BORDER_HEADER_LOGO, BORDER_HEADER_LOGO_RIGHT, BORDER_HEADER_LEFT, WIDTH_SIDE_BAR, FONT_SIZE_HEADER_LOGO, BACKGROUND_HEADER_MOBILE } from '../../../globals';\n\n\nexport const StyledHeader = styled.div`\n top: 0; \n left: 0;\n position: fixed;\n width: 100%;\n overflow: hidden;\n z-index: 500;\n margin: 0px;\n padding: 0px;\n \n .header-row {\n display: table;\n width: 100%;\n height: 100%;\n margin: 0px;\n padding: 0px;\n position: relative;\n }\n\n .header-column {\n display: table-cell;\n }\n\n .header-logo {\n height: 50px;\n width: ${WIDTH_SIDE_BAR}px;\n background-color: ${BACKGROUND_HEADER_LOGO}; \n border-bottom: 2px solid ${BORDER_HEADER_LOGO}; \n border-right: 1px solid ${BORDER_HEADER_LOGO_RIGHT}; \n z-index: 500;\n\n text-align: center;\n vertical-align: middle;\n color: white;\n font-size: ${FONT_SIZE_HEADER_LOGO}em;\n }\n\n .header-logo-img {\n max-height: 35px;\n }\n\n .header-panel {\n background-color: ${BACKGROUND_HEADER}; \n border-bottom: 2px solid ${BORDER_HEADER}; \n border-left: 1px solid ${BORDER_HEADER_LEFT}; \n border: colapse;\n z-index: 500;\n vertical-align: middle;\n text-align: center;\n }\n\n .header-panel--title-small {\n display: none;\n }\n\n .header-panel--title {\n color: white;\n font-size: 1.75rem;\n font-weight: bold;\n padding-left: 7px;\n padding-right: 7px;\n }\n\n .header-panel--item {\n position: absolute;\n top: 7px;\n right: 0;\n color: white;\n font-weight: bold;\n padding: 7px;\n cursor: pointer;\n }\n\n .header-panel--item:hover {\n color: ${BACKGROUND_HEADER};\n background: white;\n }\n\n .header-text {\n margin: 5px;\n color: inherit;\n text-decoration: none;\n }\n\n .btn-office-content:hover, .btn-office-content:visited, .btn-office-content:active {\n text-decoration: none;\n }\n\n\n @media (max-width: 767px) {\n position: relative;\n \n\n .header-logo {\n background-color: ${BACKGROUND_HEADER_MOBILE}; \n width: 100%; \n border-bottom: 2px solid ${BORDER_HEADER_LOGO}; \n border-right: none; \n text-align: left;\n }\n\n .header-panel--title-small {\n background-color: ${BACKGROUND_HEADER_LOGO}; \n display: inline-block;\n vertical-align: middle;\n text-align: center;\n width: 100%;\n line-height: 50px;\n }\n\n .header-panel--title-wide {\n display: none;\n }\n\n .header-panel {\n width: 0px;\n background-color: transaprent; \n border-bottom: none; \n border-left: none; \n }\n\n .header-panel--item {\n font-size: 1.25em;\n top: 5px;\n }\n\n .header-panel--item-text {\n display: none;\n }\n }\n\n`;\n","import React, { Component } from 'react';\nimport { Link } from 'react-router';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { API_URL } from '../../config';\nimport { toggleStatsModal, } from '../Stats/actions';\nimport StatsContainer from '../Stats/StatsContainer';\nimport { APP_TITLE, } from '../../config';\n\nimport { StyledHeader } from './styles/StyledHeader';\n\n\nclass Header extends Component {\n render() {\n const {\n logoName, office,\n toggleStatsModal,\n } = this.props;\n const haveLogo = logoName !== '';\n const logoSrc = API_URL + '/files/' + logoName;\n\n return (\n \n\n \n\n {(haveLogo && APP_TITLE !== '') && (\n \n { APP_TITLE }\n
\n )}\n\n \n
\n
\n { haveLogo &&\n
\n }\n { !haveLogo &&\n
\n Rezervační systém\n \n }\n \n \n
\n
\n {(haveLogo && APP_TITLE !== '') && (\n \n { APP_TITLE }\n \n )}\n toggleStatsModal(office)}\n >\n Stav služeb \n \n
\n
\n\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n toggleStatsModal: bindActionCreators(toggleStatsModal, dispatch),\n };\n}\n\nexport default connect(null, mapDispatchToProps)(Header);\n","import styled from 'styled-components';\n\nimport { \n WIDTH_SIDE_BAR,\n PADDING_BTN_SIDE_BAR, \n BACKGROUND_SIDE_BAR,\n COLOR_BTN_SIDE_BAR,\n FONT_BTN_SIDE_BAR_ICON,\n FONT_BTN_SIDE_BAR_STEP,\n FONT_BTN_SIDE_BAR_TITLE,\n FONT_BTN_SIDE_BAR_ICON_MOBILE,\n} from '../../../globals';\n\nexport const StyledBtnSideBar = styled.div`\n width: ${WIDTH_SIDE_BAR}px;\n \n ${props => props.isActive ? 'background-color:' + COLOR_BTN_SIDE_BAR + ';' : ''}\n ${props => props.isActive ? 'border-right: 1px solid white;' : ''}\n \n padding: ${PADDING_BTN_SIDE_BAR}px 0px ${PADDING_BTN_SIDE_BAR}px 0px;\n text-align: center; \n\n .btn-sidebar-link {\n display: block;\n text-decoration: none;\n cursor: ${props => props.enableClick ? 'pointer' : 'default'};\n }\n\n .btn-sidebar-link:hover, .btn-sidebar-link:visited, .btn-sidebar-link:active {\n text-decoration: none;\n }\n\n .btn-sidebar-content {\n color: ${props => props.isActive ? BACKGROUND_SIDE_BAR : COLOR_BTN_SIDE_BAR};\n }\n\n .btn-sidebar-icon {\n font-size: ${FONT_BTN_SIDE_BAR_ICON}em;\n }\n\n .btn-sidebar-step {\n font-size: ${FONT_BTN_SIDE_BAR_STEP}em;\n font-weight: 700;\n padding-bottom: 3px;\n }\n\n .btn-sidebar-title {\n font-size: ${FONT_BTN_SIDE_BAR_TITLE}em;\n font-weight: 700;\n text-transform: uppercase;\n }\n\n \n @media (max-width: 767px) {\n width: auto;\n border-right: none;\n height: 100%;\n padding: 0px;\n\n .btn-sidebar-icon {\n font-size: ${FONT_BTN_SIDE_BAR_ICON_MOBILE}em;\n height: 100%;\n padding-top: ${PADDING_BTN_SIDE_BAR}px;\n }\n\n .btn-sidebar-step {\n display: none;\n }\n\n .btn-sidebar-title {\n display: none;\n }\n }\n\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router';\n\nimport { StyledBtnSideBar } from './styles/StyledBtnSideBar';\n\nclass BtnSideBar extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnClickBtn = this.handleOnClickBtn.bind(this);\n }\n\n handleOnClickBtn(e) {\n if (!this.props.enableClick) {\n e.preventDefault();\n }\n }\n\n render() {\n const {text, icon, isActive, position, linkTo, enableClick} = this.props;\n return (\n \n \n \n
\n \n
\n
\n { position + '. krok' }\n
\n
\n { text }\n
\n
\n \n \n );\n }\n}\n\n\nBtnSideBar.propTypes = {\n text: PropTypes.string,\n icon: PropTypes.string.isRequired,\n isActive: PropTypes.bool.isRequired,\n position: PropTypes.number.isRequired,\n linkTo: PropTypes.string.isRequired,\n enableClick: PropTypes.bool.isRequired,\n};\n\n\nexport default BtnSideBar;","import styled from 'styled-components';\n\nimport { WIDTH_SIDE_BAR, PADDING_SEPARATOR_SIDE_BAR, FONT_SEPARATOR_SIDE_BAR_ICON, COLOR_SIDE_BAR_ICON, FONT_SEPARATOR_SIDE_BAR_ICON_MOBILE } from '../../../globals';\n\nexport const StyledSeparatorSideBar = styled.div`\n width: ${WIDTH_SIDE_BAR}px; \n text-align: center;\n color: ${COLOR_SIDE_BAR_ICON};\n padding: ${PADDING_SEPARATOR_SIDE_BAR}px;\n\n font-size: ${FONT_SEPARATOR_SIDE_BAR_ICON}px;\n\n .btn-sidebar-separator {\n\n }\n\n .btn-sidebar-separator-down {\n display: block;\n }\n\n .btn-sidebar-separator-right {\n display: none;\n }\n\n @media (max-width: 767px) {\n width: 20px;\n margin: 0px;\n height: 100%;\n font-size: ${FONT_SEPARATOR_SIDE_BAR_ICON_MOBILE}em;\n\n i {\n display: table-cell;\n height: 100%;\n width: 100%;\n vertical-align:middle;\n text-align:center;\n }\n\n .btn-sidebar-separator-down {\n display: none;\n }\n\n .btn-sidebar-separator-right {\n display: table;\n height: 100%; \n vertical-align:middle;\n text-align:center;\n height: 100%;\n width: 100%;\n }\n }\n`;\n","import React, { Component } from 'react';\n\nimport { StyledSeparatorSideBar } from './styles/StyledSeparatorSideBar';\n\nclass SeparatorSideBar extends Component {\n render() {\n return (\n \n \n \n
\n \n \n
\n \n );\n }\n}\n\nexport default SeparatorSideBar;","import styled from 'styled-components';\n\nimport { BACKGROUND_SIDE_BAR, BORDER_SIDE_BAR, HEIGHT_HEADER, WIDTH_SIDE_BAR, WIDTH_SIDE_BAR_SEPARATOR_MOBILE } from '../../../globals';\n\n\nexport const StyledSideBar = styled.div`\n top: ${HEIGHT_HEADER - 1}px; \n left: 0px;\n position: fixed;\n width: ${WIDTH_SIDE_BAR}px;\n height: 100%; \n z-index: 400;\n \n background-color: ${BACKGROUND_SIDE_BAR}; \n border-right: 2px solid ${BORDER_SIDE_BAR};\n\n padding: 0px;\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px;\n }\n\n @media (max-width: 767px) {\n position: relative;\n top: -1px;\n width: 100%;\n border-right: none;\n\n\n ul {\n list-style: none;\n display: table;\n width: 100%;\n height: 50px;\n }\n\n li {\n text-align: center;\n display: table-cell;\n height: 100%;\n vertical-align:middle;\n }\n\n .sidebar-button {\n width: auto;\n \n }\n\n .sidebar-separator {\n width: ${WIDTH_SIDE_BAR_SEPARATOR_MOBILE}px;\n }\n\n\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SINGLE_OFFICE_MODE } from '../../config';\nimport BtnSideBar from '../../common/BtnSideBar/BtnSideBar';\nimport SeparatorSideBar from '../../common/SeparatorSideBar/SeparatorSideBar';\n\nimport { StyledSideBar } from './styles/StyledSideBar';\n\n\nclass SideBar extends Component {\n render() {\n const { activePage, officeId, serviceId, intervalId, titleOne, titleTwo, titleThree, titleFour, } = this.props;\n \n return (\n \n \n { !SINGLE_OFFICE_MODE && \n \n \n \n }\n { !SINGLE_OFFICE_MODE &&\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\nSideBar.propTypes = {\n activePage: PropTypes.number.isRequired,\n officeId: PropTypes.string.isRequired,\n serviceId: PropTypes.string.isRequired,\n intervalId: PropTypes.string.isRequired,\n titleOne: PropTypes.string,\n titleTwo: PropTypes.string,\n titleThree: PropTypes.string,\n titleFour: PropTypes.string,\n};\n\n\nexport default SideBar;","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, FONT_SIZE_TITLE_TOP, COLOR_NUMBER_TITLE_TOP } from '../../../globals';\n\n\nexport const StyledTitleTop = styled.h1`\n padding: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n font-size: ${FONT_SIZE_TITLE_TOP}em;\n font-weight: bold;\n\n .title-top-num {\n color: ${COLOR_NUMBER_TITLE_TOP};\n }\n\n .title-top-title {\n \n }\n}\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledTitleTop } from './styles/StyledTitleTop';\n\n\nclass TitleTop extends Component {\n render() {\n const { title, number } = this.props;\n return (\n \n { number !== undefined &&\n { number + '.' } \n } \n { title } \n \n );\n }\n}\n\n\nTitleTop.defaultProps = {\n number: undefined,\n};\n\n\n\nTitleTop.propTypes = {\n title: PropTypes.string.isRequired,\n number: PropTypes.number,\n};\n\n\nexport default TitleTop;\n","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE } from '../../../globals';\n\n\nexport const StyledTextWrapper = styled.div`\n padding: 0px ${PADDING_CONTENT_PAGE}px 12px ${PADDING_CONTENT_PAGE}px;\n`;\n","import React, { Component } from 'react';\n\nimport { StyledTextWrapper } from './styles/StyledTextWrapper';\n\n\nclass TextWrapper extends Component {\n render() {\n const { children } = this.props;\n return (\n \n {children}\n \n );\n }\n}\n\nexport default TextWrapper;\n","import styled from 'styled-components';\n\nimport { BACKGROUND_ERROR, COLOR_ERROR } from '../../../globals';\n\n\nexport const StyledErrorScreen = styled.div`\n display: inherit;\n overflow: hidden;\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0px;\n left: 0px;\n background-color: ${BACKGROUND_ERROR};\n color: ${COLOR_ERROR};\n font-size: ${props => props.textSize}em;\n\n .error-container {\n height: 100%;\n width: 100%;\n display: table;\n position: relative;\n left: 0;\n top: 0;\n }\n\n .error-content {\n border-radius: 1px;\n padding-top: 0;\n padding-left: 10%;\n padding-right: 10%;\n position: static;\n vertical-align: middle;\n display: table-cell;\n }\n\n .error-title {\n margin: 5px;\n text-align: center;\n }\n\n .error-icon {\n font-size: ${props => props.textSize + 0.5}em;\n margin: 5px;\n text-align: center;\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledErrorScreen } from './styles/StyledErrorScreen';\n\n\nclass ErrorScreen extends Component {\n render() {\n const { title, textSize } = this.props;\n\n return (\n \n \n
\n
\n \n
\n
\n { title } \n
\n
\n
\n \n );\n }\n}\n\n\nErrorScreen.defaultProps = {\n title: 'Nepodařilo se načíst data. Zkuste prosím stránku načíst znovu, nebo opakujte akci později.',\n textSize: 1,\n};\n\n\nErrorScreen.propTypes = {\n title: PropTypes.string,\n textSize: PropTypes.number,\n};\n\n\nexport default ErrorScreen;","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE } from '../../../globals';\n\n\nexport const StyledBlockWrapper = styled.div`\n margin: 0px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n position: relative;\n ${props => props.setMinHeight ? 'min-height: ' + props.minHeight + 'px;' : ''}\n}\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n\nimport LoadingSpinner from '../../common/LoadingSpinner/LoadingSpinner';\nimport ErrorScreen from '../../common/ErrorScreen/ErrorScreen';\n\nimport { StyledBlockWrapper } from './styles/StyledBlockWrapper';\n\n\nclass DataWrapper extends Component {\n render() {\n const { isLoading, status, children, minHeight, errorMessage, isLoadingText, spinnerFat, spinnerSize, textSizeLoading, textSizeError } = this.props;\n\n if (isLoading) {\n return (\n \n\n \n\n \n );\n }\n\n if (!status) {\n return (\n \n\n \n\n \n );\n }\n\n return (\n \n { children }\n
\n );\n }\n}\n\n\nDataWrapper.defaultProps = {\n errorMessage: 'Nepodařilo se načíst data. Zkuste prosím stránku načíst znovu, nebo opakujte akci později.',\n isLoadingText: 'Obsah se načítá',\n};\n\n\n\nDataWrapper.propTypes = {\n errorMessage: PropTypes.string,\n isLoadingText: PropTypes.string,\n isLoading: PropTypes.bool.isRequired,\n status: PropTypes.bool.isRequired,\n minHeight: PropTypes.number.isRequired,\n spinnerFat: PropTypes.number,\n spinnerSize: PropTypes.number,\n textSizeLoading: PropTypes.number,\n textSizeError: PropTypes.number,\n};\n\n\nexport default DataWrapper;","import styled from 'styled-components';\n\nimport { BACKGROUND_BTN_HOVER, BACKGROUND_BTN, FONT_SIZE_BTN_TITLE, FONT_SIZE_BTN_TEXT, PADDING_CONTENT_PAGE, HEIGHT_BTN,LINE_HEIGHT_BTN, FONT_SIZE_BTN_ARROW, COLOR_BTN_HOVER } from '../../../globals';\n\nexport const StyledBtnOffice = styled.div`\n height: 100%;\n\n .btn-office-container {\n padding: ${PADDING_CONTENT_PAGE}px;\n height: 100%;\n }\n\n .btn-office-content {\n display: block;\n background-color: ${BACKGROUND_BTN};\n padding: 15px;\n cursor: pointer;\n box-shadow: 1px 1px 2px rgb(171, 169, 169);\n border-radius: 2px;\n color: inherit;\n text-decoration: none;\n height: 100%;\n }\n\n .btn-office-content:hover, .btn-office-content:visited, .btn-office-content:active {\n text-decoration: none;\n }\n\n .btn-office-table {\n width: 100%;\n table-layout: fixed;\n height: 100%;\n }\n\n td, div {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .btn-office-content:hover {\n background-color: ${BACKGROUND_BTN_HOVER};\n color: ${COLOR_BTN_HOVER};\n }\n\n .btn-office-title {\n font-weight: bold;\n font-size: ${FONT_SIZE_BTN_TITLE}em;\n }\n\n .btn-office-address {\n font-size: ${FONT_SIZE_BTN_TEXT}em;\n line-height: ${LINE_HEIGHT_BTN};\n height: ${HEIGHT_BTN};\n word-break: normal;\n }\n\n .btn-office-arrow {\n width: 25px;\n text-align: center;\n vertical-align: middle;\n font-size: ${FONT_SIZE_BTN_ARROW}em;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n","import React, { Component } from 'react';\nimport { Link } from 'react-router';\n\nimport { StyledBtnOffice } from './styles/StyledBtnOffice';\n\nclass BtnOffice extends Component {\n render() {\n const { id, title, text, handleOnMouseMoveBtnOffice, position} = this.props;\n\n return (\n \n \n
handleOnMouseMoveBtnOffice(e, position, id)}\n >\n
\n \n \n \n \n { title }\n
\n \n { text }\n
\n \n \n \n \n \n \n
\n \n
\n \n );\n }\n}\n\nexport default BtnOffice;","import styled from 'styled-components';\n\nimport { PADDING_PAGE } from '../../../globals';\n\n\nexport const StyledOfficesContent = styled.div`\n padding: ${PADDING_PAGE}px;\n\n .office-content-row {\n margin: 0px;\n }\n}\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { MAIN_CONTENT_DATA_WRAPPER_SETTINGS } from '../../globals';\nimport TitleTop from '../../common/TitleTop/TitleTop';\nimport TextWrapper from '../../common/TextWrapper/TextWrapper';\nimport DataWrapper from '../../common/DataWrapper/DataWrapper';\nimport BtnOffice from '../../common/BtnOffice/BtnOffice';\nimport ErrorScreen from '../../common/ErrorScreen/ErrorScreen';\nimport { StyledBlockWrapper } from '../../common/DataWrapper/styles/StyledBlockWrapper';\n\nimport { StyledOfficesContent } from './styles/StyledOfficesContent';\n\n\nclass OfficesContent extends Component {\n constructor(props) {\n super(props);\n\n this.renderOffices = this.renderOffices.bind(this);\n this.renderOffice = this.renderOffice.bind(this);\n }\n\n renderOffices() {\n const { officesData } = this.props;\n const length = officesData.data.length;\n\n let ret = [];\n\n for (var i = 1; i < length; i = i + 2) {\n ret.push(\n \n
\n {this.renderOffice(i - 1)}\n
\n
\n {this.renderOffice(i)}\n
\n
\n );\n }\n\n if (length % 2 === 1) {\n ret.push(\n \n
\n {this.renderOffice(length - 1)}\n
\n
\n );\n }\n\n return ret;\n }\n\n renderOffice(id) {\n const { officesData, handleOnMouseMoveBtnOffice, } = this.props;\n return (\n \n );\n }\n\n render() {\n const { officesCommon, } = this.props;\n const { data, isLoading, status, } = this.props.officesData;\n\n const offices = \n data.length < 1 ? \n (\n \n \n \n ) : (\n this.renderOffices()\n );\n\n return (\n \n\n \n\n \n
\n \n \n \n\n { offices }\n \n \n\n \n \n );\n }\n}\n\n\nOfficesContent.propTypes = {\n handleOnMouseMoveBtnOffice: PropTypes.func.isRequired,\n officesData: PropTypes.object.isRequired,\n};\n\n\nexport default OfficesContent;","import { API_URL } from '../../config';\nimport { CALL_API } from '../../middlewares/apiMiddleware';\nimport { MAIN_GET_COMMON_DATA, PENDING, FULFILLED, REJECTED } from '../../globals';\n\n\nexport function getCommonDataRequest(){\n return {\n type: `${MAIN_GET_COMMON_DATA}_${PENDING}`,\n payload: {\n refresh: true,\n }\n };\n}\n\nexport function getCommonDataSuccess(response){\n return {\n type: `${MAIN_GET_COMMON_DATA}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function getCommonDataFailure(response){\n return {\n type: `${MAIN_GET_COMMON_DATA}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\nexport const getCommonData = () => ({\n [CALL_API]: {\n actions: [getCommonDataRequest, getCommonDataSuccess, getCommonDataFailure],\n url: `${API_URL}/web/order/settings`,\n },\n});\n","import { API_URL } from '../../config';\nimport { CALL_API } from '../../middlewares/apiMiddleware';\nimport { OFFICES_GET_OFFICES, PENDING, FULFILLED, REJECTED } from '../../globals';\n\n\nexport function getOfficesRequest(){\n return {\n type: `${OFFICES_GET_OFFICES}_${PENDING}`,\n payload: {\n refresh: true,\n }\n };\n}\n\nexport function getOfficesSuccess(response){\n return {\n type: `${OFFICES_GET_OFFICES}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function getOfficesFailure(response){\n return {\n type: `${OFFICES_GET_OFFICES}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\nexport const getOffices = () => ({\n [CALL_API]: {\n actions: [getOfficesRequest, getOfficesSuccess, getOfficesFailure],\n url: `${API_URL}/web/stores`,\n },\n});\n","\nimport momentTZ from 'moment-timezone';\n\nexport const parseDateTimeToSpecificTimezone = (date, timezone = 'Europe/Prague') => {\n const serverDate = momentTZ.tz(date, timezone);\n const serverOffset = serverDate.utcOffset();\n const localTimezone = momentTZ.tz.guess();\n const serverCloneDate = serverDate.clone().tz(localTimezone);\n const localOffset = momentTZ.tz(serverDate.format(), momentTZ.tz.guess()).utcOffset();\n const recountedOffset = serverOffset - localOffset;\n const localDate = serverCloneDate.add(recountedOffset, 'minutes');\n return localDate;\n}","import { API_URL } from '../../config';\nimport { CALL_API } from '../../middlewares/apiMiddleware';\nimport {\n INTERVALS_GET_DAYS,\n INTERVALS_GET_INTERVALS,\n INTERVALS_GET_OFFICE_INFO,\n INTERVALS_GET_OFFICE_STATS,\n INTERVALS_SELECT_DAY,\n INTERVALS_RESET_DATA,\n PENDING, FULFILLED, REJECTED,\n} from '../../globals';\n\nimport { parseDateTimeToSpecificTimezone } from '../../common/Timezones';\n\nexport function getDayRequest() {\n return {\n type: `${INTERVALS_GET_DAYS}_${PENDING}`,\n };\n}\n\nexport function getDaySuccess(response) {\n return {\n type: `${INTERVALS_GET_DAYS}_${FULFILLED}`,\n payload: {\n data: getDatesInSpecificTimezone(response.data.days, response.data.timezone, ['date']),\n status: response.status,\n }\n };\n}\n\nexport function getDayFailure(response) {\n return {\n type: `${INTERVALS_GET_DAYS}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\n\nexport function getIntervalsRequest() {\n return {\n type: `${INTERVALS_GET_INTERVALS}_${PENDING}`,\n };\n}\n\nexport function getIntervalsSuccess(response) {\n return {\n type: `${INTERVALS_GET_INTERVALS}_${FULFILLED}`,\n payload: {\n data: getDatesInSpecificTimezone(response.data.intervals, response.data.timezone, ['time_from', 'time_to']),\n status: response.status,\n }\n };\n}\n\nexport function getIntervalsFailure(response) {\n return {\n type: `${INTERVALS_GET_INTERVALS}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\n\nexport function getOfficeInfoServiceRequest() {\n return {\n type: `${INTERVALS_GET_OFFICE_INFO}_${PENDING}`,\n };\n}\n\nexport function getOfficeInfoServiceSuccess(response) {\n return {\n type: `${INTERVALS_GET_OFFICE_INFO}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function getOfficeInfoServiceFailure(response) {\n return {\n type: `${INTERVALS_GET_OFFICE_INFO}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\n\nexport function getServiceInfoServiceRequest() {\n return {\n type: `${INTERVALS_GET_OFFICE_STATS}_${PENDING}`,\n };\n}\n\nexport function getServiceInfoServiceSuccess(response) {\n return {\n type: `${INTERVALS_GET_OFFICE_STATS}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function getServiceInfoServiceFailure(response) {\n return {\n type: `${INTERVALS_GET_OFFICE_STATS}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\nexport function serviceSelectDay(day, dayId) {\n return {\n type: `${INTERVALS_SELECT_DAY}`,\n payload: {\n day: day,\n dayId: dayId,\n }\n };\n}\n\n\nexport function intervalsResetData() {\n return {\n type: `${INTERVALS_RESET_DATA}`,\n };\n}\n\n\n\nexport const getDays = (officeId, serviceId) => ({\n [CALL_API]: {\n actions: [getDayRequest, getDaySuccess, getDayFailure],\n url: `${API_URL}/web/days?store_id=${officeId}&service_id=${serviceId}`,\n },\n});\n\nexport const getIntervals = (dayId) => ({\n [CALL_API]: {\n actions: [getIntervalsRequest, getIntervalsSuccess, getIntervalsFailure],\n url: `${API_URL}/web/intervals?day_id=${dayId}`,\n },\n});\n\nexport const getOfficeInfo = (officeId) => ({\n [CALL_API]: {\n actions: [getOfficeInfoServiceRequest, getOfficeInfoServiceSuccess, getOfficeInfoServiceFailure],\n url: `${API_URL}/web/stores?id=${officeId}`,\n },\n});\n\nexport const getServiceInfo = (officeId, serviceId) => ({\n [CALL_API]: {\n actions: [getServiceInfoServiceRequest, getServiceInfoServiceSuccess, getServiceInfoServiceFailure],\n url: `${API_URL}/web/services?store_id=${officeId}&id=${serviceId}`,\n },\n});\n\n/**\n * DEFAULT TIMEZONE OFFSET +1 Europe/Prague (-60 minutes) // hotfix shit with summer and winter time\n * @param {*} dates\n * @param {*} timezoneOffset\n * @param {*} parameters\n */\nconst getDatesInSpecificTimezone = (dates, timezone, parameters = ['date']) => {\n return dates.map((item) => {\n parameters.map((parameter) => {\n const parameterDate = new Date(item[parameter]);\n item[parameter] = parseDateTimeToSpecificTimezone(parameterDate, timezone).format();\n });\n return item;\n });\n}","import React, { Component } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport Map from '../components/Map'\n\n\nimport Header from '../components/Header/Header';\nimport SideBar from '../components/SideBar/SideBar';\nimport OfficesContent from '../components/OfficesContent/OfficesContent';\nimport { getCommonData } from '../components/Main/actions';\nimport { getOffices } from '../components/OfficesContent/actions';\nimport { intervalsResetData } from '../components/IntervalsContent/actions'; \nimport { toggleStatsModal, } from '../components/Stats/actions';\n\n\nclass OfficesPage extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n centerOfficePos: {\n lat: 50.075172019694584,\n lng: 14.450660048824602 \n },\n centerOfficeId: -1,\n }\n\n this.handleOnMouseMoveBtnOffice = this.handleOnMouseMoveBtnOffice.bind(this);\n this.inrange = this.inrange.bind(this);\n }\n\n componentDidMount() {\n document.title = 'Výběr místa';\n\n if (this.props.officesCommon.status === false) \n this.props.getCommonData();\n\n this.props.getOffices();\n this.props.intervalsResetData();\n\n const openStats = this.props.params.stats;\n if (openStats !== undefined && openStats === 'true') {\n this.props.toggleStatsModal(null);\n }\n }\n\n handleOnMouseMoveBtnOffice(e, position, officeId) {\n const { centerOfficeId } = this.state;\n \n if ( centerOfficeId !== officeId ) {\n // validate coordinates\n if ( this.inrange(-90, position.lat, 90) && this.inrange(-180, position.lng, 180) ) {\n this.setState({\n centerOfficePos: position,\n centerOfficeId: officeId,\n });\n } else {\n this.setState({\n centerOfficeId: officeId,\n });\n }\n }\n }\n\n inrange(min, number, max) {\n if ( number != null && !isNaN(number) && (number >= min) && (number <= max) ){\n return true;\n }\n return false;\n }\n\n render() {\n const { router, officesData, officesCommon, logo, sideBarTitles, } = this.props;\n const { centerOfficePos, centerOfficeId } = this.state; \n\n return (\n \n );\n }\n}\n\n\nconst mapStateToProps = (state) => {\n const { data, status, isLoading, } = state.offices;\n return { \n officesData: {\n data, \n status, \n isLoading,\n },\n officesCommon: {\n status: state.main.status,\n ...state.main.data.officesCommon,\n },\n logo: {\n ...state.main.data.logo,\n },\n sideBarTitles: {\n titleOne: state.main.data.officesCommon.title,\n titleTwo: state.main.data.servicesCommon.title,\n titleThree: state.main.data.intervalsCommon.title,\n titleFour: state.main.data.reservationCommon.title,\n }\n };\n}\n\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getCommonData: bindActionCreators(getCommonData, dispatch),\n getOffices: bindActionCreators(getOffices, dispatch),\n intervalsResetData: bindActionCreators(intervalsResetData, dispatch),\n toggleStatsModal: bindActionCreators(toggleStatsModal, dispatch),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OfficesPage);","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, BACKGROUND_BTN_BACK, BACKGROUND_BTN_BACK_HOVER, FONT_SIZE_BTN_BACK, FONT_SIZE_BTN_BACK_ARROW } from '../../../globals';\n\n\nexport const StyledBtnBack = styled.div`\n padding: 15px ${PADDING_CONTENT_PAGE}px 15px ${PADDING_CONTENT_PAGE}px;\n font-size: ${FONT_SIZE_BTN_BACK}}px;\n font-weight: bold;\n color: ${BACKGROUND_BTN_BACK};\n text-transform: uppercase;\n\n \n .btn-back-content {\n color: inherit;\n text-decoration: none;\n display:table;\n }\n\n .btn-back-content:hover {\n color: ${BACKGROUND_BTN_BACK_HOVER};\n text-decoration: none;\n }\n\n .btn-back-content:visited, .btn-back-content:active {\n text-decoration: none;\n }\n\n .btn-back-text {\n padding-left: 15px;\n display:table-cell;\n vertical-align: middle;\n text-decoration: underline;\n }\n\n .btn-back-arrow {\n font-size: ${FONT_SIZE_BTN_BACK_ARROW}px;\n display:table-cell;\n vertical-align: middle;\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Link } from 'react-router';\n\nimport { StyledBtnBack } from './styles/StyledBtnBack';\n\nclass BtnBack extends Component {\n render() {\n const { linkTo, text } = this.props;\n\n return (\n \n \n \n \n \n \n { text }\n \n \n \n );\n }\n}\n\n\nBtnBack.propTypes = {\n linkTo: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n};\n\n\nexport default BtnBack;\n","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, FONT_SIZE_LABEL } from '../../../globals';\n\n\nexport const StyledLabelStandart = styled.div`\n padding: 0px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n font-size: ${FONT_SIZE_LABEL}em;\n font-weight: 700;\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledLabelStandart } from './styles/StyledLabelStandart';\n\n\nclass LabelStandart extends Component {\n render() {\n const { title } = this.props;\n\n return (\n \n \n { title }\n \n \n );\n }\n}\n\n\nLabelStandart.propTypes = {\n title: PropTypes.string.isRequired,\n};\n\n\nexport default LabelStandart;","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, FONT_SIZE_INFO_WRAPPER_TITLE, COLOR_ICON_INFO_WRAPPER } from '../../../globals';\n\n\nexport const StyledInfoWrapper = styled.div`\n padding: 8px ${PADDING_CONTENT_PAGE}px 12px ${PADDING_CONTENT_PAGE}px;\n\n .info-wrapper-table {\n \n }\n\n tr {\n vertical-align: top;\n }\n\n .info-wrapper-icon {\n vertical-align: top;\n padding: 0px 10px 0px 5px;\n font-size: 1.5em;\n color: ${COLOR_ICON_INFO_WRAPPER};\n }\n\n .info-wrapper-title {\n font-size: ${FONT_SIZE_INFO_WRAPPER_TITLE}em;\n }\n\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n\nimport { StyledInfoWrapper } from './styles/StyledInfoWrapper';\n\n\nclass InfoWrapper extends Component {\n render() {\n const { title, text, icon } = this.props;\n return (\n \n \n \n \n \n {icon ? (\n \n ) : ( '' )}\n \n \n \n { title }\n
\n \n { text }\n
\n \n \n \n
\n \n );\n }\n}\n\n\nInfoWrapper.propTypes = {\n title: PropTypes.string,\n text: PropTypes.string,\n icon: PropTypes.string,\n};\n\n\nexport default InfoWrapper;\n","import styled from 'styled-components';\n\n\nexport const StyledInfoPanel = styled.div`\n\n\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LabelStandart from '../LabelStandart/LabelStandart';\nimport InfoWrapper from '../InfoWrapper/InfoWrapper';\n\nimport { StyledInfoPanel } from './styles/StyledInfoPanel';\n\n\nclass InfoPanel extends Component {\n render() {\n const { locationData, serviceData, timeData, } = this.props;\n return (\n \n \n \n { (locationData.show && locationData.status) &&\n
\n \n \n
\n }\n \n { (serviceData.show && serviceData.status) &&\n
\n \n \n
\n }\n\n { (timeData.show && timeData.status) &&\n
\n \n \n
\n }\n
\n \n \n );\n }\n}\n\n\nInfoPanel.propTypes = {\n locationData: PropTypes.object,\n serviceData: PropTypes.object,\n timeData: PropTypes.object,\n};\n\n\nexport default InfoPanel;\n","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, BACKGROUND_ROW_HORIZONTAL, BORDER_SIZE_ROW_HORIZONTAL } from '../../../globals';\n\n\nexport const StyledRowHorizontal = styled.div`\n margin: 15px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n border-bottom: ${BORDER_SIZE_ROW_HORIZONTAL}px solid ${BACKGROUND_ROW_HORIZONTAL};\n}\n`;\n","import React, { Component } from 'react';\n\nimport { StyledRowHorizontal } from './styles/StyledRowHorizontal';\n\n\nclass RowHorizontal extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nexport default RowHorizontal;\n","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, BACKGROUND_SIDE_BAR } from '../../../globals';\n\nexport const StyledCategoryDropDown = styled.div`\n margin: ${PADDING_CONTENT_PAGE}px;\n border-radius: 2px;\n background-color: ${props => props.isOpen ? BACKGROUND_SIDE_BAR : '#e3e3e3' };\n\n .category-dd-title-wrapper {\n cursor: pointer;\n ${props => props.isOpen ? 'color: white;' : '' }\n background-color: ${props => props.isOpen ? BACKGROUND_SIDE_BAR : '#e3e3e3' };\n padding: 10px;\n }\n \n .category-dd-table {\n width: 100%;\n table-layout:fixed;\n min-height: 2.8em;\n height: 2.8em;\n line-height: 1.4em;\n }\n\n .category-dd-title {\n font-weight: bold;\n font-size: 1em;\n word-break: normal;\n }\n\n .category-dd-title-wrapper:hover{\n background-color: ${BACKGROUND_SIDE_BAR};\n color: white;\n border-radius: 2px;\n }\n\n .category-dd-arrow {\n width: 25px;\n text-align: center;\n vertical-align: middle;\n font-size: 1em;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n\n .category-dd-items {\n\n }\n\n :focus {\n \n }\n\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledCategoryDropDown } from './styles/StyledCategoryDropDown';\n\n\nclass CategoryDropDown extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n isOpen: false,\n };\n\n this.onClickCategory = this.onClickCategory.bind(this);\n }\n\n onClickCategory() {\n this.setState({\n isOpen: !this.state.isOpen,\n });\n }\n\n handleKeyDown(keyCode){\n if(keyCode === 13 && !this.state.isOpen){\n this.onClickCategory();\n }\n }\n\n render() {\n const { title, children, } = this.props;\n const { isOpen } = this.state;\n\n return (\n this.handleKeyDown(e.keyCode)}\n > \n \n
\n \n \n \n \n { title }\n
\n \n \n \n \n \n \n
\n
\n \n {isOpen &&\n \n {\n children\n }\n
\n }\n \n \n \n );\n }\n}\n\n\nCategoryDropDown.propTypes = {\n title: PropTypes.string.isRequired,\n children: PropTypes.object.isRequired,\n};\n\n\nexport default CategoryDropDown;","import styled from 'styled-components';\n\nimport { BACKGROUND_BTN_HOVER, BACKGROUND_BTN, PADDING_CONTENT_PAGE, HEIGHT_BTN, FONT_SIZE_BTN_ARROW, COLOR_BTN_HOVER, BACKGROUND_HEADER } from '../../../globals';\n\n\nexport const StyledBtnService = styled.div`\n height: 100%;\n\n .btn-service-container {\n padding: ${PADDING_CONTENT_PAGE}px;\n height: 100%;\n }\n\n .btn-service-content {\n display: block;\n background-color: ${BACKGROUND_BTN};\n padding: ${props => props.servicesGroups ? 10 : 15}px;\n cursor: pointer;\n ${props => props.servicesGroups ? '' : 'box-shadow: 1px 1px 2px rgb(171, 169, 169);'}\n border-radius: 2px;\n color: inherit;\n text-decoration: none;\n height: 100%;\n }\n\n .btn-service-content:hover, .btn-office-content:visited, .btn-office-content:active {\n text-decoration: none;\n }\n\n .btn-service-table {\n width: 100%;\n table-layout:fixed;\n font-size: 1em;\n min-height: 2.8em;\n line-height: 1.4em;\n height: 100%;\n }\n\n td, div {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .btn-service-content:hover {\n background-color: ${BACKGROUND_BTN_HOVER};\n color: ${COLOR_BTN_HOVER};\n }\n\n .btn-service-title {\n font-weight: bold;\n font-size: 1em;\n height: ${HEIGHT_BTN};\n word-break: normal;\n }\n\n .btn-service-arrow {\n width: 25px;\n text-align: center;\n vertical-align: middle;\n font-size: ${FONT_SIZE_BTN_ARROW}em;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .btn-service-content:focus {\n outline: 3px solid ${BACKGROUND_HEADER};\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Link } from 'react-router';\n\nimport { StyledBtnService } from './styles/StyledBtnService';\n\nclass BtnService extends Component {\n render() {\n const { title, officeId, serviceId, servicesGroups, } = this.props;\n\n return (\n \n \n
\n
\n \n \n \n { title }\n \n \n \n \n \n \n
\n \n
\n \n );\n }\n}\n\n\nBtnService.propTypes = {\n title: PropTypes.string.isRequired,\n officeId: PropTypes.string,\n serviceId: PropTypes.number.isRequired,\n servicesGroups: PropTypes.bool.isRequired,\n};\n\n\nexport default BtnService;\n","import styled from 'styled-components';\n\nimport { PADDING_PAGE } from '../../../globals';\n\n\nexport const StyledServicesContent = styled.div`\n padding: ${PADDING_PAGE}px;\n\n .service-content-row {\n margin: 0px;\n }\n\n .service-content-col {\n padding: 0px;\n }\n}\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SINGLE_OFFICE_MODE } from '../../config';\nimport { MAIN_CONTENT_DATA_WRAPPER_SETTINGS } from '../../globals';\nimport BtnBack from '../../common/BtnBack/BtnBack';\nimport InfoPanel from '../../common/InfoPanel/InfoPanel';\nimport RowHorizontal from '../../common/RowHorizontal/RowHorizontal';\nimport TitleTop from '../../common/TitleTop/TitleTop';\nimport TextWrapper from '../../common/TextWrapper/TextWrapper';\nimport DataWrapper from '../../common/DataWrapper/DataWrapper';\nimport CategoryDropDown from '../../common/CategoryDropDown/CategoryDropDown';\nimport BtnService from '../../common/BtnService/BtnService';\nimport ErrorScreen from '../../common/ErrorScreen/ErrorScreen';\nimport { StyledBlockWrapper } from '../../common/DataWrapper/styles/StyledBlockWrapper';\n\nimport { StyledServicesContent } from './styles/StyledServicesContent';\n\n\nclass ServicesContent extends Component {\n constructor(props) {\n super(props);\n\n this.renderCategories = this.renderCategories.bind(this);\n this.renderServicesForCategory = this.renderServicesForCategory.bind(this);\n this.renderServicesNoCategories = this.renderServicesNoCategories.bind(this);\n this.renderService = this.renderService.bind(this);\n }\n\n renderServicesForCategory(i) {\n const { servicesData, officeId } = this.props;\n\n return(\n \n \n { servicesData.data[i].services.map((row, index) => {\n return (\n
\n \n
\n );\n })}\n
\n \n );\n }\n\n renderCategories() {\n const { servicesData } = this.props;\n const length = servicesData.data.length;\n\n let ret = [];\n\n for (var i = 1; i < length; i = i + 2) {\n ret.push(\n \n
\n {this.renderServicesForCategory(i - 1)}\n
\n
\n {this.renderServicesForCategory(i)}\n
\n
\n );\n }\n\n if (length % 2 === 1) {\n ret.push(\n \n
\n {this.renderServicesForCategory(length - 1)}\n
\n
\n );\n }\n\n return ret;\n }\n\n renderServicesNoCategories() {\n const { servicesData } = this.props;\n const length = servicesData.data.length;\n\n let ret = [];\n\n for (var i = 1; i < length; i = i + 2) {\n ret.push(\n \n
\n {this.renderService(i - 1)}\n
\n
\n {this.renderService(i)}\n
\n
\n );\n }\n\n if (length % 2 === 1) {\n ret.push(\n \n
\n {this.renderService(length - 1)}\n
\n
\n );\n }\n\n return ret;\n }\n\n renderService(id) {\n const { servicesData, officeId } = this.props;\n\n return (\n \n )\n }\n\n\n render() {\n const { servicesData, officeData, servicesCommon, previousSteps, btnBackTitle, } = this.props;\n\n let services;\n\n if (servicesData.data.length < 1) {\n services = (\n \n \n \n );\n }\n\n else if (servicesData.groups){\n services = ( \n \n {this.renderCategories()}\n
);\n }\n else {\n services = this.renderServicesNoCategories();\n }\n\n return (\n \n\n { !SINGLE_OFFICE_MODE &&\n \n }\n\n \n \n \n\n \n\n \n {
}\n \n\n \n { services }\n \n \n \n );\n }\n}\n\n\nServicesContent.propTypes = {\n servicesData: PropTypes.object.isRequired,\n previousSteps: PropTypes.object.isRequired,\n servicesCommon: PropTypes.object.isRequired,\n officeData: PropTypes.object.isRequired,\n officeId: PropTypes.string,\n};\n\n\nexport default ServicesContent;\n","import { API_URL } from '../../config';\nimport { CALL_API } from '../../middlewares/apiMiddleware';\nimport { \n SERVICES_GET_SERVICES,\n SERVICES_GET_OFFICE_INFO,\n SERVICES_SINGLE_OFFICE_INIT,\n PENDING, FULFILLED, REJECTED,\n} from '../../globals';\n\n\n\nexport function getServicesRequest() {\n return {\n type: `${SERVICES_GET_SERVICES}_${PENDING}`,\n };\n}\n\nexport function getServicesSuccess(response) {\n return {\n type: `${SERVICES_GET_SERVICES}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function getServicesFailure(response) {\n return {\n type: `${SERVICES_GET_SERVICES}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\n\nexport function getOfficeInfoRequest() {\n return {\n type: `${SERVICES_GET_OFFICE_INFO}_${PENDING}`,\n };\n}\n\nexport function getOfficeInfoSuccess(response) {\n return {\n type: `${SERVICES_GET_OFFICE_INFO}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function getOfficeInfoFailure(response) {\n return {\n type: `${SERVICES_GET_OFFICE_INFO}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\nexport const getServices = (officeId) => ({\n [CALL_API]: {\n actions: [getServicesRequest, getServicesSuccess, getServicesFailure],\n url: `${API_URL}/web/services?store_id=${officeId}`,\n },\n});\n\n\nexport const getOfficeInfo = (officeId) => ({\n [CALL_API]: {\n actions: [getOfficeInfoRequest, getOfficeInfoSuccess, getOfficeInfoFailure],\n url: `${API_URL}/web/stores?id=${officeId}`,\n },\n});\n\n\n/*\n * Single Office Mode\n */\n\n\nexport const singleOfficePending = () => {\n return {\n type: `${SERVICES_SINGLE_OFFICE_INIT}_${PENDING}`,\n };\n}\n\nexport const singleOfficeFulfiled = () => {\n return {\n type: `${SERVICES_SINGLE_OFFICE_INIT}_${FULFILLED}`,\n };\n}\n\nexport const singleOfficeFailure = () => {\n return {\n type: `${SERVICES_SINGLE_OFFICE_INIT}_${REJECTED}`,\n };\n}\n\n\n\n\n\n","import React, { Component } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport axios from 'axios';\n\nimport Map from '../components/Map'\nimport { API_URL } from '../config';\nimport Header from '../components/Header/Header';\nimport SideBar from '../components/SideBar/SideBar';\nimport ServicesContent from '../components/ServicesContent/ServicesContent';\nimport { SINGLE_OFFICE_MODE } from '../config';\nimport { getCommonData } from '../components/Main/actions';\nimport { getServices, getOfficeInfo, singleOfficePending, singleOfficeFulfiled, singleOfficeFailure } from '../components/ServicesContent/actions';\nimport { intervalsResetData } from '../components/IntervalsContent/actions';\nimport { getOffices } from '../components/OfficesContent/actions';\nimport { toggleStatsModal, } from '../components/Stats/actions';\n\n\nclass ServicesPage extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n officeId: '',\n }\n\n this.singleOfficeInit = this.singleOfficeInit.bind(this);\n }\n\n componentDidMount() {\n document.title = 'Výběr služby';\n\n if (this.props.servicesCommon.status === false) \n this.props.getCommonData();\n\n if (SINGLE_OFFICE_MODE) {\n this.singleOfficeInit();\n }\n else {\n const officeId = this.props.params.officeId;\n\n this.props.getServices(officeId);\n this.props.getOfficeInfo(officeId);\n this.setState({\n officeId: officeId,\n });\n }\n this.props.intervalsResetData();\n\n const openStats = this.props.params.stats;\n if (openStats !== undefined && openStats === 'true') {\n this.props.toggleStatsModal(null);\n }\n }\n\n singleOfficeInit() {\n this.props.singleOfficePending();\n axios.get(`${API_URL}/web/stores`)\n .then((response) => {\n if (response.data.data.length > 0 && !!response.data.data[0].id) {\n const { id, } = response.data.data[0];\n this.setState({\n officeId: id.toString(),\n });\n this.props.getServices(id);\n this.props.getOfficeInfo(id);\n this.props.singleOfficeFulfiled();\n }\n else {\n this.props.singleOfficeFailure();\n }\n })\n .catch((error) => {\n this.props.singleOfficeFailure();\n });\n }\n\n render() {\n const { servicesData, officeData, servicesCommon, previousSteps, sideBarTitles, logo, btnBackTitle } = this.props;\n const { officeId } = this.state;\n console.log(officeData)\n return (\n \n
\n\n
\n\n
\n
\n
\n \n
\n
\n {!officeData.isLoading && ( ) }\n
\n
\n
\n
\n );\n }\n}\n\n\nconst mapStateToProps = (state) => {\n const { servicesData, officeData, } = state.services;\n return { \n servicesData, \n officeData,\n servicesCommon: {\n status: state.main.status,\n ...state.main.data.servicesCommon,\n },\n btnBackTitle: state.main.data.officesCommon.title,\n previousSteps: state.main.data.previousSteps,\n logo: {\n ...state.main.data.logo,\n },\n sideBarTitles: {\n titleOne: state.main.data.officesCommon.title,\n titleTwo: state.main.data.servicesCommon.title,\n titleThree: state.main.data.intervalsCommon.title,\n titleFour: state.main.data.reservationCommon.title,\n }\n };\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return { \n getCommonData: bindActionCreators(getCommonData, dispatch),\n getServices: bindActionCreators(getServices, dispatch),\n getOfficeInfo: bindActionCreators(getOfficeInfo, dispatch),\n getOffices: bindActionCreators(getOffices, dispatch),\n intervalsResetData: bindActionCreators(intervalsResetData, dispatch),\n singleOfficePending: bindActionCreators(singleOfficePending, dispatch),\n singleOfficeFulfiled: bindActionCreators(singleOfficeFulfiled, dispatch),\n singleOfficeFailure: bindActionCreators(singleOfficeFailure, dispatch),\n toggleStatsModal: bindActionCreators(toggleStatsModal, dispatch),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ServicesPage);\n","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, COLOR_MAIN_LABEL } from '../../../globals';\n\n\nexport const StyledLabelMainColor = styled.h2`\n padding: 0px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n font-weight: bold;\n font-size: 1em;\n color: ${COLOR_MAIN_LABEL};\n`;\n","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, COLOR_MAIN_LABEL } from '../../../globals';\n\n\nexport const StyledLabelMainColorLower = styled.h3`\n padding: 0px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n font-weight: bold;\n font-size: 1em;\n color: ${COLOR_MAIN_LABEL};\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledLabelMainColor } from './styles/StyledLabelMainColor';\nimport { StyledLabelMainColorLower } from './styles/StyledLabelMainColorLower';\n\n\nclass LabelMainColor extends Component {\n render() {\n const { title, type } = this.props;\n\n return (\n type === \"h2\" ? (\n \n { title }\n \n ) : (\n \n { title }\n \n )\n );\n }\n}\n\nLabelMainColor.defaultProps = {\n tpye: 'h2',\n};\n\nLabelMainColor.propTypes = {\n title: PropTypes.string.isRequired,\n};\n\n\nexport default LabelMainColor;","import styled from 'styled-components';\n\nimport { \n PADDING_CONTENT_PAGE, BACKGROUND_TABLE_TIMES, BACKGROUND_TABLE_TIMES_HOVER, BORDER_COLOR_TABLE_TIMES,\n FONT_SIZE_TABLE_TIMES_ROW, FONT_SIZE_TABLE_TIMES_HEADER, COLOR_TABLE_TIMES_FULL, COLOR_TABLE_TIMES_HOVER,\n} from '../../../globals';\n\n\nexport const StyledTableTimes = styled.div`\n .table-times-error {\n position: relative;\n height: 150px;\n }\n\n .table-times {\n //width: 100%;\n margin: 0px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n }\n\n .table-times-header { \n font-size: ${FONT_SIZE_TABLE_TIMES_HEADER}em;\n font-weight: 700;\n }\n\n tr {\n border-top: 4px solid white;\n border-bottom: 4px solid white;\n }\n\n .table-times-row {\n width: 100%;\n background-color: ${BACKGROUND_TABLE_TIMES};\n font-size: ${FONT_SIZE_TABLE_TIMES_ROW}em;\n cursor: pointer;\n }\n\n .table-times-row-free {\n\n }\n\n .table-times-row-full {\n color: ${COLOR_TABLE_TIMES_FULL};\n }\n\n .table-times-row-free:hover {\n background-color: ${BACKGROUND_TABLE_TIMES_HOVER};\n color: ${COLOR_TABLE_TIMES_HOVER};\n }\n\n td {\n padding: 6px 0px 6px 0px;\n }\n\n .table-times-div-time {\n text-align: left;\n border-right: 1px solid ${BORDER_COLOR_TABLE_TIMES};\n padding: 0px 15px 0px 15px;\n width: 75px;\n }\n\n .table-times-col-time {\n\n }\n\n .table-times-td-capacity {\n text-align: left;\n width: 100%;\n padding: 0px 15px 0px 15px;\n }\n\n .table-times-td-arrow {\n text-align: center;\n vertical-align: middle;\n font-size: 15px;\n padding: 0px 15px 0px 15px;\n }\n\n ul {\n list-style-type: none;\n padding-inline-start: 0px;\n padding-left: 0;\n }\n\n @media (max-width: 1199px) {\n .interbals-table-header-disable-medium {\n display: none;\n }\n }\n}\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledTableTimes } from './styles/StyledTableTimes';\n\n\nclass TimesHeader extends Component {\n render() {\n const { header1, header2,} = this.props;\n\n return (\n \n \n \n \n \n \n { header1 }\n
\n \n \n { header2 }\n \n \n \n \n \n \n
\n \n );\n }\n}\n\n\nTimesHeader.propTypes = {\n header1: PropTypes.string.isRequired,\n header2: PropTypes.string.isRequired,\n};\n\nexport default TimesHeader;\n","import styled from 'styled-components';\n\nimport { \n PADDING_CONTENT_PAGE, BACKGROUND_TABLE_TIMES, BACKGROUND_TABLE_TIMES_HOVER, BORDER_COLOR_TABLE_TIMES,\n FONT_SIZE_TABLE_TIMES_ROW, FONT_SIZE_TABLE_TIMES_HEADER, COLOR_TABLE_TIMES_FULL, COLOR_TABLE_TIMES_HOVER,\n} from '../../../globals';\n\n\nexport const StyledIntervals = styled.li`\n margin: 0px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n padding-bottom: 6px;\n\n button {\n border: none;\n background-color: ${BACKGROUND_TABLE_TIMES};\n width: 100%;\n font-size: 1.1em;\n }\n\n .free-interval {\n\n }\n\n .free-interval:hover {\n background-color: ${BACKGROUND_TABLE_TIMES_HOVER};\n color: ${COLOR_TABLE_TIMES_HOVER};\n }\n\n .full-interval {\n color: ${COLOR_TABLE_TIMES_FULL};\n cursor: not-allowed;\n }\n\n .time {\n float: left;\n padding: 6px 15px 6px 5px;\n }\n\n .capacity {\n float: left;\n padding: 6px 5px 6px 30px;\n }\n\n .icon {\n float: right;\n vertical-align: middle;\n font-size: 15px;\n padding: 6px 15px 6px 15px;\n }\n`;","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledIntervals } from './styles/StyledIntervals';\n\n\nconst getTimeWithZero = (data) => {\n if (data < 10) {\n return('0' + data);\n }\n return data;\n}\n\n\nclass BtnTimes extends Component {\n render() {\n const { onClickRow, data,} = this.props;\n\n return (\n \n 0 ? \"free-interval\" : \"full-interval\" }\n onClick={e => onClickRow(data.id, data.count, data.max_count)}\n >\n {getTimeWithZero(new Date(data.time_from).getHours()) + ':' + getTimeWithZero(new Date(data.time_from).getMinutes())} \n {data.count + ' / ' + data.max_count} \n \n \n \n );\n }\n}\n\n\nBtnTimes.propTypes = {\n data: PropTypes.object.isRequired,\n onClickRow: PropTypes.func.isRequired,\n};\n\nexport default BtnTimes;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ErrorScreen from '../../common/ErrorScreen/ErrorScreen';\nimport TimesHeader from './TimesHeader';\nimport BtnTimes from './BtnTimes';\n\nimport { StyledTableTimes } from './styles/StyledTableTimes';\n\nclass TableTimes extends Component {\n constructor(props) {\n super(props);\n\n this.showTimes = this.showTimes.bind(this);\n }\n\n showTimes(from, to) {\n const { data, onClickRow } = this.props;\n let ret = [];\n \n for (from; from < to; from++) {\n ret.push(\n \n )\n }\n return ret;\n }\n\n render() {\n const { header1, header2, data } = this.props;\n\n if (data.length < 1) {\n return (\n \n \n \n
\n \n );\n }\n\n const edge = Math.ceil(data.length / 2);\n\n const times1 = this.showTimes(0, edge);\n const times2 = this.showTimes(edge, data.length);\n\n return (\n \n \n \n );\n }\n}\n\n\nTableTimes.propTypes = {\n header1: PropTypes.string.isRequired,\n header2: PropTypes.string.isRequired,\n data: PropTypes.array.isRequired,\n onClickRow: PropTypes.func.isRequired,\n};\n\n\nexport default TableTimes;\n","import styled from 'styled-components';\n\nimport { \n PADDING_CONTENT_PAGE, BACKGROUND_CALENDAR, BACKGROUND_CALENDAR_HOVER,\n COLOR_CALENDAR_OUTSIDE, COLOR_CALENDAR_FREE, COLOR_CALENDAR_OCCUPIED, COLOR_CALENDAR_NOTAVAILABLE, COLOR_CALENDAR_BLOCKED, COLOR_CALENDAR_HOLIDAY, FONT_SIZE_CALENDAR, BACKGROUND_CALENDAR_SELECTED,\n} from '../../../globals';\n\n\nexport const StyledCalendar = styled.div`\n font-weight: bold;\n font-size: ${FONT_SIZE_CALENDAR}em;\n padding: 0px ${PADDING_CONTENT_PAGE}px 15px ${PADDING_CONTENT_PAGE}px;\n\n .DayPicker {\n width: 100%;\n font-size: 1.5rem;\n }\n\n .DayPicker-wrapper {\n width: 100%;\n padding: 0px;\n }\n\n .DayPicker-Month {\n width: 100%;\n margin: 0;\n }\n\n .calendar-wrapper-error {\n position: relative;\n height: 150px;\n }\n\n .DayPicker-Day {\n padding: 2em 1em;\n border-radius: 0;\n border: none;\n }\n\n .DayPicker-Caption > div{\n color: #333;\n font-weight: bold;\n text-align: center;\n text-transform: capitalize;\n font-size: 1em;\n }\n\n .DayPicker-Caption {\n padding: 10px;\n height: 100%;\n max-height: 40px;\n font-size: 14px;\n }\n\n .DayPicker-Weekday {\n color: #333;\n background-color: ${BACKGROUND_CALENDAR};\n font-weight: bold;\n font-size: 12px;\n }\n\n .DayPicker-Day--free {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_FREE};\n }\n\n .DayPicker-Day--free:hover {\n background-color: ${BACKGROUND_CALENDAR_HOVER};\n }\n\n .DayPicker-Day--occupied {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_OCCUPIED};\n cursor: default;\n }\n\n .DayPicker-Day--notAvailable {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_NOTAVAILABLE};\n cursor: default;\n }\n\n .DayPicker-Day--blocked {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_BLOCKED};\n cursor: default;\n }\n\n .DayPicker-Day--holiday {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_HOLIDAY};\n cursor: default;\n }\n\n .DayPicker-Day--today {\n border: 1px solid black;\n font-weight: inherit;\n }\n\n .DayPicker-Day--disabled,\n .DayPicker-Day--outside {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_OUTSIDE};\n cursor: default;\n border: none;\n }\n\n .DayPicker-Day--disabled:hover,\n .DayPicker-Day--outside:hover {\n background-color: ${BACKGROUND_CALENDAR};\n }\n\n .DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside) {\n background-color: ${BACKGROUND_CALENDAR_SELECTED};\n }\n\n\n @media (max-width: 767px) {\n font-size: 0.8em;\n }\n`;\n/*\n\n\n \n\n DayPicker-wrapper:focus {\n border: none;\n }\n\n .DayPicker-Day:focus {\n outline: none;\n }\n\n .DayPicker-wrapper:focus {\n outline: none;\n }\n\n .DayPicker-NavButton:focus {\n outline: none;\n }\n abbr[title], abbr[data-original-title] {\n border: none;\n }\n\n\n .DayPicker-Day--free {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_FREE};\n }\n\n .DayPicker-Day--free:hover {\n background-color: ${BACKGROUND_CALENDAR_HOVER};\n }\n\n .DayPicker-Day--occupied {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_OCCUPIED};\n cursor: default;\n }\n\n .DayPicker-Day--notAvailable {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_NOTAVAILABLE};\n cursor: default;\n }\n\n .DayPicker-Day--blocked {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_BLOCKED};\n cursor: default;\n }\n\n .DayPicker-Day--holiday {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_HOLIDAY};\n cursor: default;\n }\n\n .DayPicker-Day--today {\n border: 1px solid black;\n font-weight: inherit;\n }\n\n .DayPicker-Day--disabled,\n .DayPicker-Day--outside {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_OUTSIDE};\n cursor: default;\n border: none;\n }\n\n .DayPicker-Day--disabled:hover,\n .DayPicker-Day--outside:hover {\n background-color: ${BACKGROUND_CALENDAR};\n }\n\n .DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside) {\n background-color: ${BACKGROUND_CALENDAR_SELECTED};\n }\n\n*/","import styled from 'styled-components';\n\nimport { \n BACKGROUND_CALENDAR, COLOR_CALENDAR_FREE, COLOR_CALENDAR_OCCUPIED, COLOR_CALENDAR_BLOCKED, COLOR_CALENDAR_HOLIDAY, FONT_SIZE_CALENDAR_LEGEND_TEXT, FONT_SIZE_CALENDAR_LEGEND_ICON\n} from '../../../globals';\n\n\nexport const StyledLegend = styled.div`\n font-weight: 400;\n margin-top: 10px;\n\n span {\n font-size: ${FONT_SIZE_CALENDAR_LEGEND_TEXT}em;\n }\n\n li:after {\n content: '';\n padding-right: 10px;\n }\n\n i {\n font-size: ${FONT_SIZE_CALENDAR_LEGEND_ICON}em;\n }\n\n .calendar-legend-free {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_FREE};\n }\n\n .calendar-legend-occupied {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_OCCUPIED};\n cursor: default;\n }\n\n .calendar-legend-blocked {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_BLOCKED};\n cursor: default;\n }\n\n .calendar-legend-holiday {\n background-color: ${BACKGROUND_CALENDAR};\n color: ${COLOR_CALENDAR_HOLIDAY};\n cursor: default;\n }\n\n`;\n","import React, { Component } from 'react';\n\nimport { StyledLegend } from './styles/StyledLegend';\n\n\nclass Legend extends Component {\n render() {\n \n return (\n \n \n \n\n \n - obsazený termín \n\n \n \n\n \n - svátek \n\n \n \n\n \n - nepřístupný termín \n\n \n \n\n \n - volný termín \n\n \n \n \n );\n }\n}\n\nexport default Legend;\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport DayPicker from 'react-day-picker';\nimport LocaleUtils from 'react-day-picker/moment';\nimport moment from 'moment';\nimport 'moment/locale/cs';\nimport 'react-day-picker/lib/style.css';\n\nimport ErrorScreen from '../../common/ErrorScreen/ErrorScreen';\nimport { StyledCalendar } from './styles/StyledCalendar';\nimport Legend from './Legend';\n\n\nexport const COMMON_DATE_FORMAT = 'DD.MM.YYYY';\nconst DAY_TYPES = [\n 'free',\n 'holiday',\n 'occupied',\n 'blocked',\n 'notAvailable'\n];\n\n\nclass Calendar extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedDay: null\n };\n\n\n this.handleDayClick = this.handleDayClick.bind(this);\n\n this.modifiers = DAY_TYPES.reduce((result, type) => {\n result[type] = (day) => {\n const { dateToDayMap } = this.props;\n\n const date = moment(day).format(COMMON_DATE_FORMAT);\n\n\n\n if (dateToDayMap[date]) {\n return type === dateToDayMap[date].type;\n }\n return false;\n }\n return result;\n }, {});\n }\n\n componentDidMount() {\n const n = ReactDOM.findDOMNode(this);\n this.scroll = n.offsetTop + n.clientHeight;\n }\n\n\n handleDayClick(day) {\n const date = moment(day).format(COMMON_DATE_FORMAT);\n const { dateToDayMap, handleOnClickDay } = this.props;\n const dayObject = dateToDayMap[date];\n\n // Ignore day click when day is out of days range\n if (!dayObject) {\n return\n }\n\n if (dayObject.type === DAY_TYPES[0]) {\n setTimeout(() => { \n window.scrollTo({\n top: this.scroll,\n left: 0,\n behavior: 'smooth'\n });\n }, 200);\n handleOnClickDay(dayObject.id, day);\n }\n }\n\n render() {\n const { days, selectedDate, handleMonthChange } = this.props;\n let error = false;\n\n if (days.length < 1) {\n error = true;\n }\n\n if (error) {\n return (\n \n \n \n
\n \n );\n }\n\n const firstDay = moment(days[0].date);\n const lastDay = moment(days[days.length - 1].date);\n\n const disabledRange = {\n before: firstDay.toDate(),\n after: lastDay.toDate()\n };\n\n return (\n \n \n \n \n );\n }\n}\n\n\nCalendar.propTypes = {\n days: PropTypes.array.isRequired,\n dateToDayMap: PropTypes.object.isRequired,\n handleOnClickDay: PropTypes.func.isRequired,\n selectedDate: PropTypes.any,\n handleMonthChange: PropTypes.func.isRequired,\n};\n\n\nexport default Calendar;","import styled from 'styled-components';\n\nimport { PADDING_PAGE } from '../../../globals';\n\n\nexport const StyledIntervalsContent = styled.div`\n padding: ${PADDING_PAGE}px;\n\n .service-content-row {\n margin: 0px;\n }\n\n .service-content-col {\n padding: 0px;\n }\n}\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nimport { SINGLE_OFFICE_MODE } from '../../config';\nimport BtnBack from '../../common/BtnBack/BtnBack';\nimport InfoPanel from '../../common/InfoPanel/InfoPanel';\nimport LabelMainColor from '../../common/LabelMainColor/LabelMainColor';\nimport RowHorizontal from '../../common/RowHorizontal/RowHorizontal';\nimport TitleTop from '../../common/TitleTop/TitleTop';\nimport TextWrapper from '../../common/TextWrapper/TextWrapper';\nimport DataWrapper from '../../common/DataWrapper/DataWrapper';\nimport TableTimes from './TableTimes';\nimport Calendar, { COMMON_DATE_FORMAT } from './Calendar';\n\nimport { StyledIntervalsContent } from './styles/StyledIntervalsContent';\n\n\nclass IntervalsContent extends Component {\n render() {\n const { \n daysData, intervalsData, officeData, serviceData, deleteReservationData, intervalsCommon, previousSteps, btnBackTitle,\n officeId,\n handleOnClickDay,\n selectedDateDay, \n onClickTableRow,\n handleMonthChange,\n } = this.props;\n\n const showTable = daysData.status && selectedDateDay !== null\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 { showTable\n && (\n \n \n \n )\n }\n \n \n );\n }\n}\n\n\nIntervalsContent.propTypes = {\n previousSteps: PropTypes.object.isRequired,\n intervalsCommon: PropTypes.object.isRequired,\n daysData: PropTypes.object.isRequired,\n intervalsData: PropTypes.object.isRequired,\n officeData: PropTypes.object.isRequired,\n serviceData: PropTypes.object.isRequired,\n deleteReservationData: PropTypes.object.isRequired,\n officeId: PropTypes.string.isRequired,\n handleOnClickDay: PropTypes.func.isRequired,\n selectedDateDay: PropTypes.any,\n onClickTableRow: PropTypes.func.isRequired,\n handleMonthChange: PropTypes.func.isRequired,\n};\n\n\nconst getDateToDayMap = (days) => {\n return days.reduce((result, day) => {\n const date = moment(day.date).format(COMMON_DATE_FORMAT)\n result[date] = day\n return result\n }, {})\n}\n\nexport default IntervalsContent;\n","import { API_URL } from '../../config';\nimport { CALL_API } from '../../middlewares/apiMiddleware';\nimport { \n OFFICE_STATS_YEAR, OFFICE_STATS_MONTH, OFFICE_STATS_SWITCH, OFFICE_STATS_RESET, OFFICE_STATS_SELECT_DAY, OFFICE_STATS_CHANGE_DATE,\n PENDING, FULFILLED, REJECTED,\n} from '../../globals';\n\n\nexport function getOfficeStatsYearRequest(){\n return {\n type: `${OFFICE_STATS_YEAR}_${PENDING}`,\n payload: {\n refresh: true,\n }\n };\n}\n\nexport function getOfficeStatsYearSuccess(response, data){\n return {\n type: `${OFFICE_STATS_YEAR}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n year: data.year,\n month: data.month,\n }\n };\n}\n\nexport function getOfficeStatsYearFailure(response){\n return {\n type: `${OFFICE_STATS_YEAR}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\n\nexport function getOfficeStatsMonthRequest(){\n return {\n type: `${OFFICE_STATS_MONTH}_${PENDING}`,\n payload: {\n refresh: true,\n }\n };\n}\n\nexport function getOfficeStatsMonthSuccess(response, data){\n return {\n type: `${OFFICE_STATS_MONTH}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n year: data.year,\n month: data.month,\n }\n };\n}\n\nexport function getOfficeStatsMonthFailure(response){\n return {\n type: `${OFFICE_STATS_MONTH}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\n\n\nexport const getOfficeStatsYear = (officeId, serviceId, year, month) => {\n return {\n [CALL_API]: {\n actions: [getOfficeStatsYearRequest, getOfficeStatsYearSuccess, getOfficeStatsYearFailure],\n url: `${API_URL}/web/stats/longterm?store_id=${officeId}&service_id=${serviceId}&year=${year}`,\n addData: {\n year: year,\n month: month,\n },\n },\n }\n};\n\n\nexport const getOfficeStatsMonth = (officeId, serviceId, year, month) => {\n return {\n [CALL_API]: {\n actions: [getOfficeStatsMonthRequest, getOfficeStatsMonthSuccess, getOfficeStatsMonthFailure],\n url: `${API_URL}/web/stats/longterm?store_id=${officeId}&service_id=${serviceId}&year=${year}&month=${month}`,\n addData: {\n year: year,\n month: month,\n },\n },\n }\n};\n\n\nexport function officeStatsChangeDate(year, month) {\n return {\n type: `${OFFICE_STATS_CHANGE_DATE}`,\n payload: {\n month: month,\n year: year,\n }\n }\n};\n\nexport function switchOfficeStats(statsChecked, dateChecked) {\n return {\n type: `${OFFICE_STATS_SWITCH}`,\n payload: {\n statsChecked: statsChecked, \n dateChecked: dateChecked,\n }\n };\n};\n\n\nexport function officeStatsReset() {\n return {\n type: `${OFFICE_STATS_RESET}`,\n }\n};\n\nexport function officeSelectDay(day, month, year) {\n return {\n type: `${OFFICE_STATS_SELECT_DAY}`,\n payload: {\n day: day, \n month: month,\n year: year,\n }\n }\n};\n","import styled from 'styled-components';\n\nimport { SWITCH_BACKGROUND_COLOR } from '../../../globals';\n\n\nexport const StyledSwitch = styled.div`\n .rsbc-switch-button {\n position: relative;\n line-height: 100%;\n display: inline-block;\n vertical-align: middle;\n margin: 0;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n .rsbc-switch-button label {\n cursor: pointer;\n }\n .rsbc-switch-button.disabled label {\n cursor: not-allowed;\n }\n .rsbc-switch-button input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -9999px;\n visibility: hidden;\n }\n .rsbc-switch-button > label:first-child {\n display: inline-block;\n margin: 0 6px 0 0px;\n }\n .rsbc-switch-button label + label {\n margin-left: 6px;\n }\n .rsbc-switch-button input[type=\"checkbox\"] + label {\n display: inline-block;\n position: relative;\n margin: 0;\n outline: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n\n .rsbc-switch-button.rsbc-switch-button-flat-round input[type=\"checkbox\"] + label {\n padding: 2px;\n width: 48px;\n height: 24px;\n vertical-align: middle;\n background-color: #aaa;\n -webkit-border-radius: 60px;\n -moz-border-radius: 60px;\n border-radius: 60px;\n -webkit-transition: background 0.4s;\n -moz-transition: background 0.4s;\n -o-transition: background 0.4s;\n transition: background 0.4s;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round.disabled input[type=\"checkbox\"] + label {\n background-color: #eee;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round:hover input[type=\"checkbox\"] + label {\n background-color: #579fcb;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round.disabled:hover input[type=\"checkbox\"] + label {\n background-color: #eee;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round input[type=\"checkbox\"] + label:before,\n .rsbc-switch-button.rsbc-switch-button-flat-round input[type=\"checkbox\"] + label:after {\n display: inline-block;\n position: absolute;\n content: \"\";\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round input[type=\"checkbox\"] + label:before {\n top: 2px;\n left: 2px;\n bottom: 2px;\n right: 2px;\n background-color: ${SWITCH_BACKGROUND_COLOR};\n -webkit-border-radius: 60px;\n -moz-border-radius: 60px;\n border-radius: 60px;\n -webkit-transition: background 0.4s;\n -moz-transition: background 0.4s;\n -o-transition: background 0.4s;\n transition: background 0.4s;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round input[type=\"checkbox\"] + label:after {\n top: 4px;\n left: 4px;\n bottom: 4px;\n width: 16px;\n background-color: #919191;\n -webkit-border-radius: 52px;\n -moz-border-radius: 52px;\n border-radius: 52px;\n -webkit-transition: margin 0.4s, background 0.4s;\n -moz-transition: margin 0.4s, background 0.4s;\n -o-transition: margin 0.4s, background 0.4s;\n transition: margin 0.4s, background 0.4s;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round.disabled input[type=\"checkbox\"] + label:after {\n background-color: #d5d5d5;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round:hover input[type=\"checkbox\"]:checked + label {\n background-color: #aaa;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round input[type=\"checkbox\"]:checked + label {\n background-color: #579fcb;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round.disabled input[type=\"checkbox\"]:checked + label {\n background-color: #eee;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round input[type=\"checkbox\"]:checked + label:after {\n margin-left: 24px;\n background-color: #3887b7;\n }\n .rsbc-switch-button.rsbc-switch-button-flat-round.disabled input[type=\"checkbox\"]:checked + label:after {\n margin-left: 24px;\n background-color: #d5d5d5;\n }\n .rsbc-switch-button.rsbc-switch-button.rsbc-switch-button-flat-round.rsbc-mode-select input[type=\"checkbox\"] + label:after,\n .rsbc-switch-button.rsbc-switch-button.rsbc-switch-button-flat-round.rsbc-mode-select:hover input[type=\"checkbox\"]:checked + label,\n .rsbc-switch-button.rsbc-switch-button.rsbc-switch-button-flat-round.rsbc-mode-select input[type=\"checkbox\"] + label {\n background-color: white !important;\n border-radius: 50%;\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledSwitch } from './styles/StyledSwitch';\n\n\nclass Switch extends Component {\n render() {\n const { isChecked, onChangeHandle, id } = this.props;\n return (\n \n \n \n \n
\n \n );\n }\n}\n\n\nSwitch.propTypes = {\n onChangeHandle: PropTypes.func.isRequired,\n isChecked: PropTypes.bool.isRequired,\n id: PropTypes.string.isRequired,\n};\n\n\nexport default Switch;","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE } from '../../../globals';\n\n\nexport const StyledStatsSwitcher = styled.div`\n table {\n margin: 0px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n }\n\n td {\n padding-top: 4px;\n padding-bottom: 4px;\n }\n\n .tb-office-stats-left {\n text-align: right;\n }\n\n .tb-office-stats-switch {\n padding-right: 10px;\n padding-left: 10px;\n }\n\n .tb-office-stats-right {\n text-align: left;\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Switch from '../../common/Switch/Switch';\n\nimport { StyledStatsSwitcher } from './styles/StyledStatsSwitcher';\n\n\nclass StatsSwitcher extends Component {\n render() {\n const { showDateSwitch, statsSwitch, dateSwitch, statsCheck, dateChecked } = this.props;\n\n return (\n \n \n \n \n \n Průměrná doba čekání\n \n \n \n \n \n Obsloužených klientů\n \n \n { showDateSwitch &&\n \n \n Rok\n \n \n \n \n \n Aktuální měsíc\n \n \n }\n \n
\n \n );\n }\n}\n\n\nStatsSwitcher.propTypes = {\n showDateSwitch: PropTypes.bool.isRequired,\n statsSwitch: PropTypes.func.isRequired,\n dateSwitch: PropTypes.func.isRequired,\n statsCheck: PropTypes.bool.isRequired,\n dateChecked: PropTypes.bool.isRequired,\n};\n\n\nexport default StatsSwitcher;","import styled from 'styled-components';\n\n\nexport const StyledChart = styled.div`\n\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Bar } from 'react-chartjs-2';\nimport 'chartjs-plugin-datalabels';\n\nimport { StyledChart } from './styles/StyledChart';\n\n\n// bar for testing colors\n/*\n \n
\n*/\n\n\nclass Chart extends Component {\n render() {\n const { data, yMax, selected, labels, formatter, } = this.props;\n\n return (\n \n \n \n );\n }\n}\n\n\nChart.propTypes = {\n data: PropTypes.array,\n labels: PropTypes.array,\n yMax: PropTypes.number.isRequired,\n selected: PropTypes.bool.isRequired,\n formatter: PropTypes.func,\n};\n\n\nexport default Chart;\n","\nconst parseTime = (time) => {\n const min = Math.floor(time);\n const sec = Math.floor(((time * 100) % 100) * 0.6);\n\n if (min === 0)\n return(sec + ' sec');\n if (sec === 0)\n return(min + ' min');\n\n return min + ' min, ' + sec + ' sec';\n}\n\n\nexport const formatterTimes = (value, context) => {\n return parseTime(value);\n}\n\n","import styled from 'styled-components';\n\nimport { COLOR_GRAPH_NO_DATA } from '../../../globals';\n\n\nexport const StyledCharts = styled.div`\n .officestats-charts {\n padding: 10px 30px 10px 30px;\n }\n .officestats-charts-title {\n text-align: center;\n font-size: 1.325em;\n }\n\n .officestats-nodata {\n text-align: center;\n font-size: 1em;\n padding: 40px;\n }\n .officestats-nodata-icon {\n font-size: 2em;\n color: ${COLOR_GRAPH_NO_DATA};\n }\n .officestats-nodata-text {\n\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { MAIN_CONTENT_DATA_WRAPPER_SETTINGS } from '../../globals';\nimport DataWrapper from '../../common/DataWrapper/DataWrapper';\nimport Chart from '../../common/Chart/Chart';\nimport { formatterTimes } from '../../common/Chart/utils';\n\nimport { StyledCharts } from './styles/StyledCharts';\n\n\n\nconst showWeekDay = (day) => {\n switch(day) {\n case 0:\n return 'Pondělí';\n case 1:\n return 'Úterý';\n case 2:\n return 'Středa';\n case 3:\n return 'Čtvrtek';\n case 4:\n return 'Pátek';\n case 5:\n return 'Sobota';\n case 6:\n return 'Neděle';\n default:\n return null;\n }\n}\n\n\nclass Charts extends Component {\n render() {\n const { statsData, statsType, maxValue, dateChecked, selected, year, month,} = this.props;\n\n let isRenderedChart = false;\n\n return (\n \n \n { statsData.data.stats.map((graphData, index) => {\n\n if (graphData === null) {\n return null;\n }\n else {\n isRenderedChart = true;\n return (\n \n
\n
\n {showWeekDay(index)}\n
\n
\n );\n }\n })}\n\n { !isRenderedChart &&\n \n
\n \n
\n
\n Statistiky nejsou momentálně k dispozici\n
\n
\n }\n\n \n \n );\n }\n}\n\n\nCharts.propTypes = {\n year: PropTypes.number.isRequired,\n month: PropTypes.number.isRequired,\n dateChecked: PropTypes.string.isRequired,\n statsData: PropTypes.object.isRequired,\n statsType: PropTypes.string.isRequired,\n maxValue: PropTypes.string.isRequired,\n selected: PropTypes.object.isRequired,\n};\n\n\nexport default Charts;","import styled from 'styled-components';\n\nimport { PADDING_PAGE } from '../../../globals';\n\n\nexport const StyledOfficeStats = styled.div`\n padding: ${PADDING_PAGE}px;\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { getOfficeStatsMonth, getOfficeStatsYear, switchOfficeStats, officeStatsReset } from './actions';\nimport { STATS_SHOW_DATE_SWITCH } from '../../config';\nimport TitleTop from '../../common/TitleTop/TitleTop';\nimport StatsSwitcher from './StatsSwitcher';\nimport Charts from './Charts';\n\nimport { StyledOfficeStats } from './styles/StyledOfficeStats';\n\n\nclass OfficeStats extends Component {\n constructor(props) {\n super(props);\n\n this.switchStats = this.switchStats.bind(this);\n this.switchDate = this.switchDate.bind(this);\n }\n\n componentDidMount() {\n const { officeId, serviceId, dateChecked, } = this.props;\n this.props.officeStatsReset();\n\n const dateFormat = new Date()\n const month = dateFormat.getMonth();\n const year = dateFormat.getFullYear();\n\n if (dateChecked === 'month') {\n this.props.getOfficeStatsMonth(officeId, serviceId, year, month);\n }\n else {\n this.props.getOfficeStatsYear(officeId, serviceId, year, month);\n }\n }\n\n switchStats() {\n this.props.switchOfficeStats(\n this.props.statsChecked === 'waitingTime' ? 'servedClients' : 'waitingTime',\n this.props.dateChecked\n );\n }\n\n switchDate() {\n const newDataChecked = this.props.dateChecked === 'year' ? 'month' : 'year';\n\n this.props.switchOfficeStats(\n this.props.statsChecked,\n newDataChecked\n );\n\n const { statsYear, statsMonth, officeId, serviceId, year, month, } = this.props;\n\n if (newDataChecked === 'year' && !statsYear.catchedData) {\n this.props.getOfficeStatsYear(officeId, serviceId, year, month);\n }\n else if (newDataChecked === 'month' && !statsMonth.catchedData) {\n this.props.getOfficeStatsMonth(officeId, serviceId, year, month);\n }\n }\n\n render() {\n const { statsChecked, dateChecked, statsYear, statsMonth, selected, year, month,} = this.props;\n\n return (\n \n \n \n\n \n\n \n\n \n );\n }\n}\n\n\nOfficeStats.propTypes = {\n officeId: PropTypes.string.isRequired,\n serviceId: PropTypes.string.isRequired,\n};\n\n\nconst mapStateToProps = (state) => {\n const { statsChecked, dateChecked, statsYear, statsMonth, year, month, selected, } = state.officeStats;\n\n return { statsChecked, dateChecked, statsYear, statsMonth, year, month, selected, };\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getOfficeStatsMonth: bindActionCreators(getOfficeStatsMonth, dispatch),\n getOfficeStatsYear: bindActionCreators(getOfficeStatsYear, dispatch),\n switchOfficeStats: bindActionCreators(switchOfficeStats, dispatch),\n officeStatsReset: bindActionCreators(officeStatsReset, dispatch),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OfficeStats);\n","import React, { Component } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\n\nimport Map from '../components/Map'\nimport Header from '../components/Header/Header';\nimport SideBar from '../components/SideBar/SideBar';\nimport IntervalsContent from '../components/IntervalsContent/IntervalsContent';\nimport { getCommonData } from '../components/Main/actions';\nimport { getDays, getIntervals, getOfficeInfo, getServiceInfo, serviceSelectDay, } from '../components/IntervalsContent/actions';\nimport { getOfficeStatsMonth, getOfficeStatsYear, officeSelectDay, officeStatsChangeDate } from '../components/OfficeStats/actions';\nimport OfficeStats from '../components/OfficeStats/OfficeStats';\n\n\nclass IntervalsPage extends Component {\n constructor(props) {\n super(props);\n\n const { officeId , serviceId, } = this.props.params;\n\n this.state = {\n officeId: officeId,\n serviceId: serviceId,\n };\n\n this.handleOnClickDay = this.handleOnClickDay.bind(this);\n this.onClickTableRow = this.onClickTableRow.bind(this);\n this.handleMonthChange = this.handleMonthChange.bind(this);\n }\n\n componentDidMount() {\n document.title = 'Výběr termínu';\n\n if (this.props.intervalsCommon.status === false) \n this.props.getCommonData();\n\n const { officeId , serviceId, } = this.state;\n this.props.getDays(officeId, serviceId);\n this.props.getOfficeInfo(officeId);\n this.props.getServiceInfo(officeId, serviceId);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.daysData.data.length === 0\n && this.props.daysData.data.length !== 0\n && this.props.serviceState.selectedDateId !== '') {\n \n const { data } = this.props.daysData;\n for (var i = 0; i < data.length; i++) {\n \n if (data[i].id === this.props.serviceState.selectedDateId\n && data[i].type === 'free') {\n this.props.getIntervals(this.props.serviceState.selectedDateId);\n } \n }\n }\n }\n\n handleOnClickDay(dayId, day) {\n this.props.serviceSelectDay(day, dayId);\n\n this.props.getIntervals(dayId);\n\n const tmpDay = new Date(day);\n const tmpDayNum = tmpDay.getDay();\n this.props.officeSelectDay(tmpDayNum === 0 ? 6 : tmpDayNum - 1, tmpDay.getMonth(), tmpDay.getFullYear());\n }\n\n handleMonthChange(date) {\n const { year, month, dateChecked, } = this.props.officeStats\n const { officeId, serviceId, } = this.state;\n const dateFormat = new Date(date)\n const newMonth = dateFormat.getMonth();\n const newYear = dateFormat.getFullYear();\n\n if (dateChecked === 'month' && ( newMonth !== month || newYear !== year )) {\n this.props.getOfficeStatsMonth(officeId, serviceId, newYear, newMonth);\n }\n else if (dateChecked === 'year' && newYear !== year) {\n this.props.getOfficeStatsYear(officeId, serviceId, newYear, newMonth);\n }\n else {\n this.props.officeStatsChangeDate(newYear, newMonth);\n }\n }\n\n onClickTableRow(intervalId, count, max_count) {\n if (count <= 0) {\n return;\n }\n\n const { officeId , serviceId, } = this.state;\n this.props.router.push(\n '/office/' + officeId + \n '/service/' + serviceId + \n '/interval/' + intervalId\n );\n }\n\n render() {\n const { daysData, intervalsData, officeData, serviceData, deleteReservationData, mainData, intervalsCommon, previousSteps, logo, sideBarTitles, btnBackTitle, } = this.props; \n const { selectedDateDay, } = this.props.serviceState;\n const { officeId, serviceId, } = this.state;\n\n return (\n \n
\n\n
\n\n
\n \n
\n
\n \n
\n\n {intervalsCommon.showStats &&\n
\n \n
\n }\n\n {!intervalsCommon.showStats &&\n
\n {!officeData.isLoading && ( ) }\n
\n }\n\n
\n
\n
\n );\n }\n}\n\n\nconst mapStateToProps = (state) => {\n const { daysData, intervalsData, officeData, serviceData, serviceState} = state.intervals;\n const { deleteReservationData } = state.reservation;\n const { year, month, dateChecked, } = state.officeStats;\n const mainData = state.main;\n\n return { daysData, intervalsData, officeData, serviceData, deleteReservationData, serviceState, mainData,\n officeStats: {\n year,\n month,\n dateChecked,\n },\n intervalsCommon: {\n status: state.main.status,\n ...state.main.data.intervalsCommon,\n },\n btnBackTitle: state.main.data.servicesCommon.title,\n previousSteps: state.main.data.previousSteps,\n logo: {\n ...state.main.data.logo,\n },\n sideBarTitles: {\n titleOne: state.main.data.officesCommon.title,\n titleTwo: state.main.data.servicesCommon.title,\n titleThree: state.main.data.intervalsCommon.title,\n titleFour: state.main.data.reservationCommon.title,\n }\n };\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getCommonData: bindActionCreators(getCommonData, dispatch),\n getDays: bindActionCreators(getDays, dispatch),\n getIntervals: bindActionCreators(getIntervals, dispatch),\n getOfficeInfo: bindActionCreators(getOfficeInfo, dispatch),\n getServiceInfo: bindActionCreators(getServiceInfo, dispatch),\n serviceSelectDay: bindActionCreators(serviceSelectDay, dispatch), \n getOfficeStatsYear: bindActionCreators(getOfficeStatsYear, dispatch), \n getOfficeStatsMonth: bindActionCreators(getOfficeStatsMonth, dispatch), \n officeSelectDay: bindActionCreators(officeSelectDay, dispatch), \n officeStatsChangeDate: bindActionCreators(officeStatsChangeDate, dispatch), \n };\n}\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(IntervalsPage);\n ","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, COLOR_CONTROLLED_INPUT_NORMAL, BORDER_COLOR_CONTROLLED_INPUT_NORMAL, BORDER_COLOR_CONTROLLED_INPUT_VALID, BORDER_COLOR_CONTROLLED_INPUT_ERROR, BACKGROUND_SIDE_BAR, BACKGROUND_HEADER } from '../../../globals';\n\n\nexport const StyledControlledInput = styled.div`\n margin-top: 2px;\n padding: 0px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n\n .controlled-input-container { \n position: relative; \n }\n\n .controlled-input-container .fa {\n position: absolute;\n padding-right: 9px;\n pointer-events: none;\n left: 5px;\n top: 7px;\n }\n\n .controlled-input-container input { \n padding-left: 35px; \n }\n\n .controlled-input-input {\n border-width: 0px 0px 2px 0px;\n border-style: solid;\n border-color: ${BACKGROUND_SIDE_BAR};\n box-shadow: none;\n font-size: 1em;\n border-radius: 0px;\n color: ${BACKGROUND_SIDE_BAR}; \n }\n\n .controlled-input-input:focus {\n box-shadow: none;\n outline: none;\n border-color: ${BACKGROUND_HEADER};\n }\n\n .controlled-input-icon {\n font-size: 1.5em;\n }\n\n\n .controlled-input-normal {\n border-color: ${BORDER_COLOR_CONTROLLED_INPUT_NORMAL};\n }\n\n .controlled-input-valid {\n border-color: ${BORDER_COLOR_CONTROLLED_INPUT_VALID};\n }\n\n .controlled-input-invalid {\n border-color: ${BORDER_COLOR_CONTROLLED_INPUT_ERROR};\n }\n\n\n .controlled-input-icon-normal {\n color: ${COLOR_CONTROLLED_INPUT_NORMAL};\n }\n\n .controlled-input-icon-valid {\n color: ${BORDER_COLOR_CONTROLLED_INPUT_VALID};\n }\n\n .controlled-input-icon-invalid {\n color: ${BORDER_COLOR_CONTROLLED_INPUT_ERROR};\n }\n\n input:-webkit-autofill,\n input:-webkit-autofill:hover,\n input:-webkit-autofill:focus,\n input:-webkit-autofill:active {\n transition: all 5000s ease-in-out 0s;\n transition-property: background-color, color;\n }\n\n .requiredLabel {\n color: ${BORDER_COLOR_CONTROLLED_INPUT_ERROR}\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { StyledControlledInput } from './styles/StyledControlledInput';\n\n\n\nclass ControlledInput extends Component {\n \n createPlaceholder(name) {\n switch(name) {\n case \"name\":\n return \"Jméno a Příjmení\";\n case \"phone\":\n return \"+420\"\n case \"email\":\n return \"email@email.cz\"\n }\n }\n \n render() {\n const { value, handleChange, name, inputState, icon, placeHolder, required } = this.props; \n\n return (\n \n \n {required && (* )}\n {placeHolder}\n \n \n \n handleChange(e.target.value, name)}\n />\n
\n\n\n \n );\n }\n}\n\n\nControlledInput.propTypes = {\n inputState: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n placeHolder: PropTypes.string.isRequired,\n icon: PropTypes.string.isRequired,\n handleChange: PropTypes.func.isRequired,\n required: PropTypes.bool.isRequired,\n};\n\n\nexport default ControlledInput;\n","import styled from 'styled-components';\n\nimport { COLOR_1 } from '../../../config';\nimport { backgroundSideBar, col_error } from '../../../globals';\n\n\nexport const StyledCheckBox = styled.div`\n padding: 0 6px 0 6px;\n margin: 2px 0 15px 0;\n\n input {\n position: absolute;\n height: 1px; \n width: 1px;\n overflow: hidden;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n\n label {\n display: block;\n position: relative;\n padding: 0 1.5rem 0 0;\n }\n\n label::before {\n content: '';\n position: relative;\n display: inline-block;\n margin-right: 10px;\n top: 6px;\n width: 25px;\n height: 25px;\n background: white;\n border: 2px solid #c1c1c1;\n } \n\n input:checked + label::before {\n background: #2e3647;\n }\n\n input:checked + label::after {\n content: '';\n position: absolute;\n top: 12px;\n left: 6px;\n border-left: 3px solid white;\n border-bottom: 3px solid white;\n height: 8px;\n width: 13px;\n transform: rotate(-45deg);\n }\n\n input:focus + label::before {\n border: 2px solid ${COLOR_1};\n box-shadow: 0 0px 6px #ccc;\n }\n\n label.error::before {\n border: 2px solid ${col_error};\n }\n \n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledCheckBox } from './styles/StyledCheckBox';\nimport { CONTROLLED_INPUT_INVALID, } from '../../globals';\n\nclass CheckBox extends Component {\n render() {\n const { value, inputState, onChange, children, name, required} = this.props;\n\n return (\n \n {onChange(!value, name)}} required={required}/>\n \n {children}\n \n \n );\n }\n}\n\nCheckBox.propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.bool.isRequired,\n inputState: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n children: PropTypes.element.isRequired, \n required: PropTypes.bool.isRequired,\n};\n\n\nexport default CheckBox;\n\n\n// ","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, COLOR_ERROR, BACKGROUND_ERROR } from '../../../globals';\n\n\nexport const StyledCaptcha = styled.div`\n padding: 0px ${PADDING_CONTENT_PAGE}px 0px ${PADDING_CONTENT_PAGE}px;\n margin-bottom: 15px;\n width: 100%;\n\n .captcha--error-message {\n color: ${COLOR_ERROR};\n font-weight: bold;\n background: ${BACKGROUND_ERROR};\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReCAPTCHA from 'react-google-recaptcha';\n\nimport { StyledCaptcha } from './styles/StyledCaptcha';\nimport { CAPRCHA_CLIENT_KEY } from './../../config';\nimport { CONTROLLED_INPUT_INVALID } from '../../globals';\n\n\nclass Captcha extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnChangeCaptcha = this.handleOnChangeCaptcha.bind(this);\n }\n\n handleOnChangeCaptcha(value) {\n const { handleChange, name } = this.props;\n handleChange(value, name);\n }\n\n render() {\n const { validation, } = this.props;\n\n return (\n \n \n {(validation === CONTROLLED_INPUT_INVALID) && (\n \n Prosím potvrďte, že nejste robot.\n \n )}\n \n )\n }\n}\n\n\nCaptcha.propTypes = {\n handleChange: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n validation: PropTypes.string.isRequired,\n}\n\n\nexport default Captcha;\n","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, FONT_SIZE_BTN_CONFIRM_TITLE, BACKGROUND_BTN_CONFIRM, BACKGROUND_BTN_CONFIRM_HOVER, COLOR_BTN_CONFIRM_HOVER, COLOR_CONTROLLED_INPUT_NORMAL} from '../../../globals';\n\n\nexport const StyledBtnConfirm = styled.button`\n padding: 0px ${PADDING_CONTENT_PAGE}px ${PADDING_CONTENT_PAGE}px ${PADDING_CONTENT_PAGE}px;\n font-size: ${FONT_SIZE_BTN_CONFIRM_TITLE}em;\n font-weight: bold;\n color: white;\n border: none;\n background: none;\n background-color: ${BACKGROUND_BTN_CONFIRM}; \n border-radius: 2px;\n text-align: center;\n vertical-align: middle;\n line-height: 34px; \n cursor: pointer;\n width: 100%;\n padding: 5px;\n\n ${(p) => p.disabled ? \n `background-color: ${COLOR_CONTROLLED_INPUT_NORMAL};\n cursor: auto;`\n : \n `:hover {\n background-color: ${BACKGROUND_BTN_CONFIRM_HOVER};\n color: ${COLOR_BTN_CONFIRM_HOVER};\n }`\n }\n\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledBtnConfirm } from './styles/StyledBtnConfirm';\n\nclass BtnConfirm extends Component {\n render() {\n const { title, handleOnCLick, isEnabled } = this.props;\n\n const enabled = isEnabled ? 'enabled' : 'disabled'\n\n return (\n \n \n { title }\n \n \n );\n }\n}\n\n\nBtnConfirm.propTypes = {\n title: PropTypes.string.isRequired,\n isEnabled: PropTypes.bool.isRequired,\n handleOnCLick: PropTypes.func.isRequired,\n};\n\n\nexport default BtnConfirm;","import styled from 'styled-components';\n\nimport { BORDER_COLOR_CONTROLLED_INPUT_NORMAL, BORDER_COLOR_CONTROLLED_INPUT_VALID, BORDER_COLOR_CONTROLLED_INPUT_ERROR, BACKGROUND_SIDE_BAR, BACKGROUND_HEADER } from '../../../globals';\n\n\nconst StyledControlledTextArea = styled.div`\n margin-bottom: 15px;\n padding-left: 6px;\n padding-right: 6px;\n margin-top: 2px;\n\n .controlled-textarea {\n width: 100%;\n padding: 6px;\n box-sizing: border-box;\n resize: none;\n border-width: 0px 0px 2px 0px;\n border-style: solid;\n border-color: ${BACKGROUND_SIDE_BAR};\n box-shadow: none;\n font-size: 1em;\n border-radius: 0px;\n color: ${BACKGROUND_SIDE_BAR}; \n }\n\n .controlled-textarea:focus {\n box-shadow: none;\n outline: none;\n border-color: ${BACKGROUND_HEADER};\n }\n\n ${(p) => (p.inputState && p.inputState === 'normal') && `\n .controlled-textarea {\n border-color: ${BORDER_COLOR_CONTROLLED_INPUT_NORMAL};\n }\n `}\n\n ${(p) => (p.inputState && p.inputState === 'valid') && `\n .controlled-textarea {\n border-color: ${BORDER_COLOR_CONTROLLED_INPUT_VALID};\n }\n `}\n\n ${(p) => (p.inputState && p.inputState === 'invalid') && `\n .controlled-textarea {\n border-color: ${BORDER_COLOR_CONTROLLED_INPUT_ERROR};\n }\n `}\n`;\n\n\nexport default StyledControlledTextArea;\n","import React, { Component, } from 'react';\nimport Textarea from 'react-textarea-autosize';\n\nimport StyledControlledTextArea from './styles/StyledControlledTextArea';\n\n\nclass ControlledTextArea extends Component {\n render() {\n const { onChange, value, placeholder, inputState, name, } = this.props;\n return(\n \n {placeholder} \n \n );\n }\n}\n\n\nexport default ControlledTextArea;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { API_URL } from '../../config';\nimport ControlledInput from '../../common/ControlledInput/ControlledInput';\nimport DataWrapper from '../../common/DataWrapper/DataWrapper';\nimport CheckBox from '../../common/CheckBox/CheckBox';\nimport Captcha from '../../common/Captcha/Captcha'; \nimport BtnConfirm from '../../common/BtnConfirm/BtnConfirm';\nimport { CONTROLLED_INPUT_INVALID } from '../../globals';\nimport ControlledTextArea from '../../common/ControlledTextArea/ControlledTextArea';\n\n\nclass ConfirmForm extends Component {\n handleTextAreaChange = (value, name) => {\n const { handleChangeInput, } = this.props;\n \n if (value.length < 501) {\n handleChangeInput(value, name);\n }\n }\n\n render() {\n const { \n reservationCommon,\n confirmData,\n handleChangeInput,\n handleOnClickConfirm,\n error,\n } = this.props;\n const {\n name ,email, phone, note, agreement, \n nameValid, emailValid, noteValid, phoneValid, agreementValid, captchaValid,\n } = this.props.inputs;\n const fileSrc = API_URL + '/files/' + reservationCommon.agreement.document;\n\n // Error Confirm reservation\n let errorMessage;\n let icon;\n\n if (!error.blacklist) {\n errorMessage = \"Tento e-mail je blokován!\";\n icon = 'fa-ban';\n\n } else if (!error.nonDuplicatedEmail) {\n errorMessage = \"Zadaný e-mail již má vytvořenou rezervaci na vybraný čas. Zadejte prosím jiný e-mail!\";\n icon = 'fa-envelope-open';\n\n } else {\n errorMessage = \"Něco se nepovedlo. Zkuste prosím stránku načíst znovu, nebo opakujte akci později.\";\n icon = 'fa-exclamation-triangle';\n }\n\n return (\n \n
\n \n { reservationCommon.agreement.show &&\n
\n {\n {reservationCommon.agreement.text + ' '}\n { (reservationCommon.agreement.document !== undefined && reservationCommon.agreement.document !== null) &&\n Podmínky naleznete zde \n }\n }\n \n }\n \n
\n\n {confirmData.error && (\n
\n
\n
\n \n \n \n \n \n \n { errorMessage }
\n \n \n \n
\n
\n
\n )}\n \n
\n\n
\n
\n * Povinné položky\n
\n
\n
\n );\n }\n}\n\n\nConfirmForm.propTypes = {\n inputs: PropTypes.object.isRequired,\n confirmData: PropTypes.object.isRequired,\n handleOnClickConfirm: PropTypes.func.isRequired,\n handleChangeInput: PropTypes.func.isRequired,\n};\n\n\nexport default ConfirmForm;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport 'moment/locale/cs';\n\nimport { SINGLE_OFFICE_MODE } from '../../config';\nimport ConfirmForm from './ConfirmForm';\nimport TitleTop from '../../common/TitleTop/TitleTop';\nimport TextWrapper from '../../common/TextWrapper/TextWrapper';\nimport RowHorizontal from '../../common/RowHorizontal/RowHorizontal';\nimport InfoPanel from '../../common/InfoPanel/InfoPanel';\n//import Timer from '../../common/Timer/Timer';\n\nimport { parseDateTimeToSpecificTimezone } from '../../common/Timezones';\n\nclass ConfirmInfo extends Component {\n render() {\n const {\n reservationCommon,\n previousSteps,\n confirmData,\n reserveData,\n inputs,\n error,\n handleChangeInput,\n handleOnClickConfirm,\n timezone,\n officeData,\n //handleTimerExpiration,\n } = this.props;\n\n /*let expiration = new Date(reserveData.data.expiration_start);\n expiration.setMinutes(expiration.getUTCMinutes() + reserveData.data.expiration_in_minutes);*/\n\n const time = parseDateTimeToSpecificTimezone(reserveData.data.time, reserveData.data.timezone);\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\nConfirmInfo.propTypes = {\n previousSteps: PropTypes.object.isRequired,\n reservationCommon: PropTypes.object.isRequired,\n inputs: PropTypes.object.isRequired,\n confirmData: PropTypes.object.isRequired,\n reserveData: PropTypes.object.isRequired,\n handleOnClickConfirm: PropTypes.func.isRequired,\n handleChangeInput: PropTypes.func.isRequired,\n //handleTimerExpiration: PropTypes.func.isRequired,\n};\n\nexport default ConfirmInfo;\n","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, PADDING_PAGE, BACKGROUND_RESERVATION_ERROR_INFO, COLOR_RESERVATION_ERROR_ICON, FONT_SIZE_RESERVATION_ERROR_ICON } from '../../../globals';\n\n\nexport const StyledReservationContent = styled.div`\n padding: ${PADDING_PAGE}px;\n\n p {\n margin: 0px;\n }\n\n .reservation-form--error-table {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: ${BACKGROUND_RESERVATION_ERROR_INFO};\n }\n\n .reservation-form--error-icon {\n font-size: ${FONT_SIZE_RESERVATION_ERROR_ICON}em;\n color: ${COLOR_RESERVATION_ERROR_ICON};\n padding: 10px;\n }\n\n .reservation-form--error-text {\n width: 100%;\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { MAIN_CONTENT_DATA_WRAPPER_SETTINGS } from '../../globals';\nimport BtnBack from '../../common/BtnBack/BtnBack';\nimport DataWrapper from '../../common/DataWrapper/DataWrapper';\nimport ConfirmInfo from './ConfirmInfo';\n\n\nimport { StyledReservationContent } from './styles/StyledReservationContent';\n\n\nclass ReservationContent extends Component {\n render() {\n const {\n officeId, serviceId,\n previousSteps,\n reservationCommon,\n btnBackTitle,\n reserveData,\n confirmData,\n inputs,\n error,\n clickBtnConfirm,\n handleChangeInput,\n handleTimerExpiration,\n officeData,\n } = this.props;\n\n return (\n \n\n \n\n \n \n \n\n \n );\n }\n}\n\nReservationContent.propTypes = {\n previousSteps: PropTypes.object.isRequired,\n reservationCommon: PropTypes.object.isRequired,\n serviceId: PropTypes.string.isRequired,\n officeId: PropTypes.string.isRequired,\n confirmReservation: PropTypes.func.isRequired,\n confirmData: PropTypes.object.isRequired,\n reserveData: PropTypes.object.isRequired,\n inputs: PropTypes.object.isRequired,\n clickBtnConfirm: PropTypes.func.isRequired,\n handleChangeInput: PropTypes.func.isRequired,\n handleTimerExpiration: PropTypes.func.isRequired,\n timezone: PropTypes.string.isRequired,\n officeData: PropTypes.object.isRequired,\n};\n\n\nexport default ReservationContent;\n","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, PADDING_PAGE, BACKGROUND_RESERVATION_SUCCESS_INFO, COLOR_RESERVATION_SUCCESS_ICON, FONT_SIZE_RESERVATION_SUCCESS_ICON } from '../../../globals';\n\n\nexport const StyledReservationSuccess = styled.div`\n padding: ${PADDING_PAGE}px;\n margin-top: 15px;\n\n .reservation-success-row {\n margin: 0px;\n }\n\n .reservation-success-col {\n padding: 0px;\n }\n\n p {\n margin: 0px;\n }\n\n .reservation-success-table {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: ${BACKGROUND_RESERVATION_SUCCESS_INFO};\n }\n\n .reservation-success-icon {\n font-size: ${FONT_SIZE_RESERVATION_SUCCESS_ICON}em;\n color: ${COLOR_RESERVATION_SUCCESS_ICON};\n padding: 10px;\n }\n\n .reservation-success-text {\n width: 100%;\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport 'moment/locale/cs';\n\nimport { SINGLE_OFFICE_MODE } from '../../config';\nimport RowHorizontal from '../../common/RowHorizontal/RowHorizontal';\nimport TitleTop from '../../common/TitleTop/TitleTop';\nimport InfoPanel from '../../common/InfoPanel/InfoPanel';\n\nimport { StyledReservationSuccess } from './styles/StyledReservationSuccess';\n\nimport { parseDateTimeToSpecificTimezone } from '../../common/Timezones';\n\nclass ReservationSuccess extends Component {\n render() {\n const {\n storeName,\n storeAddress,\n serviceName,\n reservedTime,\n emailConfirmation,\n pin,\n } = this.props.success;\n const { timezone } = this.props;\n const { previousSteps, } = this.props;\n const { officeData } = this.props;\n const time = parseDateTimeToSpecificTimezone(reservedTime, timezone).format();\n return (\n \n \n\n \n\n \n\n {emailConfirmation &&\n \n \n \n \n \n \n \n Rezervaci je třeba potvrdit emailem.
\n \n \n \n
\n }\n\n {!emailConfirmation &&\n \n \n \n \n \n \n \n Na email vám byly odeslány všechny potřebné informace.
\n PIN: {pin}
\n \n \n \n
\n }\n\n \n );\n }\n}\n\nReservationSuccess.propTypes = {\n success: PropTypes.object.isRequired,\n timezone: PropTypes.string.isRequired,\n};\n\nexport default ReservationSuccess;","import styled from 'styled-components';\n\nimport { PADDING_CONTENT_PAGE, PADDING_PAGE, BACKGROUND_RESERVATION_ERROR_INFO, COLOR_RESERVATION_ERROR_ICON, FONT_SIZE_RESERVATION_ERROR_ICON } from '../../../globals';\n\n\nexport const StyledReservationError = styled.div`\n padding: ${PADDING_PAGE}px;\n\n p {\n margin: 0px;\n }\n\n .reservation-error-table {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: ${BACKGROUND_RESERVATION_ERROR_INFO};\n }\n\n .reservation-error-icon {\n font-size: ${FONT_SIZE_RESERVATION_ERROR_ICON}em;\n color: ${COLOR_RESERVATION_ERROR_ICON};\n padding: 10px;\n }\n\n .reservation-error-text {\n width: 100%;\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SINGLE_OFFICE_MODE } from '../../config';\nimport TitleTop from '../../common/TitleTop/TitleTop';\nimport BtnBack from '../../common/BtnBack/BtnBack';\n\nimport { StyledReservationError } from './styles/StyledReservationError';\n\nclass ReservationError extends Component {\n render() {\n const { officeId, serviceId, } = this.props;\n const { \n blacklist,\n timeLimit,\n nonDuplicatedEmail,\n } = this.props.error;\n\n let errorMessage;\n let icon;\n\n if (!blacklist) {\n errorMessage = \"Tento e-mail je blokován!\";\n icon = 'fa-ban';\n\n } else if (!timeLimit) {\n errorMessage = \"Vypršel časový limit pro rezervaci!\";\n icon = 'fa-hourglass-o';\n\n } else if (!nonDuplicatedEmail) {\n errorMessage = \"Zadaný e-mail již má vytvořenou rezervaci na vybraný čas. Zadejte prosím jiný e-mail!\";\n icon = 'fa-envelope-open';\n\n } else {\n errorMessage = \"Něco se nepovedlo\";\n icon = 'fa-exclamation-triangle';\n }\n\n return (\n \n\n \n\n \n
\n \n
\n \n \n \n \n \n \n { errorMessage }
\n \n \n \n
\n\n
\n \n \n );\n }\n}\n\n\nReservationError.propTypes = {\n error: PropTypes.object.isRequired,\n serviceId: PropTypes.string.isRequired,\n officeId: PropTypes.string.isRequired,\n};\n\n\nexport default ReservationError;","import { API_URL } from '../../config';\nimport { CALL_API } from '../../middlewares/apiMiddleware';\nimport { \n RESERVATION_POST_RESERVE_INTERVAL,\n RESERVATION_DELETE_FREE_INTERVAL,\n RESERVATION_PUT_CONFIRM,\n PENDING, FULFILLED, REJECTED, \n RESERVATION_CLICK_CONFIRM_BTN,\n RESERVATION_CHANGE_INPUT,\n RESERVATION_TIME_EXPIRATION,\n RESERVATION_GET_OFFICE_INFO,\n} from '../../globals';\n\n\n\nexport function reserveIntervalRequest() {\n return {\n type: `${RESERVATION_POST_RESERVE_INTERVAL}_${PENDING}`,\n };\n}\n\nexport function reserveIntervalSuccess(response) {\n return {\n type: `${RESERVATION_POST_RESERVE_INTERVAL}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function reserveIntervalFailure(response) {\n return {\n type: `${RESERVATION_POST_RESERVE_INTERVAL}_${REJECTED}`,\n payload: {\n message: response.response,\n }\n };\n}\n\n\n\nexport function freeIntervalRequest() {\n return {\n type: `${RESERVATION_DELETE_FREE_INTERVAL}_${PENDING}`,\n };\n}\n\nexport function freeIntervalSuccess(response) {\n return {\n type: `${RESERVATION_DELETE_FREE_INTERVAL}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function freeIntervalFailure(response) {\n return {\n type: `${RESERVATION_DELETE_FREE_INTERVAL}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\nexport function confirmReservationRequest() {\n return {\n type: `${RESERVATION_PUT_CONFIRM}_${PENDING}`,\n };\n}\n\nexport function confirmReservationSuccess(response) {\n return {\n type: `${RESERVATION_PUT_CONFIRM}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n message: response.message,\n }\n };\n}\n\nexport function confirmReservationFailure(response) {\n return {\n type: `${RESERVATION_PUT_CONFIRM}_${REJECTED}`,\n payload: {\n status: false,\n message: response.response,\n }\n };\n}\n\n\n\nexport const reserveInterval = (officeId, serviceId, intervalId) => ({\n [CALL_API]: {\n actions: [reserveIntervalRequest, reserveIntervalSuccess, reserveIntervalFailure],\n url: `${API_URL}/web/order`,\n method: 'post',\n data: { \n store_id: officeId,\n service_id: serviceId,\n interval_id: intervalId,\n },\n },\n});\n\nexport const freeInterval = (orderId, pin, uuid) => ({\n [CALL_API]: {\n actions: [freeIntervalRequest, freeIntervalSuccess, freeIntervalFailure],\n url: `${API_URL}/web/order/delete`,\n method: 'put',\n data: { \n order_id: orderId,\n pin: pin,\n uuid: uuid,\n },\n },\n});\n\nexport const confirmReservation = ({\n id,\n pin,\n name,\n email,\n phone,\n note,\n officeId,\n serviceId,\n}) => ({\n [CALL_API]: {\n actions: [confirmReservationRequest, confirmReservationSuccess, confirmReservationFailure],\n url: `${API_URL}/web/order`,\n method: 'put',\n data: { \n order_id: id,\n pin: pin,\n name: name,\n email: email,\n phone_number: phone,\n note,\n store_id: officeId,\n service_id: serviceId,\n },\n },\n});\n\n\n\n\nexport function clickBtnConfirm(newNameValid, newEmailValid, newPhoneValid, newNoteValid, newAgreementValid, newCaptcha) {\n return {\n type: `${RESERVATION_CLICK_CONFIRM_BTN}`,\n payload: {\n nameValid: newNameValid, \n emailValid: newEmailValid, \n phoneValid: newPhoneValid,\n noteValid: newNoteValid,\n agreementValid: newAgreementValid,\n newCaptcha: newCaptcha,\n }\n };\n}\n\nexport function changeInput(value, inputName) {\n return {\n type: `${RESERVATION_CHANGE_INPUT}`,\n payload: {\n value: value, \n inputName: inputName,\n }\n };\n}\n\nexport function timerExpired() {\n return {\n type: `${RESERVATION_TIME_EXPIRATION}`,\n };\n}\n\n\n\nexport function getOfficeInfoServiceRequest() {\n return {\n type: `${RESERVATION_GET_OFFICE_INFO}_${PENDING}`,\n };\n}\n\nexport function getOfficeInfoServiceSuccess(response) {\n return {\n type: `${RESERVATION_GET_OFFICE_INFO}_${FULFILLED}`,\n payload: {\n data: response.data,\n status: response.status,\n }\n };\n}\n\nexport function getOfficeInfoServiceFailure(response) {\n return {\n type: `${RESERVATION_GET_OFFICE_INFO}_${REJECTED}`,\n payload: {\n errorMessage: response,\n }\n };\n}\n\nexport const getOfficeInfo = (officeId) => ({\n [CALL_API]: {\n actions: [getOfficeInfoServiceRequest, getOfficeInfoServiceSuccess, getOfficeInfoServiceFailure],\n url: `${API_URL}/web/stores?id=${officeId}`,\n },\n});","// ~ REGEXS ~ //\n\nexport const regValidateEmail = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i;\n\nexport const regValidatePhone = /^(\\+[0-9]{11,13}|[0-9]{9})$/i;\n\n// ~ REGEXS ~ //","import React, { Component } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport Map from '../components/Map'\nimport Header from '../components/Header/Header';\nimport SideBar from '../components/SideBar/SideBar';\nimport ReservationContent from '../components/ReservationContent/ReservationContent';\nimport ReservationSuccess from '../components/ReservationSuccess/ReservationSuccess';\nimport ReservationError from '../components/ReservationError/ReservationError';\nimport { getCommonData } from '../components/Main/actions';\nimport { getOfficeInfo } from '../components/ReservationContent/actions';\nimport { reserveInterval, freeInterval, confirmReservation, clickBtnConfirm, changeInput, timerExpired } from '../components/ReservationContent/actions';\nimport { regValidatePhone, regValidateEmail } from '../components/ReservationContent/utils';\nimport { CONTROLLED_INPUT_VALID, CONTROLLED_INPUT_INVALID } from '../globals';\n\n\nclass ReservationPage extends Component {\n constructor(props) {\n super(props);\n\n const { officeId, serviceId, intervalId } = this.props.params;\n const { getOfficeInfo, officeData, } = this.props;\n\n getOfficeInfo(officeId);\n\n this.state = {\n officeId: officeId,\n serviceId: serviceId,\n intervalId: intervalId,\n officeData: officeData.data,\n }\n\n this.handleOnClickBackToService = this.handleOnClickBackToService.bind(this);\n this.handleChangeInput = this.handleChangeInput.bind(this);\n this.handleOnClickConfirm = this.handleOnClickConfirm.bind(this);\n this.handleTimerExpiration = this.handleTimerExpiration.bind(this);\n }\n\n componentDidMount() {\n document.title = 'Potvrzení rezervace';\n\n if (this.props.reservationCommon.status === false)\n this.props.getCommonData();\n \n const { officeId, serviceId, intervalId } = this.state;\n \n this.props.reserveInterval(officeId, serviceId, intervalId);\n }\n\n componentWillUnmount() {\n if (this.props.reservationState.phase !== 1) {\n const { pin, id, uuid } = this.props.reserveData.data;\n this.props.freeInterval(id, pin, uuid);\n }\n }\n\n handleChangeInput(value, inputName) {\n this.props.changeInput(value, inputName);\n }\n\n handleOnClickConfirm(e) {\n const { name, email, phone, captcha, agreement, note, } = this.props.reservationState.inputs;\n const { reservationCommon } = this.props;\n\n let newNameValid;\n let newPhoneValid;\n let newAgreement;\n let newNoteValid;\n\n // check NAME if is enabled and required\n if (reservationCommon.name.show && reservationCommon.name.isRequired)\n newNameValid = name === '' ? CONTROLLED_INPUT_INVALID : CONTROLLED_INPUT_VALID;\n else\n newNameValid = CONTROLLED_INPUT_VALID;\n\n // check PHONE if is enabled and required\n if (reservationCommon.phone.show && reservationCommon.phone.isRequired)\n newPhoneValid = regValidatePhone.test(phone.replace(/\\s+/g, '')) ? CONTROLLED_INPUT_VALID : CONTROLLED_INPUT_INVALID;\n else\n newPhoneValid = CONTROLLED_INPUT_VALID;\n\n // check NOTE if is enabled and required\n if (reservationCommon.note.show && reservationCommon.note.isRequired)\n newNoteValid = note.length > 0 ? CONTROLLED_INPUT_VALID : CONTROLLED_INPUT_INVALID;\n else\n newNoteValid = CONTROLLED_INPUT_VALID;\n\n // check AGREEMENT if is enabled\n if (reservationCommon.agreement.show)\n newAgreement = agreement ? CONTROLLED_INPUT_VALID : CONTROLLED_INPUT_INVALID;\n else\n newAgreement = CONTROLLED_INPUT_VALID;\n\n // check EMAIL\n const newEmailValid = regValidateEmail.test(email) ? CONTROLLED_INPUT_VALID : CONTROLLED_INPUT_INVALID;\n\n // check CAPTCHA\n const newCaptcha = captcha !== null ? CONTROLLED_INPUT_VALID : CONTROLLED_INPUT_INVALID;\n\n if (newNameValid === CONTROLLED_INPUT_VALID &&\n newEmailValid === CONTROLLED_INPUT_VALID &&\n newPhoneValid === CONTROLLED_INPUT_VALID &&\n newNoteValid === CONTROLLED_INPUT_VALID &&\n newAgreement === CONTROLLED_INPUT_VALID &&\n newCaptcha === CONTROLLED_INPUT_VALID) {\n const { officeId, serviceId, } = this.state;\n const { id, pin, } = this.props.reserveData.data;\n this.props.confirmReservation({\n id,\n pin,\n name,\n email,\n phone,\n note,\n officeId,\n serviceId,\n });\n\n } else {\n this.props.clickBtnConfirm(newNameValid, newEmailValid, newPhoneValid, newNoteValid, newAgreement, newCaptcha);\n }\n }\n\n handleOnClickBackToService(e) {\n const { officeId, serviceId } = this.state;\n this.props.router.push('/office/' + officeId + '/service/' + serviceId);\n }\n\n handleTimerExpiration() {\n this.props.timerExpired();\n }\n\n render() {\n const { officeId, serviceId, officeData, } = this.state;\n const {\n reservationCommon,\n btnBackTitle,\n previousSteps,\n reserveData,\n confirmData,\n confirmReservation,\n logo,\n sideBarTitles,\n } = this.props;\n const {\n phase,\n inputs,\n success,\n error,\n } = this.props.reservationState;\n\n return (\n \n
\n\n
\n\n
\n
\n
\n\n {phase === 0 &&\n \n }\n\n {phase === 1 &&\n \n }\n\n {phase === 2 &&\n \n }\n\n
\n
\n \n
\n
\n
\n
\n );\n }\n}\n\n\nconst mapStateToProps = (state) => {\n const { reserveData, confirmData, reservationState, officeData } = state.reservation;\n return {\n reserveData,\n confirmData,\n reservationState,\n officeData,\n reservationCommon: {\n status: state.main.status,\n ...state.main.data.reservationCommon,\n },\n btnBackTitle: state.main.data.intervalsCommon.title,\n previousSteps: state.main.data.previousSteps,\n logo: {\n ...state.main.data.logo,\n },\n sideBarTitles: {\n titleOne: state.main.data.officesCommon.title,\n titleTwo: state.main.data.servicesCommon.title,\n titleThree: state.main.data.intervalsCommon.title,\n titleFour: state.main.data.reservationCommon.title,\n }\n };\n}\n\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getCommonData: bindActionCreators(getCommonData, dispatch),\n reserveInterval: bindActionCreators(reserveInterval, dispatch),\n freeInterval: bindActionCreators(freeInterval, dispatch),\n confirmReservation: bindActionCreators(confirmReservation, dispatch),\n clickBtnConfirm: bindActionCreators(clickBtnConfirm, dispatch),\n changeInput: bindActionCreators(changeInput, dispatch),\n timerExpired: bindActionCreators(timerExpired, dispatch),\n getOfficeInfo: bindActionCreators(getOfficeInfo, dispatch),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ReservationPage);\n","import styled from 'styled-components';\n\n\nexport const StyledNotFoundContent = styled.div`\ndisplay: inherit;\noverflow: hidden;\nheight: 100%;\nwidth: 100%;\nposition: absolute;\ntop: 0px;\nleft: 0px;\n\n.notFound-container {\n height: 100%;\n width: 100%;\n display: table;\n position: relative;\n left: 0;\n top: 0;\n}\n\n.notFound-content {\n padding: 10px 0px 10px 0px;\n border-radius: 1px;\n position: static;\n vertical-align: middle;\n display: table-cell;\n}\n\n.notFound-table{\n display: table;\n height: 100%;\n width: 100%;\n}\n\n.notFound-table-cell{\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n}\n\n.notFound-404 {\n border: 2px solid #b90d0d;\n border-radius: 50%;\n width: 150px;\n height: 150px;\n left: 50%;\n margin: 0 auto;\n text-align: center;\n color: #b90d0d;\n font-size: 5em;\n}\n\n.notFound-title {\n padding: 10px 0px 20px 0px;\n text-align: center;\n font-size: 1em;\n}\n\n.notFound-btn {\n font-size 1em;\n margin: 0 auto;\n padding: 5px;\n text-align: center;\n width: 200px;\n\n cursor: pointer;\n box-shadow: 1px 1px 2px rgb(171, 169, 169);\n border-radius: 2px;\n background-color: #f2f2f2;\n}\n\n.notFound-btn:hover {\n background-color: #d2d2d2;\n}\n\n.notFound-arrow {\n padding: 0px 5px 0px 10px;\n font-size: 1em;\n}\n\n.notFound-text {\n padding-right: 5px;\n}\n\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledNotFoundContent } from './styles/StyledNotFoundContent';\n\n\nclass NotFoundContent extends Component {\n constructor(props) {\n super(props);\n\n this.handleOnClickBtn = this.handleOnClickBtn.bind(this);\n }\n\n handleOnClickBtn() {\n this.props.router.push('/');\n }\n\n render() {\n return (\n \n \n
\n
\n
\n Stránka nebyla nalezena.\n
\n
\n \n \n \n \n Rezervační systém\n \n
\n
\n
\n \n );\n }\n}\n\n\nNotFoundContent.propTypes = {\n router: PropTypes.any,\n};\n\n\nexport default NotFoundContent;","import React, { Component } from 'react';\n\nimport NotFoundContent from '../components/NotFoundContent/NotFoundContent';\n\n\nclass NotFoundPage extends Component {\n\n render() {\n const { router } = this.props;\n\n return (\n \n );\n }\n}\n\nexport default NotFoundPage;","import { API_URL } from '../../config';\nimport { CALL_API } from '../../middlewares/apiMiddleware';\nimport { CONFIRM_MAIL_CONFIRM, PENDING, FULFILLED, REJECTED } from '../../globals';\n\n\n\nexport function confirmEmailRequest(){\n return {\n type: `${CONFIRM_MAIL_CONFIRM}_${PENDING}`,\n };\n}\n\nexport function confirmEmailSuccess(response){\n return {\n type: `${CONFIRM_MAIL_CONFIRM}_${FULFILLED}`,\n };\n}\n\nexport function confirmEmailFailure(response){\n return {\n type: `${CONFIRM_MAIL_CONFIRM}_${REJECTED}`,\n payload: {\n time: (response.response && response.response.data.message.message.time !== undefined) ? response.response.data.message.message.time : true,\n completed: (response.response && response.response.data.message.message.completed !== undefined) ? response.response.data.message.message.completed : true,\n deleted: (response.response && response.response.data.message.message.deleted !== undefined) ? response.response.data.message.message.deleted : true,\n emailConfirmed: (response.response && response.response.data.message.message.email_confirmed !== undefined) ? response.response.data.message.message.email_confirmed : true,\n }\n };\n}\n\n\nexport const confirmEmail = (emailHash) => ({\n [CALL_API]: {\n actions: [confirmEmailRequest, confirmEmailSuccess, confirmEmailFailure],\n url: `${API_URL}/web/order/complete-reservation?hash=${emailHash}`,\n },\n});\n","import styled from 'styled-components';\n\nimport { \n PADDING_CONTENT_PAGE, PADDING_PAGE, \n BACKGROUND_EMAIL_CONFIRM_INFO_SUCCESS, COLOR_EMAIL_CONFIRM_ICON_SUCCESS, \n BACKGROUND_EMAIL_CONFIRM_INFO_ERROR, COLOR_EMAIL_CONFIRM_ICON_ERROR, \n BACKGROUND_EMAIL_CONFIRM_INFO_WARNING, COLOR_EMAIL_CONFIRM_ICON_WARNING, \n FONT_SIZE_EMAIL_CONFIRM_ICON \n} from '../../../globals';\n\n\nexport const StyledEmailConfirmContent = styled.div`\n padding: ${PADDING_PAGE}px;\n margin-top: 15px;\n\n .email-confirm-laoder {\n position: relative;\n min-height: 100px;\n }\n\n .email-confirm-table-success {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: ${BACKGROUND_EMAIL_CONFIRM_INFO_SUCCESS};\n }\n\n .email-confirm-icon-success {\n font-size: ${FONT_SIZE_EMAIL_CONFIRM_ICON}em;\n color: ${COLOR_EMAIL_CONFIRM_ICON_SUCCESS};\n padding: 10px;\n }\n\n .email-confirm-table-error {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: ${BACKGROUND_EMAIL_CONFIRM_INFO_ERROR};\n }\n\n .email-confirm-icon-error {\n font-size: ${FONT_SIZE_EMAIL_CONFIRM_ICON}em;\n color: ${COLOR_EMAIL_CONFIRM_ICON_ERROR};\n padding: 10px;\n }\n\n .email-confirm-table-warning {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: ${BACKGROUND_EMAIL_CONFIRM_INFO_WARNING};\n }\n\n .email-confirm-icon-warning {\n font-size: ${FONT_SIZE_EMAIL_CONFIRM_ICON}em;\n color: ${COLOR_EMAIL_CONFIRM_ICON_WARNING};\n padding: 10px;\n }\n\n .email-confirm-text {\n width: 100%;\n }\n\n .email-confirm-btn {\n margin-left: 6px;\n background: ${COLOR_EMAIL_CONFIRM_ICON_WARNING};\n color: white;\n border: none;\n padding: 0.5rem 0.75rem;\n font-weight: bold;\n }\n\n .email-confirm-btn:hover {\n background: #e66801;\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledEmailConfirmContent } from './styles/StyledEmailConfirmContent';\nimport LoadingSpinner from '../../common/LoadingSpinner/LoadingSpinner';\nimport TitleTop from '../../common/TitleTop/TitleTop';\n\nclass EmailConfirmContent extends Component {\n render() {\n const {\n confirmEmail,\n confirmEmailData,\n } = this.props;\n\n let title;\n let message;\n let icon;\n let style;\n\n if (confirmEmailData.isLoading) {\n return (\n \n \n \n \n
\n \n );\n }\n\n if (confirmEmailData.status) {\n style = \"success\";\n title = \"Rezervace je potvrzena\";\n message = \"Vaše rezervace je nyní platná.\";\n icon = 'fa-check';\n\n } else if (!confirmEmailData.errorType.time) {\n style = \"error\";\n title = \"Rezervaci nelze potvrdit\";\n message = \"Rezervace neexistuje nebo vypršel čas pro její potvrzení.\";\n icon = 'fa-exclamation-triangle';\n\n } else if (!confirmEmailData.errorType.completed) {\n style = \"error\";\n title = \"Rezervaci nelze potvrdit\";\n message = \"Něco se nepovedlo.\";\n icon = 'fa-exclamation-triangle';\n\n } else if (!confirmEmailData.errorType.deleted) {\n style = \"error\";\n title = \"Rezervaci nelze potvrdit\";\n message = \"Tato rezervace byla už smazána.\";\n icon = 'fa-exclamation-triangle';\n\n } else if (!confirmEmailData.errorType.emailConfirmed) {\n style = \"success\";\n title = \"Rezervace je potvrzena\";\n message = \"Rezervace byla již potvrzena.\";\n icon = 'fa-check';\n\n } else {\n style = \"warning\";\n title = \"Něco se nepovedlo\";\n message = \"Nepodařilo se navázat spojení. Zkuste prosím stránku načíst znovu, nebo opakujte akci později.\";\n icon = 'fa-exclamation-triangle';\n }\n\n return (\n \n \n
\n\n
\n \n \n \n \n \n \n {message}\n \n \n \n
\n\n {style === \"warning\" && (\n
\n Zkusit znovu\n \n )}\n\n
\n \n );\n }\n}\n\n\nEmailConfirmContent.propTypes = {\n confirmEmail: PropTypes.func.isRequired,\n confirmEmailData: PropTypes.shape({\n isLoading: PropTypes.bool.isRequired,\n status: PropTypes.bool.isRequired,\n errorType: PropTypes.shape({\n time: PropTypes.bool.isRequired,\n completed: PropTypes.bool.isRequired,\n deleted: PropTypes.bool.isRequired,\n emailConfirmed: PropTypes.bool.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\n\nexport default EmailConfirmContent;","import React, { Component } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { getCommonData } from '../components/Main/actions';\nimport { confirmEmail } from '../components/EmailConfirmContent/actions'; \nimport Header from '../components/Header/Header';\nimport EmailConfirmContent from '../components/EmailConfirmContent/EmailConfirmContent'; \n\n\nclass EmailConfirm extends Component {\n constructor(props) {\n super(props);\n\n this.confirmEmail = this.confirmEmail.bind(this);\n }\n \n componentDidMount() {\n document.title = 'Potvrzení rezervace';\n\n if (this.props.logo.status === false) {\n this.props.getCommonData();\n }\n \n this.confirmEmail();\n }\n\n confirmEmail() {\n const { emailHash, } = this.props.params;\n\n this.props.confirmEmail(emailHash);\n }\n\n render() {\n const { confirmEmailData, logo, } = this.props;\n\n return (\n \n \n );\n }\n}\n\n\nconst mapStateToProps = (state) => {\n const { confirmEmail, } = state;\n return { \n confirmEmailData: confirmEmail,\n logo: {\n status: state.main.status, \n ...state.main.data.logo,\n }\n };\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getCommonData: bindActionCreators(getCommonData, dispatch),\n confirmEmail: bindActionCreators(confirmEmail, dispatch),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EmailConfirm);","import { API_URL } from '../../config';\nimport { CALL_API } from '../../middlewares/apiMiddleware';\nimport { DELETE_RESERVATION_DELETE, PENDING, FULFILLED, REJECTED } from '../../globals';\n\n\n\nexport function deleteReservationRequest(){\n return {\n type: `${DELETE_RESERVATION_DELETE}_${PENDING}`,\n };\n}\n\nexport function deleteReservationSuccess(response){\n return {\n type: `${DELETE_RESERVATION_DELETE}_${FULFILLED}`,\n };\n}\n\nexport function deleteReservationFailure(response){\n return {\n type: `${DELETE_RESERVATION_DELETE}_${REJECTED}`,\n payload: {\n time: (response.response && response.response.data.message.message.time !== undefined) ? response.response.data.message.message.time : true,\n completed: (response.response && response.response.data.message.message.completed !== undefined) ? response.response.data.message.message.completed : true,\n deleted: (response.response && response.response.data.message.message.deleted !== undefined) ? response.response.data.message.message.deleted : true,\n emailConfirmed: (response.response && response.response.data.message.message.email_confirmed !== undefined) ? response.response.data.message.message.email_confirmed : true,\n }\n };\n}\n\n\n\nexport const deleteReservation = (reservationHash) => ({\n [CALL_API]: {\n actions: [deleteReservationRequest, deleteReservationSuccess, deleteReservationFailure],\n url: `${API_URL}/web/order/delete-reservation?hash=${reservationHash}`,\n },\n});\n","import styled from 'styled-components';\n\nimport { \n PADDING_CONTENT_PAGE, PADDING_PAGE, \n BACKGROUND_DELETE_RESERVATION_INFO_SUCCESS, COLOR_DELETE_RESERVATION_ICON_SUCCESS, \n BACKGROUND_DELETE_RESERVATION_INFO_ERROR, COLOR_DELETE_RESERVATION_ICON_ERROR, \n BACKGROUND_DELETE_RESERVATION_INFO_WARNING, COLOR_DELETE_RESERVATION_ICON_WARNING, \n FONT_SIZE_DELETE_RESERVATION_ICON, COLOR_EMAIL_CONFIRM_ICON_WARNING,\n} from '../../../globals';\n\n\nexport const StyledDeleteReservationContent = styled.div`\n padding: ${PADDING_PAGE}px;\n margin-top: 15px;\n\n .delete-reservation-laoder {\n position: relative;\n min-height: 100px;\n }\n\n .delete-reservation-button-wrapper > button {\n margin-right: 10px;\n min-width: 120px;\n }\n\n .delete-reservation-table-info {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: #e4e4e4;\n }\n\n .delete-reservation-icon-info {\n font-size: ${FONT_SIZE_DELETE_RESERVATION_ICON}em;\n color: ${COLOR_DELETE_RESERVATION_ICON_WARNING};\n padding: 10px;\n }\n\n .delete-reservation-table-success {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: ${BACKGROUND_DELETE_RESERVATION_INFO_SUCCESS};\n }\n\n .delete-reservation-icon-success {\n font-size: ${FONT_SIZE_DELETE_RESERVATION_ICON}em;\n color: ${COLOR_DELETE_RESERVATION_ICON_SUCCESS};\n padding: 10px;\n }\n\n .delete-reservation-table-error {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: ${BACKGROUND_DELETE_RESERVATION_INFO_ERROR};\n }\n\n .delete-reservation-icon-error {\n font-size: ${FONT_SIZE_DELETE_RESERVATION_ICON}em;\n color: ${COLOR_DELETE_RESERVATION_ICON_ERROR};\n padding: 10px;\n }\n\n .delete-reservation-table-warning {\n margin: 10px ${PADDING_CONTENT_PAGE}px 6px ${PADDING_CONTENT_PAGE}px;\n background-color: ${BACKGROUND_DELETE_RESERVATION_INFO_WARNING};\n }\n\n .delete-reservation-icon-warning {\n font-size: ${FONT_SIZE_DELETE_RESERVATION_ICON}em;\n color: ${COLOR_DELETE_RESERVATION_ICON_WARNING};\n padding: 10px;\n }\n\n .delete-reservation-text {\n width: 100%;\n }\n\n .delete-reservation-btn {\n margin-left: 6px;\n background: ${COLOR_EMAIL_CONFIRM_ICON_WARNING};\n color: white;\n border: none;\n padding: 0.5rem 0.75rem;\n font-weight: bold;\n }\n\n .delete-reservation-btn:hover {\n background: #e66801;\n }\n`;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { StyledDeleteReservationContent } from './styles/StyledDeleteReservationContent';\nimport LoadingSpinner from '../../common/LoadingSpinner/LoadingSpinner';\nimport TitleTop from '../../common/TitleTop/TitleTop';\n\nclass DeleteReservationContent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n hasBeenSent: false,\n };\n\n this.confirmDeleteReservation = this.confirmDeleteReservation.bind(this);\n }\n\n confirmDeleteReservation() {\n const { reservationHash, } = this.props;\n\n this.setState({\n hasBeenSent: true\n })\n\n this.props.deleteReservation(reservationHash);\n }\n\n\n render() {\n const {\n deleteReservation,\n deleteReservationData,\n } = this.props;\n\n const {\n hasBeenSent\n } = this.state\n\n let title;\n let message;\n let icon;\n let style;\n\n if (!hasBeenSent) {\n return (\n \n \n
\n\n
\n \n \n \n \n \n \n {'Opravdu chcete zrušit rezervaci?'}\n \n \n \n Ano, zrušit\n \n \n \n \n
\n
\n \n )\n }\n\n if (deleteReservationData.isLoading) {\n return (\n \n \n \n \n
\n \n );\n }\n\n if (deleteReservationData.status) {\n style = \"success\";\n title = \"Rezervace byla smazána\";\n message = \"Vaše rezervace byla úspěšně smazána.\";\n icon = 'fa-check';\n\n } else if (!deleteReservationData.errorType.time) {\n style = \"error\";\n title = \"Rezervaci nelze smazat\";\n message = \"Rezervace neexistuje.\";\n icon = 'fa-exclamation-triangle';\n\n } else if (!deleteReservationData.errorType.completed) {\n style = \"error\";\n title = \"Rezervaci nelze smazat\";\n message = \"Rezervace neexistuje.\";\n icon = 'fa-exclamation-triangle';\n\n } else if (!deleteReservationData.errorType.deleted) {\n style = \"error\";\n title = \"Rezervaci nelze smazat\";\n message = \"Tato rezervace byla již smazána.\";\n icon = 'fa-exclamation-triangle';\n\n } else if (!deleteReservationData.errorType.emailConfirmed) {\n style = \"error\";\n title = \"Rezervaci nelze smazat\";\n message = \"Rezervaci nelze smazat.\";\n icon = 'fa-exclamation-triangle';\n\n } else {\n style = \"warning\";\n title = \"Něco se nepovedlo\";\n message = \"Nepodařilo se navázat spojení. Zkuste prosím stránku načíst znovu, nebo opakujte akci později.\";\n icon = 'fa-exclamation-triangle';\n }\n\n\n return (\n \n \n
\n\n
\n \n \n \n \n \n \n {message}\n \n \n \n
\n\n {style === \"warning\" && (\n
\n Zkusit znovu\n \n )}\n\n
\n \n );\n }\n}\n\n\nDeleteReservationContent.propTypes = {\n reservationHash: PropTypes.string.isRequired,\n deleteReservation: PropTypes.func.isRequired,\n deleteReservationData: PropTypes.shape({\n isLoading: PropTypes.bool.isRequired,\n status: PropTypes.bool.isRequired,\n errorType: PropTypes.shape({\n time: PropTypes.bool.isRequired,\n completed: PropTypes.bool.isRequired,\n deleted: PropTypes.bool.isRequired,\n emailConfirmed: PropTypes.bool.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\n\nexport default DeleteReservationContent;","import React, { Component } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { getCommonData } from '../components/Main/actions';\nimport { deleteReservation } from '../components/DeleteReservationContent/actions'; \nimport Header from '../components/Header/Header';\nimport DeleteReservationContent from '../components/DeleteReservationContent/DeleteReservationContent'; \n\n\nclass DeleteReservation extends Component {\n constructor(props) {\n super(props);\n\n this.deleteReservation = this.deleteReservation.bind(this);\n }\n\n componentDidMount() {\n document.title = 'Zrušení rezervace';\n\n if (this.props.logo.status === false) {\n this.props.getCommonData();\n }\n }\n\n deleteReservation() {\n const { reservationHash, } = this.props.params;\n\n this.props.deleteReservation(reservationHash);\n }\n\n render() {\n const { deleteReservationData, logo, } = this.props;\n const { reservationHash, } = this.props.params;\n\n return (\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n const { deleteReservation, } = state;\n return { \n deleteReservationData: deleteReservation,\n logo: {\n status: state.main.status, \n ...state.main.data.logo,\n }\n };\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getCommonData: bindActionCreators(getCommonData, dispatch),\n deleteReservation: bindActionCreators(deleteReservation, dispatch),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(DeleteReservation);","import styled from 'styled-components';\n\n\nconst StyledStatsOffice = styled.div`\n max-width: 1200px;\n margin: 0 auto;\n padding: 12px;\n`;\n\nexport default StyledStatsOffice;\n","import React from 'react';\n\nimport TableHeader from '../Stats/TableHeader';\nimport TableRows from '../Stats/TableRows';\n\nimport StyledStatsOffice from './styles/StyledStatsOffice';\nimport StyledStatsTable from '../Stats/styles/StyledStatsTable';\n\n\nconst StatsOfficeView = ({\n statsData,\n}) => (\n \n \n \n \n \n \n);\n\n\nexport default StatsOfficeView;\n","import React, { Component } from 'react';\nimport pt from 'prop-types';\n\nimport StatsOfficeView from './StatsOfficeView';\n\n\nclass StatsOffice extends Component {\n componentDidMount() {\n const { officeId, getStats, } = this.props;\n\n getStats(officeId);\n }\n\n\n render() {\n const { \n statsData,\n getStats,\n } = this.props;\n\n return (\n \n );\n }\n}\n\n\nStatsOffice.propTypes = {\n officeId: pt.string.isRequired,\n statsData: pt.object.isRequired,\n getStats: pt.func.isRequired,\n}\n\n\nexport default StatsOffice;","import React from 'react';\nimport pt from 'prop-types';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { getStats, } from '../components/Stats/actions';\nimport StatsOffice from '../components/StatsOffice/StatsOffice';\n\n\n// document.title = 'Statistiky';\n\nconst StatsOfficePage = ({\n params: { officeId, },\n statsData,\n getStats,\n}) => {\n return (\n \n );\n}\n\n\nconst mapStateToProps = (state) => {\n const { stats, } = state;\n return { \n statsData: stats.statsData,\n };\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getStats: bindActionCreators(getStats, dispatch),\n };\n}\n\n\nStatsOfficePage.propTypes = {\n params: pt.shape({\n officeId: pt.string.isRequired,\n }).isRequired,\n statsData: pt.object.isRequired,\n getStats: pt.func.isRequired,\n}\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StatsOfficePage);\n","import React from 'react';\nimport { IndexRoute, Route } from 'react-router';\n\nimport { SINGLE_OFFICE_MODE } from './config';\nimport MainLayout from './pages/MainLayout';\nimport OfficesPage from './pages/Offices';\nimport ServicesPage from './pages/Services';\nimport IntervalsPage from './pages/Intervals';\nimport ReservationPage from './pages/Reservation';\nimport NotFoundPage from './pages/NotFound';\nimport EmailConfirm from './pages/EmailConfirm';\nimport DeleteReservation from './pages/DeleteReservation';\nimport StatsOfficePage from './pages/StatsOfficePage';\n\n\n\nexport default (\n \n \n { !SINGLE_OFFICE_MODE &&\n \n }\n \n \n \n \n \n \n \n \n \n);\n","import React, { Component } from 'react';\nimport { Provider } from 'react-redux';\nimport { Router, browserHistory, applyRouterMiddleware } from 'react-router';\nimport { useScroll } from 'react-router-scroll';\n\nimport { configureStore } from './store/configureStore';\nimport routes from './routes';\n\nimport 'bootstrap/dist/css/bootstrap.css';\nimport 'font-awesome/css/font-awesome.css';\nimport './App.css';\n\nconst store = configureStore();\n\nclass App extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nexport default App;\n","import { createStore, applyMiddleware } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport apiMiddleware from '../middlewares/apiMiddleware';\n//import { logger } from '../middleware';\n\nimport rootReducer from './configureReducers';\n\n\nexport function configureStore(initialState) {\n const create = window.devToolsExtension\n ? window.devToolsExtension()(createStore)\n : createStore;\n\n const createStoreWithMiddleware = applyMiddleware(\n //logger,\n thunkMiddleware,\n apiMiddleware,\n )(create);\n\n const store = createStoreWithMiddleware(rootReducer, initialState);\n\n if (module.hot) {\n module.hot.accept('./configureReducers', () => {\n const nextReducer = require('./configureReducers');\n store.replaceReducer(nextReducer);\n });\n }\n\n return store;\n}\n","// In production, we register a service worker to serve assets from local cache.\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 the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\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.1/8 is 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\nexport default function register() {\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);\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/facebookincubator/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 // Is not local host. Just register service worker\n registerValidSW(swUrl);\n } else {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\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 }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').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);\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 from 'react';\nimport ReactDOM from 'react-dom';\n\nimport App from './App';\nimport { unregister } from './registerServiceWorker';\n\n\nunregister();\n\nReactDOM.render( , document.getElementById('root'));\n"],"sourceRoot":""}