{"version":3,"names":["latepoint_is_timeframe_in_periods","timeframe_start","timeframe_end","periods_arr","is_inside","arguments","length","undefined","i","period_start","period_end","buffer_before","buffer_after","period_info","split","parseFloat","latepoint_is_period_inside_another","latepoint_is_period_overlapping","period_one_start","period_one_end","period_two_start","period_two_end","latepoint_minutes_to_hours_preferably","time","army_clock","latepoint_is_army_clock","hours","Math","floor","minutes","latepoint_minutes_to_hours","latepoint_am_or_pm","latepoint_hours_and_minutes_to_minutes","hours_and_minutes","ampm","hours_and_minutes_arr","parseInt","latepoint_get_time_system","latepoint_helper","time_system","latepoint_minutes_to_hours_and_minutes","format","sprintf","latepoint_mask_timefield","$elem","jQuery","inputmask","mask","placeholder","latepoint_mask_percent","alias","radixPoint","decimal_separator","digits","number_of_decimals","digitsOptional","suffix","rightAlign","latepoint_mask_minutes","removeMaskOnSubmit","latepoint_mask_money","groupSeparator","thousand_separator","prefix","currency_symbol_before","currency_symbol_after","latepoint_mask_date","inputFormat","date_format_for_js","latepoint_mask_phone","latepoint_is_phone_masking_enabled","latepoint_get_phone_format","phone_format","enable_phone_masking","latepoint_show_booking_end_time","show_booking_end_time","latepoint_init_form_masks","latepoint_add_notification","message","message_type","wrapper","find","append","remove","latepoint_generate_form_message_html","messages","status","message_html","Array","isArray","forEach","latepoint_clear_form_messages","$form","latepoint_show_data_in_lightbox","extra_classes","lightbox_css_classes","addClass","latepoint_init_payment_method_actions","$booking_form_element","payment_method","_jQuery","callbacks_list","is_last_step","data","trigger","removeClass","when","apply","_toConsumableArray","map","callback","action","done","show","fail","err","console","error","latepoint_lightbox_close","latepoint_show_next_btn","clear_step_services","latepoint_reload_summary","clear_sub_step_attendies","val","clear_sub_step_duration","clear_step_service_extras","clear_step_locations","clear_step_agents","clear_step_datepicker","latepoint_hide_next_btn","latepoint_show_prev_btn","latepoint_hide_prev_btn","latepoint_show_capacity_selector","$item","closest","max_capacity","min_capacity","text","current_value","max","Number","latepoint_show_durations","latepoint_apply_coupon","$coupon_input","form_params","serialize","route_action","route_name","params","layout","return_format","ajax","type","dataType","url","ajaxurl","success","latepoint_show_message_inside_element","latepoint_reload_step","latepoint_remove_coupon","fadeOut","step_name","index","className","match","join","nextAll","submit","latepoint_get_payment_sub_step","current_sub_step","prev","offset","payment_sub_steps","push","selected_payment_method","indexOf","sub_step","latepoint_reset_password_from_booking_init","hide","on","html","field_name","value","$summary_holder","$booking_form","form_data","reload_booking_summary_route","latepoint_password_changed_show_login","response","latepoint_hide_message_inside_element","prepend","latepoint_add_action","priority","sort","a","b","latepoint_init_step","latepoint_init_step_selectable_items","latepoint_init_step_category_items","latepoint_init_step_datepicker","latepoint_init_step_contact","latepoint_init_step_agents","latepoint_init_step_locations","latepoint_init_step_services","latepoint_init_step_payment","latepoint_init_step_verify","latepoint_init_step_confirmation","day_timeslots","$day","service_duration","interval","work_start_minutes","work_end_minutes","total_work_minutes","bookable_minutes","available_capacities_of_bookable_minute","attr","toString","bookable_minutes_with_capacity","work_minutes","$timeslots","prev_minutes","current_minutes","timeslot_class","timeslot_available_capacity","time_pick_style","off_label","off_width","includes","tick_html","capacity_label","capacity_label_html","capacity_internal_label_html","timeslot_label","spaces_message","end_minutes","end_minutes_ampm","many_spaces_message","single_space_message","trim","msg_not_available","slideDown","$scrollable_wrapper","stop","animate","scrollTop","scrollHeight","latepoint_init_timeslots","this","hasClass","selected_timeslot_time","timeshift_minutes","start_date","Date","setDate","getDate","toISOString","latepoint_init_monthly_calendar_navigation","next_month_route_name","next","latepoint_calendar_set_month_label","$btn","$calendar_element","last","calendar_year","calendar_month","latepoint_calendar_show_or_hide_prev_next_buttons","latepoint_format_minutes_to_time","formatted_time","slideUp","latepoint_format_price","toFixed","e","which","focus","$payment_step","portion","$category_wrapper","$main_parent","parent","off","latepoint_selectable_item_clicked","latepoint_selectable_item_quantity_keyup","latepoint_update_quantity_for_selectable_items","ids","get","event","new_value","max_quantity","stopPropagation","stopImmediatePropagation","target","summary_value","String","window","latepoint_trigger_next_btn","price","replace","min","new_value_formatted","add_value","agent_id","latepoint_init_booking_summary_lightbox","account_nonse","password","password_confirmation","param","latepoint_init_customer_dashboard","$select_box","timezone_name","location","reload","latepoint_init_customer_dashboard_login","$login_form_wrapper","FB","login","authResponse","token","accessToken","latepoint_step_content_change_start","latepoint_step_content_change_end","scope","google","googleUser","$login_form_wrappers","each","accounts","id","initialize","client_id","social_login_google_client_id","latepoint_process_google_login","renderButton","theme","size","get_customer_name","$wrapper","customer_name","first_name","last_name","latepoint_init_facebook_login","latepoint_init_google_login","latepoint_validate_fields","email","new_content","replaceWith","setTimeout","credential","social_login_google_route","$booking_form_elements","latepoint_change_step_desc","$step_progress","prevAll","side_panel_desc","top_header_desc","latepoint_progress_prev","latepoint_progress_next","latepoint_next_step_description","latepoint_prev_step_description","$fields","is_valid","latepoint_submit_booking_form","FormData","file_data","files","file_name","getAttribute","processData","contentType","is_pre_last_step","css","show_next_btn","show_prev_btn","send_to_step","latepoint_init_booking_form","_jQuery2","preventDefault","current_step","is_final_submit","direction","toggleClass","URLSearchParams","search","has","delete","history","replaceState","hash","is_timezone_selected","tzid","Intl","DateTimeFormat","resolvedOptions","timeZone","change","_jQuery3","$next_btn","$current_step","new_sub_step","$services_step","parents","$current_active_step","$back_btn","$new_current_step","new_current_step_name","latepoint_init_booking_form_by_trigger","$trigger","route","booking_button_route","restrictions","show_service_categories","show_locations","show_services","show_agents","selected_location","selected_agent","selected_service","selected_duration","selected_total_attendies","selected_service_category","selected_start_date","selected_start_time","calendar_start_date","isEmptyObject","lightbox_class","step","document","ready","$","$this","confirm","before","after","func_name","func_arr","log","alert","record_id","documentElement","body","top","form_values_to_update","name","start_from_booking_intent_key","start_from_booking_intent_route","booking_intent_key","cancel_booking_prompt","$booking_box","$tabs_wrapper"],"sources":["../../lib/assets/javascripts/bin/time.js","../../lib/assets/javascripts/bin/shared.js","../../lib/assets/javascripts/bin/notifications.js","../../lib/assets/javascripts/bin/actions.js","../../lib/assets/javascripts/bin/front/main.js","../../lib/assets/javascripts/front.js"],"sourcesContent":["function latepoint_is_timeframe_in_periods(timeframe_start, timeframe_end, periods_arr) {\n var is_inside = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n for (var i = 0; i < periods_arr.length; i++) {\n\n var period_start = 0;\n var period_end = 0;\n var buffer_before = 0;\n var buffer_after = 0;\n\n var period_info = periods_arr[i].split(':');\n if (period_info.length == 2) {\n period_start = period_info[0];\n period_end = period_info[1];\n } else {\n buffer_before = period_info[2];\n buffer_after = period_info[3];\n period_start = parseFloat(period_info[0]) - parseFloat(buffer_before);\n period_end = parseFloat(period_info[1]) + parseFloat(buffer_after);\n }\n if (is_inside) {\n if (latepoint_is_period_inside_another(timeframe_start, timeframe_end, period_start, period_end)) {\n return true;\n }\n } else {\n if (latepoint_is_period_overlapping(timeframe_start, timeframe_end, period_start, period_end)) {\n return true;\n }\n }\n };\n return false;\n}\n\nfunction latepoint_is_period_overlapping(period_one_start, period_one_end, period_two_start, period_two_end) {\n // https://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap/\n return period_one_start < period_two_end && period_two_start < period_one_end;\n}\nfunction latepoint_is_period_inside_another(period_one_start, period_one_end, period_two_start, period_two_end) {\n return period_one_start >= period_two_start && period_one_end <= period_two_end;\n}\n\n\n// Converts time in minutes to hours if possible, if minutes also exists - shows minutes too\nfunction latepoint_minutes_to_hours_preferably(time) {\n var army_clock = latepoint_is_army_clock();\n\n var hours = Math.floor(time / 60);\n if (!army_clock && hours > 12) hours = hours - 12;\n\n var minutes = time % 60;\n if(minutes > 0) hours = hours + ':' + minutes;\n return hours;\n}\n\n\nfunction latepoint_minutes_to_hours(time) {\n var army_clock = latepoint_is_army_clock();\n\n var hours = Math.floor(time / 60);\n if (!army_clock && hours > 12) hours = hours - 12;\n return hours;\n}\n\n\nfunction latepoint_am_or_pm(minutes) {\n if(latepoint_is_army_clock()) return '';\n return (minutes < 720 || minutes == 1440) ? 'am' : 'pm';\n}\n\nfunction latepoint_hours_and_minutes_to_minutes(hours_and_minutes, ampm) {\n var hours_and_minutes_arr = hours_and_minutes.split(':');\n var hours = hours_and_minutes_arr[0];\n var minutes = hours_and_minutes_arr[1];\n if(ampm == \"pm\" && hours<12) hours = parseInt(hours)+12;\n if(ampm == \"am\" && hours==12) hours = 0;\n minutes = parseInt(minutes) + (hours * 60);\n return minutes;\n}\n\nfunction latepoint_get_time_system(){\n return latepoint_helper.time_system;\n}\n\nfunction latepoint_is_army_clock(){\n return (latepoint_get_time_system() == '24');\n}\n\nfunction latepoint_minutes_to_hours_and_minutes(minutes) {\n var army_clock = latepoint_is_army_clock();\n var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '%02d:%02d';\n\n var hours = Math.floor(minutes / 60);\n if(!army_clock && (hours > 12)) hours = hours - 12;\n if(!army_clock && hours == 0) hours = 12;\n var minutes = minutes % 60;\n return sprintf(format, hours, minutes);\n}\n","function latepoint_mask_timefield($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t 'mask': '99:99',\n\t 'placeholder': 'HH:MM'\n\t });\n\t}\n}\n\nfunction latepoint_mask_percent($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t\t\t'alias': 'decimal',\n\t\t\t'radixPoint': latepoint_helper.decimal_separator,\n\t\t\t'digits': latepoint_helper.number_of_decimals,\n\t\t\t'digitsOptional': false,\n\t\t\t'suffix': '%',\n\t\t\t'placeholder': '0',\n\t\t\t'rightAlign': false\n\t });\n\t}\n}\n\nfunction latepoint_mask_minutes($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t\t\t'removeMaskOnSubmit' : true,\n\t\t\t'alias': 'numeric',\n\t\t\t'digits': 0,\n\t\t\t'suffix': ' minutes',\n\t\t\t'placeholder': '0',\n\t\t\t'rightAlign': false\n\t });\n\t}\n}\n\n\nfunction latepoint_mask_money($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t\t\t'alias': 'currency',\n\t\t\t'groupSeparator': latepoint_helper.thousand_separator,\n\t\t\t'radixPoint': latepoint_helper.decimal_separator,\n\t\t\t'digits': latepoint_helper.number_of_decimals,\n\t\t\t'digitsOptional': false,\n\t\t\t'prefix': latepoint_helper.currency_symbol_before ? latepoint_helper.currency_symbol_before + ' ' : '',\n\t\t\t'suffix': latepoint_helper.currency_symbol_after ? ' ' + latepoint_helper.currency_symbol_after : '',\n\t\t\t'placeholder': '0',\n\t\t\t'rightAlign': false\n\t });\n\t}\n}\n\nfunction latepoint_mask_date($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t\t\t'alias': 'datetime',\n\t\t\t'inputFormat' : latepoint_helper.date_format_for_js\n\t });\n\t}\n}\n\nfunction latepoint_mask_phone($elem){\n\tif(latepoint_is_phone_masking_enabled() && jQuery().inputmask) $elem.inputmask(latepoint_get_phone_format());\n}\n\n\nfunction latepoint_get_phone_format(){\n return latepoint_helper.phone_format;\n}\n\nfunction latepoint_is_phone_masking_enabled(){\n\treturn (latepoint_helper.enable_phone_masking == 'yes');\n}\n\nfunction latepoint_show_booking_end_time(){\n\treturn (latepoint_helper.show_booking_end_time == 'yes');\n}\n\nfunction latepoint_init_form_masks(){\n\tif(latepoint_is_phone_masking_enabled()) latepoint_mask_phone(jQuery('.os-mask-phone'));\n}","function latepoint_add_notification(message, message_type = 'success'){\n\tvar wrapper = jQuery('body').find('.os-notifications');\n\tif(!wrapper.length){\n\t\tjQuery('body').append('
');\n\t\twrapper = jQuery('body').find('.os-notifications');\n\t}\n\tif(wrapper.find('.item').length > 0) wrapper.find('.item:first-child').remove();\n\twrapper.append('