\n <\/clipPath>\n <\/defs>\n <\/svg> \n <\/span> \n {{ item.name}}\n <\/el-link> \n <\/div><\/div><\/div>\n <\/div>\n <\/div>","inbuilt_redirection_failed_content":"\n \n
Er ging iets mis. Je betaling is mislukt.<\/h4>\n <\/div>","bkp_process_booking":false,"bkp_processing_token":false,"customer_form_fields_original":"","customer_details_rule_original":"","customer_form_temp_data":"","bookingpress_has_password_field":"","deposit_paying_amount_title":"Aanbetaling vooraf","deposit_heading_title":"Aanbetaling","deposit_remaining_amount_title":"Resterend","deposit_title":"Aanbetaling","full_payment_title":"Volledige betaling","service_extra_title":"Select Service Extras","is_display_extra_service_error":0,"extra_service_error_msg":"","bookingpress_google_calendar_version":"3.3","google_captcha_site_key":"6LfhuZkbAAAAABH5vT_KSnfZuSHl2aGYWFncFZC1","enable_google_captcha":"true","mollie_payment":1,"mollie_text":"iDeal \/ overboeking","tax_title":"21% btw","staffmember_heading_title":"Select Staff Member","any_staff_title":"Any Staff","is_custom_duration_addon":1,"is_display_custom_duration_loader":false,"is_display_custom_duration_day_loader":false,"bookingpress_custom_service_durations_slot":[],"custom_service_duration_title":"Serviceduur","custom_service_description_title":"Selecteer het juiste tijdslot.","custom_please_select_title":"Selecteer alstublieft","custom_price_title":"Prijs:","custom_duration_title":"Aangepaste duur","custom_service_duration_error_msg":"Selecteer een aangepaste serviceduurwaarde"};
bookingpress_return_data["jsCurrentDate"] = new Date("2026/01/16 14:28:54");
bookingpress_return_data["jsCurrentDateFormatted"] = new Date ("2026-01-16 00:00:00");
if( "Invalid Date" == bookingpress_return_data["jsCurrentDateFormatted"] ){
bookingpress_return_data["jsCurrentDateFormatted"] = new Date( "2026-01-16T00:00:00+00:00" );
}
bookingpress_return_data["jsCurrentOnlyDate"] = bookingpress_return_data["jsCurrentDateFormatted"].toISOString().split("T")[0];
bookingpress_return_data["appointment_step_form_data"]["stime"] = 1768585055;
bookingpress_return_data["appointment_step_form_data"]["spam_captcha"] = "";
bookingpress_return_data["hide_category_service"] = "0";
bookingpress_return_data["default_date_format"] = "DD-MM-YYYY";
bookingpress_return_data["customer_details_rule"] = {"customer_firstname":[{"required":true,"message":"Voer je voornaam in","trigger":"blur"}],"customer_lastname":[{"required":true,"message":"Voer je achternaam in","trigger":"blur"}],"customer_email":[{"required":true,"message":"Voer je e-mailadres in","trigger":"blur"},{"type":"email","message":"Vul alstublieft een geldig e-mailadres in","trigger":"blur"}],"customer_phone":[{"required":true,"message":"Vul je telefoonnummer in","trigger":"blur"}]};
if( "undefined" != typeof bookingpress_return_data["customer_details_rule"].customer_username && bookingpress_return_data["check_bookingpress_username_set"] == 0 ){
let rule_for_username = {
"validator": bpa_check_username,
"trigger": "blur"
};
bookingpress_return_data["customer_details_rule"].customer_username.push( rule_for_username );
}
bookingpress_return_data["customer_form_fields"] = [{"id":2,"field_name":"firstname","field_type":"Text","is_edit":false,"is_required":true,"label":"Voornaam","placeholder":"Voer je voornaam in","error_message":"Voer je voornaam in","is_hide":0,"field_position":1,"v_model_value":"customer_firstname","meta_key":"text_omeJJS","css_class":"","is_default":1,"is_edit_values":false,"enable_preset_fields":false,"preset_field_choice":"","field_values":[],"field_options":{"layout":"1col","used_for_user_information":true,"separate_value":false,"visibility":"always","minimum":0,"maximum":0,"selected_services":[],"is_customer_field":"false","attach_with_email":false},"default_value":"","is_delete":false},{"id":3,"field_name":"lastname","field_type":"Text","is_edit":false,"is_required":true,"label":"Achternaam","placeholder":"Voer je achternaam in","error_message":"Voer je achternaam in","is_hide":0,"field_position":2,"v_model_value":"customer_lastname","meta_key":"text_9tQSbr","css_class":"","is_default":1,"is_edit_values":false,"enable_preset_fields":false,"preset_field_choice":"","field_values":[],"field_options":{"layout":"1col","used_for_user_information":true,"separate_value":false,"visibility":"always","minimum":0,"maximum":0,"selected_services":[],"is_customer_field":"false","attach_with_email":false},"default_value":"","is_delete":false},{"id":4,"field_name":"email_address","field_type":"Email","is_edit":false,"is_required":true,"label":"E-mailadres","placeholder":"Voer je e-mailadres in","error_message":"Voer je e-mailadres in","is_hide":0,"field_position":3,"v_model_value":"customer_email","meta_key":"email_1c1LrX","css_class":"","is_default":1,"is_edit_values":false,"enable_preset_fields":false,"preset_field_choice":"","field_values":[],"field_options":{"layout":"1col","used_for_user_information":true,"separate_value":false,"visibility":"always","selected_services":[],"is_customer_field":"false","attach_with_email":false},"default_value":"","is_delete":false},{"id":5,"field_name":"phone_number","field_type":"Phone","is_edit":false,"is_required":true,"label":"Telefoonnummer","placeholder":"Vul je telefoonnummer in","error_message":"Vul je telefoonnummer in","is_hide":0,"field_position":4,"v_model_value":"customer_phone","meta_key":"phone_m9oHv4","css_class":"","is_default":1,"is_edit_values":false,"enable_preset_fields":false,"preset_field_choice":"","field_values":[],"field_options":{"layout":"1col","used_for_user_information":true,"separate_value":false,"visibility":"always","selected_services":[],"is_customer_field":"false","set_custom_placeholder":"false","attach_with_email":false},"default_value":"","is_delete":false},{"id":11,"field_name":"Radio","field_type":"Radio","is_edit":false,"is_required":false,"label":"Jouw voorkeur:","placeholder":"","error_message":"This field can not be blank","is_hide":0,"field_position":5,"v_model_value":"radio_QasBS","meta_key":"radio_QasBS","css_class":"","is_default":0,"is_edit_values":false,"enable_preset_fields":false,"preset_field_choice":"","field_values":[{"value":"Online (Google Meet)","label":"Online (Google Meet)"},{"value":"Op locatie (Vul hieronder adres in)","label":"Op locatie (Vul hieronder adres in)"}],"field_options":{"layout":"1col","inner_class":"1col","visibility":"services","is_customer_field":"false","selected_services":["4"],"minimum":"","maximum":"","separate_value":false,"attach_with_email":false,"used_for_user_information":false},"default_value":"","is_delete":false},{"id":9,"field_name":"Radio","field_type":"Radio","is_edit":false,"is_required":false,"label":"Voorkeur","placeholder":"","error_message":"This field can not be blank","is_hide":0,"field_position":6,"v_model_value":"radio_vaWmT","meta_key":"radio_vaWmT","css_class":"","is_default":0,"is_edit_values":false,"enable_preset_fields":false,"preset_field_choice":"","field_values":[{"value":"Telefonisch","label":"Telefonisch"},{"value":"Online (Google Meet)","label":"Online (Google Meet)"}],"field_options":{"layout":"1col","inner_class":"1col","visibility":"services","is_customer_field":"false","selected_services":["1"],"minimum":"","maximum":"","separate_value":false,"attach_with_email":false,"used_for_user_information":false},"default_value":"","is_delete":false},{"id":10,"field_name":"Radio","field_type":"Radio","is_edit":false,"is_required":false,"label":"Waar wil je afspreken","placeholder":"","error_message":"This field can not be blank","is_hide":0,"field_position":7,"v_model_value":"radio_Ypicc","meta_key":"radio_Ypicc","css_class":"","is_default":0,"is_edit_values":false,"enable_preset_fields":false,"preset_field_choice":"","field_values":[{"value":"Bij Jinx Design","label":"Bij Jinx Design"},{"value":"Ander adres (vul hieronder in)","label":"Ander adres (vul hieronder in)"}],"field_options":{"layout":"1col","inner_class":"1col","visibility":"services","is_customer_field":"false","selected_services":["3"],"minimum":"","maximum":"","separate_value":false,"attach_with_email":false,"used_for_user_information":false},"default_value":"","is_delete":false},{"id":6,"field_name":"note","field_type":"Textarea","is_edit":false,"is_required":false,"label":"Opmerking","placeholder":"Voer notitie details in","error_message":"Extra opmerkingen","is_hide":0,"field_position":8,"v_model_value":"appointment_note","meta_key":"textarea_TcTiQ7","css_class":"","is_default":1,"is_edit_values":false,"enable_preset_fields":false,"preset_field_choice":"","field_values":[],"field_options":{"layout":"1col","used_for_user_information":true,"separate_value":false,"visibility":"always","minimum":0,"maximum":0,"selected_services":[],"is_customer_field":"false","attach_with_email":false},"default_value":"","is_delete":false}];
bookingpress_return_data["is_error_msg"] = "";
bookingpress_return_data["is_display_error"] = "0";
bookingpress_return_data["is_service_loaded_from_url"] = "0";
bookingpress_return_data["booking_cal_maxdate"] = new Date( Date.now() + ( 3600 * 1000 * (24 * 365) ) );
bookingpress_return_data["is_booking_form_empty_loader"] = "1";
bookingpress_return_data["bpa_allow_modify_from_url"] = "0";
bookingpress_return_data["site_locale"] = "nl";
bookingpress_return_data["appointment_step_form_data"]["bookingpress_uniq_id"] = "696a3d1670fdf";
var bookingpress_captcha_key = "bookingpress_captcha_696a3d1670fdf";
bookingpress_return_data["appointment_step_form_data"][bookingpress_captcha_key] = "";
bookingpress_return_data["first_day_of_week"] = "2";
bookingpress_return_data["filter_pickerOptions"] = {
"firstDayOfWeek": 1,
};
bookingpress_return_data["appointment_step_form_data"]["base_price_without_currency"] = 0;
bookingpress_return_data["use_base_price_for_calculation"] = true;
bookingpress_return_data["modelConfig"] = {
"type": "string",
"mask": "YYYY-MM-DD",
};
return bookingpress_return_data;
},
filters: {
bookingpress_format_date: function(value){
var default_date_format = "DD-MM-YYYY";
return moment(String(value)).locale("nl_NL").format(default_date_format)
},
bookingpress_format_time: function(value){
var default_time_format = "HH:mm";
return moment(String(value), "HH:mm:ss").locale("nl_NL").format(default_time_format)
}
},
beforeCreate(){
this.is_booking_form_empty_loader = "1";
},
created(){
this.bookingpress_load_booking_form();
},
mounted(){
const vm_onload = this;
if( "undefined" != typeof window.location.href && /post\.php/.test( window.location.href ) ){
return;
}
vm_onload.bpa_check_browser();
vm_onload.bpa_check_browser_version();
let selected_category = vm_onload.appointment_step_form_data.selected_category;
vm_onload.bpa_select_category( selected_category );
this.loadSpamProtection();
const vm = this;this.expirationDate();
/** Signature Canvas code */
this.$nextTick(() => {
setTimeout(function(){
// const canvas = document.querySelector("canvas[data-metakey=\"" + metakey + "\" ]");
const allCanvases = vm.$refs.signatureCanvas;
if("undefined" != typeof allCanvases && allCanvases.length){
let metakey = "";
allCanvases.forEach(function(c){
if(c){
metakey = c.getAttribute("data-metakey" );
vm.appointment_step_form_data.ctx[metakey] = c.getContext("2d");
}
})
}
},3000);
});
/** Signature Canvas code */
document.onkeydown = function(event) {
event = event || window.event;
var isEscape = false;
if(event.key === "Escape" || event.key === "Esc"){
if(vm.bookingpress_current_tab == "service"){
let mob_extra = document.querySelector( ".bpa-fm--service__advance-options.--bpa-is-mob" );
if( mob_extra == null ){
vm.bookingpress_close_extra_drawer();
} else {
let mob_pos = mob_extra.getBoundingClientRect();
if( mob_pos.width == 0 && mob_pos.height == 0 ){
vm.bookingpress_close_extra_drawer();
}
}
}
}
};
this.booking_cal_maxdate = new Date( Date.now() + ( 3600 * 1000 * ( 24 * 180 ) ) );
wp.hooks.addFilter( "bookingpress_modify_available_dates_with_day_service", "bookingpress_pro", function( available_dates, working_hour_details, response_data, vm ){
if( 0 == available_dates.length && "d" == vm.appointment_step_form_data.selected_service_duration_unit ){
for( let wdate in working_hour_details ){
let updated_wdate = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", wdate, {"store_service_date":wdate,"store_start_time":"00:00:00","store_offset":"+01:00"} );
available_dates.push( updated_wdate + " 00:00:00" );
}
}
return available_dates;
}, 10, 4);
wp.hooks.addFilter( "bookingpress_modify_first_available_date_with_day_service", "bookingpress_pro", function( firstAvailableDate, available_dates, vm ){
if( "d" == vm.appointment_step_form_data.selected_service_duration_unit && 0 < available_dates.length ){
firstAvailableDate = available_dates[0].split(" ")[0];
}
return firstAvailableDate;
}, 10, 3);
var bpa_is_service_loaded_from_url = "0";
var bookingpress_is_staff_load_from_share_url = "0";
var bookingpress_is_staff_load_from_url_param = "0";
let is_staff_first = false;
if( typeof vm.appointment_step_form_data.form_sequence == "object" ){
if( vm.appointment_step_form_data.form_sequence[0] == "staff_selection" ){
is_staff_first = true;
}
} else {
if( vm.appointment_step_form_data.form_sequence == "staff_selection" ){
is_staff_first = true;
}
}
if( "undefined" == typeof vm.is_staff_member_set_from_url ){
vm.is_staff_member_set_from_url = false;
}
if( vm.is_staffmember_activated == 1 && vm.appointment_step_form_data.hide_staff_selection == "true" && true == is_staff_first && vm.is_staff_member_set_from_url == false && false == bookingpress_is_staff_load_from_share_url && false == bookingpress_is_staff_load_from_url_param ){
vm.bookingpress_select_staffmember("any_staff", 1);
}
if(bpa_is_service_loaded_from_url == "1"){
vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url = "0";
var bookingpress_allow_modify_false_check = "";
var bookingpress_is_extras_load_from_share_url = "0";
var bookingpress_guests_load_from_share_url = "0";
var bookingpress_selected_guest_from_url = "0";
var bookingpress_selected_extra_details = [];
if( vm.is_staff_member_set_from_url == true ){
let selectedStaffmember = String(vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id);
if( "0" == vm.is_service_loaded_from_url || false == vm.is_service_loaded_from_url ){
vm.bookingpress_select_staffmember( selectedStaffmember, 0 );
}else if( bookingpress_is_staff_load_from_share_url == "1" ){
let selectedStaffmember = String(vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id);
vm.bookingpress_select_staffmember( selectedStaffmember, 0 );
}
}/* else if ( false == vm.is_staff_member_set_from_url && vm.is_service_loaded_from_url ){
vm.is_service_loaded_from_url = 0;
} */
if((bookingpress_is_staff_load_from_share_url == "1" || bookingpress_is_extras_load_from_share_url == "1" || bookingpress_guests_load_from_share_url == "1") && vm.appointment_step_form_data.form_sequence != "staff_selection" ){
vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url = "1";
}
var bookingpress_selected_service_id = vm.appointment_step_form_data.selected_service;
let selectedStaffmember = String(vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id);
if(bookingpress_is_staff_load_from_share_url == "1"){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "0";
vm.appointment_step_form_data.selected_staff_member_id = "0";
}
if(bookingpress_selected_service_id != ""){
var bookingpress_selected_service_name = "";
var bookingpress_selected_service_price = "";
var bookingpress_selected_service_price_without_currency = "";
var bookingpress_selected_service_duration = "";
var bookingpress_selected_service_duration_unit = "";
for( let index in vm.bookingpress_all_services_data ){
let currentValue = vm.bookingpress_all_services_data[ index ];
if(currentValue.bookingpress_service_id == bookingpress_selected_service_id){
bookingpress_selected_service_name = currentValue.bookingpress_service_name;
bookingpress_selected_service_price = currentValue.bookingpress_service_price;
bookingpress_selected_service_price_without_currency = currentValue.service_price_without_currency;
bookingpress_selected_service_duration = currentValue.bookingpress_service_duration_val;
bookingpress_selected_service_duration_unit = currentValue.bookingpress_service_duration_unit
}
};
/*
if((bookingpress_is_staff_load_from_share_url == "0" && vm.is_bring_anyone_with_you_activated == "0" && vm.bookingpress_is_extra_enable == "0" && bookingpress_allow_modify_false_check == "") || (bookingpress_is_staff_load_from_share_url == "0" && (vm.is_bring_anyone_with_you_activated == "1" || vm.bookingpress_is_extra_enable == "1") && bookingpress_allow_modify_false_check == "") && bookingpress_is_staff_load_from_share_url == "1" ){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name)
}*/
/*
Select staff member retrieved from URL
if(bookingpress_is_staff_load_from_share_url == "1" && selectedStaffmember != ""){
vm.appointment_step_form_data.is_staff_exists = "1";
vm.bookingpress_select_staffmember( selectedStaffmember, 0 );
}*/
/*Select bring anyone with you members */
if(vm.is_bring_anyone_with_you_activated == "1" && bookingpress_guests_load_from_share_url == "1" && bookingpress_selected_guest_from_url != ""){
vm.selectDate(bookingpress_selected_service_id, bookingpress_selected_service_name, bookingpress_selected_service_price, bookingpress_selected_service_price_without_currency, "true",bookingpress_selected_service_duration,bookingpress_selected_service_duration_unit);
vm.appointment_step_form_data.bookingpress_selected_bring_members = parseInt(bookingpress_selected_guest_from_url);
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data(vm.appointment_step_form_data.bookingpress_selected_bring_members);
}
/* Select extras retrieved from url */
if(vm.bookingpress_is_extra_enable == "1"){
vm.bookingpress_service_extras.forEach(function(currentValue, index, arr){
if(currentValue.bookingpress_extra_services_id in bookingpress_selected_extra_details){
vm.appointment_step_form_data.bookingpress_selected_extra_details[currentValue.bookingpress_extra_services_id].bookingpress_is_selected = true;
vm.appointment_step_form_data.bookingpress_selected_extra_details[currentValue.bookingpress_extra_services_id].bookingpress_selected_qty = parseInt(bookingpress_selected_extra_details[currentValue.bookingpress_extra_services_id]);
vm.appointment_step_form_data.is_extra_service_exists = "1";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
}
});
}
}
}else{
const myVar = Error().stack;
let screen_size = "desktop";
if(window.outerWidth < 1200 && window.outerWidth >= 768){
screen_size = "tablet";
}else if(window.outerWidth < 768){
screen_size = "mobile";
}
if( /mounted/.test( myVar ) && 1 == vm.bpasortedServices.length && "mobile" == screen_size && vm.bpa_hide_service_step != "true" ){
vm.appointment_step_form_data.selected_service = "";
}
if( vm.appointment_step_form_data.selected_service != ""){
var bookingpress_selected_service_id = vm.appointment_step_form_data.selected_service;
var bookingpress_selected_service_name = "";
var bookingpress_selected_service_price = "";
var bookingpress_selected_service_price_without_currency = "";
var bookingpress_selected_service_duration = "";
var bookingpress_selected_service_duration_unit = "";
let currentValue = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
bookingpress_selected_service_name = currentValue.bookingpress_service_name;
if(vm.is_staffmember_activated == "1" || vm.is_any_staff_option_enable == "1"){
bookingpress_selected_service_price = currentValue.bookingpress_staffmember_price || currentValue.bookingpress_service_price;
bookingpress_selected_service_price_without_currency = currentValue.bookingpress_staffmember_price_without_currency || currentValue.service_price_without_currency;
}else{
bookingpress_selected_service_price = currentValue.bookingpress_service_price;
bookingpress_selected_service_price_without_currency = currentValue.service_price_without_currency;
}
bookingpress_selected_service_duration = currentValue.bookingpress_service_duration_val;
bookingpress_selected_service_duration_unit = currentValue.bookingpress_service_duration_unit
let service_max_capacity = vm.appointment_step_form_data.service_max_capacity;
if( 1 == vm.is_staffmember_activated ){
} else {
service_max_capacity = vm.bookingpress_all_services_data[ bookingpress_selected_service_id ].services_meta.max_capacity;
}
if( vm.bookingpress_is_extra_enable == "1" || ( vm.is_bring_anyone_with_you_activated == "1" && 1 < service_max_capacity ) ){
vm.selectDate( bookingpress_selected_service_id, bookingpress_selected_service_name, bookingpress_selected_service_price, bookingpress_selected_service_price_without_currency, false );
}
}else{
let selectedStaffmember;
if( vm.is_staff_member_set_from_url == true || bookingpress_is_staff_load_from_share_url == "1" ){
selectedStaffmember = String(vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id);
if( "0" == vm.is_service_loaded_from_url || false == vm.is_service_loaded_from_url ){
vm.bookingpress_select_staffmember( selectedStaffmember, 0 );
}else if( bookingpress_is_staff_load_from_share_url == "1" ){
selectedStaffmember = String(vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id);
vm.bookingpress_select_staffmember( selectedStaffmember, 0 );
}
}
}
}
vm.bookingpress_close_extra_drawer_on_mouseup();this.bookingpress_onload_func();this.appointment_step_form_data.bookingpress_customer_timezone = new Date().getTimezoneOffset();this.initMap();
var bookingpress_guests_load_from_share_url = "0";
var bookingpress_selected_guest_from_url = "0";
let current_tab = this.bookingpress_current_tab;
let step_data = this.bookingpress_sidebar_step_data[ current_tab ];
if( this.hide_category_service == "1" || this.is_service_loaded_from_url == "1" ){
let next_tab = this.bookingpress_sidebar_step_data["service"].next_tab_name;
let bookingpress_selected_service_id = vm.appointment_step_form_data.selected_service;
let bookingpress_selected_service_name = vm.appointment_step_form_data.selected_service_name;
let bookingpress_selected_service_price = vm.appointment_step_form_data.selected_service_price;
let bookingpress_selected_service_price_without_currency = vm.appointment_step_form_data.service_price_without_currency;
let useFlag = "false";
if( "undefined" != typeof vm.is_bring_anyone_with_you_activated && 1 == vm.is_bring_anyone_with_you_activated && bookingpress_guests_load_from_share_url == "1" && bookingpress_selected_guest_from_url != "" ){
/** Do Nothing as selectDate function has already been called before */
} else {
vm.selectDate( bookingpress_selected_service_id, bookingpress_selected_service_name, bookingpress_selected_service_price, bookingpress_selected_service_price_without_currency, useFlag );
}
} else {
if( "undefined" != typeof step_data.is_navigate_to_next && true == step_data.is_navigate_to_next ){
this.bookingpress_current_tab = step_data.next_tab_name;
}
}
if( typeof this.bookingpress_sidebar_step_data.staffmembers != "undefined" && 1 == this.bookingpress_sidebar_step_data.staffmembers.is_display_step ){
let staff_member_tab_data = this.bookingpress_sidebar_step_data.staffmembers;
let hide_staff_selection = ( this.appointment_step_form_data.hide_staff_selection != "false" );
if( !hide_staff_selection && staff_member_tab_data.next_tab_name == this.bookingpress_current_tab && staff_member_tab_data.is_display_step == 1 ){
this.bookingpress_current_tab = "staffmembers";
}
if( this.bookingpress_current_tab == "staffmembers" && ( this.appointment_step_form_data.selected_staff_member_id > 0 || staff_member_tab_data.is_display_step == 0 ) ){
this.bookingpress_current_tab = staff_member_tab_data.next_tab_name;
this.bookingpress_sidebar_step_data.staffmembers.is_navigate_to_next = true;
}
}
let bpa_current_tab = this.bookingpress_current_tab;
let bpa_side_bar_step_data = this.bookingpress_sidebar_step_data[bpa_current_tab];
let bpa_callback_funcs = bpa_side_bar_step_data.auto_focus_tab_callback;
for( let callback in bpa_callback_funcs ){
let args = bpa_callback_funcs[callback];
this[callback].apply( callback, args );
}
},
computed:{
bpasortedServices: function(){
let bookingpress_all_services_data = [];
for( let i in this.bookingpress_all_services_data ){
bookingpress_all_services_data.push( this.bookingpress_all_services_data[i] );
}
return bookingpress_all_services_data.sort( (a, b) =>{
return ( parseInt( a.bookingpress_service_position ) < parseInt( b.bookingpress_service_position ) ) ? -1 : 1;
});
}
},
methods: {
bpa_check_username_validation(bpa_username){
const vm = this;
if( bpa_username != ""){
vm.appointment_step_form_data.check_username_validation = true;
} else {
vm.appointment_step_form_data.check_username_validation = false;
if( vm.appointment_step_form_data.bpa_user_email_already_exists == true && ( "undefined" != typeof vm.appointment_step_form_data.form_fields["customer_email"] && vm.appointment_step_form_data.form_fields["customer_email"] == "") ){
vm.appointment_step_form_data.bpa_password_already_exists = false;
vm.customer_details_rule.customer_password[0].required = true;
vm.appointment_step_form_data.bpa_user_email_already_exists = false;
}
;
}
},
bookingpress_load_booking_form(){
const vm = this;
setTimeout(function(){
vm.is_booking_form_empty_loader = "0";
setTimeout(function(){
var elms = document.querySelectorAll("#bpa-front-tabs");
for(var i = 0; i < elms.length; i++) {
elms[i].style.display = "flex";
}
var elms2 = document.querySelectorAll("#bpa-front-data-empty-view");
for(var i = 0; i < elms2.length; i++) {
elms2[i].style.display = "flex";
}
}, 500);
}, 2000);
},
generateSpamCaptcha(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: "bookingpress_generate_spam_captcha", _wpnonce:bkp_wpnonce_pre_fetch };
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.variant != "error" && (response.data.captcha_val != "" && response.data.captcha_val != undefined)){
vm.appointment_step_form_data.spam_captcha = response.data.captcha_val;
}else{
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch!="undefined" && bkp_wpnonce_pre_fetch!=null && response.data.updated_nonce!="")
{
document.getElementById("_wpnonce").value = response.data.updated_nonce;
} else {
vm.$notify({
title: response.data.title,
message: response.data.msg,
type: response.data.variant,
customClass: "error_notification"
});
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
loadSpamProtection(){
const vm = this;
vm.generateSpamCaptcha();
},
bookingpress_price_with_currency_symbol( price_amount, ignore_symbol = false ){
const vm = this;
if( "String" == typeof price_amount ){
price_amount = parseFloat( price_amount );
}
let currency_separator = vm.bookingpress_currency_separator;
let decimal_points = vm.bookingpress_decimal_points;
if( "comma-dot" == currency_separator ){
price_amount = vm.bookingpress_number_format( price_amount, decimal_points, ".", ",", ignore_symbol );
} else if( "dot-comma" == currency_separator ){
price_amount = vm.bookingpress_number_format( price_amount, decimal_points, ",", ".", ignore_symbol );
} else if( "space-dot" == currency_separator ){
price_amount = vm.bookingpress_number_format( price_amount, decimal_points, ".", " ", ignore_symbol );
} else if( "space-comma" == currency_separator ){
price_amount = vm.bookingpress_number_format( price_amount, decimal_points, ",", " ", ignore_symbol );
} else if( "Custom" == currency_separator){
let custom_comma_separator = vm.bookingpress_custom_comma_separator;
let custom_thousand_separator = vm.bookingpress_custom_thousand_separator;
price_amount = vm.bookingpress_number_format( price_amount, decimal_points, custom_comma_separator, custom_thousand_separator );
}
if( true == ignore_symbol ){
return price_amount;
}
let currency_symbol = vm.bookingpress_currency_symbol;
let currency_symbol_pos = vm.bookingpress_currency_symbol_position;
if( "before" == currency_symbol_pos ){
price_amount = currency_symbol + price_amount;
} else if( "before_with_space" == currency_symbol_pos ){
price_amount = currency_symbol + " " + price_amount;
} else if( "after" == currency_symbol_pos ){
price_amount = price_amount + currency_symbol;
} else if( "after_with_space" == currency_symbol_pos ){
price_amount = price_amount + " " + currency_symbol;
}
return price_amount;
},
bookingpress_number_format( number, decimals, decPoint, thousandsSep, skip_separator = false ){
number = (number + "").replace(/[^0-9+\-Ee.]/g, "");
const n = !isFinite(+number) ? 0 : +number;
const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals);
const sep = (typeof thousandsSep === "undefined") ? "," : thousandsSep;
const dec = (typeof decPoint === "undefined" || true == skip_separator ) ? "." : decPoint;
let s = "";
const toFixedFix = function (n, prec) {
if (("" + n).indexOf("e") === -1) {
return +(Math.round(n + "e+" + prec) + "e-" + prec);
} else {
const arr = ("" + n).split("e");
let sig = "";
if (+arr[1] + prec > 0) {
sig = "+";
}
return (+(Math.round(+arr[0] + "e" + sig + (+arr[1] + prec)) + "e-" + prec)).toFixed(prec);
}
};
/* @todo: for IE parseFloat(0.55).toFixed(0) = 0; */
s = (prec ? toFixedFix(n, prec).toString() : "" + Math.round(n)).split(".");
if( false == skip_separator ){
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
}
if ((s[1] || "").length < prec) {
s[1] = s[1] || "";
s[1] += new Array(prec - s[1].length + 1).join("0");
}
if( true == skip_separator ){
return parseFloat( s.join(dec) );
} else {
return s.join(dec);
}
},
get_formatted_date(iso_date){
if( true == /(\d{2})\T/.test( iso_date ) ){
let date_time_arr = iso_date.split("T");
return date_time_arr[0];
}
var __date = new Date(iso_date);
var __year = __date.getFullYear();
var __month = __date.getMonth()+1;
var __day = __date.getDate();
if (__day < 10) {
__day = "0" + __day;
}
if (__month < 10) {
__month = "0" + __month;
}
var formatted_date = __year+"-"+__month+"-"+__day;
return formatted_date;
},
get_formatted_datetime(iso_date) {
var __date = new Date(iso_date);
var hour = __date.getHours();
var minute = __date.getMinutes();
var second = __date.getSeconds();
if (minute < 10) {
minute = "0" + minute;
}
if (second < 10) {
second = "0" + second;
}
var formatted_time = hour + ":" + minute + ":" + second;
var __year = __date.getFullYear();
var __month = __date.getMonth()+1;
var __day = __date.getDate();
if (__day < 10) {
__day = "0" + __day;
}
if (__month < 10) {
__month = "0" + __month;
}
var formatted_date = __year+"-"+__month+"-"+__day;
return formatted_date+" "+formatted_time;
},
bookingpress_set_error_msg(error_msg){
const vm = this;
let container = vm.$el;
let pos = 0;
if( null != container ){
pos = container.getBoundingClientRect().top + window.scrollY;
}
vm.is_display_error = "1";
vm.is_error_msg = error_msg;
const myVar = Error().stack;
let allow_scroll = true;
if( /mounted/.test( myVar ) ){
allow_scroll = false;
}
if( allow_scroll ){
window.scrollTo({
top: pos,
behavior: "smooth",
});
}
setTimeout(function(){
vm.bookingpress_remove_error_msg();
},6000);
},
bookingpress_remove_error_msg(){
const vm = this;
vm.is_display_error = "0";
vm.is_error_msg = "";
},
checkBeforeBookAppointment(){
const vm = this;
setTimeout(function(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_before_book_appointment",_wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm.appointment_step_form_data );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "error"){
vm.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm.service_timing = [];
}
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
}else{
vm.bookingpress_remove_error_msg();
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},1500);
},
book_appointment(){
const vm2 = this;
vm2.isLoadBookingLoader = "1";
vm2.isBookingDisabled = true;
vm2.bookingpress_process_to_book_appointment();
},
async bookingpress_process_to_book_appointment(){
const vm2 = this;
if(vm2.is_display_error != "1"){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_front_save_appointment_booking", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm2.appointment_step_form_data );
const cdata = await this.bookingpress_reload_captcha();
let updateData = JSON.parse( postData.appointment_data );
for (let bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
updateData[ bookingpress_grecaptcha_field_v3 ] = cdata;
}
postData.appointment_data = JSON.stringify( updateData );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
if(response.data.variant == "redirect"){
vm2.bookingpress_remove_error_msg();
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
},50);
}else if(response.data.variant == "redirect_url"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else if(response.data.variant == "error"){
vm2.bookingpress_set_error_msg(response.data.msg);
}else{
vm2.bookingpress_remove_error_msg();
}
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
}.bind(this) )
.catch( function (error) {
vm2.bookingpress_set_error_msg(error);
});
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
},
bpa_check_browser(){
const vm = this;
let userAgent = navigator.userAgent;
let browserName;
if(userAgent.match(/edg/i)){
browserName = "edge";
} else if(userAgent.match(/opr\//i)){
browserName = "opera";
} else if(userAgent.match(/chrome|chromium|crios/i)){
browserName = "chrome";
} else if(userAgent.match(/firefox|fxios/i)) {
browserName = "firefox";
} else if(userAgent.match(/safari/i)) {
browserName = "safari";
} else {
browserName="Unknown";
}
vm.browser_details = browserName;
},
bpa_check_browser_version(){
const vm = this;
var objappVersion = navigator.appVersion;
var browserAgent = navigator.userAgent;
var browserName = navigator.appName;
var browserVersion = "" + parseFloat(navigator.appVersion);
var browserMajorVersion = parseInt(navigator.appVersion, 10);
var Offset, OffsetVersion, ix;
/* For Chrome */
if ((OffsetVersion = browserAgent.indexOf("Chrome")) != -1) {
browserName = "Chrome";
browserVersion = browserAgent.substring(OffsetVersion + 7);
}
/* For Microsoft internet explorer */
else if ((OffsetVersion = browserAgent.indexOf("MSIE")) != -1) {
browserName = "Microsoft Internet Explorer";
browserVersion = browserAgent.substring(OffsetVersion + 5);
}
/* For Firefox */
else if ((OffsetVersion = browserAgent.indexOf("Firefox")) != -1) {
browserName = "Firefox";
}
/* For Safari */
else if ((OffsetVersion = browserAgent.indexOf("Safari")) != -1) {
browserName = "Safari";
browserVersion = browserAgent.substring(OffsetVersion + 7);
if ((OffsetVersion = browserAgent.indexOf("Version")) != -1)
browserVersion = browserAgent.substring(OffsetVersion + 8);
}
/* For other browser "name/version" is at the end of userAgent */
else if ((Offset = browserAgent.lastIndexOf(" ") + 1) < (OffsetVersion = browserAgent.lastIndexOf("/"))) {
browserName = browserAgent.substring(Offset, OffsetVersion);
browserVersion = browserAgent.substring(OffsetVersion + 1);
if (browserName.toLowerCase() == browserName.toUpperCase()) {
browserName = navigator.appName;
}
}
/* Trimming the fullVersion string at */
/* semicolon/space if present */
if ((ix = browserVersion.indexOf(";")) != -1)
browserVersion = browserVersion.substring(0, ix);
if ((ix = browserVersion.indexOf(" ")) != -1)
browserVersion = browserVersion.substring(0, ix);
browserMajorVersion = parseInt("" + browserVersion, 10);
if (isNaN(browserMajorVersion)) {
browserVersion = "" + parseFloat(navigator.appVersion);
browserMajorVersion = parseInt(navigator.appVersion, 10);
}
vm.browser_version = browserMajorVersion;
},
focusFirstService(){
if(app.current_screen_size == "desktop"){
this.$nextTick( () =>{
const focusableItems = document.querySelectorAll(".bpa-front-module--service .bpa-fm--si--col:not([style*='display: none']) .bpa-front-si-card");
if( focusableItems.length ){
focusableItems[0].focus();
}
});
}
},
focusFirstDate(){
var firstDate = document.querySelectorAll(".vc-day.in-month [aria-disabled=false]");
if(firstDate){
if(firstDate.length > 1){
firstDate[1].focus();
}else if(firstDate.length > 0){
firstDate[0].focus();
}else if(firstDate.length == 0){
firstDate = document.querySelectorAll(".vc-day.in-month .vc-day-content:not(.is-disabled)");
if(firstDate.length > 1){
firstDate[1].focus();
}else if(firstDate.length > 0){
firstDate[0].focus();
}
}
}
},
focusFirstTimeSlot(){
this.$nextTick( () =>{
if( this.$refs.timeSlotItems.length ){
this.$refs.timeSlotItems[0].focus();
}
});
},
focustFirstCategory(){
this.$nextTick(() => {
if (this.$refs.categoryItem.length) {
this.$refs.categoryItem[0].focus();
}
});
},
bpa_handle_service_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-module--service .bpa-fm--si--col:not([style*='display: none']) .bpa-front-si-card"); // Update with your actual class
let currentIndex = -1;
let itemsPerRow = 2;
if(window.outerWidth >= 1200){
itemsPerRow = 2;
}else if(window.outerWidth < 950){
itemsPerRow = 1;
}
const active_container = document.querySelector(".bpa-front-module--service").offsetWidth;
if(active_container && active_container.offsetWidth < 800){
itemsPerRow = 1;
}
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
// bpa-fm--service__advance-options __bpa-is-active
setTimeout(() => {
let extraServiceFocus = document.querySelector(".bpa-fm--service__advance-options.__bpa-is-active .--bpa-sao-service-extras .el-checkbox__inner");
let recurringFocus = document.querySelector(".bpa-fm--service__advance-options.__bpa-is-active .--bpa-sao-guest-module .el-input__inner");
if(extraServiceFocus !== null){
extraServiceFocus.focus();
}else if (recurringFocus !== null){
recurringFocus.focus();
}
}, 100);
} else if (event.key === "ArrowRight") {
event.preventDefault();
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if(event.key === "ArrowDown"){
event.preventDefault();
let nextIndex = (currentIndex + itemsPerRow) % focusableItems.length;
focusableItems[nextIndex].focus();
}else if (event.key === "ArrowLeft" ) {
event.preventDefault();
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if(event.key === "ArrowUp"){
event.preventDefault();
let prevIndex = (currentIndex - itemsPerRow + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
this.bpaMoveFocusToPreviousElement( this.$refs.servicesGroup );
}
},
bpa_handle_timeslot_keypress(index, event) {
const groups = document.querySelectorAll(".bpa-front--dt__ts-body--row"); // row/groups
const focusableItems = document.querySelectorAll(".bpa-front--dt__ts-body .bpa-front--dt__ts-body--item"); // Items
let currentIndex = -1;
let currentGroupIndex = -1;
let itemIndexInGroup = -1;
// Find the currently focused item and its group
focusableItems.forEach((item, idx) => {
if (item === document.activeElement) {
currentIndex = idx;
// Find which group this item belongs to
for (let i = 0; i < groups.length; i++) {
if (groups[i].contains(item)) {
currentGroupIndex = i;
// Find position within the group
const groupItems = groups[i].querySelectorAll(".bpa-front--dt__ts-body--item");
for (let j = 0; j < groupItems.length; j++) {
if (groupItems[j] === item) {
itemIndexInGroup = j;
break;
}
}
break;
}
}
}
});
if (currentIndex === -1) return; // No focusable item is selected
const itemsPerRow = 2; // Based on your screenshot showing 2 time slots per row
if (event.key === "ArrowRight") {
event.preventDefault();
// If at the end of the group, move to the first item of the next group
if (itemIndexInGroup === groups[currentGroupIndex].querySelectorAll(".bpa-front--dt__ts-body--item").length - 1) {
if (currentGroupIndex < groups.length - 1) {
// Focus on the first item of the next group
const nextGroupItems = groups[currentGroupIndex + 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (nextGroupItems.length > 0) {
nextGroupItems[0].focus();
}
}
} else {
// Move to the next item in the same group
let nextIndex = currentIndex + 1;
if (nextIndex < focusableItems.length) {
focusableItems[nextIndex].focus();
}
}
} else if (event.key === "ArrowDown") {
event.preventDefault();
const itemsInCurrentGroup = groups[currentGroupIndex].querySelectorAll(".bpa-front--dt__ts-body--item").length;
const rowsInCurrentGroup = Math.ceil(itemsInCurrentGroup / itemsPerRow);
const currentRowInGroup = Math.floor(itemIndexInGroup / itemsPerRow);
if (currentRowInGroup >= rowsInCurrentGroup - 1 || currentIndex + itemsPerRow >= focusableItems.length) {
if (currentGroupIndex < groups.length - 1) {
// Focus on the first item of the next group
let nextIndex = currentIndex + itemsPerRow;
const nextGroupItems = groups[currentGroupIndex + 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if(itemsInCurrentGroup % 2 == 0 && nextIndex < focusableItems.length){
focusableItems[nextIndex].focus();
}else if (nextGroupItems.length > 0) {
nextGroupItems[0].focus();
}
}
} else {
// Stay in the same group, move down a row
let nextIndex = currentIndex + itemsPerRow;
if(currentIndex == itemsInCurrentGroup - 2 && itemsInCurrentGroup % 2 == 1 && (nextIndex + 1) < focusableItems.length){
focusableItems[nextIndex + 1].focus();
}else if(nextIndex < focusableItems.length){
focusableItems[nextIndex].focus();
}
// if(nextIndex < focusableItems.length)
}
} else if (event.key === "ArrowLeft") {
event.preventDefault();
// If at the beginning of the group, move to the last item of the previous group
if (itemIndexInGroup === 0) {
if (currentGroupIndex > 0) {
// Focus on the last item of the previous group
const prevGroupItems = groups[currentGroupIndex - 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (prevGroupItems.length > 0) {
prevGroupItems[prevGroupItems.length - 1].focus();
}
}
} else {
// Move to the previous item in the same group
let prevIndex = currentIndex - 1;
if (prevIndex >= 0) {
focusableItems[prevIndex].focus();
}
}
} else if (event.key === "ArrowUp") {
event.preventDefault();
const currentRowInGroup = Math.floor(itemIndexInGroup / itemsPerRow);
if (currentRowInGroup === 0) {
if (currentGroupIndex > 0) {
// Focus on the last item of the previous group
const prevGroupItems = groups[currentGroupIndex - 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (prevGroupItems.length > 0) {
let howMuchMinus = 1;
if(itemIndexInGroup == 0 && prevGroupItems.length % 2 == 0){
howMuchMinus = 2;
}else if(itemIndexInGroup == 1 && prevGroupItems.length % 2 == 0){
howMuchMinus = 1;
}else{
if(itemIndexInGroup == 1 && prevGroupItems.length > 2){
howMuchMinus = 2;
}
}
prevGroupItems[prevGroupItems.length - howMuchMinus].focus();
}
}
} else {
// Stay in the same group, move up a row
const prevIndex = currentIndex - itemsPerRow;
if (prevIndex >= 0) {
focusableItems[prevIndex].focus();
}
}
} else if ("Tab" == event.key && event.shiftKey && 0 === currentIndex) {
event.preventDefault();
this.bpaMoveFocusToPreviousElement(this.$refs.timeSlotItemsGroup);
}
},
bpa_handle_category_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-cat-items-wrapper .bpa-front-ci-pill"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
} else if (event.key === "ArrowRight") {
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if (event.key === "ArrowLeft" ) {
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = document.querySelector(".bpa_search_service_data_cls .el-input__inner");
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-tab-menu--item.__bpa-is-active");
}
this.bpaMoveFocusToPreviousElement( this.$refs.categoryGroup, focusElement );
}
},
bpa_handle_pg_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
} else if (event.key === "ArrowRight") {
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if (event.key === "ArrowLeft" ) {
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = "";
focusElement = document.querySelector(".bpa-fm--bs__deposit-payment-module .bpa-front-form-control--radio");
if(focusElement == null){
focusElement = document.querySelector(".bpa-fm--bs-amount-item .bpa-is-tip-edit-icon svg");
if(focusElement == null){
focusElement = document.querySelectorAll(".bpa-fm--bs__coupon-module-textbox .el-button");
focusElement = focusElement[focusElement.length - 1];
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-summary-content__lg .bpa--summary_service_datetime_count_name");
}
}
}
this.bpaMoveFocusToPreviousElement( this.$refs.paymentGatewayItemsGroup, focusElement );
}
},
focusFirstPaymentGateway(){
this.$nextTick( () =>{
const paymentGatewayItem = document.querySelector(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item");
if( paymentGatewayItem !== null ){
paymentGatewayItem.focus();
}
});
},
bpaMoveFocusToPreviousElement( currentElement, focusOnElement = false ){
if(focusOnElement){
focusOnElement.focus();
return;
}
const focusableElements = document.querySelectorAll(
"a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])"
);
const focusableArray = Array.from(focusableElements);
const currentIndex = focusableArray.indexOf(currentElement);
if (currentIndex > 0) {
focusableArray[currentIndex - 1].focus();
}
},
bpaMoveFocusToNextElement( currentElement ){
const focusableElements = document.querySelectorAll(
"a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])"
);
const focusableArray = Array.from(focusableElements);
const currentIndex = focusableArray.indexOf(currentElement);
if (currentIndex > 0) {
focusableArray[currentIndex + 1].focus();
}
},
bpa_select_category( selected_cat_id, selected_cat_name, total_services, total_category){
const vm = this;
let category_id = parseInt( selected_cat_id );
vm.isLoadClass = 0;
if( 0 == selected_cat_id ){
for( let bpa_service_id in vm.bookingpress_all_services_data ){
let current_service = vm.bookingpress_all_services_data[ bpa_service_id ];
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = true;
if( ("undefined" != typeof current_service.is_disabled && true == current_service.is_disabled) || ( "undefined" != current_service.hide_for_staff && true == current_service.hide_for_staff ) ){
current_service.is_visible = false;
}
}
} else {
if( vm.bookingpress_all_services_data != "" ){
for( let bpa_service_id in vm.bookingpress_all_services_data ){
let current_service = vm.bookingpress_all_services_data[ bpa_service_id ];
let current_category = current_service.bookingpress_category_id;
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = false;
if( current_category == category_id ){
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = true;
}
if( ("undefined" != typeof current_service.is_disabled && true == current_service.is_disabled) || ( "undefined" != current_service.hide_for_staff && true == current_service.hide_for_staff ) ){
current_service.is_visible = false;
}
}
}
}
setTimeout(function(){
vm.isLoadClass = 1;
},1);
vm.appointment_step_form_data.selected_category = selected_cat_id;
vm.appointment_step_form_data.selected_cat_name = selected_cat_name;
},
selectStepCategory(selected_cat_id, selected_cat_name = "", total_services = 0, total_category="", display_warn = true ){
if( true == display_warn ){
console.trace("Deprecated step category function " );
console.warn("selectStepCategory function is deprecated. Please update the BookingPress lite, premium, and add-ons to the latest version");
}
const vm = this;
vm.isLoadClass = 0;
if( 0 == selected_cat_id ){
let temp_services = [];
let m = 0;
for( let x in vm.bpa_services_data_from_categories ){
let service_details = vm.bpa_services_data_from_categories[x];
for( let n in service_details ){
let current_service = service_details[n];
if( "undefined" != typeof current_service.bookingpress_staffmembers ){
let selected_staffmember = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( current_service.bookingpress_staffmembers.includes( selected_staffmember ) && selected_staffmember != ""){
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position);
temp_services[bookingpress_service_pos] = current_service;
} else {
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position );
temp_services[bookingpress_service_pos] = current_service;
}
} else {
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position );
temp_services[bookingpress_service_pos] = current_service;
}
if( vm.is_bookingpress_staff_loaded_from_url == "true" && "" != vm.appointment_step_form_data.selected_staff_member_id ){
if( 0 == selected_cat_id ){
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
current_service.is_visible = true;
} else {
current_service.is_visible = false;
}
} else {
vm.services_data.forEach( ( current_service, index) => {
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
vm.services_data[index].is_visible = true;
} else {
vm.services_data[index].is_visible = false;
}
});
}
}
m++;
}
}
var bpa_temp_services= [];
temp_services.sort();
for( let n in temp_services ){
if(temp_services[n] != "") {
bpa_temp_services[n] = temp_services[n];
}
}
vm.services_data = bpa_temp_services.sort();
} else {
vm.services_data = vm.bpa_services_data_from_categories[selected_cat_id];
if( vm.is_bookingpress_staff_loaded_from_url == "true" && "" != vm.appointment_step_form_data.selected_staff_member_id ){
if( 0 == selected_cat_id ){
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
current_service.is_visible = true;
} else {
current_service.is_visible = false;
}
} else {
vm.services_data.forEach( ( current_service, index) => {
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
vm.services_data[index].is_visible = true;
} else {
vm.services_data[index].is_visible = false;
}
});
}
}
}
vm.appointment_step_form_data.selected_category = selected_cat_id;
vm.appointment_step_form_data.selected_cat_name = selected_cat_name;
setTimeout(function(){
vm.isLoadClass = 1;
},1);
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
},
async selectDate(selected_service_id, service_name, service_price, service_price_without_currency, is_move_to_next, service_duration_val = "",service_duration_unit = ""){
const vm = this;
if(typeof vm.appointment_step_form_data.cart_items == "undefined" && (selected_service_id != vm.appointment_step_form_data.selected_service && vm.appointment_step_form_data.selected_date != "")){
var bookingpress_selected_date = vm.appointment_step_form_data.selected_date;
let newDate = new Date("2026-01-16 14:28:54");
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( newDate ) ){
let sel_month = newDate.getMonth() + 1;
let sel_year = newDate.getFullYear();
let sel_date = newDate.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
newDate = sel_year + "-" + sel_month + "-" + sel_date;
}
if( ("undefined" != typeof vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ) && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && vm.appointment_step_form_data.bpa_datetime_after_service_selection != 1 ) ){
vm.appointment_step_form_data.selected_date = newDate;
vm.appointment_step_form_data.selected_end_date = newDate;
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
}
this.booking_cal_maxdate = new Date( Date.now() + ( 3600 * 1000 * ( 24 * 180 ) ) );
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected && 1 == vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected ) {
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 0;
}
if( "undefined" != typeof vm.appointment_step_form_data.selected_staff_member_id && "" != vm.appointment_step_form_data.selected_staff_member_id ){
let current_selected_tab = "service";
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
let sidebar_keys = Object.keys( sidebar_step_data );
let current_tab_pos = sidebar_keys.indexOf( "service" );
let selected_tab_pos = sidebar_keys.indexOf( "staffmembers" );
if( "undefined" == typeof vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url || vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == "0" ){
if( selected_tab_pos > current_tab_pos || sidebar_step_data.staffmembers.is_display_step == 0 ){
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
}
}
}
let is_drawer_opened = "false";
let use_drawer_flag = false;
/* vm.appointment_step_form_data.is_extra_service_exists = "0";
if( vm.bookingpress_is_extra_enable == 1){
use_drawer_flag = true;
for( let i in vm.appointment_step_form_data.bookingpress_selected_extra_details ){
vm.appointment_step_form_data.bookingpress_selected_extra_details[i].bookingpress_is_selected = false;
vm.appointment_step_form_data.bookingpress_selected_extra_details[i].bookingpress_selected_qty = 1;
}
for( let n in vm.all_services_data ){
let element = vm.all_services_data[n];
if( element.bookingpress_service_id == selected_service_id && element.extra_service_counter > 0 ){
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.appointment_step_form_data.is_extra_service_exists = "1";
is_drawer_opened = "true";
vm.isServiceLoadTimeLoader = "1";
}
}
} */
if( vm.is_staffmember_activated == 1 && vm.appointment_step_form_data.hide_staff_selection == "false" && vm.appointment_step_form_data.form_sequence[0] != "staff_selection" ){
for( let index in vm.bookingpress_staffmembers_details ){
let currentValue = vm.bookingpress_staffmembers_details[index];
vm.bookingpress_staffmembers_details[index].is_display_staff = false;
if("undefined" != typeof currentValue.assigned_service_price_details && "undefined" != typeof currentValue.assigned_service_price_details[selected_service_id] && "public" == vm.bookingpress_staffmembers_details[index].staffmember_visibility ){
vm.bookingpress_staffmembers_details[index].is_display_staff = true;
}
}
if( "" == vm.appointment_step_form_data.selected_staff_member_id || 0 == vm.appointment_step_form_data.selected_staff_member_id ){
let next_tabname = vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name;
if( "datetime" == next_tabname && 1 == vm.bookingpress_sidebar_step_data[ next_tabname ].is_allow_navigate ){
vm.bookingpress_sidebar_step_data[ next_tabname ].is_allow_navigate = 0;
}
}
/* let is_staff_exists = 0;
let total_staff = 0;
let total_private_staff = 0;
let deselect_staff = false;
let staff_id = vm.appointment_step_form_data.selected_staff_member_id;
let available_staffs = [];
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(selected_service_id)){
if( currentValue.staffmember_visibility == "private" ){
total_private_staff++;
}
total_staff++;
is_staff_exists = 1;
available_staffs.push( currentValue.bookingpress_staffmember_id );
}
});
if( available_staffs.length > 0 && staff_id > 0 && !available_staffs.includes( staff_id ) ){
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
}
if( 1 == is_staff_exists ){
if( total_staff == total_private_staff ){
await vm.bookingpress_select_staffmember("any_staff", 1);
is_staff_exists = 0;
vm.appointment_step_form_data.is_staff_exists = 0;
vm.appointment_step_form_data.hide_staff_selection = "true";
} else {
vm.isServiceLoadTimeLoader = "1";
is_drawer_opened = "true";
vm.appointment_step_form_data.is_staff_exists = 1;
}
} */
}
if( ("false" == is_move_to_next && "false" == is_drawer_opened) ){
if( (vm.bookingpress_cart_addon == 1 && vm.appointment_step_form_data.hide_service_selection_step == "true" ) ){
is_move_to_next = "false";
} else {
is_move_to_next = "true";
}
}
if( "true" == is_move_to_next && "d" == vm.appointment_step_form_data.selected_service_duration_unit ){
if( 0 == vm.bookingpress_sidebar_step_data.service.is_display_step && "datetime" == vm.bookingpress_current_tab ){
is_move_to_next = false;
}
}
let current_selected_service = vm.appointment_step_form_data.selected_service;
vm.bookingpress_remove_extra_service_error_msg();
if( "undefined" != vm.bookingpress_all_services_data[ selected_service_id ].service_extras && "" != vm.bookingpress_all_services_data[ selected_service_id ].service_extras && vm.bookingpress_sidebar_step_data.service.is_display_step == 1 ){
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
const params = new URLSearchParams(window.location.search);
if (params.get("book_again") == 1 && vm.is_staffmember_activated == 1) {
document.body.classList.remove("--bpa-open-advance-drawer");
}
vm.isServiceLoadTimeLoader = "0";
vm.appointment_step_form_data.is_extra_service_exists = "1";
is_drawer_opened = "true";
is_move_to_next = false;
} else {
vm.appointment_step_form_data.is_extra_service_exists = "0";
}
if( selected_service_id != "" && ("undefined" == typeof vm.is_club_service || vm.is_club_service != true ) ){
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
/** Check if staff member is enabled, visible and after service step */
if( vm.is_staffmember_activated == 1){
if( sidebar_step_data.staffmembers.is_first_step == 0 ){
let max_capacity = 1;
let min_capacity = 1;
let staffmember_details = vm.bookingpress_staffmembers_details;
let staff_capacities = [];
let staff_min_capacities = [];
staffmember_details.forEach( (element,index) =>{
if( "undefined" == typeof element.assigned_service_price_details[ selected_service_id ] ){
return true;
}
let staff_services = element.assigned_service_price_details[ selected_service_id ];
let staff_capacity = staff_services.assigned_service_capacity;
staff_capacities.push( parseInt(staff_capacity) );
if( vm.is_bring_anyone_with_you_activated == 1 ){
let staff_min_capacity = staff_services.assigned_service_min_capacity;
staff_min_capacities.push( parseInt(staff_min_capacity) );
}
});
max_capacity = Math.max.apply(null, staff_capacities);
vm.appointment_step_form_data.service_max_capacity = parseInt(max_capacity);
if( vm.is_bring_anyone_with_you_activated == 1 ){
min_capacity = Math.min.apply(null, staff_min_capacities);
vm.appointment_step_form_data.service_min_capacity = parseInt(min_capacity);
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members, selected_service_id );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
} else {
let staff_id = vm.appointment_step_form_data.selected_staff_member_id;
if( "" != staff_id ){
let staff_details;
vm.bookingpress_staffmembers_details.forEach( (element,index) => {
if( element.bookingpress_staffmember_id == staff_id ){
staff_details = element;
return false;
}
});
if( staff_details != "" ){
let staff_service_data = staff_details.assigned_service_price_details[ selected_service_id ];
let staff_service_capacity = staff_service_data.assigned_service_capacity;
let staff_service_min_capacity = staff_service_data.assigned_service_min_capacity;
vm.appointment_step_form_data.service_max_capacity = parseInt(staff_service_capacity);
vm.appointment_step_form_data.service_min_capacity = parseInt(staff_service_min_capacity);
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members, selected_service_id );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
}
}
}
} else if( 1 != vm.is_staffmember_activated ){
/* vm.all_services_data.forEach( (element, index) => {
if( "" == element.service_max_capacity ){
element.service_max_capacity = 1;
}
if( element.bookingpress_service_id == selected_service_id ){
vm.appointment_step_form_data.service_max_capacity = parseInt( element.service_max_capacity );
return false;
}
}); */
vm.appointment_step_form_data.service_max_capacity = vm.bookingpress_all_services_data[ selected_service_id ].services_meta.max_capacity;
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.appointment_step_form_data.service_min_capacity = vm.bookingpress_all_services_data[ selected_service_id ].services_meta.min_capacity;
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
}
/** Check if service max capacity > 1 and quantity feature is enabled */
if( vm.is_bring_anyone_with_you_activated == 1 && 1 < vm.appointment_step_form_data.service_max_capacity /*&& this.is_service_loaded_from_url != "1" /* && "true" == is_move_to_next */ ){
is_move_to_next = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "1";
}
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" ){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ) {
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
} else {
if( 0 > vm.appointment_step_form_data.cart_item_edit_index ){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ) {
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
} else {
/** Reputelog - need to check custom service duration with cart add-on while edit appointment from cart */
let cart_edit_index_id = vm.appointment_step_form_data.cart_item_edit_index;
let cart_item = vm.appointment_step_form_data.cart_items[ cart_edit_index_id ];
let bookingpress_edit_cart_service_id = typeof cart_item.bookingpress_service_id != "undefined" ?cart_item.bookingpress_service_id:0;
if(bookingpress_edit_cart_service_id != selected_service_id){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ){
vm.appointment_step_form_data.cart_items[cart_edit_index_id].enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
}else{
vm.appointment_step_form_data.enable_custom_service_duration = typeof cart_item.enable_custom_service_duration != "undefined" ? cart_item.enable_custom_service_duration : false;
vm.appointment_step_form_data.custom_service_duration_value = parseInt( cart_item.custom_service_duration_value );
vm.appointment_step_form_data.custom_service_duration_real_value = parseInt( cart_item.custom_service_duration_value );
vm.appointment_step_form_data.custom_service_real_price = parseFloat( cart_item.custom_service_real_price );
}
}
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
vm.bpa_skip_loading_csd_slot = false;
}
vm.appointment_step_form_data.selected_service = selected_service_id;
vm.v_calendar_blocked_dates = [];
vm.v_calendar_attributes_current = [];
vm.appointment_step_form_data.selected_service_name = service_name;
vm.appointment_step_form_data.selected_service_price = service_price;
vm.appointment_step_form_data.service_price_without_currency = service_price_without_currency;
/* vm.appointment_step_form_data.base_price = service_price; */
vm.appointment_step_form_data.base_price_without_currency = service_price_without_currency;
if( "" == service_duration_val ){
service_duration_val = vm.bookingpress_all_services_data[ selected_service_id ].bookingpress_service_duration_val;
}
if( "" == service_duration_unit ){
service_duration_unit = vm.bookingpress_all_services_data[ selected_service_id ].bookingpress_service_duration_unit;
}
vm.appointment_step_form_data.selected_service_duration = service_duration_val;
vm.appointment_step_form_data.selected_service_duration_unit = service_duration_unit;
if(vm.previous_selected_tab_id === 1 || vm.previous_selected_tab_id === 2 || vm.current_selected_tab_id === 1){
vm.displayResponsiveCalendar = "1";
}
vm.v_calendar_disable_dates = [];
vm.bpa_current_selected_date = "";
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
if( "undefined" != typeof vm.is_staffmember_activated && vm.is_staffmember_activated == 1) {
if( ( vm.is_staffmember_activated == 1 && ( vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.service.next_tab_name == "datetime" && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "staffmembers" ) ) ){
//vm.appointment_step_form_data.bpa_datetime_after_staff_selection_flag = 1;
//vm.hide_capacity_text_flag = true;
//alert( "inside this 45 ");
vm.appointment_step_form_data.bpa_datetime_hide_capacity = true;
vm.appointment_step_form_data.bpa_datetime_before_staffselection = 1;
}
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
if( (vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.service.next_tab_name == "datetime" && vm.is_staffmember_activated == 1 && vm.appointment_step_form_data.hide_staff_selection != "true" ) || ( (vm.appointment_step_form_data.hide_service_selection_step == "true" || vm.appointment_step_form_data.hide_service_selection_step == true ) && vm.bookingpress_sidebar_step_data.datetime.is_first_step == 1 )){
//vm.appointment_step_form_data.bpa_available_staff_member.push(currentValue.bookingpress_staffmember_id);
const staffId = currentValue.bookingpress_staffmember_id;
if (!vm.appointment_step_form_data.bpa_available_staff_member.includes(staffId)) {
vm.appointment_step_form_data.bpa_available_staff_member.push(staffId);
}
}
}
});
if( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 ){
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
}
}
}
vm.appointment_step_form_data.store_selected_date = "";
vm.appointment_step_form_data.store_selected_end_date = "";
vm.appointment_step_form_data.store_selected_time = "";
vm.appointment_step_form_data.store_selected_end_time = "";
vm.appointment_step_form_data.store_start_time = "";
vm.appointment_step_form_data.store_end_time = "";
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_end_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
vm.appointment_step_form_data.customer_selected_date = "";
vm.appointment_step_form_data.customer_selected_end_date = "";
vm.appointment_step_form_data.customer_selected_time = "";
vm.appointment_step_form_data.customer_selected_end_time = "";
if(is_move_to_next === "true"){
if( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 ){
if( vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name == "cart" ){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
} else {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
}
} else {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
}
}
var selected_date = vm.appointment_step_form_data.selected_date;
var formatted_date = vm.get_formatted_date(selected_date);
vm.bookingpress_remove_error_msg();
vm.service_advance_see_less = "0";
if( vm.is_staffmember_activated == 1 && (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1) ){
let timeslots_details = vm.appointment_step_form_data.bpa_after_select_service_available_staff;
let service_details = vm.bpasortedServices;
if( "undefined" != typeof timeslots_details ){
if( "undefined" != typeof timeslots_details.available_staffs ){
if( 1 < timeslots_details.available_staffs.length ){
let available_staff_id = timeslots_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( timeslots_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = timeslots_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
}
}
if( /*vm.bookingpress_is_extra_enable == "1" ||*/ vm.is_bring_anyone_with_you_activated == "1" || vm.is_staffmember_activated == "1" ){
var is_extra_exists = 0;
var service_max_length = parseInt(vm.appointment_step_form_data.service_max_capacity);
var is_staff_exists = 0;
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
if(vm.appointment_step_form_data.hide_staff_selection == "true" && vm.is_staff_first_step != "1" && (typeof vm.appointment_step_form_data.custom_service_duration_value == "undefined" || ( vm.appointment_step_form_data.custom_service_duration_value != "undefined" && vm.appointment_step_form_data.custom_service_duration_value == "") ) ){
/* vm.bookingpress_select_staffmember("any_staff", 1); */
}
}
/* if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length >= 1) || ( vm.appointment_step_form_data.hide_staff_selection != "true" && vm.is_staffmember_activated == "1" && ( vm.is_any_staff_option_enable == 1 || is_staff_exists == 1 ) ) || (vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == 1) ){ */
if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length > 1) ){
vm.bookingpress_open_extras_drawer = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "0";
} else{
if((is_staff_exists == 1 && vm.appointment_step_form_data.hide_staff_selection == "true" && vm.bookingpress_current_tab == "datetime") || (vm.appointment_step_form_data.selected_service_duration_unit == "d" && ( ( vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 0) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length == 1) ))) {
/* If staffmember selection step hide and staff member selection is in drawer then do not need to execute next step navigation function */
}else{
/*if(vm.bookingpress_current_tab != "datetime") {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name)
}*/
}
}}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
let selected_service = vm.appointment_step_form_data.selected_service;vm.customer_form_fields.forEach( (element,index) => {
if( typeof element.field_options != "undefined" && element.field_options.visibility == "services" ){
let field_services = element.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_type == "2_col" || element.field_type == "3_col" || element.field_type == "4_col" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_name == "Repeater" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( "2_col" == ielement.field_type || "3_col" == ielement.field_type || "4_col" == ielement.field_type ){
ielement.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
} else {
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
}
});vm.appointment_step_form_data.coupon_code = "";vm.coupon_code_msg = "";vm.coupon_applied_status = "error";vm.coupon_discounted_amount = 0;vm.coupon_apply_loader = "0";vm.bpa_coupon_apply_disabled = 0;
let current_service_data = vm.bookingpress_all_services_data[selected_service];
if( "undefined" != typeof current_service_data && "undefined" != typeof current_service_data.services_meta ){
let current_service_meta = current_service_data.services_meta;
if( "undefined" != typeof current_service_meta.deposit_amount ){
vm.appointment_step_form_data.deposit_payment_amount = current_service_meta.deposit_amount;
vm.appointment_step_form_data.deposit_payment_type = current_service_meta.deposit_type;
if( "percentage" == current_service_meta.deposit_type ){
vm.appointment_step_form_data.deposit_payment_amount_percentage = current_service_meta.deposit_amount;
}
}
}
setTimeout(function(){
vm.is_display_custom_duration_loader = false;
},1500);
},
dayClickedResponsive( day ){
const vm = this;
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "1";
vm.isLoadDateTimeCalendar = "1";
if( window.innerWidth <= 991 ){
vm.service_timing = "-1";
} else {
vm.service_timing = "-1";
}
}
vm.dayClicked(day);
},
dayClicked(day){
const vm = this;
let available_dates = vm.v_calendar_available_dates;
let dayId = day.id;
let dayString = dayId + " 00:00:00";
if( "undefined" == typeof dayString || "undefined" == typeof available_dates || 0 > available_dates.indexOf( dayString ) || vm.bpa_current_selected_date == dayId || ("undefined" != typeof vm.v_calendar_blocked_dates && vm.v_calendar_blocked_dates.includes( day.id ) ) ){
return false;
}
vm.service_timing = "-2";
vm.appointment_step_form_data.selected_date = dayId;
vm.bpa_current_selected_date = dayId;
vm.no_timeslot_available = false;
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
setTimeout(function(){
vm.service_timing = vm.bookingpress_categories_timeslots( vm.v_calendar_timeslots_data[ dayId ] );
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
},10);
},
onDayKeyPressed(event){
const vm = this;
if(event.event.key == "Enter"){
vm.dayClicked(event);
setTimeout(function(){
if(typeof vm.$refs.timeSlotItems !== 'undefined'){
vm.$refs.timeSlotItems[0].focus();
}
},11);
}
let page = {month: event.month, year: event.year};
vm.bpaMoveMonth(page);
},
onWholeDayKeyPressed(event, day){
const currentDate = new Date(day.id);
let newDate;
const vm = this;
if(event.key == "Enter"){
event.preventDefault();
vm.dayClicked_v2(day);
return;
}
let page = {month: day.month, year: day.year};
vm.bpaMoveMonth(page);
switch(event.key) {
case 'ArrowRight':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() + 1);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowLeft':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() - 1);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowUp':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() - 7);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowDown':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() + 7);
vm.moveFocusToDate(newDate, day);
break;
}
},
moveFocusToDate(date, day) {
const vm = this;
// Format date to match your day.id format (YYYY-MM-DD)
const dateString = date.toISOString().split('T')[0];
// Find the element for this date
this.$nextTick(() => {
let vc_day_content = document.querySelectorAll(".vc-day .vc-day-content");
vc_day_content.forEach((elm) => {
elm.setAttribute("tabindex", "-1");
});
const dateElement = document.getElementsByClassName(`id-${dateString}`);
// console.log(dateElement);
if (dateElement) {
if (vm.$refs.bkp_front_calendar) {
vm.$refs.bkp_front_calendar.move(dateString);
// vm.$refs.bkp_front_calendar.focusDate(day);
}
if(dateElement[0]){
setTimeout(() => {
let date_span = dateElement[0].querySelector(".bpa_day-select span");
if(date_span){
date_span.setAttribute("tabindex", "0");
date_span.focus();
}
}, 200);
}
}
});
},
dayClicked_legacy(day) {
const vm = this;
let disable_dates = vm.v_calendar_disable_dates;
let max_available_date = vm.get_formatted_date( vm.booking_cal_maxdate );
if( disable_dates.includes( day.id + " 00:00:00" ) || disable_dates.includes( day.id ) || max_available_date < day.id || (day.date < vm.jsCurrentDateFormatted && false == day.isToday) ){
return false;
}
vm.appointment_step_form_data.selected_date = day.id;
vm.get_date_timings( day.id );
},
get_date_timings(current_selected_date = ""){
const vm = this;
if( window.innerWidth <= 991 ){
vm.service_timing = "-1";
}else{
vm.service_timing = "-2";
}
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
if( null == vm.appointment_step_form_data.selected_date ){
vm.appointment_step_form_data.selected_date = new Date("2026-01-16 14:28:54");
}
if( current_selected_date == "") {
current_selected_date = vm.appointment_step_form_data.selected_date;
}
vm.appointment_step_form_data.selected_date = current_selected_date;
var selected_date = vm.appointment_step_form_data.selected_date;
if( "undefined" != typeof this.$refs.bkp_front_calendar ){
const calendar = this.$refs.bkp_front_calendar;
calendar.move(current_selected_date);
}
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( selected_date ) ){
let sel_month = selected_date.getMonth() + 1;
let sel_year = selected_date.getFullYear();
let sel_date = selected_date.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
selected_date = sel_year + "-" + sel_month + "-" + sel_date;
}
vm.appointment_step_form_data.selected_date = selected_date;
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
var selected_service_id = vm.appointment_step_form_data.selected_service;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_front_get_timings", service_id: selected_service_id, selected_date: selected_date, _wpnonce:bkp_wpnonce_pre_fetch, };
postData.bookingpress_timezone = vm.bookingpress_timezone;postData.bookingpress_selected_staffmember = vm.appointment_step_form_data.bookingpress_selected_staff_member_details;postData.service_extra_details = JSON.stringify( vm.appointment_step_form_data.bookingpress_selected_extra_details );postData.enable_custom_service_duration = vm.appointment_step_form_data.enable_custom_service_duration;postData.custom_service_duration_value = vm.appointment_step_form_data.custom_service_duration_value;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
postData.client_dst_timezone = vm.bookingpress_dst_timezone;
}
vm.no_timeslot_available = false;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
var set_waiting_time_limit = 1500;
if(typeof postData.enable_custom_service_duration != "undefined"){
if(postData.enable_custom_service_duration == true || postData.enable_custom_service_duration == "true"){
set_waiting_time_limit = 0;
}
}
setTimeout(function(){
vm.service_timing = response.data;
if( response.data.morning_time.length <= 0 && response.data.afternoon_time.length <= 0 && response.data.evening_time.length <= 0 && response.data.night_time.length <= 0 ){
vm.no_timeslot_available = true;
}
vm.isLoadTimeLoader = "0";
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
if(response.data == ""){
vm.service_timing = null;
}
}, set_waiting_time_limit);
vm.service_advance_see_less = "0";
if( vm.is_staffmember_activated == 1 && (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1) ){
let timeslots_details = vm.appointment_step_form_data.bpa_after_select_service_available_staff;
let service_details = vm.bpasortedServices;
if( "undefined" != typeof timeslots_details ){
if( "undefined" != typeof timeslots_details.available_staffs ){
if( 1 < timeslots_details.available_staffs.length ){
let available_staff_id = timeslots_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( timeslots_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = timeslots_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
}
}
if( /*vm.bookingpress_is_extra_enable == "1" ||*/ vm.is_bring_anyone_with_you_activated == "1" || vm.is_staffmember_activated == "1" ){
var is_extra_exists = 0;
var service_max_length = parseInt(vm.appointment_step_form_data.service_max_capacity);
var is_staff_exists = 0;
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
if(vm.appointment_step_form_data.hide_staff_selection == "true" && vm.is_staff_first_step != "1" && (typeof vm.appointment_step_form_data.custom_service_duration_value == "undefined" || ( vm.appointment_step_form_data.custom_service_duration_value != "undefined" && vm.appointment_step_form_data.custom_service_duration_value == "") ) ){
/* vm.bookingpress_select_staffmember("any_staff", 1); */
}
}
/* if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length >= 1) || ( vm.appointment_step_form_data.hide_staff_selection != "true" && vm.is_staffmember_activated == "1" && ( vm.is_any_staff_option_enable == 1 || is_staff_exists == 1 ) ) || (vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == 1) ){ */
if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length > 1) ){
vm.bookingpress_open_extras_drawer = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "0";
} else{
if((is_staff_exists == 1 && vm.appointment_step_form_data.hide_staff_selection == "true" && vm.bookingpress_current_tab == "datetime") || (vm.appointment_step_form_data.selected_service_duration_unit == "d" && ( ( vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 0) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length == 1) ))) {
/* If staffmember selection step hide and staff member selection is in drawer then do not need to execute next step navigation function */
}else{
/*if(vm.bookingpress_current_tab != "datetime") {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name)
}*/
}
}}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
let selected_service = vm.appointment_step_form_data.selected_service;vm.customer_form_fields.forEach( (element,index) => {
if( typeof element.field_options != "undefined" && element.field_options.visibility == "services" ){
let field_services = element.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_type == "2_col" || element.field_type == "3_col" || element.field_type == "4_col" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_name == "Repeater" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( "2_col" == ielement.field_type || "3_col" == ielement.field_type || "4_col" == ielement.field_type ){
ielement.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
} else {
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
}
});vm.appointment_step_form_data.coupon_code = "";vm.coupon_code_msg = "";vm.coupon_applied_status = "error";vm.coupon_discounted_amount = 0;vm.coupon_apply_loader = "0";vm.bpa_coupon_apply_disabled = 0;
let current_service_data = vm.bookingpress_all_services_data[selected_service];
if( "undefined" != typeof current_service_data && "undefined" != typeof current_service_data.services_meta ){
let current_service_meta = current_service_data.services_meta;
if( "undefined" != typeof current_service_meta.deposit_amount ){
vm.appointment_step_form_data.deposit_payment_amount = current_service_meta.deposit_amount;
vm.appointment_step_form_data.deposit_payment_type = current_service_meta.deposit_type;
if( "percentage" == current_service_meta.deposit_type ){
vm.appointment_step_form_data.deposit_payment_amount_percentage = current_service_meta.deposit_amount;
}
}
}
setTimeout(function(){
vm.is_display_custom_duration_loader = false;
},1500);
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
selectDisableTiming(time_details){
},
selectTiming(selected_start_time, selected_end_time, store_start_time = "", store_end_time = "", store_selected_date = "" ,formated_start_time = "",formated_end_time = "",time_details = ""){
const vm = this;
vm.appointment_step_form_data.selected_start_time = selected_start_time;
vm.appointment_step_form_data.selected_end_time = selected_end_time;
if( "" != formated_end_time && "" != formated_start_time ) {
vm.appointment_step_form_data.selected_formatted_start_time = formated_start_time;
vm.appointment_step_form_data.selected_formatted_end_time = formated_end_time;
}
if( "" != time_details.formatted_start_end_time && "undefined" != time_details.formatted_start_end_time ) {
vm.appointment_step_form_data.selected_formatted_start_end_time = time_details.formatted_start_end_time;
}
if("" != store_start_time && "" != store_end_time && "" != store_selected_date ){
vm.appointment_step_form_data.store_start_time = store_start_time;
vm.appointment_step_form_data.store_end_time = store_end_time;
vm.appointment_step_form_data.client_offset = vm.bookingpress_timezone_offset;
vm.appointment_step_form_data.store_selected_date = store_selected_date;
vm.appointment_step_form_data.store_selected_end_date = time_details.selected_end_date || store_selected_date;
}
vm.appointment_step_form_data.customer_selected_date = time_details.client_date || vm.appointment_step_form_data.selected_date;
vm.appointment_step_form_data.customer_selected_end_date = time_details.client_end_date || time_details.client_date || vm.appointment_step_form_data.selected_date;
vm.appointment_step_form_data.customer_selected_time = time_details.client_start_time || selected_start_time;
vm.appointment_step_form_data.customer_selected_end_time = time_details.client_end_time || selected_end_time;
vm.appointment_step_form_data.is_next_day = false;
vm.appointment_step_form_data.is_both_next_day = false;
if( "undefined" != typeof time_details.is_next_day && true == time_details.is_next_day ){
vm.appointment_step_form_data.is_next_day = true;
vm.appointment_step_form_data.next_day_selection_date = time_details.selected_date;
vm.appointment_step_form_data.selected_end_date = time_details.selected_end_date;
}
if( ("undefined" != typeof time_details.is_both_next_day_time && true == time_details.is_both_next_day_time) || "undefined" != typeof time_details.is_both_next_day_time_v2 && true == time_details.is_both_next_day_time_v2 ){
vm.appointment_step_form_data.customer_selected_date = time_details.client_end_date;
vm.appointment_step_form_data.display_end_date_on_summary = true;
vm.appointment_step_form_data.is_both_next_day = time_details.is_both_next_day_time;
vm.appointment_step_form_data.is_both_next_day_v2 = time_details.is_both_next_day_time_v2;
vm.appointment_step_form_data.is_server_both_next_day = ( "undefined" != typeof time_details.is_overnight_booking_server ) ? time_details.is_overnight_booking_server : false;
vm.appointment_step_form_data.is_customer_both_next_day = time_details.is_both_next_day_time_v2 || false;
}
let bookingpress_is_anystaff_select = true;
if( (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "staffmembers" && vm.bookingpress_sidebar_step_data.service.is_first_step == 1) || ( (vm.appointment_step_form_data.hide_service_selection_step == true || vm.appointment_step_form_data.hide_service_selection_step == "true") && vm.bookingpress_sidebar_step_data.datetime.is_first_step == 1 && ("true" != vm.appointment_step_form_data.hide_staff_selection ) ) ){
let staffmember_details = vm.bookingpress_staffmembers_details;
// change the value anystaff not
bookingpress_is_anystaff_select = false;
if( "undefined" != typeof time_details.available_staffs ) {
staffmember_details.forEach(staff => {
staff.is_display_staff = time_details.available_staffs.includes(parseInt(staff.bookingpress_staffmember_id));
});
} else {
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 0;
staffmember_details.forEach(staff => {
staff.is_display_staff = false;
});
}
vm.no_staffmember_available = staffmember_details.every(staff => !staff.is_display_staff);
vm.appointment_step_form_data.bpa_datetime_after_staffselection = 1;
vm.appointment_step_form_data.bpa_after_select_datetime_available_staff = time_details;
}
if( vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 ){
// change the value anystaff not
bookingpress_is_anystaff_select = false;
let service_details = vm.bpasortedServices;
vm.appointment_step_form_data.bpa_datetime_after_service_selection = 1;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
vm.appointment_step_form_data.is_staff_exists = 1;
}
//console.log( time_details.unavailable_serivce_ids ); //[ 1 ]
// if( "undefined" != typeof time_details.unavailable_serivce_ids ) {
//service_details.forEach(service => {
//service.is_visible = !time_details.unavailable_serivce_ids.includes( parseInt(service.bookingpress_service_id) );
//});
//}
if (typeof time_details.unavailable_serivce_ids !== "undefined") {
service_details.forEach(service => {
if (time_details.unavailable_serivce_ids.includes( service.bookingpress_service_id ) ) {
service.is_visible = false;
service.exclude_id = true;
}
});
} else {
service_details.forEach(service => {
if( "undefined" != typeof service.exclude_id && service.exclude_id == true ){
service.is_visible = true;
}
});
}
vm.no_service_available = service_details.every( services => !services.is_visible );
if( vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1 ){
vm.appointment_step_form_data.bpa_after_select_service_available_staff = time_details;
}
if( "undefined" != typeof time_details.available_staffs ){
let available_staffdata = time_details.available_staffs;
vm.bpasortedServices.forEach( item => {
const hasMatch = Object.keys( item.staff_member_details ).some( key => available_staffdata.includes( Number( key ) ) );
item.is_visible = hasMatch;
item.is_visible_with_flag = hasMatch;
} );
}
}
if( "undefined" != typeof time_details.available_staffs && bookingpress_is_anystaff_select && (vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 && vm.appointment_step_form_data.bpa_datetime_after_service_selection != 1 ) ){
if( 1 < time_details.available_staffs.length ){
let available_staff_id = time_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( time_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = time_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
if( vm.bookingpress_staffmembers_details.every(staff => !staff.is_display_staff) ){
vm.is_any_staff_option_enable = 0;
}
vm.appointment_step_form_data.use_modified_duration = false;
if( "undefined" != typeof time_details.use_slot_duration && true == time_details.use_slot_duration && "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && 1 == vm.appointment_step_form_data.bpa_datetime_after_service_selection ){
vm.appointment_step_form_data.use_modified_duration = true;
let remaining_minutes = time_details.duration_unit_next_break;
vm.slot_duration_till_break = remaining_minutes;
let allSortedServices = Object.assign( [], vm.bpasortedServices );
let totalHiddenServices = 0;
allSortedServices.forEach( (element, index) => {
let service_duration_unit = element.bookingpress_service_duration_unit;
element.is_visible_with_service_step = true;
if( "d" == service_duration_unit ){
element.is_visible_with_service_step = false;
totalHiddenServices++;
} else {
let service_duration = ( "h" == service_duration_unit ) ? parseInt( element.bookingpress_service_duration_val * 60 ) : parseInt( element.bookingpress_service_duration_val );
if( service_duration > remaining_minutes ){
element.is_visible_with_service_step = false;
totalHiddenServices++;
}
}
});
vm.bpasortedServices.forEach( (elm, index) => {
if( "undefined" != typeof elm.is_hide_with_step && true == elm.is_hide_with_step ){
elm.is_visible = true;
}
if( "undefined" != typeof allSortedServices[index].is_visible_with_service_step && false == allSortedServices[index].is_visible_with_service_step ){
elm.is_visible = false;
elm.is_hide_with_step = true;
}
});
console.log( vm.bpasortedServices );
console.log( totalHiddenServices );
vm.no_service_available = false;
if( vm.bpasortedServices.length == totalHiddenServices ){
vm.no_service_available = true;
}
}
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
vm.bookingpress_update_timestep_token();
},
resetForm(){
const vm2 = this;
vm2.appointment_formdata.appointment_selected_customer = "0";
vm2.appointment_formdata.appointment_selected_service = "";
vm2.appointment_formdata.appointment_booked_date = "2026-01-16";
vm2.appointment_formdata.appointment_booked_time = "";
},
select_service(selected_service_id){
const vm = this;
vm.appointment_step_form_data.selected_service = selected_service_id;
},
automatic_next_page(next_tab_id){
const vm = this;
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
;
vm.current_selected_tab_id = parseInt(next_tab_id);
vm.bookingpress_remove_error_msg();
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
},
next_page(customer_form = "", current_selected_element = "", next_selection_element = ""){
const vm = this;
var current_selected_tab = bpa_selected_tab = parseFloat(vm.current_selected_tab_id);
vm.previous_selected_tab_id = parseInt(current_selected_tab);
if(current_selected_element != undefined && current_selected_element != null){
current_selected_tab = parseInt(current_selected_element);
}
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
if(current_selected_tab === 1 || vm.previous_selected_tab_id === 1){
vm.is_display_error = "0";
if(vm.appointment_step_form_data.selected_service == "" || vm.appointment_step_form_data.selected_service == undefined || vm.appointment_step_form_data.selected_service == "undefined"){
vm.bookingpress_set_error_msg("Selecteer een dienst om een afspraak te maken.");
vm.current_selected_tab_id = 1;
return false;
}else{
if(vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == ""){
vm.bookingpress_set_error_msg("Selecteer een medewerker om verder te gaan");
vm.current_selected_tab_id = 1;
return false;
};
if(next_selection_element != ""){
current_selected_tab = next_selection_element;
}else{
current_selected_tab = current_selected_tab;
}
}
}else if(current_selected_tab === 2){
if(current_selected_element != undefined && current_selected_element == 2 && vm.appointment_step_form_data.selected_start_time == "" && bpa_selected_tab == "2" && vm.appointment_step_form_data.selected_service_duration_unit != "d") {
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
}
if(vm.appointment_step_form_data.selected_service != "" && vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.selected_service_duration_unit != "d") {
vm.selectDate(vm.appointment_step_form_data.selected_service, vm.appointment_step_form_data.selected_service_name, vm.appointment_step_form_data.selected_service_price, vm.appointment_step_form_data.service_price_without_currency, "true",vm.appointment_step_form_data.selected_service_duration,vm.appointment_step_form_data.selected_service_duration_unit);
}
if(vm.is_display_error != "1"){
if(next_selection_element != ""){
current_selected_tab = next_selection_element
}else{
current_selected_tab = current_selected_tab;
}
vm.bookingpress_remove_error_msg()
}else{
if(vm.is_error_msg == ""){
vm.bookingpress_set_error_msg("Er is iets fout gegaan")
}
}
}else if(current_selected_tab === 3){
if(vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.is_enable_validations == 1 && vm.appointment_step_form_data.selected_service_duration_unit != "d"){
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
}else{
vm.$refs[customer_form].validate((valid) => {
if (valid) {
if(next_selection_element != ""){
current_selected_tab = next_selection_element
}else{
current_selected_tab = current_selected_tab;
}
}
});
}
}else{
if(vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.is_enable_validations == 1 && vm.appointment_step_form_data.selected_service_duration_unit != "d"){
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
} else {
vm.$refs[customer_form].validate((valid) => {
if (valid) {
if(next_selection_element != ""){
current_selected_tab = next_selection_element;
}else{
current_selected_tab = current_selected_tab;
}
}else{
current_selected_tab = 3;
}
});
}
}
if(current_selected_tab === 2 && vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.selected_date != "" ) {
vm.get_date_timings();
}
vm.current_selected_tab_id = parseInt(current_selected_tab);
if(current_selected_tab === 2 && vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.next_selected_tab_id = 3;
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
},
previous_page(previous_selection_tab_id = ""){
const vm = this;
var current_selected_tab = parseFloat(vm.current_selected_tab_id);
if(previous_selection_tab_id != ""){
current_selected_tab = previous_selection_tab_id;
}else{
vm.previous_selected_tab_id = parseInt(current_selected_tab);
current_selected_tab = current_selected_tab - 1;
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
vm.current_selected_tab_id = parseInt(current_selected_tab);
if(vm.previous_selected_tab_id == "1"){
vm.displayResponsiveCalendar = 1;
}
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
},
select_payment_method(payment_method){
const vm = this;
vm.appointment_step_form_data.selected_payment_method = payment_method;
var bookingpress_allowed_payment_gateways_for_card_fields = [];
if( "undefined" == typeof vm.skip_checking_final_step_validation || true != vm.skip_checking_final_step_validation ){
vm.bookingpress_get_final_step_amount();
}
;
if(bookingpress_allowed_payment_gateways_for_card_fields.includes(payment_method)){
vm.is_display_card_option = 1;
}else{
vm.is_display_card_option = 0;
}
},
displayCalendar(){
const vm = this;
if( "" == vm.appointment_step_form_data.selected_date || ( "undefined" != typeof vm.v_calendar_available_dates && 1 > vm.v_calendar_available_dates.length ) ){
return false;
}
vm.displayResponsiveCalendar = "1";
},
Change_front_appointment_description(service_id) {
const vm = this;
vm.services_data.forEach(function(item, index, arr){
if(item.bookingpress_service_id == service_id ){
if(item.display_details_more == 0 && item.display_details_less == 1) {
item.display_details_less = 0;
item.display_details_more = 1;
} else {
item.display_details_more = 0;
item.display_details_less = 1;
}
}
});
},
bookingpress_phone_country_change_func(bookingpress_country_obj){
const vm = this;
var bookingpress_selected_country = bookingpress_country_obj.iso2;
vm.appointment_step_form_data.customer_phone_country = bookingpress_selected_country;
vm.appointment_step_form_data.customer_phone_dial_code = bookingpress_country_obj.dialCode;
let exampleNumber = window.intlTelInputUtils.getExampleNumber( bookingpress_selected_country, true, 1 );
if( typeof vm.bookingpress_phone_default_placeholder == "undefined" && "" != exampleNumber ){
vm.bookingpress_tel_input_props.inputOptions.placeholder = exampleNumber;
} else if(vm.bookingpress_phone_default_placeholder == "false" && "" != exampleNumber){
vm.bookingpress_tel_input_props.inputOptions.placeholder = exampleNumber;
}
},
bookingpress_phone_country_open( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".el-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.add("bpa-active-col");
}
}
}
},
bookingpress_phone_country_close( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-active-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.remove("bpa-active-col");
}
}
}
},
bookingpress_validatePhoneField(event) {
this.$nextTick(() => {
if (!this.$refs.appointment_step_form_data) return;
const phoneValue = this.appointment_step_form_data.customer_phone;
console.log("called ... " + phoneValue);
if (/^[\d\+\s\-\(\)]+$/.test(phoneValue.trim())) {
console.log("inside this..... one")
this.$refs.appointment_step_form_data.clearValidate(["customer_phone"]);
}
});
},
bookingpress_get_parents( elem, selector ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
if (selector) {
if (elem.matches(selector)) {
parents.push(elem);
}
continue;
}
parents.push(elem);
}
return parents;
},
async bookingpress_disable_date( bpa_selected_service = "", bpa_selected_date = "" ){
let bpa_is_called = false;
var bookingpress_is_allow_modify = "";
var bookingpress_staff_loaded_from_url = "0";
this.isLoadTimeLoader = "1";
this.isLoadDateTimeCalendarLoad = "1";
let staff_id = this.appointment_step_form_data.selected_staff_member_id;
if( 0 == staff_id ){
staff_id = "";
}
this.service_timing = "-3";
if( 0 === this.bookingpress_sidebar_step_data["staffmembers"].is_display_step && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && 1 == this.hide_category_service && "true" == this.appointment_step_form_data.hide_staff_selection && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1);
}
bpa_is_called = true;
}
let form_sequence_first;
if( "object" == typeof this.appointment_step_form_data.form_sequence ){
form_sequence_first = this.appointment_step_form_data.form_sequence[0];
} else {
form_sequence_first = this.appointment_step_form_data.form_sequence;
}
if( false == bpa_is_called && 1 == this.hide_category_service && "service_selection" == form_sequence_first && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && 1 != this.hide_category_service && "true" == this.appointment_step_form_data.hide_staff_selection && false == this.is_staff_member_set_from_url && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && "" == staff_id && "true" == this.appointment_step_form_data.select_any_staffmember ){
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
bpa_is_called = true;
}
/** for the datetime re-arrange step */
if( "datetime" != this.bookingpress_next_tab && "datetime" == this.bookingpress_current_tab && this.bookingpress_sidebar_step_data["service"].is_first_step == 1 && this.bookingpress_sidebar_step_data["datetime"].next_tab_name == "staffmembers" ){
this.appointment_step_form_data.selected_staff_member_id = "";
this.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
}
if( "datetime" != this.bookingpress_next_tab && "datetime" == this.bookingpress_current_tab && this.bookingpress_current_tab != this.bookingpress_next_tab && ( "undefined" != typeof this.appointment_step_form_data.any_staff_selected && 1 == this.appointment_step_form_data.any_staff_selected ) ){
this.appointment_step_form_data.selected_staff_member_id = "";
this.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
this.bookingpress_select_staffmember( "any_staff", 1 );
}
let selected_sid = this.appointment_step_form_data.selected_service;
if(selected_sid != "" && "undefined" != typeof this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date && "" != this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date && null != this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date ) {
this.booking_cal_maxdate = this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date;
const currentDate = new Date();
const targetDate = new Date(this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date);
let diff_in_time = targetDate.getTime() - currentDate.getTime();
let diff_in_days = ( Math.round( diff_in_time / ( 1000 * 3600 * 24 ) ) ) + 1;
const bookingpress_period_available_for_booking = 180;
if(bookingpress_period_available_for_booking < diff_in_days){
/*If max period avilable is less than service expiry date then set limit for the Max period avilable days*/
this.booking_cal_maxdate = new Date( Date.now() + ( 3600 * 1000 * ( 24 * 180 ) ) );
}
}
let use_legacy = "false";
if( "true" == use_legacy ){
this.bookingpress_disable_date_xhr( bpa_selected_service, bpa_selected_date );
} else {
this.bookingpress_disable_date_xhr_v2( bpa_selected_service, bpa_selected_date );
}
},
bookingpress_update_timestep_token( force_update = false, cart_force_update = false ){
const vm = this;
let use_legacy = "false";
let current_tab = vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name;
if( ( "undefined" == typeof vm.bookingpress_cart_addon && ( ( true == force_update && typeof vm.v_calendar_time_token_data != "undefined" ) || ( "datetime" == vm.bookingpress_sidebar_step_data[ vm.bookingpress_current_tab ].previous_tab_name && "d" != vm.appointment_step_form_data.selected_service_duration_unit && "datetime" != vm.bookingpress_current_tab && "false" == use_legacy ) ) ) ||( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 && ( ( ( "undefined" != vm.is_staffmember_activated && 1 == vm.is_staffmember_activated && vm.appointment_step_form_data.selected_staff_member_id != 0 ) && ( "undefined" != typeof vm.appointment_step_form_data.selected_service && vm.appointment_step_form_data.selected_service != 0 ) ) && ( "undefined" != typeof vm.appointment_step_form_data.location_activated && 1 == vm.appointment_step_form_data.location_activated && vm.appointment_step_form_data.selected_location != "" ) || cart_force_update != false ) ) ){
let appointment_selected_date = vm.appointment_step_form_data.store_selected_date || vm.appointment_step_form_data.selected_date;
if( "undefined" != typeof vm.appointment_step_form_data.is_next_day && true == vm.appointment_step_form_data.is_next_day && "undefined" != typeof vm.appointment_step_form_data.next_day_selection_date ){
appointment_selected_date = vm.appointment_step_form_data.next_day_selection_date;
}
let selected_token_data = vm.v_calendar_time_token_data[ appointment_selected_date ][0];
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_set_timeslot_token",
tokenData: selected_token_data,
selectedDate: appointment_selected_date,
_wpnonce:bkp_wpnonce_pre_fetch
};
vm.is_bookingpress_updating_token = true;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm.is_bookingpress_updating_token = false;
vm.is_bookingpress_token_updated = true;
}.bind(this) )
.catch( function (error) {
});
}
},
bookingpress_working_dates_data( working_hour_details, response_data ){
const vm = this;
let timeformat = "5";
let is_client_timezone = "";
let updated_working_hour_details = {};
let available_dates = [];
let response = {};
let firstAvailableDate = "";
let overnight_booking = ("undefined" != typeof response_data.overnight_booking_dates ) ? response_data.overnight_booking_dates : [];
let sorted_working_hours = [];
for( let wdate in working_hour_details ){
let x = 0;
let n = 0;
let is_overnight_booking = overnight_booking.includes( wdate ) || false;
let is_overnight_booking_server = is_overnight_booking;
let overnight_booking_date = "";
sorted_working_hours[wdate] = working_hour_details[ wdate ];
sorted_working_hours[wdate].sort( (a,b) => {
return ( parseInt( a.counter_pos ) < parseInt( b.counter_pos ) ) ? -1 : 1;
} );
for( let wh_data of sorted_working_hours[wdate] ){
let start_datetime = wh_data.store_service_date + " " + wh_data.store_start_time;
let end_datetime = wh_data.selected_end_date + " " + wh_data.store_end_time;
let timezone = wh_data.store_offset;
let stTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_start_time, wh_data, "start" );
wh_data.client_start_time = stTime;
let etTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_end_time, wh_data, "end" );
wh_data.client_end_time = etTime;
if( false == is_overnight_booking ){
is_overnight_booking = wp.hooks.applyFilters( "bookingpress_consider_overnight_booking", is_overnight_booking, wh_data );
}
let stTimeNew = wp.hooks.applyFilters( "bookingpress_modify_datetime_with_timezone", start_datetime, wh_data, "start", true );
let etTimeNew = wp.hooks.applyFilters( "bookingpress_modify_datetime_with_timezone", end_datetime, wh_data, "end", true );
let updated_wdate;
if( "string" == typeof stTimeNew ){
updated_wdate = wdate;
} else {
updated_wdate = stTimeNew.toISOString().split("T")[0];
}
let updated_edate;
if( "string" == typeof etTimeNew ){
updated_edate = wh_data.selected_end_date;
} else {
updated_edate = etTimeNew.toISOString().split("T")[0];
}
if( "undefined" != typeof wh_data.is_day_service && true == wh_data.is_day_service ){
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] && updated_wdate >= vm.jsCurrentDate.toISOString().split("T")[0] ){
updated_working_hour_details[ updated_wdate ] = [];
if( false == is_overnight_booking && !available_dates.includes( updated_wdate + " 00:00:00" ) ){
available_dates.push( updated_wdate + " 00:00:00" );
}
n++;
} else {
continue;
}
} else {
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] ){
updated_working_hour_details[ updated_wdate ] = [];
if( false == is_overnight_booking && !available_dates.includes( updated_wdate + " 00:00:00" ) ){
available_dates.push( updated_wdate + " 00:00:00" );
}
n++;
}
}
if( "" == firstAvailableDate ){
firstAvailableDate = ( "undefined" != typeof response_data.pre_selected_date && true == response_data.pre_selected_date && "undefined" != typeof vm.open_customer_reschedule_appointment_modal && true == vm.open_customer_reschedule_appointment_modal ) ? response_data.selected_date : updated_wdate;
}
wh_data.client_date = updated_wdate;
wh_data.client_end_date = updated_edate;
if( true == is_overnight_booking && "" == overnight_booking_date ){
overnight_booking_date = updated_wdate;
if( "undefined" == typeof updated_working_hour_details[ overnight_booking_date ] ){
updated_working_hour_details[ overnight_booking_date ] = [];
}
}
wh_data.is_both_next_day_time_v2 = false;
if( true == is_overnight_booking ){
if( "true" == is_client_timezone ){
wh_data.is_next_day = false;
}
if( updated_edate > updated_wdate ){
wh_data.is_next_day = true;
}
if( updated_edate == updated_wdate && updated_wdate > overnight_booking_date ){
wh_data.is_both_next_day_time_v2 = true;
wh_data.is_overnight_booking_server = is_overnight_booking_server;
wh_data.is_next_day = true;
wh_data.client_date = wh_data.client_end_date;
}
}
if( true == wh_data.is_both_next_day_time && wh_data.client_end_date > wh_data.client_date ){
wh_data.client_date = wh_data.client_end_date;
}
let startTimeHour = stTime.split(":")[0];
let formatted_startTime = vm.bookingpress_format_time( stTime );
let formatted_endTime = vm.bookingpress_format_time( etTime );
let formatted_datetime = formatted_startTime + " - " + formatted_endTime;
if( "1" == timeformat || "2" == timeformat ){
formatted_datetime = formatted_startTime + " naar " + formatted_endTime;
} else if ( "5" == timeformat || "6" == timeformat ){
formatted_datetime = formatted_startTime + " - " + formatted_endTime;
} else if( "3" == timeformat || "4" == timeformat ){
formatted_datetime = formatted_startTime;
}
wh_data.formatted_start_time = formatted_startTime;
wh_data.formatted_end_time = formatted_endTime;
wh_data.formatted_start_end_time = formatted_datetime;
wh_data.start_hour = startTimeHour;
wh_data.slot_timestamp = new Date( `${wh_data.client_date} ${wh_data.client_start_time}` ).getTime();
if( true == is_overnight_booking ){
if( "undefined" != typeof updated_working_hour_details[ overnight_booking_date ][x] && x == 0){
x = Object.keys( updated_working_hour_details[ overnight_booking_date ] ).length;
}
updated_working_hour_details[ overnight_booking_date ][x] = wh_data;
if( !available_dates.includes( overnight_booking_date + " 00:00:00" ) ){
available_dates.push( overnight_booking_date + " 00:00:00" );
}
} else {
if( "undefined" != typeof updated_working_hour_details[ updated_wdate ][x] && x == 0){
x = Object.keys( updated_working_hour_details[ updated_wdate ] ).length;
}
updated_working_hour_details[ updated_wdate ][x] = wh_data;
}
x++;
}
}
available_dates = wp.hooks.applyFilters( "bookingpress_modify_available_dates_with_day_service", available_dates, working_hour_details, response_data, vm );
firstAvailableDate = wp.hooks.applyFilters( "bookingpress_modify_first_available_date_with_day_service", firstAvailableDate, available_dates, vm );
response.available_dates = available_dates;
response.updated_working_hour_details = updated_working_hour_details;
response.selected_date = firstAvailableDate;
return response;
},
bookingpress_working_dates_data_legacy( working_hour_details, response_data ){
const vm = this;
let timeformat = "5";
let updated_working_hour_details = {};
let available_dates = [];
let response = {};
let firstAvailableDate = "";
for( let wdate in working_hour_details ){
let x = 0;
let n = 0;
for( let wh_data of working_hour_details[ wdate ] ){
let start_datetime = wh_data.store_service_date + " " + wh_data.store_start_time;
let end_datetime = wh_data.store_service_date + " " + wh_data.store_end_time;
let timezone = wh_data.store_offset;
let stTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_start_time, wh_data, "start" );
wh_data.client_start_time = stTime;
let etTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_end_time, wh_data, "end" );
wh_data.client_end_time = etTime;
let updated_wdate = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", wdate, wh_data );
let updated_edate = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", wh_data.selected_end_date, wh_data );
if( "undefined" != typeof wh_data.is_day_service && true == wh_data.is_day_service ){
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] && updated_wdate >= vm.jsCurrentDate.toISOString().split("T")[0] ){
updated_working_hour_details[ updated_wdate ] = [];
available_dates.push( updated_wdate + " 00:00:00" );
n++;
} else {
continue;
}
} else {
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] ){
updated_working_hour_details[ updated_wdate ] = [];
available_dates.push( updated_wdate + " 00:00:00" );
n++;
}
}
if( "" == firstAvailableDate ){
firstAvailableDate = updated_wdate;
}
wh_data.client_date = updated_wdate;
wh_data.client_end_date = updated_edate;
let startTimeHour = stTime.split(":")[0];
let formatted_startTime = vm.bookingpress_format_time( stTime );
let formatted_endTime = vm.bookingpress_format_time( etTime );
let formatted_datetime = formatted_startTime + " - " + formatted_endTime;
if( "1" == timeformat || "2" == timeformat ){
formatted_datetime = formatted_startTime + "naar" + formatted_endTime;
} else if ( "5" == timeformat || "6" == timeformat ){
formatted_datetime = formatted_startTime + " - " + formatted_endTime;
} else if( "3" == timeformat || "4" == timeformat ){
formatted_datetime = formatted_startTime;
}
wh_data.formatted_start_time = formatted_startTime;
wh_data.formatted_end_time = formatted_endTime;
wh_data.formatted_start_end_time = formatted_datetime;
wh_data.start_hour = startTimeHour;
updated_working_hour_details[ updated_wdate ][x] = wh_data;
x++;
}
}
available_dates = wp.hooks.applyFilters( "bookingpress_modify_available_dates_with_day_service", available_dates, working_hour_details, response_data, vm );
firstAvailableDate = wp.hooks.applyFilters( "bookingpress_modify_first_available_date_with_day_service", firstAvailableDate, available_dates, vm );
response.available_dates = available_dates;
response.updated_working_hour_details = updated_working_hour_details;
response.selected_date = firstAvailableDate;
return response;
},
bookingpress_disable_date_xhr_v2( bpa_selected_service = "", bpa_selected_date = "", showLoader = true ){
const vm = this;
if( true == showLoader ){
vm.isLoadTimeLoader = "1";
vm.isLoadDateTimeCalendarLoad = "1";
};
let preselect_date = false;
if( "" != bpa_selected_date ){
preselect_date = true;
}
if( "" == bpa_selected_date ){
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
vm.service_timing = "-3";
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if( "" == bpa_selected_service && "" != vm.appointment_step_form_data.selected_service ){
bpa_selected_service = vm.appointment_step_form_data.selected_service;
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ){
vm.appointment_step_form_data.bookingpress_form_token = vm.appointment_step_form_data.bookingpress_uniq_id + "_" + ( Math.random().toString(36).slice(2) );
}
let startTime = new Date().getTime();
var postData = { action: "bookingpress_fetch_timeslot_data", service_id: bpa_selected_service, selected_service:bpa_selected_service, selected_date:bpa_selected_date, is_preselect: preselect_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
vm.no_timeslot_available = false;
vm.v_calendar_check_month_dates = false;
vm.v_calendar_next_month_dates;
vm.days_off_disabled_dates = "";
if(typeof vm.is_display_custom_duration_loader !== "undefined" && typeof vm.is_display_custom_duration_day_loader !== "undefined"){
if(vm.appointment_step_form_data.selected_service_duration_unit == "d" && (vm.is_display_custom_duration_loader == true || vm.is_display_custom_duration_day_loader == true)){
vm.isLoadDateTimeCalendarLoad = "0";
postData.bpa_choose_from_csd = "true";
}
}
if( "true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader ){
postData.bpa_choose_from_csd = true;
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
postData.bpa_choose_from_csd = true;
postData.is_preselect = true;
postData.selected_date = vm.appointment_step_form_data.selected_date;
}
if( "undefined" != typeof vm.appointment_step_form_data.custom_service_duration_value && "" != vm.appointment_step_form_data.custom_service_duration_value ){
postData.bpa_choose_from_csd = true;
}
;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
let request_time = new Date().getTime() - startTime;
/* Changes to add disable dates class start */
if( "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
/* Changes to add disable dates class end */
if(typeof response.data.bookingpress_custom_service_durations_slot !== "undefined"){
vm.bookingpress_custom_service_durations_slot = response.data.bookingpress_custom_service_durations_slot;
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 1;
document.querySelector(".bpa-front--dt__col").style.order = 2;
}
} else {
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 2;
document.querySelector(".bpa-front--dt__col").style.order = 1;
}
}
vm.is_display_custom_duration_loader = false;
vm.is_display_custom_duration_day_loader = false;
let working_hour_details = response.data.working_details;
let selectedDate = response.data.selected_date;
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
let preselected_date = "";
if( "undefined" != typeof response.data.pre_selected_date && true == response.data.pre_selected_date ){
preselected_date = response.data.selected_date;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
vm.appointment_step_form_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
vm.appointment_step_form_data.selected_date = "";
selectedDate = ( "" != preselected_date ) ? preselected_date : ( wh_details.selected_date || selectedDate );
vm.v_calendar_available_dates = wh_details.available_dates;
vm.v_calendar_timeslots_data = wh_details.updated_working_hour_details;
vm.no_timeslot_available = false;
let v_available_dates_only = [];
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
if( !v_available_dates_only.includes( selectedDate ) && wh_details.selected_date != selectedDate && wh_details.selected_date != "" ){
selectedDate = wh_details.selected_date;
}
vm.v_calendar_available_only_date = v_available_dates_only;
if( "undefined" != typeof selectedDate && "" != selectedDate ){
(function( $ref_ ){
setTimeout(function(){
vm.appointment_step_form_data.selected_date = selectedDate;
vm.bookingpress_select_multi_day_range();
if( "undefined" != typeof $ref_.bkp_front_calendar ){
const calendar = $ref_.bkp_front_calendar;
try{
calendar.move( selectedDate );
} catch( e ){
console.log( e );
}
}
if( "undefined" != typeof $ref_.bkp_front_calendar_responsive ){
const calendar_r = $ref_.bkp_front_calendar_responsive;
try{
calendar_r.move( selectedDate );
} catch( e ){
console.log( e );
}
}
},10);
})( this.$refs );
}
/* V-date-picker attributes */
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_default_label = response.data.max_capacity_capacity;
let vcal_capacity_attrs = response.data.vcal_capacity_attrs;
if( "undefined" != typeof vcal_capacity_attrs && vcal_capacity_attrs.length != "" ){
for( let vcal_date_v2 in vcal_capacity_attrs ){
let vcal_data_v2 = vcal_capacity_attrs[ vcal_date_v2 ];
vcal_date_v2 = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date_v2, {"store_service_date":vcal_date_v2,"store_start_time":"00:00:00","store_offset":"+01:00"} );
if( "0" == vcal_data_v2 ){
vm.v_calendar_blocked_dates.push( vcal_date_v2 );
}
}
}
/* V-date-picker attributes */
vm.v_calendar_default_label = response.data.max_capacity_capacity;
vm.v_calendar_time_token_data = response.data.working_hour_timing_token;
if( "undefined" != typeof wh_details.updated_working_hour_details[ selectedDate ] ){
vm.service_timing = vm.bookingpress_categories_timeslots( wh_details.updated_working_hour_details[ selectedDate ] );
} else {
vm.service_timing = {
"morning_time":[],
"afternoon_time":[],
"evening_time":[],
"night_time":[]
};
vm.no_timeslot_available = true;
}
if( vm.current_screen_size != "desktop" && vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.displayResponsiveCalendar = 0;
}
vm.isLoadTimeLoader = "0";
vm.isLoadDateTimeCalendarLoad = "0";
if( "undefined" == typeof response.data.stop_check || false == response.data.stop_check ){
vm.bookingpress_retrieve_future_month_details( response.data.next_month_date, 1 );
}
setTimeout(function(){
if( "undefined" != typeof vm.is_bookingpress_token_updated && true == vm.is_bookingpress_token_updated ){
// condition update
if( ("undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1) && ( "undefined" != typeof vm.is_staffmember_activated || 1 != vm.is_staffmember_activated && ( vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "staffmembers") || (vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && vm.appointment_step_form_data.bpa_datetime_after_service_selection == 1))) && ( "undefined" != typeof vm.is_staffmember_activated || 1 != vm.is_staffmember_activated && "undefined" != typeof vm.appointment_step_form_data.location_activated || 1 != vm.appointment_step_form_data.location_activated && vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "location" ) ){
vm.bookingpress_update_timestep_token( true, true );
} else {
vm.bookingpress_update_timestep_token( true );
}
}
},10);
setTimeout(() => {
vm.focusFirstDate();
if( "undefined" != typeof working_hour_details && working_hour_details.length == 0){
let focusCancelBtn = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa-front-dc--footer button");
if(focusCancelBtn !== null){
focusCancelBtn.focus();
}
}
const unavailable_date_calendar_input = document.querySelector(".el-form-item .bpa-unavailable-popup-datepicker .el-input__inner");
if(unavailable_date_calendar_input !== null){
unavailable_date_calendar_input.focus();
}
}, 500);
if( "undefined" != typeof selectedDate ){
let selected_date = selectedDate.split(" ")[0];
let timeslot_data = vm.v_calendar_timeslots_data[ selected_date ];
if( "undefined" != typeof timeslot_data ){
vm.appointment_step_form_data.store_service_date = timeslot_data[0].store_service_date;
vm.appointment_step_form_data.store_selected_date = timeslot_data[0].store_service_date;
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_future_month_details( next_month_date = "", counter = 1 ){
const vm = this;
let startDate = next_month_date != "" ? next_month_date : vm.v_calendar_available_dates.at(-1);
if( 4 == counter ){
vm.v_calendar_check_month_dates = true;
vm.v_calendar_next_month_dates = next_month_date;
vm.isHoldBookingRequest = false;
return false;
} else {
vm.isHoldBookingRequest = true;
}
let postData = {
action: "bookingpress_retrieve_entire_month_details",
from_date: startDate,
counter: counter
};
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
postData._wpnonce = bkp_wpnonce_pre_fetch;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
if( ("true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader) || ( "undefined" != typeof vm.bpa_choose_from_csd && true == vm.bpa_choose_from_csd ) ){
postData.bpa_choose_from_csd = true;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof postData.bpa_choose_from_csd ){
vm.bpa_choose_from_csd = true;
}
let working_hour_details = response.data.working_details
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
vm.v_calendar_available_dates = vm.v_calendar_available_dates.concat( wh_details.available_dates );
vm.v_calendar_time_token_data = Object.assign( {},vm.v_calendar_time_token_data, response.data.working_hour_timing_token );
let v_available_dates_only = [];
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
let vcal_capacity_attrs = response.data.vcal_capacity_attrs;
if( "undefined" != typeof vcal_capacity_attrs && vcal_capacity_attrs.length != "" ){
for( let vcal_date_v2 in vcal_capacity_attrs ){
let vcal_data_v2 = vcal_capacity_attrs[ vcal_date_v2 ];
vcal_date_v2 = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date_v2, {"store_service_date":vcal_date_v2,"store_start_time":"00:00:00","store_offset":"+01:00"} );
if( "0" == vcal_data_v2 ){
vm.v_calendar_blocked_dates.push( vcal_date_v2 );
}
}
}
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
vm.v_calendar_available_only_date = v_available_dates_only;
vm.v_calendar_timeslots_data = Object.assign({},vm.v_calendar_timeslots_data, wh_details.updated_working_hour_details );
vm.isLoadDateTimeCalendarLoad = 0;
++counter;
counter = wp.hooks.applyFilters( "bookingpress_modify_next_month_check_counter", counter, response.data );
if( "undefined" == typeof response.data.stop_check || response.data.stop_check == false ){
vm.bookingpress_retrieve_future_month_details( response.data.next_month_date, counter );
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_future_month_details_single( next_month_date = "", next_month_dates = "", counter = 1 ){
const vm = this;
let startDate = next_month_date != "" ? next_month_date : vm.v_calendar_available_dates.at(-1);
vm.v_calendar_check_month_dates = true;
vm.v_calendar_next_month_dates = next_month_date;
vm.isHoldBookingRequest = false;
let postData = {
action: "bookingpress_retrieve_entire_month_details",
from_date: startDate,
counter: counter
};
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
postData._wpnonce = bkp_wpnonce_pre_fetch;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
if( ("true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader) || ( "undefined" != typeof vm.bpa_choose_from_csd && true == vm.bpa_choose_from_csd ) ){
postData.bpa_choose_from_csd = true;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof postData.bpa_choose_from_csd ){
vm.bpa_choose_from_csd = true;
}
let working_hour_details = response.data.working_details
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
vm.v_calendar_available_dates = vm.v_calendar_available_dates.concat( wh_details.available_dates );
vm.v_calendar_time_token_data = Object.assign( {},vm.v_calendar_time_token_data, response.data.working_hour_timing_token );
let v_available_dates_only = [];
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_available_only_date = v_available_dates_only;
vm.v_calendar_timeslots_data = Object.assign({},vm.v_calendar_timeslots_data, wh_details.updated_working_hour_details );
vm.isLoadDateTimeCalendarLoad = 0;
vm.bookingpress_retrieve_future_month_details( next_month_dates, counter );
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_format_time(value){
var default_time_format = "HH:mm";
return moment(String(value), "HH:mm:ss").locale("nl_NL").format(default_time_format)
},
bookingpress_categories_timeslots( timeslot_details ){
let afternoon_slot_timings = parseInt( "12" );
let evening_slot_timings = parseInt( "18" );
let night_slot_timings = parseInt( "" );
if( "undefined" == typeof timeslot_details ){
return {};
}
let service_timings_data = {
"morning_time":[],
"afternoon_time":[],
"evening_time":[],
"night_time":[]
};
let x = 0;
for( let timeslot_data of timeslot_details ){
if( "undefined" != typeof timeslot_data && ( "undefined" == typeof timeslot_data.is_next_day || timeslot_data.is_next_day == false) ){
let startHour = parseInt( timeslot_data.start_hour );
if( startHour >= 0 && startHour < afternoon_slot_timings ){
service_timings_data.morning_time.push( timeslot_data );
} else if( startHour >= afternoon_slot_timings && ( "" == evening_slot_timings || startHour < evening_slot_timings ) ){
service_timings_data.afternoon_time.push( timeslot_data );
} else if ( startHour >= evening_slot_timings && ( "" == night_slot_timings || startHour < night_slot_timings ) ){
service_timings_data.evening_time.push( timeslot_data );
} else {
service_timings_data.night_time.push( timeslot_data );
}
x++;
}
}
if( timeslot_details.length > x ){
for( let timeslot_data of timeslot_details ){
if( "undefined" != typeof timeslot_data && "undefined" != typeof timeslot_data.is_next_day && timeslot_data.is_next_day == true ){
let startHour = parseInt( timeslot_data.start_hour );
service_timings_data.night_time.push( timeslot_data );
}
}
}
let sorted_timings_data = {};
for( let timing_item in service_timings_data ){
let timing_details = Object.assign( [], service_timings_data[ timing_item ] );
timing_details.sort( ( a, b ) => {
return ( parseInt( a.slot_timestamp ) < parseInt( b.slot_timestamp ) ) ? -1 : 1;
});
sorted_timings_data[ timing_item ] = timing_details;
}
return sorted_timings_data;
},
bookingpress_disable_date_xhr( bpa_selected_service = "", bpa_selected_date = "", showLoader = true ){
const vm = this;
if( true == showLoader ){
vm.isLoadTimeLoader = "1";
vm.isLoadDateTimeCalendarLoad = "1";
}
vm.service_timing = "-3";
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if( "" == bpa_selected_service && "" != vm.appointment_step_form_data.selected_service ){
bpa_selected_service = vm.appointment_step_form_data.selected_service;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
vm.appointment_step_form_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ){
vm.appointment_step_form_data.bookingpress_form_token = vm.appointment_step_form_data.bookingpress_uniq_id + "_" + ( Math.random().toString(36).slice(2) );
}
var postData = { action: "bookingpress_get_disable_date", service_id: bpa_selected_service, selected_service:bpa_selected_service, selected_date:bpa_selected_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch };
postData.disabled_dates = JSON.stringify( vm.v_calendar_disable_dates );
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
vm.no_timeslot_available = false;
vm.v_calendar_check_month_dates = false;
vm.v_calendar_next_month_dates = {};
vm.days_off_disabled_dates = "";
if(typeof vm.is_display_custom_duration_loader !== "undefined" && typeof vm.is_display_custom_duration_day_loader !== "undefined"){
if(vm.appointment_step_form_data.selected_service_duration_unit == "d" && (vm.is_display_custom_duration_loader == true || vm.is_display_custom_duration_day_loader == true)){
vm.isLoadDateTimeCalendarLoad = "0";
postData.bpa_choose_from_csd = "true";
}
}
if( "true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader ){
postData.bpa_choose_from_csd = true;
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
postData.bpa_choose_from_csd = true;
postData.is_preselect = true;
postData.selected_date = vm.appointment_step_form_data.selected_date;
}
if( "undefined" != typeof vm.appointment_step_form_data.custom_service_duration_value && "" != vm.appointment_step_form_data.custom_service_duration_value ){
postData.bpa_choose_from_csd = true;
}
;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
vm.service_timing = [];
if(response.data.variant == "success" && (response.data.selected_date != undefined && response.data.days_off_disabled_dates != undefined)){
/* Changes to add disable dates class start */
if( "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
/* Changes to add disable dates class end */
if(typeof response.data.bookingpress_custom_service_durations_slot !== "undefined"){
vm.bookingpress_custom_service_durations_slot = response.data.bookingpress_custom_service_durations_slot;
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 1;
document.querySelector(".bpa-front--dt__col").style.order = 2;
}
} else {
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 2;
document.querySelector(".bpa-front--dt__col").style.order = 1;
}
}
vm.is_display_custom_duration_loader = false;
vm.is_display_custom_duration_day_loader = false;
vm.days_off_disabled_dates = "";
/*V-Calendar disabled dates change start*/
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
vm.v_calendar_disable_dates = [];
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
/*V-Calendar disabled dates change end*/
let use_legacy = "false";
let pro_version = "false";
if( "true" == use_legacy && "false" == pro_version ){
let min_date = vm.jsCurrentDate;
let max_date = vm.booking_cal_maxdate;
let loop = new Date( min_date );
let available_dates = [];
while( loop <= max_date ){
let dt = loop.toISOString().split("T")[0] + " 00:00:00";
if( dt.indexOf( vm.v_calendar_disable_dates ) == -1 ){
available_dates.push( dt );
}
loop.setDate( loop.getDate() + 1 );
}
vm.v_calendar_available_dates = available_dates;
}
let resp_selected_date = response.data.selected_date;
if( vm.current_screen_size != "desktop" && vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.displayResponsiveCalendar = 0;
}
/* V-date-picker attributes */
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_default_label = response.data.max_capacity_capacity;
/* V-date-picker attributes */
vm.days_off_disabled_dates = response.data.days_off_disabled_dates;
vm.appointment_step_form_data.selected_date = response.data.selected_date;
vm.bookingpress_select_multi_day_range();
if( "undefined" != typeof response.data.front_timings ){
vm.service_timing = response.data.front_timings;
if( response.data.front_timings.length <= 0 ){
vm.no_timeslot_available = true;
}
}
if( "undefined" != typeof this.$refs.bkp_front_calendar ){
const calendar = this.$refs.bkp_front_calendar;
calendar.move(vm.appointment_step_form_data.selected_date);
}
vm.isLoadTimeLoader = "0";
if( "undefined" != typeof response.data.empty_front_timings && true == response.data.empty_front_timings ){
vm.isLoadDateTimeCalendarLoad = "1";
vm.appointment_step_form_data.selected_date = response.data.next_available_date;
vm.bookingpress_disable_date( bpa_selected_service, response.data.next_available_date );
return;
} else {
/* Check full day appointments block */
if( false == response.data.prevent_next_month_check ){
let postDataAction = "bookingpress_get_whole_day_appointments";
if( true == response.data.check_for_multiple_days_event ){
postDataAction = "bookingpress_get_whole_day_appointments_multiple_days";
}
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: postDataAction,days_off_disabled_dates: vm.days_off_disabled_dates, service_id: bpa_selected_service, max_available_year: response.data.max_available_year, max_available_month:response.data.max_available_month, selected_service:bpa_selected_service, selected_date:bpa_selected_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch, "next_month": response.data.next_month, "next_year": response.data.next_year, "counter": 1 };
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
postData.appointment_data_obj = JSON.stringify( vm.appointment_step_form_data );
postData.staffmember_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( vm.bookingpress_is_extra_enable == 1 ){
postData.service_extra_details = vm.appointment_step_form_data.bookingpress_selected_extra_details;
};
vm.bookingpress_retrieve_daysoff_for_booked_appointment( postData );
}
setTimeout(function(){
vm.isLoadDateTimeCalendarLoad = "0"
},200);
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_daysoff_for_booked_appointment( postData ){
const vm = this;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) ).then( function( response ) {
vm.days_off_disabled_dates = response.data.days_off_disabled_dates;
vm.isLoadDateTimeCalendarLoad = 0;
if(false == response.data.prevent_next_month_check && response.data.counter <= 3 ){ /** Currently data will be checked for next 3 months */
postData.days_off_disabled_dates = vm.days_off_disabled_dates;
postData.next_month = response.data.next_month;
postData.next_year = response.data.next_year;
postData.counter++;
if( postData.counter < 4 ){
vm.isHoldBookingRequest = true;
vm.bookingpress_retrieve_daysoff_for_booked_appointment( postData );
} else {
vm.v_calendar_check_month_dates = true;
let next_month_year = {
"month": parseInt( response.data.next_month ),
"year": response.data.next_year,
"postData": postData
};
vm.v_calendar_next_month_dates = next_month_year;
vm.isHoldBookingRequest = false;
}
/* V-Calendar disabled dates change start */
if( "" != response.data.days_off_disabled_dates_string ){
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date ){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
let use_legacy = "false";
let pro_version = "false";
if( "true" == use_legacy && "false" == pro_version ){
let min_date = vm.jsCurrentDate;
let max_date = vm.booking_cal_maxdate;
let loop = new Date( min_date );
let available_dates = [];
while( loop <= max_date ){
let dt = loop.toISOString().split("T")[0] + " 00:00:00";
if( dt.indexOf( vm.v_calendar_disable_dates ) == -1 ){
available_dates.push( dt );
}
loop.setDate( loop.getDate() + 1 );
}
vm.v_calendar_available_dates = available_dates;
}
}
/* V-Calendar disabled dates change end */
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.vcal_attributes ){
let vcal_attributes = response.data.vcal_attributes;
vm.bookingpress_select_multi_day_range();
if( vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
if( vm.v_calendar_attributes.length > 0 ){
vm.v_calendar_attributes = vm.v_calendar_attributes.concat( vcal_attr_data );
} else {
vm.v_calendar_attributes = vcal_attr_data;
}
if( "" != vm.v_calendar_attributes_current ){
let joined_cal_attr_current = { ...vm.v_calendar_attributes_current, ...vcal_attr_data_current };
vm.v_calendar_attributes_current = joined_cal_attr_current;
} else {
vm.v_calendar_attributes_current = vcal_attr_data_current;
}
}
}
} else {
/* V-Calendar disabled dates change start */
if( "" != response.data.days_off_disabled_dates_string ){
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date ){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
}
/* V-Calendar disabled dates change end */
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.vcal_attributes ){
let vcal_attributes = response.data.vcal_attributes;
vm.bookingpress_select_multi_day_range();
if( vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
if( vm.v_calendar_attributes.length > 0 ){
vm.v_calendar_attributes = vm.v_calendar_attributes.concat( vcal_attr_data );
} else {
vm.v_calendar_attributes = vcal_attr_data;
}
if( "" != vm.v_calendar_attributes_current ){
let joined_cal_attr_current = { ...vm.v_calendar_attributes_current, ...vcal_attr_data_current };
vm.v_calendar_attributes_current = joined_cal_attr_current;
} else {
vm.v_calendar_attributes_current = vcal_attr_data_current;
}
}
}
}
});
},
bpaMoveMonthResponsive( page ){
const vm = this;
if( "undefined" != typeof vm.v_calendar_check_month_dates && true == vm.v_calendar_check_month_dates && "undefined" != typeof vm.v_calendar_next_month_dates && false == vm.isHoldBookingRequest ){
let current_month = page.month;
let current_year = page.year;
let next_page_month = parseInt( vm.v_calendar_next_month_dates.split("-")[1] ) || null;
let next_page_year = parseInt( vm.v_calendar_next_month_dates.split("-")[0] ) || null;
if( null != next_page_month && null != next_page_year ){
if( current_year == next_page_year && current_month == next_page_month ){
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, 1 );
} else if( (current_year == next_page_year && current_month > next_page_month) || current_year > next_page_year ){
let current_date = new Date( `${current_year}-${current_month}-1` );
let next_page_date = new Date( `${next_page_year}-${next_page_month}-1` );
const monthDiff = current_date.getMonth() - next_page_date.getMonth();
counter = 0 - monthDiff;
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, counter );
}
setTimeout(() => {
vm.focusFirstDate();
}, 500);
}
}
},
bpaMoveMonth( page ){
const vm = this;
if( "undefined" != typeof vm.v_calendar_check_month_dates && true == vm.v_calendar_check_month_dates && "undefined" != typeof vm.v_calendar_next_month_dates && false == vm.isHoldBookingRequest ){
let current_month = page.month;
let current_year = page.year;
let next_page_month = parseInt( vm.v_calendar_next_month_dates.split("-")[1] ) || null;
let next_page_year = parseInt( vm.v_calendar_next_month_dates.split("-")[0] ) || null;
if( null != next_page_month && null != next_page_year ){
if( current_year == next_page_year && current_month == next_page_month ){
vm.isLoadDateTimeCalendarLoad = 1;
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, 1 );
} else if( (current_year == next_page_year && current_month > next_page_month) || current_year > next_page_year ){
let current_date = new Date( `${current_year}-${current_month}-1` );
let next_page_date = new Date( `${next_page_year}-${next_page_month}-1` );
const monthDiff = current_date.getMonth() - next_page_date.getMonth();
let month_ = ( current_month.toString().length == 1 ) ? ( "0" + current_month.toString() ) : current_month;
let nextMonthDate = current_year + "-" + month_ + "-01";
counter = 0 - monthDiff;
vm.isLoadDateTimeCalendarLoad = 1;
vm.bookingpress_retrieve_future_month_details_single( nextMonthDate, vm.v_calendar_next_month_dates, counter );
}
}
}
},
bookingpress_get_all_parent_node_with_overflow_hidden( elem ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
let computed_style = getComputedStyle( elem );
if( computed_style.overflow == "hidden" || computed_style.overflowX == "hidden" || computed_style.overflowY == "hidden" ){
parents.push(elem);
}
}
return parents;
},
bookingpress_onload_func(){
const vm = this;
vm.current_screen_size = "desktop";
if(window.outerWidth >= 1200){
vm.current_screen_size = "desktop";
}else if(window.outerWidth < 1200 && window.outerWidth >= 768){
vm.current_screen_size = "tablet";
}else if(window.outerWidth < 768){
vm.current_screen_size = "mobile";
}
let is_mobile_device = "";
if( "mobile" != vm.current_screen_size && ("true" == is_mobile_device || true == is_mobile_device) ){
vm.current_screen_size = "mobile";
}
if(window.innerWidth <= 576){
vm.bookingpress_container_dynamic_class = "";
let bookingpress_container = vm.$el;
let parents_with_hidden_overflow = vm.bookingpress_get_all_parent_node_with_overflow_hidden( bookingpress_container );
let apply_overflow = ( parents_with_hidden_overflow.length > 0 ) ? true : false;
window.addEventListener("scroll", function(e){
let bookingpress_scrollTop = bookingpress_container.getBoundingClientRect().top;
let bookingpress_scrollBottom = bookingpress_container.getBoundingClientRect().bottom;
let bpa_current_scroll = window.scrollY;
let targetBottom = bookingpress_container.getBoundingClientRect().bottom;
let viewportHeight = window.innerHeight || document.documentElement.clientHeight;
if( bookingpress_scrollTop < 50 && bpa_current_scroll >= bookingpress_scrollTop && targetBottom >= viewportHeight ){
vm.bookingpress_container_dynamic_class = "bpa-front__mc--is-sticky" ;
vm.bookingpress_footer_dynamic_class = "__bpa-is-sticky"; /* Change this string */
if( apply_overflow ){
for( let i = 0; i < parents_with_hidden_overflow.length; i++ ){
let parent = parents_with_hidden_overflow[i];
parent.classList.add("--bpa-is-overflow-visible");
}
}
} else {
vm.bookingpress_container_dynamic_class = "";
vm.bookingpress_footer_dynamic_class = ""; /* Change this string */
if( apply_overflow ){
for( let i = 0; i < parents_with_hidden_overflow.length; i++ ){
let parent = parents_with_hidden_overflow[i];
parent.classList.remove("--bpa-is-overflow-visible");
}
}
}
});
}
window.addEventListener("resize", function(e){
if( window.innerWidth <= 576 ){
vm.bookingpress_container_dynamic_class = "";
let bookingpress_container = vm.$el;
let bookingpress_scrollTop = bookingpress_container.getBoundingClientRect().top;
let bookingpress_scrollBottom = bookingpress_container.getBoundingClientRect().bottom;
let bpa_current_scroll = window.scrollY;
bookingpress_scrollBottom = bpa_current_scroll + bookingpress_scrollBottom + bookingpress_scrollTop;
let targetBottom = bookingpress_container.getBoundingClientRect().bottom;
let viewportHeight = window.innerHeight || document.documentElement.clientHeight;
if( bookingpress_scrollTop < 50 && bpa_current_scroll >= bookingpress_scrollTop && targetBottom >= viewportHeight ){
vm.bookingpress_container_dynamic_class = "bpa-front__mc--is-sticky";
vm.bookingpress_footer_dynamic_class = "__bpa-is-sticky" /* Change this string */
} else {
vm.bookingpress_container_dynamic_class = "";
vm.bookingpress_footer_dynamic_class = ""; /* Change this string */
}
}
});
},
bookingpress_step_navigation(current_tab, next_tab, previous_tab, is_strict_validate = 1){
const vm = this;
var bookingpress_is_validate = 0;
vm.bookingpress_remove_error_msg();
var bookingpress_validate_fields_arr = vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validate_fields;
if( "staffmembers" == vm.bookingpress_current_tab && "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected && true == vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected ){
is_strict_validate = 0;
}
if("service" == vm.bookingpress_current_tab){
if( vm.bookingpress_is_extra_enable == "1" && typeof vm.appointment_step_form_data.selected_service != "" ){
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if(typeof selected_service_data != "undefined") {
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
bpa_selected_service_extra_count++;
}
}
if("undefined" != selected_service_data.service_extras && "" != selected_service_data.service_extras && bpa_selected_service_extra_count < selected_service_data.bookingpress_min_no_extra_service){
bookingpress_is_validate = 1;
let errorMsg = "Please select at least [x] extra service";
errorMsg = errorMsg.replace("[x]", selected_service_data.bookingpress_min_no_extra_service);
vm.bookingpress_set_extra_service_error_msg(errorMsg);
}
else if("undefined" != selected_service_data.service_extras && "" != selected_service_data.service_extras && bpa_selected_service_extra_count > selected_service_data.bookingpress_max_no_extra_service ){
bookingpress_is_validate = 1;
let errorMsg = "You can select maximum [x] extra services";
errorMsg = errorMsg.replace("[x]", selected_service_data.bookingpress_max_no_extra_service);
vm.bookingpress_set_extra_service_error_msg(errorMsg);
}
}
}
}
if((vm.bookingpress_current_tab == "basic_details") && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
bookingpress_validate_fields_arr.forEach(function(currentValue, index, arr){
if(vm.bookingpress_current_tab == vm.bookingpress_current_tab && vm.appointment_step_form_data[currentValue] == "" && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
});
if(bookingpress_is_validate == 0 && is_strict_validate == 1){
var customer_form = "appointment_step_form_data";
vm.$refs[customer_form].validate((valid) => {
if (!valid) {
bookingpress_is_validate = 1;
}else{
bookingpress_is_validate = 0;
}
});
}
}else{
if(is_strict_validate == 1){
bookingpress_validate_fields_arr.forEach(function(currentValue, index, arr){
if(vm.bookingpress_current_tab == vm.bookingpress_current_tab && vm.appointment_step_form_data[currentValue] == "" && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
if( currentValue == "selected_start_time" && vm.appointment_step_form_data[currentValue] == "" ) {
if( vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
} else {
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
}
});
}
}
if( "service" == current_tab && "service" != vm.bookingpress_current_tab ){
var bookingpress_selected_date = vm.appointment_step_form_data.selected_date+"T00:00:00+00:00";
var bookingpress_disable_dates_arr = vm.days_off_disabled_dates.split(",");
if(bookingpress_disable_dates_arr.includes(bookingpress_selected_date)){
let newDate = new Date("2026-01-16 14:28:54");
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( newDate ) ){
let sel_month = newDate.getMonth() + 1;
let sel_year = newDate.getFullYear();
let sel_date = newDate.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
newDate = sel_year + "-" + sel_month + "-" + sel_date;
}
vm.appointment_step_form_data.selected_date = newDate;
}
}
if( ("basic_details" == current_tab && "service" == vm.bookingpress_current_tab) || ("summary" == current_tab && "service" == vm.bookingpress_current_tab) ){
if(vm.appointment_step_form_data.selected_service_duration_unit != "d"){
if(vm.appointment_step_form_data.selected_start_time == ""){
bookingpress_is_validate = 1;
}
}
}
if(bookingpress_is_validate == 0){
vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].is_allow_navigate = 1;
let current_selected_tab = vm.bookingpress_current_tab;
vm.bookingpress_current_tab = current_tab;
vm.bookingpress_next_tab = next_tab;
vm.bookngpress_previous_tab = previous_tab;
vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].is_allow_navigate = 1;
if( "datetime" == current_tab ){
let selected_service_id = vm.appointment_step_form_data.selected_service;
vm.bookingpress_disable_date(selected_service_id,vm.appointment_step_form_data.selected_date);
}
}
if( window.innerWidth <= 576 ){
let container = vm.$el;
let pos = 0;
if( null != container ){
pos = container.getBoundingClientRect().top + window.scrollY;
}
const myVar = Error().stack;
let allow_scroll = true;
if( /mounted/.test( myVar ) ){
allow_scroll = false;
}
if( allow_scroll ){
setTimeout(function(){
window.scrollTo({
top: pos,
behavior: "smooth",
});
}, 500);
}
}
if( "summary" == current_tab && "summary" == vm.bookingpress_current_tab ) {
const vm = this;
var total_payment_div_count = document.querySelectorAll(".bpa-front-module--pm-body__item").length;
if(total_payment_div_count == 1){
var total_payment_div = document.querySelector(".bpa-front-module--pm-body__item");
if( null != total_payment_div && "undefined" != typeof total_payment_div) {
vm.prevent_verification_on_load = true;
total_payment_div.click();
vm.prevent_verification_on_load = false;
}
}
vm.bookingpress_activate_payment_gateway_total_counter = vm.bookingpress_activate_payment_gateway_counter;
if( vm.paypal_payment == "paypal" ){
let total_counter_payment_gateway = vm.bookingpress_activate_payment_gateway_total_counter + 1;
vm.bookingpress_activate_payment_gateway_total_counter = total_counter_payment_gateway;
}
if( total_payment_div_count == 0 && vm.is_only_onsite_enabled == "1" ){
vm.appointment_step_form_data.selected_payment_method = "on-site";
vm.skip_checking_final_step_validation = true;
vm.select_payment_method("on-site");
}
}
if(current_tab == "datetime" || next_tab == "datetime"){
setTimeout(() => {
const custom_duration_select = document.querySelector(".bpa-front-module--date-and-time .bpa-custom-duration-select .el-input__inner");
if(custom_duration_select !== null){
custom_duration_select.focus();
}
vm.focusFirstDate();
window.is_focused = false;
/* const recurring_date_picker = document.querySelector(".bpa-recurring-appointment-head-row .bpa-front-form-control--date-picker .el-input__inner");
if(recurring_date_picker !== null){
recurring_date_picker.focus();
} */
const calendar_btn_mobile = document.querySelector(".bpa-front--dt__ts-sm-back-btn .el-button");
if(calendar_btn_mobile !== null){
calendar_btn_mobile.focus();
}
}, 1000);
}
if(current_tab == "basic_details" || next_tab == "basic_details"){
setTimeout(() => {
document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active")
?.querySelector("input:not([readonly]):not([disabled]):not([type='hidden']), select:not([disabled]), textarea:not([readonly]):not([disabled])")
?.focus();
}, 10);
}
if(next_tab == "summary"){
setTimeout(() => {
let find_first_pg = document.querySelector(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item");
if(find_first_pg !== null){
find_first_pg.focus();
}else {
find_first_pg = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa-front-dc--footer .summery-book-appointment-btn");
if(find_first_pg !== null){
find_first_pg.focus();
}
}
}, 10);
}
if(current_tab == "service" || next_tab == "service"){
setTimeout(() => {
let find_first_service = document.querySelector(".bpa-front-module--service-item .bpa-front-si-card");
if(find_first_service !== null){
find_first_service.focus();
}
}, 10);
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
;
},
bookingpress_select_multi_day_range(day = ""){
const vm = this;
if(vm.appointment_step_form_data.selected_date){
day = vm.appointment_step_form_data.selected_date;
vm.bookingpress_selected_date_range = [];
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_end_date = vm.appointment_step_form_data.selected_date;
var selected_date = new Date(day);
var selected_service_duration = vm.appointment_step_form_data.selected_service_duration;
var bookingpress_selected_date_range = [];
var new_date = new Date(day + " 00:00:00");
bookingpress_selected_date_range.push(day);
for(var i = 1; i < selected_service_duration; i++) {
new_date.setDate(new_date.getDate() + 1);
var month = "" + (new_date.getMonth() + 1),
day = "" + new_date.getDate(),
year = new_date.getFullYear();
if (month.length < 2){
month = "0" + month;
}
if (day.length < 2){
day = "0" + day;
}
var add_date = [year, month, day].join("-");
bookingpress_selected_date_range.push(add_date);
if(i == selected_service_duration-1) {
vm.appointment_step_form_data.selected_end_date = add_date;
}
}
if(bookingpress_selected_date_range.length > 0){
vm.bookingpress_selected_date_range = bookingpress_selected_date_range;
}
}
}
},
async bookingpress_select_multi_staffmember(selected_staffmember_id, is_any_staff_option_selected = 0){
var vm = this;
},
bpa_is_select_multistaff_member(staff_member_id){
var vm = this;
return false;
},
bpa_search_service( value ){
const vm = this;
value = value.toLowerCase();
vm.bpasortedServices.forEach( ( element,index ) =>{
vm.bpasortedServices[index].show_with_search = false;
if( element.bookingpress_service_name.toLowerCase().includes( value ) ){
vm.bpasortedServices[index].show_with_search = true;
}
});
},
bpa_search_staff( value ){
const vm = this;
value = value.toLowerCase();
vm.bookingpress_staffmembers_details.forEach( ( element,index ) => {
vm.bookingpress_staffmembers_details[index].show_with_staff_search = false;
if( (element.bookingpress_staffmember_firstname.toLowerCase().includes( value )) || element.bookingpress_staffmember_lastname.toLowerCase().includes( value ) ){
vm.bookingpress_staffmembers_details[index].show_with_staff_search = true;
}
});
},
bookingpress_validatePhoneField(event) {
this.$nextTick(() => {
if (!this.$refs.appointment_step_form_data) return;
const phoneValue = this.appointment_step_form_data.form_fields.customer_phone;
if (/^[\d\+\s\-\(\)]+$/.test(phoneValue.trim())) {
this.$refs.appointment_step_form_data.clearValidate(["customer_phone"]);
}
});
},
bookingpress_phone_country_open_repeater( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-field-main-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.add("bpa-active-col");
let parent_upper = vm.bookingpress_get_parents( parent[0], ".el-col" );
if( 0 < parent_upper.length && null != parent_upper[0] ){
//parent_upper[0].classList.add("bpa-active-col");
}
}
}
}
},
bookingpress_phone_country_close_repeater( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-active-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.remove("bpa-active-col");
}
}
}
},
bpa_check_space_validation(bpa_input_value,v_modal_data){
var vm = this;
if(bpa_input_value.trim() == ""){
vm.appointment_step_form_data["form_fields"][v_modal_data] = "";
return "";
}
return bpa_input_value;
},
bpa_check_password_validation( bpa_email_value ) {
const vm = this;
if( "undefined" == typeof vm.appointment_step_form_data.form_fields.customer_password || vm.bpa_check_user_login == 1 ){
return;
}
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: "bookingpress_password_validation_check", _wpnonce:bkp_wpnonce_pre_fetch, _email: bpa_email_value };
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof response.data.bpa_password_already_exists ){
if( response.data.bpa_password_already_exists == true ){
if(this.$refs.appointment_step_form_data){
this.$refs.appointment_step_form_data.clearValidate("customer_password");
}
vm.appointment_step_form_data.bpa_password_already_exists = true;
vm.customer_details_rule.customer_password[0].required = false;
vm.appointment_step_form_data.bpa_user_email_already_exists = true;
vm.appointment_step_form_data.form_fields["customer_password"] = "";
}
} else {
vm.appointment_step_form_data.bpa_password_already_exists = false;
vm.customer_details_rule.customer_password[0].required = true;
vm.appointment_step_form_data.bpa_user_email_already_exists = false;
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
dayClicked_v2( day ){
const vm = this;
vm.dayClicked( day );
vm.bookingpress_select_multi_day_range( day );
let timeslot_data = vm.v_calendar_timeslots_data[ day.id ];
let max_available_date = vm.booking_cal_maxdate;
;
if( "undefined" != typeof timeslot_data ){
vm.appointment_step_form_data.store_service_date = timeslot_data[0].store_service_date;
vm.appointment_step_form_data.store_selected_date = timeslot_data[0].store_service_date;
}
},
bookingpress_day_click(day){
const vm = this;
let disable_dates = vm.v_calendar_disable_dates;
let max_available_date = vm.booking_cal_maxdate;
;
let max_date_value = false;
if( max_available_date instanceof Date ){
max_date_value = ( max_available_date < ( new Date( day.id ) ) );
} else {
max_date_value = ( max_available_date < day.id );
}
if( disable_dates.includes( day.id + " 00:00:00" ) || disable_dates.includes( day.id ) || max_date_value || (day.date < vm.jsCurrentDateFormatted && false == day.isToday) ){
return false;
}
vm.appointment_step_form_data.selected_date = day.id;
vm.bookingpress_select_multi_day_range(day);
vm.dayClicked( day );
},
bookingpress_get_final_step_amount() {
const vm = this;
var payment_method = vm.appointment_step_form_data.selected_payment_method;
var total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
var tax_amount = vm.appointment_step_form_data.tax_amount_without_currency;
if( "" == tax_amount ){
tax_amount = 0;
}
let total_payable_amount_without_tax = parseFloat(total_payable_amount);
if(typeof tax_amount != "undefined"){
total_payable_amount = parseFloat(total_payable_amount) + parseFloat(tax_amount);
}
let is_cart_addon = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined" && ("undefined" == typeof vm.is_club_service || vm.is_club_service != true ) )
{
/* total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total; */
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
total_payable_amount_without_tax = parseFloat(total_payable_amount);
if( typeof tax_amount != "undefined" ){
total_payable_amount_without_tax = parseFloat( total_payable_amount ) - parseFloat( tax_amount );
if( 1 == vm.is_coupon_activated ){
if(vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.tax_amount_before_coupon_without_currency != "undefined"){
total_payable_amount_without_tax = parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.tax_amount_before_coupon_without_currency );
}
}
}
/* console.trace( "INSIDE CART CONDITION ===>>> " + vm.appointment_step_form_data.bookingpress_cart_total ); */
is_cart_addon = true;
}
var coupon_code = vm.appointment_step_form_data.coupon_code;
var selected_service = vm.appointment_step_form_data.selected_service;
var selected_staff_member_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
if( 0 == total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount, true );
}
var subtotal_price = total_payable_amount;
/* apply coupon */
if( 1 == vm.is_coupon_activated ){
if(vm.appointment_step_form_data.coupon_code != ""){
if(typeof vm.appointment_step_form_data.coupon_discount_amount != "undefined" && vm.appointment_step_form_data.coupon_discount_amount != 0){
if(vm.appointment_step_form_data.tax_percentage != ""){
var tax_percentage = parseFloat(vm.appointment_step_form_data.tax_percentage);
if(typeof vm.appointment_step_form_data.tax_price_display_options != "undefined" && vm.appointment_step_form_data.tax_price_display_options == "include_taxes"){
tax_amount = (total_payable_amount_without_tax * tax_percentage) / (100+tax_percentage);
total_payable_amount_without_tax = total_payable_amount_without_tax - tax_amount;
}
}
let f_payable_amount = total_payable_amount_without_tax - vm.appointment_step_form_data.coupon_discount_amount;
if( 0 == f_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = f_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( f_payable_amount, true );
}
var tax_amount = vm.appointment_step_form_data.tax_amount_without_currency;
if( typeof tax_amount != "undefined" ){
vm.appointment_step_form_data.total_payable_amount = vm.appointment_step_form_data.total_payable_amount + tax_amount;
}else {
tax_amount = 0;
}
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.total_payable_amount, true );
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.total_payable_amount );
subtotal_price = f_payable_amount + tax_amount;
if( "undefined" != vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency && 1 == vm.bookingpress_is_deposit_payment_activate ){
if( vm.appointment_step_form_data.bookingpress_deposit_payment_method == "deposit_or_full_price" || vm.appointment_step_form_data.bookingpress_deposit_payment_method == "allow_customer_to_pay_full_amount" ){
if(is_cart_addon){
let cart_items_deposite_amount = 0;
vm.appointment_step_form_data.cart_items.forEach((current_cart_item, cart_item_index) => {
cart_items_deposite_amount = parseFloat(cart_items_deposite_amount) + parseFloat(current_cart_item.bookingpress_deposit_price);
});
if( cart_items_deposite_amount < subtotal_price ){
vm.appointment_step_form_data.calculate_deposit = true;
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
}else{
if( vm.appointment_step_form_data.deposit_payment_type == "fixed") {
if( vm.appointment_step_form_data.deposit_payment_amount < subtotal_price ){
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
vm.appointment_step_form_data.calculate_deposit = true;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
} else if( vm.appointment_step_form_data.deposit_payment_type == "percentage") {
let bookingpress_deposit_amt = total_payable_amount_without_tax * ( parseFloat(vm.appointment_step_form_data.deposit_payment_amount) / 100);
if( bookingpress_deposit_amt < subtotal_price ){
vm.appointment_step_form_data.calculate_deposit = true;
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
}
}
}
}
}
} else {
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
if( 0 == total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount, true );
}
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
subtotal_price = total_payable_amount;
}
}
/* If deposit payment module enabled then calculate deposit amount */
var deposit_method = vm.appointment_step_form_data.bookingpress_deposit_payment_method;
var deposit_type = vm.appointment_step_form_data.deposit_payment_type;
var deposit_value = vm.appointment_step_form_data.deposit_payment_amount;
var bookingpress_deposit_amt = 0;
var bookingpress_deposit_due_amt = 0;
if(payment_method != "" && 1 == vm.bookingpress_is_deposit_payment_activate && vm.appointment_step_form_data.bookingpress_remove_deposit != 1 && ( "undefined" == typeof vm.appointment_step_form_data.is_clubbed_service || false == vm.appointment_step_form_data.is_clubbed_service ) ){
var bookingpress_check_deposit_avaliable = false;
if( 1 == is_cart_addon ){
if (typeof vm.appointment_step_form_data.cart_items != "undefined"){
var cart_items_temp_data = vm.appointment_step_form_data.cart_items;
if(cart_items_temp_data != "" && cart_items_temp_data.length != 0){
cart_items_temp_data.forEach(function(currentValue, index, arr){
if (typeof cart_items_temp_data[index].bookingpress_deposit_due_amount != "undefined"){
if(parseFloat(cart_items_temp_data[index].bookingpress_deposit_due_amount) > 0){
bookingpress_check_deposit_avaliable = true;
}
}
});
}
}
}else{
if(typeof vm.appointment_step_form_data.deposit_payment_type != undefined && typeof vm.appointment_step_form_data.deposit_payment_amount_percentage != undefined){
if(vm.appointment_step_form_data.deposit_payment_type == "percentage" && vm.appointment_step_form_data.deposit_payment_amount_percentage == 100){
bookingpress_check_deposit_avaliable = false;
}else{
bookingpress_check_deposit_avaliable = true;
}
}
}
if(bookingpress_check_deposit_avaliable && payment_method != "on-site" && (typeof vm.appointment_step_form_data.bookingpress_package_applied_data == "undefined" || (typeof vm.appointment_step_form_data.bookingpress_package_applied_data != "undefined") && vm.appointment_step_form_data.bookingpress_package_applied_data == "") && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
if(deposit_method == "deposit_or_full_price"){
//if( true == is_cart_addon ){
//subtotal_price = total_payable_amount_without_tax;
/* vm.bookingpress_price_with_currency_symbol( total_payable_amount_without_tax, true ); */
//}
if(deposit_type == "percentage"){
bookingpress_deposit_amt = total_payable_amount_without_tax * ( parseFloat(deposit_value) / 100);
bookingpress_deposit_amt = bookingpress_deposit_amt;
/* vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt, true ); */
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
} else if(deposit_type == "fixed") {
bookingpress_deposit_amt = deposit_value;
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
}
} else if(deposit_method == "allow_customer_to_pay_full_amount") {
bookingpress_deposit_amt = subtotal_price;
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
}
let total_payable_amount_temp = bookingpress_deposit_amt;
if(typeof vm.appointment_step_form_data.tip_amount != undefined && vm.appointment_step_form_data.tip_amount> 0 && vm.appointment_step_form_data.bookingpress_deposit_total != undefined && vm.appointment_step_form_data.bookingpress_deposit_payment_method == "deposit_or_full_price"){
total_payable_amount_temp = parseFloat(vm.appointment_step_form_data.bookingpress_deposit_total) + parseFloat(vm.appointment_step_form_data.tip_amount);
}
vm.appointment_step_form_data.bookingpress_deposit_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt );
vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt, true );
vm.appointment_step_form_data.bookingpress_deposit_due_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt );
vm.appointment_step_form_data.bookingpress_deposit_due_amt_without_currency = bookingpress_deposit_due_amt;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount_temp );
if( 0 == total_payable_amount_temp ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount_temp;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount_temp, true );
}
/* 26 April 2023 changes */
if( 1 == is_cart_addon ){
if( "allow_customer_to_pay_full_amount" == deposit_method ){
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bookingpress_deposit_due_amt + tax_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt + tax_amount );
} else {
if( 1 == vm.is_tax_activated ){
/* let tax_method = vm.appointment_step_form_data.tax_price_display_options; */
/* if( "exclude_taxes" == tax_method ){ */
let bpa_deposit_due_amount_total = ( parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.bookingpress_deposit_total ) );
if( 1 == vm.is_coupon_activated){
let coupon_discount = vm.appointment_step_form_data.coupon_discount_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total - coupon_discount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.bookingpress_deposit_due_amount_total );
} else {
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bpa_deposit_due_amount_total );
}
} else {
let bpa_deposit_due_amount_total = ( parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.bookingpress_deposit_total ) );
if( 1 == vm.is_coupon_activated){
let coupon_discount = vm.appointment_step_form_data.coupon_discount_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total - coupon_discount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.bookingpress_deposit_due_amount_total );
}else{
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bpa_deposit_due_amount_total );
}
}
}
}
/* 26 April 2023 changes */
}
else
{
vm.appointment_step_form_data.bookingpress_deposit_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt );
vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency = bookingpress_deposit_amt;
vm.appointment_step_form_data.bookingpress_deposit_due_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt );
vm.appointment_step_form_data.bookingpress_deposit_due_amt_without_currency = bookingpress_deposit_due_amt;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( subtotal_price );
if( 0 == subtotal_price ){
vm.appointment_step_form_data.total_payable_amount = subtotal_price;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( subtotal_price, true );
}
if(payment_method != "on-site" && (typeof vm.appointment_step_form_data.bookingpress_package_applied_data == "undefined" || (typeof vm.appointment_step_form_data.bookingpress_package_applied_data != "undefined") && vm.appointment_step_form_data.bookingpress_package_applied_data == "")){
var bookingpress_is_recurring_appointment_active = false;
if(typeof vm.appointment_step_form_data.recurring_appointments != "undefined"){
if(vm.appointment_step_form_data.is_recurring_appointments == true || vm.appointment_step_form_data.is_recurring_appointments == "true"){
bookingpress_is_recurring_appointment_active = true;
}
}
if( 1 == is_cart_addon && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
vm.appointment_step_form_data.bookingpress_deposit_total = total_payable_amount;
vm.appointment_step_form_data.bookingpress_deposit_total_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
}
if(bookingpress_is_recurring_appointment_active && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
vm.appointment_step_form_data.bookingpress_deposit_total = subtotal_price;
vm.appointment_step_form_data.bookingpress_deposit_total_with_currency = vm.bookingpress_price_with_currency_symbol( subtotal_price );
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = 0;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol(0);
}
}
}
}
if(vm.appointment_step_form_data.selected_payment_method != " - " && vm.appointment_step_form_data.selected_payment_method != ""){
vm.appointment_step_form_data.selected_payment_method_org = vm.appointment_step_form_data.selected_payment_method;
}
var paypal_payment_method_type = "lagacy";
if(vm.appointment_step_form_data.total_payable_amount == 0 && typeof vm.appointment_step_form_data.selected_payment_method_org != "undefined" && vm.appointment_step_form_data.selected_payment_method_org == "paypal" && paypal_payment_method_type == "popup" ) {
var final_document_divnew = document.getElementById("paypal-button-container");
vm.show_paypal_popup_button = "false";
if(final_document_divnew){
document.getElementById("paypal-button-container").style.display = "none";
}
}
else if(vm.appointment_step_form_data.total_payable_amount != 0 && typeof vm.appointment_step_form_data.selected_payment_method_org != "undefined" && vm.appointment_step_form_data.selected_payment_method_org == "paypal" && paypal_payment_method_type == "popup" ) {
vm.show_paypal_popup_button = "true";
document.getElementById("paypal-button-container").style.display = "block";
vm.appointment_step_form_data.selected_payment_method = vm.appointment_step_form_data.selected_payment_method_org;
}
if( "undefined" == typeof vm.prevent_verification_on_load || false == vm.prevent_verification_on_load ){
this.bookingpress_verify_total_payment_amount();
}
},
bookingpress_verify_total_payment_amount_v2(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let bpk_payable_data = {
action: "bookingpress_pre_booking_verify_details",
booking_token: vm.appointment_step_form_data.bookingpress_uniq_id,
booking_data: JSON.stringify( vm.appointment_step_form_data ),
_wpnonce: bkp_wpnonce_pre_fetch
};
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bpk_payable_data ) )
.then( function (response) {
if( "undefined" != typeof response.data.verification_token ){
vm.appointment_step_form_data.authorized_token = response.data.verification_token;
vm.appointment_step_form_data.authorized_time = response.data.verification_time;
}
}.bind(this) )
.catch( function (error) {
});
},
bookingpress_verify_total_payment_amount(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
vm.bkp_processing_token = true;
let bpk_payable_data = {
action: "bookingpress_pre_booking_verify_details",
booking_token: vm.appointment_step_form_data.bookingpress_uniq_id,
booking_data: JSON.stringify( vm.appointment_step_form_data ),
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bpk_payable_data ) )
.then( function (response) {
if( "undefined" != typeof response.data.verification_token ){
vm.appointment_step_form_data.authorized_token = response.data.verification_token;
vm.appointment_step_form_data.authorized_time = response.data.verification_time;
vm.bkp_processing_token = false;
}
if( vm.bkp_process_booking == true ){
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
});
},
bookingpress_recalculate_payable_amount(){
return false;
const vm = this;
var bookingpress_recalculate_data = {};
bookingpress_recalculate_data.action = "bookingpress_recalculate_appointment_data";
bookingpress_recalculate_data.appointment_details = JSON.stringify( vm.appointment_step_form_data );
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_recalculate_data._wpnonce = bkp_wpnonce_pre_fetch;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
bookingpress_recalculate_data.client_timezone_offset = vm.bookingpress_timezone_offset;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
bookingpress_recalculate_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_recalculate_data ) )
.then( function (response) {
vm.appointment_step_form_data = response.data.appointment_data
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error)
});
},
bookingpress_apply_coupon_code(final_call = false){
const vm = this;
vm.coupon_apply_loader = "1";
var bookingpress_apply_coupon_data = {};
bookingpress_apply_coupon_data.action = "bookingpress_apply_coupon_code";
bookingpress_apply_coupon_data.appointment_details = JSON.stringify( vm.appointment_step_form_data );
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_apply_coupon_data._wpnonce = bkp_wpnonce_pre_fetch;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_apply_coupon_data ) )
.then( function (response) {
vm.coupon_apply_loader = "0";
vm.coupon_applied_status = response.data.variant;
if(response.data.variant == "error"){
vm.coupon_code_msg = response.data.msg;
vm.appointment_step_form_data.coupon_discount_amount = 0;
/* for the coupon code error display */
if( document.querySelector(".bpa-bs__coupon-validation.--is-error") != null ){
document.querySelector(".bpa-bs__coupon-validation.--is-error").style.display = "flex";
}
}else{
vm.coupon_code_msg = response.data.msg;
vm.coupon_discounted_amount = "-" + response.data.discounted_amount;
vm.bpa_coupon_apply_disabled = 1;
vm.appointment_step_form_data.applied_coupon_res = { "coupon_data": response.data.coupon_data };
}
vm.appointment_step_form_data.bookingpress_temp_subtotal = 0;
if(response.data.coupon_discount_amount > 0 )
{
vm.appointment_step_form_data.bookingpress_temp_subtotal = response.data.bookingpress_temp_subtotal;
vm.appointment_step_form_data.bookingpress_temp_subtotal_with_currency = response.data.bookingpress_temp_subtotal_with_currency;
vm.appointment_step_form_data.coupon_discount_amount = response.data.coupon_discount_amount;
vm.appointment_step_form_data.coupon_discount_amount_with_currecny = response.data.coupon_discount_amount_with_currecny;
if( typeof response.data.tax_amount != "undefined" ){
vm.appointment_step_form_data.tax_amount_before_coupon = vm.appointment_step_form_data.tax_amount;
vm.appointment_step_form_data.tax_amount_before_coupon_without_currency = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount = response.data.tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.total_payable_amount_with_currency = response.data.total_payable_amount_with_currency;
vm.appointment_step_form_data.calculated_tax_amount_org = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_without_currency_org = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = response.data.tax_amount;
}
if( 0 == response.data.total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = response.data.total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( response.data.total_payable_amount, true );
}
}
vm.bookingpress_get_final_step_amount();
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},
bookingpress_remove_coupon_code(final_call = false){
const vm = this;
let bookingpress_remove_coupon_data = {
action: "bookingpress_remove_coupon_code",
coupon_code: vm.appointment_step_form_data.coupon_code,
};
let bkp_wpnonce_pre = "4ac51a523d";
let bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_remove_coupon_data._wpnonce = bkp_wpnonce_pre_fetch;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_remove_coupon_data ) )
.then( function (response) {
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
vm.appointment_step_form_data.coupon_code = "";
vm.appointment_step_form_data.applied_coupon_res = "";
vm.coupon_code_msg = "";
/* vm.bookingpress_recalculate_payable_amount() */
vm.bpa_coupon_apply_disabled = 0;
vm.coupon_applied_status = "error";
vm.coupon_discounted_amount = "";
vm.appointment_step_form_data.coupon_discount_amount = 0;
vm.appointment_step_form_data.bookingpress_temp_subtotal = 0;
vm.appointment_step_form_data.bookingpress_temp_subtotal_with_currency = "";
if(typeof vm.appointment_step_form_data.tax_amount_before_coupon != "undefined") {
vm.appointment_step_form_data.tax_amount = vm.appointment_step_form_data.tax_amount_before_coupon;
vm.appointment_step_form_data.tax_amount_without_currency = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.calculated_tax_amount_org = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount_before_coupon;
}
vm.bookingpress_get_final_step_amount();
},
generateSpamCaptchav2(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: "bookingpress_generate_spam_captcha", _wpnonce:bkp_wpnonce_pre_fetch };
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.variant != "error" && (response.data.captcha_val != "" && response.data.captcha_val != undefined)){
}else{
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch!="undefined" && bkp_wpnonce_pre_fetch!=null && response.data.updated_nonce!=""){
document.getElementById("_wpnonce").value = response.data.updated_nonce;
} else {
vm.$notify({
title: response.data.title,
message: response.data.msg,
type: response.data.variant,
customClass: "error_notification"
});
}
if( "undefined" != typeof response.data.updated_ics_nonce && "" != response.data.updated_ics_nonce && null != document.getElementById( "bpa_ics_nonce" ) ){
document.getElementById( "bpa_ics_nonce" ).value = response.data.updated_ics_nonce;
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
async bookingpress_render_thankyou_content(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
await vm.generateSpamCaptchav2();
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_render_thankyou_content", bookingpress_uniq_id: vm.appointment_step_form_data.bookingpress_uniq_id, _wpnonce:bkp_wpnonce_pre_fetch };
if( "undefined" != typeof vm.load_synchronized_thankyou_page && true == vm.load_synchronized_thankyou_page ){
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "success"){
var bookingpress_appointment_id = response.data.appointment_id;
document.getElementById("bpa-thankyou-screen-div").innerHTML = response.data.thankyou_content;
document.getElementById("bpa-failed-screen-div").innerHTML = response.data.failed_content;
wp.hooks.doAction("bpa_calendar_js_init", bookingpress_appointment_id);
if( null != document.getElementById("bookingpress_google_calendar") ){
document.getElementById("bookingpress_google_calendar").setAttribute( "href", response.data.bpa_google_cal_link );
}
if( null != document.getElementById("bookingpress_yahoo_calendar") ) {
document.getElementById("bookingpress_yahoo_calendar").setAttribute( "href", response.data.bpa_yahoo_cal_link );
}
setTimeout(function(){
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
const link = document.querySelector(".bpa-front-module--atc-wrapper .bpa-front-module--atc__item a");
const button = document.querySelector(".bpa-front-module--atc-wrapper .bpa-front-module--atc__item button");
// Focus on whichever element exists (prioritizing the link if both exist)
if (link) {
link.focus();
} else if (button) {
button.focus();
}
},1000);
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
});
} else {
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "success"){
var bookingpress_appointment_id = response.data.appointment_id;
document.getElementById("bpa-thankyou-screen-div").innerHTML = response.data.thankyou_content;
document.getElementById("bpa-failed-screen-div").innerHTML = response.data.failed_content;
wp.hooks.doAction("bpa_calendar_js_init", bookingpress_appointment_id);
if( null != document.getElementById("bookingpress_google_calendar") ){
document.getElementById("bookingpress_google_calendar").setAttribute( "href", response.data.bpa_google_cal_link );
}
if( null != document.getElementById("bookingpress_yahoo_calendar") ) {
document.getElementById("bookingpress_yahoo_calendar").setAttribute( "href", response.data.bpa_yahoo_cal_link );
}
setTimeout(function(){
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
},1000);
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
});
}
},
checkBeforeBookProAppointment(){
const vm = this;
setTimeout(function(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_pro_before_book_appointment", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm.appointment_step_form_data );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "error"){
vm.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm.service_timing = [];
}
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
}else{
vm.bookingpress_remove_error_msg();
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},1500);
},
bookingpress_book_appointment(){
const vm2 = this;
vm2.isLoadBookingLoader = "1";
vm2.isBookingDisabled = true;
/* for the coupon code error hide start */
if( 1 == vm2.is_coupon_activated ){
if( document.querySelector(".bpa-bs__coupon-validation.--is-error") != null ){
document.querySelector(".bpa-bs__coupon-validation.--is-error").style.display = "none";
}
}
/* for the coupon code error hide end */
vm2.bookingpress_process_to_book_appointment();
},
async bookingpress_process_to_book_appointment(){
const vm2 = this;
if( "undefined" != typeof vm2.bkp_processing_token && true == vm2.bkp_processing_token ){
vm2.bkp_process_booking = true;
return false;
}
if(vm2.is_display_error != "1"){
/* vm2.appointment_step_form_data.service_timing = vm2.service_timing */
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_book_appointment_booking", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm2.appointment_step_form_data );
const cdata = await this.bookingpress_reload_captcha();
let updateData = JSON.parse( postData.appointment_data );
for (let bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
updateData[ bookingpress_grecaptcha_field_v3 ] = cdata;
}
postData.appointment_data = JSON.stringify( updateData );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm2.bkp_process_booking = false;
var bookingpress_redirection_mode = "external_redirection";
if(bookingpress_redirection_mode == "external_redirection"){
if(response.data.variant == "redirect"){
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
},50);
vm2.bookingpress_remove_error_msg();
}else if(response.data.variant == "redirect_url"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else if(response.data.variant == "error"){
vm2.bookingpress_set_error_msg(response.data.msg);
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else{
vm2.bookingpress_remove_error_msg();
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
setTimeout(function(){
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
},2000);
}else{
var bookingpress_uniq_id = vm2.appointment_step_form_data.bookingpress_uniq_id;
if( "undefined" != typeof wp.hooks ){
wp.hooks.doAction("bookingpress_after_book_appointment");
}
if(response.data.variant != "error"){
vm2.bookingpress_render_thankyou_content();
vm2.bookingpress_remove_error_msg();
if(response.data.variant == "redirect"){
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
},50);
vm2.bookingpress_remove_error_msg();
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed != "undefined" && response.data.is_transaction_completed == "1"){
vm2.bookingpress_remove_error_msg();
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "none";
document.getElementById("bpa-thankyou-screen-div").style.display = "block";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed != "undefined" && response.data.is_transaction_completed == "0"){
vm2.bookingpress_remove_error_msg();
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "block";
document.getElementById("bpa-thankyou-screen-div").style.display = "none";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed == "undefined"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else{
vm2.appointment_step_form_data.is_transaction_completed = 1;
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "none";
document.getElementById("bpa-thankyou-screen-div").style.display = "block";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
vm2.appointment_step_form_data.is_transaction_completed = "";
vm2.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
}
}
}.bind(this) )
.catch( function (error) {
let errorText = ("undefined" != typeof error.response.statusText ) ? error.response.statusText : error;
vm2.bookingpress_set_error_msg( error.response.status + " " + errorText);
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
});
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
},
inputFormat() {
let text = this.appointment_step_form_data.card_number.split(" ").join("");
/* this.cardVdid is not formated in 4 spaces */
this.cardVadid = text;
if (text.length > 0) {
/* regExp 4 in 4 number add an space between */
text = text.match(new RegExp(/.{1,4}/, "g")).join(" ")
/* accept only numbers */
.replace(new RegExp(/[^\d]/, "ig"), " ");
}
/* this.appointment_step_form_data.card_number is formated on 4 spaces */
this.appointment_step_form_data.card_number = text;
/* after formatd they callback cardType for choose a type of the card */
this.GetCardType(this.cardVadid);
},
/* loop for the next 9 years for expire data on credit card */
expirationDate() {
let yearNow = new Date().getFullYear();
for (let i = yearNow; i < yearNow + this.timeToExpire; i++) {
this.years.push({ year: i });
}
},
validCreditCard(value) {
let inputValidate = document.getElementById("cardNumber");
/* luhn algorithm */
let numCheck = 0,
bEven = false;
value = value.toString().replace(new RegExp(/\D/g, ""));
for (let n = value.length - 1; n >= 0; n--) {
let cDigit = value.charAt(n),
digit = parseInt(cDigit, 10);
if (bEven && (digit *= 2) > 9) digit -= 9;
numCheck += digit;
bEven = !bEven;
}
let len = value.length;
/* true: return valid number */
/* this.cardType return true if have an valid number on regx array */
if (numCheck % 10 === 0 && len === 16 && this.cardType) {
inputValidate.classList.remove("notValid");
inputValidate.classList.add("valid");
this.isBookingDisabled = false;
}
/* false: return not valid number */
else if (!(numCheck % 10 === 0) && len === 16) {
inputValidate.classList.remove("valid");
inputValidate.classList.add("notValid");
this.isBookingDisabled = true;
/* if not have number on input */
} else {
inputValidate.classList.remove("valid");
inputValidate.classList.remove("notValid");
this.isBookingDisabled = false;
}
},
/* get the name of the card name */
GetCardType(number) {
this.regx.forEach((item) => {
if (number.match(item.re) != null) {
this.cardType = item.logo;
/* cClass add a class with the name of cardName to manipulate with css */
this.cClass = item.name.toLowerCase();
} else if (!number) {
this.cardType = "";
this.cClass = "";
}
});
/* after choose a cardtype return the number for the luhn algorithm */
this.validCreditCard(number);
},
/* mouse down on btn */
mouseDw() {
this.btnClassName = "btn__active";
},
/* mouse up on btn */
mouseUp() {
this.btnClassName = "";
},
blr() {
let cr = document.getElementsByClassName("card--credit__card")[0];
if( null != cr && "undefined" != typeof cr.classList ){
cr.classList.remove("cvv-active")
}
},
async bookingpress_set_timezone(){
const vm = this;
var bookingpress_timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
let clientTimezoneOffset = new Date().getTimezoneOffset(); /** get client timezone offset in minutes from UTC 0. If client is in UTC -10:00 timezone, then this line will return 600 minutes. If timezone is in daylight saving timezone then it will return 540 minutes ( 09:00 hours ) */
let client_timezone_offset = -1 * ( clientTimezoneOffset / 60 ); /** converted minutes into hours - returns -2 */
let offset_minute = client_timezone_offset % 1; /** Retrieve remaining minutes in case if the minutes falls with decimal numbers */
let final_offset = clientTimezoneOffset; /* hours + "" + minute; /** concate the hours and minutes */
vm.bookingpress_timezone = bookingpress_timezone;
vm.bookingpress_timezone_offset = final_offset;
vm.appointment_step_form_data.selected_date = vm.get_formatted_date( new Date() );
let is_dst_time = 0;
let current_datetime = new Date();
let jan1 = new Date( current_datetime.getFullYear(), 0, 1, 0, 0, 0, 0 );
let temp = jan1.toGMTString();
let jan2 = new Date( temp.substring(0, temp.lastIndexOf(" ") - 1 ) );
let std_tz_offset = ( jan1 - jan2 ) / ( 1000 * 60 * 60 );
let june1 = new Date(current_datetime.getFullYear(), 6, 1, 0, 0, 0, 0);
temp = june1.toGMTString();
let june2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
let daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
if( std_tz_offset != daylight_time_offset ){
is_dst_time = 1;
}
vm.bookingpress_dst_timezone = is_dst_time;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var bookingpress_postdata = { action: "bookingpress_set_clients_timezone", clients_timezone: bookingpress_timezone, _wpnonce: bkp_wpnonce_pre_fetch };
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_postdata ) )
.then( function (response){
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_calculate_service_addons_price(service_id, service_name = "", service_price = "", service_price_without_currency = ""){},
bookingpress_calculate_service_addons_price_legacy(service_id, service_name = "", service_price = "", service_price_without_currency = ""){
const vm = this;
vm.appointment_step_form_data.selected_service = service_id;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if(service_name != "" && service_price != "" && service_price_without_currency != ""){
vm.appointment_step_form_data.selected_service_name = service_name;
vm.appointment_step_form_data.selected_service_price = service_price;
vm.appointment_step_form_data.service_price_without_currency = service_price_without_currency;
}
var postData = {
action: "bookingpress_calculate_service_addons_price",
selected_service_obj: vm.appointment_step_form_data,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
if(vm.appointment_step_form_data.selected_service == service_id){
vm.appointment_step_form_data.selected_service_price = response.data.selected_service_total_price;
vm.appointment_step_form_data.total_payable_amount = response.data.price_without_currency;
vm.appointment_step_form_data.total_payable_amount_with_currency = response.data.price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = response.data.price_without_currency;
if(response.data.is_tax_calculated == 1){
vm.appointment_step_form_data.tax_amount = response.data.tax_amount;
if(typeof vm.appointment_step_form_data.tax_amount_without_currency != "undefined") {
vm.appointment_step_form_data.tax_amount_without_currency = response.data.tax_amount_without_currency;
}
}
}
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_modify_front_dates_as_service(){
const vm = this;
var service_id = vm.appointment_step_form_data.selected_service;
if(vm.is_loaded_service_disabled_dates !== "undefined" && vm.is_loaded_service_disabled_dates != service_id){
vm.appointment_step_form_data.selected_date = vm.appointment_step_form_data.default_selected_date;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_change_front_calendar_dates",
service_obj: vm.appointment_step_form_data,
_wpnonce: bkp_wpnonce_pre
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
/* vm.days_off_disabled_dates = response.data.disabled_dates */
vm.appointment_step_form_data.selected_date = response.data.next_selected_date;
vm.is_loaded_service_disabled_dates = service_id;
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
}
},
bookingpress_hide_show_extra_description(bookingpress_extra_service_id){
const vm = this;
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ].service_extras;
let selected_extra = selected_service_data[ bookingpress_extra_service_id ];
if( "undefined" != typeof selected_extra ){
if( "0" == selected_extra.bookingpress_is_display_description ){
selected_extra.bookingpress_is_display_description = "1";
} else {
selected_extra.bookingpress_is_display_description = "0";
}
}
},
bookingpress_select_any_staffmember(){
const vm = this;
let step_data = vm.bookingpress_sidebar_step_data["staffmembers"];
vm.appointment_step_form_data.select_any_staffmember = "true";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
vm.appointment_step_form_data.selected_staff_member_id = 0;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = true;
if( vm.appointment_step_form_data.bpa_datetime_after_staffselection == 1 && "undefined" != typeof vm.appointment_step_form_data.bpa_after_select_datetime_available_staff ){
let time_details_arr = vm.appointment_step_form_data.bpa_after_select_datetime_available_staff;
if( 1 < time_details_arr.available_staffs.length ){
let available_staff_id = time_details_arr.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( time_details_arr ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
if( ("undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && vm.appointment_step_form_data.bpa_datetime_before_staffselection != 1) && ("undefined" != typeof time_details.happy_hour_data ) ) {
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = time_details_arr.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
} else {
if( "service" == step_data.next_tab_name && vm.bookingpress_sidebar_step_data[step_data.next_tab_name].is_display_step == 1 ){
vm.appointment_step_form_data.selected_service = "";
}
vm.appointment_step_form_data.bpa_all_available_staff_member = [];
if( vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name == "datetime" && vm.appointment_step_form_data.selected_service == "" && vm.appointment_step_form_data.select_any_staffmember && vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected == true){
vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime = 1;
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
vm.appointment_step_form_data.bpa_all_available_staff_member.push( currentValue.bookingpress_staffmember_id );
});
}
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
} else {
vm.bpasortedServices[x].is_visible = false;
}
}
}
vm.bookingpress_step_navigation(step_data.next_tab_name, step_data.next_tab_name, step_data.previous_tab_name, 0);
},
async bookingpress_select_staffmember(selected_staffmember_id, is_any_staff_option_selected = 0, event){
if(event){
event.preventDefault();
if(event.key === "Enter"){
if(event.target.classList.contains("bpa-front-staff-rat-cb__item")){
return;
}
}
}
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
var bookingpress_is_selected_staff_from_url = "0";
vm.v_calendar_disable_dates = [];
vm.v_calendar_blocked_dates = [];
vm.v_calendar_attributes_current = [];
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( selected_staffmember_id ) > -1 ){
return false;
}
if(typeof vm.appointment_step_form_data.cart_items == "undefined" && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && vm.appointment_step_form_data.bpa_datetime_before_staffselection != 1 ) ){
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
vm.appointment_step_form_data.bpa_available_staffwise_service = [];
if( vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name == "datetime" ){
vm.appointment_step_form_data.bpa_datetime_hide_capacity = true;
}
if( (vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && "datetime" == vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name && vm.appointment_step_form_data.selected_service == "") && ( "undefined" == typeof vm.is_multi_staffmember_activate && vm.is_multi_staffmember_activate != 1 ) || ( "service" == vm.bookingpress_sidebar_step_data.datetime.next_tab_name && vm.appointment_step_form_data.selected_service == "" && (vm.appointment_step_form_data.hide_staff_selection == "true" || vm.appointment_step_form_data.hide_staff_selection == true)) ){
vm.appointment_step_form_data.bpa_datetime_after_service_selection = 1;
let service_data_arr = vm.bookingpress_all_services_data;
if (vm.bookingpress_staffmembers_details.length === 1) {
selected_staffmember_id = vm.bookingpress_staffmembers_details[0].bookingpress_staffmember_id;
}
if( "any_staff" != selected_staffmember_id ){
for (let key in service_data_arr) {
let service_arr = service_data_arr[key];
if( "undefined" != typeof service_arr.assigned_staffmembers ) {
if (service_arr.assigned_staffmembers.includes(selected_staffmember_id)) {
vm.appointment_step_form_data.bpa_available_staffwise_service.push(service_arr.bookingpress_service_id);
}
}
}
}
if( "any_staff" == selected_staffmember_id && "undefined" != vm.appointment_step_form_data.happy_hours_activated && 1 == vm.appointment_step_form_data.happy_hours_activated ){
for (let key in service_data_arr) {
let service_arr = service_data_arr[key];
if ("undefined" != typeof service_arr.assigned_staffmembers) {
for (let i = 0; i < vm.appointment_step_form_data.bpa_all_available_staff_member.length; i++) {
let staffmember_id = vm.appointment_step_form_data.bpa_all_available_staff_member[i];
if (service_arr.assigned_staffmembers.includes(staffmember_id)) {
vm.appointment_step_form_data.bpa_available_staffwise_service.push(service_arr.bookingpress_service_id);
break;
}
}
}
}
}
}
let service_id = vm.appointment_step_form_data.selected_service;
let service_data = vm.bookingpress_all_services_data[ service_id ];
let use_legacy_any_staff = false;
if( selected_staffmember_id == "any_staff" && "undefined" != typeof service_data && "undefined" != typeof service_data.bookingpress_service_duration_unit && "d" == service_data.bookingpress_service_duration_unit ){
use_legacy_any_staff = true;
}
vm.appointment_step_form_data.any_staff_selected = 0;
if( true == use_legacy_any_staff ){
return await vm.bookingpress_select_staffmember_legacy( selected_staffmember_id, is_any_staff_option_selected );
} else if(selected_staffmember_id == "any_staff" ){
vm.appointment_step_form_data.any_staff_selected = 1;
if( "" != vm.appointment_step_form_data.selected_service ){
vm.isLoadServiceLoader = "0";
if( "undefined" != typeof vm.isLoadLocationLoader ){
vm.isLoadLocationLoader = "0";
}
let assigned_staffs = [];
service_data.assigned_staffmembers.forEach( function(staff_id){
assigned_staffs.push( staff_id );
});
let choose_from_url = false;
let assigned_updated_staffs = [];
if( 0 < bookingpress_is_selected_staff_from_url && 0 < assigned_staffs.length ){
let staff_id_from_url = bookingpress_is_selected_staff_from_url;
if( assigned_staffs.includes( staff_id_from_url ) ){
assigned_staffs = [staff_id_from_url];
choose_from_url = true;
}
}
if( 1 == assigned_staffs.length ){
vm.appointment_step_form_data.any_staff_selected = 0;
let selected_staffmember_id = ( true == choose_from_url ) ? assigned_staffs[0] : service_data.assigned_staffmembers[0];
/*Added for applying selected staff memebr price */
let service_staff_details = service_data.staff_member_details[ selected_staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
/*Added for applying selected staff memebr price */
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
vm.hide_capacity_text_flag = false;
} else {
vm.appointment_step_form_data.available_staffs = assigned_staffs;
vm.hide_capacity_text_flag = true;
}
} else {
if( "service" == vm.bookingpress_current_tab ){
let f = 0;
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let first_service_category = "";
let assigned_staffs = [];
for (let x in vm.bpasortedServices) {
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && false == elm.is_disabled ){
elm.assigned_staffmembers.forEach( function(staff_id){
assigned_staffs.push( staff_id );
});
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if ("" == first_service_category) {
first_service_category = elm.bookingpress_category_id;
}
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
vm.appointment_step_form_data.available_staffs = assigned_staffs;
vm.hide_capacity_text_flag = true;
let hidden_category_for_staff = [];
for (let ci in vm.service_categories) {
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
/* if (category_staff.indexOf(response.data.staffmember_id.toString()) < 0) {
hidden_category_for_staff.push(category_id);
} */
}
if ("" != first_service_category) {
for (let c in vm.bookingpress_all_categories) {
vm.bookingpress_all_categories[c].is_visible = true;
let current_category = vm.bookingpress_all_categories[c];
if (current_category.category_id == first_service_category) {
vm.bpa_select_category(current_category.category_id, current_category.category_name);
} else {
if (hidden_category_for_staff.indexOf(current_category.category_id.toString()) > -1) {
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
vm.isLoadServiceLoader = "0";
if( "undefined" != typeof vm.isLoadLocationLoader ){
vm.isLoadLocationLoader = "0";
}
}
vm.hide_capacity_text_flag = false;
}
} else {
vm.hide_capacity_text_flag = false;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.available_staffs = [];
if( vm.is_staff_first_step == 1 ){
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let visible_service_ids = [];
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( selected_staffmember_id ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
visible_service_ids.push( elm.bookingpress_service_id );
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( selected_staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
let current_category = vm.bookingpress_all_categories[c];
vm.bookingpress_all_categories[c].is_visible = true;
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
} else {
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
if( vm.is_bring_anyone_with_you_activated == 1 ){
let service_min_capacity = selected_service_data.staff_member_details[ selected_staffmember_id].bookingpress_min_service_capacity;
if( service_min_capacity != "undefined" && vm.appointment_step_form_data.bookingpress_selected_bring_members < service_min_capacity ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members );
}
}
let service_staff_details = selected_service_data.staff_member_details[ selected_staffmember_id ];
let consider_staff_price = true;
if( ( typeof vm.appointment_step_form_data.bpa_datetime_after_staffselection !== "undefined" && vm.appointment_step_form_data.bpa_datetime_after_staffselection == 1 ) && ( typeof vm.appointment_step_form_data.is_happy_hours_applied !== "undefined" && vm.appointment_step_form_data.is_happy_hours_applied == 1 ) ) {
consider_staff_price = false;
}
if ( true == consider_staff_price ) {
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
}
}
let step_data = "staffmembers";
let f = 0;
let is_club_staff = "0";
if(typeof vm.appointment_step_form_data.is_club_staff != "undefined" && vm.appointment_step_form_data.is_club_staff == "1"){
is_club_staff = "1";
}
if( "staffmembers" == vm.bookingpress_current_tab ){
if(is_club_staff == "0"){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1);
}
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id );
}
}
}
vm.bpa_select_category( "" );
},
async bookingpress_select_staffmember_legacy(selected_staffmember_id, is_any_staff_option_selected = 0){
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
var bookingpress_is_selected_staff_from_url = "0";
vm.v_calendar_disable_dates = [];
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( selected_staffmember_id ) > -1 ){
return false;
}
if(typeof vm.appointment_step_form_data.cart_items == "undefined"){
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
if(selected_staffmember_id == "any_staff" ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_get_any_staffmember_id",
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.bookingpress_repeat_custom_form_fields( vm.appointment_step_form_data.selected_service );
}
} else {
postData.selected_bring_members = 1;
}
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
if( 1 > response.data.staffmember_id ){
for( let s in vm.bookingpress_staffmembers_details ){
let staffmember_details = vm.bookingpress_staffmembers_details[s];
let staffmember_selected_services = staffmember_details.assigned_service_details.includes(vm.appointment_step_form_data.selected_service);
if( staffmember_selected_services ){
let staffmember_id = staffmember_details.bookingpress_staffmember_id;
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( staffmember_id ) < 0 ){
response.data.staffmember_id = staffmember_id;
}
}
}
}
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let set_service_visibility = false;
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
} else {
if( "staffmembers" == vm.bookingpress_current_tab && "" != vm.appointment_step_form_data.selected_staff_member_id ){
set_service_visibility = true;
}
}
if( "service" == vm.bookingpress_current_tab || true == set_service_visibility ){
let f = 0;
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( response.data.staffmember_id.toString() ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
if( "" != first_service_category ){
for( let c of vm.service_categories ){
if( c.bookingpress_category_id == first_service_category ){
vm.bpa_select_category( c.bookingpress_category_id, c.bookingpress_category_name );
break;
}
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( response.data.staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
vm.bookingpress_all_categories[c].is_visible = true;
let current_category = vm.bookingpress_all_categories[c];
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
vm.isLoadServiceLoader = "0";
/* vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1); */
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( response.data.staffmember_id );
}
}
vm.bpa_select_category( "" );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
}else{
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
if( vm.is_staff_first_step == 1 ){
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let visible_service_ids = [];
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( selected_staffmember_id ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
visible_service_ids.push( elm.bookingpress_service_id );
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( selected_staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
let current_category = vm.bookingpress_all_categories[c];
vm.bookingpress_all_categories[c].is_visible = true;
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
} else {
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ selected_staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
}
let step_data = "staffmembers";
let f = 0;
if( "staffmembers" == vm.bookingpress_current_tab ){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1);
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id );
}
}
}
vm.bpa_select_category( "" );
},
bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id ){
const vm = this;
/** Enable Bring Any one if the service has only 1 capacity but the selected staff has more that 1 capacity */
let is_bring_anone_displayed = document.querySelectorAll(".--bpa-sao-guest-module");
if( "" == selected_staffmember_id || 1 > selected_staffmember_id ){
return false;
}
let selected_service = vm.appointment_step_form_data.selected_service;
if( "" == selected_service ){
return false;
}
let staffmember_details = vm.bookingpress_staffmembers_details;
for( let s in staffmember_details ){
let current_staffmember = staffmember_details[s];
let staffmember_id = current_staffmember.bookingpress_staffmember_id;
if( staffmember_id == selected_staffmember_id ){
let assigned_service_price_list = current_staffmember.assigned_service_price_details;
let max_capacity = assigned_service_price_list[ selected_service ].assigned_service_capacity;
let min_capacity = assigned_service_price_list[ selected_service ].assigned_service_min_capacity;
if( "undefined" == typeof vm.bookingpress_bring_anyone_with_you_details[selected_service] ){
vm.bookingpress_bring_anyone_with_you_details[selected_service] = {
"bookingpress_service_id": selected_service,
"bookingpress_service_max_capacity": parseInt(max_capacity),
"bookingpress_service_min_capacity": parseInt(min_capacity),
};
} else {
vm.bookingpress_bring_anyone_with_you_details[selected_service].bookingpress_service_max_capacity = parseInt(max_capacity);
vm.bookingpress_bring_anyone_with_you_details[selected_service].bookingpress_service_min_capacity = parseInt(min_capacity);
}
vm.appointment_step_form_data.service_max_capacity = parseInt(max_capacity);
vm.appointment_step_form_data.service_min_capacity = parseInt(min_capacity);
}
}
},
bookingpress_is_in_viewport(element) {
const rect = element.getBoundingClientRect();
return (
rect.bottom > 0 &&
rect.right > 0 &&
rect.top < (window.innerHeight || document.documentElement.clientHeight) &&
rect.left < (window.innerWidth || document.documentElement.clientWidth)
);
},
bookingpress_close_extra_drawer(){
const vm = this;
if( "undefined" != typeof vm.bpa_show_extras_drawer && false == vm.bpa_show_extras_drawer ){
return;
}
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_focus = document.getElementById("bap-service-" + selected_service);
const target = document.querySelector(".bpa-front-dc--service-body");
if(selected_service_focus && this.bookingpress_is_in_viewport(target)){
selected_service_focus.focus();
}
vm.appointment_step_form_data.selected_service = "";
vm.appointment_step_form_data.selected_service_name = "";
vm.appointment_step_form_data.selected_service_price = "";
vm.appointment_step_form_data.service_price_without_currency = "";
if( "" != selected_service ){
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_extras = ( "undefined" != typeof selected_service_data.service_extras ) ? selected_service_data.service_extras : false;
if( false != service_extras ){
for( let se in service_extras ){
vm.appointment_step_form_data.bookingpress_selected_extra_details[ se ].bookingpress_is_selected = false;
vm.appointment_step_form_data.bookingpress_selected_extra_details[ se ].bookingpress_selected_qty = 1;
}
}
}
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
/** reset bring anyone details */
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = 1;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
}
},
bookingpress_get_service_capacity(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
const vm = this;
var postData = {
action: "bookingpress_get_service_max_capacity",
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
vm.appointment_step_form_data.service_max_capacity = response.data.max_capacity
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_service_advance_see_less(){
const vm = this;
vm.service_advance_see_less = "1";
vm.bookingpress_close_extra_drawer();
},
bookingpress_load_more_extras(){
const vm = this;
if(vm.is_load_more_extras == "0"){
vm.is_load_more_extras = "1";
}else{
vm.is_load_more_extras = "0";
}
},
bpa_focus_select_elm( $el ){
const vm = this;
setTimeout(function(){
let elm = $el.querySelector(".el-input.is-focus");// .el-input.is-focus");
let parentNode = vm.BPAGetParents( elm, ".bpa-bd-fields--sel-container" );
if( parentNode.length > 0 ){
let firstParent = parentNode[0];
firstParent.classList.add( "bpa-sel--focus" );
}
},100);
},
bpa_remove_focus_select_elm($el){
let elm = document.querySelector( ".bpa-sel--focus" );
},
bookingpress_selectpicker_set_position( flag ){
const vm = this;
if( true == flag ){
let is_admin_bar_visible = ( document.getElementById("wpadminbar") != null && document.getElementById("wpadminbar").getBoundingClientRect().width > 0 && document.getElementById("wpadminbar").getBoundingClientRect().height > 0 ) ? true : false;
if( document.querySelector(".bpa-focused-select") != null && is_admin_bar_visible ) {
setTimeout(function(){
let top_pos = document.querySelector(".bpa-focused-select").style.top;
top_pos = parseInt( top_pos.replace("px","") );
document.querySelector(".bpa-focused-select").style.top = ( top_pos + 32 ) + "px";
},10);
}
if( document.querySelector(".bpa-focused-select") != null ) {
setTimeout(function(){
const allselectcontainer = document.querySelectorAll(".bpa-bd-fields--sel-container");
if(typeof allselectcontainer != "undefined"){
var has_added = false;
allselectcontainer.forEach((selcontItem) => {
var questyle = selcontItem.querySelector(".bpa-focused-select");
if(typeof questyle != "undefined"){
const display = window.getComputedStyle(questyle).display;
if(display != "none" && !has_added){
selcontItem.classList.add( "bpa-sel--focus" );
has_added = true;
}
}
});
}
},100);
}
}
if( false == flag ){
if( document.querySelector(".bpa-bd-fields--sel-container") != null ) {
let elm = document.querySelector(".bpa-bd-fields--sel-container")
const range_inputs = document.querySelectorAll(".bpa-bd-fields--sel-container");
for (const range_input of range_inputs) {
range_input.classList.remove( "bpa-sel--focus" );
}
}
}
},
bookingpress_set_datepicker_position( event ){
let popperElm = document.querySelector(".bpa-custom-datepicker");
if( popperElm != null ){
let is_admin_bar_visible = ( document.getElementById("wpadminbar") != null && document.getElementById("wpadminbar").getBoundingClientRect().width > 0 && document.getElementById("wpadminbar").getBoundingClientRect().height > 0 ) ? true : false;
if( is_admin_bar_visible ){
setTimeout(function(){
let top_pos = popperElm.style.top;
top_pos = parseInt( top_pos.replace("px","") );
popperElm.style.top = ( top_pos + 32 ) + "px";
},10);
}
}
},
bookingpress_get_service_categories_from_staffmembers(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_get_service_cat_details",
staffmember_id: vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
vm.service_categories = response.data.service_categories_data;
var bookingpress_first_cat_id = response.data.first_cat_id;
vm.services_data = [];
setTimeout(function(){
vm.selectStepCategory(bookingpress_first_cat_id);
}, 500);
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_update_staffmember_data( number_of_guests, selected_service_id = "" ){
const vm = this;
vm.bookingpress_disabled_staffmember = [];
let selected_service = vm.appointment_step_form_data.selected_service;
if( selected_service == "" || ( (selected_service_id != "") && (selected_service != selected_service_id) ) ){
selected_service = selected_service_id;
}
let guests_count = number_of_guests - 1;
let staffmember_details = vm.bookingpress_staffmembers_details;
for( let s in staffmember_details ){
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = true;
let current_staffmember = staffmember_details[s];
let staffmember_id = current_staffmember.bookingpress_staffmember_id;
let assigned_service_price_list = current_staffmember.assigned_service_price_details;
if( "undefined" != typeof assigned_service_price_list[ selected_service ] ){
let max_capacity = assigned_service_price_list[ selected_service ].assigned_service_capacity;
if( max_capacity < (guests_count + 1) ){
if( "undefined" == typeof vm.bookingpress_disabled_staffmember ){
vm.bookingpress_disabled_staffmember = [];
}
vm.bookingpress_disabled_staffmember.push( staffmember_id );
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = false;
if( vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == staffmember_id ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
}
}
if( vm.is_bring_anyone_with_you_activated == "1" ){
let min_capacity = assigned_service_price_list[ selected_service ].assigned_service_min_capacity;
if( min_capacity > (guests_count + 1) ){
if( "undefined" == typeof vm.bookingpress_disabled_staffmember ){
vm.bookingpress_disabled_staffmember = [];
}
vm.bookingpress_disabled_staffmember.push( staffmember_id );
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = false;
if( vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == staffmember_id ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
}
}
}
}
}
},
bookingpress_close_extra_drawer_on_mouseup(){
const vm = this;
window.addEventListener( "mouseup", function(e){
if( null != document.querySelector(".bpa-front-dc--service-body") ){
let div = document.querySelector(".bpa-front-dc--service-body");
let scrollbarWidth = div.offsetWidth - div.clientWidth;
let scrollbarHeight = div.offsetHeight - div.clientHeight;
let isVerticalScrollbarClick = (e.offsetX >= div.clientWidth && e.offsetX <= div.offsetWidth );
let isHorizontalScrollbarClick = e.offsetY >= div.clientHeight;
if (scrollbarWidth > 0 && isVerticalScrollbarClick) {
return;
}
}
let elem = e.target;
let htmlWidth = document.querySelector("html").offsetWidth;
if( htmlWidth < e.clientX ){
return;
}
let parentNode = vm.BPAGetParents( elem, ".bpa-fm--service__advance-options" );
let parentNodeBawy = vm.BPAGetParents( elem, ".bpa-fm--service__advance-options-popper" );
let is_mob = false;
let bpa_parent_container = document.querySelector( ".bpa-frontend-main-container" );
let is_visible = true;
if( null != bpa_parent_container && 1 > bpa_parent_container.offsetWidth ){
is_visible = false;
}
if( parentNode.length < 1 && parentNodeBawy.length < 1 && "true" == vm.bookingpress_open_extras_drawer && "service" == vm.bookingpress_current_tab && "true" == vm.bookingpress_open_extras_drawer && true == is_visible ){
let allow_close_drawer = wp.hooks.applyFilters( "bpa_allow_close_draer", true, is_visible, elem, parentNode, parentNodeBawy );
if( true == allow_close_drawer ){
let mob_extra = document.querySelector( ".bpa-fm--service__advance-options.--bpa-is-mob" );
if( mob_extra == null ){
vm.bookingpress_close_extra_drawer();
} else {
let mob_pos = mob_extra.getBoundingClientRect();
if( mob_pos.width == 0 && mob_pos.height == 0 ){
vm.bookingpress_close_extra_drawer();
}
}
}
}
});
},
BPAGetParents( elem, selector ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
if (selector) {
if (elem.matches(selector)) {
parents.push(elem);
}
continue;
}
parents.push(elem);
}
return parents;
},
bookingpress_get_formatted_datetime(event,field_meta_key,is_time_enabled) {
if(event != null){
if(is_time_enabled == true) {
this.appointment_step_form_data["form_fields"][field_meta_key] = this.get_formatted_datetime(event);
} else {
this.appointment_step_form_data["form_fields"][field_meta_key] = this.get_formatted_date(event);
}
}
},
openExtraServicePopover() {
// Access the popover methods directly
const vm = this;
this.$nextTick( () =>{
vm.$refs.extra_service_desc_popover.doToggle();
});
},
openRecurringSessionPopover() {
const vm = this;
this.$nextTick( () =>{
// Access the popover methods directly
vm.$refs.recurring_session_desc_popover.doToggle();
});
},
BPACustomerFileUpload(response, file, fileList){
const vm = this;
let ref = response.reference;
if( response.error == 1 ){
vm.$refs[ ref ][0].$options.parent.validateMessage = response.msg;
vm.$refs[ ref ][0].$options.parent.validateState = "error";
vm.$refs[ ref ][0].clearFiles();
} else {
vm.$refs[ref][0].$options.parent.validateMessage = "";
vm.$refs[ref][0].$options.parent.validateState = "";
const uploadUrl = response.upload_url;
const fileRef = response.file_ref;
if (Array.isArray(vm.appointment_step_form_data[fileRef])) {
vm.appointment_step_form_data[fileRef].push(uploadUrl);
} else if (vm.appointment_step_form_data[fileRef]) {
vm.appointment_step_form_data[fileRef] = [
vm.appointment_step_form_data[fileRef],
uploadUrl,
];
} else {
vm.appointment_step_form_data[fileRef] = [uploadUrl];
}
vm.appointment_step_form_data.form_fields[fileRef] = vm.appointment_step_form_data[fileRef];
}
},
BPACustomerFileUploadError(err, file, fileList){
/** Need to handle error but currently no error is reaching to this function */
if( file.status == "fail" ){
console.log( err );
}
},
BPACustomerhandleFileExceed(files, fileList ) {
const vm = this;
vm.bookingpress_set_error_msg( vm.appointment_step_form_data.bpa_fileupload_max_limit_reach_msg );
},
BPACustomerFileUploadRemove( file, fileList ){
const vm = this;
let response = file.response;
vm.appointment_step_form_data[ response.file_ref ] = "";
vm.appointment_step_form_data.form_fields[ response.file_ref ] = "";
let postData = {
action:"bpa_remove_form_file",
_wpnonce: "4ac51a523d",
uploaded_file_name: response.upload_file_name
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function( response ){
}).catch( function( error ){
});
},
BPAConvertBytesToMB( bytes){
return (bytes / (1024 * 1024)).toFixed(0);
},
bookingpress_reset_selected_timeslot_data(){
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && "1" == vm.appointment_step_form_data.bpa_datetime_after_service_selection ){
return;
}
vm.appointment_step_form_data.selected_start_time = "";
},
bookingpress_reset_custom_duration_data() {
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
;
},
bookingpress_step_navigator( current_tab, next_tab, previous_tab ){
let vm = this;
let is_strict_validate = false;
let current_selected_tab = vm.bookingpress_current_tab;
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
let sidebar_keys = Object.keys( sidebar_step_data );
let current_tab_pos = sidebar_keys.indexOf( current_selected_tab ); /** Current Tab Position */
let selected_tab_pos = sidebar_keys.indexOf( current_tab ); /** Clicked Tab Position */
if( selected_tab_pos < current_tab_pos ){
vm.bookingpress_step_navigation( current_tab, next_tab, previous_tab, 0 );
} else {
vm.bookingpress_step_navigation( current_tab, next_tab, previous_tab );
}
},
bookingpress_change_service_extras_event( is_checked ){
const vm = this;
},
bookingpress_change_service_extras_qty( is_checked ){
const vm = this;
vm.$forceUpdate();
},
bookingpress_set_extra_service_error_msg(error_msg){
const vm = this;
vm.is_display_extra_service_error = 1;
vm.extra_service_error_msg = error_msg;
setTimeout(function(){
vm.bookingpress_remove_extra_service_error_msg();
},6000);
},
bookingpress_remove_extra_service_error_msg(){
const vm = this;
vm.is_display_extra_service_error = "0";
vm.extra_service_error_msg = "";
},
get_formatted_date(iso_date){
if( true == /(\d{2})\T/.test( iso_date ) ){
let date_time_arr = iso_date.split("T");
return date_time_arr[0];
}
var __date = new Date(iso_date);
var __year = __date.getFullYear();
var __month = __date.getMonth()+1;
var __day = __date.getDate();
if (__day < 10) {
__day = "0" + __day;
}
if (__month < 10) {
__month = "0" + __month;
}
var formatted_date = __year+"-"+__month+"-"+__day;
return formatted_date;
},
get_formatted_datetime(iso_date) {
var __date = new Date(iso_date);
var hour = __date.getHours();
var minute = __date.getMinutes();
var second = __date.getSeconds();
if (minute < 10) {
minute = "0" + minute;
}
if (second < 10) {
second = "0" + second;
}
var formatted_time = hour + ":" + minute + ":" + second;
var __year = __date.getFullYear();
var __month = __date.getMonth()+1;
var __day = __date.getDate();
if (__day < 10) {
__day = "0" + __day;
}
if (__month < 10) {
__month = "0" + __month;
}
var formatted_date = __year+"-"+__month+"-"+__day;
return formatted_date+" "+formatted_time;
},
bookingpress_set_error_msg(error_msg){
const vm = this;
let container = vm.$el;
let pos = 0;
if( null != container ){
pos = container.getBoundingClientRect().top + window.scrollY;
}
vm.is_display_error = "1";
vm.is_error_msg = error_msg;
const myVar = Error().stack;
let allow_scroll = true;
if( /mounted/.test( myVar ) ){
allow_scroll = false;
}
if( allow_scroll ){
window.scrollTo({
top: pos,
behavior: "smooth",
});
}
setTimeout(function(){
vm.bookingpress_remove_error_msg();
},6000);
},
bookingpress_remove_error_msg(){
const vm = this;
vm.is_display_error = "0";
vm.is_error_msg = "";
},
checkBeforeBookAppointment(){
const vm = this;
setTimeout(function(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_before_book_appointment",_wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm.appointment_step_form_data );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "error"){
vm.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm.service_timing = [];
}
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
}else{
vm.bookingpress_remove_error_msg();
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},1500);
},
book_appointment(){
const vm2 = this;
vm2.isLoadBookingLoader = "1";
vm2.isBookingDisabled = true;
vm2.bookingpress_process_to_book_appointment();
},
async bookingpress_process_to_book_appointment(){
const vm2 = this;
if(vm2.is_display_error != "1"){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_front_save_appointment_booking", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm2.appointment_step_form_data );
const cdata = await this.bookingpress_reload_captcha();
let updateData = JSON.parse( postData.appointment_data );
for (let bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
updateData[ bookingpress_grecaptcha_field_v3 ] = cdata;
}
postData.appointment_data = JSON.stringify( updateData );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
if(response.data.variant == "redirect"){
vm2.bookingpress_remove_error_msg();
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
},50);
}else if(response.data.variant == "redirect_url"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else if(response.data.variant == "error"){
vm2.bookingpress_set_error_msg(response.data.msg);
}else{
vm2.bookingpress_remove_error_msg();
}
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
}.bind(this) )
.catch( function (error) {
vm2.bookingpress_set_error_msg(error);
});
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
},
bpa_check_browser(){
const vm = this;
let userAgent = navigator.userAgent;
let browserName;
if(userAgent.match(/edg/i)){
browserName = "edge";
} else if(userAgent.match(/opr\//i)){
browserName = "opera";
} else if(userAgent.match(/chrome|chromium|crios/i)){
browserName = "chrome";
} else if(userAgent.match(/firefox|fxios/i)) {
browserName = "firefox";
} else if(userAgent.match(/safari/i)) {
browserName = "safari";
} else {
browserName="Unknown";
}
vm.browser_details = browserName;
},
bpa_check_browser_version(){
const vm = this;
var objappVersion = navigator.appVersion;
var browserAgent = navigator.userAgent;
var browserName = navigator.appName;
var browserVersion = "" + parseFloat(navigator.appVersion);
var browserMajorVersion = parseInt(navigator.appVersion, 10);
var Offset, OffsetVersion, ix;
/* For Chrome */
if ((OffsetVersion = browserAgent.indexOf("Chrome")) != -1) {
browserName = "Chrome";
browserVersion = browserAgent.substring(OffsetVersion + 7);
}
/* For Microsoft internet explorer */
else if ((OffsetVersion = browserAgent.indexOf("MSIE")) != -1) {
browserName = "Microsoft Internet Explorer";
browserVersion = browserAgent.substring(OffsetVersion + 5);
}
/* For Firefox */
else if ((OffsetVersion = browserAgent.indexOf("Firefox")) != -1) {
browserName = "Firefox";
}
/* For Safari */
else if ((OffsetVersion = browserAgent.indexOf("Safari")) != -1) {
browserName = "Safari";
browserVersion = browserAgent.substring(OffsetVersion + 7);
if ((OffsetVersion = browserAgent.indexOf("Version")) != -1)
browserVersion = browserAgent.substring(OffsetVersion + 8);
}
/* For other browser "name/version" is at the end of userAgent */
else if ((Offset = browserAgent.lastIndexOf(" ") + 1) < (OffsetVersion = browserAgent.lastIndexOf("/"))) {
browserName = browserAgent.substring(Offset, OffsetVersion);
browserVersion = browserAgent.substring(OffsetVersion + 1);
if (browserName.toLowerCase() == browserName.toUpperCase()) {
browserName = navigator.appName;
}
}
/* Trimming the fullVersion string at */
/* semicolon/space if present */
if ((ix = browserVersion.indexOf(";")) != -1)
browserVersion = browserVersion.substring(0, ix);
if ((ix = browserVersion.indexOf(" ")) != -1)
browserVersion = browserVersion.substring(0, ix);
browserMajorVersion = parseInt("" + browserVersion, 10);
if (isNaN(browserMajorVersion)) {
browserVersion = "" + parseFloat(navigator.appVersion);
browserMajorVersion = parseInt(navigator.appVersion, 10);
}
vm.browser_version = browserMajorVersion;
},
focusFirstService(){
if(app.current_screen_size == "desktop"){
this.$nextTick( () =>{
const focusableItems = document.querySelectorAll(".bpa-front-module--service .bpa-fm--si--col:not([style*='display: none']) .bpa-front-si-card");
if( focusableItems.length ){
focusableItems[0].focus();
}
});
}
},
focusFirstDate(){
var firstDate = document.querySelectorAll(".vc-day.in-month [aria-disabled=false]");
if(firstDate){
if(firstDate.length > 1){
firstDate[1].focus();
}else if(firstDate.length > 0){
firstDate[0].focus();
}else if(firstDate.length == 0){
firstDate = document.querySelectorAll(".vc-day.in-month .vc-day-content:not(.is-disabled)");
if(firstDate.length > 1){
firstDate[1].focus();
}else if(firstDate.length > 0){
firstDate[0].focus();
}
}
}
},
focusFirstTimeSlot(){
this.$nextTick( () =>{
if( this.$refs.timeSlotItems.length ){
this.$refs.timeSlotItems[0].focus();
}
});
},
focustFirstCategory(){
this.$nextTick(() => {
if (this.$refs.categoryItem.length) {
this.$refs.categoryItem[0].focus();
}
});
},
bpa_handle_service_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-module--service .bpa-fm--si--col:not([style*='display: none']) .bpa-front-si-card"); // Update with your actual class
let currentIndex = -1;
let itemsPerRow = 2;
if(window.outerWidth >= 1200){
itemsPerRow = 2;
}else if(window.outerWidth < 950){
itemsPerRow = 1;
}
const active_container = document.querySelector(".bpa-front-module--service").offsetWidth;
if(active_container && active_container.offsetWidth < 800){
itemsPerRow = 1;
}
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
// bpa-fm--service__advance-options __bpa-is-active
setTimeout(() => {
let extraServiceFocus = document.querySelector(".bpa-fm--service__advance-options.__bpa-is-active .--bpa-sao-service-extras .el-checkbox__inner");
let recurringFocus = document.querySelector(".bpa-fm--service__advance-options.__bpa-is-active .--bpa-sao-guest-module .el-input__inner");
if(extraServiceFocus !== null){
extraServiceFocus.focus();
}else if (recurringFocus !== null){
recurringFocus.focus();
}
}, 100);
} else if (event.key === "ArrowRight") {
event.preventDefault();
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if(event.key === "ArrowDown"){
event.preventDefault();
let nextIndex = (currentIndex + itemsPerRow) % focusableItems.length;
focusableItems[nextIndex].focus();
}else if (event.key === "ArrowLeft" ) {
event.preventDefault();
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if(event.key === "ArrowUp"){
event.preventDefault();
let prevIndex = (currentIndex - itemsPerRow + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
this.bpaMoveFocusToPreviousElement( this.$refs.servicesGroup );
}
},
bpa_handle_timeslot_keypress(index, event) {
const groups = document.querySelectorAll(".bpa-front--dt__ts-body--row"); // row/groups
const focusableItems = document.querySelectorAll(".bpa-front--dt__ts-body .bpa-front--dt__ts-body--item"); // Items
let currentIndex = -1;
let currentGroupIndex = -1;
let itemIndexInGroup = -1;
// Find the currently focused item and its group
focusableItems.forEach((item, idx) => {
if (item === document.activeElement) {
currentIndex = idx;
// Find which group this item belongs to
for (let i = 0; i < groups.length; i++) {
if (groups[i].contains(item)) {
currentGroupIndex = i;
// Find position within the group
const groupItems = groups[i].querySelectorAll(".bpa-front--dt__ts-body--item");
for (let j = 0; j < groupItems.length; j++) {
if (groupItems[j] === item) {
itemIndexInGroup = j;
break;
}
}
break;
}
}
}
});
if (currentIndex === -1) return; // No focusable item is selected
const itemsPerRow = 2; // Based on your screenshot showing 2 time slots per row
if (event.key === "ArrowRight") {
event.preventDefault();
// If at the end of the group, move to the first item of the next group
if (itemIndexInGroup === groups[currentGroupIndex].querySelectorAll(".bpa-front--dt__ts-body--item").length - 1) {
if (currentGroupIndex < groups.length - 1) {
// Focus on the first item of the next group
const nextGroupItems = groups[currentGroupIndex + 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (nextGroupItems.length > 0) {
nextGroupItems[0].focus();
}
}
} else {
// Move to the next item in the same group
let nextIndex = currentIndex + 1;
if (nextIndex < focusableItems.length) {
focusableItems[nextIndex].focus();
}
}
} else if (event.key === "ArrowDown") {
event.preventDefault();
const itemsInCurrentGroup = groups[currentGroupIndex].querySelectorAll(".bpa-front--dt__ts-body--item").length;
const rowsInCurrentGroup = Math.ceil(itemsInCurrentGroup / itemsPerRow);
const currentRowInGroup = Math.floor(itemIndexInGroup / itemsPerRow);
if (currentRowInGroup >= rowsInCurrentGroup - 1 || currentIndex + itemsPerRow >= focusableItems.length) {
if (currentGroupIndex < groups.length - 1) {
// Focus on the first item of the next group
let nextIndex = currentIndex + itemsPerRow;
const nextGroupItems = groups[currentGroupIndex + 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if(itemsInCurrentGroup % 2 == 0 && nextIndex < focusableItems.length){
focusableItems[nextIndex].focus();
}else if (nextGroupItems.length > 0) {
nextGroupItems[0].focus();
}
}
} else {
// Stay in the same group, move down a row
let nextIndex = currentIndex + itemsPerRow;
if(currentIndex == itemsInCurrentGroup - 2 && itemsInCurrentGroup % 2 == 1 && (nextIndex + 1) < focusableItems.length){
focusableItems[nextIndex + 1].focus();
}else if(nextIndex < focusableItems.length){
focusableItems[nextIndex].focus();
}
// if(nextIndex < focusableItems.length)
}
} else if (event.key === "ArrowLeft") {
event.preventDefault();
// If at the beginning of the group, move to the last item of the previous group
if (itemIndexInGroup === 0) {
if (currentGroupIndex > 0) {
// Focus on the last item of the previous group
const prevGroupItems = groups[currentGroupIndex - 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (prevGroupItems.length > 0) {
prevGroupItems[prevGroupItems.length - 1].focus();
}
}
} else {
// Move to the previous item in the same group
let prevIndex = currentIndex - 1;
if (prevIndex >= 0) {
focusableItems[prevIndex].focus();
}
}
} else if (event.key === "ArrowUp") {
event.preventDefault();
const currentRowInGroup = Math.floor(itemIndexInGroup / itemsPerRow);
if (currentRowInGroup === 0) {
if (currentGroupIndex > 0) {
// Focus on the last item of the previous group
const prevGroupItems = groups[currentGroupIndex - 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (prevGroupItems.length > 0) {
let howMuchMinus = 1;
if(itemIndexInGroup == 0 && prevGroupItems.length % 2 == 0){
howMuchMinus = 2;
}else if(itemIndexInGroup == 1 && prevGroupItems.length % 2 == 0){
howMuchMinus = 1;
}else{
if(itemIndexInGroup == 1 && prevGroupItems.length > 2){
howMuchMinus = 2;
}
}
prevGroupItems[prevGroupItems.length - howMuchMinus].focus();
}
}
} else {
// Stay in the same group, move up a row
const prevIndex = currentIndex - itemsPerRow;
if (prevIndex >= 0) {
focusableItems[prevIndex].focus();
}
}
} else if ("Tab" == event.key && event.shiftKey && 0 === currentIndex) {
event.preventDefault();
this.bpaMoveFocusToPreviousElement(this.$refs.timeSlotItemsGroup);
}
},
bpa_handle_category_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-cat-items-wrapper .bpa-front-ci-pill"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
} else if (event.key === "ArrowRight") {
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if (event.key === "ArrowLeft" ) {
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = document.querySelector(".bpa_search_service_data_cls .el-input__inner");
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-tab-menu--item.__bpa-is-active");
}
this.bpaMoveFocusToPreviousElement( this.$refs.categoryGroup, focusElement );
}
},
bpa_handle_pg_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
} else if (event.key === "ArrowRight") {
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if (event.key === "ArrowLeft" ) {
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = "";
focusElement = document.querySelector(".bpa-fm--bs__deposit-payment-module .bpa-front-form-control--radio");
if(focusElement == null){
focusElement = document.querySelector(".bpa-fm--bs-amount-item .bpa-is-tip-edit-icon svg");
if(focusElement == null){
focusElement = document.querySelectorAll(".bpa-fm--bs__coupon-module-textbox .el-button");
focusElement = focusElement[focusElement.length - 1];
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-summary-content__lg .bpa--summary_service_datetime_count_name");
}
}
}
this.bpaMoveFocusToPreviousElement( this.$refs.paymentGatewayItemsGroup, focusElement );
}
},
focusFirstPaymentGateway(){
this.$nextTick( () =>{
const paymentGatewayItem = document.querySelector(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item");
if( paymentGatewayItem !== null ){
paymentGatewayItem.focus();
}
});
},
bpaMoveFocusToPreviousElement( currentElement, focusOnElement = false ){
if(focusOnElement){
focusOnElement.focus();
return;
}
const focusableElements = document.querySelectorAll(
"a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])"
);
const focusableArray = Array.from(focusableElements);
const currentIndex = focusableArray.indexOf(currentElement);
if (currentIndex > 0) {
focusableArray[currentIndex - 1].focus();
}
},
bpaMoveFocusToNextElement( currentElement ){
const focusableElements = document.querySelectorAll(
"a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])"
);
const focusableArray = Array.from(focusableElements);
const currentIndex = focusableArray.indexOf(currentElement);
if (currentIndex > 0) {
focusableArray[currentIndex + 1].focus();
}
},
bpa_select_category( selected_cat_id, selected_cat_name, total_services, total_category){
const vm = this;
let category_id = parseInt( selected_cat_id );
vm.isLoadClass = 0;
if( 0 == selected_cat_id ){
for( let bpa_service_id in vm.bookingpress_all_services_data ){
let current_service = vm.bookingpress_all_services_data[ bpa_service_id ];
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = true;
if( ("undefined" != typeof current_service.is_disabled && true == current_service.is_disabled) || ( "undefined" != current_service.hide_for_staff && true == current_service.hide_for_staff ) ){
current_service.is_visible = false;
}
}
} else {
if( vm.bookingpress_all_services_data != "" ){
for( let bpa_service_id in vm.bookingpress_all_services_data ){
let current_service = vm.bookingpress_all_services_data[ bpa_service_id ];
let current_category = current_service.bookingpress_category_id;
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = false;
if( current_category == category_id ){
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = true;
}
if( ("undefined" != typeof current_service.is_disabled && true == current_service.is_disabled) || ( "undefined" != current_service.hide_for_staff && true == current_service.hide_for_staff ) ){
current_service.is_visible = false;
}
}
}
}
setTimeout(function(){
vm.isLoadClass = 1;
},1);
vm.appointment_step_form_data.selected_category = selected_cat_id;
vm.appointment_step_form_data.selected_cat_name = selected_cat_name;
},
selectStepCategory(selected_cat_id, selected_cat_name = "", total_services = 0, total_category="", display_warn = true ){
if( true == display_warn ){
console.trace("Deprecated step category function " );
console.warn("selectStepCategory function is deprecated. Please update the BookingPress lite, premium, and add-ons to the latest version");
}
const vm = this;
vm.isLoadClass = 0;
if( 0 == selected_cat_id ){
let temp_services = [];
let m = 0;
for( let x in vm.bpa_services_data_from_categories ){
let service_details = vm.bpa_services_data_from_categories[x];
for( let n in service_details ){
let current_service = service_details[n];
if( "undefined" != typeof current_service.bookingpress_staffmembers ){
let selected_staffmember = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( current_service.bookingpress_staffmembers.includes( selected_staffmember ) && selected_staffmember != ""){
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position);
temp_services[bookingpress_service_pos] = current_service;
} else {
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position );
temp_services[bookingpress_service_pos] = current_service;
}
} else {
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position );
temp_services[bookingpress_service_pos] = current_service;
}
if( vm.is_bookingpress_staff_loaded_from_url == "true" && "" != vm.appointment_step_form_data.selected_staff_member_id ){
if( 0 == selected_cat_id ){
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
current_service.is_visible = true;
} else {
current_service.is_visible = false;
}
} else {
vm.services_data.forEach( ( current_service, index) => {
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
vm.services_data[index].is_visible = true;
} else {
vm.services_data[index].is_visible = false;
}
});
}
}
m++;
}
}
var bpa_temp_services= [];
temp_services.sort();
for( let n in temp_services ){
if(temp_services[n] != "") {
bpa_temp_services[n] = temp_services[n];
}
}
vm.services_data = bpa_temp_services.sort();
} else {
vm.services_data = vm.bpa_services_data_from_categories[selected_cat_id];
if( vm.is_bookingpress_staff_loaded_from_url == "true" && "" != vm.appointment_step_form_data.selected_staff_member_id ){
if( 0 == selected_cat_id ){
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
current_service.is_visible = true;
} else {
current_service.is_visible = false;
}
} else {
vm.services_data.forEach( ( current_service, index) => {
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
vm.services_data[index].is_visible = true;
} else {
vm.services_data[index].is_visible = false;
}
});
}
}
}
vm.appointment_step_form_data.selected_category = selected_cat_id;
vm.appointment_step_form_data.selected_cat_name = selected_cat_name;
setTimeout(function(){
vm.isLoadClass = 1;
},1);
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
},
async selectDate(selected_service_id, service_name, service_price, service_price_without_currency, is_move_to_next, service_duration_val = "",service_duration_unit = ""){
const vm = this;
if(typeof vm.appointment_step_form_data.cart_items == "undefined" && (selected_service_id != vm.appointment_step_form_data.selected_service && vm.appointment_step_form_data.selected_date != "")){
var bookingpress_selected_date = vm.appointment_step_form_data.selected_date;
let newDate = new Date("2026-01-16 14:28:54");
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( newDate ) ){
let sel_month = newDate.getMonth() + 1;
let sel_year = newDate.getFullYear();
let sel_date = newDate.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
newDate = sel_year + "-" + sel_month + "-" + sel_date;
}
if( ("undefined" != typeof vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ) && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && vm.appointment_step_form_data.bpa_datetime_after_service_selection != 1 ) ){
vm.appointment_step_form_data.selected_date = newDate;
vm.appointment_step_form_data.selected_end_date = newDate;
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
}
this.booking_cal_maxdate = new Date( Date.now() + ( 3600 * 1000 * ( 24 * 180 ) ) );
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected && 1 == vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected ) {
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 0;
}
if( "undefined" != typeof vm.appointment_step_form_data.selected_staff_member_id && "" != vm.appointment_step_form_data.selected_staff_member_id ){
let current_selected_tab = "service";
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
let sidebar_keys = Object.keys( sidebar_step_data );
let current_tab_pos = sidebar_keys.indexOf( "service" );
let selected_tab_pos = sidebar_keys.indexOf( "staffmembers" );
if( "undefined" == typeof vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url || vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == "0" ){
if( selected_tab_pos > current_tab_pos || sidebar_step_data.staffmembers.is_display_step == 0 ){
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
}
}
}
let is_drawer_opened = "false";
let use_drawer_flag = false;
/* vm.appointment_step_form_data.is_extra_service_exists = "0";
if( vm.bookingpress_is_extra_enable == 1){
use_drawer_flag = true;
for( let i in vm.appointment_step_form_data.bookingpress_selected_extra_details ){
vm.appointment_step_form_data.bookingpress_selected_extra_details[i].bookingpress_is_selected = false;
vm.appointment_step_form_data.bookingpress_selected_extra_details[i].bookingpress_selected_qty = 1;
}
for( let n in vm.all_services_data ){
let element = vm.all_services_data[n];
if( element.bookingpress_service_id == selected_service_id && element.extra_service_counter > 0 ){
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.appointment_step_form_data.is_extra_service_exists = "1";
is_drawer_opened = "true";
vm.isServiceLoadTimeLoader = "1";
}
}
} */
if( vm.is_staffmember_activated == 1 && vm.appointment_step_form_data.hide_staff_selection == "false" && vm.appointment_step_form_data.form_sequence[0] != "staff_selection" ){
for( let index in vm.bookingpress_staffmembers_details ){
let currentValue = vm.bookingpress_staffmembers_details[index];
vm.bookingpress_staffmembers_details[index].is_display_staff = false;
if("undefined" != typeof currentValue.assigned_service_price_details && "undefined" != typeof currentValue.assigned_service_price_details[selected_service_id] && "public" == vm.bookingpress_staffmembers_details[index].staffmember_visibility ){
vm.bookingpress_staffmembers_details[index].is_display_staff = true;
}
}
if( "" == vm.appointment_step_form_data.selected_staff_member_id || 0 == vm.appointment_step_form_data.selected_staff_member_id ){
let next_tabname = vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name;
if( "datetime" == next_tabname && 1 == vm.bookingpress_sidebar_step_data[ next_tabname ].is_allow_navigate ){
vm.bookingpress_sidebar_step_data[ next_tabname ].is_allow_navigate = 0;
}
}
/* let is_staff_exists = 0;
let total_staff = 0;
let total_private_staff = 0;
let deselect_staff = false;
let staff_id = vm.appointment_step_form_data.selected_staff_member_id;
let available_staffs = [];
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(selected_service_id)){
if( currentValue.staffmember_visibility == "private" ){
total_private_staff++;
}
total_staff++;
is_staff_exists = 1;
available_staffs.push( currentValue.bookingpress_staffmember_id );
}
});
if( available_staffs.length > 0 && staff_id > 0 && !available_staffs.includes( staff_id ) ){
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
}
if( 1 == is_staff_exists ){
if( total_staff == total_private_staff ){
await vm.bookingpress_select_staffmember("any_staff", 1);
is_staff_exists = 0;
vm.appointment_step_form_data.is_staff_exists = 0;
vm.appointment_step_form_data.hide_staff_selection = "true";
} else {
vm.isServiceLoadTimeLoader = "1";
is_drawer_opened = "true";
vm.appointment_step_form_data.is_staff_exists = 1;
}
} */
}
if( ("false" == is_move_to_next && "false" == is_drawer_opened) ){
if( (vm.bookingpress_cart_addon == 1 && vm.appointment_step_form_data.hide_service_selection_step == "true" ) ){
is_move_to_next = "false";
} else {
is_move_to_next = "true";
}
}
if( "true" == is_move_to_next && "d" == vm.appointment_step_form_data.selected_service_duration_unit ){
if( 0 == vm.bookingpress_sidebar_step_data.service.is_display_step && "datetime" == vm.bookingpress_current_tab ){
is_move_to_next = false;
}
}
let current_selected_service = vm.appointment_step_form_data.selected_service;
vm.bookingpress_remove_extra_service_error_msg();
if( "undefined" != vm.bookingpress_all_services_data[ selected_service_id ].service_extras && "" != vm.bookingpress_all_services_data[ selected_service_id ].service_extras && vm.bookingpress_sidebar_step_data.service.is_display_step == 1 ){
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
const params = new URLSearchParams(window.location.search);
if (params.get("book_again") == 1 && vm.is_staffmember_activated == 1) {
document.body.classList.remove("--bpa-open-advance-drawer");
}
vm.isServiceLoadTimeLoader = "0";
vm.appointment_step_form_data.is_extra_service_exists = "1";
is_drawer_opened = "true";
is_move_to_next = false;
} else {
vm.appointment_step_form_data.is_extra_service_exists = "0";
}
if( selected_service_id != "" && ("undefined" == typeof vm.is_club_service || vm.is_club_service != true ) ){
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
/** Check if staff member is enabled, visible and after service step */
if( vm.is_staffmember_activated == 1){
if( sidebar_step_data.staffmembers.is_first_step == 0 ){
let max_capacity = 1;
let min_capacity = 1;
let staffmember_details = vm.bookingpress_staffmembers_details;
let staff_capacities = [];
let staff_min_capacities = [];
staffmember_details.forEach( (element,index) =>{
if( "undefined" == typeof element.assigned_service_price_details[ selected_service_id ] ){
return true;
}
let staff_services = element.assigned_service_price_details[ selected_service_id ];
let staff_capacity = staff_services.assigned_service_capacity;
staff_capacities.push( parseInt(staff_capacity) );
if( vm.is_bring_anyone_with_you_activated == 1 ){
let staff_min_capacity = staff_services.assigned_service_min_capacity;
staff_min_capacities.push( parseInt(staff_min_capacity) );
}
});
max_capacity = Math.max.apply(null, staff_capacities);
vm.appointment_step_form_data.service_max_capacity = parseInt(max_capacity);
if( vm.is_bring_anyone_with_you_activated == 1 ){
min_capacity = Math.min.apply(null, staff_min_capacities);
vm.appointment_step_form_data.service_min_capacity = parseInt(min_capacity);
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members, selected_service_id );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
} else {
let staff_id = vm.appointment_step_form_data.selected_staff_member_id;
if( "" != staff_id ){
let staff_details;
vm.bookingpress_staffmembers_details.forEach( (element,index) => {
if( element.bookingpress_staffmember_id == staff_id ){
staff_details = element;
return false;
}
});
if( staff_details != "" ){
let staff_service_data = staff_details.assigned_service_price_details[ selected_service_id ];
let staff_service_capacity = staff_service_data.assigned_service_capacity;
let staff_service_min_capacity = staff_service_data.assigned_service_min_capacity;
vm.appointment_step_form_data.service_max_capacity = parseInt(staff_service_capacity);
vm.appointment_step_form_data.service_min_capacity = parseInt(staff_service_min_capacity);
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members, selected_service_id );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
}
}
}
} else if( 1 != vm.is_staffmember_activated ){
/* vm.all_services_data.forEach( (element, index) => {
if( "" == element.service_max_capacity ){
element.service_max_capacity = 1;
}
if( element.bookingpress_service_id == selected_service_id ){
vm.appointment_step_form_data.service_max_capacity = parseInt( element.service_max_capacity );
return false;
}
}); */
vm.appointment_step_form_data.service_max_capacity = vm.bookingpress_all_services_data[ selected_service_id ].services_meta.max_capacity;
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.appointment_step_form_data.service_min_capacity = vm.bookingpress_all_services_data[ selected_service_id ].services_meta.min_capacity;
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
}
/** Check if service max capacity > 1 and quantity feature is enabled */
if( vm.is_bring_anyone_with_you_activated == 1 && 1 < vm.appointment_step_form_data.service_max_capacity /*&& this.is_service_loaded_from_url != "1" /* && "true" == is_move_to_next */ ){
is_move_to_next = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "1";
}
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" ){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ) {
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
} else {
if( 0 > vm.appointment_step_form_data.cart_item_edit_index ){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ) {
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
} else {
/** Reputelog - need to check custom service duration with cart add-on while edit appointment from cart */
let cart_edit_index_id = vm.appointment_step_form_data.cart_item_edit_index;
let cart_item = vm.appointment_step_form_data.cart_items[ cart_edit_index_id ];
let bookingpress_edit_cart_service_id = typeof cart_item.bookingpress_service_id != "undefined" ?cart_item.bookingpress_service_id:0;
if(bookingpress_edit_cart_service_id != selected_service_id){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ){
vm.appointment_step_form_data.cart_items[cart_edit_index_id].enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
}else{
vm.appointment_step_form_data.enable_custom_service_duration = typeof cart_item.enable_custom_service_duration != "undefined" ? cart_item.enable_custom_service_duration : false;
vm.appointment_step_form_data.custom_service_duration_value = parseInt( cart_item.custom_service_duration_value );
vm.appointment_step_form_data.custom_service_duration_real_value = parseInt( cart_item.custom_service_duration_value );
vm.appointment_step_form_data.custom_service_real_price = parseFloat( cart_item.custom_service_real_price );
}
}
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
vm.bpa_skip_loading_csd_slot = false;
}
vm.appointment_step_form_data.selected_service = selected_service_id;
vm.v_calendar_blocked_dates = [];
vm.v_calendar_attributes_current = [];
vm.appointment_step_form_data.selected_service_name = service_name;
vm.appointment_step_form_data.selected_service_price = service_price;
vm.appointment_step_form_data.service_price_without_currency = service_price_without_currency;
/* vm.appointment_step_form_data.base_price = service_price; */
vm.appointment_step_form_data.base_price_without_currency = service_price_without_currency;
if( "" == service_duration_val ){
service_duration_val = vm.bookingpress_all_services_data[ selected_service_id ].bookingpress_service_duration_val;
}
if( "" == service_duration_unit ){
service_duration_unit = vm.bookingpress_all_services_data[ selected_service_id ].bookingpress_service_duration_unit;
}
vm.appointment_step_form_data.selected_service_duration = service_duration_val;
vm.appointment_step_form_data.selected_service_duration_unit = service_duration_unit;
if(vm.previous_selected_tab_id === 1 || vm.previous_selected_tab_id === 2 || vm.current_selected_tab_id === 1){
vm.displayResponsiveCalendar = "1";
}
vm.v_calendar_disable_dates = [];
vm.bpa_current_selected_date = "";
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
if( "undefined" != typeof vm.is_staffmember_activated && vm.is_staffmember_activated == 1) {
if( ( vm.is_staffmember_activated == 1 && ( vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.service.next_tab_name == "datetime" && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "staffmembers" ) ) ){
//vm.appointment_step_form_data.bpa_datetime_after_staff_selection_flag = 1;
//vm.hide_capacity_text_flag = true;
//alert( "inside this 45 ");
vm.appointment_step_form_data.bpa_datetime_hide_capacity = true;
vm.appointment_step_form_data.bpa_datetime_before_staffselection = 1;
}
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
if( (vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.service.next_tab_name == "datetime" && vm.is_staffmember_activated == 1 && vm.appointment_step_form_data.hide_staff_selection != "true" ) || ( (vm.appointment_step_form_data.hide_service_selection_step == "true" || vm.appointment_step_form_data.hide_service_selection_step == true ) && vm.bookingpress_sidebar_step_data.datetime.is_first_step == 1 )){
//vm.appointment_step_form_data.bpa_available_staff_member.push(currentValue.bookingpress_staffmember_id);
const staffId = currentValue.bookingpress_staffmember_id;
if (!vm.appointment_step_form_data.bpa_available_staff_member.includes(staffId)) {
vm.appointment_step_form_data.bpa_available_staff_member.push(staffId);
}
}
}
});
if( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 ){
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
}
}
}
vm.appointment_step_form_data.store_selected_date = "";
vm.appointment_step_form_data.store_selected_end_date = "";
vm.appointment_step_form_data.store_selected_time = "";
vm.appointment_step_form_data.store_selected_end_time = "";
vm.appointment_step_form_data.store_start_time = "";
vm.appointment_step_form_data.store_end_time = "";
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_end_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
vm.appointment_step_form_data.customer_selected_date = "";
vm.appointment_step_form_data.customer_selected_end_date = "";
vm.appointment_step_form_data.customer_selected_time = "";
vm.appointment_step_form_data.customer_selected_end_time = "";
if(is_move_to_next === "true"){
if( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 ){
if( vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name == "cart" ){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
} else {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
}
} else {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
}
}
var selected_date = vm.appointment_step_form_data.selected_date;
var formatted_date = vm.get_formatted_date(selected_date);
vm.bookingpress_remove_error_msg();
vm.service_advance_see_less = "0";
if( vm.is_staffmember_activated == 1 && (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1) ){
let timeslots_details = vm.appointment_step_form_data.bpa_after_select_service_available_staff;
let service_details = vm.bpasortedServices;
if( "undefined" != typeof timeslots_details ){
if( "undefined" != typeof timeslots_details.available_staffs ){
if( 1 < timeslots_details.available_staffs.length ){
let available_staff_id = timeslots_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( timeslots_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = timeslots_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
}
}
if( /*vm.bookingpress_is_extra_enable == "1" ||*/ vm.is_bring_anyone_with_you_activated == "1" || vm.is_staffmember_activated == "1" ){
var is_extra_exists = 0;
var service_max_length = parseInt(vm.appointment_step_form_data.service_max_capacity);
var is_staff_exists = 0;
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
if(vm.appointment_step_form_data.hide_staff_selection == "true" && vm.is_staff_first_step != "1" && (typeof vm.appointment_step_form_data.custom_service_duration_value == "undefined" || ( vm.appointment_step_form_data.custom_service_duration_value != "undefined" && vm.appointment_step_form_data.custom_service_duration_value == "") ) ){
/* vm.bookingpress_select_staffmember("any_staff", 1); */
}
}
/* if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length >= 1) || ( vm.appointment_step_form_data.hide_staff_selection != "true" && vm.is_staffmember_activated == "1" && ( vm.is_any_staff_option_enable == 1 || is_staff_exists == 1 ) ) || (vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == 1) ){ */
if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length > 1) ){
vm.bookingpress_open_extras_drawer = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "0";
} else{
if((is_staff_exists == 1 && vm.appointment_step_form_data.hide_staff_selection == "true" && vm.bookingpress_current_tab == "datetime") || (vm.appointment_step_form_data.selected_service_duration_unit == "d" && ( ( vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 0) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length == 1) ))) {
/* If staffmember selection step hide and staff member selection is in drawer then do not need to execute next step navigation function */
}else{
/*if(vm.bookingpress_current_tab != "datetime") {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name)
}*/
}
}}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
let selected_service = vm.appointment_step_form_data.selected_service;vm.customer_form_fields.forEach( (element,index) => {
if( typeof element.field_options != "undefined" && element.field_options.visibility == "services" ){
let field_services = element.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_type == "2_col" || element.field_type == "3_col" || element.field_type == "4_col" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_name == "Repeater" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( "2_col" == ielement.field_type || "3_col" == ielement.field_type || "4_col" == ielement.field_type ){
ielement.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
} else {
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
}
});vm.appointment_step_form_data.coupon_code = "";vm.coupon_code_msg = "";vm.coupon_applied_status = "error";vm.coupon_discounted_amount = 0;vm.coupon_apply_loader = "0";vm.bpa_coupon_apply_disabled = 0;
let current_service_data = vm.bookingpress_all_services_data[selected_service];
if( "undefined" != typeof current_service_data && "undefined" != typeof current_service_data.services_meta ){
let current_service_meta = current_service_data.services_meta;
if( "undefined" != typeof current_service_meta.deposit_amount ){
vm.appointment_step_form_data.deposit_payment_amount = current_service_meta.deposit_amount;
vm.appointment_step_form_data.deposit_payment_type = current_service_meta.deposit_type;
if( "percentage" == current_service_meta.deposit_type ){
vm.appointment_step_form_data.deposit_payment_amount_percentage = current_service_meta.deposit_amount;
}
}
}
setTimeout(function(){
vm.is_display_custom_duration_loader = false;
},1500);
},
dayClickedResponsive( day ){
const vm = this;
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "1";
vm.isLoadDateTimeCalendar = "1";
if( window.innerWidth <= 991 ){
vm.service_timing = "-1";
} else {
vm.service_timing = "-1";
}
}
vm.dayClicked(day);
},
dayClicked(day){
const vm = this;
let available_dates = vm.v_calendar_available_dates;
let dayId = day.id;
let dayString = dayId + " 00:00:00";
if( "undefined" == typeof dayString || "undefined" == typeof available_dates || 0 > available_dates.indexOf( dayString ) || vm.bpa_current_selected_date == dayId || ("undefined" != typeof vm.v_calendar_blocked_dates && vm.v_calendar_blocked_dates.includes( day.id ) ) ){
return false;
}
vm.service_timing = "-2";
vm.appointment_step_form_data.selected_date = dayId;
vm.bpa_current_selected_date = dayId;
vm.no_timeslot_available = false;
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
setTimeout(function(){
vm.service_timing = vm.bookingpress_categories_timeslots( vm.v_calendar_timeslots_data[ dayId ] );
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
},10);
},
onDayKeyPressed(event){
const vm = this;
if(event.event.key == "Enter"){
vm.dayClicked(event);
setTimeout(function(){
if(typeof vm.$refs.timeSlotItems !== 'undefined'){
vm.$refs.timeSlotItems[0].focus();
}
},11);
}
let page = {month: event.month, year: event.year};
vm.bpaMoveMonth(page);
},
onWholeDayKeyPressed(event, day){
const currentDate = new Date(day.id);
let newDate;
const vm = this;
if(event.key == "Enter"){
event.preventDefault();
vm.dayClicked_v2(day);
return;
}
let page = {month: day.month, year: day.year};
vm.bpaMoveMonth(page);
switch(event.key) {
case 'ArrowRight':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() + 1);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowLeft':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() - 1);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowUp':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() - 7);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowDown':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() + 7);
vm.moveFocusToDate(newDate, day);
break;
}
},
moveFocusToDate(date, day) {
const vm = this;
// Format date to match your day.id format (YYYY-MM-DD)
const dateString = date.toISOString().split('T')[0];
// Find the element for this date
this.$nextTick(() => {
let vc_day_content = document.querySelectorAll(".vc-day .vc-day-content");
vc_day_content.forEach((elm) => {
elm.setAttribute("tabindex", "-1");
});
const dateElement = document.getElementsByClassName(`id-${dateString}`);
// console.log(dateElement);
if (dateElement) {
if (vm.$refs.bkp_front_calendar) {
vm.$refs.bkp_front_calendar.move(dateString);
// vm.$refs.bkp_front_calendar.focusDate(day);
}
if(dateElement[0]){
setTimeout(() => {
let date_span = dateElement[0].querySelector(".bpa_day-select span");
if(date_span){
date_span.setAttribute("tabindex", "0");
date_span.focus();
}
}, 200);
}
}
});
},
dayClicked_legacy(day) {
const vm = this;
let disable_dates = vm.v_calendar_disable_dates;
let max_available_date = vm.get_formatted_date( vm.booking_cal_maxdate );
if( disable_dates.includes( day.id + " 00:00:00" ) || disable_dates.includes( day.id ) || max_available_date < day.id || (day.date < vm.jsCurrentDateFormatted && false == day.isToday) ){
return false;
}
vm.appointment_step_form_data.selected_date = day.id;
vm.get_date_timings( day.id );
},
get_date_timings(current_selected_date = ""){
const vm = this;
if( window.innerWidth <= 991 ){
vm.service_timing = "-1";
}else{
vm.service_timing = "-2";
}
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
if( null == vm.appointment_step_form_data.selected_date ){
vm.appointment_step_form_data.selected_date = new Date("2026-01-16 14:28:54");
}
if( current_selected_date == "") {
current_selected_date = vm.appointment_step_form_data.selected_date;
}
vm.appointment_step_form_data.selected_date = current_selected_date;
var selected_date = vm.appointment_step_form_data.selected_date;
if( "undefined" != typeof this.$refs.bkp_front_calendar ){
const calendar = this.$refs.bkp_front_calendar;
calendar.move(current_selected_date);
}
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( selected_date ) ){
let sel_month = selected_date.getMonth() + 1;
let sel_year = selected_date.getFullYear();
let sel_date = selected_date.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
selected_date = sel_year + "-" + sel_month + "-" + sel_date;
}
vm.appointment_step_form_data.selected_date = selected_date;
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
var selected_service_id = vm.appointment_step_form_data.selected_service;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_front_get_timings", service_id: selected_service_id, selected_date: selected_date, _wpnonce:bkp_wpnonce_pre_fetch, };
postData.bookingpress_timezone = vm.bookingpress_timezone;postData.bookingpress_selected_staffmember = vm.appointment_step_form_data.bookingpress_selected_staff_member_details;postData.service_extra_details = JSON.stringify( vm.appointment_step_form_data.bookingpress_selected_extra_details );postData.enable_custom_service_duration = vm.appointment_step_form_data.enable_custom_service_duration;postData.custom_service_duration_value = vm.appointment_step_form_data.custom_service_duration_value;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
postData.client_dst_timezone = vm.bookingpress_dst_timezone;
}
vm.no_timeslot_available = false;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
var set_waiting_time_limit = 1500;
if(typeof postData.enable_custom_service_duration != "undefined"){
if(postData.enable_custom_service_duration == true || postData.enable_custom_service_duration == "true"){
set_waiting_time_limit = 0;
}
}
setTimeout(function(){
vm.service_timing = response.data;
if( response.data.morning_time.length <= 0 && response.data.afternoon_time.length <= 0 && response.data.evening_time.length <= 0 && response.data.night_time.length <= 0 ){
vm.no_timeslot_available = true;
}
vm.isLoadTimeLoader = "0";
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
if(response.data == ""){
vm.service_timing = null;
}
}, set_waiting_time_limit);
vm.service_advance_see_less = "0";
if( vm.is_staffmember_activated == 1 && (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1) ){
let timeslots_details = vm.appointment_step_form_data.bpa_after_select_service_available_staff;
let service_details = vm.bpasortedServices;
if( "undefined" != typeof timeslots_details ){
if( "undefined" != typeof timeslots_details.available_staffs ){
if( 1 < timeslots_details.available_staffs.length ){
let available_staff_id = timeslots_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( timeslots_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = timeslots_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
}
}
if( /*vm.bookingpress_is_extra_enable == "1" ||*/ vm.is_bring_anyone_with_you_activated == "1" || vm.is_staffmember_activated == "1" ){
var is_extra_exists = 0;
var service_max_length = parseInt(vm.appointment_step_form_data.service_max_capacity);
var is_staff_exists = 0;
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
if(vm.appointment_step_form_data.hide_staff_selection == "true" && vm.is_staff_first_step != "1" && (typeof vm.appointment_step_form_data.custom_service_duration_value == "undefined" || ( vm.appointment_step_form_data.custom_service_duration_value != "undefined" && vm.appointment_step_form_data.custom_service_duration_value == "") ) ){
/* vm.bookingpress_select_staffmember("any_staff", 1); */
}
}
/* if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length >= 1) || ( vm.appointment_step_form_data.hide_staff_selection != "true" && vm.is_staffmember_activated == "1" && ( vm.is_any_staff_option_enable == 1 || is_staff_exists == 1 ) ) || (vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == 1) ){ */
if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length > 1) ){
vm.bookingpress_open_extras_drawer = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "0";
} else{
if((is_staff_exists == 1 && vm.appointment_step_form_data.hide_staff_selection == "true" && vm.bookingpress_current_tab == "datetime") || (vm.appointment_step_form_data.selected_service_duration_unit == "d" && ( ( vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 0) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length == 1) ))) {
/* If staffmember selection step hide and staff member selection is in drawer then do not need to execute next step navigation function */
}else{
/*if(vm.bookingpress_current_tab != "datetime") {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name)
}*/
}
}}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
let selected_service = vm.appointment_step_form_data.selected_service;vm.customer_form_fields.forEach( (element,index) => {
if( typeof element.field_options != "undefined" && element.field_options.visibility == "services" ){
let field_services = element.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_type == "2_col" || element.field_type == "3_col" || element.field_type == "4_col" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_name == "Repeater" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( "2_col" == ielement.field_type || "3_col" == ielement.field_type || "4_col" == ielement.field_type ){
ielement.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
} else {
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
}
});vm.appointment_step_form_data.coupon_code = "";vm.coupon_code_msg = "";vm.coupon_applied_status = "error";vm.coupon_discounted_amount = 0;vm.coupon_apply_loader = "0";vm.bpa_coupon_apply_disabled = 0;
let current_service_data = vm.bookingpress_all_services_data[selected_service];
if( "undefined" != typeof current_service_data && "undefined" != typeof current_service_data.services_meta ){
let current_service_meta = current_service_data.services_meta;
if( "undefined" != typeof current_service_meta.deposit_amount ){
vm.appointment_step_form_data.deposit_payment_amount = current_service_meta.deposit_amount;
vm.appointment_step_form_data.deposit_payment_type = current_service_meta.deposit_type;
if( "percentage" == current_service_meta.deposit_type ){
vm.appointment_step_form_data.deposit_payment_amount_percentage = current_service_meta.deposit_amount;
}
}
}
setTimeout(function(){
vm.is_display_custom_duration_loader = false;
},1500);
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
selectDisableTiming(time_details){
},
selectTiming(selected_start_time, selected_end_time, store_start_time = "", store_end_time = "", store_selected_date = "" ,formated_start_time = "",formated_end_time = "",time_details = ""){
const vm = this;
vm.appointment_step_form_data.selected_start_time = selected_start_time;
vm.appointment_step_form_data.selected_end_time = selected_end_time;
if( "" != formated_end_time && "" != formated_start_time ) {
vm.appointment_step_form_data.selected_formatted_start_time = formated_start_time;
vm.appointment_step_form_data.selected_formatted_end_time = formated_end_time;
}
if( "" != time_details.formatted_start_end_time && "undefined" != time_details.formatted_start_end_time ) {
vm.appointment_step_form_data.selected_formatted_start_end_time = time_details.formatted_start_end_time;
}
if("" != store_start_time && "" != store_end_time && "" != store_selected_date ){
vm.appointment_step_form_data.store_start_time = store_start_time;
vm.appointment_step_form_data.store_end_time = store_end_time;
vm.appointment_step_form_data.client_offset = vm.bookingpress_timezone_offset;
vm.appointment_step_form_data.store_selected_date = store_selected_date;
vm.appointment_step_form_data.store_selected_end_date = time_details.selected_end_date || store_selected_date;
}
vm.appointment_step_form_data.customer_selected_date = time_details.client_date || vm.appointment_step_form_data.selected_date;
vm.appointment_step_form_data.customer_selected_end_date = time_details.client_end_date || time_details.client_date || vm.appointment_step_form_data.selected_date;
vm.appointment_step_form_data.customer_selected_time = time_details.client_start_time || selected_start_time;
vm.appointment_step_form_data.customer_selected_end_time = time_details.client_end_time || selected_end_time;
vm.appointment_step_form_data.is_next_day = false;
vm.appointment_step_form_data.is_both_next_day = false;
if( "undefined" != typeof time_details.is_next_day && true == time_details.is_next_day ){
vm.appointment_step_form_data.is_next_day = true;
vm.appointment_step_form_data.next_day_selection_date = time_details.selected_date;
vm.appointment_step_form_data.selected_end_date = time_details.selected_end_date;
}
if( ("undefined" != typeof time_details.is_both_next_day_time && true == time_details.is_both_next_day_time) || "undefined" != typeof time_details.is_both_next_day_time_v2 && true == time_details.is_both_next_day_time_v2 ){
vm.appointment_step_form_data.customer_selected_date = time_details.client_end_date;
vm.appointment_step_form_data.display_end_date_on_summary = true;
vm.appointment_step_form_data.is_both_next_day = time_details.is_both_next_day_time;
vm.appointment_step_form_data.is_both_next_day_v2 = time_details.is_both_next_day_time_v2;
vm.appointment_step_form_data.is_server_both_next_day = ( "undefined" != typeof time_details.is_overnight_booking_server ) ? time_details.is_overnight_booking_server : false;
vm.appointment_step_form_data.is_customer_both_next_day = time_details.is_both_next_day_time_v2 || false;
}
let bookingpress_is_anystaff_select = true;
if( (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "staffmembers" && vm.bookingpress_sidebar_step_data.service.is_first_step == 1) || ( (vm.appointment_step_form_data.hide_service_selection_step == true || vm.appointment_step_form_data.hide_service_selection_step == "true") && vm.bookingpress_sidebar_step_data.datetime.is_first_step == 1 && ("true" != vm.appointment_step_form_data.hide_staff_selection ) ) ){
let staffmember_details = vm.bookingpress_staffmembers_details;
// change the value anystaff not
bookingpress_is_anystaff_select = false;
if( "undefined" != typeof time_details.available_staffs ) {
staffmember_details.forEach(staff => {
staff.is_display_staff = time_details.available_staffs.includes(parseInt(staff.bookingpress_staffmember_id));
});
} else {
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 0;
staffmember_details.forEach(staff => {
staff.is_display_staff = false;
});
}
vm.no_staffmember_available = staffmember_details.every(staff => !staff.is_display_staff);
vm.appointment_step_form_data.bpa_datetime_after_staffselection = 1;
vm.appointment_step_form_data.bpa_after_select_datetime_available_staff = time_details;
}
if( vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 ){
// change the value anystaff not
bookingpress_is_anystaff_select = false;
let service_details = vm.bpasortedServices;
vm.appointment_step_form_data.bpa_datetime_after_service_selection = 1;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
vm.appointment_step_form_data.is_staff_exists = 1;
}
//console.log( time_details.unavailable_serivce_ids ); //[ 1 ]
// if( "undefined" != typeof time_details.unavailable_serivce_ids ) {
//service_details.forEach(service => {
//service.is_visible = !time_details.unavailable_serivce_ids.includes( parseInt(service.bookingpress_service_id) );
//});
//}
if (typeof time_details.unavailable_serivce_ids !== "undefined") {
service_details.forEach(service => {
if (time_details.unavailable_serivce_ids.includes( service.bookingpress_service_id ) ) {
service.is_visible = false;
service.exclude_id = true;
}
});
} else {
service_details.forEach(service => {
if( "undefined" != typeof service.exclude_id && service.exclude_id == true ){
service.is_visible = true;
}
});
}
vm.no_service_available = service_details.every( services => !services.is_visible );
if( vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1 ){
vm.appointment_step_form_data.bpa_after_select_service_available_staff = time_details;
}
if( "undefined" != typeof time_details.available_staffs ){
let available_staffdata = time_details.available_staffs;
vm.bpasortedServices.forEach( item => {
const hasMatch = Object.keys( item.staff_member_details ).some( key => available_staffdata.includes( Number( key ) ) );
item.is_visible = hasMatch;
item.is_visible_with_flag = hasMatch;
} );
}
}
if( "undefined" != typeof time_details.available_staffs && bookingpress_is_anystaff_select && (vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 && vm.appointment_step_form_data.bpa_datetime_after_service_selection != 1 ) ){
if( 1 < time_details.available_staffs.length ){
let available_staff_id = time_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( time_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = time_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
if( vm.bookingpress_staffmembers_details.every(staff => !staff.is_display_staff) ){
vm.is_any_staff_option_enable = 0;
}
vm.appointment_step_form_data.use_modified_duration = false;
if( "undefined" != typeof time_details.use_slot_duration && true == time_details.use_slot_duration && "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && 1 == vm.appointment_step_form_data.bpa_datetime_after_service_selection ){
vm.appointment_step_form_data.use_modified_duration = true;
let remaining_minutes = time_details.duration_unit_next_break;
vm.slot_duration_till_break = remaining_minutes;
let allSortedServices = Object.assign( [], vm.bpasortedServices );
let totalHiddenServices = 0;
allSortedServices.forEach( (element, index) => {
let service_duration_unit = element.bookingpress_service_duration_unit;
element.is_visible_with_service_step = true;
if( "d" == service_duration_unit ){
element.is_visible_with_service_step = false;
totalHiddenServices++;
} else {
let service_duration = ( "h" == service_duration_unit ) ? parseInt( element.bookingpress_service_duration_val * 60 ) : parseInt( element.bookingpress_service_duration_val );
if( service_duration > remaining_minutes ){
element.is_visible_with_service_step = false;
totalHiddenServices++;
}
}
});
vm.bpasortedServices.forEach( (elm, index) => {
if( "undefined" != typeof elm.is_hide_with_step && true == elm.is_hide_with_step ){
elm.is_visible = true;
}
if( "undefined" != typeof allSortedServices[index].is_visible_with_service_step && false == allSortedServices[index].is_visible_with_service_step ){
elm.is_visible = false;
elm.is_hide_with_step = true;
}
});
console.log( vm.bpasortedServices );
console.log( totalHiddenServices );
vm.no_service_available = false;
if( vm.bpasortedServices.length == totalHiddenServices ){
vm.no_service_available = true;
}
}
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
vm.bookingpress_update_timestep_token();
},
resetForm(){
const vm2 = this;
vm2.appointment_formdata.appointment_selected_customer = "0";
vm2.appointment_formdata.appointment_selected_service = "";
vm2.appointment_formdata.appointment_booked_date = "2026-01-16";
vm2.appointment_formdata.appointment_booked_time = "";
},
select_service(selected_service_id){
const vm = this;
vm.appointment_step_form_data.selected_service = selected_service_id;
},
automatic_next_page(next_tab_id){
const vm = this;
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
;
vm.current_selected_tab_id = parseInt(next_tab_id);
vm.bookingpress_remove_error_msg();
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
},
next_page(customer_form = "", current_selected_element = "", next_selection_element = ""){
const vm = this;
var current_selected_tab = bpa_selected_tab = parseFloat(vm.current_selected_tab_id);
vm.previous_selected_tab_id = parseInt(current_selected_tab);
if(current_selected_element != undefined && current_selected_element != null){
current_selected_tab = parseInt(current_selected_element);
}
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
if(current_selected_tab === 1 || vm.previous_selected_tab_id === 1){
vm.is_display_error = "0";
if(vm.appointment_step_form_data.selected_service == "" || vm.appointment_step_form_data.selected_service == undefined || vm.appointment_step_form_data.selected_service == "undefined"){
vm.bookingpress_set_error_msg("Selecteer een dienst om een afspraak te maken.");
vm.current_selected_tab_id = 1;
return false;
}else{
if(vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == ""){
vm.bookingpress_set_error_msg("Selecteer een medewerker om verder te gaan");
vm.current_selected_tab_id = 1;
return false;
};
if(next_selection_element != ""){
current_selected_tab = next_selection_element;
}else{
current_selected_tab = current_selected_tab;
}
}
}else if(current_selected_tab === 2){
if(current_selected_element != undefined && current_selected_element == 2 && vm.appointment_step_form_data.selected_start_time == "" && bpa_selected_tab == "2" && vm.appointment_step_form_data.selected_service_duration_unit != "d") {
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
}
if(vm.appointment_step_form_data.selected_service != "" && vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.selected_service_duration_unit != "d") {
vm.selectDate(vm.appointment_step_form_data.selected_service, vm.appointment_step_form_data.selected_service_name, vm.appointment_step_form_data.selected_service_price, vm.appointment_step_form_data.service_price_without_currency, "true",vm.appointment_step_form_data.selected_service_duration,vm.appointment_step_form_data.selected_service_duration_unit);
}
if(vm.is_display_error != "1"){
if(next_selection_element != ""){
current_selected_tab = next_selection_element
}else{
current_selected_tab = current_selected_tab;
}
vm.bookingpress_remove_error_msg()
}else{
if(vm.is_error_msg == ""){
vm.bookingpress_set_error_msg("Er is iets fout gegaan")
}
}
}else if(current_selected_tab === 3){
if(vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.is_enable_validations == 1 && vm.appointment_step_form_data.selected_service_duration_unit != "d"){
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
}else{
vm.$refs[customer_form].validate((valid) => {
if (valid) {
if(next_selection_element != ""){
current_selected_tab = next_selection_element
}else{
current_selected_tab = current_selected_tab;
}
}
});
}
}else{
if(vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.is_enable_validations == 1 && vm.appointment_step_form_data.selected_service_duration_unit != "d"){
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
} else {
vm.$refs[customer_form].validate((valid) => {
if (valid) {
if(next_selection_element != ""){
current_selected_tab = next_selection_element;
}else{
current_selected_tab = current_selected_tab;
}
}else{
current_selected_tab = 3;
}
});
}
}
if(current_selected_tab === 2 && vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.selected_date != "" ) {
vm.get_date_timings();
}
vm.current_selected_tab_id = parseInt(current_selected_tab);
if(current_selected_tab === 2 && vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.next_selected_tab_id = 3;
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
},
previous_page(previous_selection_tab_id = ""){
const vm = this;
var current_selected_tab = parseFloat(vm.current_selected_tab_id);
if(previous_selection_tab_id != ""){
current_selected_tab = previous_selection_tab_id;
}else{
vm.previous_selected_tab_id = parseInt(current_selected_tab);
current_selected_tab = current_selected_tab - 1;
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
vm.current_selected_tab_id = parseInt(current_selected_tab);
if(vm.previous_selected_tab_id == "1"){
vm.displayResponsiveCalendar = 1;
}
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
},
select_payment_method(payment_method){
const vm = this;
vm.appointment_step_form_data.selected_payment_method = payment_method;
var bookingpress_allowed_payment_gateways_for_card_fields = [];
if( "undefined" == typeof vm.skip_checking_final_step_validation || true != vm.skip_checking_final_step_validation ){
vm.bookingpress_get_final_step_amount();
}
;
if(bookingpress_allowed_payment_gateways_for_card_fields.includes(payment_method)){
vm.is_display_card_option = 1;
}else{
vm.is_display_card_option = 0;
}
},
displayCalendar(){
const vm = this;
if( "" == vm.appointment_step_form_data.selected_date || ( "undefined" != typeof vm.v_calendar_available_dates && 1 > vm.v_calendar_available_dates.length ) ){
return false;
}
vm.displayResponsiveCalendar = "1";
},
Change_front_appointment_description(service_id) {
const vm = this;
vm.services_data.forEach(function(item, index, arr){
if(item.bookingpress_service_id == service_id ){
if(item.display_details_more == 0 && item.display_details_less == 1) {
item.display_details_less = 0;
item.display_details_more = 1;
} else {
item.display_details_more = 0;
item.display_details_less = 1;
}
}
});
},
bookingpress_phone_country_change_func(bookingpress_country_obj){
const vm = this;
var bookingpress_selected_country = bookingpress_country_obj.iso2;
vm.appointment_step_form_data.customer_phone_country = bookingpress_selected_country;
vm.appointment_step_form_data.customer_phone_dial_code = bookingpress_country_obj.dialCode;
let exampleNumber = window.intlTelInputUtils.getExampleNumber( bookingpress_selected_country, true, 1 );
if( typeof vm.bookingpress_phone_default_placeholder == "undefined" && "" != exampleNumber ){
vm.bookingpress_tel_input_props.inputOptions.placeholder = exampleNumber;
} else if(vm.bookingpress_phone_default_placeholder == "false" && "" != exampleNumber){
vm.bookingpress_tel_input_props.inputOptions.placeholder = exampleNumber;
}
},
bookingpress_phone_country_open( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".el-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.add("bpa-active-col");
}
}
}
},
bookingpress_phone_country_close( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-active-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.remove("bpa-active-col");
}
}
}
},
bookingpress_validatePhoneField(event) {
this.$nextTick(() => {
if (!this.$refs.appointment_step_form_data) return;
const phoneValue = this.appointment_step_form_data.customer_phone;
console.log("called ... " + phoneValue);
if (/^[\d\+\s\-\(\)]+$/.test(phoneValue.trim())) {
console.log("inside this..... one")
this.$refs.appointment_step_form_data.clearValidate(["customer_phone"]);
}
});
},
bookingpress_get_parents( elem, selector ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
if (selector) {
if (elem.matches(selector)) {
parents.push(elem);
}
continue;
}
parents.push(elem);
}
return parents;
},
async bookingpress_disable_date( bpa_selected_service = "", bpa_selected_date = "" ){
let bpa_is_called = false;
var bookingpress_is_allow_modify = "";
var bookingpress_staff_loaded_from_url = "0";
this.isLoadTimeLoader = "1";
this.isLoadDateTimeCalendarLoad = "1";
let staff_id = this.appointment_step_form_data.selected_staff_member_id;
if( 0 == staff_id ){
staff_id = "";
}
this.service_timing = "-3";
if( 0 === this.bookingpress_sidebar_step_data["staffmembers"].is_display_step && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && 1 == this.hide_category_service && "true" == this.appointment_step_form_data.hide_staff_selection && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1);
}
bpa_is_called = true;
}
let form_sequence_first;
if( "object" == typeof this.appointment_step_form_data.form_sequence ){
form_sequence_first = this.appointment_step_form_data.form_sequence[0];
} else {
form_sequence_first = this.appointment_step_form_data.form_sequence;
}
if( false == bpa_is_called && 1 == this.hide_category_service && "service_selection" == form_sequence_first && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && 1 != this.hide_category_service && "true" == this.appointment_step_form_data.hide_staff_selection && false == this.is_staff_member_set_from_url && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && "" == staff_id && "true" == this.appointment_step_form_data.select_any_staffmember ){
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
bpa_is_called = true;
}
/** for the datetime re-arrange step */
if( "datetime" != this.bookingpress_next_tab && "datetime" == this.bookingpress_current_tab && this.bookingpress_sidebar_step_data["service"].is_first_step == 1 && this.bookingpress_sidebar_step_data["datetime"].next_tab_name == "staffmembers" ){
this.appointment_step_form_data.selected_staff_member_id = "";
this.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
}
if( "datetime" != this.bookingpress_next_tab && "datetime" == this.bookingpress_current_tab && this.bookingpress_current_tab != this.bookingpress_next_tab && ( "undefined" != typeof this.appointment_step_form_data.any_staff_selected && 1 == this.appointment_step_form_data.any_staff_selected ) ){
this.appointment_step_form_data.selected_staff_member_id = "";
this.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
this.bookingpress_select_staffmember( "any_staff", 1 );
}
let selected_sid = this.appointment_step_form_data.selected_service;
if(selected_sid != "" && "undefined" != typeof this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date && "" != this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date && null != this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date ) {
this.booking_cal_maxdate = this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date;
const currentDate = new Date();
const targetDate = new Date(this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date);
let diff_in_time = targetDate.getTime() - currentDate.getTime();
let diff_in_days = ( Math.round( diff_in_time / ( 1000 * 3600 * 24 ) ) ) + 1;
const bookingpress_period_available_for_booking = 180;
if(bookingpress_period_available_for_booking < diff_in_days){
/*If max period avilable is less than service expiry date then set limit for the Max period avilable days*/
this.booking_cal_maxdate = new Date( Date.now() + ( 3600 * 1000 * ( 24 * 180 ) ) );
}
}
let use_legacy = "false";
if( "true" == use_legacy ){
this.bookingpress_disable_date_xhr( bpa_selected_service, bpa_selected_date );
} else {
this.bookingpress_disable_date_xhr_v2( bpa_selected_service, bpa_selected_date );
}
},
bookingpress_update_timestep_token( force_update = false, cart_force_update = false ){
const vm = this;
let use_legacy = "false";
let current_tab = vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name;
if( ( "undefined" == typeof vm.bookingpress_cart_addon && ( ( true == force_update && typeof vm.v_calendar_time_token_data != "undefined" ) || ( "datetime" == vm.bookingpress_sidebar_step_data[ vm.bookingpress_current_tab ].previous_tab_name && "d" != vm.appointment_step_form_data.selected_service_duration_unit && "datetime" != vm.bookingpress_current_tab && "false" == use_legacy ) ) ) ||( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 && ( ( ( "undefined" != vm.is_staffmember_activated && 1 == vm.is_staffmember_activated && vm.appointment_step_form_data.selected_staff_member_id != 0 ) && ( "undefined" != typeof vm.appointment_step_form_data.selected_service && vm.appointment_step_form_data.selected_service != 0 ) ) && ( "undefined" != typeof vm.appointment_step_form_data.location_activated && 1 == vm.appointment_step_form_data.location_activated && vm.appointment_step_form_data.selected_location != "" ) || cart_force_update != false ) ) ){
let appointment_selected_date = vm.appointment_step_form_data.store_selected_date || vm.appointment_step_form_data.selected_date;
if( "undefined" != typeof vm.appointment_step_form_data.is_next_day && true == vm.appointment_step_form_data.is_next_day && "undefined" != typeof vm.appointment_step_form_data.next_day_selection_date ){
appointment_selected_date = vm.appointment_step_form_data.next_day_selection_date;
}
let selected_token_data = vm.v_calendar_time_token_data[ appointment_selected_date ][0];
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_set_timeslot_token",
tokenData: selected_token_data,
selectedDate: appointment_selected_date,
_wpnonce:bkp_wpnonce_pre_fetch
};
vm.is_bookingpress_updating_token = true;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm.is_bookingpress_updating_token = false;
vm.is_bookingpress_token_updated = true;
}.bind(this) )
.catch( function (error) {
});
}
},
bookingpress_working_dates_data( working_hour_details, response_data ){
const vm = this;
let timeformat = "5";
let is_client_timezone = "";
let updated_working_hour_details = {};
let available_dates = [];
let response = {};
let firstAvailableDate = "";
let overnight_booking = ("undefined" != typeof response_data.overnight_booking_dates ) ? response_data.overnight_booking_dates : [];
let sorted_working_hours = [];
for( let wdate in working_hour_details ){
let x = 0;
let n = 0;
let is_overnight_booking = overnight_booking.includes( wdate ) || false;
let is_overnight_booking_server = is_overnight_booking;
let overnight_booking_date = "";
sorted_working_hours[wdate] = working_hour_details[ wdate ];
sorted_working_hours[wdate].sort( (a,b) => {
return ( parseInt( a.counter_pos ) < parseInt( b.counter_pos ) ) ? -1 : 1;
} );
for( let wh_data of sorted_working_hours[wdate] ){
let start_datetime = wh_data.store_service_date + " " + wh_data.store_start_time;
let end_datetime = wh_data.selected_end_date + " " + wh_data.store_end_time;
let timezone = wh_data.store_offset;
let stTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_start_time, wh_data, "start" );
wh_data.client_start_time = stTime;
let etTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_end_time, wh_data, "end" );
wh_data.client_end_time = etTime;
if( false == is_overnight_booking ){
is_overnight_booking = wp.hooks.applyFilters( "bookingpress_consider_overnight_booking", is_overnight_booking, wh_data );
}
let stTimeNew = wp.hooks.applyFilters( "bookingpress_modify_datetime_with_timezone", start_datetime, wh_data, "start", true );
let etTimeNew = wp.hooks.applyFilters( "bookingpress_modify_datetime_with_timezone", end_datetime, wh_data, "end", true );
let updated_wdate;
if( "string" == typeof stTimeNew ){
updated_wdate = wdate;
} else {
updated_wdate = stTimeNew.toISOString().split("T")[0];
}
let updated_edate;
if( "string" == typeof etTimeNew ){
updated_edate = wh_data.selected_end_date;
} else {
updated_edate = etTimeNew.toISOString().split("T")[0];
}
if( "undefined" != typeof wh_data.is_day_service && true == wh_data.is_day_service ){
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] && updated_wdate >= vm.jsCurrentDate.toISOString().split("T")[0] ){
updated_working_hour_details[ updated_wdate ] = [];
if( false == is_overnight_booking && !available_dates.includes( updated_wdate + " 00:00:00" ) ){
available_dates.push( updated_wdate + " 00:00:00" );
}
n++;
} else {
continue;
}
} else {
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] ){
updated_working_hour_details[ updated_wdate ] = [];
if( false == is_overnight_booking && !available_dates.includes( updated_wdate + " 00:00:00" ) ){
available_dates.push( updated_wdate + " 00:00:00" );
}
n++;
}
}
if( "" == firstAvailableDate ){
firstAvailableDate = ( "undefined" != typeof response_data.pre_selected_date && true == response_data.pre_selected_date && "undefined" != typeof vm.open_customer_reschedule_appointment_modal && true == vm.open_customer_reschedule_appointment_modal ) ? response_data.selected_date : updated_wdate;
}
wh_data.client_date = updated_wdate;
wh_data.client_end_date = updated_edate;
if( true == is_overnight_booking && "" == overnight_booking_date ){
overnight_booking_date = updated_wdate;
if( "undefined" == typeof updated_working_hour_details[ overnight_booking_date ] ){
updated_working_hour_details[ overnight_booking_date ] = [];
}
}
wh_data.is_both_next_day_time_v2 = false;
if( true == is_overnight_booking ){
if( "true" == is_client_timezone ){
wh_data.is_next_day = false;
}
if( updated_edate > updated_wdate ){
wh_data.is_next_day = true;
}
if( updated_edate == updated_wdate && updated_wdate > overnight_booking_date ){
wh_data.is_both_next_day_time_v2 = true;
wh_data.is_overnight_booking_server = is_overnight_booking_server;
wh_data.is_next_day = true;
wh_data.client_date = wh_data.client_end_date;
}
}
if( true == wh_data.is_both_next_day_time && wh_data.client_end_date > wh_data.client_date ){
wh_data.client_date = wh_data.client_end_date;
}
let startTimeHour = stTime.split(":")[0];
let formatted_startTime = vm.bookingpress_format_time( stTime );
let formatted_endTime = vm.bookingpress_format_time( etTime );
let formatted_datetime = formatted_startTime + " - " + formatted_endTime;
if( "1" == timeformat || "2" == timeformat ){
formatted_datetime = formatted_startTime + " naar " + formatted_endTime;
} else if ( "5" == timeformat || "6" == timeformat ){
formatted_datetime = formatted_startTime + " - " + formatted_endTime;
} else if( "3" == timeformat || "4" == timeformat ){
formatted_datetime = formatted_startTime;
}
wh_data.formatted_start_time = formatted_startTime;
wh_data.formatted_end_time = formatted_endTime;
wh_data.formatted_start_end_time = formatted_datetime;
wh_data.start_hour = startTimeHour;
wh_data.slot_timestamp = new Date( `${wh_data.client_date} ${wh_data.client_start_time}` ).getTime();
if( true == is_overnight_booking ){
if( "undefined" != typeof updated_working_hour_details[ overnight_booking_date ][x] && x == 0){
x = Object.keys( updated_working_hour_details[ overnight_booking_date ] ).length;
}
updated_working_hour_details[ overnight_booking_date ][x] = wh_data;
if( !available_dates.includes( overnight_booking_date + " 00:00:00" ) ){
available_dates.push( overnight_booking_date + " 00:00:00" );
}
} else {
if( "undefined" != typeof updated_working_hour_details[ updated_wdate ][x] && x == 0){
x = Object.keys( updated_working_hour_details[ updated_wdate ] ).length;
}
updated_working_hour_details[ updated_wdate ][x] = wh_data;
}
x++;
}
}
available_dates = wp.hooks.applyFilters( "bookingpress_modify_available_dates_with_day_service", available_dates, working_hour_details, response_data, vm );
firstAvailableDate = wp.hooks.applyFilters( "bookingpress_modify_first_available_date_with_day_service", firstAvailableDate, available_dates, vm );
response.available_dates = available_dates;
response.updated_working_hour_details = updated_working_hour_details;
response.selected_date = firstAvailableDate;
return response;
},
bookingpress_working_dates_data_legacy( working_hour_details, response_data ){
const vm = this;
let timeformat = "5";
let updated_working_hour_details = {};
let available_dates = [];
let response = {};
let firstAvailableDate = "";
for( let wdate in working_hour_details ){
let x = 0;
let n = 0;
for( let wh_data of working_hour_details[ wdate ] ){
let start_datetime = wh_data.store_service_date + " " + wh_data.store_start_time;
let end_datetime = wh_data.store_service_date + " " + wh_data.store_end_time;
let timezone = wh_data.store_offset;
let stTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_start_time, wh_data, "start" );
wh_data.client_start_time = stTime;
let etTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_end_time, wh_data, "end" );
wh_data.client_end_time = etTime;
let updated_wdate = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", wdate, wh_data );
let updated_edate = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", wh_data.selected_end_date, wh_data );
if( "undefined" != typeof wh_data.is_day_service && true == wh_data.is_day_service ){
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] && updated_wdate >= vm.jsCurrentDate.toISOString().split("T")[0] ){
updated_working_hour_details[ updated_wdate ] = [];
available_dates.push( updated_wdate + " 00:00:00" );
n++;
} else {
continue;
}
} else {
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] ){
updated_working_hour_details[ updated_wdate ] = [];
available_dates.push( updated_wdate + " 00:00:00" );
n++;
}
}
if( "" == firstAvailableDate ){
firstAvailableDate = updated_wdate;
}
wh_data.client_date = updated_wdate;
wh_data.client_end_date = updated_edate;
let startTimeHour = stTime.split(":")[0];
let formatted_startTime = vm.bookingpress_format_time( stTime );
let formatted_endTime = vm.bookingpress_format_time( etTime );
let formatted_datetime = formatted_startTime + " - " + formatted_endTime;
if( "1" == timeformat || "2" == timeformat ){
formatted_datetime = formatted_startTime + "naar" + formatted_endTime;
} else if ( "5" == timeformat || "6" == timeformat ){
formatted_datetime = formatted_startTime + " - " + formatted_endTime;
} else if( "3" == timeformat || "4" == timeformat ){
formatted_datetime = formatted_startTime;
}
wh_data.formatted_start_time = formatted_startTime;
wh_data.formatted_end_time = formatted_endTime;
wh_data.formatted_start_end_time = formatted_datetime;
wh_data.start_hour = startTimeHour;
updated_working_hour_details[ updated_wdate ][x] = wh_data;
x++;
}
}
available_dates = wp.hooks.applyFilters( "bookingpress_modify_available_dates_with_day_service", available_dates, working_hour_details, response_data, vm );
firstAvailableDate = wp.hooks.applyFilters( "bookingpress_modify_first_available_date_with_day_service", firstAvailableDate, available_dates, vm );
response.available_dates = available_dates;
response.updated_working_hour_details = updated_working_hour_details;
response.selected_date = firstAvailableDate;
return response;
},
bookingpress_disable_date_xhr_v2( bpa_selected_service = "", bpa_selected_date = "", showLoader = true ){
const vm = this;
if( true == showLoader ){
vm.isLoadTimeLoader = "1";
vm.isLoadDateTimeCalendarLoad = "1";
};
let preselect_date = false;
if( "" != bpa_selected_date ){
preselect_date = true;
}
if( "" == bpa_selected_date ){
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
vm.service_timing = "-3";
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if( "" == bpa_selected_service && "" != vm.appointment_step_form_data.selected_service ){
bpa_selected_service = vm.appointment_step_form_data.selected_service;
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ){
vm.appointment_step_form_data.bookingpress_form_token = vm.appointment_step_form_data.bookingpress_uniq_id + "_" + ( Math.random().toString(36).slice(2) );
}
let startTime = new Date().getTime();
var postData = { action: "bookingpress_fetch_timeslot_data", service_id: bpa_selected_service, selected_service:bpa_selected_service, selected_date:bpa_selected_date, is_preselect: preselect_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
vm.no_timeslot_available = false;
vm.v_calendar_check_month_dates = false;
vm.v_calendar_next_month_dates;
vm.days_off_disabled_dates = "";
if(typeof vm.is_display_custom_duration_loader !== "undefined" && typeof vm.is_display_custom_duration_day_loader !== "undefined"){
if(vm.appointment_step_form_data.selected_service_duration_unit == "d" && (vm.is_display_custom_duration_loader == true || vm.is_display_custom_duration_day_loader == true)){
vm.isLoadDateTimeCalendarLoad = "0";
postData.bpa_choose_from_csd = "true";
}
}
if( "true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader ){
postData.bpa_choose_from_csd = true;
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
postData.bpa_choose_from_csd = true;
postData.is_preselect = true;
postData.selected_date = vm.appointment_step_form_data.selected_date;
}
if( "undefined" != typeof vm.appointment_step_form_data.custom_service_duration_value && "" != vm.appointment_step_form_data.custom_service_duration_value ){
postData.bpa_choose_from_csd = true;
}
;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
let request_time = new Date().getTime() - startTime;
/* Changes to add disable dates class start */
if( "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
/* Changes to add disable dates class end */
if(typeof response.data.bookingpress_custom_service_durations_slot !== "undefined"){
vm.bookingpress_custom_service_durations_slot = response.data.bookingpress_custom_service_durations_slot;
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 1;
document.querySelector(".bpa-front--dt__col").style.order = 2;
}
} else {
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 2;
document.querySelector(".bpa-front--dt__col").style.order = 1;
}
}
vm.is_display_custom_duration_loader = false;
vm.is_display_custom_duration_day_loader = false;
let working_hour_details = response.data.working_details;
let selectedDate = response.data.selected_date;
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
let preselected_date = "";
if( "undefined" != typeof response.data.pre_selected_date && true == response.data.pre_selected_date ){
preselected_date = response.data.selected_date;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
vm.appointment_step_form_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
vm.appointment_step_form_data.selected_date = "";
selectedDate = ( "" != preselected_date ) ? preselected_date : ( wh_details.selected_date || selectedDate );
vm.v_calendar_available_dates = wh_details.available_dates;
vm.v_calendar_timeslots_data = wh_details.updated_working_hour_details;
vm.no_timeslot_available = false;
let v_available_dates_only = [];
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
if( !v_available_dates_only.includes( selectedDate ) && wh_details.selected_date != selectedDate && wh_details.selected_date != "" ){
selectedDate = wh_details.selected_date;
}
vm.v_calendar_available_only_date = v_available_dates_only;
if( "undefined" != typeof selectedDate && "" != selectedDate ){
(function( $ref_ ){
setTimeout(function(){
vm.appointment_step_form_data.selected_date = selectedDate;
vm.bookingpress_select_multi_day_range();
if( "undefined" != typeof $ref_.bkp_front_calendar ){
const calendar = $ref_.bkp_front_calendar;
try{
calendar.move( selectedDate );
} catch( e ){
console.log( e );
}
}
if( "undefined" != typeof $ref_.bkp_front_calendar_responsive ){
const calendar_r = $ref_.bkp_front_calendar_responsive;
try{
calendar_r.move( selectedDate );
} catch( e ){
console.log( e );
}
}
},10);
})( this.$refs );
}
/* V-date-picker attributes */
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_default_label = response.data.max_capacity_capacity;
let vcal_capacity_attrs = response.data.vcal_capacity_attrs;
if( "undefined" != typeof vcal_capacity_attrs && vcal_capacity_attrs.length != "" ){
for( let vcal_date_v2 in vcal_capacity_attrs ){
let vcal_data_v2 = vcal_capacity_attrs[ vcal_date_v2 ];
vcal_date_v2 = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date_v2, {"store_service_date":vcal_date_v2,"store_start_time":"00:00:00","store_offset":"+01:00"} );
if( "0" == vcal_data_v2 ){
vm.v_calendar_blocked_dates.push( vcal_date_v2 );
}
}
}
/* V-date-picker attributes */
vm.v_calendar_default_label = response.data.max_capacity_capacity;
vm.v_calendar_time_token_data = response.data.working_hour_timing_token;
if( "undefined" != typeof wh_details.updated_working_hour_details[ selectedDate ] ){
vm.service_timing = vm.bookingpress_categories_timeslots( wh_details.updated_working_hour_details[ selectedDate ] );
} else {
vm.service_timing = {
"morning_time":[],
"afternoon_time":[],
"evening_time":[],
"night_time":[]
};
vm.no_timeslot_available = true;
}
if( vm.current_screen_size != "desktop" && vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.displayResponsiveCalendar = 0;
}
vm.isLoadTimeLoader = "0";
vm.isLoadDateTimeCalendarLoad = "0";
if( "undefined" == typeof response.data.stop_check || false == response.data.stop_check ){
vm.bookingpress_retrieve_future_month_details( response.data.next_month_date, 1 );
}
setTimeout(function(){
if( "undefined" != typeof vm.is_bookingpress_token_updated && true == vm.is_bookingpress_token_updated ){
// condition update
if( ("undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1) && ( "undefined" != typeof vm.is_staffmember_activated || 1 != vm.is_staffmember_activated && ( vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "staffmembers") || (vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && vm.appointment_step_form_data.bpa_datetime_after_service_selection == 1))) && ( "undefined" != typeof vm.is_staffmember_activated || 1 != vm.is_staffmember_activated && "undefined" != typeof vm.appointment_step_form_data.location_activated || 1 != vm.appointment_step_form_data.location_activated && vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "location" ) ){
vm.bookingpress_update_timestep_token( true, true );
} else {
vm.bookingpress_update_timestep_token( true );
}
}
},10);
setTimeout(() => {
vm.focusFirstDate();
if( "undefined" != typeof working_hour_details && working_hour_details.length == 0){
let focusCancelBtn = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa-front-dc--footer button");
if(focusCancelBtn !== null){
focusCancelBtn.focus();
}
}
const unavailable_date_calendar_input = document.querySelector(".el-form-item .bpa-unavailable-popup-datepicker .el-input__inner");
if(unavailable_date_calendar_input !== null){
unavailable_date_calendar_input.focus();
}
}, 500);
if( "undefined" != typeof selectedDate ){
let selected_date = selectedDate.split(" ")[0];
let timeslot_data = vm.v_calendar_timeslots_data[ selected_date ];
if( "undefined" != typeof timeslot_data ){
vm.appointment_step_form_data.store_service_date = timeslot_data[0].store_service_date;
vm.appointment_step_form_data.store_selected_date = timeslot_data[0].store_service_date;
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_future_month_details( next_month_date = "", counter = 1 ){
const vm = this;
let startDate = next_month_date != "" ? next_month_date : vm.v_calendar_available_dates.at(-1);
if( 4 == counter ){
vm.v_calendar_check_month_dates = true;
vm.v_calendar_next_month_dates = next_month_date;
vm.isHoldBookingRequest = false;
return false;
} else {
vm.isHoldBookingRequest = true;
}
let postData = {
action: "bookingpress_retrieve_entire_month_details",
from_date: startDate,
counter: counter
};
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
postData._wpnonce = bkp_wpnonce_pre_fetch;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
if( ("true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader) || ( "undefined" != typeof vm.bpa_choose_from_csd && true == vm.bpa_choose_from_csd ) ){
postData.bpa_choose_from_csd = true;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof postData.bpa_choose_from_csd ){
vm.bpa_choose_from_csd = true;
}
let working_hour_details = response.data.working_details
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
vm.v_calendar_available_dates = vm.v_calendar_available_dates.concat( wh_details.available_dates );
vm.v_calendar_time_token_data = Object.assign( {},vm.v_calendar_time_token_data, response.data.working_hour_timing_token );
let v_available_dates_only = [];
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
let vcal_capacity_attrs = response.data.vcal_capacity_attrs;
if( "undefined" != typeof vcal_capacity_attrs && vcal_capacity_attrs.length != "" ){
for( let vcal_date_v2 in vcal_capacity_attrs ){
let vcal_data_v2 = vcal_capacity_attrs[ vcal_date_v2 ];
vcal_date_v2 = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date_v2, {"store_service_date":vcal_date_v2,"store_start_time":"00:00:00","store_offset":"+01:00"} );
if( "0" == vcal_data_v2 ){
vm.v_calendar_blocked_dates.push( vcal_date_v2 );
}
}
}
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
vm.v_calendar_available_only_date = v_available_dates_only;
vm.v_calendar_timeslots_data = Object.assign({},vm.v_calendar_timeslots_data, wh_details.updated_working_hour_details );
vm.isLoadDateTimeCalendarLoad = 0;
++counter;
counter = wp.hooks.applyFilters( "bookingpress_modify_next_month_check_counter", counter, response.data );
if( "undefined" == typeof response.data.stop_check || response.data.stop_check == false ){
vm.bookingpress_retrieve_future_month_details( response.data.next_month_date, counter );
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_future_month_details_single( next_month_date = "", next_month_dates = "", counter = 1 ){
const vm = this;
let startDate = next_month_date != "" ? next_month_date : vm.v_calendar_available_dates.at(-1);
vm.v_calendar_check_month_dates = true;
vm.v_calendar_next_month_dates = next_month_date;
vm.isHoldBookingRequest = false;
let postData = {
action: "bookingpress_retrieve_entire_month_details",
from_date: startDate,
counter: counter
};
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
postData._wpnonce = bkp_wpnonce_pre_fetch;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
if( ("true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader) || ( "undefined" != typeof vm.bpa_choose_from_csd && true == vm.bpa_choose_from_csd ) ){
postData.bpa_choose_from_csd = true;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof postData.bpa_choose_from_csd ){
vm.bpa_choose_from_csd = true;
}
let working_hour_details = response.data.working_details
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
vm.v_calendar_available_dates = vm.v_calendar_available_dates.concat( wh_details.available_dates );
vm.v_calendar_time_token_data = Object.assign( {},vm.v_calendar_time_token_data, response.data.working_hour_timing_token );
let v_available_dates_only = [];
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_available_only_date = v_available_dates_only;
vm.v_calendar_timeslots_data = Object.assign({},vm.v_calendar_timeslots_data, wh_details.updated_working_hour_details );
vm.isLoadDateTimeCalendarLoad = 0;
vm.bookingpress_retrieve_future_month_details( next_month_dates, counter );
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_format_time(value){
var default_time_format = "HH:mm";
return moment(String(value), "HH:mm:ss").locale("nl_NL").format(default_time_format)
},
bookingpress_categories_timeslots( timeslot_details ){
let afternoon_slot_timings = parseInt( "12" );
let evening_slot_timings = parseInt( "18" );
let night_slot_timings = parseInt( "" );
if( "undefined" == typeof timeslot_details ){
return {};
}
let service_timings_data = {
"morning_time":[],
"afternoon_time":[],
"evening_time":[],
"night_time":[]
};
let x = 0;
for( let timeslot_data of timeslot_details ){
if( "undefined" != typeof timeslot_data && ( "undefined" == typeof timeslot_data.is_next_day || timeslot_data.is_next_day == false) ){
let startHour = parseInt( timeslot_data.start_hour );
if( startHour >= 0 && startHour < afternoon_slot_timings ){
service_timings_data.morning_time.push( timeslot_data );
} else if( startHour >= afternoon_slot_timings && ( "" == evening_slot_timings || startHour < evening_slot_timings ) ){
service_timings_data.afternoon_time.push( timeslot_data );
} else if ( startHour >= evening_slot_timings && ( "" == night_slot_timings || startHour < night_slot_timings ) ){
service_timings_data.evening_time.push( timeslot_data );
} else {
service_timings_data.night_time.push( timeslot_data );
}
x++;
}
}
if( timeslot_details.length > x ){
for( let timeslot_data of timeslot_details ){
if( "undefined" != typeof timeslot_data && "undefined" != typeof timeslot_data.is_next_day && timeslot_data.is_next_day == true ){
let startHour = parseInt( timeslot_data.start_hour );
service_timings_data.night_time.push( timeslot_data );
}
}
}
let sorted_timings_data = {};
for( let timing_item in service_timings_data ){
let timing_details = Object.assign( [], service_timings_data[ timing_item ] );
timing_details.sort( ( a, b ) => {
return ( parseInt( a.slot_timestamp ) < parseInt( b.slot_timestamp ) ) ? -1 : 1;
});
sorted_timings_data[ timing_item ] = timing_details;
}
return sorted_timings_data;
},
bookingpress_disable_date_xhr( bpa_selected_service = "", bpa_selected_date = "", showLoader = true ){
const vm = this;
if( true == showLoader ){
vm.isLoadTimeLoader = "1";
vm.isLoadDateTimeCalendarLoad = "1";
}
vm.service_timing = "-3";
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if( "" == bpa_selected_service && "" != vm.appointment_step_form_data.selected_service ){
bpa_selected_service = vm.appointment_step_form_data.selected_service;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
vm.appointment_step_form_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ){
vm.appointment_step_form_data.bookingpress_form_token = vm.appointment_step_form_data.bookingpress_uniq_id + "_" + ( Math.random().toString(36).slice(2) );
}
var postData = { action: "bookingpress_get_disable_date", service_id: bpa_selected_service, selected_service:bpa_selected_service, selected_date:bpa_selected_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch };
postData.disabled_dates = JSON.stringify( vm.v_calendar_disable_dates );
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
vm.no_timeslot_available = false;
vm.v_calendar_check_month_dates = false;
vm.v_calendar_next_month_dates = {};
vm.days_off_disabled_dates = "";
if(typeof vm.is_display_custom_duration_loader !== "undefined" && typeof vm.is_display_custom_duration_day_loader !== "undefined"){
if(vm.appointment_step_form_data.selected_service_duration_unit == "d" && (vm.is_display_custom_duration_loader == true || vm.is_display_custom_duration_day_loader == true)){
vm.isLoadDateTimeCalendarLoad = "0";
postData.bpa_choose_from_csd = "true";
}
}
if( "true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader ){
postData.bpa_choose_from_csd = true;
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
postData.bpa_choose_from_csd = true;
postData.is_preselect = true;
postData.selected_date = vm.appointment_step_form_data.selected_date;
}
if( "undefined" != typeof vm.appointment_step_form_data.custom_service_duration_value && "" != vm.appointment_step_form_data.custom_service_duration_value ){
postData.bpa_choose_from_csd = true;
}
;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
vm.service_timing = [];
if(response.data.variant == "success" && (response.data.selected_date != undefined && response.data.days_off_disabled_dates != undefined)){
/* Changes to add disable dates class start */
if( "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
/* Changes to add disable dates class end */
if(typeof response.data.bookingpress_custom_service_durations_slot !== "undefined"){
vm.bookingpress_custom_service_durations_slot = response.data.bookingpress_custom_service_durations_slot;
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 1;
document.querySelector(".bpa-front--dt__col").style.order = 2;
}
} else {
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 2;
document.querySelector(".bpa-front--dt__col").style.order = 1;
}
}
vm.is_display_custom_duration_loader = false;
vm.is_display_custom_duration_day_loader = false;
vm.days_off_disabled_dates = "";
/*V-Calendar disabled dates change start*/
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
vm.v_calendar_disable_dates = [];
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
/*V-Calendar disabled dates change end*/
let use_legacy = "false";
let pro_version = "false";
if( "true" == use_legacy && "false" == pro_version ){
let min_date = vm.jsCurrentDate;
let max_date = vm.booking_cal_maxdate;
let loop = new Date( min_date );
let available_dates = [];
while( loop <= max_date ){
let dt = loop.toISOString().split("T")[0] + " 00:00:00";
if( dt.indexOf( vm.v_calendar_disable_dates ) == -1 ){
available_dates.push( dt );
}
loop.setDate( loop.getDate() + 1 );
}
vm.v_calendar_available_dates = available_dates;
}
let resp_selected_date = response.data.selected_date;
if( vm.current_screen_size != "desktop" && vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.displayResponsiveCalendar = 0;
}
/* V-date-picker attributes */
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_default_label = response.data.max_capacity_capacity;
/* V-date-picker attributes */
vm.days_off_disabled_dates = response.data.days_off_disabled_dates;
vm.appointment_step_form_data.selected_date = response.data.selected_date;
vm.bookingpress_select_multi_day_range();
if( "undefined" != typeof response.data.front_timings ){
vm.service_timing = response.data.front_timings;
if( response.data.front_timings.length <= 0 ){
vm.no_timeslot_available = true;
}
}
if( "undefined" != typeof this.$refs.bkp_front_calendar ){
const calendar = this.$refs.bkp_front_calendar;
calendar.move(vm.appointment_step_form_data.selected_date);
}
vm.isLoadTimeLoader = "0";
if( "undefined" != typeof response.data.empty_front_timings && true == response.data.empty_front_timings ){
vm.isLoadDateTimeCalendarLoad = "1";
vm.appointment_step_form_data.selected_date = response.data.next_available_date;
vm.bookingpress_disable_date( bpa_selected_service, response.data.next_available_date );
return;
} else {
/* Check full day appointments block */
if( false == response.data.prevent_next_month_check ){
let postDataAction = "bookingpress_get_whole_day_appointments";
if( true == response.data.check_for_multiple_days_event ){
postDataAction = "bookingpress_get_whole_day_appointments_multiple_days";
}
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: postDataAction,days_off_disabled_dates: vm.days_off_disabled_dates, service_id: bpa_selected_service, max_available_year: response.data.max_available_year, max_available_month:response.data.max_available_month, selected_service:bpa_selected_service, selected_date:bpa_selected_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch, "next_month": response.data.next_month, "next_year": response.data.next_year, "counter": 1 };
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
postData.appointment_data_obj = JSON.stringify( vm.appointment_step_form_data );
postData.staffmember_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( vm.bookingpress_is_extra_enable == 1 ){
postData.service_extra_details = vm.appointment_step_form_data.bookingpress_selected_extra_details;
};
vm.bookingpress_retrieve_daysoff_for_booked_appointment( postData );
}
setTimeout(function(){
vm.isLoadDateTimeCalendarLoad = "0"
},200);
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_daysoff_for_booked_appointment( postData ){
const vm = this;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) ).then( function( response ) {
vm.days_off_disabled_dates = response.data.days_off_disabled_dates;
vm.isLoadDateTimeCalendarLoad = 0;
if(false == response.data.prevent_next_month_check && response.data.counter <= 3 ){ /** Currently data will be checked for next 3 months */
postData.days_off_disabled_dates = vm.days_off_disabled_dates;
postData.next_month = response.data.next_month;
postData.next_year = response.data.next_year;
postData.counter++;
if( postData.counter < 4 ){
vm.isHoldBookingRequest = true;
vm.bookingpress_retrieve_daysoff_for_booked_appointment( postData );
} else {
vm.v_calendar_check_month_dates = true;
let next_month_year = {
"month": parseInt( response.data.next_month ),
"year": response.data.next_year,
"postData": postData
};
vm.v_calendar_next_month_dates = next_month_year;
vm.isHoldBookingRequest = false;
}
/* V-Calendar disabled dates change start */
if( "" != response.data.days_off_disabled_dates_string ){
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date ){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
let use_legacy = "false";
let pro_version = "false";
if( "true" == use_legacy && "false" == pro_version ){
let min_date = vm.jsCurrentDate;
let max_date = vm.booking_cal_maxdate;
let loop = new Date( min_date );
let available_dates = [];
while( loop <= max_date ){
let dt = loop.toISOString().split("T")[0] + " 00:00:00";
if( dt.indexOf( vm.v_calendar_disable_dates ) == -1 ){
available_dates.push( dt );
}
loop.setDate( loop.getDate() + 1 );
}
vm.v_calendar_available_dates = available_dates;
}
}
/* V-Calendar disabled dates change end */
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.vcal_attributes ){
let vcal_attributes = response.data.vcal_attributes;
vm.bookingpress_select_multi_day_range();
if( vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
if( vm.v_calendar_attributes.length > 0 ){
vm.v_calendar_attributes = vm.v_calendar_attributes.concat( vcal_attr_data );
} else {
vm.v_calendar_attributes = vcal_attr_data;
}
if( "" != vm.v_calendar_attributes_current ){
let joined_cal_attr_current = { ...vm.v_calendar_attributes_current, ...vcal_attr_data_current };
vm.v_calendar_attributes_current = joined_cal_attr_current;
} else {
vm.v_calendar_attributes_current = vcal_attr_data_current;
}
}
}
} else {
/* V-Calendar disabled dates change start */
if( "" != response.data.days_off_disabled_dates_string ){
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date ){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
}
/* V-Calendar disabled dates change end */
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.vcal_attributes ){
let vcal_attributes = response.data.vcal_attributes;
vm.bookingpress_select_multi_day_range();
if( vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
if( vm.v_calendar_attributes.length > 0 ){
vm.v_calendar_attributes = vm.v_calendar_attributes.concat( vcal_attr_data );
} else {
vm.v_calendar_attributes = vcal_attr_data;
}
if( "" != vm.v_calendar_attributes_current ){
let joined_cal_attr_current = { ...vm.v_calendar_attributes_current, ...vcal_attr_data_current };
vm.v_calendar_attributes_current = joined_cal_attr_current;
} else {
vm.v_calendar_attributes_current = vcal_attr_data_current;
}
}
}
}
});
},
bpaMoveMonthResponsive( page ){
const vm = this;
if( "undefined" != typeof vm.v_calendar_check_month_dates && true == vm.v_calendar_check_month_dates && "undefined" != typeof vm.v_calendar_next_month_dates && false == vm.isHoldBookingRequest ){
let current_month = page.month;
let current_year = page.year;
let next_page_month = parseInt( vm.v_calendar_next_month_dates.split("-")[1] ) || null;
let next_page_year = parseInt( vm.v_calendar_next_month_dates.split("-")[0] ) || null;
if( null != next_page_month && null != next_page_year ){
if( current_year == next_page_year && current_month == next_page_month ){
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, 1 );
} else if( (current_year == next_page_year && current_month > next_page_month) || current_year > next_page_year ){
let current_date = new Date( `${current_year}-${current_month}-1` );
let next_page_date = new Date( `${next_page_year}-${next_page_month}-1` );
const monthDiff = current_date.getMonth() - next_page_date.getMonth();
counter = 0 - monthDiff;
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, counter );
}
setTimeout(() => {
vm.focusFirstDate();
}, 500);
}
}
},
bpaMoveMonth( page ){
const vm = this;
if( "undefined" != typeof vm.v_calendar_check_month_dates && true == vm.v_calendar_check_month_dates && "undefined" != typeof vm.v_calendar_next_month_dates && false == vm.isHoldBookingRequest ){
let current_month = page.month;
let current_year = page.year;
let next_page_month = parseInt( vm.v_calendar_next_month_dates.split("-")[1] ) || null;
let next_page_year = parseInt( vm.v_calendar_next_month_dates.split("-")[0] ) || null;
if( null != next_page_month && null != next_page_year ){
if( current_year == next_page_year && current_month == next_page_month ){
vm.isLoadDateTimeCalendarLoad = 1;
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, 1 );
} else if( (current_year == next_page_year && current_month > next_page_month) || current_year > next_page_year ){
let current_date = new Date( `${current_year}-${current_month}-1` );
let next_page_date = new Date( `${next_page_year}-${next_page_month}-1` );
const monthDiff = current_date.getMonth() - next_page_date.getMonth();
let month_ = ( current_month.toString().length == 1 ) ? ( "0" + current_month.toString() ) : current_month;
let nextMonthDate = current_year + "-" + month_ + "-01";
counter = 0 - monthDiff;
vm.isLoadDateTimeCalendarLoad = 1;
vm.bookingpress_retrieve_future_month_details_single( nextMonthDate, vm.v_calendar_next_month_dates, counter );
}
}
}
},
bookingpress_get_all_parent_node_with_overflow_hidden( elem ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
let computed_style = getComputedStyle( elem );
if( computed_style.overflow == "hidden" || computed_style.overflowX == "hidden" || computed_style.overflowY == "hidden" ){
parents.push(elem);
}
}
return parents;
},
bookingpress_onload_func(){
const vm = this;
vm.current_screen_size = "desktop";
if(window.outerWidth >= 1200){
vm.current_screen_size = "desktop";
}else if(window.outerWidth < 1200 && window.outerWidth >= 768){
vm.current_screen_size = "tablet";
}else if(window.outerWidth < 768){
vm.current_screen_size = "mobile";
}
let is_mobile_device = "";
if( "mobile" != vm.current_screen_size && ("true" == is_mobile_device || true == is_mobile_device) ){
vm.current_screen_size = "mobile";
}
if(window.innerWidth <= 576){
vm.bookingpress_container_dynamic_class = "";
let bookingpress_container = vm.$el;
let parents_with_hidden_overflow = vm.bookingpress_get_all_parent_node_with_overflow_hidden( bookingpress_container );
let apply_overflow = ( parents_with_hidden_overflow.length > 0 ) ? true : false;
window.addEventListener("scroll", function(e){
let bookingpress_scrollTop = bookingpress_container.getBoundingClientRect().top;
let bookingpress_scrollBottom = bookingpress_container.getBoundingClientRect().bottom;
let bpa_current_scroll = window.scrollY;
let targetBottom = bookingpress_container.getBoundingClientRect().bottom;
let viewportHeight = window.innerHeight || document.documentElement.clientHeight;
if( bookingpress_scrollTop < 50 && bpa_current_scroll >= bookingpress_scrollTop && targetBottom >= viewportHeight ){
vm.bookingpress_container_dynamic_class = "bpa-front__mc--is-sticky" ;
vm.bookingpress_footer_dynamic_class = "__bpa-is-sticky"; /* Change this string */
if( apply_overflow ){
for( let i = 0; i < parents_with_hidden_overflow.length; i++ ){
let parent = parents_with_hidden_overflow[i];
parent.classList.add("--bpa-is-overflow-visible");
}
}
} else {
vm.bookingpress_container_dynamic_class = "";
vm.bookingpress_footer_dynamic_class = ""; /* Change this string */
if( apply_overflow ){
for( let i = 0; i < parents_with_hidden_overflow.length; i++ ){
let parent = parents_with_hidden_overflow[i];
parent.classList.remove("--bpa-is-overflow-visible");
}
}
}
});
}
window.addEventListener("resize", function(e){
if( window.innerWidth <= 576 ){
vm.bookingpress_container_dynamic_class = "";
let bookingpress_container = vm.$el;
let bookingpress_scrollTop = bookingpress_container.getBoundingClientRect().top;
let bookingpress_scrollBottom = bookingpress_container.getBoundingClientRect().bottom;
let bpa_current_scroll = window.scrollY;
bookingpress_scrollBottom = bpa_current_scroll + bookingpress_scrollBottom + bookingpress_scrollTop;
let targetBottom = bookingpress_container.getBoundingClientRect().bottom;
let viewportHeight = window.innerHeight || document.documentElement.clientHeight;
if( bookingpress_scrollTop < 50 && bpa_current_scroll >= bookingpress_scrollTop && targetBottom >= viewportHeight ){
vm.bookingpress_container_dynamic_class = "bpa-front__mc--is-sticky";
vm.bookingpress_footer_dynamic_class = "__bpa-is-sticky" /* Change this string */
} else {
vm.bookingpress_container_dynamic_class = "";
vm.bookingpress_footer_dynamic_class = ""; /* Change this string */
}
}
});
},
bookingpress_step_navigation(current_tab, next_tab, previous_tab, is_strict_validate = 1){
const vm = this;
var bookingpress_is_validate = 0;
vm.bookingpress_remove_error_msg();
var bookingpress_validate_fields_arr = vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validate_fields;
if( "staffmembers" == vm.bookingpress_current_tab && "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected && true == vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected ){
is_strict_validate = 0;
}
if("service" == vm.bookingpress_current_tab){
if( vm.bookingpress_is_extra_enable == "1" && typeof vm.appointment_step_form_data.selected_service != "" ){
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if(typeof selected_service_data != "undefined") {
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
bpa_selected_service_extra_count++;
}
}
if("undefined" != selected_service_data.service_extras && "" != selected_service_data.service_extras && bpa_selected_service_extra_count < selected_service_data.bookingpress_min_no_extra_service){
bookingpress_is_validate = 1;
let errorMsg = "Please select at least [x] extra service";
errorMsg = errorMsg.replace("[x]", selected_service_data.bookingpress_min_no_extra_service);
vm.bookingpress_set_extra_service_error_msg(errorMsg);
}
else if("undefined" != selected_service_data.service_extras && "" != selected_service_data.service_extras && bpa_selected_service_extra_count > selected_service_data.bookingpress_max_no_extra_service ){
bookingpress_is_validate = 1;
let errorMsg = "You can select maximum [x] extra services";
errorMsg = errorMsg.replace("[x]", selected_service_data.bookingpress_max_no_extra_service);
vm.bookingpress_set_extra_service_error_msg(errorMsg);
}
}
}
}
if((vm.bookingpress_current_tab == "basic_details") && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
bookingpress_validate_fields_arr.forEach(function(currentValue, index, arr){
if(vm.bookingpress_current_tab == vm.bookingpress_current_tab && vm.appointment_step_form_data[currentValue] == "" && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
});
if(bookingpress_is_validate == 0 && is_strict_validate == 1){
var customer_form = "appointment_step_form_data";
vm.$refs[customer_form].validate((valid) => {
if (!valid) {
bookingpress_is_validate = 1;
}else{
bookingpress_is_validate = 0;
}
});
}
}else{
if(is_strict_validate == 1){
bookingpress_validate_fields_arr.forEach(function(currentValue, index, arr){
if(vm.bookingpress_current_tab == vm.bookingpress_current_tab && vm.appointment_step_form_data[currentValue] == "" && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
if( currentValue == "selected_start_time" && vm.appointment_step_form_data[currentValue] == "" ) {
if( vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
} else {
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
}
});
}
}
if( "service" == current_tab && "service" != vm.bookingpress_current_tab ){
var bookingpress_selected_date = vm.appointment_step_form_data.selected_date+"T00:00:00+00:00";
var bookingpress_disable_dates_arr = vm.days_off_disabled_dates.split(",");
if(bookingpress_disable_dates_arr.includes(bookingpress_selected_date)){
let newDate = new Date("2026-01-16 14:28:54");
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( newDate ) ){
let sel_month = newDate.getMonth() + 1;
let sel_year = newDate.getFullYear();
let sel_date = newDate.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
newDate = sel_year + "-" + sel_month + "-" + sel_date;
}
vm.appointment_step_form_data.selected_date = newDate;
}
}
if( ("basic_details" == current_tab && "service" == vm.bookingpress_current_tab) || ("summary" == current_tab && "service" == vm.bookingpress_current_tab) ){
if(vm.appointment_step_form_data.selected_service_duration_unit != "d"){
if(vm.appointment_step_form_data.selected_start_time == ""){
bookingpress_is_validate = 1;
}
}
}
if(bookingpress_is_validate == 0){
vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].is_allow_navigate = 1;
let current_selected_tab = vm.bookingpress_current_tab;
vm.bookingpress_current_tab = current_tab;
vm.bookingpress_next_tab = next_tab;
vm.bookngpress_previous_tab = previous_tab;
vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].is_allow_navigate = 1;
if( "datetime" == current_tab ){
let selected_service_id = vm.appointment_step_form_data.selected_service;
vm.bookingpress_disable_date(selected_service_id,vm.appointment_step_form_data.selected_date);
}
}
if( window.innerWidth <= 576 ){
let container = vm.$el;
let pos = 0;
if( null != container ){
pos = container.getBoundingClientRect().top + window.scrollY;
}
const myVar = Error().stack;
let allow_scroll = true;
if( /mounted/.test( myVar ) ){
allow_scroll = false;
}
if( allow_scroll ){
setTimeout(function(){
window.scrollTo({
top: pos,
behavior: "smooth",
});
}, 500);
}
}
if( "summary" == current_tab && "summary" == vm.bookingpress_current_tab ) {
const vm = this;
var total_payment_div_count = document.querySelectorAll(".bpa-front-module--pm-body__item").length;
if(total_payment_div_count == 1){
var total_payment_div = document.querySelector(".bpa-front-module--pm-body__item");
if( null != total_payment_div && "undefined" != typeof total_payment_div) {
vm.prevent_verification_on_load = true;
total_payment_div.click();
vm.prevent_verification_on_load = false;
}
}
vm.bookingpress_activate_payment_gateway_total_counter = vm.bookingpress_activate_payment_gateway_counter;
if( vm.paypal_payment == "paypal" ){
let total_counter_payment_gateway = vm.bookingpress_activate_payment_gateway_total_counter + 1;
vm.bookingpress_activate_payment_gateway_total_counter = total_counter_payment_gateway;
}
if( total_payment_div_count == 0 && vm.is_only_onsite_enabled == "1" ){
vm.appointment_step_form_data.selected_payment_method = "on-site";
vm.skip_checking_final_step_validation = true;
vm.select_payment_method("on-site");
}
}
if(current_tab == "datetime" || next_tab == "datetime"){
setTimeout(() => {
const custom_duration_select = document.querySelector(".bpa-front-module--date-and-time .bpa-custom-duration-select .el-input__inner");
if(custom_duration_select !== null){
custom_duration_select.focus();
}
vm.focusFirstDate();
window.is_focused = false;
/* const recurring_date_picker = document.querySelector(".bpa-recurring-appointment-head-row .bpa-front-form-control--date-picker .el-input__inner");
if(recurring_date_picker !== null){
recurring_date_picker.focus();
} */
const calendar_btn_mobile = document.querySelector(".bpa-front--dt__ts-sm-back-btn .el-button");
if(calendar_btn_mobile !== null){
calendar_btn_mobile.focus();
}
}, 1000);
}
if(current_tab == "basic_details" || next_tab == "basic_details"){
setTimeout(() => {
document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active")
?.querySelector("input:not([readonly]):not([disabled]):not([type='hidden']), select:not([disabled]), textarea:not([readonly]):not([disabled])")
?.focus();
}, 10);
}
if(next_tab == "summary"){
setTimeout(() => {
let find_first_pg = document.querySelector(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item");
if(find_first_pg !== null){
find_first_pg.focus();
}else {
find_first_pg = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa-front-dc--footer .summery-book-appointment-btn");
if(find_first_pg !== null){
find_first_pg.focus();
}
}
}, 10);
}
if(current_tab == "service" || next_tab == "service"){
setTimeout(() => {
let find_first_service = document.querySelector(".bpa-front-module--service-item .bpa-front-si-card");
if(find_first_service !== null){
find_first_service.focus();
}
}, 10);
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
;
},
bookingpress_select_multi_day_range(day = ""){
const vm = this;
if(vm.appointment_step_form_data.selected_date){
day = vm.appointment_step_form_data.selected_date;
vm.bookingpress_selected_date_range = [];
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_end_date = vm.appointment_step_form_data.selected_date;
var selected_date = new Date(day);
var selected_service_duration = vm.appointment_step_form_data.selected_service_duration;
var bookingpress_selected_date_range = [];
var new_date = new Date(day + " 00:00:00");
bookingpress_selected_date_range.push(day);
for(var i = 1; i < selected_service_duration; i++) {
new_date.setDate(new_date.getDate() + 1);
var month = "" + (new_date.getMonth() + 1),
day = "" + new_date.getDate(),
year = new_date.getFullYear();
if (month.length < 2){
month = "0" + month;
}
if (day.length < 2){
day = "0" + day;
}
var add_date = [year, month, day].join("-");
bookingpress_selected_date_range.push(add_date);
if(i == selected_service_duration-1) {
vm.appointment_step_form_data.selected_end_date = add_date;
}
}
if(bookingpress_selected_date_range.length > 0){
vm.bookingpress_selected_date_range = bookingpress_selected_date_range;
}
}
}
},
async bookingpress_select_multi_staffmember(selected_staffmember_id, is_any_staff_option_selected = 0){
var vm = this;
},
bpa_is_select_multistaff_member(staff_member_id){
var vm = this;
return false;
},
bpa_search_service( value ){
const vm = this;
value = value.toLowerCase();
vm.bpasortedServices.forEach( ( element,index ) =>{
vm.bpasortedServices[index].show_with_search = false;
if( element.bookingpress_service_name.toLowerCase().includes( value ) ){
vm.bpasortedServices[index].show_with_search = true;
}
});
},
bpa_search_staff( value ){
const vm = this;
value = value.toLowerCase();
vm.bookingpress_staffmembers_details.forEach( ( element,index ) => {
vm.bookingpress_staffmembers_details[index].show_with_staff_search = false;
if( (element.bookingpress_staffmember_firstname.toLowerCase().includes( value )) || element.bookingpress_staffmember_lastname.toLowerCase().includes( value ) ){
vm.bookingpress_staffmembers_details[index].show_with_staff_search = true;
}
});
},
bookingpress_validatePhoneField(event) {
this.$nextTick(() => {
if (!this.$refs.appointment_step_form_data) return;
const phoneValue = this.appointment_step_form_data.form_fields.customer_phone;
if (/^[\d\+\s\-\(\)]+$/.test(phoneValue.trim())) {
this.$refs.appointment_step_form_data.clearValidate(["customer_phone"]);
}
});
},
bookingpress_phone_country_open_repeater( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-field-main-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.add("bpa-active-col");
let parent_upper = vm.bookingpress_get_parents( parent[0], ".el-col" );
if( 0 < parent_upper.length && null != parent_upper[0] ){
//parent_upper[0].classList.add("bpa-active-col");
}
}
}
}
},
bookingpress_phone_country_close_repeater( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-active-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.remove("bpa-active-col");
}
}
}
},
bpa_check_space_validation(bpa_input_value,v_modal_data){
var vm = this;
if(bpa_input_value.trim() == ""){
vm.appointment_step_form_data["form_fields"][v_modal_data] = "";
return "";
}
return bpa_input_value;
},
bpa_check_password_validation( bpa_email_value ) {
const vm = this;
if( "undefined" == typeof vm.appointment_step_form_data.form_fields.customer_password || vm.bpa_check_user_login == 1 ){
return;
}
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: "bookingpress_password_validation_check", _wpnonce:bkp_wpnonce_pre_fetch, _email: bpa_email_value };
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof response.data.bpa_password_already_exists ){
if( response.data.bpa_password_already_exists == true ){
if(this.$refs.appointment_step_form_data){
this.$refs.appointment_step_form_data.clearValidate("customer_password");
}
vm.appointment_step_form_data.bpa_password_already_exists = true;
vm.customer_details_rule.customer_password[0].required = false;
vm.appointment_step_form_data.bpa_user_email_already_exists = true;
vm.appointment_step_form_data.form_fields["customer_password"] = "";
}
} else {
vm.appointment_step_form_data.bpa_password_already_exists = false;
vm.customer_details_rule.customer_password[0].required = true;
vm.appointment_step_form_data.bpa_user_email_already_exists = false;
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
dayClicked_v2( day ){
const vm = this;
vm.dayClicked( day );
vm.bookingpress_select_multi_day_range( day );
let timeslot_data = vm.v_calendar_timeslots_data[ day.id ];
let max_available_date = vm.booking_cal_maxdate;
;
if( "undefined" != typeof timeslot_data ){
vm.appointment_step_form_data.store_service_date = timeslot_data[0].store_service_date;
vm.appointment_step_form_data.store_selected_date = timeslot_data[0].store_service_date;
}
},
bookingpress_day_click(day){
const vm = this;
let disable_dates = vm.v_calendar_disable_dates;
let max_available_date = vm.booking_cal_maxdate;
;
let max_date_value = false;
if( max_available_date instanceof Date ){
max_date_value = ( max_available_date < ( new Date( day.id ) ) );
} else {
max_date_value = ( max_available_date < day.id );
}
if( disable_dates.includes( day.id + " 00:00:00" ) || disable_dates.includes( day.id ) || max_date_value || (day.date < vm.jsCurrentDateFormatted && false == day.isToday) ){
return false;
}
vm.appointment_step_form_data.selected_date = day.id;
vm.bookingpress_select_multi_day_range(day);
vm.dayClicked( day );
},
bookingpress_get_final_step_amount() {
const vm = this;
var payment_method = vm.appointment_step_form_data.selected_payment_method;
var total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
var tax_amount = vm.appointment_step_form_data.tax_amount_without_currency;
if( "" == tax_amount ){
tax_amount = 0;
}
let total_payable_amount_without_tax = parseFloat(total_payable_amount);
if(typeof tax_amount != "undefined"){
total_payable_amount = parseFloat(total_payable_amount) + parseFloat(tax_amount);
}
let is_cart_addon = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined" && ("undefined" == typeof vm.is_club_service || vm.is_club_service != true ) )
{
/* total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total; */
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
total_payable_amount_without_tax = parseFloat(total_payable_amount);
if( typeof tax_amount != "undefined" ){
total_payable_amount_without_tax = parseFloat( total_payable_amount ) - parseFloat( tax_amount );
if( 1 == vm.is_coupon_activated ){
if(vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.tax_amount_before_coupon_without_currency != "undefined"){
total_payable_amount_without_tax = parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.tax_amount_before_coupon_without_currency );
}
}
}
/* console.trace( "INSIDE CART CONDITION ===>>> " + vm.appointment_step_form_data.bookingpress_cart_total ); */
is_cart_addon = true;
}
var coupon_code = vm.appointment_step_form_data.coupon_code;
var selected_service = vm.appointment_step_form_data.selected_service;
var selected_staff_member_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
if( 0 == total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount, true );
}
var subtotal_price = total_payable_amount;
/* apply coupon */
if( 1 == vm.is_coupon_activated ){
if(vm.appointment_step_form_data.coupon_code != ""){
if(typeof vm.appointment_step_form_data.coupon_discount_amount != "undefined" && vm.appointment_step_form_data.coupon_discount_amount != 0){
if(vm.appointment_step_form_data.tax_percentage != ""){
var tax_percentage = parseFloat(vm.appointment_step_form_data.tax_percentage);
if(typeof vm.appointment_step_form_data.tax_price_display_options != "undefined" && vm.appointment_step_form_data.tax_price_display_options == "include_taxes"){
tax_amount = (total_payable_amount_without_tax * tax_percentage) / (100+tax_percentage);
total_payable_amount_without_tax = total_payable_amount_without_tax - tax_amount;
}
}
let f_payable_amount = total_payable_amount_without_tax - vm.appointment_step_form_data.coupon_discount_amount;
if( 0 == f_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = f_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( f_payable_amount, true );
}
var tax_amount = vm.appointment_step_form_data.tax_amount_without_currency;
if( typeof tax_amount != "undefined" ){
vm.appointment_step_form_data.total_payable_amount = vm.appointment_step_form_data.total_payable_amount + tax_amount;
}else {
tax_amount = 0;
}
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.total_payable_amount, true );
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.total_payable_amount );
subtotal_price = f_payable_amount + tax_amount;
if( "undefined" != vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency && 1 == vm.bookingpress_is_deposit_payment_activate ){
if( vm.appointment_step_form_data.bookingpress_deposit_payment_method == "deposit_or_full_price" || vm.appointment_step_form_data.bookingpress_deposit_payment_method == "allow_customer_to_pay_full_amount" ){
if(is_cart_addon){
let cart_items_deposite_amount = 0;
vm.appointment_step_form_data.cart_items.forEach((current_cart_item, cart_item_index) => {
cart_items_deposite_amount = parseFloat(cart_items_deposite_amount) + parseFloat(current_cart_item.bookingpress_deposit_price);
});
if( cart_items_deposite_amount < subtotal_price ){
vm.appointment_step_form_data.calculate_deposit = true;
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
}else{
if( vm.appointment_step_form_data.deposit_payment_type == "fixed") {
if( vm.appointment_step_form_data.deposit_payment_amount < subtotal_price ){
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
vm.appointment_step_form_data.calculate_deposit = true;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
} else if( vm.appointment_step_form_data.deposit_payment_type == "percentage") {
let bookingpress_deposit_amt = total_payable_amount_without_tax * ( parseFloat(vm.appointment_step_form_data.deposit_payment_amount) / 100);
if( bookingpress_deposit_amt < subtotal_price ){
vm.appointment_step_form_data.calculate_deposit = true;
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
}
}
}
}
}
} else {
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
if( 0 == total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount, true );
}
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
subtotal_price = total_payable_amount;
}
}
/* If deposit payment module enabled then calculate deposit amount */
var deposit_method = vm.appointment_step_form_data.bookingpress_deposit_payment_method;
var deposit_type = vm.appointment_step_form_data.deposit_payment_type;
var deposit_value = vm.appointment_step_form_data.deposit_payment_amount;
var bookingpress_deposit_amt = 0;
var bookingpress_deposit_due_amt = 0;
if(payment_method != "" && 1 == vm.bookingpress_is_deposit_payment_activate && vm.appointment_step_form_data.bookingpress_remove_deposit != 1 && ( "undefined" == typeof vm.appointment_step_form_data.is_clubbed_service || false == vm.appointment_step_form_data.is_clubbed_service ) ){
var bookingpress_check_deposit_avaliable = false;
if( 1 == is_cart_addon ){
if (typeof vm.appointment_step_form_data.cart_items != "undefined"){
var cart_items_temp_data = vm.appointment_step_form_data.cart_items;
if(cart_items_temp_data != "" && cart_items_temp_data.length != 0){
cart_items_temp_data.forEach(function(currentValue, index, arr){
if (typeof cart_items_temp_data[index].bookingpress_deposit_due_amount != "undefined"){
if(parseFloat(cart_items_temp_data[index].bookingpress_deposit_due_amount) > 0){
bookingpress_check_deposit_avaliable = true;
}
}
});
}
}
}else{
if(typeof vm.appointment_step_form_data.deposit_payment_type != undefined && typeof vm.appointment_step_form_data.deposit_payment_amount_percentage != undefined){
if(vm.appointment_step_form_data.deposit_payment_type == "percentage" && vm.appointment_step_form_data.deposit_payment_amount_percentage == 100){
bookingpress_check_deposit_avaliable = false;
}else{
bookingpress_check_deposit_avaliable = true;
}
}
}
if(bookingpress_check_deposit_avaliable && payment_method != "on-site" && (typeof vm.appointment_step_form_data.bookingpress_package_applied_data == "undefined" || (typeof vm.appointment_step_form_data.bookingpress_package_applied_data != "undefined") && vm.appointment_step_form_data.bookingpress_package_applied_data == "") && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
if(deposit_method == "deposit_or_full_price"){
//if( true == is_cart_addon ){
//subtotal_price = total_payable_amount_without_tax;
/* vm.bookingpress_price_with_currency_symbol( total_payable_amount_without_tax, true ); */
//}
if(deposit_type == "percentage"){
bookingpress_deposit_amt = total_payable_amount_without_tax * ( parseFloat(deposit_value) / 100);
bookingpress_deposit_amt = bookingpress_deposit_amt;
/* vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt, true ); */
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
} else if(deposit_type == "fixed") {
bookingpress_deposit_amt = deposit_value;
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
}
} else if(deposit_method == "allow_customer_to_pay_full_amount") {
bookingpress_deposit_amt = subtotal_price;
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
}
let total_payable_amount_temp = bookingpress_deposit_amt;
if(typeof vm.appointment_step_form_data.tip_amount != undefined && vm.appointment_step_form_data.tip_amount> 0 && vm.appointment_step_form_data.bookingpress_deposit_total != undefined && vm.appointment_step_form_data.bookingpress_deposit_payment_method == "deposit_or_full_price"){
total_payable_amount_temp = parseFloat(vm.appointment_step_form_data.bookingpress_deposit_total) + parseFloat(vm.appointment_step_form_data.tip_amount);
}
vm.appointment_step_form_data.bookingpress_deposit_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt );
vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt, true );
vm.appointment_step_form_data.bookingpress_deposit_due_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt );
vm.appointment_step_form_data.bookingpress_deposit_due_amt_without_currency = bookingpress_deposit_due_amt;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount_temp );
if( 0 == total_payable_amount_temp ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount_temp;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount_temp, true );
}
/* 26 April 2023 changes */
if( 1 == is_cart_addon ){
if( "allow_customer_to_pay_full_amount" == deposit_method ){
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bookingpress_deposit_due_amt + tax_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt + tax_amount );
} else {
if( 1 == vm.is_tax_activated ){
/* let tax_method = vm.appointment_step_form_data.tax_price_display_options; */
/* if( "exclude_taxes" == tax_method ){ */
let bpa_deposit_due_amount_total = ( parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.bookingpress_deposit_total ) );
if( 1 == vm.is_coupon_activated){
let coupon_discount = vm.appointment_step_form_data.coupon_discount_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total - coupon_discount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.bookingpress_deposit_due_amount_total );
} else {
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bpa_deposit_due_amount_total );
}
} else {
let bpa_deposit_due_amount_total = ( parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.bookingpress_deposit_total ) );
if( 1 == vm.is_coupon_activated){
let coupon_discount = vm.appointment_step_form_data.coupon_discount_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total - coupon_discount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.bookingpress_deposit_due_amount_total );
}else{
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bpa_deposit_due_amount_total );
}
}
}
}
/* 26 April 2023 changes */
}
else
{
vm.appointment_step_form_data.bookingpress_deposit_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt );
vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency = bookingpress_deposit_amt;
vm.appointment_step_form_data.bookingpress_deposit_due_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt );
vm.appointment_step_form_data.bookingpress_deposit_due_amt_without_currency = bookingpress_deposit_due_amt;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( subtotal_price );
if( 0 == subtotal_price ){
vm.appointment_step_form_data.total_payable_amount = subtotal_price;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( subtotal_price, true );
}
if(payment_method != "on-site" && (typeof vm.appointment_step_form_data.bookingpress_package_applied_data == "undefined" || (typeof vm.appointment_step_form_data.bookingpress_package_applied_data != "undefined") && vm.appointment_step_form_data.bookingpress_package_applied_data == "")){
var bookingpress_is_recurring_appointment_active = false;
if(typeof vm.appointment_step_form_data.recurring_appointments != "undefined"){
if(vm.appointment_step_form_data.is_recurring_appointments == true || vm.appointment_step_form_data.is_recurring_appointments == "true"){
bookingpress_is_recurring_appointment_active = true;
}
}
if( 1 == is_cart_addon && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
vm.appointment_step_form_data.bookingpress_deposit_total = total_payable_amount;
vm.appointment_step_form_data.bookingpress_deposit_total_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
}
if(bookingpress_is_recurring_appointment_active && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
vm.appointment_step_form_data.bookingpress_deposit_total = subtotal_price;
vm.appointment_step_form_data.bookingpress_deposit_total_with_currency = vm.bookingpress_price_with_currency_symbol( subtotal_price );
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = 0;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol(0);
}
}
}
}
if(vm.appointment_step_form_data.selected_payment_method != " - " && vm.appointment_step_form_data.selected_payment_method != ""){
vm.appointment_step_form_data.selected_payment_method_org = vm.appointment_step_form_data.selected_payment_method;
}
var paypal_payment_method_type = "lagacy";
if(vm.appointment_step_form_data.total_payable_amount == 0 && typeof vm.appointment_step_form_data.selected_payment_method_org != "undefined" && vm.appointment_step_form_data.selected_payment_method_org == "paypal" && paypal_payment_method_type == "popup" ) {
var final_document_divnew = document.getElementById("paypal-button-container");
vm.show_paypal_popup_button = "false";
if(final_document_divnew){
document.getElementById("paypal-button-container").style.display = "none";
}
}
else if(vm.appointment_step_form_data.total_payable_amount != 0 && typeof vm.appointment_step_form_data.selected_payment_method_org != "undefined" && vm.appointment_step_form_data.selected_payment_method_org == "paypal" && paypal_payment_method_type == "popup" ) {
vm.show_paypal_popup_button = "true";
document.getElementById("paypal-button-container").style.display = "block";
vm.appointment_step_form_data.selected_payment_method = vm.appointment_step_form_data.selected_payment_method_org;
}
if( "undefined" == typeof vm.prevent_verification_on_load || false == vm.prevent_verification_on_load ){
this.bookingpress_verify_total_payment_amount();
}
},
bookingpress_verify_total_payment_amount_v2(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let bpk_payable_data = {
action: "bookingpress_pre_booking_verify_details",
booking_token: vm.appointment_step_form_data.bookingpress_uniq_id,
booking_data: JSON.stringify( vm.appointment_step_form_data ),
_wpnonce: bkp_wpnonce_pre_fetch
};
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bpk_payable_data ) )
.then( function (response) {
if( "undefined" != typeof response.data.verification_token ){
vm.appointment_step_form_data.authorized_token = response.data.verification_token;
vm.appointment_step_form_data.authorized_time = response.data.verification_time;
}
}.bind(this) )
.catch( function (error) {
});
},
bookingpress_verify_total_payment_amount(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
vm.bkp_processing_token = true;
let bpk_payable_data = {
action: "bookingpress_pre_booking_verify_details",
booking_token: vm.appointment_step_form_data.bookingpress_uniq_id,
booking_data: JSON.stringify( vm.appointment_step_form_data ),
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bpk_payable_data ) )
.then( function (response) {
if( "undefined" != typeof response.data.verification_token ){
vm.appointment_step_form_data.authorized_token = response.data.verification_token;
vm.appointment_step_form_data.authorized_time = response.data.verification_time;
vm.bkp_processing_token = false;
}
if( vm.bkp_process_booking == true ){
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
});
},
bookingpress_recalculate_payable_amount(){
return false;
const vm = this;
var bookingpress_recalculate_data = {};
bookingpress_recalculate_data.action = "bookingpress_recalculate_appointment_data";
bookingpress_recalculate_data.appointment_details = JSON.stringify( vm.appointment_step_form_data );
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_recalculate_data._wpnonce = bkp_wpnonce_pre_fetch;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
bookingpress_recalculate_data.client_timezone_offset = vm.bookingpress_timezone_offset;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
bookingpress_recalculate_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_recalculate_data ) )
.then( function (response) {
vm.appointment_step_form_data = response.data.appointment_data
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error)
});
},
bookingpress_apply_coupon_code(final_call = false){
const vm = this;
vm.coupon_apply_loader = "1";
var bookingpress_apply_coupon_data = {};
bookingpress_apply_coupon_data.action = "bookingpress_apply_coupon_code";
bookingpress_apply_coupon_data.appointment_details = JSON.stringify( vm.appointment_step_form_data );
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_apply_coupon_data._wpnonce = bkp_wpnonce_pre_fetch;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_apply_coupon_data ) )
.then( function (response) {
vm.coupon_apply_loader = "0";
vm.coupon_applied_status = response.data.variant;
if(response.data.variant == "error"){
vm.coupon_code_msg = response.data.msg;
vm.appointment_step_form_data.coupon_discount_amount = 0;
/* for the coupon code error display */
if( document.querySelector(".bpa-bs__coupon-validation.--is-error") != null ){
document.querySelector(".bpa-bs__coupon-validation.--is-error").style.display = "flex";
}
}else{
vm.coupon_code_msg = response.data.msg;
vm.coupon_discounted_amount = "-" + response.data.discounted_amount;
vm.bpa_coupon_apply_disabled = 1;
vm.appointment_step_form_data.applied_coupon_res = { "coupon_data": response.data.coupon_data };
}
vm.appointment_step_form_data.bookingpress_temp_subtotal = 0;
if(response.data.coupon_discount_amount > 0 )
{
vm.appointment_step_form_data.bookingpress_temp_subtotal = response.data.bookingpress_temp_subtotal;
vm.appointment_step_form_data.bookingpress_temp_subtotal_with_currency = response.data.bookingpress_temp_subtotal_with_currency;
vm.appointment_step_form_data.coupon_discount_amount = response.data.coupon_discount_amount;
vm.appointment_step_form_data.coupon_discount_amount_with_currecny = response.data.coupon_discount_amount_with_currecny;
if( typeof response.data.tax_amount != "undefined" ){
vm.appointment_step_form_data.tax_amount_before_coupon = vm.appointment_step_form_data.tax_amount;
vm.appointment_step_form_data.tax_amount_before_coupon_without_currency = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount = response.data.tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.total_payable_amount_with_currency = response.data.total_payable_amount_with_currency;
vm.appointment_step_form_data.calculated_tax_amount_org = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_without_currency_org = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = response.data.tax_amount;
}
if( 0 == response.data.total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = response.data.total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( response.data.total_payable_amount, true );
}
}
vm.bookingpress_get_final_step_amount();
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},
bookingpress_remove_coupon_code(final_call = false){
const vm = this;
let bookingpress_remove_coupon_data = {
action: "bookingpress_remove_coupon_code",
coupon_code: vm.appointment_step_form_data.coupon_code,
};
let bkp_wpnonce_pre = "4ac51a523d";
let bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_remove_coupon_data._wpnonce = bkp_wpnonce_pre_fetch;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_remove_coupon_data ) )
.then( function (response) {
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
vm.appointment_step_form_data.coupon_code = "";
vm.appointment_step_form_data.applied_coupon_res = "";
vm.coupon_code_msg = "";
/* vm.bookingpress_recalculate_payable_amount() */
vm.bpa_coupon_apply_disabled = 0;
vm.coupon_applied_status = "error";
vm.coupon_discounted_amount = "";
vm.appointment_step_form_data.coupon_discount_amount = 0;
vm.appointment_step_form_data.bookingpress_temp_subtotal = 0;
vm.appointment_step_form_data.bookingpress_temp_subtotal_with_currency = "";
if(typeof vm.appointment_step_form_data.tax_amount_before_coupon != "undefined") {
vm.appointment_step_form_data.tax_amount = vm.appointment_step_form_data.tax_amount_before_coupon;
vm.appointment_step_form_data.tax_amount_without_currency = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.calculated_tax_amount_org = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount_before_coupon;
}
vm.bookingpress_get_final_step_amount();
},
generateSpamCaptchav2(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: "bookingpress_generate_spam_captcha", _wpnonce:bkp_wpnonce_pre_fetch };
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.variant != "error" && (response.data.captcha_val != "" && response.data.captcha_val != undefined)){
}else{
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch!="undefined" && bkp_wpnonce_pre_fetch!=null && response.data.updated_nonce!=""){
document.getElementById("_wpnonce").value = response.data.updated_nonce;
} else {
vm.$notify({
title: response.data.title,
message: response.data.msg,
type: response.data.variant,
customClass: "error_notification"
});
}
if( "undefined" != typeof response.data.updated_ics_nonce && "" != response.data.updated_ics_nonce && null != document.getElementById( "bpa_ics_nonce" ) ){
document.getElementById( "bpa_ics_nonce" ).value = response.data.updated_ics_nonce;
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
async bookingpress_render_thankyou_content(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
await vm.generateSpamCaptchav2();
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_render_thankyou_content", bookingpress_uniq_id: vm.appointment_step_form_data.bookingpress_uniq_id, _wpnonce:bkp_wpnonce_pre_fetch };
if( "undefined" != typeof vm.load_synchronized_thankyou_page && true == vm.load_synchronized_thankyou_page ){
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "success"){
var bookingpress_appointment_id = response.data.appointment_id;
document.getElementById("bpa-thankyou-screen-div").innerHTML = response.data.thankyou_content;
document.getElementById("bpa-failed-screen-div").innerHTML = response.data.failed_content;
wp.hooks.doAction("bpa_calendar_js_init", bookingpress_appointment_id);
if( null != document.getElementById("bookingpress_google_calendar") ){
document.getElementById("bookingpress_google_calendar").setAttribute( "href", response.data.bpa_google_cal_link );
}
if( null != document.getElementById("bookingpress_yahoo_calendar") ) {
document.getElementById("bookingpress_yahoo_calendar").setAttribute( "href", response.data.bpa_yahoo_cal_link );
}
setTimeout(function(){
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
const link = document.querySelector(".bpa-front-module--atc-wrapper .bpa-front-module--atc__item a");
const button = document.querySelector(".bpa-front-module--atc-wrapper .bpa-front-module--atc__item button");
// Focus on whichever element exists (prioritizing the link if both exist)
if (link) {
link.focus();
} else if (button) {
button.focus();
}
},1000);
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
});
} else {
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "success"){
var bookingpress_appointment_id = response.data.appointment_id;
document.getElementById("bpa-thankyou-screen-div").innerHTML = response.data.thankyou_content;
document.getElementById("bpa-failed-screen-div").innerHTML = response.data.failed_content;
wp.hooks.doAction("bpa_calendar_js_init", bookingpress_appointment_id);
if( null != document.getElementById("bookingpress_google_calendar") ){
document.getElementById("bookingpress_google_calendar").setAttribute( "href", response.data.bpa_google_cal_link );
}
if( null != document.getElementById("bookingpress_yahoo_calendar") ) {
document.getElementById("bookingpress_yahoo_calendar").setAttribute( "href", response.data.bpa_yahoo_cal_link );
}
setTimeout(function(){
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
},1000);
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
});
}
},
checkBeforeBookProAppointment(){
const vm = this;
setTimeout(function(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_pro_before_book_appointment", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm.appointment_step_form_data );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "error"){
vm.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm.service_timing = [];
}
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
}else{
vm.bookingpress_remove_error_msg();
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},1500);
},
bookingpress_book_appointment(){
const vm2 = this;
vm2.isLoadBookingLoader = "1";
vm2.isBookingDisabled = true;
/* for the coupon code error hide start */
if( 1 == vm2.is_coupon_activated ){
if( document.querySelector(".bpa-bs__coupon-validation.--is-error") != null ){
document.querySelector(".bpa-bs__coupon-validation.--is-error").style.display = "none";
}
}
/* for the coupon code error hide end */
vm2.bookingpress_process_to_book_appointment();
},
async bookingpress_process_to_book_appointment(){
const vm2 = this;
if( "undefined" != typeof vm2.bkp_processing_token && true == vm2.bkp_processing_token ){
vm2.bkp_process_booking = true;
return false;
}
if(vm2.is_display_error != "1"){
/* vm2.appointment_step_form_data.service_timing = vm2.service_timing */
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_book_appointment_booking", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm2.appointment_step_form_data );
const cdata = await this.bookingpress_reload_captcha();
let updateData = JSON.parse( postData.appointment_data );
for (let bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
updateData[ bookingpress_grecaptcha_field_v3 ] = cdata;
}
postData.appointment_data = JSON.stringify( updateData );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm2.bkp_process_booking = false;
var bookingpress_redirection_mode = "external_redirection";
if(bookingpress_redirection_mode == "external_redirection"){
if(response.data.variant == "redirect"){
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
},50);
vm2.bookingpress_remove_error_msg();
}else if(response.data.variant == "redirect_url"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else if(response.data.variant == "error"){
vm2.bookingpress_set_error_msg(response.data.msg);
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else{
vm2.bookingpress_remove_error_msg();
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
setTimeout(function(){
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
},2000);
}else{
var bookingpress_uniq_id = vm2.appointment_step_form_data.bookingpress_uniq_id;
if( "undefined" != typeof wp.hooks ){
wp.hooks.doAction("bookingpress_after_book_appointment");
}
if(response.data.variant != "error"){
vm2.bookingpress_render_thankyou_content();
vm2.bookingpress_remove_error_msg();
if(response.data.variant == "redirect"){
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
},50);
vm2.bookingpress_remove_error_msg();
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed != "undefined" && response.data.is_transaction_completed == "1"){
vm2.bookingpress_remove_error_msg();
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "none";
document.getElementById("bpa-thankyou-screen-div").style.display = "block";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed != "undefined" && response.data.is_transaction_completed == "0"){
vm2.bookingpress_remove_error_msg();
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "block";
document.getElementById("bpa-thankyou-screen-div").style.display = "none";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed == "undefined"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else{
vm2.appointment_step_form_data.is_transaction_completed = 1;
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "none";
document.getElementById("bpa-thankyou-screen-div").style.display = "block";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
vm2.appointment_step_form_data.is_transaction_completed = "";
vm2.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
}
}
}.bind(this) )
.catch( function (error) {
let errorText = ("undefined" != typeof error.response.statusText ) ? error.response.statusText : error;
vm2.bookingpress_set_error_msg( error.response.status + " " + errorText);
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
});
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
},
inputFormat() {
let text = this.appointment_step_form_data.card_number.split(" ").join("");
/* this.cardVdid is not formated in 4 spaces */
this.cardVadid = text;
if (text.length > 0) {
/* regExp 4 in 4 number add an space between */
text = text.match(new RegExp(/.{1,4}/, "g")).join(" ")
/* accept only numbers */
.replace(new RegExp(/[^\d]/, "ig"), " ");
}
/* this.appointment_step_form_data.card_number is formated on 4 spaces */
this.appointment_step_form_data.card_number = text;
/* after formatd they callback cardType for choose a type of the card */
this.GetCardType(this.cardVadid);
},
/* loop for the next 9 years for expire data on credit card */
expirationDate() {
let yearNow = new Date().getFullYear();
for (let i = yearNow; i < yearNow + this.timeToExpire; i++) {
this.years.push({ year: i });
}
},
validCreditCard(value) {
let inputValidate = document.getElementById("cardNumber");
/* luhn algorithm */
let numCheck = 0,
bEven = false;
value = value.toString().replace(new RegExp(/\D/g, ""));
for (let n = value.length - 1; n >= 0; n--) {
let cDigit = value.charAt(n),
digit = parseInt(cDigit, 10);
if (bEven && (digit *= 2) > 9) digit -= 9;
numCheck += digit;
bEven = !bEven;
}
let len = value.length;
/* true: return valid number */
/* this.cardType return true if have an valid number on regx array */
if (numCheck % 10 === 0 && len === 16 && this.cardType) {
inputValidate.classList.remove("notValid");
inputValidate.classList.add("valid");
this.isBookingDisabled = false;
}
/* false: return not valid number */
else if (!(numCheck % 10 === 0) && len === 16) {
inputValidate.classList.remove("valid");
inputValidate.classList.add("notValid");
this.isBookingDisabled = true;
/* if not have number on input */
} else {
inputValidate.classList.remove("valid");
inputValidate.classList.remove("notValid");
this.isBookingDisabled = false;
}
},
/* get the name of the card name */
GetCardType(number) {
this.regx.forEach((item) => {
if (number.match(item.re) != null) {
this.cardType = item.logo;
/* cClass add a class with the name of cardName to manipulate with css */
this.cClass = item.name.toLowerCase();
} else if (!number) {
this.cardType = "";
this.cClass = "";
}
});
/* after choose a cardtype return the number for the luhn algorithm */
this.validCreditCard(number);
},
/* mouse down on btn */
mouseDw() {
this.btnClassName = "btn__active";
},
/* mouse up on btn */
mouseUp() {
this.btnClassName = "";
},
blr() {
let cr = document.getElementsByClassName("card--credit__card")[0];
if( null != cr && "undefined" != typeof cr.classList ){
cr.classList.remove("cvv-active")
}
},
async bookingpress_set_timezone(){
const vm = this;
var bookingpress_timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
let clientTimezoneOffset = new Date().getTimezoneOffset(); /** get client timezone offset in minutes from UTC 0. If client is in UTC -10:00 timezone, then this line will return 600 minutes. If timezone is in daylight saving timezone then it will return 540 minutes ( 09:00 hours ) */
let client_timezone_offset = -1 * ( clientTimezoneOffset / 60 ); /** converted minutes into hours - returns -2 */
let offset_minute = client_timezone_offset % 1; /** Retrieve remaining minutes in case if the minutes falls with decimal numbers */
let final_offset = clientTimezoneOffset; /* hours + "" + minute; /** concate the hours and minutes */
vm.bookingpress_timezone = bookingpress_timezone;
vm.bookingpress_timezone_offset = final_offset;
vm.appointment_step_form_data.selected_date = vm.get_formatted_date( new Date() );
let is_dst_time = 0;
let current_datetime = new Date();
let jan1 = new Date( current_datetime.getFullYear(), 0, 1, 0, 0, 0, 0 );
let temp = jan1.toGMTString();
let jan2 = new Date( temp.substring(0, temp.lastIndexOf(" ") - 1 ) );
let std_tz_offset = ( jan1 - jan2 ) / ( 1000 * 60 * 60 );
let june1 = new Date(current_datetime.getFullYear(), 6, 1, 0, 0, 0, 0);
temp = june1.toGMTString();
let june2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
let daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
if( std_tz_offset != daylight_time_offset ){
is_dst_time = 1;
}
vm.bookingpress_dst_timezone = is_dst_time;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var bookingpress_postdata = { action: "bookingpress_set_clients_timezone", clients_timezone: bookingpress_timezone, _wpnonce: bkp_wpnonce_pre_fetch };
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_postdata ) )
.then( function (response){
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_calculate_service_addons_price(service_id, service_name = "", service_price = "", service_price_without_currency = ""){},
bookingpress_calculate_service_addons_price_legacy(service_id, service_name = "", service_price = "", service_price_without_currency = ""){
const vm = this;
vm.appointment_step_form_data.selected_service = service_id;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if(service_name != "" && service_price != "" && service_price_without_currency != ""){
vm.appointment_step_form_data.selected_service_name = service_name;
vm.appointment_step_form_data.selected_service_price = service_price;
vm.appointment_step_form_data.service_price_without_currency = service_price_without_currency;
}
var postData = {
action: "bookingpress_calculate_service_addons_price",
selected_service_obj: vm.appointment_step_form_data,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
if(vm.appointment_step_form_data.selected_service == service_id){
vm.appointment_step_form_data.selected_service_price = response.data.selected_service_total_price;
vm.appointment_step_form_data.total_payable_amount = response.data.price_without_currency;
vm.appointment_step_form_data.total_payable_amount_with_currency = response.data.price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = response.data.price_without_currency;
if(response.data.is_tax_calculated == 1){
vm.appointment_step_form_data.tax_amount = response.data.tax_amount;
if(typeof vm.appointment_step_form_data.tax_amount_without_currency != "undefined") {
vm.appointment_step_form_data.tax_amount_without_currency = response.data.tax_amount_without_currency;
}
}
}
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_modify_front_dates_as_service(){
const vm = this;
var service_id = vm.appointment_step_form_data.selected_service;
if(vm.is_loaded_service_disabled_dates !== "undefined" && vm.is_loaded_service_disabled_dates != service_id){
vm.appointment_step_form_data.selected_date = vm.appointment_step_form_data.default_selected_date;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_change_front_calendar_dates",
service_obj: vm.appointment_step_form_data,
_wpnonce: bkp_wpnonce_pre
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
/* vm.days_off_disabled_dates = response.data.disabled_dates */
vm.appointment_step_form_data.selected_date = response.data.next_selected_date;
vm.is_loaded_service_disabled_dates = service_id;
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
}
},
bookingpress_hide_show_extra_description(bookingpress_extra_service_id){
const vm = this;
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ].service_extras;
let selected_extra = selected_service_data[ bookingpress_extra_service_id ];
if( "undefined" != typeof selected_extra ){
if( "0" == selected_extra.bookingpress_is_display_description ){
selected_extra.bookingpress_is_display_description = "1";
} else {
selected_extra.bookingpress_is_display_description = "0";
}
}
},
bookingpress_select_any_staffmember(){
const vm = this;
let step_data = vm.bookingpress_sidebar_step_data["staffmembers"];
vm.appointment_step_form_data.select_any_staffmember = "true";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
vm.appointment_step_form_data.selected_staff_member_id = 0;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = true;
if( vm.appointment_step_form_data.bpa_datetime_after_staffselection == 1 && "undefined" != typeof vm.appointment_step_form_data.bpa_after_select_datetime_available_staff ){
let time_details_arr = vm.appointment_step_form_data.bpa_after_select_datetime_available_staff;
if( 1 < time_details_arr.available_staffs.length ){
let available_staff_id = time_details_arr.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( time_details_arr ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
if( ("undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && vm.appointment_step_form_data.bpa_datetime_before_staffselection != 1) && ("undefined" != typeof time_details.happy_hour_data ) ) {
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = time_details_arr.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
} else {
if( "service" == step_data.next_tab_name && vm.bookingpress_sidebar_step_data[step_data.next_tab_name].is_display_step == 1 ){
vm.appointment_step_form_data.selected_service = "";
}
vm.appointment_step_form_data.bpa_all_available_staff_member = [];
if( vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name == "datetime" && vm.appointment_step_form_data.selected_service == "" && vm.appointment_step_form_data.select_any_staffmember && vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected == true){
vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime = 1;
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
vm.appointment_step_form_data.bpa_all_available_staff_member.push( currentValue.bookingpress_staffmember_id );
});
}
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
} else {
vm.bpasortedServices[x].is_visible = false;
}
}
}
vm.bookingpress_step_navigation(step_data.next_tab_name, step_data.next_tab_name, step_data.previous_tab_name, 0);
},
async bookingpress_select_staffmember(selected_staffmember_id, is_any_staff_option_selected = 0, event){
if(event){
event.preventDefault();
if(event.key === "Enter"){
if(event.target.classList.contains("bpa-front-staff-rat-cb__item")){
return;
}
}
}
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
var bookingpress_is_selected_staff_from_url = "0";
vm.v_calendar_disable_dates = [];
vm.v_calendar_blocked_dates = [];
vm.v_calendar_attributes_current = [];
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( selected_staffmember_id ) > -1 ){
return false;
}
if(typeof vm.appointment_step_form_data.cart_items == "undefined" && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && vm.appointment_step_form_data.bpa_datetime_before_staffselection != 1 ) ){
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
vm.appointment_step_form_data.bpa_available_staffwise_service = [];
if( vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name == "datetime" ){
vm.appointment_step_form_data.bpa_datetime_hide_capacity = true;
}
if( (vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && "datetime" == vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name && vm.appointment_step_form_data.selected_service == "") && ( "undefined" == typeof vm.is_multi_staffmember_activate && vm.is_multi_staffmember_activate != 1 ) || ( "service" == vm.bookingpress_sidebar_step_data.datetime.next_tab_name && vm.appointment_step_form_data.selected_service == "" && (vm.appointment_step_form_data.hide_staff_selection == "true" || vm.appointment_step_form_data.hide_staff_selection == true)) ){
vm.appointment_step_form_data.bpa_datetime_after_service_selection = 1;
let service_data_arr = vm.bookingpress_all_services_data;
if (vm.bookingpress_staffmembers_details.length === 1) {
selected_staffmember_id = vm.bookingpress_staffmembers_details[0].bookingpress_staffmember_id;
}
if( "any_staff" != selected_staffmember_id ){
for (let key in service_data_arr) {
let service_arr = service_data_arr[key];
if( "undefined" != typeof service_arr.assigned_staffmembers ) {
if (service_arr.assigned_staffmembers.includes(selected_staffmember_id)) {
vm.appointment_step_form_data.bpa_available_staffwise_service.push(service_arr.bookingpress_service_id);
}
}
}
}
if( "any_staff" == selected_staffmember_id && "undefined" != vm.appointment_step_form_data.happy_hours_activated && 1 == vm.appointment_step_form_data.happy_hours_activated ){
for (let key in service_data_arr) {
let service_arr = service_data_arr[key];
if ("undefined" != typeof service_arr.assigned_staffmembers) {
for (let i = 0; i < vm.appointment_step_form_data.bpa_all_available_staff_member.length; i++) {
let staffmember_id = vm.appointment_step_form_data.bpa_all_available_staff_member[i];
if (service_arr.assigned_staffmembers.includes(staffmember_id)) {
vm.appointment_step_form_data.bpa_available_staffwise_service.push(service_arr.bookingpress_service_id);
break;
}
}
}
}
}
}
let service_id = vm.appointment_step_form_data.selected_service;
let service_data = vm.bookingpress_all_services_data[ service_id ];
let use_legacy_any_staff = false;
if( selected_staffmember_id == "any_staff" && "undefined" != typeof service_data && "undefined" != typeof service_data.bookingpress_service_duration_unit && "d" == service_data.bookingpress_service_duration_unit ){
use_legacy_any_staff = true;
}
vm.appointment_step_form_data.any_staff_selected = 0;
if( true == use_legacy_any_staff ){
return await vm.bookingpress_select_staffmember_legacy( selected_staffmember_id, is_any_staff_option_selected );
} else if(selected_staffmember_id == "any_staff" ){
vm.appointment_step_form_data.any_staff_selected = 1;
if( "" != vm.appointment_step_form_data.selected_service ){
vm.isLoadServiceLoader = "0";
if( "undefined" != typeof vm.isLoadLocationLoader ){
vm.isLoadLocationLoader = "0";
}
let assigned_staffs = [];
service_data.assigned_staffmembers.forEach( function(staff_id){
assigned_staffs.push( staff_id );
});
let choose_from_url = false;
let assigned_updated_staffs = [];
if( 0 < bookingpress_is_selected_staff_from_url && 0 < assigned_staffs.length ){
let staff_id_from_url = bookingpress_is_selected_staff_from_url;
if( assigned_staffs.includes( staff_id_from_url ) ){
assigned_staffs = [staff_id_from_url];
choose_from_url = true;
}
}
if( 1 == assigned_staffs.length ){
vm.appointment_step_form_data.any_staff_selected = 0;
let selected_staffmember_id = ( true == choose_from_url ) ? assigned_staffs[0] : service_data.assigned_staffmembers[0];
/*Added for applying selected staff memebr price */
let service_staff_details = service_data.staff_member_details[ selected_staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
/*Added for applying selected staff memebr price */
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
vm.hide_capacity_text_flag = false;
} else {
vm.appointment_step_form_data.available_staffs = assigned_staffs;
vm.hide_capacity_text_flag = true;
}
} else {
if( "service" == vm.bookingpress_current_tab ){
let f = 0;
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let first_service_category = "";
let assigned_staffs = [];
for (let x in vm.bpasortedServices) {
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && false == elm.is_disabled ){
elm.assigned_staffmembers.forEach( function(staff_id){
assigned_staffs.push( staff_id );
});
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if ("" == first_service_category) {
first_service_category = elm.bookingpress_category_id;
}
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
vm.appointment_step_form_data.available_staffs = assigned_staffs;
vm.hide_capacity_text_flag = true;
let hidden_category_for_staff = [];
for (let ci in vm.service_categories) {
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
/* if (category_staff.indexOf(response.data.staffmember_id.toString()) < 0) {
hidden_category_for_staff.push(category_id);
} */
}
if ("" != first_service_category) {
for (let c in vm.bookingpress_all_categories) {
vm.bookingpress_all_categories[c].is_visible = true;
let current_category = vm.bookingpress_all_categories[c];
if (current_category.category_id == first_service_category) {
vm.bpa_select_category(current_category.category_id, current_category.category_name);
} else {
if (hidden_category_for_staff.indexOf(current_category.category_id.toString()) > -1) {
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
vm.isLoadServiceLoader = "0";
if( "undefined" != typeof vm.isLoadLocationLoader ){
vm.isLoadLocationLoader = "0";
}
}
vm.hide_capacity_text_flag = false;
}
} else {
vm.hide_capacity_text_flag = false;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.available_staffs = [];
if( vm.is_staff_first_step == 1 ){
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let visible_service_ids = [];
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( selected_staffmember_id ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
visible_service_ids.push( elm.bookingpress_service_id );
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( selected_staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
let current_category = vm.bookingpress_all_categories[c];
vm.bookingpress_all_categories[c].is_visible = true;
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
} else {
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
if( vm.is_bring_anyone_with_you_activated == 1 ){
let service_min_capacity = selected_service_data.staff_member_details[ selected_staffmember_id].bookingpress_min_service_capacity;
if( service_min_capacity != "undefined" && vm.appointment_step_form_data.bookingpress_selected_bring_members < service_min_capacity ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members );
}
}
let service_staff_details = selected_service_data.staff_member_details[ selected_staffmember_id ];
let consider_staff_price = true;
if( ( typeof vm.appointment_step_form_data.bpa_datetime_after_staffselection !== "undefined" && vm.appointment_step_form_data.bpa_datetime_after_staffselection == 1 ) && ( typeof vm.appointment_step_form_data.is_happy_hours_applied !== "undefined" && vm.appointment_step_form_data.is_happy_hours_applied == 1 ) ) {
consider_staff_price = false;
}
if ( true == consider_staff_price ) {
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
}
}
let step_data = "staffmembers";
let f = 0;
let is_club_staff = "0";
if(typeof vm.appointment_step_form_data.is_club_staff != "undefined" && vm.appointment_step_form_data.is_club_staff == "1"){
is_club_staff = "1";
}
if( "staffmembers" == vm.bookingpress_current_tab ){
if(is_club_staff == "0"){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1);
}
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id );
}
}
}
vm.bpa_select_category( "" );
},
async bookingpress_select_staffmember_legacy(selected_staffmember_id, is_any_staff_option_selected = 0){
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
var bookingpress_is_selected_staff_from_url = "0";
vm.v_calendar_disable_dates = [];
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( selected_staffmember_id ) > -1 ){
return false;
}
if(typeof vm.appointment_step_form_data.cart_items == "undefined"){
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
if(selected_staffmember_id == "any_staff" ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_get_any_staffmember_id",
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.bookingpress_repeat_custom_form_fields( vm.appointment_step_form_data.selected_service );
}
} else {
postData.selected_bring_members = 1;
}
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
if( 1 > response.data.staffmember_id ){
for( let s in vm.bookingpress_staffmembers_details ){
let staffmember_details = vm.bookingpress_staffmembers_details[s];
let staffmember_selected_services = staffmember_details.assigned_service_details.includes(vm.appointment_step_form_data.selected_service);
if( staffmember_selected_services ){
let staffmember_id = staffmember_details.bookingpress_staffmember_id;
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( staffmember_id ) < 0 ){
response.data.staffmember_id = staffmember_id;
}
}
}
}
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let set_service_visibility = false;
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
} else {
if( "staffmembers" == vm.bookingpress_current_tab && "" != vm.appointment_step_form_data.selected_staff_member_id ){
set_service_visibility = true;
}
}
if( "service" == vm.bookingpress_current_tab || true == set_service_visibility ){
let f = 0;
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( response.data.staffmember_id.toString() ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
if( "" != first_service_category ){
for( let c of vm.service_categories ){
if( c.bookingpress_category_id == first_service_category ){
vm.bpa_select_category( c.bookingpress_category_id, c.bookingpress_category_name );
break;
}
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( response.data.staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
vm.bookingpress_all_categories[c].is_visible = true;
let current_category = vm.bookingpress_all_categories[c];
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
vm.isLoadServiceLoader = "0";
/* vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1); */
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( response.data.staffmember_id );
}
}
vm.bpa_select_category( "" );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
}else{
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
if( vm.is_staff_first_step == 1 ){
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let visible_service_ids = [];
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( selected_staffmember_id ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
visible_service_ids.push( elm.bookingpress_service_id );
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( selected_staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
let current_category = vm.bookingpress_all_categories[c];
vm.bookingpress_all_categories[c].is_visible = true;
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
} else {
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ selected_staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
}
let step_data = "staffmembers";
let f = 0;
if( "staffmembers" == vm.bookingpress_current_tab ){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1);
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id );
}
}
}
vm.bpa_select_category( "" );
},
bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id ){
const vm = this;
/** Enable Bring Any one if the service has only 1 capacity but the selected staff has more that 1 capacity */
let is_bring_anone_displayed = document.querySelectorAll(".--bpa-sao-guest-module");
if( "" == selected_staffmember_id || 1 > selected_staffmember_id ){
return false;
}
let selected_service = vm.appointment_step_form_data.selected_service;
if( "" == selected_service ){
return false;
}
let staffmember_details = vm.bookingpress_staffmembers_details;
for( let s in staffmember_details ){
let current_staffmember = staffmember_details[s];
let staffmember_id = current_staffmember.bookingpress_staffmember_id;
if( staffmember_id == selected_staffmember_id ){
let assigned_service_price_list = current_staffmember.assigned_service_price_details;
let max_capacity = assigned_service_price_list[ selected_service ].assigned_service_capacity;
let min_capacity = assigned_service_price_list[ selected_service ].assigned_service_min_capacity;
if( "undefined" == typeof vm.bookingpress_bring_anyone_with_you_details[selected_service] ){
vm.bookingpress_bring_anyone_with_you_details[selected_service] = {
"bookingpress_service_id": selected_service,
"bookingpress_service_max_capacity": parseInt(max_capacity),
"bookingpress_service_min_capacity": parseInt(min_capacity),
};
} else {
vm.bookingpress_bring_anyone_with_you_details[selected_service].bookingpress_service_max_capacity = parseInt(max_capacity);
vm.bookingpress_bring_anyone_with_you_details[selected_service].bookingpress_service_min_capacity = parseInt(min_capacity);
}
vm.appointment_step_form_data.service_max_capacity = parseInt(max_capacity);
vm.appointment_step_form_data.service_min_capacity = parseInt(min_capacity);
}
}
},
bookingpress_is_in_viewport(element) {
const rect = element.getBoundingClientRect();
return (
rect.bottom > 0 &&
rect.right > 0 &&
rect.top < (window.innerHeight || document.documentElement.clientHeight) &&
rect.left < (window.innerWidth || document.documentElement.clientWidth)
);
},
bookingpress_close_extra_drawer(){
const vm = this;
if( "undefined" != typeof vm.bpa_show_extras_drawer && false == vm.bpa_show_extras_drawer ){
return;
}
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_focus = document.getElementById("bap-service-" + selected_service);
const target = document.querySelector(".bpa-front-dc--service-body");
if(selected_service_focus && this.bookingpress_is_in_viewport(target)){
selected_service_focus.focus();
}
vm.appointment_step_form_data.selected_service = "";
vm.appointment_step_form_data.selected_service_name = "";
vm.appointment_step_form_data.selected_service_price = "";
vm.appointment_step_form_data.service_price_without_currency = "";
if( "" != selected_service ){
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_extras = ( "undefined" != typeof selected_service_data.service_extras ) ? selected_service_data.service_extras : false;
if( false != service_extras ){
for( let se in service_extras ){
vm.appointment_step_form_data.bookingpress_selected_extra_details[ se ].bookingpress_is_selected = false;
vm.appointment_step_form_data.bookingpress_selected_extra_details[ se ].bookingpress_selected_qty = 1;
}
}
}
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
/** reset bring anyone details */
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = 1;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
}
},
bookingpress_get_service_capacity(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
const vm = this;
var postData = {
action: "bookingpress_get_service_max_capacity",
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
vm.appointment_step_form_data.service_max_capacity = response.data.max_capacity
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_service_advance_see_less(){
const vm = this;
vm.service_advance_see_less = "1";
vm.bookingpress_close_extra_drawer();
},
bookingpress_load_more_extras(){
const vm = this;
if(vm.is_load_more_extras == "0"){
vm.is_load_more_extras = "1";
}else{
vm.is_load_more_extras = "0";
}
},
bpa_focus_select_elm( $el ){
const vm = this;
setTimeout(function(){
let elm = $el.querySelector(".el-input.is-focus");// .el-input.is-focus");
let parentNode = vm.BPAGetParents( elm, ".bpa-bd-fields--sel-container" );
if( parentNode.length > 0 ){
let firstParent = parentNode[0];
firstParent.classList.add( "bpa-sel--focus" );
}
},100);
},
bpa_remove_focus_select_elm($el){
let elm = document.querySelector( ".bpa-sel--focus" );
},
bookingpress_selectpicker_set_position( flag ){
const vm = this;
if( true == flag ){
let is_admin_bar_visible = ( document.getElementById("wpadminbar") != null && document.getElementById("wpadminbar").getBoundingClientRect().width > 0 && document.getElementById("wpadminbar").getBoundingClientRect().height > 0 ) ? true : false;
if( document.querySelector(".bpa-focused-select") != null && is_admin_bar_visible ) {
setTimeout(function(){
let top_pos = document.querySelector(".bpa-focused-select").style.top;
top_pos = parseInt( top_pos.replace("px","") );
document.querySelector(".bpa-focused-select").style.top = ( top_pos + 32 ) + "px";
},10);
}
if( document.querySelector(".bpa-focused-select") != null ) {
setTimeout(function(){
const allselectcontainer = document.querySelectorAll(".bpa-bd-fields--sel-container");
if(typeof allselectcontainer != "undefined"){
var has_added = false;
allselectcontainer.forEach((selcontItem) => {
var questyle = selcontItem.querySelector(".bpa-focused-select");
if(typeof questyle != "undefined"){
const display = window.getComputedStyle(questyle).display;
if(display != "none" && !has_added){
selcontItem.classList.add( "bpa-sel--focus" );
has_added = true;
}
}
});
}
},100);
}
}
if( false == flag ){
if( document.querySelector(".bpa-bd-fields--sel-container") != null ) {
let elm = document.querySelector(".bpa-bd-fields--sel-container")
const range_inputs = document.querySelectorAll(".bpa-bd-fields--sel-container");
for (const range_input of range_inputs) {
range_input.classList.remove( "bpa-sel--focus" );
}
}
}
},
bookingpress_set_datepicker_position( event ){
let popperElm = document.querySelector(".bpa-custom-datepicker");
if( popperElm != null ){
let is_admin_bar_visible = ( document.getElementById("wpadminbar") != null && document.getElementById("wpadminbar").getBoundingClientRect().width > 0 && document.getElementById("wpadminbar").getBoundingClientRect().height > 0 ) ? true : false;
if( is_admin_bar_visible ){
setTimeout(function(){
let top_pos = popperElm.style.top;
top_pos = parseInt( top_pos.replace("px","") );
popperElm.style.top = ( top_pos + 32 ) + "px";
},10);
}
}
},
bookingpress_get_service_categories_from_staffmembers(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_get_service_cat_details",
staffmember_id: vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
vm.service_categories = response.data.service_categories_data;
var bookingpress_first_cat_id = response.data.first_cat_id;
vm.services_data = [];
setTimeout(function(){
vm.selectStepCategory(bookingpress_first_cat_id);
}, 500);
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_update_staffmember_data( number_of_guests, selected_service_id = "" ){
const vm = this;
vm.bookingpress_disabled_staffmember = [];
let selected_service = vm.appointment_step_form_data.selected_service;
if( selected_service == "" || ( (selected_service_id != "") && (selected_service != selected_service_id) ) ){
selected_service = selected_service_id;
}
let guests_count = number_of_guests - 1;
let staffmember_details = vm.bookingpress_staffmembers_details;
for( let s in staffmember_details ){
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = true;
let current_staffmember = staffmember_details[s];
let staffmember_id = current_staffmember.bookingpress_staffmember_id;
let assigned_service_price_list = current_staffmember.assigned_service_price_details;
if( "undefined" != typeof assigned_service_price_list[ selected_service ] ){
let max_capacity = assigned_service_price_list[ selected_service ].assigned_service_capacity;
if( max_capacity < (guests_count + 1) ){
if( "undefined" == typeof vm.bookingpress_disabled_staffmember ){
vm.bookingpress_disabled_staffmember = [];
}
vm.bookingpress_disabled_staffmember.push( staffmember_id );
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = false;
if( vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == staffmember_id ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
}
}
if( vm.is_bring_anyone_with_you_activated == "1" ){
let min_capacity = assigned_service_price_list[ selected_service ].assigned_service_min_capacity;
if( min_capacity > (guests_count + 1) ){
if( "undefined" == typeof vm.bookingpress_disabled_staffmember ){
vm.bookingpress_disabled_staffmember = [];
}
vm.bookingpress_disabled_staffmember.push( staffmember_id );
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = false;
if( vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == staffmember_id ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
}
}
}
}
}
},
bookingpress_close_extra_drawer_on_mouseup(){
const vm = this;
window.addEventListener( "mouseup", function(e){
if( null != document.querySelector(".bpa-front-dc--service-body") ){
let div = document.querySelector(".bpa-front-dc--service-body");
let scrollbarWidth = div.offsetWidth - div.clientWidth;
let scrollbarHeight = div.offsetHeight - div.clientHeight;
let isVerticalScrollbarClick = (e.offsetX >= div.clientWidth && e.offsetX <= div.offsetWidth );
let isHorizontalScrollbarClick = e.offsetY >= div.clientHeight;
if (scrollbarWidth > 0 && isVerticalScrollbarClick) {
return;
}
}
let elem = e.target;
let htmlWidth = document.querySelector("html").offsetWidth;
if( htmlWidth < e.clientX ){
return;
}
let parentNode = vm.BPAGetParents( elem, ".bpa-fm--service__advance-options" );
let parentNodeBawy = vm.BPAGetParents( elem, ".bpa-fm--service__advance-options-popper" );
let is_mob = false;
let bpa_parent_container = document.querySelector( ".bpa-frontend-main-container" );
let is_visible = true;
if( null != bpa_parent_container && 1 > bpa_parent_container.offsetWidth ){
is_visible = false;
}
if( parentNode.length < 1 && parentNodeBawy.length < 1 && "true" == vm.bookingpress_open_extras_drawer && "service" == vm.bookingpress_current_tab && "true" == vm.bookingpress_open_extras_drawer && true == is_visible ){
let allow_close_drawer = wp.hooks.applyFilters( "bpa_allow_close_draer", true, is_visible, elem, parentNode, parentNodeBawy );
if( true == allow_close_drawer ){
let mob_extra = document.querySelector( ".bpa-fm--service__advance-options.--bpa-is-mob" );
if( mob_extra == null ){
vm.bookingpress_close_extra_drawer();
} else {
let mob_pos = mob_extra.getBoundingClientRect();
if( mob_pos.width == 0 && mob_pos.height == 0 ){
vm.bookingpress_close_extra_drawer();
}
}
}
}
});
},
BPAGetParents( elem, selector ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
if (selector) {
if (elem.matches(selector)) {
parents.push(elem);
}
continue;
}
parents.push(elem);
}
return parents;
},
bookingpress_get_formatted_datetime(event,field_meta_key,is_time_enabled) {
if(event != null){
if(is_time_enabled == true) {
this.appointment_step_form_data["form_fields"][field_meta_key] = this.get_formatted_datetime(event);
} else {
this.appointment_step_form_data["form_fields"][field_meta_key] = this.get_formatted_date(event);
}
}
},
openExtraServicePopover() {
// Access the popover methods directly
const vm = this;
this.$nextTick( () =>{
vm.$refs.extra_service_desc_popover.doToggle();
});
},
openRecurringSessionPopover() {
const vm = this;
this.$nextTick( () =>{
// Access the popover methods directly
vm.$refs.recurring_session_desc_popover.doToggle();
});
},
BPACustomerFileUpload(response, file, fileList){
const vm = this;
let ref = response.reference;
if( response.error == 1 ){
vm.$refs[ ref ][0].$options.parent.validateMessage = response.msg;
vm.$refs[ ref ][0].$options.parent.validateState = "error";
vm.$refs[ ref ][0].clearFiles();
} else {
vm.$refs[ref][0].$options.parent.validateMessage = "";
vm.$refs[ref][0].$options.parent.validateState = "";
const uploadUrl = response.upload_url;
const fileRef = response.file_ref;
if (Array.isArray(vm.appointment_step_form_data[fileRef])) {
vm.appointment_step_form_data[fileRef].push(uploadUrl);
} else if (vm.appointment_step_form_data[fileRef]) {
vm.appointment_step_form_data[fileRef] = [
vm.appointment_step_form_data[fileRef],
uploadUrl,
];
} else {
vm.appointment_step_form_data[fileRef] = [uploadUrl];
}
vm.appointment_step_form_data.form_fields[fileRef] = vm.appointment_step_form_data[fileRef];
}
},
BPACustomerFileUploadError(err, file, fileList){
/** Need to handle error but currently no error is reaching to this function */
if( file.status == "fail" ){
console.log( err );
}
},
BPACustomerhandleFileExceed(files, fileList ) {
const vm = this;
vm.bookingpress_set_error_msg( vm.appointment_step_form_data.bpa_fileupload_max_limit_reach_msg );
},
BPACustomerFileUploadRemove( file, fileList ){
const vm = this;
let response = file.response;
vm.appointment_step_form_data[ response.file_ref ] = "";
vm.appointment_step_form_data.form_fields[ response.file_ref ] = "";
let postData = {
action:"bpa_remove_form_file",
_wpnonce: "4ac51a523d",
uploaded_file_name: response.upload_file_name
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function( response ){
}).catch( function( error ){
});
},
BPAConvertBytesToMB( bytes){
return (bytes / (1024 * 1024)).toFixed(0);
},
bookingpress_reset_selected_timeslot_data(){
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && "1" == vm.appointment_step_form_data.bpa_datetime_after_service_selection ){
return;
}
vm.appointment_step_form_data.selected_start_time = "";
},
bookingpress_reset_custom_duration_data() {
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
;
},
bookingpress_step_navigator( current_tab, next_tab, previous_tab ){
let vm = this;
let is_strict_validate = false;
let current_selected_tab = vm.bookingpress_current_tab;
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
let sidebar_keys = Object.keys( sidebar_step_data );
let current_tab_pos = sidebar_keys.indexOf( current_selected_tab ); /** Current Tab Position */
let selected_tab_pos = sidebar_keys.indexOf( current_tab ); /** Clicked Tab Position */
if( selected_tab_pos < current_tab_pos ){
vm.bookingpress_step_navigation( current_tab, next_tab, previous_tab, 0 );
} else {
vm.bookingpress_step_navigation( current_tab, next_tab, previous_tab );
}
},
bookingpress_change_service_extras_event( is_checked ){
const vm = this;
},
bookingpress_change_service_extras_qty( is_checked ){
const vm = this;
vm.$forceUpdate();
},
bookingpress_set_extra_service_error_msg(error_msg){
const vm = this;
vm.is_display_extra_service_error = 1;
vm.extra_service_error_msg = error_msg;
setTimeout(function(){
vm.bookingpress_remove_extra_service_error_msg();
},6000);
},
bookingpress_remove_extra_service_error_msg(){
const vm = this;
vm.is_display_extra_service_error = "0";
vm.extra_service_error_msg = "";
},
bookingpress_change_custom_duration(event) {
const vm = this;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
});
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.is_display_custom_duration_day_loader = true;
vm.v_calendar_attributes = [];
vm.bookingpress_booking_before_block_date = [];
vm.bookingpress_disable_date();
}else{
vm.is_display_custom_duration_day_loader = true;
vm.bpa_skip_loading_csd_slot = true;
let selected_service = app.appointment_step_form_data.selected_service;
let selected_date = app.appointment_step_form_data.selected_date;
vm.bookingpress_disable_date_xhr_v2( selected_service, selected_date, true );
}
},
bookingpress_change_custom_duration_first(event){
const vm = this;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
});
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.is_display_custom_duration_loader = true;
vm.v_calendar_attributes = [];
vm.bookingpress_booking_before_block_date = [];
vm.bookingpress_disable_date();
}else{
vm.is_display_custom_duration_loader = true;
let selected_service = app.appointment_step_form_data.selected_service;
let selected_date = app.appointment_step_form_data.selected_date;
vm.bookingpress_disable_date_xhr_v2( selected_service, selected_date, true );
}
},
handle_staff_key_events(event){
const focusableItems = document.querySelectorAll(".bpa-front-module--staff-item-row .bpa-front-sm--col:not([style*='display: none']) .bpa-front-sm-card"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "ArrowRight") {
event.preventDefault();
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if(event.key === "ArrowDown"){
event.preventDefault();
let nextIndex = (currentIndex + 3) % focusableItems.length;
focusableItems[nextIndex].focus();
}else if (event.key === "ArrowLeft" ) {
event.preventDefault();
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if(event.key === "ArrowUp"){
event.preventDefault();
let prevIndex = (currentIndex - 3 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = "";
focusElement = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa_search_service_data_cls .bpa_search_cls .el-input__inner");
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-tab-menu--item.__bpa-is-active");
}
if(typeof this.bpaMoveFocusToPreviousElement !== "undefined"){
this.bpaMoveFocusToPreviousElement( this.$refs.staffmemberItemsGroup, focusElement);
}
}
},
focusFirstStaff(){
this.$nextTick( () =>{
const is_any_staff_col = document.querySelectorAll(".bpa-front-module--staff-item-row .--bpa-sm-is-any-staff-col .bpa-front-sm-card");
if(is_any_staff_col.length){
is_any_staff_col[0].focus();
}else if( this.$refs.staffmember.length ){
this.$refs.staffmember[0].focus();
}
});
},
get_formatted_date(iso_date){
if( true == /(\d{2})\T/.test( iso_date ) ){
let date_time_arr = iso_date.split("T");
return date_time_arr[0];
}
var __date = new Date(iso_date);
var __year = __date.getFullYear();
var __month = __date.getMonth()+1;
var __day = __date.getDate();
if (__day < 10) {
__day = "0" + __day;
}
if (__month < 10) {
__month = "0" + __month;
}
var formatted_date = __year+"-"+__month+"-"+__day;
return formatted_date;
},
get_formatted_datetime(iso_date) {
var __date = new Date(iso_date);
var hour = __date.getHours();
var minute = __date.getMinutes();
var second = __date.getSeconds();
if (minute < 10) {
minute = "0" + minute;
}
if (second < 10) {
second = "0" + second;
}
var formatted_time = hour + ":" + minute + ":" + second;
var __year = __date.getFullYear();
var __month = __date.getMonth()+1;
var __day = __date.getDate();
if (__day < 10) {
__day = "0" + __day;
}
if (__month < 10) {
__month = "0" + __month;
}
var formatted_date = __year+"-"+__month+"-"+__day;
return formatted_date+" "+formatted_time;
},
bookingpress_set_error_msg(error_msg){
const vm = this;
let container = vm.$el;
let pos = 0;
if( null != container ){
pos = container.getBoundingClientRect().top + window.scrollY;
}
vm.is_display_error = "1";
vm.is_error_msg = error_msg;
const myVar = Error().stack;
let allow_scroll = true;
if( /mounted/.test( myVar ) ){
allow_scroll = false;
}
if( allow_scroll ){
window.scrollTo({
top: pos,
behavior: "smooth",
});
}
setTimeout(function(){
vm.bookingpress_remove_error_msg();
},6000);
},
bookingpress_remove_error_msg(){
const vm = this;
vm.is_display_error = "0";
vm.is_error_msg = "";
},
checkBeforeBookAppointment(){
const vm = this;
setTimeout(function(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_before_book_appointment",_wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm.appointment_step_form_data );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "error"){
vm.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm.service_timing = [];
}
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
}else{
vm.bookingpress_remove_error_msg();
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},1500);
},
book_appointment(){
const vm2 = this;
vm2.isLoadBookingLoader = "1";
vm2.isBookingDisabled = true;
vm2.bookingpress_process_to_book_appointment();
},
async bookingpress_process_to_book_appointment(){
const vm2 = this;
if(vm2.is_display_error != "1"){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_front_save_appointment_booking", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm2.appointment_step_form_data );
const cdata = await this.bookingpress_reload_captcha();
let updateData = JSON.parse( postData.appointment_data );
for (let bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
updateData[ bookingpress_grecaptcha_field_v3 ] = cdata;
}
postData.appointment_data = JSON.stringify( updateData );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
if(response.data.variant == "redirect"){
vm2.bookingpress_remove_error_msg();
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
},50);
}else if(response.data.variant == "redirect_url"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else if(response.data.variant == "error"){
vm2.bookingpress_set_error_msg(response.data.msg);
}else{
vm2.bookingpress_remove_error_msg();
}
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
}.bind(this) )
.catch( function (error) {
vm2.bookingpress_set_error_msg(error);
});
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
},
bpa_check_browser(){
const vm = this;
let userAgent = navigator.userAgent;
let browserName;
if(userAgent.match(/edg/i)){
browserName = "edge";
} else if(userAgent.match(/opr\//i)){
browserName = "opera";
} else if(userAgent.match(/chrome|chromium|crios/i)){
browserName = "chrome";
} else if(userAgent.match(/firefox|fxios/i)) {
browserName = "firefox";
} else if(userAgent.match(/safari/i)) {
browserName = "safari";
} else {
browserName="Unknown";
}
vm.browser_details = browserName;
},
bpa_check_browser_version(){
const vm = this;
var objappVersion = navigator.appVersion;
var browserAgent = navigator.userAgent;
var browserName = navigator.appName;
var browserVersion = "" + parseFloat(navigator.appVersion);
var browserMajorVersion = parseInt(navigator.appVersion, 10);
var Offset, OffsetVersion, ix;
/* For Chrome */
if ((OffsetVersion = browserAgent.indexOf("Chrome")) != -1) {
browserName = "Chrome";
browserVersion = browserAgent.substring(OffsetVersion + 7);
}
/* For Microsoft internet explorer */
else if ((OffsetVersion = browserAgent.indexOf("MSIE")) != -1) {
browserName = "Microsoft Internet Explorer";
browserVersion = browserAgent.substring(OffsetVersion + 5);
}
/* For Firefox */
else if ((OffsetVersion = browserAgent.indexOf("Firefox")) != -1) {
browserName = "Firefox";
}
/* For Safari */
else if ((OffsetVersion = browserAgent.indexOf("Safari")) != -1) {
browserName = "Safari";
browserVersion = browserAgent.substring(OffsetVersion + 7);
if ((OffsetVersion = browserAgent.indexOf("Version")) != -1)
browserVersion = browserAgent.substring(OffsetVersion + 8);
}
/* For other browser "name/version" is at the end of userAgent */
else if ((Offset = browserAgent.lastIndexOf(" ") + 1) < (OffsetVersion = browserAgent.lastIndexOf("/"))) {
browserName = browserAgent.substring(Offset, OffsetVersion);
browserVersion = browserAgent.substring(OffsetVersion + 1);
if (browserName.toLowerCase() == browserName.toUpperCase()) {
browserName = navigator.appName;
}
}
/* Trimming the fullVersion string at */
/* semicolon/space if present */
if ((ix = browserVersion.indexOf(";")) != -1)
browserVersion = browserVersion.substring(0, ix);
if ((ix = browserVersion.indexOf(" ")) != -1)
browserVersion = browserVersion.substring(0, ix);
browserMajorVersion = parseInt("" + browserVersion, 10);
if (isNaN(browserMajorVersion)) {
browserVersion = "" + parseFloat(navigator.appVersion);
browserMajorVersion = parseInt(navigator.appVersion, 10);
}
vm.browser_version = browserMajorVersion;
},
focusFirstService(){
if(app.current_screen_size == "desktop"){
this.$nextTick( () =>{
const focusableItems = document.querySelectorAll(".bpa-front-module--service .bpa-fm--si--col:not([style*='display: none']) .bpa-front-si-card");
if( focusableItems.length ){
focusableItems[0].focus();
}
});
}
},
focusFirstDate(){
var firstDate = document.querySelectorAll(".vc-day.in-month [aria-disabled=false]");
if(firstDate){
if(firstDate.length > 1){
firstDate[1].focus();
}else if(firstDate.length > 0){
firstDate[0].focus();
}else if(firstDate.length == 0){
firstDate = document.querySelectorAll(".vc-day.in-month .vc-day-content:not(.is-disabled)");
if(firstDate.length > 1){
firstDate[1].focus();
}else if(firstDate.length > 0){
firstDate[0].focus();
}
}
}
},
focusFirstTimeSlot(){
this.$nextTick( () =>{
if( this.$refs.timeSlotItems.length ){
this.$refs.timeSlotItems[0].focus();
}
});
},
focustFirstCategory(){
this.$nextTick(() => {
if (this.$refs.categoryItem.length) {
this.$refs.categoryItem[0].focus();
}
});
},
bpa_handle_service_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-module--service .bpa-fm--si--col:not([style*='display: none']) .bpa-front-si-card"); // Update with your actual class
let currentIndex = -1;
let itemsPerRow = 2;
if(window.outerWidth >= 1200){
itemsPerRow = 2;
}else if(window.outerWidth < 950){
itemsPerRow = 1;
}
const active_container = document.querySelector(".bpa-front-module--service").offsetWidth;
if(active_container && active_container.offsetWidth < 800){
itemsPerRow = 1;
}
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
// bpa-fm--service__advance-options __bpa-is-active
setTimeout(() => {
let extraServiceFocus = document.querySelector(".bpa-fm--service__advance-options.__bpa-is-active .--bpa-sao-service-extras .el-checkbox__inner");
let recurringFocus = document.querySelector(".bpa-fm--service__advance-options.__bpa-is-active .--bpa-sao-guest-module .el-input__inner");
if(extraServiceFocus !== null){
extraServiceFocus.focus();
}else if (recurringFocus !== null){
recurringFocus.focus();
}
}, 100);
} else if (event.key === "ArrowRight") {
event.preventDefault();
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if(event.key === "ArrowDown"){
event.preventDefault();
let nextIndex = (currentIndex + itemsPerRow) % focusableItems.length;
focusableItems[nextIndex].focus();
}else if (event.key === "ArrowLeft" ) {
event.preventDefault();
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if(event.key === "ArrowUp"){
event.preventDefault();
let prevIndex = (currentIndex - itemsPerRow + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
this.bpaMoveFocusToPreviousElement( this.$refs.servicesGroup );
}
},
bpa_handle_timeslot_keypress(index, event) {
const groups = document.querySelectorAll(".bpa-front--dt__ts-body--row"); // row/groups
const focusableItems = document.querySelectorAll(".bpa-front--dt__ts-body .bpa-front--dt__ts-body--item"); // Items
let currentIndex = -1;
let currentGroupIndex = -1;
let itemIndexInGroup = -1;
// Find the currently focused item and its group
focusableItems.forEach((item, idx) => {
if (item === document.activeElement) {
currentIndex = idx;
// Find which group this item belongs to
for (let i = 0; i < groups.length; i++) {
if (groups[i].contains(item)) {
currentGroupIndex = i;
// Find position within the group
const groupItems = groups[i].querySelectorAll(".bpa-front--dt__ts-body--item");
for (let j = 0; j < groupItems.length; j++) {
if (groupItems[j] === item) {
itemIndexInGroup = j;
break;
}
}
break;
}
}
}
});
if (currentIndex === -1) return; // No focusable item is selected
const itemsPerRow = 2; // Based on your screenshot showing 2 time slots per row
if (event.key === "ArrowRight") {
event.preventDefault();
// If at the end of the group, move to the first item of the next group
if (itemIndexInGroup === groups[currentGroupIndex].querySelectorAll(".bpa-front--dt__ts-body--item").length - 1) {
if (currentGroupIndex < groups.length - 1) {
// Focus on the first item of the next group
const nextGroupItems = groups[currentGroupIndex + 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (nextGroupItems.length > 0) {
nextGroupItems[0].focus();
}
}
} else {
// Move to the next item in the same group
let nextIndex = currentIndex + 1;
if (nextIndex < focusableItems.length) {
focusableItems[nextIndex].focus();
}
}
} else if (event.key === "ArrowDown") {
event.preventDefault();
const itemsInCurrentGroup = groups[currentGroupIndex].querySelectorAll(".bpa-front--dt__ts-body--item").length;
const rowsInCurrentGroup = Math.ceil(itemsInCurrentGroup / itemsPerRow);
const currentRowInGroup = Math.floor(itemIndexInGroup / itemsPerRow);
if (currentRowInGroup >= rowsInCurrentGroup - 1 || currentIndex + itemsPerRow >= focusableItems.length) {
if (currentGroupIndex < groups.length - 1) {
// Focus on the first item of the next group
let nextIndex = currentIndex + itemsPerRow;
const nextGroupItems = groups[currentGroupIndex + 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if(itemsInCurrentGroup % 2 == 0 && nextIndex < focusableItems.length){
focusableItems[nextIndex].focus();
}else if (nextGroupItems.length > 0) {
nextGroupItems[0].focus();
}
}
} else {
// Stay in the same group, move down a row
let nextIndex = currentIndex + itemsPerRow;
if(currentIndex == itemsInCurrentGroup - 2 && itemsInCurrentGroup % 2 == 1 && (nextIndex + 1) < focusableItems.length){
focusableItems[nextIndex + 1].focus();
}else if(nextIndex < focusableItems.length){
focusableItems[nextIndex].focus();
}
// if(nextIndex < focusableItems.length)
}
} else if (event.key === "ArrowLeft") {
event.preventDefault();
// If at the beginning of the group, move to the last item of the previous group
if (itemIndexInGroup === 0) {
if (currentGroupIndex > 0) {
// Focus on the last item of the previous group
const prevGroupItems = groups[currentGroupIndex - 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (prevGroupItems.length > 0) {
prevGroupItems[prevGroupItems.length - 1].focus();
}
}
} else {
// Move to the previous item in the same group
let prevIndex = currentIndex - 1;
if (prevIndex >= 0) {
focusableItems[prevIndex].focus();
}
}
} else if (event.key === "ArrowUp") {
event.preventDefault();
const currentRowInGroup = Math.floor(itemIndexInGroup / itemsPerRow);
if (currentRowInGroup === 0) {
if (currentGroupIndex > 0) {
// Focus on the last item of the previous group
const prevGroupItems = groups[currentGroupIndex - 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (prevGroupItems.length > 0) {
let howMuchMinus = 1;
if(itemIndexInGroup == 0 && prevGroupItems.length % 2 == 0){
howMuchMinus = 2;
}else if(itemIndexInGroup == 1 && prevGroupItems.length % 2 == 0){
howMuchMinus = 1;
}else{
if(itemIndexInGroup == 1 && prevGroupItems.length > 2){
howMuchMinus = 2;
}
}
prevGroupItems[prevGroupItems.length - howMuchMinus].focus();
}
}
} else {
// Stay in the same group, move up a row
const prevIndex = currentIndex - itemsPerRow;
if (prevIndex >= 0) {
focusableItems[prevIndex].focus();
}
}
} else if ("Tab" == event.key && event.shiftKey && 0 === currentIndex) {
event.preventDefault();
this.bpaMoveFocusToPreviousElement(this.$refs.timeSlotItemsGroup);
}
},
bpa_handle_category_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-cat-items-wrapper .bpa-front-ci-pill"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
} else if (event.key === "ArrowRight") {
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if (event.key === "ArrowLeft" ) {
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = document.querySelector(".bpa_search_service_data_cls .el-input__inner");
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-tab-menu--item.__bpa-is-active");
}
this.bpaMoveFocusToPreviousElement( this.$refs.categoryGroup, focusElement );
}
},
bpa_handle_pg_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
} else if (event.key === "ArrowRight") {
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if (event.key === "ArrowLeft" ) {
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = "";
focusElement = document.querySelector(".bpa-fm--bs__deposit-payment-module .bpa-front-form-control--radio");
if(focusElement == null){
focusElement = document.querySelector(".bpa-fm--bs-amount-item .bpa-is-tip-edit-icon svg");
if(focusElement == null){
focusElement = document.querySelectorAll(".bpa-fm--bs__coupon-module-textbox .el-button");
focusElement = focusElement[focusElement.length - 1];
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-summary-content__lg .bpa--summary_service_datetime_count_name");
}
}
}
this.bpaMoveFocusToPreviousElement( this.$refs.paymentGatewayItemsGroup, focusElement );
}
},
focusFirstPaymentGateway(){
this.$nextTick( () =>{
const paymentGatewayItem = document.querySelector(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item");
if( paymentGatewayItem !== null ){
paymentGatewayItem.focus();
}
});
},
bpaMoveFocusToPreviousElement( currentElement, focusOnElement = false ){
if(focusOnElement){
focusOnElement.focus();
return;
}
const focusableElements = document.querySelectorAll(
"a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])"
);
const focusableArray = Array.from(focusableElements);
const currentIndex = focusableArray.indexOf(currentElement);
if (currentIndex > 0) {
focusableArray[currentIndex - 1].focus();
}
},
bpaMoveFocusToNextElement( currentElement ){
const focusableElements = document.querySelectorAll(
"a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])"
);
const focusableArray = Array.from(focusableElements);
const currentIndex = focusableArray.indexOf(currentElement);
if (currentIndex > 0) {
focusableArray[currentIndex + 1].focus();
}
},
bpa_select_category( selected_cat_id, selected_cat_name, total_services, total_category){
const vm = this;
let category_id = parseInt( selected_cat_id );
vm.isLoadClass = 0;
if( 0 == selected_cat_id ){
for( let bpa_service_id in vm.bookingpress_all_services_data ){
let current_service = vm.bookingpress_all_services_data[ bpa_service_id ];
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = true;
if( ("undefined" != typeof current_service.is_disabled && true == current_service.is_disabled) || ( "undefined" != current_service.hide_for_staff && true == current_service.hide_for_staff ) ){
current_service.is_visible = false;
}
}
} else {
if( vm.bookingpress_all_services_data != "" ){
for( let bpa_service_id in vm.bookingpress_all_services_data ){
let current_service = vm.bookingpress_all_services_data[ bpa_service_id ];
let current_category = current_service.bookingpress_category_id;
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = false;
if( current_category == category_id ){
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = true;
}
if( ("undefined" != typeof current_service.is_disabled && true == current_service.is_disabled) || ( "undefined" != current_service.hide_for_staff && true == current_service.hide_for_staff ) ){
current_service.is_visible = false;
}
}
}
}
setTimeout(function(){
vm.isLoadClass = 1;
},1);
vm.appointment_step_form_data.selected_category = selected_cat_id;
vm.appointment_step_form_data.selected_cat_name = selected_cat_name;
},
selectStepCategory(selected_cat_id, selected_cat_name = "", total_services = 0, total_category="", display_warn = true ){
if( true == display_warn ){
console.trace("Deprecated step category function " );
console.warn("selectStepCategory function is deprecated. Please update the BookingPress lite, premium, and add-ons to the latest version");
}
const vm = this;
vm.isLoadClass = 0;
if( 0 == selected_cat_id ){
let temp_services = [];
let m = 0;
for( let x in vm.bpa_services_data_from_categories ){
let service_details = vm.bpa_services_data_from_categories[x];
for( let n in service_details ){
let current_service = service_details[n];
if( "undefined" != typeof current_service.bookingpress_staffmembers ){
let selected_staffmember = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( current_service.bookingpress_staffmembers.includes( selected_staffmember ) && selected_staffmember != ""){
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position);
temp_services[bookingpress_service_pos] = current_service;
} else {
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position );
temp_services[bookingpress_service_pos] = current_service;
}
} else {
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position );
temp_services[bookingpress_service_pos] = current_service;
}
if( vm.is_bookingpress_staff_loaded_from_url == "true" && "" != vm.appointment_step_form_data.selected_staff_member_id ){
if( 0 == selected_cat_id ){
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
current_service.is_visible = true;
} else {
current_service.is_visible = false;
}
} else {
vm.services_data.forEach( ( current_service, index) => {
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
vm.services_data[index].is_visible = true;
} else {
vm.services_data[index].is_visible = false;
}
});
}
}
m++;
}
}
var bpa_temp_services= [];
temp_services.sort();
for( let n in temp_services ){
if(temp_services[n] != "") {
bpa_temp_services[n] = temp_services[n];
}
}
vm.services_data = bpa_temp_services.sort();
} else {
vm.services_data = vm.bpa_services_data_from_categories[selected_cat_id];
if( vm.is_bookingpress_staff_loaded_from_url == "true" && "" != vm.appointment_step_form_data.selected_staff_member_id ){
if( 0 == selected_cat_id ){
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
current_service.is_visible = true;
} else {
current_service.is_visible = false;
}
} else {
vm.services_data.forEach( ( current_service, index) => {
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
vm.services_data[index].is_visible = true;
} else {
vm.services_data[index].is_visible = false;
}
});
}
}
}
vm.appointment_step_form_data.selected_category = selected_cat_id;
vm.appointment_step_form_data.selected_cat_name = selected_cat_name;
setTimeout(function(){
vm.isLoadClass = 1;
},1);
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
},
async selectDate(selected_service_id, service_name, service_price, service_price_without_currency, is_move_to_next, service_duration_val = "",service_duration_unit = ""){
const vm = this;
if(typeof vm.appointment_step_form_data.cart_items == "undefined" && (selected_service_id != vm.appointment_step_form_data.selected_service && vm.appointment_step_form_data.selected_date != "")){
var bookingpress_selected_date = vm.appointment_step_form_data.selected_date;
let newDate = new Date("2026-01-16 14:28:54");
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( newDate ) ){
let sel_month = newDate.getMonth() + 1;
let sel_year = newDate.getFullYear();
let sel_date = newDate.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
newDate = sel_year + "-" + sel_month + "-" + sel_date;
}
if( ("undefined" != typeof vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ) && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && vm.appointment_step_form_data.bpa_datetime_after_service_selection != 1 ) ){
vm.appointment_step_form_data.selected_date = newDate;
vm.appointment_step_form_data.selected_end_date = newDate;
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
}
this.booking_cal_maxdate = new Date( Date.now() + ( 3600 * 1000 * ( 24 * 180 ) ) );
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected && 1 == vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected ) {
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 0;
}
if( "undefined" != typeof vm.appointment_step_form_data.selected_staff_member_id && "" != vm.appointment_step_form_data.selected_staff_member_id ){
let current_selected_tab = "service";
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
let sidebar_keys = Object.keys( sidebar_step_data );
let current_tab_pos = sidebar_keys.indexOf( "service" );
let selected_tab_pos = sidebar_keys.indexOf( "staffmembers" );
if( "undefined" == typeof vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url || vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == "0" ){
if( selected_tab_pos > current_tab_pos || sidebar_step_data.staffmembers.is_display_step == 0 ){
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
}
}
}
let is_drawer_opened = "false";
let use_drawer_flag = false;
/* vm.appointment_step_form_data.is_extra_service_exists = "0";
if( vm.bookingpress_is_extra_enable == 1){
use_drawer_flag = true;
for( let i in vm.appointment_step_form_data.bookingpress_selected_extra_details ){
vm.appointment_step_form_data.bookingpress_selected_extra_details[i].bookingpress_is_selected = false;
vm.appointment_step_form_data.bookingpress_selected_extra_details[i].bookingpress_selected_qty = 1;
}
for( let n in vm.all_services_data ){
let element = vm.all_services_data[n];
if( element.bookingpress_service_id == selected_service_id && element.extra_service_counter > 0 ){
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.appointment_step_form_data.is_extra_service_exists = "1";
is_drawer_opened = "true";
vm.isServiceLoadTimeLoader = "1";
}
}
} */
if( vm.is_staffmember_activated == 1 && vm.appointment_step_form_data.hide_staff_selection == "false" && vm.appointment_step_form_data.form_sequence[0] != "staff_selection" ){
for( let index in vm.bookingpress_staffmembers_details ){
let currentValue = vm.bookingpress_staffmembers_details[index];
vm.bookingpress_staffmembers_details[index].is_display_staff = false;
if("undefined" != typeof currentValue.assigned_service_price_details && "undefined" != typeof currentValue.assigned_service_price_details[selected_service_id] && "public" == vm.bookingpress_staffmembers_details[index].staffmember_visibility ){
vm.bookingpress_staffmembers_details[index].is_display_staff = true;
}
}
if( "" == vm.appointment_step_form_data.selected_staff_member_id || 0 == vm.appointment_step_form_data.selected_staff_member_id ){
let next_tabname = vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name;
if( "datetime" == next_tabname && 1 == vm.bookingpress_sidebar_step_data[ next_tabname ].is_allow_navigate ){
vm.bookingpress_sidebar_step_data[ next_tabname ].is_allow_navigate = 0;
}
}
/* let is_staff_exists = 0;
let total_staff = 0;
let total_private_staff = 0;
let deselect_staff = false;
let staff_id = vm.appointment_step_form_data.selected_staff_member_id;
let available_staffs = [];
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(selected_service_id)){
if( currentValue.staffmember_visibility == "private" ){
total_private_staff++;
}
total_staff++;
is_staff_exists = 1;
available_staffs.push( currentValue.bookingpress_staffmember_id );
}
});
if( available_staffs.length > 0 && staff_id > 0 && !available_staffs.includes( staff_id ) ){
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
}
if( 1 == is_staff_exists ){
if( total_staff == total_private_staff ){
await vm.bookingpress_select_staffmember("any_staff", 1);
is_staff_exists = 0;
vm.appointment_step_form_data.is_staff_exists = 0;
vm.appointment_step_form_data.hide_staff_selection = "true";
} else {
vm.isServiceLoadTimeLoader = "1";
is_drawer_opened = "true";
vm.appointment_step_form_data.is_staff_exists = 1;
}
} */
}
if( ("false" == is_move_to_next && "false" == is_drawer_opened) ){
if( (vm.bookingpress_cart_addon == 1 && vm.appointment_step_form_data.hide_service_selection_step == "true" ) ){
is_move_to_next = "false";
} else {
is_move_to_next = "true";
}
}
if( "true" == is_move_to_next && "d" == vm.appointment_step_form_data.selected_service_duration_unit ){
if( 0 == vm.bookingpress_sidebar_step_data.service.is_display_step && "datetime" == vm.bookingpress_current_tab ){
is_move_to_next = false;
}
}
let current_selected_service = vm.appointment_step_form_data.selected_service;
vm.bookingpress_remove_extra_service_error_msg();
if( "undefined" != vm.bookingpress_all_services_data[ selected_service_id ].service_extras && "" != vm.bookingpress_all_services_data[ selected_service_id ].service_extras && vm.bookingpress_sidebar_step_data.service.is_display_step == 1 ){
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
const params = new URLSearchParams(window.location.search);
if (params.get("book_again") == 1 && vm.is_staffmember_activated == 1) {
document.body.classList.remove("--bpa-open-advance-drawer");
}
vm.isServiceLoadTimeLoader = "0";
vm.appointment_step_form_data.is_extra_service_exists = "1";
is_drawer_opened = "true";
is_move_to_next = false;
} else {
vm.appointment_step_form_data.is_extra_service_exists = "0";
}
if( selected_service_id != "" && ("undefined" == typeof vm.is_club_service || vm.is_club_service != true ) ){
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
/** Check if staff member is enabled, visible and after service step */
if( vm.is_staffmember_activated == 1){
if( sidebar_step_data.staffmembers.is_first_step == 0 ){
let max_capacity = 1;
let min_capacity = 1;
let staffmember_details = vm.bookingpress_staffmembers_details;
let staff_capacities = [];
let staff_min_capacities = [];
staffmember_details.forEach( (element,index) =>{
if( "undefined" == typeof element.assigned_service_price_details[ selected_service_id ] ){
return true;
}
let staff_services = element.assigned_service_price_details[ selected_service_id ];
let staff_capacity = staff_services.assigned_service_capacity;
staff_capacities.push( parseInt(staff_capacity) );
if( vm.is_bring_anyone_with_you_activated == 1 ){
let staff_min_capacity = staff_services.assigned_service_min_capacity;
staff_min_capacities.push( parseInt(staff_min_capacity) );
}
});
max_capacity = Math.max.apply(null, staff_capacities);
vm.appointment_step_form_data.service_max_capacity = parseInt(max_capacity);
if( vm.is_bring_anyone_with_you_activated == 1 ){
min_capacity = Math.min.apply(null, staff_min_capacities);
vm.appointment_step_form_data.service_min_capacity = parseInt(min_capacity);
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members, selected_service_id );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
} else {
let staff_id = vm.appointment_step_form_data.selected_staff_member_id;
if( "" != staff_id ){
let staff_details;
vm.bookingpress_staffmembers_details.forEach( (element,index) => {
if( element.bookingpress_staffmember_id == staff_id ){
staff_details = element;
return false;
}
});
if( staff_details != "" ){
let staff_service_data = staff_details.assigned_service_price_details[ selected_service_id ];
let staff_service_capacity = staff_service_data.assigned_service_capacity;
let staff_service_min_capacity = staff_service_data.assigned_service_min_capacity;
vm.appointment_step_form_data.service_max_capacity = parseInt(staff_service_capacity);
vm.appointment_step_form_data.service_min_capacity = parseInt(staff_service_min_capacity);
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members, selected_service_id );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
}
}
}
} else if( 1 != vm.is_staffmember_activated ){
/* vm.all_services_data.forEach( (element, index) => {
if( "" == element.service_max_capacity ){
element.service_max_capacity = 1;
}
if( element.bookingpress_service_id == selected_service_id ){
vm.appointment_step_form_data.service_max_capacity = parseInt( element.service_max_capacity );
return false;
}
}); */
vm.appointment_step_form_data.service_max_capacity = vm.bookingpress_all_services_data[ selected_service_id ].services_meta.max_capacity;
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.appointment_step_form_data.service_min_capacity = vm.bookingpress_all_services_data[ selected_service_id ].services_meta.min_capacity;
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
}
/** Check if service max capacity > 1 and quantity feature is enabled */
if( vm.is_bring_anyone_with_you_activated == 1 && 1 < vm.appointment_step_form_data.service_max_capacity /*&& this.is_service_loaded_from_url != "1" /* && "true" == is_move_to_next */ ){
is_move_to_next = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "1";
}
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" ){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ) {
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
} else {
if( 0 > vm.appointment_step_form_data.cart_item_edit_index ){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ) {
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
} else {
/** Reputelog - need to check custom service duration with cart add-on while edit appointment from cart */
let cart_edit_index_id = vm.appointment_step_form_data.cart_item_edit_index;
let cart_item = vm.appointment_step_form_data.cart_items[ cart_edit_index_id ];
let bookingpress_edit_cart_service_id = typeof cart_item.bookingpress_service_id != "undefined" ?cart_item.bookingpress_service_id:0;
if(bookingpress_edit_cart_service_id != selected_service_id){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ){
vm.appointment_step_form_data.cart_items[cart_edit_index_id].enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
}else{
vm.appointment_step_form_data.enable_custom_service_duration = typeof cart_item.enable_custom_service_duration != "undefined" ? cart_item.enable_custom_service_duration : false;
vm.appointment_step_form_data.custom_service_duration_value = parseInt( cart_item.custom_service_duration_value );
vm.appointment_step_form_data.custom_service_duration_real_value = parseInt( cart_item.custom_service_duration_value );
vm.appointment_step_form_data.custom_service_real_price = parseFloat( cart_item.custom_service_real_price );
}
}
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
vm.bpa_skip_loading_csd_slot = false;
}
vm.appointment_step_form_data.selected_service = selected_service_id;
vm.v_calendar_blocked_dates = [];
vm.v_calendar_attributes_current = [];
vm.appointment_step_form_data.selected_service_name = service_name;
vm.appointment_step_form_data.selected_service_price = service_price;
vm.appointment_step_form_data.service_price_without_currency = service_price_without_currency;
/* vm.appointment_step_form_data.base_price = service_price; */
vm.appointment_step_form_data.base_price_without_currency = service_price_without_currency;
if( "" == service_duration_val ){
service_duration_val = vm.bookingpress_all_services_data[ selected_service_id ].bookingpress_service_duration_val;
}
if( "" == service_duration_unit ){
service_duration_unit = vm.bookingpress_all_services_data[ selected_service_id ].bookingpress_service_duration_unit;
}
vm.appointment_step_form_data.selected_service_duration = service_duration_val;
vm.appointment_step_form_data.selected_service_duration_unit = service_duration_unit;
if(vm.previous_selected_tab_id === 1 || vm.previous_selected_tab_id === 2 || vm.current_selected_tab_id === 1){
vm.displayResponsiveCalendar = "1";
}
vm.v_calendar_disable_dates = [];
vm.bpa_current_selected_date = "";
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
if( "undefined" != typeof vm.is_staffmember_activated && vm.is_staffmember_activated == 1) {
if( ( vm.is_staffmember_activated == 1 && ( vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.service.next_tab_name == "datetime" && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "staffmembers" ) ) ){
//vm.appointment_step_form_data.bpa_datetime_after_staff_selection_flag = 1;
//vm.hide_capacity_text_flag = true;
//alert( "inside this 45 ");
vm.appointment_step_form_data.bpa_datetime_hide_capacity = true;
vm.appointment_step_form_data.bpa_datetime_before_staffselection = 1;
}
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
if( (vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.service.next_tab_name == "datetime" && vm.is_staffmember_activated == 1 && vm.appointment_step_form_data.hide_staff_selection != "true" ) || ( (vm.appointment_step_form_data.hide_service_selection_step == "true" || vm.appointment_step_form_data.hide_service_selection_step == true ) && vm.bookingpress_sidebar_step_data.datetime.is_first_step == 1 )){
//vm.appointment_step_form_data.bpa_available_staff_member.push(currentValue.bookingpress_staffmember_id);
const staffId = currentValue.bookingpress_staffmember_id;
if (!vm.appointment_step_form_data.bpa_available_staff_member.includes(staffId)) {
vm.appointment_step_form_data.bpa_available_staff_member.push(staffId);
}
}
}
});
if( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 ){
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
}
}
}
vm.appointment_step_form_data.store_selected_date = "";
vm.appointment_step_form_data.store_selected_end_date = "";
vm.appointment_step_form_data.store_selected_time = "";
vm.appointment_step_form_data.store_selected_end_time = "";
vm.appointment_step_form_data.store_start_time = "";
vm.appointment_step_form_data.store_end_time = "";
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_end_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
vm.appointment_step_form_data.customer_selected_date = "";
vm.appointment_step_form_data.customer_selected_end_date = "";
vm.appointment_step_form_data.customer_selected_time = "";
vm.appointment_step_form_data.customer_selected_end_time = "";
if(is_move_to_next === "true"){
if( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 ){
if( vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name == "cart" ){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
} else {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
}
} else {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
}
}
var selected_date = vm.appointment_step_form_data.selected_date;
var formatted_date = vm.get_formatted_date(selected_date);
vm.bookingpress_remove_error_msg();
vm.service_advance_see_less = "0";
if( vm.is_staffmember_activated == 1 && (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1) ){
let timeslots_details = vm.appointment_step_form_data.bpa_after_select_service_available_staff;
let service_details = vm.bpasortedServices;
if( "undefined" != typeof timeslots_details ){
if( "undefined" != typeof timeslots_details.available_staffs ){
if( 1 < timeslots_details.available_staffs.length ){
let available_staff_id = timeslots_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( timeslots_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = timeslots_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
}
}
if( /*vm.bookingpress_is_extra_enable == "1" ||*/ vm.is_bring_anyone_with_you_activated == "1" || vm.is_staffmember_activated == "1" ){
var is_extra_exists = 0;
var service_max_length = parseInt(vm.appointment_step_form_data.service_max_capacity);
var is_staff_exists = 0;
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
if(vm.appointment_step_form_data.hide_staff_selection == "true" && vm.is_staff_first_step != "1" && (typeof vm.appointment_step_form_data.custom_service_duration_value == "undefined" || ( vm.appointment_step_form_data.custom_service_duration_value != "undefined" && vm.appointment_step_form_data.custom_service_duration_value == "") ) ){
/* vm.bookingpress_select_staffmember("any_staff", 1); */
}
}
/* if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length >= 1) || ( vm.appointment_step_form_data.hide_staff_selection != "true" && vm.is_staffmember_activated == "1" && ( vm.is_any_staff_option_enable == 1 || is_staff_exists == 1 ) ) || (vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == 1) ){ */
if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length > 1) ){
vm.bookingpress_open_extras_drawer = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "0";
} else{
if((is_staff_exists == 1 && vm.appointment_step_form_data.hide_staff_selection == "true" && vm.bookingpress_current_tab == "datetime") || (vm.appointment_step_form_data.selected_service_duration_unit == "d" && ( ( vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 0) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length == 1) ))) {
/* If staffmember selection step hide and staff member selection is in drawer then do not need to execute next step navigation function */
}else{
/*if(vm.bookingpress_current_tab != "datetime") {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name)
}*/
}
}}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
let selected_service = vm.appointment_step_form_data.selected_service;vm.customer_form_fields.forEach( (element,index) => {
if( typeof element.field_options != "undefined" && element.field_options.visibility == "services" ){
let field_services = element.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_type == "2_col" || element.field_type == "3_col" || element.field_type == "4_col" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_name == "Repeater" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( "2_col" == ielement.field_type || "3_col" == ielement.field_type || "4_col" == ielement.field_type ){
ielement.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
} else {
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
}
});vm.appointment_step_form_data.coupon_code = "";vm.coupon_code_msg = "";vm.coupon_applied_status = "error";vm.coupon_discounted_amount = 0;vm.coupon_apply_loader = "0";vm.bpa_coupon_apply_disabled = 0;
let current_service_data = vm.bookingpress_all_services_data[selected_service];
if( "undefined" != typeof current_service_data && "undefined" != typeof current_service_data.services_meta ){
let current_service_meta = current_service_data.services_meta;
if( "undefined" != typeof current_service_meta.deposit_amount ){
vm.appointment_step_form_data.deposit_payment_amount = current_service_meta.deposit_amount;
vm.appointment_step_form_data.deposit_payment_type = current_service_meta.deposit_type;
if( "percentage" == current_service_meta.deposit_type ){
vm.appointment_step_form_data.deposit_payment_amount_percentage = current_service_meta.deposit_amount;
}
}
}
setTimeout(function(){
vm.is_display_custom_duration_loader = false;
},1500);
},
dayClickedResponsive( day ){
const vm = this;
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "1";
vm.isLoadDateTimeCalendar = "1";
if( window.innerWidth <= 991 ){
vm.service_timing = "-1";
} else {
vm.service_timing = "-1";
}
}
vm.dayClicked(day);
},
dayClicked(day){
const vm = this;
let available_dates = vm.v_calendar_available_dates;
let dayId = day.id;
let dayString = dayId + " 00:00:00";
if( "undefined" == typeof dayString || "undefined" == typeof available_dates || 0 > available_dates.indexOf( dayString ) || vm.bpa_current_selected_date == dayId || ("undefined" != typeof vm.v_calendar_blocked_dates && vm.v_calendar_blocked_dates.includes( day.id ) ) ){
return false;
}
vm.service_timing = "-2";
vm.appointment_step_form_data.selected_date = dayId;
vm.bpa_current_selected_date = dayId;
vm.no_timeslot_available = false;
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
setTimeout(function(){
vm.service_timing = vm.bookingpress_categories_timeslots( vm.v_calendar_timeslots_data[ dayId ] );
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
},10);
},
onDayKeyPressed(event){
const vm = this;
if(event.event.key == "Enter"){
vm.dayClicked(event);
setTimeout(function(){
if(typeof vm.$refs.timeSlotItems !== 'undefined'){
vm.$refs.timeSlotItems[0].focus();
}
},11);
}
let page = {month: event.month, year: event.year};
vm.bpaMoveMonth(page);
},
onWholeDayKeyPressed(event, day){
const currentDate = new Date(day.id);
let newDate;
const vm = this;
if(event.key == "Enter"){
event.preventDefault();
vm.dayClicked_v2(day);
return;
}
let page = {month: day.month, year: day.year};
vm.bpaMoveMonth(page);
switch(event.key) {
case 'ArrowRight':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() + 1);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowLeft':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() - 1);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowUp':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() - 7);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowDown':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() + 7);
vm.moveFocusToDate(newDate, day);
break;
}
},
moveFocusToDate(date, day) {
const vm = this;
// Format date to match your day.id format (YYYY-MM-DD)
const dateString = date.toISOString().split('T')[0];
// Find the element for this date
this.$nextTick(() => {
let vc_day_content = document.querySelectorAll(".vc-day .vc-day-content");
vc_day_content.forEach((elm) => {
elm.setAttribute("tabindex", "-1");
});
const dateElement = document.getElementsByClassName(`id-${dateString}`);
// console.log(dateElement);
if (dateElement) {
if (vm.$refs.bkp_front_calendar) {
vm.$refs.bkp_front_calendar.move(dateString);
// vm.$refs.bkp_front_calendar.focusDate(day);
}
if(dateElement[0]){
setTimeout(() => {
let date_span = dateElement[0].querySelector(".bpa_day-select span");
if(date_span){
date_span.setAttribute("tabindex", "0");
date_span.focus();
}
}, 200);
}
}
});
},
dayClicked_legacy(day) {
const vm = this;
let disable_dates = vm.v_calendar_disable_dates;
let max_available_date = vm.get_formatted_date( vm.booking_cal_maxdate );
if( disable_dates.includes( day.id + " 00:00:00" ) || disable_dates.includes( day.id ) || max_available_date < day.id || (day.date < vm.jsCurrentDateFormatted && false == day.isToday) ){
return false;
}
vm.appointment_step_form_data.selected_date = day.id;
vm.get_date_timings( day.id );
},
get_date_timings(current_selected_date = ""){
const vm = this;
if( window.innerWidth <= 991 ){
vm.service_timing = "-1";
}else{
vm.service_timing = "-2";
}
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
if( null == vm.appointment_step_form_data.selected_date ){
vm.appointment_step_form_data.selected_date = new Date("2026-01-16 14:28:54");
}
if( current_selected_date == "") {
current_selected_date = vm.appointment_step_form_data.selected_date;
}
vm.appointment_step_form_data.selected_date = current_selected_date;
var selected_date = vm.appointment_step_form_data.selected_date;
if( "undefined" != typeof this.$refs.bkp_front_calendar ){
const calendar = this.$refs.bkp_front_calendar;
calendar.move(current_selected_date);
}
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( selected_date ) ){
let sel_month = selected_date.getMonth() + 1;
let sel_year = selected_date.getFullYear();
let sel_date = selected_date.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
selected_date = sel_year + "-" + sel_month + "-" + sel_date;
}
vm.appointment_step_form_data.selected_date = selected_date;
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
var selected_service_id = vm.appointment_step_form_data.selected_service;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_front_get_timings", service_id: selected_service_id, selected_date: selected_date, _wpnonce:bkp_wpnonce_pre_fetch, };
postData.bookingpress_timezone = vm.bookingpress_timezone;postData.bookingpress_selected_staffmember = vm.appointment_step_form_data.bookingpress_selected_staff_member_details;postData.service_extra_details = JSON.stringify( vm.appointment_step_form_data.bookingpress_selected_extra_details );postData.enable_custom_service_duration = vm.appointment_step_form_data.enable_custom_service_duration;postData.custom_service_duration_value = vm.appointment_step_form_data.custom_service_duration_value;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
postData.client_dst_timezone = vm.bookingpress_dst_timezone;
}
vm.no_timeslot_available = false;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
var set_waiting_time_limit = 1500;
if(typeof postData.enable_custom_service_duration != "undefined"){
if(postData.enable_custom_service_duration == true || postData.enable_custom_service_duration == "true"){
set_waiting_time_limit = 0;
}
}
setTimeout(function(){
vm.service_timing = response.data;
if( response.data.morning_time.length <= 0 && response.data.afternoon_time.length <= 0 && response.data.evening_time.length <= 0 && response.data.night_time.length <= 0 ){
vm.no_timeslot_available = true;
}
vm.isLoadTimeLoader = "0";
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
if(response.data == ""){
vm.service_timing = null;
}
}, set_waiting_time_limit);
vm.service_advance_see_less = "0";
if( vm.is_staffmember_activated == 1 && (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1) ){
let timeslots_details = vm.appointment_step_form_data.bpa_after_select_service_available_staff;
let service_details = vm.bpasortedServices;
if( "undefined" != typeof timeslots_details ){
if( "undefined" != typeof timeslots_details.available_staffs ){
if( 1 < timeslots_details.available_staffs.length ){
let available_staff_id = timeslots_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( timeslots_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = timeslots_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
}
}
if( /*vm.bookingpress_is_extra_enable == "1" ||*/ vm.is_bring_anyone_with_you_activated == "1" || vm.is_staffmember_activated == "1" ){
var is_extra_exists = 0;
var service_max_length = parseInt(vm.appointment_step_form_data.service_max_capacity);
var is_staff_exists = 0;
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
if(vm.appointment_step_form_data.hide_staff_selection == "true" && vm.is_staff_first_step != "1" && (typeof vm.appointment_step_form_data.custom_service_duration_value == "undefined" || ( vm.appointment_step_form_data.custom_service_duration_value != "undefined" && vm.appointment_step_form_data.custom_service_duration_value == "") ) ){
/* vm.bookingpress_select_staffmember("any_staff", 1); */
}
}
/* if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length >= 1) || ( vm.appointment_step_form_data.hide_staff_selection != "true" && vm.is_staffmember_activated == "1" && ( vm.is_any_staff_option_enable == 1 || is_staff_exists == 1 ) ) || (vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == 1) ){ */
if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length > 1) ){
vm.bookingpress_open_extras_drawer = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "0";
} else{
if((is_staff_exists == 1 && vm.appointment_step_form_data.hide_staff_selection == "true" && vm.bookingpress_current_tab == "datetime") || (vm.appointment_step_form_data.selected_service_duration_unit == "d" && ( ( vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 0) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length == 1) ))) {
/* If staffmember selection step hide and staff member selection is in drawer then do not need to execute next step navigation function */
}else{
/*if(vm.bookingpress_current_tab != "datetime") {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name)
}*/
}
}}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
let selected_service = vm.appointment_step_form_data.selected_service;vm.customer_form_fields.forEach( (element,index) => {
if( typeof element.field_options != "undefined" && element.field_options.visibility == "services" ){
let field_services = element.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_type == "2_col" || element.field_type == "3_col" || element.field_type == "4_col" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_name == "Repeater" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( "2_col" == ielement.field_type || "3_col" == ielement.field_type || "4_col" == ielement.field_type ){
ielement.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
} else {
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
}
});vm.appointment_step_form_data.coupon_code = "";vm.coupon_code_msg = "";vm.coupon_applied_status = "error";vm.coupon_discounted_amount = 0;vm.coupon_apply_loader = "0";vm.bpa_coupon_apply_disabled = 0;
let current_service_data = vm.bookingpress_all_services_data[selected_service];
if( "undefined" != typeof current_service_data && "undefined" != typeof current_service_data.services_meta ){
let current_service_meta = current_service_data.services_meta;
if( "undefined" != typeof current_service_meta.deposit_amount ){
vm.appointment_step_form_data.deposit_payment_amount = current_service_meta.deposit_amount;
vm.appointment_step_form_data.deposit_payment_type = current_service_meta.deposit_type;
if( "percentage" == current_service_meta.deposit_type ){
vm.appointment_step_form_data.deposit_payment_amount_percentage = current_service_meta.deposit_amount;
}
}
}
setTimeout(function(){
vm.is_display_custom_duration_loader = false;
},1500);
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
selectDisableTiming(time_details){
},
selectTiming(selected_start_time, selected_end_time, store_start_time = "", store_end_time = "", store_selected_date = "" ,formated_start_time = "",formated_end_time = "",time_details = ""){
const vm = this;
vm.appointment_step_form_data.selected_start_time = selected_start_time;
vm.appointment_step_form_data.selected_end_time = selected_end_time;
if( "" != formated_end_time && "" != formated_start_time ) {
vm.appointment_step_form_data.selected_formatted_start_time = formated_start_time;
vm.appointment_step_form_data.selected_formatted_end_time = formated_end_time;
}
if( "" != time_details.formatted_start_end_time && "undefined" != time_details.formatted_start_end_time ) {
vm.appointment_step_form_data.selected_formatted_start_end_time = time_details.formatted_start_end_time;
}
if("" != store_start_time && "" != store_end_time && "" != store_selected_date ){
vm.appointment_step_form_data.store_start_time = store_start_time;
vm.appointment_step_form_data.store_end_time = store_end_time;
vm.appointment_step_form_data.client_offset = vm.bookingpress_timezone_offset;
vm.appointment_step_form_data.store_selected_date = store_selected_date;
vm.appointment_step_form_data.store_selected_end_date = time_details.selected_end_date || store_selected_date;
}
vm.appointment_step_form_data.customer_selected_date = time_details.client_date || vm.appointment_step_form_data.selected_date;
vm.appointment_step_form_data.customer_selected_end_date = time_details.client_end_date || time_details.client_date || vm.appointment_step_form_data.selected_date;
vm.appointment_step_form_data.customer_selected_time = time_details.client_start_time || selected_start_time;
vm.appointment_step_form_data.customer_selected_end_time = time_details.client_end_time || selected_end_time;
vm.appointment_step_form_data.is_next_day = false;
vm.appointment_step_form_data.is_both_next_day = false;
if( "undefined" != typeof time_details.is_next_day && true == time_details.is_next_day ){
vm.appointment_step_form_data.is_next_day = true;
vm.appointment_step_form_data.next_day_selection_date = time_details.selected_date;
vm.appointment_step_form_data.selected_end_date = time_details.selected_end_date;
}
if( ("undefined" != typeof time_details.is_both_next_day_time && true == time_details.is_both_next_day_time) || "undefined" != typeof time_details.is_both_next_day_time_v2 && true == time_details.is_both_next_day_time_v2 ){
vm.appointment_step_form_data.customer_selected_date = time_details.client_end_date;
vm.appointment_step_form_data.display_end_date_on_summary = true;
vm.appointment_step_form_data.is_both_next_day = time_details.is_both_next_day_time;
vm.appointment_step_form_data.is_both_next_day_v2 = time_details.is_both_next_day_time_v2;
vm.appointment_step_form_data.is_server_both_next_day = ( "undefined" != typeof time_details.is_overnight_booking_server ) ? time_details.is_overnight_booking_server : false;
vm.appointment_step_form_data.is_customer_both_next_day = time_details.is_both_next_day_time_v2 || false;
}
let bookingpress_is_anystaff_select = true;
if( (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "staffmembers" && vm.bookingpress_sidebar_step_data.service.is_first_step == 1) || ( (vm.appointment_step_form_data.hide_service_selection_step == true || vm.appointment_step_form_data.hide_service_selection_step == "true") && vm.bookingpress_sidebar_step_data.datetime.is_first_step == 1 && ("true" != vm.appointment_step_form_data.hide_staff_selection ) ) ){
let staffmember_details = vm.bookingpress_staffmembers_details;
// change the value anystaff not
bookingpress_is_anystaff_select = false;
if( "undefined" != typeof time_details.available_staffs ) {
staffmember_details.forEach(staff => {
staff.is_display_staff = time_details.available_staffs.includes(parseInt(staff.bookingpress_staffmember_id));
});
} else {
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 0;
staffmember_details.forEach(staff => {
staff.is_display_staff = false;
});
}
vm.no_staffmember_available = staffmember_details.every(staff => !staff.is_display_staff);
vm.appointment_step_form_data.bpa_datetime_after_staffselection = 1;
vm.appointment_step_form_data.bpa_after_select_datetime_available_staff = time_details;
}
if( vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 ){
// change the value anystaff not
bookingpress_is_anystaff_select = false;
let service_details = vm.bpasortedServices;
vm.appointment_step_form_data.bpa_datetime_after_service_selection = 1;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
vm.appointment_step_form_data.is_staff_exists = 1;
}
//console.log( time_details.unavailable_serivce_ids ); //[ 1 ]
// if( "undefined" != typeof time_details.unavailable_serivce_ids ) {
//service_details.forEach(service => {
//service.is_visible = !time_details.unavailable_serivce_ids.includes( parseInt(service.bookingpress_service_id) );
//});
//}
if (typeof time_details.unavailable_serivce_ids !== "undefined") {
service_details.forEach(service => {
if (time_details.unavailable_serivce_ids.includes( service.bookingpress_service_id ) ) {
service.is_visible = false;
service.exclude_id = true;
}
});
} else {
service_details.forEach(service => {
if( "undefined" != typeof service.exclude_id && service.exclude_id == true ){
service.is_visible = true;
}
});
}
vm.no_service_available = service_details.every( services => !services.is_visible );
if( vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1 ){
vm.appointment_step_form_data.bpa_after_select_service_available_staff = time_details;
}
if( "undefined" != typeof time_details.available_staffs ){
let available_staffdata = time_details.available_staffs;
vm.bpasortedServices.forEach( item => {
const hasMatch = Object.keys( item.staff_member_details ).some( key => available_staffdata.includes( Number( key ) ) );
item.is_visible = hasMatch;
item.is_visible_with_flag = hasMatch;
} );
}
}
if( "undefined" != typeof time_details.available_staffs && bookingpress_is_anystaff_select && (vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 && vm.appointment_step_form_data.bpa_datetime_after_service_selection != 1 ) ){
if( 1 < time_details.available_staffs.length ){
let available_staff_id = time_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( time_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = time_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
if( vm.bookingpress_staffmembers_details.every(staff => !staff.is_display_staff) ){
vm.is_any_staff_option_enable = 0;
}
vm.appointment_step_form_data.use_modified_duration = false;
if( "undefined" != typeof time_details.use_slot_duration && true == time_details.use_slot_duration && "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && 1 == vm.appointment_step_form_data.bpa_datetime_after_service_selection ){
vm.appointment_step_form_data.use_modified_duration = true;
let remaining_minutes = time_details.duration_unit_next_break;
vm.slot_duration_till_break = remaining_minutes;
let allSortedServices = Object.assign( [], vm.bpasortedServices );
let totalHiddenServices = 0;
allSortedServices.forEach( (element, index) => {
let service_duration_unit = element.bookingpress_service_duration_unit;
element.is_visible_with_service_step = true;
if( "d" == service_duration_unit ){
element.is_visible_with_service_step = false;
totalHiddenServices++;
} else {
let service_duration = ( "h" == service_duration_unit ) ? parseInt( element.bookingpress_service_duration_val * 60 ) : parseInt( element.bookingpress_service_duration_val );
if( service_duration > remaining_minutes ){
element.is_visible_with_service_step = false;
totalHiddenServices++;
}
}
});
vm.bpasortedServices.forEach( (elm, index) => {
if( "undefined" != typeof elm.is_hide_with_step && true == elm.is_hide_with_step ){
elm.is_visible = true;
}
if( "undefined" != typeof allSortedServices[index].is_visible_with_service_step && false == allSortedServices[index].is_visible_with_service_step ){
elm.is_visible = false;
elm.is_hide_with_step = true;
}
});
console.log( vm.bpasortedServices );
console.log( totalHiddenServices );
vm.no_service_available = false;
if( vm.bpasortedServices.length == totalHiddenServices ){
vm.no_service_available = true;
}
}
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
vm.bookingpress_update_timestep_token();
},
resetForm(){
const vm2 = this;
vm2.appointment_formdata.appointment_selected_customer = "0";
vm2.appointment_formdata.appointment_selected_service = "";
vm2.appointment_formdata.appointment_booked_date = "2026-01-16";
vm2.appointment_formdata.appointment_booked_time = "";
},
select_service(selected_service_id){
const vm = this;
vm.appointment_step_form_data.selected_service = selected_service_id;
},
automatic_next_page(next_tab_id){
const vm = this;
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
;
vm.current_selected_tab_id = parseInt(next_tab_id);
vm.bookingpress_remove_error_msg();
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
},
next_page(customer_form = "", current_selected_element = "", next_selection_element = ""){
const vm = this;
var current_selected_tab = bpa_selected_tab = parseFloat(vm.current_selected_tab_id);
vm.previous_selected_tab_id = parseInt(current_selected_tab);
if(current_selected_element != undefined && current_selected_element != null){
current_selected_tab = parseInt(current_selected_element);
}
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
if(current_selected_tab === 1 || vm.previous_selected_tab_id === 1){
vm.is_display_error = "0";
if(vm.appointment_step_form_data.selected_service == "" || vm.appointment_step_form_data.selected_service == undefined || vm.appointment_step_form_data.selected_service == "undefined"){
vm.bookingpress_set_error_msg("Selecteer een dienst om een afspraak te maken.");
vm.current_selected_tab_id = 1;
return false;
}else{
if(vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == ""){
vm.bookingpress_set_error_msg("Selecteer een medewerker om verder te gaan");
vm.current_selected_tab_id = 1;
return false;
};
if(next_selection_element != ""){
current_selected_tab = next_selection_element;
}else{
current_selected_tab = current_selected_tab;
}
}
}else if(current_selected_tab === 2){
if(current_selected_element != undefined && current_selected_element == 2 && vm.appointment_step_form_data.selected_start_time == "" && bpa_selected_tab == "2" && vm.appointment_step_form_data.selected_service_duration_unit != "d") {
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
}
if(vm.appointment_step_form_data.selected_service != "" && vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.selected_service_duration_unit != "d") {
vm.selectDate(vm.appointment_step_form_data.selected_service, vm.appointment_step_form_data.selected_service_name, vm.appointment_step_form_data.selected_service_price, vm.appointment_step_form_data.service_price_without_currency, "true",vm.appointment_step_form_data.selected_service_duration,vm.appointment_step_form_data.selected_service_duration_unit);
}
if(vm.is_display_error != "1"){
if(next_selection_element != ""){
current_selected_tab = next_selection_element
}else{
current_selected_tab = current_selected_tab;
}
vm.bookingpress_remove_error_msg()
}else{
if(vm.is_error_msg == ""){
vm.bookingpress_set_error_msg("Er is iets fout gegaan")
}
}
}else if(current_selected_tab === 3){
if(vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.is_enable_validations == 1 && vm.appointment_step_form_data.selected_service_duration_unit != "d"){
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
}else{
vm.$refs[customer_form].validate((valid) => {
if (valid) {
if(next_selection_element != ""){
current_selected_tab = next_selection_element
}else{
current_selected_tab = current_selected_tab;
}
}
});
}
}else{
if(vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.is_enable_validations == 1 && vm.appointment_step_form_data.selected_service_duration_unit != "d"){
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
} else {
vm.$refs[customer_form].validate((valid) => {
if (valid) {
if(next_selection_element != ""){
current_selected_tab = next_selection_element;
}else{
current_selected_tab = current_selected_tab;
}
}else{
current_selected_tab = 3;
}
});
}
}
if(current_selected_tab === 2 && vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.selected_date != "" ) {
vm.get_date_timings();
}
vm.current_selected_tab_id = parseInt(current_selected_tab);
if(current_selected_tab === 2 && vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.next_selected_tab_id = 3;
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
},
previous_page(previous_selection_tab_id = ""){
const vm = this;
var current_selected_tab = parseFloat(vm.current_selected_tab_id);
if(previous_selection_tab_id != ""){
current_selected_tab = previous_selection_tab_id;
}else{
vm.previous_selected_tab_id = parseInt(current_selected_tab);
current_selected_tab = current_selected_tab - 1;
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
vm.current_selected_tab_id = parseInt(current_selected_tab);
if(vm.previous_selected_tab_id == "1"){
vm.displayResponsiveCalendar = 1;
}
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
},
select_payment_method(payment_method){
const vm = this;
vm.appointment_step_form_data.selected_payment_method = payment_method;
var bookingpress_allowed_payment_gateways_for_card_fields = [];
if( "undefined" == typeof vm.skip_checking_final_step_validation || true != vm.skip_checking_final_step_validation ){
vm.bookingpress_get_final_step_amount();
}
;
if(bookingpress_allowed_payment_gateways_for_card_fields.includes(payment_method)){
vm.is_display_card_option = 1;
}else{
vm.is_display_card_option = 0;
}
},
displayCalendar(){
const vm = this;
if( "" == vm.appointment_step_form_data.selected_date || ( "undefined" != typeof vm.v_calendar_available_dates && 1 > vm.v_calendar_available_dates.length ) ){
return false;
}
vm.displayResponsiveCalendar = "1";
},
Change_front_appointment_description(service_id) {
const vm = this;
vm.services_data.forEach(function(item, index, arr){
if(item.bookingpress_service_id == service_id ){
if(item.display_details_more == 0 && item.display_details_less == 1) {
item.display_details_less = 0;
item.display_details_more = 1;
} else {
item.display_details_more = 0;
item.display_details_less = 1;
}
}
});
},
bookingpress_phone_country_change_func(bookingpress_country_obj){
const vm = this;
var bookingpress_selected_country = bookingpress_country_obj.iso2;
vm.appointment_step_form_data.customer_phone_country = bookingpress_selected_country;
vm.appointment_step_form_data.customer_phone_dial_code = bookingpress_country_obj.dialCode;
let exampleNumber = window.intlTelInputUtils.getExampleNumber( bookingpress_selected_country, true, 1 );
if( typeof vm.bookingpress_phone_default_placeholder == "undefined" && "" != exampleNumber ){
vm.bookingpress_tel_input_props.inputOptions.placeholder = exampleNumber;
} else if(vm.bookingpress_phone_default_placeholder == "false" && "" != exampleNumber){
vm.bookingpress_tel_input_props.inputOptions.placeholder = exampleNumber;
}
},
bookingpress_phone_country_open( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".el-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.add("bpa-active-col");
}
}
}
},
bookingpress_phone_country_close( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-active-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.remove("bpa-active-col");
}
}
}
},
bookingpress_validatePhoneField(event) {
this.$nextTick(() => {
if (!this.$refs.appointment_step_form_data) return;
const phoneValue = this.appointment_step_form_data.customer_phone;
console.log("called ... " + phoneValue);
if (/^[\d\+\s\-\(\)]+$/.test(phoneValue.trim())) {
console.log("inside this..... one")
this.$refs.appointment_step_form_data.clearValidate(["customer_phone"]);
}
});
},
bookingpress_get_parents( elem, selector ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
if (selector) {
if (elem.matches(selector)) {
parents.push(elem);
}
continue;
}
parents.push(elem);
}
return parents;
},
async bookingpress_disable_date( bpa_selected_service = "", bpa_selected_date = "" ){
let bpa_is_called = false;
var bookingpress_is_allow_modify = "";
var bookingpress_staff_loaded_from_url = "0";
this.isLoadTimeLoader = "1";
this.isLoadDateTimeCalendarLoad = "1";
let staff_id = this.appointment_step_form_data.selected_staff_member_id;
if( 0 == staff_id ){
staff_id = "";
}
this.service_timing = "-3";
if( 0 === this.bookingpress_sidebar_step_data["staffmembers"].is_display_step && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && 1 == this.hide_category_service && "true" == this.appointment_step_form_data.hide_staff_selection && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1);
}
bpa_is_called = true;
}
let form_sequence_first;
if( "object" == typeof this.appointment_step_form_data.form_sequence ){
form_sequence_first = this.appointment_step_form_data.form_sequence[0];
} else {
form_sequence_first = this.appointment_step_form_data.form_sequence;
}
if( false == bpa_is_called && 1 == this.hide_category_service && "service_selection" == form_sequence_first && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && 1 != this.hide_category_service && "true" == this.appointment_step_form_data.hide_staff_selection && false == this.is_staff_member_set_from_url && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && "" == staff_id && "true" == this.appointment_step_form_data.select_any_staffmember ){
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
bpa_is_called = true;
}
/** for the datetime re-arrange step */
if( "datetime" != this.bookingpress_next_tab && "datetime" == this.bookingpress_current_tab && this.bookingpress_sidebar_step_data["service"].is_first_step == 1 && this.bookingpress_sidebar_step_data["datetime"].next_tab_name == "staffmembers" ){
this.appointment_step_form_data.selected_staff_member_id = "";
this.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
}
if( "datetime" != this.bookingpress_next_tab && "datetime" == this.bookingpress_current_tab && this.bookingpress_current_tab != this.bookingpress_next_tab && ( "undefined" != typeof this.appointment_step_form_data.any_staff_selected && 1 == this.appointment_step_form_data.any_staff_selected ) ){
this.appointment_step_form_data.selected_staff_member_id = "";
this.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
this.bookingpress_select_staffmember( "any_staff", 1 );
}
let selected_sid = this.appointment_step_form_data.selected_service;
if(selected_sid != "" && "undefined" != typeof this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date && "" != this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date && null != this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date ) {
this.booking_cal_maxdate = this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date;
const currentDate = new Date();
const targetDate = new Date(this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date);
let diff_in_time = targetDate.getTime() - currentDate.getTime();
let diff_in_days = ( Math.round( diff_in_time / ( 1000 * 3600 * 24 ) ) ) + 1;
const bookingpress_period_available_for_booking = 180;
if(bookingpress_period_available_for_booking < diff_in_days){
/*If max period avilable is less than service expiry date then set limit for the Max period avilable days*/
this.booking_cal_maxdate = new Date( Date.now() + ( 3600 * 1000 * ( 24 * 180 ) ) );
}
}
let use_legacy = "false";
if( "true" == use_legacy ){
this.bookingpress_disable_date_xhr( bpa_selected_service, bpa_selected_date );
} else {
this.bookingpress_disable_date_xhr_v2( bpa_selected_service, bpa_selected_date );
}
},
bookingpress_update_timestep_token( force_update = false, cart_force_update = false ){
const vm = this;
let use_legacy = "false";
let current_tab = vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name;
if( ( "undefined" == typeof vm.bookingpress_cart_addon && ( ( true == force_update && typeof vm.v_calendar_time_token_data != "undefined" ) || ( "datetime" == vm.bookingpress_sidebar_step_data[ vm.bookingpress_current_tab ].previous_tab_name && "d" != vm.appointment_step_form_data.selected_service_duration_unit && "datetime" != vm.bookingpress_current_tab && "false" == use_legacy ) ) ) ||( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 && ( ( ( "undefined" != vm.is_staffmember_activated && 1 == vm.is_staffmember_activated && vm.appointment_step_form_data.selected_staff_member_id != 0 ) && ( "undefined" != typeof vm.appointment_step_form_data.selected_service && vm.appointment_step_form_data.selected_service != 0 ) ) && ( "undefined" != typeof vm.appointment_step_form_data.location_activated && 1 == vm.appointment_step_form_data.location_activated && vm.appointment_step_form_data.selected_location != "" ) || cart_force_update != false ) ) ){
let appointment_selected_date = vm.appointment_step_form_data.store_selected_date || vm.appointment_step_form_data.selected_date;
if( "undefined" != typeof vm.appointment_step_form_data.is_next_day && true == vm.appointment_step_form_data.is_next_day && "undefined" != typeof vm.appointment_step_form_data.next_day_selection_date ){
appointment_selected_date = vm.appointment_step_form_data.next_day_selection_date;
}
let selected_token_data = vm.v_calendar_time_token_data[ appointment_selected_date ][0];
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_set_timeslot_token",
tokenData: selected_token_data,
selectedDate: appointment_selected_date,
_wpnonce:bkp_wpnonce_pre_fetch
};
vm.is_bookingpress_updating_token = true;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm.is_bookingpress_updating_token = false;
vm.is_bookingpress_token_updated = true;
}.bind(this) )
.catch( function (error) {
});
}
},
bookingpress_working_dates_data( working_hour_details, response_data ){
const vm = this;
let timeformat = "5";
let is_client_timezone = "";
let updated_working_hour_details = {};
let available_dates = [];
let response = {};
let firstAvailableDate = "";
let overnight_booking = ("undefined" != typeof response_data.overnight_booking_dates ) ? response_data.overnight_booking_dates : [];
let sorted_working_hours = [];
for( let wdate in working_hour_details ){
let x = 0;
let n = 0;
let is_overnight_booking = overnight_booking.includes( wdate ) || false;
let is_overnight_booking_server = is_overnight_booking;
let overnight_booking_date = "";
sorted_working_hours[wdate] = working_hour_details[ wdate ];
sorted_working_hours[wdate].sort( (a,b) => {
return ( parseInt( a.counter_pos ) < parseInt( b.counter_pos ) ) ? -1 : 1;
} );
for( let wh_data of sorted_working_hours[wdate] ){
let start_datetime = wh_data.store_service_date + " " + wh_data.store_start_time;
let end_datetime = wh_data.selected_end_date + " " + wh_data.store_end_time;
let timezone = wh_data.store_offset;
let stTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_start_time, wh_data, "start" );
wh_data.client_start_time = stTime;
let etTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_end_time, wh_data, "end" );
wh_data.client_end_time = etTime;
if( false == is_overnight_booking ){
is_overnight_booking = wp.hooks.applyFilters( "bookingpress_consider_overnight_booking", is_overnight_booking, wh_data );
}
let stTimeNew = wp.hooks.applyFilters( "bookingpress_modify_datetime_with_timezone", start_datetime, wh_data, "start", true );
let etTimeNew = wp.hooks.applyFilters( "bookingpress_modify_datetime_with_timezone", end_datetime, wh_data, "end", true );
let updated_wdate;
if( "string" == typeof stTimeNew ){
updated_wdate = wdate;
} else {
updated_wdate = stTimeNew.toISOString().split("T")[0];
}
let updated_edate;
if( "string" == typeof etTimeNew ){
updated_edate = wh_data.selected_end_date;
} else {
updated_edate = etTimeNew.toISOString().split("T")[0];
}
if( "undefined" != typeof wh_data.is_day_service && true == wh_data.is_day_service ){
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] && updated_wdate >= vm.jsCurrentDate.toISOString().split("T")[0] ){
updated_working_hour_details[ updated_wdate ] = [];
if( false == is_overnight_booking && !available_dates.includes( updated_wdate + " 00:00:00" ) ){
available_dates.push( updated_wdate + " 00:00:00" );
}
n++;
} else {
continue;
}
} else {
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] ){
updated_working_hour_details[ updated_wdate ] = [];
if( false == is_overnight_booking && !available_dates.includes( updated_wdate + " 00:00:00" ) ){
available_dates.push( updated_wdate + " 00:00:00" );
}
n++;
}
}
if( "" == firstAvailableDate ){
firstAvailableDate = ( "undefined" != typeof response_data.pre_selected_date && true == response_data.pre_selected_date && "undefined" != typeof vm.open_customer_reschedule_appointment_modal && true == vm.open_customer_reschedule_appointment_modal ) ? response_data.selected_date : updated_wdate;
}
wh_data.client_date = updated_wdate;
wh_data.client_end_date = updated_edate;
if( true == is_overnight_booking && "" == overnight_booking_date ){
overnight_booking_date = updated_wdate;
if( "undefined" == typeof updated_working_hour_details[ overnight_booking_date ] ){
updated_working_hour_details[ overnight_booking_date ] = [];
}
}
wh_data.is_both_next_day_time_v2 = false;
if( true == is_overnight_booking ){
if( "true" == is_client_timezone ){
wh_data.is_next_day = false;
}
if( updated_edate > updated_wdate ){
wh_data.is_next_day = true;
}
if( updated_edate == updated_wdate && updated_wdate > overnight_booking_date ){
wh_data.is_both_next_day_time_v2 = true;
wh_data.is_overnight_booking_server = is_overnight_booking_server;
wh_data.is_next_day = true;
wh_data.client_date = wh_data.client_end_date;
}
}
if( true == wh_data.is_both_next_day_time && wh_data.client_end_date > wh_data.client_date ){
wh_data.client_date = wh_data.client_end_date;
}
let startTimeHour = stTime.split(":")[0];
let formatted_startTime = vm.bookingpress_format_time( stTime );
let formatted_endTime = vm.bookingpress_format_time( etTime );
let formatted_datetime = formatted_startTime + " - " + formatted_endTime;
if( "1" == timeformat || "2" == timeformat ){
formatted_datetime = formatted_startTime + " naar " + formatted_endTime;
} else if ( "5" == timeformat || "6" == timeformat ){
formatted_datetime = formatted_startTime + " - " + formatted_endTime;
} else if( "3" == timeformat || "4" == timeformat ){
formatted_datetime = formatted_startTime;
}
wh_data.formatted_start_time = formatted_startTime;
wh_data.formatted_end_time = formatted_endTime;
wh_data.formatted_start_end_time = formatted_datetime;
wh_data.start_hour = startTimeHour;
wh_data.slot_timestamp = new Date( `${wh_data.client_date} ${wh_data.client_start_time}` ).getTime();
if( true == is_overnight_booking ){
if( "undefined" != typeof updated_working_hour_details[ overnight_booking_date ][x] && x == 0){
x = Object.keys( updated_working_hour_details[ overnight_booking_date ] ).length;
}
updated_working_hour_details[ overnight_booking_date ][x] = wh_data;
if( !available_dates.includes( overnight_booking_date + " 00:00:00" ) ){
available_dates.push( overnight_booking_date + " 00:00:00" );
}
} else {
if( "undefined" != typeof updated_working_hour_details[ updated_wdate ][x] && x == 0){
x = Object.keys( updated_working_hour_details[ updated_wdate ] ).length;
}
updated_working_hour_details[ updated_wdate ][x] = wh_data;
}
x++;
}
}
available_dates = wp.hooks.applyFilters( "bookingpress_modify_available_dates_with_day_service", available_dates, working_hour_details, response_data, vm );
firstAvailableDate = wp.hooks.applyFilters( "bookingpress_modify_first_available_date_with_day_service", firstAvailableDate, available_dates, vm );
response.available_dates = available_dates;
response.updated_working_hour_details = updated_working_hour_details;
response.selected_date = firstAvailableDate;
return response;
},
bookingpress_working_dates_data_legacy( working_hour_details, response_data ){
const vm = this;
let timeformat = "5";
let updated_working_hour_details = {};
let available_dates = [];
let response = {};
let firstAvailableDate = "";
for( let wdate in working_hour_details ){
let x = 0;
let n = 0;
for( let wh_data of working_hour_details[ wdate ] ){
let start_datetime = wh_data.store_service_date + " " + wh_data.store_start_time;
let end_datetime = wh_data.store_service_date + " " + wh_data.store_end_time;
let timezone = wh_data.store_offset;
let stTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_start_time, wh_data, "start" );
wh_data.client_start_time = stTime;
let etTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_end_time, wh_data, "end" );
wh_data.client_end_time = etTime;
let updated_wdate = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", wdate, wh_data );
let updated_edate = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", wh_data.selected_end_date, wh_data );
if( "undefined" != typeof wh_data.is_day_service && true == wh_data.is_day_service ){
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] && updated_wdate >= vm.jsCurrentDate.toISOString().split("T")[0] ){
updated_working_hour_details[ updated_wdate ] = [];
available_dates.push( updated_wdate + " 00:00:00" );
n++;
} else {
continue;
}
} else {
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] ){
updated_working_hour_details[ updated_wdate ] = [];
available_dates.push( updated_wdate + " 00:00:00" );
n++;
}
}
if( "" == firstAvailableDate ){
firstAvailableDate = updated_wdate;
}
wh_data.client_date = updated_wdate;
wh_data.client_end_date = updated_edate;
let startTimeHour = stTime.split(":")[0];
let formatted_startTime = vm.bookingpress_format_time( stTime );
let formatted_endTime = vm.bookingpress_format_time( etTime );
let formatted_datetime = formatted_startTime + " - " + formatted_endTime;
if( "1" == timeformat || "2" == timeformat ){
formatted_datetime = formatted_startTime + "naar" + formatted_endTime;
} else if ( "5" == timeformat || "6" == timeformat ){
formatted_datetime = formatted_startTime + " - " + formatted_endTime;
} else if( "3" == timeformat || "4" == timeformat ){
formatted_datetime = formatted_startTime;
}
wh_data.formatted_start_time = formatted_startTime;
wh_data.formatted_end_time = formatted_endTime;
wh_data.formatted_start_end_time = formatted_datetime;
wh_data.start_hour = startTimeHour;
updated_working_hour_details[ updated_wdate ][x] = wh_data;
x++;
}
}
available_dates = wp.hooks.applyFilters( "bookingpress_modify_available_dates_with_day_service", available_dates, working_hour_details, response_data, vm );
firstAvailableDate = wp.hooks.applyFilters( "bookingpress_modify_first_available_date_with_day_service", firstAvailableDate, available_dates, vm );
response.available_dates = available_dates;
response.updated_working_hour_details = updated_working_hour_details;
response.selected_date = firstAvailableDate;
return response;
},
bookingpress_disable_date_xhr_v2( bpa_selected_service = "", bpa_selected_date = "", showLoader = true ){
const vm = this;
if( true == showLoader ){
vm.isLoadTimeLoader = "1";
vm.isLoadDateTimeCalendarLoad = "1";
};
let preselect_date = false;
if( "" != bpa_selected_date ){
preselect_date = true;
}
if( "" == bpa_selected_date ){
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
vm.service_timing = "-3";
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if( "" == bpa_selected_service && "" != vm.appointment_step_form_data.selected_service ){
bpa_selected_service = vm.appointment_step_form_data.selected_service;
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ){
vm.appointment_step_form_data.bookingpress_form_token = vm.appointment_step_form_data.bookingpress_uniq_id + "_" + ( Math.random().toString(36).slice(2) );
}
let startTime = new Date().getTime();
var postData = { action: "bookingpress_fetch_timeslot_data", service_id: bpa_selected_service, selected_service:bpa_selected_service, selected_date:bpa_selected_date, is_preselect: preselect_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
vm.no_timeslot_available = false;
vm.v_calendar_check_month_dates = false;
vm.v_calendar_next_month_dates;
vm.days_off_disabled_dates = "";
if(typeof vm.is_display_custom_duration_loader !== "undefined" && typeof vm.is_display_custom_duration_day_loader !== "undefined"){
if(vm.appointment_step_form_data.selected_service_duration_unit == "d" && (vm.is_display_custom_duration_loader == true || vm.is_display_custom_duration_day_loader == true)){
vm.isLoadDateTimeCalendarLoad = "0";
postData.bpa_choose_from_csd = "true";
}
}
if( "true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader ){
postData.bpa_choose_from_csd = true;
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
postData.bpa_choose_from_csd = true;
postData.is_preselect = true;
postData.selected_date = vm.appointment_step_form_data.selected_date;
}
if( "undefined" != typeof vm.appointment_step_form_data.custom_service_duration_value && "" != vm.appointment_step_form_data.custom_service_duration_value ){
postData.bpa_choose_from_csd = true;
}
;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
let request_time = new Date().getTime() - startTime;
/* Changes to add disable dates class start */
if( "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
/* Changes to add disable dates class end */
if(typeof response.data.bookingpress_custom_service_durations_slot !== "undefined"){
vm.bookingpress_custom_service_durations_slot = response.data.bookingpress_custom_service_durations_slot;
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 1;
document.querySelector(".bpa-front--dt__col").style.order = 2;
}
} else {
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 2;
document.querySelector(".bpa-front--dt__col").style.order = 1;
}
}
vm.is_display_custom_duration_loader = false;
vm.is_display_custom_duration_day_loader = false;
let working_hour_details = response.data.working_details;
let selectedDate = response.data.selected_date;
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
let preselected_date = "";
if( "undefined" != typeof response.data.pre_selected_date && true == response.data.pre_selected_date ){
preselected_date = response.data.selected_date;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
vm.appointment_step_form_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
vm.appointment_step_form_data.selected_date = "";
selectedDate = ( "" != preselected_date ) ? preselected_date : ( wh_details.selected_date || selectedDate );
vm.v_calendar_available_dates = wh_details.available_dates;
vm.v_calendar_timeslots_data = wh_details.updated_working_hour_details;
vm.no_timeslot_available = false;
let v_available_dates_only = [];
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
if( !v_available_dates_only.includes( selectedDate ) && wh_details.selected_date != selectedDate && wh_details.selected_date != "" ){
selectedDate = wh_details.selected_date;
}
vm.v_calendar_available_only_date = v_available_dates_only;
if( "undefined" != typeof selectedDate && "" != selectedDate ){
(function( $ref_ ){
setTimeout(function(){
vm.appointment_step_form_data.selected_date = selectedDate;
vm.bookingpress_select_multi_day_range();
if( "undefined" != typeof $ref_.bkp_front_calendar ){
const calendar = $ref_.bkp_front_calendar;
try{
calendar.move( selectedDate );
} catch( e ){
console.log( e );
}
}
if( "undefined" != typeof $ref_.bkp_front_calendar_responsive ){
const calendar_r = $ref_.bkp_front_calendar_responsive;
try{
calendar_r.move( selectedDate );
} catch( e ){
console.log( e );
}
}
},10);
})( this.$refs );
}
/* V-date-picker attributes */
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_default_label = response.data.max_capacity_capacity;
let vcal_capacity_attrs = response.data.vcal_capacity_attrs;
if( "undefined" != typeof vcal_capacity_attrs && vcal_capacity_attrs.length != "" ){
for( let vcal_date_v2 in vcal_capacity_attrs ){
let vcal_data_v2 = vcal_capacity_attrs[ vcal_date_v2 ];
vcal_date_v2 = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date_v2, {"store_service_date":vcal_date_v2,"store_start_time":"00:00:00","store_offset":"+01:00"} );
if( "0" == vcal_data_v2 ){
vm.v_calendar_blocked_dates.push( vcal_date_v2 );
}
}
}
/* V-date-picker attributes */
vm.v_calendar_default_label = response.data.max_capacity_capacity;
vm.v_calendar_time_token_data = response.data.working_hour_timing_token;
if( "undefined" != typeof wh_details.updated_working_hour_details[ selectedDate ] ){
vm.service_timing = vm.bookingpress_categories_timeslots( wh_details.updated_working_hour_details[ selectedDate ] );
} else {
vm.service_timing = {
"morning_time":[],
"afternoon_time":[],
"evening_time":[],
"night_time":[]
};
vm.no_timeslot_available = true;
}
if( vm.current_screen_size != "desktop" && vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.displayResponsiveCalendar = 0;
}
vm.isLoadTimeLoader = "0";
vm.isLoadDateTimeCalendarLoad = "0";
if( "undefined" == typeof response.data.stop_check || false == response.data.stop_check ){
vm.bookingpress_retrieve_future_month_details( response.data.next_month_date, 1 );
}
setTimeout(function(){
if( "undefined" != typeof vm.is_bookingpress_token_updated && true == vm.is_bookingpress_token_updated ){
// condition update
if( ("undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1) && ( "undefined" != typeof vm.is_staffmember_activated || 1 != vm.is_staffmember_activated && ( vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "staffmembers") || (vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && vm.appointment_step_form_data.bpa_datetime_after_service_selection == 1))) && ( "undefined" != typeof vm.is_staffmember_activated || 1 != vm.is_staffmember_activated && "undefined" != typeof vm.appointment_step_form_data.location_activated || 1 != vm.appointment_step_form_data.location_activated && vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "location" ) ){
vm.bookingpress_update_timestep_token( true, true );
} else {
vm.bookingpress_update_timestep_token( true );
}
}
},10);
setTimeout(() => {
vm.focusFirstDate();
if( "undefined" != typeof working_hour_details && working_hour_details.length == 0){
let focusCancelBtn = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa-front-dc--footer button");
if(focusCancelBtn !== null){
focusCancelBtn.focus();
}
}
const unavailable_date_calendar_input = document.querySelector(".el-form-item .bpa-unavailable-popup-datepicker .el-input__inner");
if(unavailable_date_calendar_input !== null){
unavailable_date_calendar_input.focus();
}
}, 500);
if( "undefined" != typeof selectedDate ){
let selected_date = selectedDate.split(" ")[0];
let timeslot_data = vm.v_calendar_timeslots_data[ selected_date ];
if( "undefined" != typeof timeslot_data ){
vm.appointment_step_form_data.store_service_date = timeslot_data[0].store_service_date;
vm.appointment_step_form_data.store_selected_date = timeslot_data[0].store_service_date;
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_future_month_details( next_month_date = "", counter = 1 ){
const vm = this;
let startDate = next_month_date != "" ? next_month_date : vm.v_calendar_available_dates.at(-1);
if( 4 == counter ){
vm.v_calendar_check_month_dates = true;
vm.v_calendar_next_month_dates = next_month_date;
vm.isHoldBookingRequest = false;
return false;
} else {
vm.isHoldBookingRequest = true;
}
let postData = {
action: "bookingpress_retrieve_entire_month_details",
from_date: startDate,
counter: counter
};
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
postData._wpnonce = bkp_wpnonce_pre_fetch;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
if( ("true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader) || ( "undefined" != typeof vm.bpa_choose_from_csd && true == vm.bpa_choose_from_csd ) ){
postData.bpa_choose_from_csd = true;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof postData.bpa_choose_from_csd ){
vm.bpa_choose_from_csd = true;
}
let working_hour_details = response.data.working_details
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
vm.v_calendar_available_dates = vm.v_calendar_available_dates.concat( wh_details.available_dates );
vm.v_calendar_time_token_data = Object.assign( {},vm.v_calendar_time_token_data, response.data.working_hour_timing_token );
let v_available_dates_only = [];
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
let vcal_capacity_attrs = response.data.vcal_capacity_attrs;
if( "undefined" != typeof vcal_capacity_attrs && vcal_capacity_attrs.length != "" ){
for( let vcal_date_v2 in vcal_capacity_attrs ){
let vcal_data_v2 = vcal_capacity_attrs[ vcal_date_v2 ];
vcal_date_v2 = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date_v2, {"store_service_date":vcal_date_v2,"store_start_time":"00:00:00","store_offset":"+01:00"} );
if( "0" == vcal_data_v2 ){
vm.v_calendar_blocked_dates.push( vcal_date_v2 );
}
}
}
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
vm.v_calendar_available_only_date = v_available_dates_only;
vm.v_calendar_timeslots_data = Object.assign({},vm.v_calendar_timeslots_data, wh_details.updated_working_hour_details );
vm.isLoadDateTimeCalendarLoad = 0;
++counter;
counter = wp.hooks.applyFilters( "bookingpress_modify_next_month_check_counter", counter, response.data );
if( "undefined" == typeof response.data.stop_check || response.data.stop_check == false ){
vm.bookingpress_retrieve_future_month_details( response.data.next_month_date, counter );
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_future_month_details_single( next_month_date = "", next_month_dates = "", counter = 1 ){
const vm = this;
let startDate = next_month_date != "" ? next_month_date : vm.v_calendar_available_dates.at(-1);
vm.v_calendar_check_month_dates = true;
vm.v_calendar_next_month_dates = next_month_date;
vm.isHoldBookingRequest = false;
let postData = {
action: "bookingpress_retrieve_entire_month_details",
from_date: startDate,
counter: counter
};
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
postData._wpnonce = bkp_wpnonce_pre_fetch;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
if( ("true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader) || ( "undefined" != typeof vm.bpa_choose_from_csd && true == vm.bpa_choose_from_csd ) ){
postData.bpa_choose_from_csd = true;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof postData.bpa_choose_from_csd ){
vm.bpa_choose_from_csd = true;
}
let working_hour_details = response.data.working_details
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
vm.v_calendar_available_dates = vm.v_calendar_available_dates.concat( wh_details.available_dates );
vm.v_calendar_time_token_data = Object.assign( {},vm.v_calendar_time_token_data, response.data.working_hour_timing_token );
let v_available_dates_only = [];
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_available_only_date = v_available_dates_only;
vm.v_calendar_timeslots_data = Object.assign({},vm.v_calendar_timeslots_data, wh_details.updated_working_hour_details );
vm.isLoadDateTimeCalendarLoad = 0;
vm.bookingpress_retrieve_future_month_details( next_month_dates, counter );
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_format_time(value){
var default_time_format = "HH:mm";
return moment(String(value), "HH:mm:ss").locale("nl_NL").format(default_time_format)
},
bookingpress_categories_timeslots( timeslot_details ){
let afternoon_slot_timings = parseInt( "12" );
let evening_slot_timings = parseInt( "18" );
let night_slot_timings = parseInt( "" );
if( "undefined" == typeof timeslot_details ){
return {};
}
let service_timings_data = {
"morning_time":[],
"afternoon_time":[],
"evening_time":[],
"night_time":[]
};
let x = 0;
for( let timeslot_data of timeslot_details ){
if( "undefined" != typeof timeslot_data && ( "undefined" == typeof timeslot_data.is_next_day || timeslot_data.is_next_day == false) ){
let startHour = parseInt( timeslot_data.start_hour );
if( startHour >= 0 && startHour < afternoon_slot_timings ){
service_timings_data.morning_time.push( timeslot_data );
} else if( startHour >= afternoon_slot_timings && ( "" == evening_slot_timings || startHour < evening_slot_timings ) ){
service_timings_data.afternoon_time.push( timeslot_data );
} else if ( startHour >= evening_slot_timings && ( "" == night_slot_timings || startHour < night_slot_timings ) ){
service_timings_data.evening_time.push( timeslot_data );
} else {
service_timings_data.night_time.push( timeslot_data );
}
x++;
}
}
if( timeslot_details.length > x ){
for( let timeslot_data of timeslot_details ){
if( "undefined" != typeof timeslot_data && "undefined" != typeof timeslot_data.is_next_day && timeslot_data.is_next_day == true ){
let startHour = parseInt( timeslot_data.start_hour );
service_timings_data.night_time.push( timeslot_data );
}
}
}
let sorted_timings_data = {};
for( let timing_item in service_timings_data ){
let timing_details = Object.assign( [], service_timings_data[ timing_item ] );
timing_details.sort( ( a, b ) => {
return ( parseInt( a.slot_timestamp ) < parseInt( b.slot_timestamp ) ) ? -1 : 1;
});
sorted_timings_data[ timing_item ] = timing_details;
}
return sorted_timings_data;
},
bookingpress_disable_date_xhr( bpa_selected_service = "", bpa_selected_date = "", showLoader = true ){
const vm = this;
if( true == showLoader ){
vm.isLoadTimeLoader = "1";
vm.isLoadDateTimeCalendarLoad = "1";
}
vm.service_timing = "-3";
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if( "" == bpa_selected_service && "" != vm.appointment_step_form_data.selected_service ){
bpa_selected_service = vm.appointment_step_form_data.selected_service;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
vm.appointment_step_form_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ){
vm.appointment_step_form_data.bookingpress_form_token = vm.appointment_step_form_data.bookingpress_uniq_id + "_" + ( Math.random().toString(36).slice(2) );
}
var postData = { action: "bookingpress_get_disable_date", service_id: bpa_selected_service, selected_service:bpa_selected_service, selected_date:bpa_selected_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch };
postData.disabled_dates = JSON.stringify( vm.v_calendar_disable_dates );
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
vm.no_timeslot_available = false;
vm.v_calendar_check_month_dates = false;
vm.v_calendar_next_month_dates = {};
vm.days_off_disabled_dates = "";
if(typeof vm.is_display_custom_duration_loader !== "undefined" && typeof vm.is_display_custom_duration_day_loader !== "undefined"){
if(vm.appointment_step_form_data.selected_service_duration_unit == "d" && (vm.is_display_custom_duration_loader == true || vm.is_display_custom_duration_day_loader == true)){
vm.isLoadDateTimeCalendarLoad = "0";
postData.bpa_choose_from_csd = "true";
}
}
if( "true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader ){
postData.bpa_choose_from_csd = true;
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
postData.bpa_choose_from_csd = true;
postData.is_preselect = true;
postData.selected_date = vm.appointment_step_form_data.selected_date;
}
if( "undefined" != typeof vm.appointment_step_form_data.custom_service_duration_value && "" != vm.appointment_step_form_data.custom_service_duration_value ){
postData.bpa_choose_from_csd = true;
}
;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
vm.service_timing = [];
if(response.data.variant == "success" && (response.data.selected_date != undefined && response.data.days_off_disabled_dates != undefined)){
/* Changes to add disable dates class start */
if( "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
/* Changes to add disable dates class end */
if(typeof response.data.bookingpress_custom_service_durations_slot !== "undefined"){
vm.bookingpress_custom_service_durations_slot = response.data.bookingpress_custom_service_durations_slot;
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 1;
document.querySelector(".bpa-front--dt__col").style.order = 2;
}
} else {
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 2;
document.querySelector(".bpa-front--dt__col").style.order = 1;
}
}
vm.is_display_custom_duration_loader = false;
vm.is_display_custom_duration_day_loader = false;
vm.days_off_disabled_dates = "";
/*V-Calendar disabled dates change start*/
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
vm.v_calendar_disable_dates = [];
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
/*V-Calendar disabled dates change end*/
let use_legacy = "false";
let pro_version = "false";
if( "true" == use_legacy && "false" == pro_version ){
let min_date = vm.jsCurrentDate;
let max_date = vm.booking_cal_maxdate;
let loop = new Date( min_date );
let available_dates = [];
while( loop <= max_date ){
let dt = loop.toISOString().split("T")[0] + " 00:00:00";
if( dt.indexOf( vm.v_calendar_disable_dates ) == -1 ){
available_dates.push( dt );
}
loop.setDate( loop.getDate() + 1 );
}
vm.v_calendar_available_dates = available_dates;
}
let resp_selected_date = response.data.selected_date;
if( vm.current_screen_size != "desktop" && vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.displayResponsiveCalendar = 0;
}
/* V-date-picker attributes */
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_default_label = response.data.max_capacity_capacity;
/* V-date-picker attributes */
vm.days_off_disabled_dates = response.data.days_off_disabled_dates;
vm.appointment_step_form_data.selected_date = response.data.selected_date;
vm.bookingpress_select_multi_day_range();
if( "undefined" != typeof response.data.front_timings ){
vm.service_timing = response.data.front_timings;
if( response.data.front_timings.length <= 0 ){
vm.no_timeslot_available = true;
}
}
if( "undefined" != typeof this.$refs.bkp_front_calendar ){
const calendar = this.$refs.bkp_front_calendar;
calendar.move(vm.appointment_step_form_data.selected_date);
}
vm.isLoadTimeLoader = "0";
if( "undefined" != typeof response.data.empty_front_timings && true == response.data.empty_front_timings ){
vm.isLoadDateTimeCalendarLoad = "1";
vm.appointment_step_form_data.selected_date = response.data.next_available_date;
vm.bookingpress_disable_date( bpa_selected_service, response.data.next_available_date );
return;
} else {
/* Check full day appointments block */
if( false == response.data.prevent_next_month_check ){
let postDataAction = "bookingpress_get_whole_day_appointments";
if( true == response.data.check_for_multiple_days_event ){
postDataAction = "bookingpress_get_whole_day_appointments_multiple_days";
}
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: postDataAction,days_off_disabled_dates: vm.days_off_disabled_dates, service_id: bpa_selected_service, max_available_year: response.data.max_available_year, max_available_month:response.data.max_available_month, selected_service:bpa_selected_service, selected_date:bpa_selected_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch, "next_month": response.data.next_month, "next_year": response.data.next_year, "counter": 1 };
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
postData.appointment_data_obj = JSON.stringify( vm.appointment_step_form_data );
postData.staffmember_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( vm.bookingpress_is_extra_enable == 1 ){
postData.service_extra_details = vm.appointment_step_form_data.bookingpress_selected_extra_details;
};
vm.bookingpress_retrieve_daysoff_for_booked_appointment( postData );
}
setTimeout(function(){
vm.isLoadDateTimeCalendarLoad = "0"
},200);
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_daysoff_for_booked_appointment( postData ){
const vm = this;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) ).then( function( response ) {
vm.days_off_disabled_dates = response.data.days_off_disabled_dates;
vm.isLoadDateTimeCalendarLoad = 0;
if(false == response.data.prevent_next_month_check && response.data.counter <= 3 ){ /** Currently data will be checked for next 3 months */
postData.days_off_disabled_dates = vm.days_off_disabled_dates;
postData.next_month = response.data.next_month;
postData.next_year = response.data.next_year;
postData.counter++;
if( postData.counter < 4 ){
vm.isHoldBookingRequest = true;
vm.bookingpress_retrieve_daysoff_for_booked_appointment( postData );
} else {
vm.v_calendar_check_month_dates = true;
let next_month_year = {
"month": parseInt( response.data.next_month ),
"year": response.data.next_year,
"postData": postData
};
vm.v_calendar_next_month_dates = next_month_year;
vm.isHoldBookingRequest = false;
}
/* V-Calendar disabled dates change start */
if( "" != response.data.days_off_disabled_dates_string ){
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date ){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
let use_legacy = "false";
let pro_version = "false";
if( "true" == use_legacy && "false" == pro_version ){
let min_date = vm.jsCurrentDate;
let max_date = vm.booking_cal_maxdate;
let loop = new Date( min_date );
let available_dates = [];
while( loop <= max_date ){
let dt = loop.toISOString().split("T")[0] + " 00:00:00";
if( dt.indexOf( vm.v_calendar_disable_dates ) == -1 ){
available_dates.push( dt );
}
loop.setDate( loop.getDate() + 1 );
}
vm.v_calendar_available_dates = available_dates;
}
}
/* V-Calendar disabled dates change end */
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.vcal_attributes ){
let vcal_attributes = response.data.vcal_attributes;
vm.bookingpress_select_multi_day_range();
if( vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
if( vm.v_calendar_attributes.length > 0 ){
vm.v_calendar_attributes = vm.v_calendar_attributes.concat( vcal_attr_data );
} else {
vm.v_calendar_attributes = vcal_attr_data;
}
if( "" != vm.v_calendar_attributes_current ){
let joined_cal_attr_current = { ...vm.v_calendar_attributes_current, ...vcal_attr_data_current };
vm.v_calendar_attributes_current = joined_cal_attr_current;
} else {
vm.v_calendar_attributes_current = vcal_attr_data_current;
}
}
}
} else {
/* V-Calendar disabled dates change start */
if( "" != response.data.days_off_disabled_dates_string ){
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date ){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
}
/* V-Calendar disabled dates change end */
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.vcal_attributes ){
let vcal_attributes = response.data.vcal_attributes;
vm.bookingpress_select_multi_day_range();
if( vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
if( vm.v_calendar_attributes.length > 0 ){
vm.v_calendar_attributes = vm.v_calendar_attributes.concat( vcal_attr_data );
} else {
vm.v_calendar_attributes = vcal_attr_data;
}
if( "" != vm.v_calendar_attributes_current ){
let joined_cal_attr_current = { ...vm.v_calendar_attributes_current, ...vcal_attr_data_current };
vm.v_calendar_attributes_current = joined_cal_attr_current;
} else {
vm.v_calendar_attributes_current = vcal_attr_data_current;
}
}
}
}
});
},
bpaMoveMonthResponsive( page ){
const vm = this;
if( "undefined" != typeof vm.v_calendar_check_month_dates && true == vm.v_calendar_check_month_dates && "undefined" != typeof vm.v_calendar_next_month_dates && false == vm.isHoldBookingRequest ){
let current_month = page.month;
let current_year = page.year;
let next_page_month = parseInt( vm.v_calendar_next_month_dates.split("-")[1] ) || null;
let next_page_year = parseInt( vm.v_calendar_next_month_dates.split("-")[0] ) || null;
if( null != next_page_month && null != next_page_year ){
if( current_year == next_page_year && current_month == next_page_month ){
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, 1 );
} else if( (current_year == next_page_year && current_month > next_page_month) || current_year > next_page_year ){
let current_date = new Date( `${current_year}-${current_month}-1` );
let next_page_date = new Date( `${next_page_year}-${next_page_month}-1` );
const monthDiff = current_date.getMonth() - next_page_date.getMonth();
counter = 0 - monthDiff;
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, counter );
}
setTimeout(() => {
vm.focusFirstDate();
}, 500);
}
}
},
bpaMoveMonth( page ){
const vm = this;
if( "undefined" != typeof vm.v_calendar_check_month_dates && true == vm.v_calendar_check_month_dates && "undefined" != typeof vm.v_calendar_next_month_dates && false == vm.isHoldBookingRequest ){
let current_month = page.month;
let current_year = page.year;
let next_page_month = parseInt( vm.v_calendar_next_month_dates.split("-")[1] ) || null;
let next_page_year = parseInt( vm.v_calendar_next_month_dates.split("-")[0] ) || null;
if( null != next_page_month && null != next_page_year ){
if( current_year == next_page_year && current_month == next_page_month ){
vm.isLoadDateTimeCalendarLoad = 1;
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, 1 );
} else if( (current_year == next_page_year && current_month > next_page_month) || current_year > next_page_year ){
let current_date = new Date( `${current_year}-${current_month}-1` );
let next_page_date = new Date( `${next_page_year}-${next_page_month}-1` );
const monthDiff = current_date.getMonth() - next_page_date.getMonth();
let month_ = ( current_month.toString().length == 1 ) ? ( "0" + current_month.toString() ) : current_month;
let nextMonthDate = current_year + "-" + month_ + "-01";
counter = 0 - monthDiff;
vm.isLoadDateTimeCalendarLoad = 1;
vm.bookingpress_retrieve_future_month_details_single( nextMonthDate, vm.v_calendar_next_month_dates, counter );
}
}
}
},
bookingpress_get_all_parent_node_with_overflow_hidden( elem ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
let computed_style = getComputedStyle( elem );
if( computed_style.overflow == "hidden" || computed_style.overflowX == "hidden" || computed_style.overflowY == "hidden" ){
parents.push(elem);
}
}
return parents;
},
bookingpress_onload_func(){
const vm = this;
vm.current_screen_size = "desktop";
if(window.outerWidth >= 1200){
vm.current_screen_size = "desktop";
}else if(window.outerWidth < 1200 && window.outerWidth >= 768){
vm.current_screen_size = "tablet";
}else if(window.outerWidth < 768){
vm.current_screen_size = "mobile";
}
let is_mobile_device = "";
if( "mobile" != vm.current_screen_size && ("true" == is_mobile_device || true == is_mobile_device) ){
vm.current_screen_size = "mobile";
}
if(window.innerWidth <= 576){
vm.bookingpress_container_dynamic_class = "";
let bookingpress_container = vm.$el;
let parents_with_hidden_overflow = vm.bookingpress_get_all_parent_node_with_overflow_hidden( bookingpress_container );
let apply_overflow = ( parents_with_hidden_overflow.length > 0 ) ? true : false;
window.addEventListener("scroll", function(e){
let bookingpress_scrollTop = bookingpress_container.getBoundingClientRect().top;
let bookingpress_scrollBottom = bookingpress_container.getBoundingClientRect().bottom;
let bpa_current_scroll = window.scrollY;
let targetBottom = bookingpress_container.getBoundingClientRect().bottom;
let viewportHeight = window.innerHeight || document.documentElement.clientHeight;
if( bookingpress_scrollTop < 50 && bpa_current_scroll >= bookingpress_scrollTop && targetBottom >= viewportHeight ){
vm.bookingpress_container_dynamic_class = "bpa-front__mc--is-sticky" ;
vm.bookingpress_footer_dynamic_class = "__bpa-is-sticky"; /* Change this string */
if( apply_overflow ){
for( let i = 0; i < parents_with_hidden_overflow.length; i++ ){
let parent = parents_with_hidden_overflow[i];
parent.classList.add("--bpa-is-overflow-visible");
}
}
} else {
vm.bookingpress_container_dynamic_class = "";
vm.bookingpress_footer_dynamic_class = ""; /* Change this string */
if( apply_overflow ){
for( let i = 0; i < parents_with_hidden_overflow.length; i++ ){
let parent = parents_with_hidden_overflow[i];
parent.classList.remove("--bpa-is-overflow-visible");
}
}
}
});
}
window.addEventListener("resize", function(e){
if( window.innerWidth <= 576 ){
vm.bookingpress_container_dynamic_class = "";
let bookingpress_container = vm.$el;
let bookingpress_scrollTop = bookingpress_container.getBoundingClientRect().top;
let bookingpress_scrollBottom = bookingpress_container.getBoundingClientRect().bottom;
let bpa_current_scroll = window.scrollY;
bookingpress_scrollBottom = bpa_current_scroll + bookingpress_scrollBottom + bookingpress_scrollTop;
let targetBottom = bookingpress_container.getBoundingClientRect().bottom;
let viewportHeight = window.innerHeight || document.documentElement.clientHeight;
if( bookingpress_scrollTop < 50 && bpa_current_scroll >= bookingpress_scrollTop && targetBottom >= viewportHeight ){
vm.bookingpress_container_dynamic_class = "bpa-front__mc--is-sticky";
vm.bookingpress_footer_dynamic_class = "__bpa-is-sticky" /* Change this string */
} else {
vm.bookingpress_container_dynamic_class = "";
vm.bookingpress_footer_dynamic_class = ""; /* Change this string */
}
}
});
},
bookingpress_step_navigation(current_tab, next_tab, previous_tab, is_strict_validate = 1){
const vm = this;
var bookingpress_is_validate = 0;
vm.bookingpress_remove_error_msg();
var bookingpress_validate_fields_arr = vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validate_fields;
if( "staffmembers" == vm.bookingpress_current_tab && "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected && true == vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected ){
is_strict_validate = 0;
}
if("service" == vm.bookingpress_current_tab){
if( vm.bookingpress_is_extra_enable == "1" && typeof vm.appointment_step_form_data.selected_service != "" ){
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if(typeof selected_service_data != "undefined") {
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
bpa_selected_service_extra_count++;
}
}
if("undefined" != selected_service_data.service_extras && "" != selected_service_data.service_extras && bpa_selected_service_extra_count < selected_service_data.bookingpress_min_no_extra_service){
bookingpress_is_validate = 1;
let errorMsg = "Please select at least [x] extra service";
errorMsg = errorMsg.replace("[x]", selected_service_data.bookingpress_min_no_extra_service);
vm.bookingpress_set_extra_service_error_msg(errorMsg);
}
else if("undefined" != selected_service_data.service_extras && "" != selected_service_data.service_extras && bpa_selected_service_extra_count > selected_service_data.bookingpress_max_no_extra_service ){
bookingpress_is_validate = 1;
let errorMsg = "You can select maximum [x] extra services";
errorMsg = errorMsg.replace("[x]", selected_service_data.bookingpress_max_no_extra_service);
vm.bookingpress_set_extra_service_error_msg(errorMsg);
}
}
}
}
if((vm.bookingpress_current_tab == "basic_details") && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
bookingpress_validate_fields_arr.forEach(function(currentValue, index, arr){
if(vm.bookingpress_current_tab == vm.bookingpress_current_tab && vm.appointment_step_form_data[currentValue] == "" && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
});
if(bookingpress_is_validate == 0 && is_strict_validate == 1){
var customer_form = "appointment_step_form_data";
vm.$refs[customer_form].validate((valid) => {
if (!valid) {
bookingpress_is_validate = 1;
}else{
bookingpress_is_validate = 0;
}
});
}
}else{
if(is_strict_validate == 1){
bookingpress_validate_fields_arr.forEach(function(currentValue, index, arr){
if(vm.bookingpress_current_tab == vm.bookingpress_current_tab && vm.appointment_step_form_data[currentValue] == "" && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
if( currentValue == "selected_start_time" && vm.appointment_step_form_data[currentValue] == "" ) {
if( vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
} else {
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
}
});
}
}
if( "service" == current_tab && "service" != vm.bookingpress_current_tab ){
var bookingpress_selected_date = vm.appointment_step_form_data.selected_date+"T00:00:00+00:00";
var bookingpress_disable_dates_arr = vm.days_off_disabled_dates.split(",");
if(bookingpress_disable_dates_arr.includes(bookingpress_selected_date)){
let newDate = new Date("2026-01-16 14:28:54");
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( newDate ) ){
let sel_month = newDate.getMonth() + 1;
let sel_year = newDate.getFullYear();
let sel_date = newDate.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
newDate = sel_year + "-" + sel_month + "-" + sel_date;
}
vm.appointment_step_form_data.selected_date = newDate;
}
}
if( ("basic_details" == current_tab && "service" == vm.bookingpress_current_tab) || ("summary" == current_tab && "service" == vm.bookingpress_current_tab) ){
if(vm.appointment_step_form_data.selected_service_duration_unit != "d"){
if(vm.appointment_step_form_data.selected_start_time == ""){
bookingpress_is_validate = 1;
}
}
}
if(bookingpress_is_validate == 0){
vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].is_allow_navigate = 1;
let current_selected_tab = vm.bookingpress_current_tab;
vm.bookingpress_current_tab = current_tab;
vm.bookingpress_next_tab = next_tab;
vm.bookngpress_previous_tab = previous_tab;
vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].is_allow_navigate = 1;
if( "datetime" == current_tab ){
let selected_service_id = vm.appointment_step_form_data.selected_service;
vm.bookingpress_disable_date(selected_service_id,vm.appointment_step_form_data.selected_date);
}
}
if( window.innerWidth <= 576 ){
let container = vm.$el;
let pos = 0;
if( null != container ){
pos = container.getBoundingClientRect().top + window.scrollY;
}
const myVar = Error().stack;
let allow_scroll = true;
if( /mounted/.test( myVar ) ){
allow_scroll = false;
}
if( allow_scroll ){
setTimeout(function(){
window.scrollTo({
top: pos,
behavior: "smooth",
});
}, 500);
}
}
if( "summary" == current_tab && "summary" == vm.bookingpress_current_tab ) {
const vm = this;
var total_payment_div_count = document.querySelectorAll(".bpa-front-module--pm-body__item").length;
if(total_payment_div_count == 1){
var total_payment_div = document.querySelector(".bpa-front-module--pm-body__item");
if( null != total_payment_div && "undefined" != typeof total_payment_div) {
vm.prevent_verification_on_load = true;
total_payment_div.click();
vm.prevent_verification_on_load = false;
}
}
vm.bookingpress_activate_payment_gateway_total_counter = vm.bookingpress_activate_payment_gateway_counter;
if( vm.paypal_payment == "paypal" ){
let total_counter_payment_gateway = vm.bookingpress_activate_payment_gateway_total_counter + 1;
vm.bookingpress_activate_payment_gateway_total_counter = total_counter_payment_gateway;
}
if( total_payment_div_count == 0 && vm.is_only_onsite_enabled == "1" ){
vm.appointment_step_form_data.selected_payment_method = "on-site";
vm.skip_checking_final_step_validation = true;
vm.select_payment_method("on-site");
}
}
if(current_tab == "datetime" || next_tab == "datetime"){
setTimeout(() => {
const custom_duration_select = document.querySelector(".bpa-front-module--date-and-time .bpa-custom-duration-select .el-input__inner");
if(custom_duration_select !== null){
custom_duration_select.focus();
}
vm.focusFirstDate();
window.is_focused = false;
/* const recurring_date_picker = document.querySelector(".bpa-recurring-appointment-head-row .bpa-front-form-control--date-picker .el-input__inner");
if(recurring_date_picker !== null){
recurring_date_picker.focus();
} */
const calendar_btn_mobile = document.querySelector(".bpa-front--dt__ts-sm-back-btn .el-button");
if(calendar_btn_mobile !== null){
calendar_btn_mobile.focus();
}
}, 1000);
}
if(current_tab == "basic_details" || next_tab == "basic_details"){
setTimeout(() => {
document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active")
?.querySelector("input:not([readonly]):not([disabled]):not([type='hidden']), select:not([disabled]), textarea:not([readonly]):not([disabled])")
?.focus();
}, 10);
}
if(next_tab == "summary"){
setTimeout(() => {
let find_first_pg = document.querySelector(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item");
if(find_first_pg !== null){
find_first_pg.focus();
}else {
find_first_pg = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa-front-dc--footer .summery-book-appointment-btn");
if(find_first_pg !== null){
find_first_pg.focus();
}
}
}, 10);
}
if(current_tab == "service" || next_tab == "service"){
setTimeout(() => {
let find_first_service = document.querySelector(".bpa-front-module--service-item .bpa-front-si-card");
if(find_first_service !== null){
find_first_service.focus();
}
}, 10);
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
;
},
bookingpress_select_multi_day_range(day = ""){
const vm = this;
if(vm.appointment_step_form_data.selected_date){
day = vm.appointment_step_form_data.selected_date;
vm.bookingpress_selected_date_range = [];
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_end_date = vm.appointment_step_form_data.selected_date;
var selected_date = new Date(day);
var selected_service_duration = vm.appointment_step_form_data.selected_service_duration;
var bookingpress_selected_date_range = [];
var new_date = new Date(day + " 00:00:00");
bookingpress_selected_date_range.push(day);
for(var i = 1; i < selected_service_duration; i++) {
new_date.setDate(new_date.getDate() + 1);
var month = "" + (new_date.getMonth() + 1),
day = "" + new_date.getDate(),
year = new_date.getFullYear();
if (month.length < 2){
month = "0" + month;
}
if (day.length < 2){
day = "0" + day;
}
var add_date = [year, month, day].join("-");
bookingpress_selected_date_range.push(add_date);
if(i == selected_service_duration-1) {
vm.appointment_step_form_data.selected_end_date = add_date;
}
}
if(bookingpress_selected_date_range.length > 0){
vm.bookingpress_selected_date_range = bookingpress_selected_date_range;
}
}
}
},
async bookingpress_select_multi_staffmember(selected_staffmember_id, is_any_staff_option_selected = 0){
var vm = this;
},
bpa_is_select_multistaff_member(staff_member_id){
var vm = this;
return false;
},
bpa_search_service( value ){
const vm = this;
value = value.toLowerCase();
vm.bpasortedServices.forEach( ( element,index ) =>{
vm.bpasortedServices[index].show_with_search = false;
if( element.bookingpress_service_name.toLowerCase().includes( value ) ){
vm.bpasortedServices[index].show_with_search = true;
}
});
},
bpa_search_staff( value ){
const vm = this;
value = value.toLowerCase();
vm.bookingpress_staffmembers_details.forEach( ( element,index ) => {
vm.bookingpress_staffmembers_details[index].show_with_staff_search = false;
if( (element.bookingpress_staffmember_firstname.toLowerCase().includes( value )) || element.bookingpress_staffmember_lastname.toLowerCase().includes( value ) ){
vm.bookingpress_staffmembers_details[index].show_with_staff_search = true;
}
});
},
bookingpress_validatePhoneField(event) {
this.$nextTick(() => {
if (!this.$refs.appointment_step_form_data) return;
const phoneValue = this.appointment_step_form_data.form_fields.customer_phone;
if (/^[\d\+\s\-\(\)]+$/.test(phoneValue.trim())) {
this.$refs.appointment_step_form_data.clearValidate(["customer_phone"]);
}
});
},
bookingpress_phone_country_open_repeater( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-field-main-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.add("bpa-active-col");
let parent_upper = vm.bookingpress_get_parents( parent[0], ".el-col" );
if( 0 < parent_upper.length && null != parent_upper[0] ){
//parent_upper[0].classList.add("bpa-active-col");
}
}
}
}
},
bookingpress_phone_country_close_repeater( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-active-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.remove("bpa-active-col");
}
}
}
},
bpa_check_space_validation(bpa_input_value,v_modal_data){
var vm = this;
if(bpa_input_value.trim() == ""){
vm.appointment_step_form_data["form_fields"][v_modal_data] = "";
return "";
}
return bpa_input_value;
},
bpa_check_password_validation( bpa_email_value ) {
const vm = this;
if( "undefined" == typeof vm.appointment_step_form_data.form_fields.customer_password || vm.bpa_check_user_login == 1 ){
return;
}
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: "bookingpress_password_validation_check", _wpnonce:bkp_wpnonce_pre_fetch, _email: bpa_email_value };
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof response.data.bpa_password_already_exists ){
if( response.data.bpa_password_already_exists == true ){
if(this.$refs.appointment_step_form_data){
this.$refs.appointment_step_form_data.clearValidate("customer_password");
}
vm.appointment_step_form_data.bpa_password_already_exists = true;
vm.customer_details_rule.customer_password[0].required = false;
vm.appointment_step_form_data.bpa_user_email_already_exists = true;
vm.appointment_step_form_data.form_fields["customer_password"] = "";
}
} else {
vm.appointment_step_form_data.bpa_password_already_exists = false;
vm.customer_details_rule.customer_password[0].required = true;
vm.appointment_step_form_data.bpa_user_email_already_exists = false;
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
dayClicked_v2( day ){
const vm = this;
vm.dayClicked( day );
vm.bookingpress_select_multi_day_range( day );
let timeslot_data = vm.v_calendar_timeslots_data[ day.id ];
let max_available_date = vm.booking_cal_maxdate;
;
if( "undefined" != typeof timeslot_data ){
vm.appointment_step_form_data.store_service_date = timeslot_data[0].store_service_date;
vm.appointment_step_form_data.store_selected_date = timeslot_data[0].store_service_date;
}
},
bookingpress_day_click(day){
const vm = this;
let disable_dates = vm.v_calendar_disable_dates;
let max_available_date = vm.booking_cal_maxdate;
;
let max_date_value = false;
if( max_available_date instanceof Date ){
max_date_value = ( max_available_date < ( new Date( day.id ) ) );
} else {
max_date_value = ( max_available_date < day.id );
}
if( disable_dates.includes( day.id + " 00:00:00" ) || disable_dates.includes( day.id ) || max_date_value || (day.date < vm.jsCurrentDateFormatted && false == day.isToday) ){
return false;
}
vm.appointment_step_form_data.selected_date = day.id;
vm.bookingpress_select_multi_day_range(day);
vm.dayClicked( day );
},
bookingpress_get_final_step_amount() {
const vm = this;
var payment_method = vm.appointment_step_form_data.selected_payment_method;
var total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
var tax_amount = vm.appointment_step_form_data.tax_amount_without_currency;
if( "" == tax_amount ){
tax_amount = 0;
}
let total_payable_amount_without_tax = parseFloat(total_payable_amount);
if(typeof tax_amount != "undefined"){
total_payable_amount = parseFloat(total_payable_amount) + parseFloat(tax_amount);
}
let is_cart_addon = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined" && ("undefined" == typeof vm.is_club_service || vm.is_club_service != true ) )
{
/* total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total; */
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
total_payable_amount_without_tax = parseFloat(total_payable_amount);
if( typeof tax_amount != "undefined" ){
total_payable_amount_without_tax = parseFloat( total_payable_amount ) - parseFloat( tax_amount );
if( 1 == vm.is_coupon_activated ){
if(vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.tax_amount_before_coupon_without_currency != "undefined"){
total_payable_amount_without_tax = parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.tax_amount_before_coupon_without_currency );
}
}
}
/* console.trace( "INSIDE CART CONDITION ===>>> " + vm.appointment_step_form_data.bookingpress_cart_total ); */
is_cart_addon = true;
}
var coupon_code = vm.appointment_step_form_data.coupon_code;
var selected_service = vm.appointment_step_form_data.selected_service;
var selected_staff_member_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
if( 0 == total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount, true );
}
var subtotal_price = total_payable_amount;
/* apply coupon */
if( 1 == vm.is_coupon_activated ){
if(vm.appointment_step_form_data.coupon_code != ""){
if(typeof vm.appointment_step_form_data.coupon_discount_amount != "undefined" && vm.appointment_step_form_data.coupon_discount_amount != 0){
if(vm.appointment_step_form_data.tax_percentage != ""){
var tax_percentage = parseFloat(vm.appointment_step_form_data.tax_percentage);
if(typeof vm.appointment_step_form_data.tax_price_display_options != "undefined" && vm.appointment_step_form_data.tax_price_display_options == "include_taxes"){
tax_amount = (total_payable_amount_without_tax * tax_percentage) / (100+tax_percentage);
total_payable_amount_without_tax = total_payable_amount_without_tax - tax_amount;
}
}
let f_payable_amount = total_payable_amount_without_tax - vm.appointment_step_form_data.coupon_discount_amount;
if( 0 == f_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = f_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( f_payable_amount, true );
}
var tax_amount = vm.appointment_step_form_data.tax_amount_without_currency;
if( typeof tax_amount != "undefined" ){
vm.appointment_step_form_data.total_payable_amount = vm.appointment_step_form_data.total_payable_amount + tax_amount;
}else {
tax_amount = 0;
}
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.total_payable_amount, true );
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.total_payable_amount );
subtotal_price = f_payable_amount + tax_amount;
if( "undefined" != vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency && 1 == vm.bookingpress_is_deposit_payment_activate ){
if( vm.appointment_step_form_data.bookingpress_deposit_payment_method == "deposit_or_full_price" || vm.appointment_step_form_data.bookingpress_deposit_payment_method == "allow_customer_to_pay_full_amount" ){
if(is_cart_addon){
let cart_items_deposite_amount = 0;
vm.appointment_step_form_data.cart_items.forEach((current_cart_item, cart_item_index) => {
cart_items_deposite_amount = parseFloat(cart_items_deposite_amount) + parseFloat(current_cart_item.bookingpress_deposit_price);
});
if( cart_items_deposite_amount < subtotal_price ){
vm.appointment_step_form_data.calculate_deposit = true;
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
}else{
if( vm.appointment_step_form_data.deposit_payment_type == "fixed") {
if( vm.appointment_step_form_data.deposit_payment_amount < subtotal_price ){
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
vm.appointment_step_form_data.calculate_deposit = true;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
} else if( vm.appointment_step_form_data.deposit_payment_type == "percentage") {
let bookingpress_deposit_amt = total_payable_amount_without_tax * ( parseFloat(vm.appointment_step_form_data.deposit_payment_amount) / 100);
if( bookingpress_deposit_amt < subtotal_price ){
vm.appointment_step_form_data.calculate_deposit = true;
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
}
}
}
}
}
} else {
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
if( 0 == total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount, true );
}
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
subtotal_price = total_payable_amount;
}
}
/* If deposit payment module enabled then calculate deposit amount */
var deposit_method = vm.appointment_step_form_data.bookingpress_deposit_payment_method;
var deposit_type = vm.appointment_step_form_data.deposit_payment_type;
var deposit_value = vm.appointment_step_form_data.deposit_payment_amount;
var bookingpress_deposit_amt = 0;
var bookingpress_deposit_due_amt = 0;
if(payment_method != "" && 1 == vm.bookingpress_is_deposit_payment_activate && vm.appointment_step_form_data.bookingpress_remove_deposit != 1 && ( "undefined" == typeof vm.appointment_step_form_data.is_clubbed_service || false == vm.appointment_step_form_data.is_clubbed_service ) ){
var bookingpress_check_deposit_avaliable = false;
if( 1 == is_cart_addon ){
if (typeof vm.appointment_step_form_data.cart_items != "undefined"){
var cart_items_temp_data = vm.appointment_step_form_data.cart_items;
if(cart_items_temp_data != "" && cart_items_temp_data.length != 0){
cart_items_temp_data.forEach(function(currentValue, index, arr){
if (typeof cart_items_temp_data[index].bookingpress_deposit_due_amount != "undefined"){
if(parseFloat(cart_items_temp_data[index].bookingpress_deposit_due_amount) > 0){
bookingpress_check_deposit_avaliable = true;
}
}
});
}
}
}else{
if(typeof vm.appointment_step_form_data.deposit_payment_type != undefined && typeof vm.appointment_step_form_data.deposit_payment_amount_percentage != undefined){
if(vm.appointment_step_form_data.deposit_payment_type == "percentage" && vm.appointment_step_form_data.deposit_payment_amount_percentage == 100){
bookingpress_check_deposit_avaliable = false;
}else{
bookingpress_check_deposit_avaliable = true;
}
}
}
if(bookingpress_check_deposit_avaliable && payment_method != "on-site" && (typeof vm.appointment_step_form_data.bookingpress_package_applied_data == "undefined" || (typeof vm.appointment_step_form_data.bookingpress_package_applied_data != "undefined") && vm.appointment_step_form_data.bookingpress_package_applied_data == "") && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
if(deposit_method == "deposit_or_full_price"){
//if( true == is_cart_addon ){
//subtotal_price = total_payable_amount_without_tax;
/* vm.bookingpress_price_with_currency_symbol( total_payable_amount_without_tax, true ); */
//}
if(deposit_type == "percentage"){
bookingpress_deposit_amt = total_payable_amount_without_tax * ( parseFloat(deposit_value) / 100);
bookingpress_deposit_amt = bookingpress_deposit_amt;
/* vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt, true ); */
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
} else if(deposit_type == "fixed") {
bookingpress_deposit_amt = deposit_value;
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
}
} else if(deposit_method == "allow_customer_to_pay_full_amount") {
bookingpress_deposit_amt = subtotal_price;
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
}
let total_payable_amount_temp = bookingpress_deposit_amt;
if(typeof vm.appointment_step_form_data.tip_amount != undefined && vm.appointment_step_form_data.tip_amount> 0 && vm.appointment_step_form_data.bookingpress_deposit_total != undefined && vm.appointment_step_form_data.bookingpress_deposit_payment_method == "deposit_or_full_price"){
total_payable_amount_temp = parseFloat(vm.appointment_step_form_data.bookingpress_deposit_total) + parseFloat(vm.appointment_step_form_data.tip_amount);
}
vm.appointment_step_form_data.bookingpress_deposit_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt );
vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt, true );
vm.appointment_step_form_data.bookingpress_deposit_due_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt );
vm.appointment_step_form_data.bookingpress_deposit_due_amt_without_currency = bookingpress_deposit_due_amt;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount_temp );
if( 0 == total_payable_amount_temp ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount_temp;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount_temp, true );
}
/* 26 April 2023 changes */
if( 1 == is_cart_addon ){
if( "allow_customer_to_pay_full_amount" == deposit_method ){
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bookingpress_deposit_due_amt + tax_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt + tax_amount );
} else {
if( 1 == vm.is_tax_activated ){
/* let tax_method = vm.appointment_step_form_data.tax_price_display_options; */
/* if( "exclude_taxes" == tax_method ){ */
let bpa_deposit_due_amount_total = ( parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.bookingpress_deposit_total ) );
if( 1 == vm.is_coupon_activated){
let coupon_discount = vm.appointment_step_form_data.coupon_discount_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total - coupon_discount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.bookingpress_deposit_due_amount_total );
} else {
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bpa_deposit_due_amount_total );
}
} else {
let bpa_deposit_due_amount_total = ( parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.bookingpress_deposit_total ) );
if( 1 == vm.is_coupon_activated){
let coupon_discount = vm.appointment_step_form_data.coupon_discount_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total - coupon_discount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.bookingpress_deposit_due_amount_total );
}else{
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bpa_deposit_due_amount_total );
}
}
}
}
/* 26 April 2023 changes */
}
else
{
vm.appointment_step_form_data.bookingpress_deposit_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt );
vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency = bookingpress_deposit_amt;
vm.appointment_step_form_data.bookingpress_deposit_due_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt );
vm.appointment_step_form_data.bookingpress_deposit_due_amt_without_currency = bookingpress_deposit_due_amt;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( subtotal_price );
if( 0 == subtotal_price ){
vm.appointment_step_form_data.total_payable_amount = subtotal_price;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( subtotal_price, true );
}
if(payment_method != "on-site" && (typeof vm.appointment_step_form_data.bookingpress_package_applied_data == "undefined" || (typeof vm.appointment_step_form_data.bookingpress_package_applied_data != "undefined") && vm.appointment_step_form_data.bookingpress_package_applied_data == "")){
var bookingpress_is_recurring_appointment_active = false;
if(typeof vm.appointment_step_form_data.recurring_appointments != "undefined"){
if(vm.appointment_step_form_data.is_recurring_appointments == true || vm.appointment_step_form_data.is_recurring_appointments == "true"){
bookingpress_is_recurring_appointment_active = true;
}
}
if( 1 == is_cart_addon && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
vm.appointment_step_form_data.bookingpress_deposit_total = total_payable_amount;
vm.appointment_step_form_data.bookingpress_deposit_total_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
}
if(bookingpress_is_recurring_appointment_active && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
vm.appointment_step_form_data.bookingpress_deposit_total = subtotal_price;
vm.appointment_step_form_data.bookingpress_deposit_total_with_currency = vm.bookingpress_price_with_currency_symbol( subtotal_price );
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = 0;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol(0);
}
}
}
}
if(vm.appointment_step_form_data.selected_payment_method != " - " && vm.appointment_step_form_data.selected_payment_method != ""){
vm.appointment_step_form_data.selected_payment_method_org = vm.appointment_step_form_data.selected_payment_method;
}
var paypal_payment_method_type = "lagacy";
if(vm.appointment_step_form_data.total_payable_amount == 0 && typeof vm.appointment_step_form_data.selected_payment_method_org != "undefined" && vm.appointment_step_form_data.selected_payment_method_org == "paypal" && paypal_payment_method_type == "popup" ) {
var final_document_divnew = document.getElementById("paypal-button-container");
vm.show_paypal_popup_button = "false";
if(final_document_divnew){
document.getElementById("paypal-button-container").style.display = "none";
}
}
else if(vm.appointment_step_form_data.total_payable_amount != 0 && typeof vm.appointment_step_form_data.selected_payment_method_org != "undefined" && vm.appointment_step_form_data.selected_payment_method_org == "paypal" && paypal_payment_method_type == "popup" ) {
vm.show_paypal_popup_button = "true";
document.getElementById("paypal-button-container").style.display = "block";
vm.appointment_step_form_data.selected_payment_method = vm.appointment_step_form_data.selected_payment_method_org;
}
if( "undefined" == typeof vm.prevent_verification_on_load || false == vm.prevent_verification_on_load ){
this.bookingpress_verify_total_payment_amount();
}
},
bookingpress_verify_total_payment_amount_v2(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let bpk_payable_data = {
action: "bookingpress_pre_booking_verify_details",
booking_token: vm.appointment_step_form_data.bookingpress_uniq_id,
booking_data: JSON.stringify( vm.appointment_step_form_data ),
_wpnonce: bkp_wpnonce_pre_fetch
};
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bpk_payable_data ) )
.then( function (response) {
if( "undefined" != typeof response.data.verification_token ){
vm.appointment_step_form_data.authorized_token = response.data.verification_token;
vm.appointment_step_form_data.authorized_time = response.data.verification_time;
}
}.bind(this) )
.catch( function (error) {
});
},
bookingpress_verify_total_payment_amount(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
vm.bkp_processing_token = true;
let bpk_payable_data = {
action: "bookingpress_pre_booking_verify_details",
booking_token: vm.appointment_step_form_data.bookingpress_uniq_id,
booking_data: JSON.stringify( vm.appointment_step_form_data ),
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bpk_payable_data ) )
.then( function (response) {
if( "undefined" != typeof response.data.verification_token ){
vm.appointment_step_form_data.authorized_token = response.data.verification_token;
vm.appointment_step_form_data.authorized_time = response.data.verification_time;
vm.bkp_processing_token = false;
}
if( vm.bkp_process_booking == true ){
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
});
},
bookingpress_recalculate_payable_amount(){
return false;
const vm = this;
var bookingpress_recalculate_data = {};
bookingpress_recalculate_data.action = "bookingpress_recalculate_appointment_data";
bookingpress_recalculate_data.appointment_details = JSON.stringify( vm.appointment_step_form_data );
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_recalculate_data._wpnonce = bkp_wpnonce_pre_fetch;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
bookingpress_recalculate_data.client_timezone_offset = vm.bookingpress_timezone_offset;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
bookingpress_recalculate_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_recalculate_data ) )
.then( function (response) {
vm.appointment_step_form_data = response.data.appointment_data
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error)
});
},
bookingpress_apply_coupon_code(final_call = false){
const vm = this;
vm.coupon_apply_loader = "1";
var bookingpress_apply_coupon_data = {};
bookingpress_apply_coupon_data.action = "bookingpress_apply_coupon_code";
bookingpress_apply_coupon_data.appointment_details = JSON.stringify( vm.appointment_step_form_data );
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_apply_coupon_data._wpnonce = bkp_wpnonce_pre_fetch;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_apply_coupon_data ) )
.then( function (response) {
vm.coupon_apply_loader = "0";
vm.coupon_applied_status = response.data.variant;
if(response.data.variant == "error"){
vm.coupon_code_msg = response.data.msg;
vm.appointment_step_form_data.coupon_discount_amount = 0;
/* for the coupon code error display */
if( document.querySelector(".bpa-bs__coupon-validation.--is-error") != null ){
document.querySelector(".bpa-bs__coupon-validation.--is-error").style.display = "flex";
}
}else{
vm.coupon_code_msg = response.data.msg;
vm.coupon_discounted_amount = "-" + response.data.discounted_amount;
vm.bpa_coupon_apply_disabled = 1;
vm.appointment_step_form_data.applied_coupon_res = { "coupon_data": response.data.coupon_data };
}
vm.appointment_step_form_data.bookingpress_temp_subtotal = 0;
if(response.data.coupon_discount_amount > 0 )
{
vm.appointment_step_form_data.bookingpress_temp_subtotal = response.data.bookingpress_temp_subtotal;
vm.appointment_step_form_data.bookingpress_temp_subtotal_with_currency = response.data.bookingpress_temp_subtotal_with_currency;
vm.appointment_step_form_data.coupon_discount_amount = response.data.coupon_discount_amount;
vm.appointment_step_form_data.coupon_discount_amount_with_currecny = response.data.coupon_discount_amount_with_currecny;
if( typeof response.data.tax_amount != "undefined" ){
vm.appointment_step_form_data.tax_amount_before_coupon = vm.appointment_step_form_data.tax_amount;
vm.appointment_step_form_data.tax_amount_before_coupon_without_currency = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount = response.data.tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.total_payable_amount_with_currency = response.data.total_payable_amount_with_currency;
vm.appointment_step_form_data.calculated_tax_amount_org = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_without_currency_org = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = response.data.tax_amount;
}
if( 0 == response.data.total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = response.data.total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( response.data.total_payable_amount, true );
}
}
vm.bookingpress_get_final_step_amount();
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},
bookingpress_remove_coupon_code(final_call = false){
const vm = this;
let bookingpress_remove_coupon_data = {
action: "bookingpress_remove_coupon_code",
coupon_code: vm.appointment_step_form_data.coupon_code,
};
let bkp_wpnonce_pre = "4ac51a523d";
let bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_remove_coupon_data._wpnonce = bkp_wpnonce_pre_fetch;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_remove_coupon_data ) )
.then( function (response) {
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
vm.appointment_step_form_data.coupon_code = "";
vm.appointment_step_form_data.applied_coupon_res = "";
vm.coupon_code_msg = "";
/* vm.bookingpress_recalculate_payable_amount() */
vm.bpa_coupon_apply_disabled = 0;
vm.coupon_applied_status = "error";
vm.coupon_discounted_amount = "";
vm.appointment_step_form_data.coupon_discount_amount = 0;
vm.appointment_step_form_data.bookingpress_temp_subtotal = 0;
vm.appointment_step_form_data.bookingpress_temp_subtotal_with_currency = "";
if(typeof vm.appointment_step_form_data.tax_amount_before_coupon != "undefined") {
vm.appointment_step_form_data.tax_amount = vm.appointment_step_form_data.tax_amount_before_coupon;
vm.appointment_step_form_data.tax_amount_without_currency = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.calculated_tax_amount_org = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount_before_coupon;
}
vm.bookingpress_get_final_step_amount();
},
generateSpamCaptchav2(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: "bookingpress_generate_spam_captcha", _wpnonce:bkp_wpnonce_pre_fetch };
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.variant != "error" && (response.data.captcha_val != "" && response.data.captcha_val != undefined)){
}else{
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch!="undefined" && bkp_wpnonce_pre_fetch!=null && response.data.updated_nonce!=""){
document.getElementById("_wpnonce").value = response.data.updated_nonce;
} else {
vm.$notify({
title: response.data.title,
message: response.data.msg,
type: response.data.variant,
customClass: "error_notification"
});
}
if( "undefined" != typeof response.data.updated_ics_nonce && "" != response.data.updated_ics_nonce && null != document.getElementById( "bpa_ics_nonce" ) ){
document.getElementById( "bpa_ics_nonce" ).value = response.data.updated_ics_nonce;
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
async bookingpress_render_thankyou_content(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
await vm.generateSpamCaptchav2();
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_render_thankyou_content", bookingpress_uniq_id: vm.appointment_step_form_data.bookingpress_uniq_id, _wpnonce:bkp_wpnonce_pre_fetch };
if( "undefined" != typeof vm.load_synchronized_thankyou_page && true == vm.load_synchronized_thankyou_page ){
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "success"){
var bookingpress_appointment_id = response.data.appointment_id;
document.getElementById("bpa-thankyou-screen-div").innerHTML = response.data.thankyou_content;
document.getElementById("bpa-failed-screen-div").innerHTML = response.data.failed_content;
wp.hooks.doAction("bpa_calendar_js_init", bookingpress_appointment_id);
if( null != document.getElementById("bookingpress_google_calendar") ){
document.getElementById("bookingpress_google_calendar").setAttribute( "href", response.data.bpa_google_cal_link );
}
if( null != document.getElementById("bookingpress_yahoo_calendar") ) {
document.getElementById("bookingpress_yahoo_calendar").setAttribute( "href", response.data.bpa_yahoo_cal_link );
}
setTimeout(function(){
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
const link = document.querySelector(".bpa-front-module--atc-wrapper .bpa-front-module--atc__item a");
const button = document.querySelector(".bpa-front-module--atc-wrapper .bpa-front-module--atc__item button");
// Focus on whichever element exists (prioritizing the link if both exist)
if (link) {
link.focus();
} else if (button) {
button.focus();
}
},1000);
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
});
} else {
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "success"){
var bookingpress_appointment_id = response.data.appointment_id;
document.getElementById("bpa-thankyou-screen-div").innerHTML = response.data.thankyou_content;
document.getElementById("bpa-failed-screen-div").innerHTML = response.data.failed_content;
wp.hooks.doAction("bpa_calendar_js_init", bookingpress_appointment_id);
if( null != document.getElementById("bookingpress_google_calendar") ){
document.getElementById("bookingpress_google_calendar").setAttribute( "href", response.data.bpa_google_cal_link );
}
if( null != document.getElementById("bookingpress_yahoo_calendar") ) {
document.getElementById("bookingpress_yahoo_calendar").setAttribute( "href", response.data.bpa_yahoo_cal_link );
}
setTimeout(function(){
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
},1000);
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
});
}
},
checkBeforeBookProAppointment(){
const vm = this;
setTimeout(function(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_pro_before_book_appointment", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm.appointment_step_form_data );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "error"){
vm.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm.service_timing = [];
}
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
}else{
vm.bookingpress_remove_error_msg();
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},1500);
},
bookingpress_book_appointment(){
const vm2 = this;
vm2.isLoadBookingLoader = "1";
vm2.isBookingDisabled = true;
/* for the coupon code error hide start */
if( 1 == vm2.is_coupon_activated ){
if( document.querySelector(".bpa-bs__coupon-validation.--is-error") != null ){
document.querySelector(".bpa-bs__coupon-validation.--is-error").style.display = "none";
}
}
/* for the coupon code error hide end */
vm2.bookingpress_process_to_book_appointment();
},
async bookingpress_process_to_book_appointment(){
const vm2 = this;
if( "undefined" != typeof vm2.bkp_processing_token && true == vm2.bkp_processing_token ){
vm2.bkp_process_booking = true;
return false;
}
if(vm2.is_display_error != "1"){
/* vm2.appointment_step_form_data.service_timing = vm2.service_timing */
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_book_appointment_booking", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm2.appointment_step_form_data );
const cdata = await this.bookingpress_reload_captcha();
let updateData = JSON.parse( postData.appointment_data );
for (let bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
updateData[ bookingpress_grecaptcha_field_v3 ] = cdata;
}
postData.appointment_data = JSON.stringify( updateData );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm2.bkp_process_booking = false;
var bookingpress_redirection_mode = "external_redirection";
if(bookingpress_redirection_mode == "external_redirection"){
if(response.data.variant == "redirect"){
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
},50);
vm2.bookingpress_remove_error_msg();
}else if(response.data.variant == "redirect_url"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else if(response.data.variant == "error"){
vm2.bookingpress_set_error_msg(response.data.msg);
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else{
vm2.bookingpress_remove_error_msg();
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
setTimeout(function(){
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
},2000);
}else{
var bookingpress_uniq_id = vm2.appointment_step_form_data.bookingpress_uniq_id;
if( "undefined" != typeof wp.hooks ){
wp.hooks.doAction("bookingpress_after_book_appointment");
}
if(response.data.variant != "error"){
vm2.bookingpress_render_thankyou_content();
vm2.bookingpress_remove_error_msg();
if(response.data.variant == "redirect"){
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
},50);
vm2.bookingpress_remove_error_msg();
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed != "undefined" && response.data.is_transaction_completed == "1"){
vm2.bookingpress_remove_error_msg();
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "none";
document.getElementById("bpa-thankyou-screen-div").style.display = "block";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed != "undefined" && response.data.is_transaction_completed == "0"){
vm2.bookingpress_remove_error_msg();
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "block";
document.getElementById("bpa-thankyou-screen-div").style.display = "none";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed == "undefined"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else{
vm2.appointment_step_form_data.is_transaction_completed = 1;
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "none";
document.getElementById("bpa-thankyou-screen-div").style.display = "block";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
vm2.appointment_step_form_data.is_transaction_completed = "";
vm2.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
}
}
}.bind(this) )
.catch( function (error) {
let errorText = ("undefined" != typeof error.response.statusText ) ? error.response.statusText : error;
vm2.bookingpress_set_error_msg( error.response.status + " " + errorText);
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
});
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
},
inputFormat() {
let text = this.appointment_step_form_data.card_number.split(" ").join("");
/* this.cardVdid is not formated in 4 spaces */
this.cardVadid = text;
if (text.length > 0) {
/* regExp 4 in 4 number add an space between */
text = text.match(new RegExp(/.{1,4}/, "g")).join(" ")
/* accept only numbers */
.replace(new RegExp(/[^\d]/, "ig"), " ");
}
/* this.appointment_step_form_data.card_number is formated on 4 spaces */
this.appointment_step_form_data.card_number = text;
/* after formatd they callback cardType for choose a type of the card */
this.GetCardType(this.cardVadid);
},
/* loop for the next 9 years for expire data on credit card */
expirationDate() {
let yearNow = new Date().getFullYear();
for (let i = yearNow; i < yearNow + this.timeToExpire; i++) {
this.years.push({ year: i });
}
},
validCreditCard(value) {
let inputValidate = document.getElementById("cardNumber");
/* luhn algorithm */
let numCheck = 0,
bEven = false;
value = value.toString().replace(new RegExp(/\D/g, ""));
for (let n = value.length - 1; n >= 0; n--) {
let cDigit = value.charAt(n),
digit = parseInt(cDigit, 10);
if (bEven && (digit *= 2) > 9) digit -= 9;
numCheck += digit;
bEven = !bEven;
}
let len = value.length;
/* true: return valid number */
/* this.cardType return true if have an valid number on regx array */
if (numCheck % 10 === 0 && len === 16 && this.cardType) {
inputValidate.classList.remove("notValid");
inputValidate.classList.add("valid");
this.isBookingDisabled = false;
}
/* false: return not valid number */
else if (!(numCheck % 10 === 0) && len === 16) {
inputValidate.classList.remove("valid");
inputValidate.classList.add("notValid");
this.isBookingDisabled = true;
/* if not have number on input */
} else {
inputValidate.classList.remove("valid");
inputValidate.classList.remove("notValid");
this.isBookingDisabled = false;
}
},
/* get the name of the card name */
GetCardType(number) {
this.regx.forEach((item) => {
if (number.match(item.re) != null) {
this.cardType = item.logo;
/* cClass add a class with the name of cardName to manipulate with css */
this.cClass = item.name.toLowerCase();
} else if (!number) {
this.cardType = "";
this.cClass = "";
}
});
/* after choose a cardtype return the number for the luhn algorithm */
this.validCreditCard(number);
},
/* mouse down on btn */
mouseDw() {
this.btnClassName = "btn__active";
},
/* mouse up on btn */
mouseUp() {
this.btnClassName = "";
},
blr() {
let cr = document.getElementsByClassName("card--credit__card")[0];
if( null != cr && "undefined" != typeof cr.classList ){
cr.classList.remove("cvv-active")
}
},
async bookingpress_set_timezone(){
const vm = this;
var bookingpress_timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
let clientTimezoneOffset = new Date().getTimezoneOffset(); /** get client timezone offset in minutes from UTC 0. If client is in UTC -10:00 timezone, then this line will return 600 minutes. If timezone is in daylight saving timezone then it will return 540 minutes ( 09:00 hours ) */
let client_timezone_offset = -1 * ( clientTimezoneOffset / 60 ); /** converted minutes into hours - returns -2 */
let offset_minute = client_timezone_offset % 1; /** Retrieve remaining minutes in case if the minutes falls with decimal numbers */
let final_offset = clientTimezoneOffset; /* hours + "" + minute; /** concate the hours and minutes */
vm.bookingpress_timezone = bookingpress_timezone;
vm.bookingpress_timezone_offset = final_offset;
vm.appointment_step_form_data.selected_date = vm.get_formatted_date( new Date() );
let is_dst_time = 0;
let current_datetime = new Date();
let jan1 = new Date( current_datetime.getFullYear(), 0, 1, 0, 0, 0, 0 );
let temp = jan1.toGMTString();
let jan2 = new Date( temp.substring(0, temp.lastIndexOf(" ") - 1 ) );
let std_tz_offset = ( jan1 - jan2 ) / ( 1000 * 60 * 60 );
let june1 = new Date(current_datetime.getFullYear(), 6, 1, 0, 0, 0, 0);
temp = june1.toGMTString();
let june2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
let daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
if( std_tz_offset != daylight_time_offset ){
is_dst_time = 1;
}
vm.bookingpress_dst_timezone = is_dst_time;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var bookingpress_postdata = { action: "bookingpress_set_clients_timezone", clients_timezone: bookingpress_timezone, _wpnonce: bkp_wpnonce_pre_fetch };
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_postdata ) )
.then( function (response){
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_calculate_service_addons_price(service_id, service_name = "", service_price = "", service_price_without_currency = ""){},
bookingpress_calculate_service_addons_price_legacy(service_id, service_name = "", service_price = "", service_price_without_currency = ""){
const vm = this;
vm.appointment_step_form_data.selected_service = service_id;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if(service_name != "" && service_price != "" && service_price_without_currency != ""){
vm.appointment_step_form_data.selected_service_name = service_name;
vm.appointment_step_form_data.selected_service_price = service_price;
vm.appointment_step_form_data.service_price_without_currency = service_price_without_currency;
}
var postData = {
action: "bookingpress_calculate_service_addons_price",
selected_service_obj: vm.appointment_step_form_data,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
if(vm.appointment_step_form_data.selected_service == service_id){
vm.appointment_step_form_data.selected_service_price = response.data.selected_service_total_price;
vm.appointment_step_form_data.total_payable_amount = response.data.price_without_currency;
vm.appointment_step_form_data.total_payable_amount_with_currency = response.data.price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = response.data.price_without_currency;
if(response.data.is_tax_calculated == 1){
vm.appointment_step_form_data.tax_amount = response.data.tax_amount;
if(typeof vm.appointment_step_form_data.tax_amount_without_currency != "undefined") {
vm.appointment_step_form_data.tax_amount_without_currency = response.data.tax_amount_without_currency;
}
}
}
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_modify_front_dates_as_service(){
const vm = this;
var service_id = vm.appointment_step_form_data.selected_service;
if(vm.is_loaded_service_disabled_dates !== "undefined" && vm.is_loaded_service_disabled_dates != service_id){
vm.appointment_step_form_data.selected_date = vm.appointment_step_form_data.default_selected_date;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_change_front_calendar_dates",
service_obj: vm.appointment_step_form_data,
_wpnonce: bkp_wpnonce_pre
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
/* vm.days_off_disabled_dates = response.data.disabled_dates */
vm.appointment_step_form_data.selected_date = response.data.next_selected_date;
vm.is_loaded_service_disabled_dates = service_id;
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
}
},
bookingpress_hide_show_extra_description(bookingpress_extra_service_id){
const vm = this;
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ].service_extras;
let selected_extra = selected_service_data[ bookingpress_extra_service_id ];
if( "undefined" != typeof selected_extra ){
if( "0" == selected_extra.bookingpress_is_display_description ){
selected_extra.bookingpress_is_display_description = "1";
} else {
selected_extra.bookingpress_is_display_description = "0";
}
}
},
bookingpress_select_any_staffmember(){
const vm = this;
let step_data = vm.bookingpress_sidebar_step_data["staffmembers"];
vm.appointment_step_form_data.select_any_staffmember = "true";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
vm.appointment_step_form_data.selected_staff_member_id = 0;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = true;
if( vm.appointment_step_form_data.bpa_datetime_after_staffselection == 1 && "undefined" != typeof vm.appointment_step_form_data.bpa_after_select_datetime_available_staff ){
let time_details_arr = vm.appointment_step_form_data.bpa_after_select_datetime_available_staff;
if( 1 < time_details_arr.available_staffs.length ){
let available_staff_id = time_details_arr.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( time_details_arr ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
if( ("undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && vm.appointment_step_form_data.bpa_datetime_before_staffselection != 1) && ("undefined" != typeof time_details.happy_hour_data ) ) {
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = time_details_arr.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
} else {
if( "service" == step_data.next_tab_name && vm.bookingpress_sidebar_step_data[step_data.next_tab_name].is_display_step == 1 ){
vm.appointment_step_form_data.selected_service = "";
}
vm.appointment_step_form_data.bpa_all_available_staff_member = [];
if( vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name == "datetime" && vm.appointment_step_form_data.selected_service == "" && vm.appointment_step_form_data.select_any_staffmember && vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected == true){
vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime = 1;
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
vm.appointment_step_form_data.bpa_all_available_staff_member.push( currentValue.bookingpress_staffmember_id );
});
}
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
} else {
vm.bpasortedServices[x].is_visible = false;
}
}
}
vm.bookingpress_step_navigation(step_data.next_tab_name, step_data.next_tab_name, step_data.previous_tab_name, 0);
},
async bookingpress_select_staffmember(selected_staffmember_id, is_any_staff_option_selected = 0, event){
if(event){
event.preventDefault();
if(event.key === "Enter"){
if(event.target.classList.contains("bpa-front-staff-rat-cb__item")){
return;
}
}
}
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
var bookingpress_is_selected_staff_from_url = "0";
vm.v_calendar_disable_dates = [];
vm.v_calendar_blocked_dates = [];
vm.v_calendar_attributes_current = [];
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( selected_staffmember_id ) > -1 ){
return false;
}
if(typeof vm.appointment_step_form_data.cart_items == "undefined" && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && vm.appointment_step_form_data.bpa_datetime_before_staffselection != 1 ) ){
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
vm.appointment_step_form_data.bpa_available_staffwise_service = [];
if( vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name == "datetime" ){
vm.appointment_step_form_data.bpa_datetime_hide_capacity = true;
}
if( (vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && "datetime" == vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name && vm.appointment_step_form_data.selected_service == "") && ( "undefined" == typeof vm.is_multi_staffmember_activate && vm.is_multi_staffmember_activate != 1 ) || ( "service" == vm.bookingpress_sidebar_step_data.datetime.next_tab_name && vm.appointment_step_form_data.selected_service == "" && (vm.appointment_step_form_data.hide_staff_selection == "true" || vm.appointment_step_form_data.hide_staff_selection == true)) ){
vm.appointment_step_form_data.bpa_datetime_after_service_selection = 1;
let service_data_arr = vm.bookingpress_all_services_data;
if (vm.bookingpress_staffmembers_details.length === 1) {
selected_staffmember_id = vm.bookingpress_staffmembers_details[0].bookingpress_staffmember_id;
}
if( "any_staff" != selected_staffmember_id ){
for (let key in service_data_arr) {
let service_arr = service_data_arr[key];
if( "undefined" != typeof service_arr.assigned_staffmembers ) {
if (service_arr.assigned_staffmembers.includes(selected_staffmember_id)) {
vm.appointment_step_form_data.bpa_available_staffwise_service.push(service_arr.bookingpress_service_id);
}
}
}
}
if( "any_staff" == selected_staffmember_id && "undefined" != vm.appointment_step_form_data.happy_hours_activated && 1 == vm.appointment_step_form_data.happy_hours_activated ){
for (let key in service_data_arr) {
let service_arr = service_data_arr[key];
if ("undefined" != typeof service_arr.assigned_staffmembers) {
for (let i = 0; i < vm.appointment_step_form_data.bpa_all_available_staff_member.length; i++) {
let staffmember_id = vm.appointment_step_form_data.bpa_all_available_staff_member[i];
if (service_arr.assigned_staffmembers.includes(staffmember_id)) {
vm.appointment_step_form_data.bpa_available_staffwise_service.push(service_arr.bookingpress_service_id);
break;
}
}
}
}
}
}
let service_id = vm.appointment_step_form_data.selected_service;
let service_data = vm.bookingpress_all_services_data[ service_id ];
let use_legacy_any_staff = false;
if( selected_staffmember_id == "any_staff" && "undefined" != typeof service_data && "undefined" != typeof service_data.bookingpress_service_duration_unit && "d" == service_data.bookingpress_service_duration_unit ){
use_legacy_any_staff = true;
}
vm.appointment_step_form_data.any_staff_selected = 0;
if( true == use_legacy_any_staff ){
return await vm.bookingpress_select_staffmember_legacy( selected_staffmember_id, is_any_staff_option_selected );
} else if(selected_staffmember_id == "any_staff" ){
vm.appointment_step_form_data.any_staff_selected = 1;
if( "" != vm.appointment_step_form_data.selected_service ){
vm.isLoadServiceLoader = "0";
if( "undefined" != typeof vm.isLoadLocationLoader ){
vm.isLoadLocationLoader = "0";
}
let assigned_staffs = [];
service_data.assigned_staffmembers.forEach( function(staff_id){
assigned_staffs.push( staff_id );
});
let choose_from_url = false;
let assigned_updated_staffs = [];
if( 0 < bookingpress_is_selected_staff_from_url && 0 < assigned_staffs.length ){
let staff_id_from_url = bookingpress_is_selected_staff_from_url;
if( assigned_staffs.includes( staff_id_from_url ) ){
assigned_staffs = [staff_id_from_url];
choose_from_url = true;
}
}
if( 1 == assigned_staffs.length ){
vm.appointment_step_form_data.any_staff_selected = 0;
let selected_staffmember_id = ( true == choose_from_url ) ? assigned_staffs[0] : service_data.assigned_staffmembers[0];
/*Added for applying selected staff memebr price */
let service_staff_details = service_data.staff_member_details[ selected_staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
/*Added for applying selected staff memebr price */
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
vm.hide_capacity_text_flag = false;
} else {
vm.appointment_step_form_data.available_staffs = assigned_staffs;
vm.hide_capacity_text_flag = true;
}
} else {
if( "service" == vm.bookingpress_current_tab ){
let f = 0;
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let first_service_category = "";
let assigned_staffs = [];
for (let x in vm.bpasortedServices) {
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && false == elm.is_disabled ){
elm.assigned_staffmembers.forEach( function(staff_id){
assigned_staffs.push( staff_id );
});
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if ("" == first_service_category) {
first_service_category = elm.bookingpress_category_id;
}
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
vm.appointment_step_form_data.available_staffs = assigned_staffs;
vm.hide_capacity_text_flag = true;
let hidden_category_for_staff = [];
for (let ci in vm.service_categories) {
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
/* if (category_staff.indexOf(response.data.staffmember_id.toString()) < 0) {
hidden_category_for_staff.push(category_id);
} */
}
if ("" != first_service_category) {
for (let c in vm.bookingpress_all_categories) {
vm.bookingpress_all_categories[c].is_visible = true;
let current_category = vm.bookingpress_all_categories[c];
if (current_category.category_id == first_service_category) {
vm.bpa_select_category(current_category.category_id, current_category.category_name);
} else {
if (hidden_category_for_staff.indexOf(current_category.category_id.toString()) > -1) {
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
vm.isLoadServiceLoader = "0";
if( "undefined" != typeof vm.isLoadLocationLoader ){
vm.isLoadLocationLoader = "0";
}
}
vm.hide_capacity_text_flag = false;
}
} else {
vm.hide_capacity_text_flag = false;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.available_staffs = [];
if( vm.is_staff_first_step == 1 ){
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let visible_service_ids = [];
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( selected_staffmember_id ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
visible_service_ids.push( elm.bookingpress_service_id );
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( selected_staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
let current_category = vm.bookingpress_all_categories[c];
vm.bookingpress_all_categories[c].is_visible = true;
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
} else {
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
if( vm.is_bring_anyone_with_you_activated == 1 ){
let service_min_capacity = selected_service_data.staff_member_details[ selected_staffmember_id].bookingpress_min_service_capacity;
if( service_min_capacity != "undefined" && vm.appointment_step_form_data.bookingpress_selected_bring_members < service_min_capacity ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members );
}
}
let service_staff_details = selected_service_data.staff_member_details[ selected_staffmember_id ];
let consider_staff_price = true;
if( ( typeof vm.appointment_step_form_data.bpa_datetime_after_staffselection !== "undefined" && vm.appointment_step_form_data.bpa_datetime_after_staffselection == 1 ) && ( typeof vm.appointment_step_form_data.is_happy_hours_applied !== "undefined" && vm.appointment_step_form_data.is_happy_hours_applied == 1 ) ) {
consider_staff_price = false;
}
if ( true == consider_staff_price ) {
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
}
}
let step_data = "staffmembers";
let f = 0;
let is_club_staff = "0";
if(typeof vm.appointment_step_form_data.is_club_staff != "undefined" && vm.appointment_step_form_data.is_club_staff == "1"){
is_club_staff = "1";
}
if( "staffmembers" == vm.bookingpress_current_tab ){
if(is_club_staff == "0"){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1);
}
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id );
}
}
}
vm.bpa_select_category( "" );
},
async bookingpress_select_staffmember_legacy(selected_staffmember_id, is_any_staff_option_selected = 0){
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
var bookingpress_is_selected_staff_from_url = "0";
vm.v_calendar_disable_dates = [];
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( selected_staffmember_id ) > -1 ){
return false;
}
if(typeof vm.appointment_step_form_data.cart_items == "undefined"){
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
if(selected_staffmember_id == "any_staff" ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_get_any_staffmember_id",
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.bookingpress_repeat_custom_form_fields( vm.appointment_step_form_data.selected_service );
}
} else {
postData.selected_bring_members = 1;
}
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
if( 1 > response.data.staffmember_id ){
for( let s in vm.bookingpress_staffmembers_details ){
let staffmember_details = vm.bookingpress_staffmembers_details[s];
let staffmember_selected_services = staffmember_details.assigned_service_details.includes(vm.appointment_step_form_data.selected_service);
if( staffmember_selected_services ){
let staffmember_id = staffmember_details.bookingpress_staffmember_id;
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( staffmember_id ) < 0 ){
response.data.staffmember_id = staffmember_id;
}
}
}
}
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let set_service_visibility = false;
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
} else {
if( "staffmembers" == vm.bookingpress_current_tab && "" != vm.appointment_step_form_data.selected_staff_member_id ){
set_service_visibility = true;
}
}
if( "service" == vm.bookingpress_current_tab || true == set_service_visibility ){
let f = 0;
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( response.data.staffmember_id.toString() ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
if( "" != first_service_category ){
for( let c of vm.service_categories ){
if( c.bookingpress_category_id == first_service_category ){
vm.bpa_select_category( c.bookingpress_category_id, c.bookingpress_category_name );
break;
}
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( response.data.staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
vm.bookingpress_all_categories[c].is_visible = true;
let current_category = vm.bookingpress_all_categories[c];
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
vm.isLoadServiceLoader = "0";
/* vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1); */
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( response.data.staffmember_id );
}
}
vm.bpa_select_category( "" );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
}else{
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
if( vm.is_staff_first_step == 1 ){
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let visible_service_ids = [];
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( selected_staffmember_id ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
visible_service_ids.push( elm.bookingpress_service_id );
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( selected_staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
let current_category = vm.bookingpress_all_categories[c];
vm.bookingpress_all_categories[c].is_visible = true;
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
} else {
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ selected_staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
}
let step_data = "staffmembers";
let f = 0;
if( "staffmembers" == vm.bookingpress_current_tab ){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1);
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id );
}
}
}
vm.bpa_select_category( "" );
},
bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id ){
const vm = this;
/** Enable Bring Any one if the service has only 1 capacity but the selected staff has more that 1 capacity */
let is_bring_anone_displayed = document.querySelectorAll(".--bpa-sao-guest-module");
if( "" == selected_staffmember_id || 1 > selected_staffmember_id ){
return false;
}
let selected_service = vm.appointment_step_form_data.selected_service;
if( "" == selected_service ){
return false;
}
let staffmember_details = vm.bookingpress_staffmembers_details;
for( let s in staffmember_details ){
let current_staffmember = staffmember_details[s];
let staffmember_id = current_staffmember.bookingpress_staffmember_id;
if( staffmember_id == selected_staffmember_id ){
let assigned_service_price_list = current_staffmember.assigned_service_price_details;
let max_capacity = assigned_service_price_list[ selected_service ].assigned_service_capacity;
let min_capacity = assigned_service_price_list[ selected_service ].assigned_service_min_capacity;
if( "undefined" == typeof vm.bookingpress_bring_anyone_with_you_details[selected_service] ){
vm.bookingpress_bring_anyone_with_you_details[selected_service] = {
"bookingpress_service_id": selected_service,
"bookingpress_service_max_capacity": parseInt(max_capacity),
"bookingpress_service_min_capacity": parseInt(min_capacity),
};
} else {
vm.bookingpress_bring_anyone_with_you_details[selected_service].bookingpress_service_max_capacity = parseInt(max_capacity);
vm.bookingpress_bring_anyone_with_you_details[selected_service].bookingpress_service_min_capacity = parseInt(min_capacity);
}
vm.appointment_step_form_data.service_max_capacity = parseInt(max_capacity);
vm.appointment_step_form_data.service_min_capacity = parseInt(min_capacity);
}
}
},
bookingpress_is_in_viewport(element) {
const rect = element.getBoundingClientRect();
return (
rect.bottom > 0 &&
rect.right > 0 &&
rect.top < (window.innerHeight || document.documentElement.clientHeight) &&
rect.left < (window.innerWidth || document.documentElement.clientWidth)
);
},
bookingpress_close_extra_drawer(){
const vm = this;
if( "undefined" != typeof vm.bpa_show_extras_drawer && false == vm.bpa_show_extras_drawer ){
return;
}
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_focus = document.getElementById("bap-service-" + selected_service);
const target = document.querySelector(".bpa-front-dc--service-body");
if(selected_service_focus && this.bookingpress_is_in_viewport(target)){
selected_service_focus.focus();
}
vm.appointment_step_form_data.selected_service = "";
vm.appointment_step_form_data.selected_service_name = "";
vm.appointment_step_form_data.selected_service_price = "";
vm.appointment_step_form_data.service_price_without_currency = "";
if( "" != selected_service ){
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_extras = ( "undefined" != typeof selected_service_data.service_extras ) ? selected_service_data.service_extras : false;
if( false != service_extras ){
for( let se in service_extras ){
vm.appointment_step_form_data.bookingpress_selected_extra_details[ se ].bookingpress_is_selected = false;
vm.appointment_step_form_data.bookingpress_selected_extra_details[ se ].bookingpress_selected_qty = 1;
}
}
}
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
/** reset bring anyone details */
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = 1;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
}
},
bookingpress_get_service_capacity(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
const vm = this;
var postData = {
action: "bookingpress_get_service_max_capacity",
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
vm.appointment_step_form_data.service_max_capacity = response.data.max_capacity
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_service_advance_see_less(){
const vm = this;
vm.service_advance_see_less = "1";
vm.bookingpress_close_extra_drawer();
},
bookingpress_load_more_extras(){
const vm = this;
if(vm.is_load_more_extras == "0"){
vm.is_load_more_extras = "1";
}else{
vm.is_load_more_extras = "0";
}
},
bpa_focus_select_elm( $el ){
const vm = this;
setTimeout(function(){
let elm = $el.querySelector(".el-input.is-focus");// .el-input.is-focus");
let parentNode = vm.BPAGetParents( elm, ".bpa-bd-fields--sel-container" );
if( parentNode.length > 0 ){
let firstParent = parentNode[0];
firstParent.classList.add( "bpa-sel--focus" );
}
},100);
},
bpa_remove_focus_select_elm($el){
let elm = document.querySelector( ".bpa-sel--focus" );
},
bookingpress_selectpicker_set_position( flag ){
const vm = this;
if( true == flag ){
let is_admin_bar_visible = ( document.getElementById("wpadminbar") != null && document.getElementById("wpadminbar").getBoundingClientRect().width > 0 && document.getElementById("wpadminbar").getBoundingClientRect().height > 0 ) ? true : false;
if( document.querySelector(".bpa-focused-select") != null && is_admin_bar_visible ) {
setTimeout(function(){
let top_pos = document.querySelector(".bpa-focused-select").style.top;
top_pos = parseInt( top_pos.replace("px","") );
document.querySelector(".bpa-focused-select").style.top = ( top_pos + 32 ) + "px";
},10);
}
if( document.querySelector(".bpa-focused-select") != null ) {
setTimeout(function(){
const allselectcontainer = document.querySelectorAll(".bpa-bd-fields--sel-container");
if(typeof allselectcontainer != "undefined"){
var has_added = false;
allselectcontainer.forEach((selcontItem) => {
var questyle = selcontItem.querySelector(".bpa-focused-select");
if(typeof questyle != "undefined"){
const display = window.getComputedStyle(questyle).display;
if(display != "none" && !has_added){
selcontItem.classList.add( "bpa-sel--focus" );
has_added = true;
}
}
});
}
},100);
}
}
if( false == flag ){
if( document.querySelector(".bpa-bd-fields--sel-container") != null ) {
let elm = document.querySelector(".bpa-bd-fields--sel-container")
const range_inputs = document.querySelectorAll(".bpa-bd-fields--sel-container");
for (const range_input of range_inputs) {
range_input.classList.remove( "bpa-sel--focus" );
}
}
}
},
bookingpress_set_datepicker_position( event ){
let popperElm = document.querySelector(".bpa-custom-datepicker");
if( popperElm != null ){
let is_admin_bar_visible = ( document.getElementById("wpadminbar") != null && document.getElementById("wpadminbar").getBoundingClientRect().width > 0 && document.getElementById("wpadminbar").getBoundingClientRect().height > 0 ) ? true : false;
if( is_admin_bar_visible ){
setTimeout(function(){
let top_pos = popperElm.style.top;
top_pos = parseInt( top_pos.replace("px","") );
popperElm.style.top = ( top_pos + 32 ) + "px";
},10);
}
}
},
bookingpress_get_service_categories_from_staffmembers(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_get_service_cat_details",
staffmember_id: vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
vm.service_categories = response.data.service_categories_data;
var bookingpress_first_cat_id = response.data.first_cat_id;
vm.services_data = [];
setTimeout(function(){
vm.selectStepCategory(bookingpress_first_cat_id);
}, 500);
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_update_staffmember_data( number_of_guests, selected_service_id = "" ){
const vm = this;
vm.bookingpress_disabled_staffmember = [];
let selected_service = vm.appointment_step_form_data.selected_service;
if( selected_service == "" || ( (selected_service_id != "") && (selected_service != selected_service_id) ) ){
selected_service = selected_service_id;
}
let guests_count = number_of_guests - 1;
let staffmember_details = vm.bookingpress_staffmembers_details;
for( let s in staffmember_details ){
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = true;
let current_staffmember = staffmember_details[s];
let staffmember_id = current_staffmember.bookingpress_staffmember_id;
let assigned_service_price_list = current_staffmember.assigned_service_price_details;
if( "undefined" != typeof assigned_service_price_list[ selected_service ] ){
let max_capacity = assigned_service_price_list[ selected_service ].assigned_service_capacity;
if( max_capacity < (guests_count + 1) ){
if( "undefined" == typeof vm.bookingpress_disabled_staffmember ){
vm.bookingpress_disabled_staffmember = [];
}
vm.bookingpress_disabled_staffmember.push( staffmember_id );
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = false;
if( vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == staffmember_id ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
}
}
if( vm.is_bring_anyone_with_you_activated == "1" ){
let min_capacity = assigned_service_price_list[ selected_service ].assigned_service_min_capacity;
if( min_capacity > (guests_count + 1) ){
if( "undefined" == typeof vm.bookingpress_disabled_staffmember ){
vm.bookingpress_disabled_staffmember = [];
}
vm.bookingpress_disabled_staffmember.push( staffmember_id );
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = false;
if( vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == staffmember_id ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
}
}
}
}
}
},
bookingpress_close_extra_drawer_on_mouseup(){
const vm = this;
window.addEventListener( "mouseup", function(e){
if( null != document.querySelector(".bpa-front-dc--service-body") ){
let div = document.querySelector(".bpa-front-dc--service-body");
let scrollbarWidth = div.offsetWidth - div.clientWidth;
let scrollbarHeight = div.offsetHeight - div.clientHeight;
let isVerticalScrollbarClick = (e.offsetX >= div.clientWidth && e.offsetX <= div.offsetWidth );
let isHorizontalScrollbarClick = e.offsetY >= div.clientHeight;
if (scrollbarWidth > 0 && isVerticalScrollbarClick) {
return;
}
}
let elem = e.target;
let htmlWidth = document.querySelector("html").offsetWidth;
if( htmlWidth < e.clientX ){
return;
}
let parentNode = vm.BPAGetParents( elem, ".bpa-fm--service__advance-options" );
let parentNodeBawy = vm.BPAGetParents( elem, ".bpa-fm--service__advance-options-popper" );
let is_mob = false;
let bpa_parent_container = document.querySelector( ".bpa-frontend-main-container" );
let is_visible = true;
if( null != bpa_parent_container && 1 > bpa_parent_container.offsetWidth ){
is_visible = false;
}
if( parentNode.length < 1 && parentNodeBawy.length < 1 && "true" == vm.bookingpress_open_extras_drawer && "service" == vm.bookingpress_current_tab && "true" == vm.bookingpress_open_extras_drawer && true == is_visible ){
let allow_close_drawer = wp.hooks.applyFilters( "bpa_allow_close_draer", true, is_visible, elem, parentNode, parentNodeBawy );
if( true == allow_close_drawer ){
let mob_extra = document.querySelector( ".bpa-fm--service__advance-options.--bpa-is-mob" );
if( mob_extra == null ){
vm.bookingpress_close_extra_drawer();
} else {
let mob_pos = mob_extra.getBoundingClientRect();
if( mob_pos.width == 0 && mob_pos.height == 0 ){
vm.bookingpress_close_extra_drawer();
}
}
}
}
});
},
BPAGetParents( elem, selector ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
if (selector) {
if (elem.matches(selector)) {
parents.push(elem);
}
continue;
}
parents.push(elem);
}
return parents;
},
bookingpress_get_formatted_datetime(event,field_meta_key,is_time_enabled) {
if(event != null){
if(is_time_enabled == true) {
this.appointment_step_form_data["form_fields"][field_meta_key] = this.get_formatted_datetime(event);
} else {
this.appointment_step_form_data["form_fields"][field_meta_key] = this.get_formatted_date(event);
}
}
},
openExtraServicePopover() {
// Access the popover methods directly
const vm = this;
this.$nextTick( () =>{
vm.$refs.extra_service_desc_popover.doToggle();
});
},
openRecurringSessionPopover() {
const vm = this;
this.$nextTick( () =>{
// Access the popover methods directly
vm.$refs.recurring_session_desc_popover.doToggle();
});
},
BPACustomerFileUpload(response, file, fileList){
const vm = this;
let ref = response.reference;
if( response.error == 1 ){
vm.$refs[ ref ][0].$options.parent.validateMessage = response.msg;
vm.$refs[ ref ][0].$options.parent.validateState = "error";
vm.$refs[ ref ][0].clearFiles();
} else {
vm.$refs[ref][0].$options.parent.validateMessage = "";
vm.$refs[ref][0].$options.parent.validateState = "";
const uploadUrl = response.upload_url;
const fileRef = response.file_ref;
if (Array.isArray(vm.appointment_step_form_data[fileRef])) {
vm.appointment_step_form_data[fileRef].push(uploadUrl);
} else if (vm.appointment_step_form_data[fileRef]) {
vm.appointment_step_form_data[fileRef] = [
vm.appointment_step_form_data[fileRef],
uploadUrl,
];
} else {
vm.appointment_step_form_data[fileRef] = [uploadUrl];
}
vm.appointment_step_form_data.form_fields[fileRef] = vm.appointment_step_form_data[fileRef];
}
},
BPACustomerFileUploadError(err, file, fileList){
/** Need to handle error but currently no error is reaching to this function */
if( file.status == "fail" ){
console.log( err );
}
},
BPACustomerhandleFileExceed(files, fileList ) {
const vm = this;
vm.bookingpress_set_error_msg( vm.appointment_step_form_data.bpa_fileupload_max_limit_reach_msg );
},
BPACustomerFileUploadRemove( file, fileList ){
const vm = this;
let response = file.response;
vm.appointment_step_form_data[ response.file_ref ] = "";
vm.appointment_step_form_data.form_fields[ response.file_ref ] = "";
let postData = {
action:"bpa_remove_form_file",
_wpnonce: "4ac51a523d",
uploaded_file_name: response.upload_file_name
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function( response ){
}).catch( function( error ){
});
},
BPAConvertBytesToMB( bytes){
return (bytes / (1024 * 1024)).toFixed(0);
},
bookingpress_reset_selected_timeslot_data(){
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && "1" == vm.appointment_step_form_data.bpa_datetime_after_service_selection ){
return;
}
vm.appointment_step_form_data.selected_start_time = "";
},
bookingpress_reset_custom_duration_data() {
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
;
},
bookingpress_step_navigator( current_tab, next_tab, previous_tab ){
let vm = this;
let is_strict_validate = false;
let current_selected_tab = vm.bookingpress_current_tab;
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
let sidebar_keys = Object.keys( sidebar_step_data );
let current_tab_pos = sidebar_keys.indexOf( current_selected_tab ); /** Current Tab Position */
let selected_tab_pos = sidebar_keys.indexOf( current_tab ); /** Clicked Tab Position */
if( selected_tab_pos < current_tab_pos ){
vm.bookingpress_step_navigation( current_tab, next_tab, previous_tab, 0 );
} else {
vm.bookingpress_step_navigation( current_tab, next_tab, previous_tab );
}
},
bookingpress_change_service_extras_event( is_checked ){
const vm = this;
},
bookingpress_change_service_extras_qty( is_checked ){
const vm = this;
vm.$forceUpdate();
},
bookingpress_set_extra_service_error_msg(error_msg){
const vm = this;
vm.is_display_extra_service_error = 1;
vm.extra_service_error_msg = error_msg;
setTimeout(function(){
vm.bookingpress_remove_extra_service_error_msg();
},6000);
},
bookingpress_remove_extra_service_error_msg(){
const vm = this;
vm.is_display_extra_service_error = "0";
vm.extra_service_error_msg = "";
},
get_formatted_date(iso_date){
if( true == /(\d{2})\T/.test( iso_date ) ){
let date_time_arr = iso_date.split("T");
return date_time_arr[0];
}
var __date = new Date(iso_date);
var __year = __date.getFullYear();
var __month = __date.getMonth()+1;
var __day = __date.getDate();
if (__day < 10) {
__day = "0" + __day;
}
if (__month < 10) {
__month = "0" + __month;
}
var formatted_date = __year+"-"+__month+"-"+__day;
return formatted_date;
},
get_formatted_datetime(iso_date) {
var __date = new Date(iso_date);
var hour = __date.getHours();
var minute = __date.getMinutes();
var second = __date.getSeconds();
if (minute < 10) {
minute = "0" + minute;
}
if (second < 10) {
second = "0" + second;
}
var formatted_time = hour + ":" + minute + ":" + second;
var __year = __date.getFullYear();
var __month = __date.getMonth()+1;
var __day = __date.getDate();
if (__day < 10) {
__day = "0" + __day;
}
if (__month < 10) {
__month = "0" + __month;
}
var formatted_date = __year+"-"+__month+"-"+__day;
return formatted_date+" "+formatted_time;
},
bookingpress_set_error_msg(error_msg){
const vm = this;
let container = vm.$el;
let pos = 0;
if( null != container ){
pos = container.getBoundingClientRect().top + window.scrollY;
}
vm.is_display_error = "1";
vm.is_error_msg = error_msg;
const myVar = Error().stack;
let allow_scroll = true;
if( /mounted/.test( myVar ) ){
allow_scroll = false;
}
if( allow_scroll ){
window.scrollTo({
top: pos,
behavior: "smooth",
});
}
setTimeout(function(){
vm.bookingpress_remove_error_msg();
},6000);
},
bookingpress_remove_error_msg(){
const vm = this;
vm.is_display_error = "0";
vm.is_error_msg = "";
},
checkBeforeBookAppointment(){
const vm = this;
setTimeout(function(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_before_book_appointment",_wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm.appointment_step_form_data );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "error"){
vm.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm.service_timing = [];
}
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
}else{
vm.bookingpress_remove_error_msg();
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},1500);
},
book_appointment(){
const vm2 = this;
vm2.isLoadBookingLoader = "1";
vm2.isBookingDisabled = true;
vm2.bookingpress_process_to_book_appointment();
},
async bookingpress_process_to_book_appointment(){
const vm2 = this;
if(vm2.is_display_error != "1"){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_front_save_appointment_booking", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm2.appointment_step_form_data );
const cdata = await this.bookingpress_reload_captcha();
let updateData = JSON.parse( postData.appointment_data );
for (let bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
updateData[ bookingpress_grecaptcha_field_v3 ] = cdata;
}
postData.appointment_data = JSON.stringify( updateData );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
if(response.data.variant == "redirect"){
vm2.bookingpress_remove_error_msg();
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
},50);
}else if(response.data.variant == "redirect_url"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else if(response.data.variant == "error"){
vm2.bookingpress_set_error_msg(response.data.msg);
}else{
vm2.bookingpress_remove_error_msg();
}
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
}.bind(this) )
.catch( function (error) {
vm2.bookingpress_set_error_msg(error);
});
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
},
bpa_check_browser(){
const vm = this;
let userAgent = navigator.userAgent;
let browserName;
if(userAgent.match(/edg/i)){
browserName = "edge";
} else if(userAgent.match(/opr\//i)){
browserName = "opera";
} else if(userAgent.match(/chrome|chromium|crios/i)){
browserName = "chrome";
} else if(userAgent.match(/firefox|fxios/i)) {
browserName = "firefox";
} else if(userAgent.match(/safari/i)) {
browserName = "safari";
} else {
browserName="Unknown";
}
vm.browser_details = browserName;
},
bpa_check_browser_version(){
const vm = this;
var objappVersion = navigator.appVersion;
var browserAgent = navigator.userAgent;
var browserName = navigator.appName;
var browserVersion = "" + parseFloat(navigator.appVersion);
var browserMajorVersion = parseInt(navigator.appVersion, 10);
var Offset, OffsetVersion, ix;
/* For Chrome */
if ((OffsetVersion = browserAgent.indexOf("Chrome")) != -1) {
browserName = "Chrome";
browserVersion = browserAgent.substring(OffsetVersion + 7);
}
/* For Microsoft internet explorer */
else if ((OffsetVersion = browserAgent.indexOf("MSIE")) != -1) {
browserName = "Microsoft Internet Explorer";
browserVersion = browserAgent.substring(OffsetVersion + 5);
}
/* For Firefox */
else if ((OffsetVersion = browserAgent.indexOf("Firefox")) != -1) {
browserName = "Firefox";
}
/* For Safari */
else if ((OffsetVersion = browserAgent.indexOf("Safari")) != -1) {
browserName = "Safari";
browserVersion = browserAgent.substring(OffsetVersion + 7);
if ((OffsetVersion = browserAgent.indexOf("Version")) != -1)
browserVersion = browserAgent.substring(OffsetVersion + 8);
}
/* For other browser "name/version" is at the end of userAgent */
else if ((Offset = browserAgent.lastIndexOf(" ") + 1) < (OffsetVersion = browserAgent.lastIndexOf("/"))) {
browserName = browserAgent.substring(Offset, OffsetVersion);
browserVersion = browserAgent.substring(OffsetVersion + 1);
if (browserName.toLowerCase() == browserName.toUpperCase()) {
browserName = navigator.appName;
}
}
/* Trimming the fullVersion string at */
/* semicolon/space if present */
if ((ix = browserVersion.indexOf(";")) != -1)
browserVersion = browserVersion.substring(0, ix);
if ((ix = browserVersion.indexOf(" ")) != -1)
browserVersion = browserVersion.substring(0, ix);
browserMajorVersion = parseInt("" + browserVersion, 10);
if (isNaN(browserMajorVersion)) {
browserVersion = "" + parseFloat(navigator.appVersion);
browserMajorVersion = parseInt(navigator.appVersion, 10);
}
vm.browser_version = browserMajorVersion;
},
focusFirstService(){
if(app.current_screen_size == "desktop"){
this.$nextTick( () =>{
const focusableItems = document.querySelectorAll(".bpa-front-module--service .bpa-fm--si--col:not([style*='display: none']) .bpa-front-si-card");
if( focusableItems.length ){
focusableItems[0].focus();
}
});
}
},
focusFirstDate(){
var firstDate = document.querySelectorAll(".vc-day.in-month [aria-disabled=false]");
if(firstDate){
if(firstDate.length > 1){
firstDate[1].focus();
}else if(firstDate.length > 0){
firstDate[0].focus();
}else if(firstDate.length == 0){
firstDate = document.querySelectorAll(".vc-day.in-month .vc-day-content:not(.is-disabled)");
if(firstDate.length > 1){
firstDate[1].focus();
}else if(firstDate.length > 0){
firstDate[0].focus();
}
}
}
},
focusFirstTimeSlot(){
this.$nextTick( () =>{
if( this.$refs.timeSlotItems.length ){
this.$refs.timeSlotItems[0].focus();
}
});
},
focustFirstCategory(){
this.$nextTick(() => {
if (this.$refs.categoryItem.length) {
this.$refs.categoryItem[0].focus();
}
});
},
bpa_handle_service_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-module--service .bpa-fm--si--col:not([style*='display: none']) .bpa-front-si-card"); // Update with your actual class
let currentIndex = -1;
let itemsPerRow = 2;
if(window.outerWidth >= 1200){
itemsPerRow = 2;
}else if(window.outerWidth < 950){
itemsPerRow = 1;
}
const active_container = document.querySelector(".bpa-front-module--service").offsetWidth;
if(active_container && active_container.offsetWidth < 800){
itemsPerRow = 1;
}
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
// bpa-fm--service__advance-options __bpa-is-active
setTimeout(() => {
let extraServiceFocus = document.querySelector(".bpa-fm--service__advance-options.__bpa-is-active .--bpa-sao-service-extras .el-checkbox__inner");
let recurringFocus = document.querySelector(".bpa-fm--service__advance-options.__bpa-is-active .--bpa-sao-guest-module .el-input__inner");
if(extraServiceFocus !== null){
extraServiceFocus.focus();
}else if (recurringFocus !== null){
recurringFocus.focus();
}
}, 100);
} else if (event.key === "ArrowRight") {
event.preventDefault();
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if(event.key === "ArrowDown"){
event.preventDefault();
let nextIndex = (currentIndex + itemsPerRow) % focusableItems.length;
focusableItems[nextIndex].focus();
}else if (event.key === "ArrowLeft" ) {
event.preventDefault();
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if(event.key === "ArrowUp"){
event.preventDefault();
let prevIndex = (currentIndex - itemsPerRow + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
this.bpaMoveFocusToPreviousElement( this.$refs.servicesGroup );
}
},
bpa_handle_timeslot_keypress(index, event) {
const groups = document.querySelectorAll(".bpa-front--dt__ts-body--row"); // row/groups
const focusableItems = document.querySelectorAll(".bpa-front--dt__ts-body .bpa-front--dt__ts-body--item"); // Items
let currentIndex = -1;
let currentGroupIndex = -1;
let itemIndexInGroup = -1;
// Find the currently focused item and its group
focusableItems.forEach((item, idx) => {
if (item === document.activeElement) {
currentIndex = idx;
// Find which group this item belongs to
for (let i = 0; i < groups.length; i++) {
if (groups[i].contains(item)) {
currentGroupIndex = i;
// Find position within the group
const groupItems = groups[i].querySelectorAll(".bpa-front--dt__ts-body--item");
for (let j = 0; j < groupItems.length; j++) {
if (groupItems[j] === item) {
itemIndexInGroup = j;
break;
}
}
break;
}
}
}
});
if (currentIndex === -1) return; // No focusable item is selected
const itemsPerRow = 2; // Based on your screenshot showing 2 time slots per row
if (event.key === "ArrowRight") {
event.preventDefault();
// If at the end of the group, move to the first item of the next group
if (itemIndexInGroup === groups[currentGroupIndex].querySelectorAll(".bpa-front--dt__ts-body--item").length - 1) {
if (currentGroupIndex < groups.length - 1) {
// Focus on the first item of the next group
const nextGroupItems = groups[currentGroupIndex + 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (nextGroupItems.length > 0) {
nextGroupItems[0].focus();
}
}
} else {
// Move to the next item in the same group
let nextIndex = currentIndex + 1;
if (nextIndex < focusableItems.length) {
focusableItems[nextIndex].focus();
}
}
} else if (event.key === "ArrowDown") {
event.preventDefault();
const itemsInCurrentGroup = groups[currentGroupIndex].querySelectorAll(".bpa-front--dt__ts-body--item").length;
const rowsInCurrentGroup = Math.ceil(itemsInCurrentGroup / itemsPerRow);
const currentRowInGroup = Math.floor(itemIndexInGroup / itemsPerRow);
if (currentRowInGroup >= rowsInCurrentGroup - 1 || currentIndex + itemsPerRow >= focusableItems.length) {
if (currentGroupIndex < groups.length - 1) {
// Focus on the first item of the next group
let nextIndex = currentIndex + itemsPerRow;
const nextGroupItems = groups[currentGroupIndex + 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if(itemsInCurrentGroup % 2 == 0 && nextIndex < focusableItems.length){
focusableItems[nextIndex].focus();
}else if (nextGroupItems.length > 0) {
nextGroupItems[0].focus();
}
}
} else {
// Stay in the same group, move down a row
let nextIndex = currentIndex + itemsPerRow;
if(currentIndex == itemsInCurrentGroup - 2 && itemsInCurrentGroup % 2 == 1 && (nextIndex + 1) < focusableItems.length){
focusableItems[nextIndex + 1].focus();
}else if(nextIndex < focusableItems.length){
focusableItems[nextIndex].focus();
}
// if(nextIndex < focusableItems.length)
}
} else if (event.key === "ArrowLeft") {
event.preventDefault();
// If at the beginning of the group, move to the last item of the previous group
if (itemIndexInGroup === 0) {
if (currentGroupIndex > 0) {
// Focus on the last item of the previous group
const prevGroupItems = groups[currentGroupIndex - 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (prevGroupItems.length > 0) {
prevGroupItems[prevGroupItems.length - 1].focus();
}
}
} else {
// Move to the previous item in the same group
let prevIndex = currentIndex - 1;
if (prevIndex >= 0) {
focusableItems[prevIndex].focus();
}
}
} else if (event.key === "ArrowUp") {
event.preventDefault();
const currentRowInGroup = Math.floor(itemIndexInGroup / itemsPerRow);
if (currentRowInGroup === 0) {
if (currentGroupIndex > 0) {
// Focus on the last item of the previous group
const prevGroupItems = groups[currentGroupIndex - 1].querySelectorAll(".bpa-front--dt__ts-body--item");
if (prevGroupItems.length > 0) {
let howMuchMinus = 1;
if(itemIndexInGroup == 0 && prevGroupItems.length % 2 == 0){
howMuchMinus = 2;
}else if(itemIndexInGroup == 1 && prevGroupItems.length % 2 == 0){
howMuchMinus = 1;
}else{
if(itemIndexInGroup == 1 && prevGroupItems.length > 2){
howMuchMinus = 2;
}
}
prevGroupItems[prevGroupItems.length - howMuchMinus].focus();
}
}
} else {
// Stay in the same group, move up a row
const prevIndex = currentIndex - itemsPerRow;
if (prevIndex >= 0) {
focusableItems[prevIndex].focus();
}
}
} else if ("Tab" == event.key && event.shiftKey && 0 === currentIndex) {
event.preventDefault();
this.bpaMoveFocusToPreviousElement(this.$refs.timeSlotItemsGroup);
}
},
bpa_handle_category_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-cat-items-wrapper .bpa-front-ci-pill"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
} else if (event.key === "ArrowRight") {
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if (event.key === "ArrowLeft" ) {
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = document.querySelector(".bpa_search_service_data_cls .el-input__inner");
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-tab-menu--item.__bpa-is-active");
}
this.bpaMoveFocusToPreviousElement( this.$refs.categoryGroup, focusElement );
}
},
bpa_handle_pg_keypress( index, event ){
const focusableItems = document.querySelectorAll(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "Enter") {
event.target.click();
} else if (event.key === "ArrowRight") {
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if (event.key === "ArrowLeft" ) {
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = "";
focusElement = document.querySelector(".bpa-fm--bs__deposit-payment-module .bpa-front-form-control--radio");
if(focusElement == null){
focusElement = document.querySelector(".bpa-fm--bs-amount-item .bpa-is-tip-edit-icon svg");
if(focusElement == null){
focusElement = document.querySelectorAll(".bpa-fm--bs__coupon-module-textbox .el-button");
focusElement = focusElement[focusElement.length - 1];
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-summary-content__lg .bpa--summary_service_datetime_count_name");
}
}
}
this.bpaMoveFocusToPreviousElement( this.$refs.paymentGatewayItemsGroup, focusElement );
}
},
focusFirstPaymentGateway(){
this.$nextTick( () =>{
const paymentGatewayItem = document.querySelector(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item");
if( paymentGatewayItem !== null ){
paymentGatewayItem.focus();
}
});
},
bpaMoveFocusToPreviousElement( currentElement, focusOnElement = false ){
if(focusOnElement){
focusOnElement.focus();
return;
}
const focusableElements = document.querySelectorAll(
"a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])"
);
const focusableArray = Array.from(focusableElements);
const currentIndex = focusableArray.indexOf(currentElement);
if (currentIndex > 0) {
focusableArray[currentIndex - 1].focus();
}
},
bpaMoveFocusToNextElement( currentElement ){
const focusableElements = document.querySelectorAll(
"a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])"
);
const focusableArray = Array.from(focusableElements);
const currentIndex = focusableArray.indexOf(currentElement);
if (currentIndex > 0) {
focusableArray[currentIndex + 1].focus();
}
},
bpa_select_category( selected_cat_id, selected_cat_name, total_services, total_category){
const vm = this;
let category_id = parseInt( selected_cat_id );
vm.isLoadClass = 0;
if( 0 == selected_cat_id ){
for( let bpa_service_id in vm.bookingpress_all_services_data ){
let current_service = vm.bookingpress_all_services_data[ bpa_service_id ];
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = true;
if( ("undefined" != typeof current_service.is_disabled && true == current_service.is_disabled) || ( "undefined" != current_service.hide_for_staff && true == current_service.hide_for_staff ) ){
current_service.is_visible = false;
}
}
} else {
if( vm.bookingpress_all_services_data != "" ){
for( let bpa_service_id in vm.bookingpress_all_services_data ){
let current_service = vm.bookingpress_all_services_data[ bpa_service_id ];
let current_category = current_service.bookingpress_category_id;
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = false;
if( current_category == category_id ){
vm.bookingpress_all_services_data[ bpa_service_id ].is_visible = true;
}
if( ("undefined" != typeof current_service.is_disabled && true == current_service.is_disabled) || ( "undefined" != current_service.hide_for_staff && true == current_service.hide_for_staff ) ){
current_service.is_visible = false;
}
}
}
}
setTimeout(function(){
vm.isLoadClass = 1;
},1);
vm.appointment_step_form_data.selected_category = selected_cat_id;
vm.appointment_step_form_data.selected_cat_name = selected_cat_name;
},
selectStepCategory(selected_cat_id, selected_cat_name = "", total_services = 0, total_category="", display_warn = true ){
if( true == display_warn ){
console.trace("Deprecated step category function " );
console.warn("selectStepCategory function is deprecated. Please update the BookingPress lite, premium, and add-ons to the latest version");
}
const vm = this;
vm.isLoadClass = 0;
if( 0 == selected_cat_id ){
let temp_services = [];
let m = 0;
for( let x in vm.bpa_services_data_from_categories ){
let service_details = vm.bpa_services_data_from_categories[x];
for( let n in service_details ){
let current_service = service_details[n];
if( "undefined" != typeof current_service.bookingpress_staffmembers ){
let selected_staffmember = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( current_service.bookingpress_staffmembers.includes( selected_staffmember ) && selected_staffmember != ""){
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position);
temp_services[bookingpress_service_pos] = current_service;
} else {
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position );
temp_services[bookingpress_service_pos] = current_service;
}
} else {
var bookingpress_service_pos = parseFloat(current_service.bookingpress_service_position );
temp_services[bookingpress_service_pos] = current_service;
}
if( vm.is_bookingpress_staff_loaded_from_url == "true" && "" != vm.appointment_step_form_data.selected_staff_member_id ){
if( 0 == selected_cat_id ){
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
current_service.is_visible = true;
} else {
current_service.is_visible = false;
}
} else {
vm.services_data.forEach( ( current_service, index) => {
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
vm.services_data[index].is_visible = true;
} else {
vm.services_data[index].is_visible = false;
}
});
}
}
m++;
}
}
var bpa_temp_services= [];
temp_services.sort();
for( let n in temp_services ){
if(temp_services[n] != "") {
bpa_temp_services[n] = temp_services[n];
}
}
vm.services_data = bpa_temp_services.sort();
} else {
vm.services_data = vm.bpa_services_data_from_categories[selected_cat_id];
if( vm.is_bookingpress_staff_loaded_from_url == "true" && "" != vm.appointment_step_form_data.selected_staff_member_id ){
if( 0 == selected_cat_id ){
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
current_service.is_visible = true;
} else {
current_service.is_visible = false;
}
} else {
vm.services_data.forEach( ( current_service, index) => {
let staff_member_details = current_service.bookingpress_staffmembers;
if( staff_member_details.includes( vm.appointment_step_form_data.selected_staff_member_id.toString() ) ){
vm.services_data[index].is_visible = true;
} else {
vm.services_data[index].is_visible = false;
}
});
}
}
}
vm.appointment_step_form_data.selected_category = selected_cat_id;
vm.appointment_step_form_data.selected_cat_name = selected_cat_name;
setTimeout(function(){
vm.isLoadClass = 1;
},1);
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
},
async selectDate(selected_service_id, service_name, service_price, service_price_without_currency, is_move_to_next, service_duration_val = "",service_duration_unit = ""){
const vm = this;
if(typeof vm.appointment_step_form_data.cart_items == "undefined" && (selected_service_id != vm.appointment_step_form_data.selected_service && vm.appointment_step_form_data.selected_date != "")){
var bookingpress_selected_date = vm.appointment_step_form_data.selected_date;
let newDate = new Date("2026-01-16 14:28:54");
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( newDate ) ){
let sel_month = newDate.getMonth() + 1;
let sel_year = newDate.getFullYear();
let sel_date = newDate.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
newDate = sel_year + "-" + sel_month + "-" + sel_date;
}
if( ("undefined" != typeof vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ) && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && vm.appointment_step_form_data.bpa_datetime_after_service_selection != 1 ) ){
vm.appointment_step_form_data.selected_date = newDate;
vm.appointment_step_form_data.selected_end_date = newDate;
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
}
this.booking_cal_maxdate = new Date( Date.now() + ( 3600 * 1000 * ( 24 * 180 ) ) );
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected && 1 == vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected ) {
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 0;
}
if( "undefined" != typeof vm.appointment_step_form_data.selected_staff_member_id && "" != vm.appointment_step_form_data.selected_staff_member_id ){
let current_selected_tab = "service";
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
let sidebar_keys = Object.keys( sidebar_step_data );
let current_tab_pos = sidebar_keys.indexOf( "service" );
let selected_tab_pos = sidebar_keys.indexOf( "staffmembers" );
if( "undefined" == typeof vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url || vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == "0" ){
if( selected_tab_pos > current_tab_pos || sidebar_step_data.staffmembers.is_display_step == 0 ){
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
}
}
}
let is_drawer_opened = "false";
let use_drawer_flag = false;
/* vm.appointment_step_form_data.is_extra_service_exists = "0";
if( vm.bookingpress_is_extra_enable == 1){
use_drawer_flag = true;
for( let i in vm.appointment_step_form_data.bookingpress_selected_extra_details ){
vm.appointment_step_form_data.bookingpress_selected_extra_details[i].bookingpress_is_selected = false;
vm.appointment_step_form_data.bookingpress_selected_extra_details[i].bookingpress_selected_qty = 1;
}
for( let n in vm.all_services_data ){
let element = vm.all_services_data[n];
if( element.bookingpress_service_id == selected_service_id && element.extra_service_counter > 0 ){
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.appointment_step_form_data.is_extra_service_exists = "1";
is_drawer_opened = "true";
vm.isServiceLoadTimeLoader = "1";
}
}
} */
if( vm.is_staffmember_activated == 1 && vm.appointment_step_form_data.hide_staff_selection == "false" && vm.appointment_step_form_data.form_sequence[0] != "staff_selection" ){
for( let index in vm.bookingpress_staffmembers_details ){
let currentValue = vm.bookingpress_staffmembers_details[index];
vm.bookingpress_staffmembers_details[index].is_display_staff = false;
if("undefined" != typeof currentValue.assigned_service_price_details && "undefined" != typeof currentValue.assigned_service_price_details[selected_service_id] && "public" == vm.bookingpress_staffmembers_details[index].staffmember_visibility ){
vm.bookingpress_staffmembers_details[index].is_display_staff = true;
}
}
if( "" == vm.appointment_step_form_data.selected_staff_member_id || 0 == vm.appointment_step_form_data.selected_staff_member_id ){
let next_tabname = vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name;
if( "datetime" == next_tabname && 1 == vm.bookingpress_sidebar_step_data[ next_tabname ].is_allow_navigate ){
vm.bookingpress_sidebar_step_data[ next_tabname ].is_allow_navigate = 0;
}
}
/* let is_staff_exists = 0;
let total_staff = 0;
let total_private_staff = 0;
let deselect_staff = false;
let staff_id = vm.appointment_step_form_data.selected_staff_member_id;
let available_staffs = [];
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(selected_service_id)){
if( currentValue.staffmember_visibility == "private" ){
total_private_staff++;
}
total_staff++;
is_staff_exists = 1;
available_staffs.push( currentValue.bookingpress_staffmember_id );
}
});
if( available_staffs.length > 0 && staff_id > 0 && !available_staffs.includes( staff_id ) ){
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
}
if( 1 == is_staff_exists ){
if( total_staff == total_private_staff ){
await vm.bookingpress_select_staffmember("any_staff", 1);
is_staff_exists = 0;
vm.appointment_step_form_data.is_staff_exists = 0;
vm.appointment_step_form_data.hide_staff_selection = "true";
} else {
vm.isServiceLoadTimeLoader = "1";
is_drawer_opened = "true";
vm.appointment_step_form_data.is_staff_exists = 1;
}
} */
}
if( ("false" == is_move_to_next && "false" == is_drawer_opened) ){
if( (vm.bookingpress_cart_addon == 1 && vm.appointment_step_form_data.hide_service_selection_step == "true" ) ){
is_move_to_next = "false";
} else {
is_move_to_next = "true";
}
}
if( "true" == is_move_to_next && "d" == vm.appointment_step_form_data.selected_service_duration_unit ){
if( 0 == vm.bookingpress_sidebar_step_data.service.is_display_step && "datetime" == vm.bookingpress_current_tab ){
is_move_to_next = false;
}
}
let current_selected_service = vm.appointment_step_form_data.selected_service;
vm.bookingpress_remove_extra_service_error_msg();
if( "undefined" != vm.bookingpress_all_services_data[ selected_service_id ].service_extras && "" != vm.bookingpress_all_services_data[ selected_service_id ].service_extras && vm.bookingpress_sidebar_step_data.service.is_display_step == 1 ){
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
const params = new URLSearchParams(window.location.search);
if (params.get("book_again") == 1 && vm.is_staffmember_activated == 1) {
document.body.classList.remove("--bpa-open-advance-drawer");
}
vm.isServiceLoadTimeLoader = "0";
vm.appointment_step_form_data.is_extra_service_exists = "1";
is_drawer_opened = "true";
is_move_to_next = false;
} else {
vm.appointment_step_form_data.is_extra_service_exists = "0";
}
if( selected_service_id != "" && ("undefined" == typeof vm.is_club_service || vm.is_club_service != true ) ){
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
/** Check if staff member is enabled, visible and after service step */
if( vm.is_staffmember_activated == 1){
if( sidebar_step_data.staffmembers.is_first_step == 0 ){
let max_capacity = 1;
let min_capacity = 1;
let staffmember_details = vm.bookingpress_staffmembers_details;
let staff_capacities = [];
let staff_min_capacities = [];
staffmember_details.forEach( (element,index) =>{
if( "undefined" == typeof element.assigned_service_price_details[ selected_service_id ] ){
return true;
}
let staff_services = element.assigned_service_price_details[ selected_service_id ];
let staff_capacity = staff_services.assigned_service_capacity;
staff_capacities.push( parseInt(staff_capacity) );
if( vm.is_bring_anyone_with_you_activated == 1 ){
let staff_min_capacity = staff_services.assigned_service_min_capacity;
staff_min_capacities.push( parseInt(staff_min_capacity) );
}
});
max_capacity = Math.max.apply(null, staff_capacities);
vm.appointment_step_form_data.service_max_capacity = parseInt(max_capacity);
if( vm.is_bring_anyone_with_you_activated == 1 ){
min_capacity = Math.min.apply(null, staff_min_capacities);
vm.appointment_step_form_data.service_min_capacity = parseInt(min_capacity);
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members, selected_service_id );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
} else {
let staff_id = vm.appointment_step_form_data.selected_staff_member_id;
if( "" != staff_id ){
let staff_details;
vm.bookingpress_staffmembers_details.forEach( (element,index) => {
if( element.bookingpress_staffmember_id == staff_id ){
staff_details = element;
return false;
}
});
if( staff_details != "" ){
let staff_service_data = staff_details.assigned_service_price_details[ selected_service_id ];
let staff_service_capacity = staff_service_data.assigned_service_capacity;
let staff_service_min_capacity = staff_service_data.assigned_service_min_capacity;
vm.appointment_step_form_data.service_max_capacity = parseInt(staff_service_capacity);
vm.appointment_step_form_data.service_min_capacity = parseInt(staff_service_min_capacity);
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members, selected_service_id );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
}
}
}
} else if( 1 != vm.is_staffmember_activated ){
/* vm.all_services_data.forEach( (element, index) => {
if( "" == element.service_max_capacity ){
element.service_max_capacity = 1;
}
if( element.bookingpress_service_id == selected_service_id ){
vm.appointment_step_form_data.service_max_capacity = parseInt( element.service_max_capacity );
return false;
}
}); */
vm.appointment_step_form_data.service_max_capacity = vm.bookingpress_all_services_data[ selected_service_id ].services_meta.max_capacity;
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.appointment_step_form_data.service_min_capacity = vm.bookingpress_all_services_data[ selected_service_id ].services_meta.min_capacity;
vm.appointment_step_form_data.bookingpress_selected_bring_members = vm.appointment_step_form_data.service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members );
vm.bookingpress_repeat_custom_form_fields( selected_service_id );
}
}
/** Check if service max capacity > 1 and quantity feature is enabled */
if( vm.is_bring_anyone_with_you_activated == 1 && 1 < vm.appointment_step_form_data.service_max_capacity /*&& this.is_service_loaded_from_url != "1" /* && "true" == is_move_to_next */ ){
is_move_to_next = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "1";
}
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" ){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ) {
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
} else {
if( 0 > vm.appointment_step_form_data.cart_item_edit_index ){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ) {
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
} else {
/** Reputelog - need to check custom service duration with cart add-on while edit appointment from cart */
let cart_edit_index_id = vm.appointment_step_form_data.cart_item_edit_index;
let cart_item = vm.appointment_step_form_data.cart_items[ cart_edit_index_id ];
let bookingpress_edit_cart_service_id = typeof cart_item.bookingpress_service_id != "undefined" ?cart_item.bookingpress_service_id:0;
if(bookingpress_edit_cart_service_id != selected_service_id){
vm.all_services_data.forEach(function(currentvalue5,index5,arr5) {
if(selected_service_id != "" && currentvalue5.bookingpress_service_id == selected_service_id ){
vm.appointment_step_form_data.cart_items[cart_edit_index_id].enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.enable_custom_service_duration = currentvalue5.enable_custom_service_duration;
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price = "";
}
});
}else{
vm.appointment_step_form_data.enable_custom_service_duration = typeof cart_item.enable_custom_service_duration != "undefined" ? cart_item.enable_custom_service_duration : false;
vm.appointment_step_form_data.custom_service_duration_value = parseInt( cart_item.custom_service_duration_value );
vm.appointment_step_form_data.custom_service_duration_real_value = parseInt( cart_item.custom_service_duration_value );
vm.appointment_step_form_data.custom_service_real_price = parseFloat( cart_item.custom_service_real_price );
}
}
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
vm.bpa_skip_loading_csd_slot = false;
}
vm.appointment_step_form_data.selected_service = selected_service_id;
vm.v_calendar_blocked_dates = [];
vm.v_calendar_attributes_current = [];
vm.appointment_step_form_data.selected_service_name = service_name;
vm.appointment_step_form_data.selected_service_price = service_price;
vm.appointment_step_form_data.service_price_without_currency = service_price_without_currency;
/* vm.appointment_step_form_data.base_price = service_price; */
vm.appointment_step_form_data.base_price_without_currency = service_price_without_currency;
if( "" == service_duration_val ){
service_duration_val = vm.bookingpress_all_services_data[ selected_service_id ].bookingpress_service_duration_val;
}
if( "" == service_duration_unit ){
service_duration_unit = vm.bookingpress_all_services_data[ selected_service_id ].bookingpress_service_duration_unit;
}
vm.appointment_step_form_data.selected_service_duration = service_duration_val;
vm.appointment_step_form_data.selected_service_duration_unit = service_duration_unit;
if(vm.previous_selected_tab_id === 1 || vm.previous_selected_tab_id === 2 || vm.current_selected_tab_id === 1){
vm.displayResponsiveCalendar = "1";
}
vm.v_calendar_disable_dates = [];
vm.bpa_current_selected_date = "";
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
if( "undefined" != typeof vm.is_staffmember_activated && vm.is_staffmember_activated == 1) {
if( ( vm.is_staffmember_activated == 1 && ( vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.service.next_tab_name == "datetime" && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "staffmembers" ) ) ){
//vm.appointment_step_form_data.bpa_datetime_after_staff_selection_flag = 1;
//vm.hide_capacity_text_flag = true;
//alert( "inside this 45 ");
vm.appointment_step_form_data.bpa_datetime_hide_capacity = true;
vm.appointment_step_form_data.bpa_datetime_before_staffselection = 1;
}
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
if( (vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.service.next_tab_name == "datetime" && vm.is_staffmember_activated == 1 && vm.appointment_step_form_data.hide_staff_selection != "true" ) || ( (vm.appointment_step_form_data.hide_service_selection_step == "true" || vm.appointment_step_form_data.hide_service_selection_step == true ) && vm.bookingpress_sidebar_step_data.datetime.is_first_step == 1 )){
//vm.appointment_step_form_data.bpa_available_staff_member.push(currentValue.bookingpress_staffmember_id);
const staffId = currentValue.bookingpress_staffmember_id;
if (!vm.appointment_step_form_data.bpa_available_staff_member.includes(staffId)) {
vm.appointment_step_form_data.bpa_available_staff_member.push(staffId);
}
}
}
});
if( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 ){
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
}
}
}
vm.appointment_step_form_data.store_selected_date = "";
vm.appointment_step_form_data.store_selected_end_date = "";
vm.appointment_step_form_data.store_selected_time = "";
vm.appointment_step_form_data.store_selected_end_time = "";
vm.appointment_step_form_data.store_start_time = "";
vm.appointment_step_form_data.store_end_time = "";
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_end_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
vm.appointment_step_form_data.customer_selected_date = "";
vm.appointment_step_form_data.customer_selected_end_date = "";
vm.appointment_step_form_data.customer_selected_time = "";
vm.appointment_step_form_data.customer_selected_end_time = "";
if(is_move_to_next === "true"){
if( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 ){
if( vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name == "cart" ){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
} else {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
}
} else {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
}
}
var selected_date = vm.appointment_step_form_data.selected_date;
var formatted_date = vm.get_formatted_date(selected_date);
vm.bookingpress_remove_error_msg();
vm.service_advance_see_less = "0";
if( vm.is_staffmember_activated == 1 && (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1) ){
let timeslots_details = vm.appointment_step_form_data.bpa_after_select_service_available_staff;
let service_details = vm.bpasortedServices;
if( "undefined" != typeof timeslots_details ){
if( "undefined" != typeof timeslots_details.available_staffs ){
if( 1 < timeslots_details.available_staffs.length ){
let available_staff_id = timeslots_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( timeslots_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = timeslots_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
}
}
if( /*vm.bookingpress_is_extra_enable == "1" ||*/ vm.is_bring_anyone_with_you_activated == "1" || vm.is_staffmember_activated == "1" ){
var is_extra_exists = 0;
var service_max_length = parseInt(vm.appointment_step_form_data.service_max_capacity);
var is_staff_exists = 0;
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
if(vm.appointment_step_form_data.hide_staff_selection == "true" && vm.is_staff_first_step != "1" && (typeof vm.appointment_step_form_data.custom_service_duration_value == "undefined" || ( vm.appointment_step_form_data.custom_service_duration_value != "undefined" && vm.appointment_step_form_data.custom_service_duration_value == "") ) ){
/* vm.bookingpress_select_staffmember("any_staff", 1); */
}
}
/* if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length >= 1) || ( vm.appointment_step_form_data.hide_staff_selection != "true" && vm.is_staffmember_activated == "1" && ( vm.is_any_staff_option_enable == 1 || is_staff_exists == 1 ) ) || (vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == 1) ){ */
if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length > 1) ){
vm.bookingpress_open_extras_drawer = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "0";
} else{
if((is_staff_exists == 1 && vm.appointment_step_form_data.hide_staff_selection == "true" && vm.bookingpress_current_tab == "datetime") || (vm.appointment_step_form_data.selected_service_duration_unit == "d" && ( ( vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 0) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length == 1) ))) {
/* If staffmember selection step hide and staff member selection is in drawer then do not need to execute next step navigation function */
}else{
/*if(vm.bookingpress_current_tab != "datetime") {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name)
}*/
}
}}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
let selected_service = vm.appointment_step_form_data.selected_service;vm.customer_form_fields.forEach( (element,index) => {
if( typeof element.field_options != "undefined" && element.field_options.visibility == "services" ){
let field_services = element.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_type == "2_col" || element.field_type == "3_col" || element.field_type == "4_col" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_name == "Repeater" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( "2_col" == ielement.field_type || "3_col" == ielement.field_type || "4_col" == ielement.field_type ){
ielement.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
} else {
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
}
});vm.appointment_step_form_data.coupon_code = "";vm.coupon_code_msg = "";vm.coupon_applied_status = "error";vm.coupon_discounted_amount = 0;vm.coupon_apply_loader = "0";vm.bpa_coupon_apply_disabled = 0;
let current_service_data = vm.bookingpress_all_services_data[selected_service];
if( "undefined" != typeof current_service_data && "undefined" != typeof current_service_data.services_meta ){
let current_service_meta = current_service_data.services_meta;
if( "undefined" != typeof current_service_meta.deposit_amount ){
vm.appointment_step_form_data.deposit_payment_amount = current_service_meta.deposit_amount;
vm.appointment_step_form_data.deposit_payment_type = current_service_meta.deposit_type;
if( "percentage" == current_service_meta.deposit_type ){
vm.appointment_step_form_data.deposit_payment_amount_percentage = current_service_meta.deposit_amount;
}
}
}
setTimeout(function(){
vm.is_display_custom_duration_loader = false;
},1500);
},
dayClickedResponsive( day ){
const vm = this;
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "1";
vm.isLoadDateTimeCalendar = "1";
if( window.innerWidth <= 991 ){
vm.service_timing = "-1";
} else {
vm.service_timing = "-1";
}
}
vm.dayClicked(day);
},
dayClicked(day){
const vm = this;
let available_dates = vm.v_calendar_available_dates;
let dayId = day.id;
let dayString = dayId + " 00:00:00";
if( "undefined" == typeof dayString || "undefined" == typeof available_dates || 0 > available_dates.indexOf( dayString ) || vm.bpa_current_selected_date == dayId || ("undefined" != typeof vm.v_calendar_blocked_dates && vm.v_calendar_blocked_dates.includes( day.id ) ) ){
return false;
}
vm.service_timing = "-2";
vm.appointment_step_form_data.selected_date = dayId;
vm.bpa_current_selected_date = dayId;
vm.no_timeslot_available = false;
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
setTimeout(function(){
vm.service_timing = vm.bookingpress_categories_timeslots( vm.v_calendar_timeslots_data[ dayId ] );
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
},10);
},
onDayKeyPressed(event){
const vm = this;
if(event.event.key == "Enter"){
vm.dayClicked(event);
setTimeout(function(){
if(typeof vm.$refs.timeSlotItems !== 'undefined'){
vm.$refs.timeSlotItems[0].focus();
}
},11);
}
let page = {month: event.month, year: event.year};
vm.bpaMoveMonth(page);
},
onWholeDayKeyPressed(event, day){
const currentDate = new Date(day.id);
let newDate;
const vm = this;
if(event.key == "Enter"){
event.preventDefault();
vm.dayClicked_v2(day);
return;
}
let page = {month: day.month, year: day.year};
vm.bpaMoveMonth(page);
switch(event.key) {
case 'ArrowRight':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() + 1);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowLeft':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() - 1);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowUp':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() - 7);
vm.moveFocusToDate(newDate, day);
break;
case 'ArrowDown':
event.preventDefault();
newDate = new Date(currentDate);
newDate.setDate(currentDate.getDate() + 7);
vm.moveFocusToDate(newDate, day);
break;
}
},
moveFocusToDate(date, day) {
const vm = this;
// Format date to match your day.id format (YYYY-MM-DD)
const dateString = date.toISOString().split('T')[0];
// Find the element for this date
this.$nextTick(() => {
let vc_day_content = document.querySelectorAll(".vc-day .vc-day-content");
vc_day_content.forEach((elm) => {
elm.setAttribute("tabindex", "-1");
});
const dateElement = document.getElementsByClassName(`id-${dateString}`);
// console.log(dateElement);
if (dateElement) {
if (vm.$refs.bkp_front_calendar) {
vm.$refs.bkp_front_calendar.move(dateString);
// vm.$refs.bkp_front_calendar.focusDate(day);
}
if(dateElement[0]){
setTimeout(() => {
let date_span = dateElement[0].querySelector(".bpa_day-select span");
if(date_span){
date_span.setAttribute("tabindex", "0");
date_span.focus();
}
}, 200);
}
}
});
},
dayClicked_legacy(day) {
const vm = this;
let disable_dates = vm.v_calendar_disable_dates;
let max_available_date = vm.get_formatted_date( vm.booking_cal_maxdate );
if( disable_dates.includes( day.id + " 00:00:00" ) || disable_dates.includes( day.id ) || max_available_date < day.id || (day.date < vm.jsCurrentDateFormatted && false == day.isToday) ){
return false;
}
vm.appointment_step_form_data.selected_date = day.id;
vm.get_date_timings( day.id );
},
get_date_timings(current_selected_date = ""){
const vm = this;
if( window.innerWidth <= 991 ){
vm.service_timing = "-1";
}else{
vm.service_timing = "-2";
}
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
if( null == vm.appointment_step_form_data.selected_date ){
vm.appointment_step_form_data.selected_date = new Date("2026-01-16 14:28:54");
}
if( current_selected_date == "") {
current_selected_date = vm.appointment_step_form_data.selected_date;
}
vm.appointment_step_form_data.selected_date = current_selected_date;
var selected_date = vm.appointment_step_form_data.selected_date;
if( "undefined" != typeof this.$refs.bkp_front_calendar ){
const calendar = this.$refs.bkp_front_calendar;
calendar.move(current_selected_date);
}
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( selected_date ) ){
let sel_month = selected_date.getMonth() + 1;
let sel_year = selected_date.getFullYear();
let sel_date = selected_date.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
selected_date = sel_year + "-" + sel_month + "-" + sel_date;
}
vm.appointment_step_form_data.selected_date = selected_date;
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
var selected_service_id = vm.appointment_step_form_data.selected_service;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_front_get_timings", service_id: selected_service_id, selected_date: selected_date, _wpnonce:bkp_wpnonce_pre_fetch, };
postData.bookingpress_timezone = vm.bookingpress_timezone;postData.bookingpress_selected_staffmember = vm.appointment_step_form_data.bookingpress_selected_staff_member_details;postData.service_extra_details = JSON.stringify( vm.appointment_step_form_data.bookingpress_selected_extra_details );postData.enable_custom_service_duration = vm.appointment_step_form_data.enable_custom_service_duration;postData.custom_service_duration_value = vm.appointment_step_form_data.custom_service_duration_value;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
postData.client_dst_timezone = vm.bookingpress_dst_timezone;
}
vm.no_timeslot_available = false;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
var set_waiting_time_limit = 1500;
if(typeof postData.enable_custom_service_duration != "undefined"){
if(postData.enable_custom_service_duration == true || postData.enable_custom_service_duration == "true"){
set_waiting_time_limit = 0;
}
}
setTimeout(function(){
vm.service_timing = response.data;
if( response.data.morning_time.length <= 0 && response.data.afternoon_time.length <= 0 && response.data.evening_time.length <= 0 && response.data.night_time.length <= 0 ){
vm.no_timeslot_available = true;
}
vm.isLoadTimeLoader = "0";
if( "d" != vm.appointment_step_form_data.selected_service_duration_unit && vm.current_screen_size != "desktop"){
vm.displayResponsiveCalendar = "0";
}
if(response.data == ""){
vm.service_timing = null;
}
}, set_waiting_time_limit);
vm.service_advance_see_less = "0";
if( vm.is_staffmember_activated == 1 && (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1) ){
let timeslots_details = vm.appointment_step_form_data.bpa_after_select_service_available_staff;
let service_details = vm.bpasortedServices;
if( "undefined" != typeof timeslots_details ){
if( "undefined" != typeof timeslots_details.available_staffs ){
if( 1 < timeslots_details.available_staffs.length ){
let available_staff_id = timeslots_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( timeslots_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = timeslots_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
}
}
if( /*vm.bookingpress_is_extra_enable == "1" ||*/ vm.is_bring_anyone_with_you_activated == "1" || vm.is_staffmember_activated == "1" ){
var is_extra_exists = 0;
var service_max_length = parseInt(vm.appointment_step_form_data.service_max_capacity);
var is_staff_exists = 0;
var bpa_tmp_selected_service = vm.appointment_step_form_data.selected_service.toString();
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
if(currentValue.assigned_service_details.includes(bpa_tmp_selected_service)){
is_staff_exists = 1;
}
});
if(is_staff_exists == 1){
vm.appointment_step_form_data.is_staff_exists = 1;
if(vm.appointment_step_form_data.hide_staff_selection == "true" && vm.is_staff_first_step != "1" && (typeof vm.appointment_step_form_data.custom_service_duration_value == "undefined" || ( vm.appointment_step_form_data.custom_service_duration_value != "undefined" && vm.appointment_step_form_data.custom_service_duration_value == "") ) ){
/* vm.bookingpress_select_staffmember("any_staff", 1); */
}
}
/* if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length >= 1) || ( vm.appointment_step_form_data.hide_staff_selection != "true" && vm.is_staffmember_activated == "1" && ( vm.is_any_staff_option_enable == 1 || is_staff_exists == 1 ) ) || (vm.appointment_step_form_data.bookingpress_is_load_staff_from_share_url == 1) ){ */
if( (vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 1) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length > 1) ){
vm.bookingpress_open_extras_drawer = "false";
vm.bookingpress_open_extras_drawer = "true";
document.body.classList.add( "--bpa-open-advance-drawer" );
vm.isServiceLoadTimeLoader = "0";
} else{
if((is_staff_exists == 1 && vm.appointment_step_form_data.hide_staff_selection == "true" && vm.bookingpress_current_tab == "datetime") || (vm.appointment_step_form_data.selected_service_duration_unit == "d" && ( ( vm.bookingpress_is_extra_enable == "1" && is_extra_exists == 0) || (vm.is_bring_anyone_with_you_activated == "1" && service_max_length == 1) ))) {
/* If staffmember selection step hide and staff member selection is in drawer then do not need to execute next step navigation function */
}else{
/*if(vm.bookingpress_current_tab != "datetime") {
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name)
}*/
}
}}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
let selected_service = vm.appointment_step_form_data.selected_service;vm.customer_form_fields.forEach( (element,index) => {
if( typeof element.field_options != "undefined" && element.field_options.visibility == "services" ){
let field_services = element.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_type == "2_col" || element.field_type == "3_col" || element.field_type == "4_col" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
} else if( element.field_name == "Repeater" ){
let total_inner_fields = element.field_options.inner_fields.length;
let total_hidden_fields = 0;
if( total_inner_fields > 0 ){
element.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( "2_col" == ielement.field_type || "3_col" == ielement.field_type || "4_col" == ielement.field_type ){
ielement.field_options.inner_fields.forEach( (ielement,iindex) =>{
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
});
} else {
if( ielement.is_blank == "true" ){
total_hidden_fields++;
} else {
let field_visibility = ielement.field_options.visibility || "always";
if( "services" == field_visibility ){
let field_services = ielement.field_options.selected_services;
if( field_services.indexOf( selected_service.toString() ) < 0 ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
} else {
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 0;
}
} else if( "hidden" == field_visibility ){
vm.customer_form_fields[index].field_options.inner_fields[iindex].is_hide = 1;
total_hidden_fields++;
}
}
}
});
}
if( total_hidden_fields >= total_inner_fields ){
vm.customer_form_fields[index].is_hide = 1;
} else {
vm.customer_form_fields[index].is_hide = 0;
}
}
});vm.appointment_step_form_data.coupon_code = "";vm.coupon_code_msg = "";vm.coupon_applied_status = "error";vm.coupon_discounted_amount = 0;vm.coupon_apply_loader = "0";vm.bpa_coupon_apply_disabled = 0;
let current_service_data = vm.bookingpress_all_services_data[selected_service];
if( "undefined" != typeof current_service_data && "undefined" != typeof current_service_data.services_meta ){
let current_service_meta = current_service_data.services_meta;
if( "undefined" != typeof current_service_meta.deposit_amount ){
vm.appointment_step_form_data.deposit_payment_amount = current_service_meta.deposit_amount;
vm.appointment_step_form_data.deposit_payment_type = current_service_meta.deposit_type;
if( "percentage" == current_service_meta.deposit_type ){
vm.appointment_step_form_data.deposit_payment_amount_percentage = current_service_meta.deposit_amount;
}
}
}
setTimeout(function(){
vm.is_display_custom_duration_loader = false;
},1500);
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
selectDisableTiming(time_details){
},
selectTiming(selected_start_time, selected_end_time, store_start_time = "", store_end_time = "", store_selected_date = "" ,formated_start_time = "",formated_end_time = "",time_details = ""){
const vm = this;
vm.appointment_step_form_data.selected_start_time = selected_start_time;
vm.appointment_step_form_data.selected_end_time = selected_end_time;
if( "" != formated_end_time && "" != formated_start_time ) {
vm.appointment_step_form_data.selected_formatted_start_time = formated_start_time;
vm.appointment_step_form_data.selected_formatted_end_time = formated_end_time;
}
if( "" != time_details.formatted_start_end_time && "undefined" != time_details.formatted_start_end_time ) {
vm.appointment_step_form_data.selected_formatted_start_end_time = time_details.formatted_start_end_time;
}
if("" != store_start_time && "" != store_end_time && "" != store_selected_date ){
vm.appointment_step_form_data.store_start_time = store_start_time;
vm.appointment_step_form_data.store_end_time = store_end_time;
vm.appointment_step_form_data.client_offset = vm.bookingpress_timezone_offset;
vm.appointment_step_form_data.store_selected_date = store_selected_date;
vm.appointment_step_form_data.store_selected_end_date = time_details.selected_end_date || store_selected_date;
}
vm.appointment_step_form_data.customer_selected_date = time_details.client_date || vm.appointment_step_form_data.selected_date;
vm.appointment_step_form_data.customer_selected_end_date = time_details.client_end_date || time_details.client_date || vm.appointment_step_form_data.selected_date;
vm.appointment_step_form_data.customer_selected_time = time_details.client_start_time || selected_start_time;
vm.appointment_step_form_data.customer_selected_end_time = time_details.client_end_time || selected_end_time;
vm.appointment_step_form_data.is_next_day = false;
vm.appointment_step_form_data.is_both_next_day = false;
if( "undefined" != typeof time_details.is_next_day && true == time_details.is_next_day ){
vm.appointment_step_form_data.is_next_day = true;
vm.appointment_step_form_data.next_day_selection_date = time_details.selected_date;
vm.appointment_step_form_data.selected_end_date = time_details.selected_end_date;
}
if( ("undefined" != typeof time_details.is_both_next_day_time && true == time_details.is_both_next_day_time) || "undefined" != typeof time_details.is_both_next_day_time_v2 && true == time_details.is_both_next_day_time_v2 ){
vm.appointment_step_form_data.customer_selected_date = time_details.client_end_date;
vm.appointment_step_form_data.display_end_date_on_summary = true;
vm.appointment_step_form_data.is_both_next_day = time_details.is_both_next_day_time;
vm.appointment_step_form_data.is_both_next_day_v2 = time_details.is_both_next_day_time_v2;
vm.appointment_step_form_data.is_server_both_next_day = ( "undefined" != typeof time_details.is_overnight_booking_server ) ? time_details.is_overnight_booking_server : false;
vm.appointment_step_form_data.is_customer_both_next_day = time_details.is_both_next_day_time_v2 || false;
}
let bookingpress_is_anystaff_select = true;
if( (vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "staffmembers" && vm.bookingpress_sidebar_step_data.service.is_first_step == 1) || ( (vm.appointment_step_form_data.hide_service_selection_step == true || vm.appointment_step_form_data.hide_service_selection_step == "true") && vm.bookingpress_sidebar_step_data.datetime.is_first_step == 1 && ("true" != vm.appointment_step_form_data.hide_staff_selection ) ) ){
let staffmember_details = vm.bookingpress_staffmembers_details;
// change the value anystaff not
bookingpress_is_anystaff_select = false;
if( "undefined" != typeof time_details.available_staffs ) {
staffmember_details.forEach(staff => {
staff.is_display_staff = time_details.available_staffs.includes(parseInt(staff.bookingpress_staffmember_id));
});
} else {
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 0;
staffmember_details.forEach(staff => {
staff.is_display_staff = false;
});
}
vm.no_staffmember_available = staffmember_details.every(staff => !staff.is_display_staff);
vm.appointment_step_form_data.bpa_datetime_after_staffselection = 1;
vm.appointment_step_form_data.bpa_after_select_datetime_available_staff = time_details;
}
if( vm.bookingpress_sidebar_step_data["datetime"].next_tab_name == "service" && vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 ){
// change the value anystaff not
bookingpress_is_anystaff_select = false;
let service_details = vm.bpasortedServices;
vm.appointment_step_form_data.bpa_datetime_after_service_selection = 1;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
vm.appointment_step_form_data.is_staff_exists = 1;
}
//console.log( time_details.unavailable_serivce_ids ); //[ 1 ]
// if( "undefined" != typeof time_details.unavailable_serivce_ids ) {
//service_details.forEach(service => {
//service.is_visible = !time_details.unavailable_serivce_ids.includes( parseInt(service.bookingpress_service_id) );
//});
//}
if (typeof time_details.unavailable_serivce_ids !== "undefined") {
service_details.forEach(service => {
if (time_details.unavailable_serivce_ids.includes( service.bookingpress_service_id ) ) {
service.is_visible = false;
service.exclude_id = true;
}
});
} else {
service_details.forEach(service => {
if( "undefined" != typeof service.exclude_id && service.exclude_id == true ){
service.is_visible = true;
}
});
}
vm.no_service_available = service_details.every( services => !services.is_visible );
if( vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime == 1 ){
vm.appointment_step_form_data.bpa_after_select_service_available_staff = time_details;
}
if( "undefined" != typeof time_details.available_staffs ){
let available_staffdata = time_details.available_staffs;
vm.bpasortedServices.forEach( item => {
const hasMatch = Object.keys( item.staff_member_details ).some( key => available_staffdata.includes( Number( key ) ) );
item.is_visible = hasMatch;
item.is_visible_with_flag = hasMatch;
} );
}
}
if( "undefined" != typeof time_details.available_staffs && bookingpress_is_anystaff_select && (vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 && vm.appointment_step_form_data.bpa_datetime_after_service_selection != 1 ) ){
if( 1 < time_details.available_staffs.length ){
let available_staff_id = time_details.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( time_details ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = time_details.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
}
if( vm.bookingpress_staffmembers_details.every(staff => !staff.is_display_staff) ){
vm.is_any_staff_option_enable = 0;
}
vm.appointment_step_form_data.use_modified_duration = false;
if( "undefined" != typeof time_details.use_slot_duration && true == time_details.use_slot_duration && "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && 1 == vm.appointment_step_form_data.bpa_datetime_after_service_selection ){
vm.appointment_step_form_data.use_modified_duration = true;
let remaining_minutes = time_details.duration_unit_next_break;
vm.slot_duration_till_break = remaining_minutes;
let allSortedServices = Object.assign( [], vm.bpasortedServices );
let totalHiddenServices = 0;
allSortedServices.forEach( (element, index) => {
let service_duration_unit = element.bookingpress_service_duration_unit;
element.is_visible_with_service_step = true;
if( "d" == service_duration_unit ){
element.is_visible_with_service_step = false;
totalHiddenServices++;
} else {
let service_duration = ( "h" == service_duration_unit ) ? parseInt( element.bookingpress_service_duration_val * 60 ) : parseInt( element.bookingpress_service_duration_val );
if( service_duration > remaining_minutes ){
element.is_visible_with_service_step = false;
totalHiddenServices++;
}
}
});
vm.bpasortedServices.forEach( (elm, index) => {
if( "undefined" != typeof elm.is_hide_with_step && true == elm.is_hide_with_step ){
elm.is_visible = true;
}
if( "undefined" != typeof allSortedServices[index].is_visible_with_service_step && false == allSortedServices[index].is_visible_with_service_step ){
elm.is_visible = false;
elm.is_hide_with_step = true;
}
});
console.log( vm.bpasortedServices );
console.log( totalHiddenServices );
vm.no_service_available = false;
if( vm.bpasortedServices.length == totalHiddenServices ){
vm.no_service_available = true;
}
}
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name, vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].previous_tab_name);
vm.bookingpress_update_timestep_token();
},
resetForm(){
const vm2 = this;
vm2.appointment_formdata.appointment_selected_customer = "0";
vm2.appointment_formdata.appointment_selected_service = "";
vm2.appointment_formdata.appointment_booked_date = "2026-01-16";
vm2.appointment_formdata.appointment_booked_time = "";
},
select_service(selected_service_id){
const vm = this;
vm.appointment_step_form_data.selected_service = selected_service_id;
},
automatic_next_page(next_tab_id){
const vm = this;
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
;
vm.current_selected_tab_id = parseInt(next_tab_id);
vm.bookingpress_remove_error_msg();
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
},
next_page(customer_form = "", current_selected_element = "", next_selection_element = ""){
const vm = this;
var current_selected_tab = bpa_selected_tab = parseFloat(vm.current_selected_tab_id);
vm.previous_selected_tab_id = parseInt(current_selected_tab);
if(current_selected_element != undefined && current_selected_element != null){
current_selected_tab = parseInt(current_selected_element);
}
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
if(current_selected_tab === 1 || vm.previous_selected_tab_id === 1){
vm.is_display_error = "0";
if(vm.appointment_step_form_data.selected_service == "" || vm.appointment_step_form_data.selected_service == undefined || vm.appointment_step_form_data.selected_service == "undefined"){
vm.bookingpress_set_error_msg("Selecteer een dienst om een afspraak te maken.");
vm.current_selected_tab_id = 1;
return false;
}else{
if(vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == ""){
vm.bookingpress_set_error_msg("Selecteer een medewerker om verder te gaan");
vm.current_selected_tab_id = 1;
return false;
};
if(next_selection_element != ""){
current_selected_tab = next_selection_element;
}else{
current_selected_tab = current_selected_tab;
}
}
}else if(current_selected_tab === 2){
if(current_selected_element != undefined && current_selected_element == 2 && vm.appointment_step_form_data.selected_start_time == "" && bpa_selected_tab == "2" && vm.appointment_step_form_data.selected_service_duration_unit != "d") {
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
}
if(vm.appointment_step_form_data.selected_service != "" && vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.selected_service_duration_unit != "d") {
vm.selectDate(vm.appointment_step_form_data.selected_service, vm.appointment_step_form_data.selected_service_name, vm.appointment_step_form_data.selected_service_price, vm.appointment_step_form_data.service_price_without_currency, "true",vm.appointment_step_form_data.selected_service_duration,vm.appointment_step_form_data.selected_service_duration_unit);
}
if(vm.is_display_error != "1"){
if(next_selection_element != ""){
current_selected_tab = next_selection_element
}else{
current_selected_tab = current_selected_tab;
}
vm.bookingpress_remove_error_msg()
}else{
if(vm.is_error_msg == ""){
vm.bookingpress_set_error_msg("Er is iets fout gegaan")
}
}
}else if(current_selected_tab === 3){
if(vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.is_enable_validations == 1 && vm.appointment_step_form_data.selected_service_duration_unit != "d"){
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
}else{
vm.$refs[customer_form].validate((valid) => {
if (valid) {
if(next_selection_element != ""){
current_selected_tab = next_selection_element
}else{
current_selected_tab = current_selected_tab;
}
}
});
}
}else{
if(vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.is_enable_validations == 1 && vm.appointment_step_form_data.selected_service_duration_unit != "d"){
vm.bookingpress_set_error_msg("Selecteer een tijdstip om verder te gaan met boeken.");
vm.current_selected_tab_id = 2;
return false;
} else {
vm.$refs[customer_form].validate((valid) => {
if (valid) {
if(next_selection_element != ""){
current_selected_tab = next_selection_element;
}else{
current_selected_tab = current_selected_tab;
}
}else{
current_selected_tab = 3;
}
});
}
}
if(current_selected_tab === 2 && vm.appointment_step_form_data.selected_start_time == "" && vm.appointment_step_form_data.selected_date != "" ) {
vm.get_date_timings();
}
vm.current_selected_tab_id = parseInt(current_selected_tab);
if(current_selected_tab === 2 && vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.next_selected_tab_id = 3;
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
},
previous_page(previous_selection_tab_id = ""){
const vm = this;
var current_selected_tab = parseFloat(vm.current_selected_tab_id);
if(previous_selection_tab_id != ""){
current_selected_tab = previous_selection_tab_id;
}else{
vm.previous_selected_tab_id = parseInt(current_selected_tab);
current_selected_tab = current_selected_tab - 1;
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
vm.current_selected_tab_id = parseInt(current_selected_tab);
if(vm.previous_selected_tab_id == "1"){
vm.displayResponsiveCalendar = 1;
}
var bookingpress_scroll_pos = document.querySelector("#bookingpress_booking_form_"+vm.appointment_step_form_data.bookingpress_uniq_id);
bookingpress_scroll_pos = bookingpress_scroll_pos.getBoundingClientRect();
var bookingpress_scroll_position = (bookingpress_scroll_pos.top + window.scrollY) - 300;
window.scrollTo({
top: bookingpress_scroll_position,
});
},
select_payment_method(payment_method){
const vm = this;
vm.appointment_step_form_data.selected_payment_method = payment_method;
var bookingpress_allowed_payment_gateways_for_card_fields = [];
if( "undefined" == typeof vm.skip_checking_final_step_validation || true != vm.skip_checking_final_step_validation ){
vm.bookingpress_get_final_step_amount();
}
;
if(bookingpress_allowed_payment_gateways_for_card_fields.includes(payment_method)){
vm.is_display_card_option = 1;
}else{
vm.is_display_card_option = 0;
}
},
displayCalendar(){
const vm = this;
if( "" == vm.appointment_step_form_data.selected_date || ( "undefined" != typeof vm.v_calendar_available_dates && 1 > vm.v_calendar_available_dates.length ) ){
return false;
}
vm.displayResponsiveCalendar = "1";
},
Change_front_appointment_description(service_id) {
const vm = this;
vm.services_data.forEach(function(item, index, arr){
if(item.bookingpress_service_id == service_id ){
if(item.display_details_more == 0 && item.display_details_less == 1) {
item.display_details_less = 0;
item.display_details_more = 1;
} else {
item.display_details_more = 0;
item.display_details_less = 1;
}
}
});
},
bookingpress_phone_country_change_func(bookingpress_country_obj){
const vm = this;
var bookingpress_selected_country = bookingpress_country_obj.iso2;
vm.appointment_step_form_data.customer_phone_country = bookingpress_selected_country;
vm.appointment_step_form_data.customer_phone_dial_code = bookingpress_country_obj.dialCode;
let exampleNumber = window.intlTelInputUtils.getExampleNumber( bookingpress_selected_country, true, 1 );
if( typeof vm.bookingpress_phone_default_placeholder == "undefined" && "" != exampleNumber ){
vm.bookingpress_tel_input_props.inputOptions.placeholder = exampleNumber;
} else if(vm.bookingpress_phone_default_placeholder == "false" && "" != exampleNumber){
vm.bookingpress_tel_input_props.inputOptions.placeholder = exampleNumber;
}
},
bookingpress_phone_country_open( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".el-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.add("bpa-active-col");
}
}
}
},
bookingpress_phone_country_close( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-active-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.remove("bpa-active-col");
}
}
}
},
bookingpress_validatePhoneField(event) {
this.$nextTick(() => {
if (!this.$refs.appointment_step_form_data) return;
const phoneValue = this.appointment_step_form_data.customer_phone;
console.log("called ... " + phoneValue);
if (/^[\d\+\s\-\(\)]+$/.test(phoneValue.trim())) {
console.log("inside this..... one")
this.$refs.appointment_step_form_data.clearValidate(["customer_phone"]);
}
});
},
bookingpress_get_parents( elem, selector ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
if (selector) {
if (elem.matches(selector)) {
parents.push(elem);
}
continue;
}
parents.push(elem);
}
return parents;
},
async bookingpress_disable_date( bpa_selected_service = "", bpa_selected_date = "" ){
let bpa_is_called = false;
var bookingpress_is_allow_modify = "";
var bookingpress_staff_loaded_from_url = "0";
this.isLoadTimeLoader = "1";
this.isLoadDateTimeCalendarLoad = "1";
let staff_id = this.appointment_step_form_data.selected_staff_member_id;
if( 0 == staff_id ){
staff_id = "";
}
this.service_timing = "-3";
if( 0 === this.bookingpress_sidebar_step_data["staffmembers"].is_display_step && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && 1 == this.hide_category_service && "true" == this.appointment_step_form_data.hide_staff_selection && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1);
}
bpa_is_called = true;
}
let form_sequence_first;
if( "object" == typeof this.appointment_step_form_data.form_sequence ){
form_sequence_first = this.appointment_step_form_data.form_sequence[0];
} else {
form_sequence_first = this.appointment_step_form_data.form_sequence;
}
if( false == bpa_is_called && 1 == this.hide_category_service && "service_selection" == form_sequence_first && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && 1 != this.hide_category_service && "true" == this.appointment_step_form_data.hide_staff_selection && false == this.is_staff_member_set_from_url && "" == staff_id ){
if(bookingpress_is_allow_modify == "0" && bookingpress_staff_loaded_from_url != 0){
this.bookingpress_select_staffmember(bookingpress_staff_loaded_from_url, 0);
}else{
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
}
bpa_is_called = true;
}
if( false == bpa_is_called && "" == staff_id && "true" == this.appointment_step_form_data.select_any_staffmember ){
const d = await this.bookingpress_select_staffmember("any_staff", 1 );
bpa_is_called = true;
}
/** for the datetime re-arrange step */
if( "datetime" != this.bookingpress_next_tab && "datetime" == this.bookingpress_current_tab && this.bookingpress_sidebar_step_data["service"].is_first_step == 1 && this.bookingpress_sidebar_step_data["datetime"].next_tab_name == "staffmembers" ){
this.appointment_step_form_data.selected_staff_member_id = "";
this.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
}
if( "datetime" != this.bookingpress_next_tab && "datetime" == this.bookingpress_current_tab && this.bookingpress_current_tab != this.bookingpress_next_tab && ( "undefined" != typeof this.appointment_step_form_data.any_staff_selected && 1 == this.appointment_step_form_data.any_staff_selected ) ){
this.appointment_step_form_data.selected_staff_member_id = "";
this.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
this.bookingpress_select_staffmember( "any_staff", 1 );
}
let selected_sid = this.appointment_step_form_data.selected_service;
if(selected_sid != "" && "undefined" != typeof this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date && "" != this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date && null != this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date ) {
this.booking_cal_maxdate = this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date;
const currentDate = new Date();
const targetDate = new Date(this.bookingpress_all_services_data[ selected_sid ].bookingpress_service_expiration_date);
let diff_in_time = targetDate.getTime() - currentDate.getTime();
let diff_in_days = ( Math.round( diff_in_time / ( 1000 * 3600 * 24 ) ) ) + 1;
const bookingpress_period_available_for_booking = 180;
if(bookingpress_period_available_for_booking < diff_in_days){
/*If max period avilable is less than service expiry date then set limit for the Max period avilable days*/
this.booking_cal_maxdate = new Date( Date.now() + ( 3600 * 1000 * ( 24 * 180 ) ) );
}
}
let use_legacy = "false";
if( "true" == use_legacy ){
this.bookingpress_disable_date_xhr( bpa_selected_service, bpa_selected_date );
} else {
this.bookingpress_disable_date_xhr_v2( bpa_selected_service, bpa_selected_date );
}
},
bookingpress_update_timestep_token( force_update = false, cart_force_update = false ){
const vm = this;
let use_legacy = "false";
let current_tab = vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].next_tab_name;
if( ( "undefined" == typeof vm.bookingpress_cart_addon && ( ( true == force_update && typeof vm.v_calendar_time_token_data != "undefined" ) || ( "datetime" == vm.bookingpress_sidebar_step_data[ vm.bookingpress_current_tab ].previous_tab_name && "d" != vm.appointment_step_form_data.selected_service_duration_unit && "datetime" != vm.bookingpress_current_tab && "false" == use_legacy ) ) ) ||( "undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1 && ( ( ( "undefined" != vm.is_staffmember_activated && 1 == vm.is_staffmember_activated && vm.appointment_step_form_data.selected_staff_member_id != 0 ) && ( "undefined" != typeof vm.appointment_step_form_data.selected_service && vm.appointment_step_form_data.selected_service != 0 ) ) && ( "undefined" != typeof vm.appointment_step_form_data.location_activated && 1 == vm.appointment_step_form_data.location_activated && vm.appointment_step_form_data.selected_location != "" ) || cart_force_update != false ) ) ){
let appointment_selected_date = vm.appointment_step_form_data.store_selected_date || vm.appointment_step_form_data.selected_date;
if( "undefined" != typeof vm.appointment_step_form_data.is_next_day && true == vm.appointment_step_form_data.is_next_day && "undefined" != typeof vm.appointment_step_form_data.next_day_selection_date ){
appointment_selected_date = vm.appointment_step_form_data.next_day_selection_date;
}
let selected_token_data = vm.v_calendar_time_token_data[ appointment_selected_date ][0];
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_set_timeslot_token",
tokenData: selected_token_data,
selectedDate: appointment_selected_date,
_wpnonce:bkp_wpnonce_pre_fetch
};
vm.is_bookingpress_updating_token = true;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm.is_bookingpress_updating_token = false;
vm.is_bookingpress_token_updated = true;
}.bind(this) )
.catch( function (error) {
});
}
},
bookingpress_working_dates_data( working_hour_details, response_data ){
const vm = this;
let timeformat = "5";
let is_client_timezone = "";
let updated_working_hour_details = {};
let available_dates = [];
let response = {};
let firstAvailableDate = "";
let overnight_booking = ("undefined" != typeof response_data.overnight_booking_dates ) ? response_data.overnight_booking_dates : [];
let sorted_working_hours = [];
for( let wdate in working_hour_details ){
let x = 0;
let n = 0;
let is_overnight_booking = overnight_booking.includes( wdate ) || false;
let is_overnight_booking_server = is_overnight_booking;
let overnight_booking_date = "";
sorted_working_hours[wdate] = working_hour_details[ wdate ];
sorted_working_hours[wdate].sort( (a,b) => {
return ( parseInt( a.counter_pos ) < parseInt( b.counter_pos ) ) ? -1 : 1;
} );
for( let wh_data of sorted_working_hours[wdate] ){
let start_datetime = wh_data.store_service_date + " " + wh_data.store_start_time;
let end_datetime = wh_data.selected_end_date + " " + wh_data.store_end_time;
let timezone = wh_data.store_offset;
let stTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_start_time, wh_data, "start" );
wh_data.client_start_time = stTime;
let etTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_end_time, wh_data, "end" );
wh_data.client_end_time = etTime;
if( false == is_overnight_booking ){
is_overnight_booking = wp.hooks.applyFilters( "bookingpress_consider_overnight_booking", is_overnight_booking, wh_data );
}
let stTimeNew = wp.hooks.applyFilters( "bookingpress_modify_datetime_with_timezone", start_datetime, wh_data, "start", true );
let etTimeNew = wp.hooks.applyFilters( "bookingpress_modify_datetime_with_timezone", end_datetime, wh_data, "end", true );
let updated_wdate;
if( "string" == typeof stTimeNew ){
updated_wdate = wdate;
} else {
updated_wdate = stTimeNew.toISOString().split("T")[0];
}
let updated_edate;
if( "string" == typeof etTimeNew ){
updated_edate = wh_data.selected_end_date;
} else {
updated_edate = etTimeNew.toISOString().split("T")[0];
}
if( "undefined" != typeof wh_data.is_day_service && true == wh_data.is_day_service ){
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] && updated_wdate >= vm.jsCurrentDate.toISOString().split("T")[0] ){
updated_working_hour_details[ updated_wdate ] = [];
if( false == is_overnight_booking && !available_dates.includes( updated_wdate + " 00:00:00" ) ){
available_dates.push( updated_wdate + " 00:00:00" );
}
n++;
} else {
continue;
}
} else {
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] ){
updated_working_hour_details[ updated_wdate ] = [];
if( false == is_overnight_booking && !available_dates.includes( updated_wdate + " 00:00:00" ) ){
available_dates.push( updated_wdate + " 00:00:00" );
}
n++;
}
}
if( "" == firstAvailableDate ){
firstAvailableDate = ( "undefined" != typeof response_data.pre_selected_date && true == response_data.pre_selected_date && "undefined" != typeof vm.open_customer_reschedule_appointment_modal && true == vm.open_customer_reschedule_appointment_modal ) ? response_data.selected_date : updated_wdate;
}
wh_data.client_date = updated_wdate;
wh_data.client_end_date = updated_edate;
if( true == is_overnight_booking && "" == overnight_booking_date ){
overnight_booking_date = updated_wdate;
if( "undefined" == typeof updated_working_hour_details[ overnight_booking_date ] ){
updated_working_hour_details[ overnight_booking_date ] = [];
}
}
wh_data.is_both_next_day_time_v2 = false;
if( true == is_overnight_booking ){
if( "true" == is_client_timezone ){
wh_data.is_next_day = false;
}
if( updated_edate > updated_wdate ){
wh_data.is_next_day = true;
}
if( updated_edate == updated_wdate && updated_wdate > overnight_booking_date ){
wh_data.is_both_next_day_time_v2 = true;
wh_data.is_overnight_booking_server = is_overnight_booking_server;
wh_data.is_next_day = true;
wh_data.client_date = wh_data.client_end_date;
}
}
if( true == wh_data.is_both_next_day_time && wh_data.client_end_date > wh_data.client_date ){
wh_data.client_date = wh_data.client_end_date;
}
let startTimeHour = stTime.split(":")[0];
let formatted_startTime = vm.bookingpress_format_time( stTime );
let formatted_endTime = vm.bookingpress_format_time( etTime );
let formatted_datetime = formatted_startTime + " - " + formatted_endTime;
if( "1" == timeformat || "2" == timeformat ){
formatted_datetime = formatted_startTime + " naar " + formatted_endTime;
} else if ( "5" == timeformat || "6" == timeformat ){
formatted_datetime = formatted_startTime + " - " + formatted_endTime;
} else if( "3" == timeformat || "4" == timeformat ){
formatted_datetime = formatted_startTime;
}
wh_data.formatted_start_time = formatted_startTime;
wh_data.formatted_end_time = formatted_endTime;
wh_data.formatted_start_end_time = formatted_datetime;
wh_data.start_hour = startTimeHour;
wh_data.slot_timestamp = new Date( `${wh_data.client_date} ${wh_data.client_start_time}` ).getTime();
if( true == is_overnight_booking ){
if( "undefined" != typeof updated_working_hour_details[ overnight_booking_date ][x] && x == 0){
x = Object.keys( updated_working_hour_details[ overnight_booking_date ] ).length;
}
updated_working_hour_details[ overnight_booking_date ][x] = wh_data;
if( !available_dates.includes( overnight_booking_date + " 00:00:00" ) ){
available_dates.push( overnight_booking_date + " 00:00:00" );
}
} else {
if( "undefined" != typeof updated_working_hour_details[ updated_wdate ][x] && x == 0){
x = Object.keys( updated_working_hour_details[ updated_wdate ] ).length;
}
updated_working_hour_details[ updated_wdate ][x] = wh_data;
}
x++;
}
}
available_dates = wp.hooks.applyFilters( "bookingpress_modify_available_dates_with_day_service", available_dates, working_hour_details, response_data, vm );
firstAvailableDate = wp.hooks.applyFilters( "bookingpress_modify_first_available_date_with_day_service", firstAvailableDate, available_dates, vm );
response.available_dates = available_dates;
response.updated_working_hour_details = updated_working_hour_details;
response.selected_date = firstAvailableDate;
return response;
},
bookingpress_working_dates_data_legacy( working_hour_details, response_data ){
const vm = this;
let timeformat = "5";
let updated_working_hour_details = {};
let available_dates = [];
let response = {};
let firstAvailableDate = "";
for( let wdate in working_hour_details ){
let x = 0;
let n = 0;
for( let wh_data of working_hour_details[ wdate ] ){
let start_datetime = wh_data.store_service_date + " " + wh_data.store_start_time;
let end_datetime = wh_data.store_service_date + " " + wh_data.store_end_time;
let timezone = wh_data.store_offset;
let stTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_start_time, wh_data, "start" );
wh_data.client_start_time = stTime;
let etTime = wp.hooks.applyFilters( "bookingpress_modify_time_with_timezone", wh_data.store_end_time, wh_data, "end" );
wh_data.client_end_time = etTime;
let updated_wdate = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", wdate, wh_data );
let updated_edate = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", wh_data.selected_end_date, wh_data );
if( "undefined" != typeof wh_data.is_day_service && true == wh_data.is_day_service ){
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] && updated_wdate >= vm.jsCurrentDate.toISOString().split("T")[0] ){
updated_working_hour_details[ updated_wdate ] = [];
available_dates.push( updated_wdate + " 00:00:00" );
n++;
} else {
continue;
}
} else {
if( "undefined" == typeof updated_working_hour_details[ updated_wdate ] ){
updated_working_hour_details[ updated_wdate ] = [];
available_dates.push( updated_wdate + " 00:00:00" );
n++;
}
}
if( "" == firstAvailableDate ){
firstAvailableDate = updated_wdate;
}
wh_data.client_date = updated_wdate;
wh_data.client_end_date = updated_edate;
let startTimeHour = stTime.split(":")[0];
let formatted_startTime = vm.bookingpress_format_time( stTime );
let formatted_endTime = vm.bookingpress_format_time( etTime );
let formatted_datetime = formatted_startTime + " - " + formatted_endTime;
if( "1" == timeformat || "2" == timeformat ){
formatted_datetime = formatted_startTime + "naar" + formatted_endTime;
} else if ( "5" == timeformat || "6" == timeformat ){
formatted_datetime = formatted_startTime + " - " + formatted_endTime;
} else if( "3" == timeformat || "4" == timeformat ){
formatted_datetime = formatted_startTime;
}
wh_data.formatted_start_time = formatted_startTime;
wh_data.formatted_end_time = formatted_endTime;
wh_data.formatted_start_end_time = formatted_datetime;
wh_data.start_hour = startTimeHour;
updated_working_hour_details[ updated_wdate ][x] = wh_data;
x++;
}
}
available_dates = wp.hooks.applyFilters( "bookingpress_modify_available_dates_with_day_service", available_dates, working_hour_details, response_data, vm );
firstAvailableDate = wp.hooks.applyFilters( "bookingpress_modify_first_available_date_with_day_service", firstAvailableDate, available_dates, vm );
response.available_dates = available_dates;
response.updated_working_hour_details = updated_working_hour_details;
response.selected_date = firstAvailableDate;
return response;
},
bookingpress_disable_date_xhr_v2( bpa_selected_service = "", bpa_selected_date = "", showLoader = true ){
const vm = this;
if( true == showLoader ){
vm.isLoadTimeLoader = "1";
vm.isLoadDateTimeCalendarLoad = "1";
};
let preselect_date = false;
if( "" != bpa_selected_date ){
preselect_date = true;
}
if( "" == bpa_selected_date ){
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
vm.service_timing = "-3";
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if( "" == bpa_selected_service && "" != vm.appointment_step_form_data.selected_service ){
bpa_selected_service = vm.appointment_step_form_data.selected_service;
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ){
vm.appointment_step_form_data.bookingpress_form_token = vm.appointment_step_form_data.bookingpress_uniq_id + "_" + ( Math.random().toString(36).slice(2) );
}
let startTime = new Date().getTime();
var postData = { action: "bookingpress_fetch_timeslot_data", service_id: bpa_selected_service, selected_service:bpa_selected_service, selected_date:bpa_selected_date, is_preselect: preselect_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
vm.no_timeslot_available = false;
vm.v_calendar_check_month_dates = false;
vm.v_calendar_next_month_dates;
vm.days_off_disabled_dates = "";
if(typeof vm.is_display_custom_duration_loader !== "undefined" && typeof vm.is_display_custom_duration_day_loader !== "undefined"){
if(vm.appointment_step_form_data.selected_service_duration_unit == "d" && (vm.is_display_custom_duration_loader == true || vm.is_display_custom_duration_day_loader == true)){
vm.isLoadDateTimeCalendarLoad = "0";
postData.bpa_choose_from_csd = "true";
}
}
if( "true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader ){
postData.bpa_choose_from_csd = true;
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
postData.bpa_choose_from_csd = true;
postData.is_preselect = true;
postData.selected_date = vm.appointment_step_form_data.selected_date;
}
if( "undefined" != typeof vm.appointment_step_form_data.custom_service_duration_value && "" != vm.appointment_step_form_data.custom_service_duration_value ){
postData.bpa_choose_from_csd = true;
}
;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
let request_time = new Date().getTime() - startTime;
/* Changes to add disable dates class start */
if( "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
/* Changes to add disable dates class end */
if(typeof response.data.bookingpress_custom_service_durations_slot !== "undefined"){
vm.bookingpress_custom_service_durations_slot = response.data.bookingpress_custom_service_durations_slot;
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 1;
document.querySelector(".bpa-front--dt__col").style.order = 2;
}
} else {
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 2;
document.querySelector(".bpa-front--dt__col").style.order = 1;
}
}
vm.is_display_custom_duration_loader = false;
vm.is_display_custom_duration_day_loader = false;
let working_hour_details = response.data.working_details;
let selectedDate = response.data.selected_date;
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
let preselected_date = "";
if( "undefined" != typeof response.data.pre_selected_date && true == response.data.pre_selected_date ){
preselected_date = response.data.selected_date;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
vm.appointment_step_form_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
vm.appointment_step_form_data.selected_date = "";
selectedDate = ( "" != preselected_date ) ? preselected_date : ( wh_details.selected_date || selectedDate );
vm.v_calendar_available_dates = wh_details.available_dates;
vm.v_calendar_timeslots_data = wh_details.updated_working_hour_details;
vm.no_timeslot_available = false;
let v_available_dates_only = [];
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
if( !v_available_dates_only.includes( selectedDate ) && wh_details.selected_date != selectedDate && wh_details.selected_date != "" ){
selectedDate = wh_details.selected_date;
}
vm.v_calendar_available_only_date = v_available_dates_only;
if( "undefined" != typeof selectedDate && "" != selectedDate ){
(function( $ref_ ){
setTimeout(function(){
vm.appointment_step_form_data.selected_date = selectedDate;
vm.bookingpress_select_multi_day_range();
if( "undefined" != typeof $ref_.bkp_front_calendar ){
const calendar = $ref_.bkp_front_calendar;
try{
calendar.move( selectedDate );
} catch( e ){
console.log( e );
}
}
if( "undefined" != typeof $ref_.bkp_front_calendar_responsive ){
const calendar_r = $ref_.bkp_front_calendar_responsive;
try{
calendar_r.move( selectedDate );
} catch( e ){
console.log( e );
}
}
},10);
})( this.$refs );
}
/* V-date-picker attributes */
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_default_label = response.data.max_capacity_capacity;
let vcal_capacity_attrs = response.data.vcal_capacity_attrs;
if( "undefined" != typeof vcal_capacity_attrs && vcal_capacity_attrs.length != "" ){
for( let vcal_date_v2 in vcal_capacity_attrs ){
let vcal_data_v2 = vcal_capacity_attrs[ vcal_date_v2 ];
vcal_date_v2 = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date_v2, {"store_service_date":vcal_date_v2,"store_start_time":"00:00:00","store_offset":"+01:00"} );
if( "0" == vcal_data_v2 ){
vm.v_calendar_blocked_dates.push( vcal_date_v2 );
}
}
}
/* V-date-picker attributes */
vm.v_calendar_default_label = response.data.max_capacity_capacity;
vm.v_calendar_time_token_data = response.data.working_hour_timing_token;
if( "undefined" != typeof wh_details.updated_working_hour_details[ selectedDate ] ){
vm.service_timing = vm.bookingpress_categories_timeslots( wh_details.updated_working_hour_details[ selectedDate ] );
} else {
vm.service_timing = {
"morning_time":[],
"afternoon_time":[],
"evening_time":[],
"night_time":[]
};
vm.no_timeslot_available = true;
}
if( vm.current_screen_size != "desktop" && vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.displayResponsiveCalendar = 0;
}
vm.isLoadTimeLoader = "0";
vm.isLoadDateTimeCalendarLoad = "0";
if( "undefined" == typeof response.data.stop_check || false == response.data.stop_check ){
vm.bookingpress_retrieve_future_month_details( response.data.next_month_date, 1 );
}
setTimeout(function(){
if( "undefined" != typeof vm.is_bookingpress_token_updated && true == vm.is_bookingpress_token_updated ){
// condition update
if( ("undefined" != typeof vm.bookingpress_cart_addon && vm.bookingpress_cart_addon == 1) && ( "undefined" != typeof vm.is_staffmember_activated || 1 != vm.is_staffmember_activated && ( vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "staffmembers") || (vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && vm.appointment_step_form_data.bpa_datetime_after_service_selection == 1))) && ( "undefined" != typeof vm.is_staffmember_activated || 1 != vm.is_staffmember_activated && "undefined" != typeof vm.appointment_step_form_data.location_activated || 1 != vm.appointment_step_form_data.location_activated && vm.bookingpress_sidebar_step_data.service.is_first_step == 1 && vm.bookingpress_sidebar_step_data.datetime.next_tab_name == "location" ) ){
vm.bookingpress_update_timestep_token( true, true );
} else {
vm.bookingpress_update_timestep_token( true );
}
}
},10);
setTimeout(() => {
vm.focusFirstDate();
if( "undefined" != typeof working_hour_details && working_hour_details.length == 0){
let focusCancelBtn = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa-front-dc--footer button");
if(focusCancelBtn !== null){
focusCancelBtn.focus();
}
}
const unavailable_date_calendar_input = document.querySelector(".el-form-item .bpa-unavailable-popup-datepicker .el-input__inner");
if(unavailable_date_calendar_input !== null){
unavailable_date_calendar_input.focus();
}
}, 500);
if( "undefined" != typeof selectedDate ){
let selected_date = selectedDate.split(" ")[0];
let timeslot_data = vm.v_calendar_timeslots_data[ selected_date ];
if( "undefined" != typeof timeslot_data ){
vm.appointment_step_form_data.store_service_date = timeslot_data[0].store_service_date;
vm.appointment_step_form_data.store_selected_date = timeslot_data[0].store_service_date;
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_future_month_details( next_month_date = "", counter = 1 ){
const vm = this;
let startDate = next_month_date != "" ? next_month_date : vm.v_calendar_available_dates.at(-1);
if( 4 == counter ){
vm.v_calendar_check_month_dates = true;
vm.v_calendar_next_month_dates = next_month_date;
vm.isHoldBookingRequest = false;
return false;
} else {
vm.isHoldBookingRequest = true;
}
let postData = {
action: "bookingpress_retrieve_entire_month_details",
from_date: startDate,
counter: counter
};
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
postData._wpnonce = bkp_wpnonce_pre_fetch;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
if( ("true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader) || ( "undefined" != typeof vm.bpa_choose_from_csd && true == vm.bpa_choose_from_csd ) ){
postData.bpa_choose_from_csd = true;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof postData.bpa_choose_from_csd ){
vm.bpa_choose_from_csd = true;
}
let working_hour_details = response.data.working_details
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
vm.v_calendar_available_dates = vm.v_calendar_available_dates.concat( wh_details.available_dates );
vm.v_calendar_time_token_data = Object.assign( {},vm.v_calendar_time_token_data, response.data.working_hour_timing_token );
let v_available_dates_only = [];
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
let vcal_capacity_attrs = response.data.vcal_capacity_attrs;
if( "undefined" != typeof vcal_capacity_attrs && vcal_capacity_attrs.length != "" ){
for( let vcal_date_v2 in vcal_capacity_attrs ){
let vcal_data_v2 = vcal_capacity_attrs[ vcal_date_v2 ];
vcal_date_v2 = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date_v2, {"store_service_date":vcal_date_v2,"store_start_time":"00:00:00","store_offset":"+01:00"} );
if( "0" == vcal_data_v2 ){
vm.v_calendar_blocked_dates.push( vcal_date_v2 );
}
}
}
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
vm.v_calendar_available_only_date = v_available_dates_only;
vm.v_calendar_timeslots_data = Object.assign({},vm.v_calendar_timeslots_data, wh_details.updated_working_hour_details );
vm.isLoadDateTimeCalendarLoad = 0;
++counter;
counter = wp.hooks.applyFilters( "bookingpress_modify_next_month_check_counter", counter, response.data );
if( "undefined" == typeof response.data.stop_check || response.data.stop_check == false ){
vm.bookingpress_retrieve_future_month_details( response.data.next_month_date, counter );
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_future_month_details_single( next_month_date = "", next_month_dates = "", counter = 1 ){
const vm = this;
let startDate = next_month_date != "" ? next_month_date : vm.v_calendar_available_dates.at(-1);
vm.v_calendar_check_month_dates = true;
vm.v_calendar_next_month_dates = next_month_date;
vm.isHoldBookingRequest = false;
let postData = {
action: "bookingpress_retrieve_entire_month_details",
from_date: startDate,
counter: counter
};
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
postData._wpnonce = bkp_wpnonce_pre_fetch;
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
if( ("true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader) || ( "undefined" != typeof vm.bpa_choose_from_csd && true == vm.bpa_choose_from_csd ) ){
postData.bpa_choose_from_csd = true;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof postData.bpa_choose_from_csd ){
vm.bpa_choose_from_csd = true;
}
let working_hour_details = response.data.working_details
let wh_details = vm.bookingpress_working_dates_data( working_hour_details, response.data );
vm.v_calendar_available_dates = vm.v_calendar_available_dates.concat( wh_details.available_dates );
vm.v_calendar_time_token_data = Object.assign( {},vm.v_calendar_time_token_data, response.data.working_hour_timing_token );
let v_available_dates_only = [];
vm.v_calendar_available_dates.forEach( function( i,e ){
v_available_dates_only.push( i.split(" ")[0] );
});
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_date = wp.hooks.applyFilters( "bookingpress_modify_date_with_timezone", vcal_date, {"store_service_date":vcal_date,"store_start_time":"00:00:00","store_offset":"+01:00"} );
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_available_only_date = v_available_dates_only;
vm.v_calendar_timeslots_data = Object.assign({},vm.v_calendar_timeslots_data, wh_details.updated_working_hour_details );
vm.isLoadDateTimeCalendarLoad = 0;
vm.bookingpress_retrieve_future_month_details( next_month_dates, counter );
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_format_time(value){
var default_time_format = "HH:mm";
return moment(String(value), "HH:mm:ss").locale("nl_NL").format(default_time_format)
},
bookingpress_categories_timeslots( timeslot_details ){
let afternoon_slot_timings = parseInt( "12" );
let evening_slot_timings = parseInt( "18" );
let night_slot_timings = parseInt( "" );
if( "undefined" == typeof timeslot_details ){
return {};
}
let service_timings_data = {
"morning_time":[],
"afternoon_time":[],
"evening_time":[],
"night_time":[]
};
let x = 0;
for( let timeslot_data of timeslot_details ){
if( "undefined" != typeof timeslot_data && ( "undefined" == typeof timeslot_data.is_next_day || timeslot_data.is_next_day == false) ){
let startHour = parseInt( timeslot_data.start_hour );
if( startHour >= 0 && startHour < afternoon_slot_timings ){
service_timings_data.morning_time.push( timeslot_data );
} else if( startHour >= afternoon_slot_timings && ( "" == evening_slot_timings || startHour < evening_slot_timings ) ){
service_timings_data.afternoon_time.push( timeslot_data );
} else if ( startHour >= evening_slot_timings && ( "" == night_slot_timings || startHour < night_slot_timings ) ){
service_timings_data.evening_time.push( timeslot_data );
} else {
service_timings_data.night_time.push( timeslot_data );
}
x++;
}
}
if( timeslot_details.length > x ){
for( let timeslot_data of timeslot_details ){
if( "undefined" != typeof timeslot_data && "undefined" != typeof timeslot_data.is_next_day && timeslot_data.is_next_day == true ){
let startHour = parseInt( timeslot_data.start_hour );
service_timings_data.night_time.push( timeslot_data );
}
}
}
let sorted_timings_data = {};
for( let timing_item in service_timings_data ){
let timing_details = Object.assign( [], service_timings_data[ timing_item ] );
timing_details.sort( ( a, b ) => {
return ( parseInt( a.slot_timestamp ) < parseInt( b.slot_timestamp ) ) ? -1 : 1;
});
sorted_timings_data[ timing_item ] = timing_details;
}
return sorted_timings_data;
},
bookingpress_disable_date_xhr( bpa_selected_service = "", bpa_selected_date = "", showLoader = true ){
const vm = this;
if( true == showLoader ){
vm.isLoadTimeLoader = "1";
vm.isLoadDateTimeCalendarLoad = "1";
}
vm.service_timing = "-3";
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if( "" == bpa_selected_service && "" != vm.appointment_step_form_data.selected_service ){
bpa_selected_service = vm.appointment_step_form_data.selected_service;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
vm.appointment_step_form_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
if( typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ){
vm.appointment_step_form_data.bookingpress_form_token = vm.appointment_step_form_data.bookingpress_uniq_id + "_" + ( Math.random().toString(36).slice(2) );
}
var postData = { action: "bookingpress_get_disable_date", service_id: bpa_selected_service, selected_service:bpa_selected_service, selected_date:bpa_selected_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch };
postData.disabled_dates = JSON.stringify( vm.v_calendar_disable_dates );
postData.appointment_data_obj = JSON.stringify(vm.appointment_step_form_data);
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
vm.no_timeslot_available = false;
vm.v_calendar_check_month_dates = false;
vm.v_calendar_next_month_dates = {};
vm.days_off_disabled_dates = "";
if(typeof vm.is_display_custom_duration_loader !== "undefined" && typeof vm.is_display_custom_duration_day_loader !== "undefined"){
if(vm.appointment_step_form_data.selected_service_duration_unit == "d" && (vm.is_display_custom_duration_loader == true || vm.is_display_custom_duration_day_loader == true)){
vm.isLoadDateTimeCalendarLoad = "0";
postData.bpa_choose_from_csd = "true";
}
}
if( "true" == vm.is_display_custom_duration_loader || true == vm.is_display_custom_duration_loader ){
postData.bpa_choose_from_csd = true;
}
if( "undefined" != typeof vm.bpa_skip_loading_csd_slot && true == vm.bpa_skip_loading_csd_slot ){
postData.bpa_choose_from_csd = true;
postData.is_preselect = true;
postData.selected_date = vm.appointment_step_form_data.selected_date;
}
if( "undefined" != typeof vm.appointment_step_form_data.custom_service_duration_value && "" != vm.appointment_step_form_data.custom_service_duration_value ){
postData.bpa_choose_from_csd = true;
}
;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
vm.service_timing = [];
if(response.data.variant == "success" && (response.data.selected_date != undefined && response.data.days_off_disabled_dates != undefined)){
/* Changes to add disable dates class start */
if( "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
/* Changes to add disable dates class end */
if(typeof response.data.bookingpress_custom_service_durations_slot !== "undefined"){
vm.bookingpress_custom_service_durations_slot = response.data.bookingpress_custom_service_durations_slot;
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 1;
document.querySelector(".bpa-front--dt__col").style.order = 2;
}
} else {
if (null != document.querySelector(".bpa-front-dt__timeslot-col")) {
document.querySelector(".bpa-front-dt__timeslot-col").style.order = 2;
document.querySelector(".bpa-front--dt__col").style.order = 1;
}
}
vm.is_display_custom_duration_loader = false;
vm.is_display_custom_duration_day_loader = false;
vm.days_off_disabled_dates = "";
/*V-Calendar disabled dates change start*/
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
vm.v_calendar_disable_dates = [];
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
/*V-Calendar disabled dates change end*/
let use_legacy = "false";
let pro_version = "false";
if( "true" == use_legacy && "false" == pro_version ){
let min_date = vm.jsCurrentDate;
let max_date = vm.booking_cal_maxdate;
let loop = new Date( min_date );
let available_dates = [];
while( loop <= max_date ){
let dt = loop.toISOString().split("T")[0] + " 00:00:00";
if( dt.indexOf( vm.v_calendar_disable_dates ) == -1 ){
available_dates.push( dt );
}
loop.setDate( loop.getDate() + 1 );
}
vm.v_calendar_available_dates = available_dates;
}
let resp_selected_date = response.data.selected_date;
if( vm.current_screen_size != "desktop" && vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.displayResponsiveCalendar = 0;
}
/* V-date-picker attributes */
let vcal_attributes = response.data.vcal_attributes;
if( "undefined" != typeof vcal_attributes && vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
vm.v_calendar_attributes = vcal_attr_data;
vm.v_calendar_attributes_current = Object.assign( {}, vm.v_calendar_attributes_current, vcal_attr_data_current );
}
vm.v_calendar_default_label = response.data.max_capacity_capacity;
/* V-date-picker attributes */
vm.days_off_disabled_dates = response.data.days_off_disabled_dates;
vm.appointment_step_form_data.selected_date = response.data.selected_date;
vm.bookingpress_select_multi_day_range();
if( "undefined" != typeof response.data.front_timings ){
vm.service_timing = response.data.front_timings;
if( response.data.front_timings.length <= 0 ){
vm.no_timeslot_available = true;
}
}
if( "undefined" != typeof this.$refs.bkp_front_calendar ){
const calendar = this.$refs.bkp_front_calendar;
calendar.move(vm.appointment_step_form_data.selected_date);
}
vm.isLoadTimeLoader = "0";
if( "undefined" != typeof response.data.empty_front_timings && true == response.data.empty_front_timings ){
vm.isLoadDateTimeCalendarLoad = "1";
vm.appointment_step_form_data.selected_date = response.data.next_available_date;
vm.bookingpress_disable_date( bpa_selected_service, response.data.next_available_date );
return;
} else {
/* Check full day appointments block */
if( false == response.data.prevent_next_month_check ){
let postDataAction = "bookingpress_get_whole_day_appointments";
if( true == response.data.check_for_multiple_days_event ){
postDataAction = "bookingpress_get_whole_day_appointments_multiple_days";
}
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: postDataAction,days_off_disabled_dates: vm.days_off_disabled_dates, service_id: bpa_selected_service, max_available_year: response.data.max_available_year, max_available_month:response.data.max_available_month, selected_service:bpa_selected_service, selected_date:bpa_selected_date, service_id:bpa_selected_service,_wpnonce:bkp_wpnonce_pre_fetch, "next_month": response.data.next_month, "next_year": response.data.next_year, "counter": 1 };
postData.bpa_change_store_date = false;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
postData.client_timezone_offset = vm.bookingpress_timezone_offset;
postData.bpa_change_store_date = true;
}
postData.appointment_data_obj = JSON.stringify( vm.appointment_step_form_data );
postData.staffmember_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( vm.bookingpress_is_extra_enable == 1 ){
postData.service_extra_details = vm.appointment_step_form_data.bookingpress_selected_extra_details;
};
vm.bookingpress_retrieve_daysoff_for_booked_appointment( postData );
}
setTimeout(function(){
vm.isLoadDateTimeCalendarLoad = "0"
},200);
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_retrieve_daysoff_for_booked_appointment( postData ){
const vm = this;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) ).then( function( response ) {
vm.days_off_disabled_dates = response.data.days_off_disabled_dates;
vm.isLoadDateTimeCalendarLoad = 0;
if(false == response.data.prevent_next_month_check && response.data.counter <= 3 ){ /** Currently data will be checked for next 3 months */
postData.days_off_disabled_dates = vm.days_off_disabled_dates;
postData.next_month = response.data.next_month;
postData.next_year = response.data.next_year;
postData.counter++;
if( postData.counter < 4 ){
vm.isHoldBookingRequest = true;
vm.bookingpress_retrieve_daysoff_for_booked_appointment( postData );
} else {
vm.v_calendar_check_month_dates = true;
let next_month_year = {
"month": parseInt( response.data.next_month ),
"year": response.data.next_year,
"postData": postData
};
vm.v_calendar_next_month_dates = next_month_year;
vm.isHoldBookingRequest = false;
}
/* V-Calendar disabled dates change start */
if( "" != response.data.days_off_disabled_dates_string ){
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date ){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
let use_legacy = "false";
let pro_version = "false";
if( "true" == use_legacy && "false" == pro_version ){
let min_date = vm.jsCurrentDate;
let max_date = vm.booking_cal_maxdate;
let loop = new Date( min_date );
let available_dates = [];
while( loop <= max_date ){
let dt = loop.toISOString().split("T")[0] + " 00:00:00";
if( dt.indexOf( vm.v_calendar_disable_dates ) == -1 ){
available_dates.push( dt );
}
loop.setDate( loop.getDate() + 1 );
}
vm.v_calendar_available_dates = available_dates;
}
}
/* V-Calendar disabled dates change end */
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.vcal_attributes ){
let vcal_attributes = response.data.vcal_attributes;
vm.bookingpress_select_multi_day_range();
if( vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
if( vm.v_calendar_attributes.length > 0 ){
vm.v_calendar_attributes = vm.v_calendar_attributes.concat( vcal_attr_data );
} else {
vm.v_calendar_attributes = vcal_attr_data;
}
if( "" != vm.v_calendar_attributes_current ){
let joined_cal_attr_current = { ...vm.v_calendar_attributes_current, ...vcal_attr_data_current };
vm.v_calendar_attributes_current = joined_cal_attr_current;
} else {
vm.v_calendar_attributes_current = vcal_attr_data_current;
}
}
}
} else {
/* V-Calendar disabled dates change start */
if( "" != response.data.days_off_disabled_dates_string ){
let bpa_disable_date = response.data.days_off_disabled_dates_string.split(",");
for( let temp_date in bpa_disable_date ){
let disabled_date = bpa_disable_date[temp_date];
if( "string" != typeof disabled_date ){
continue;
}
if( "undefined" != typeof vm.browser_details && "safari" == vm.browser_details && 16 > vm.browser_version ){
let disable_date_data = disabled_date.split(" ");
vm.v_calendar_disable_dates.push( disable_date_data[0] );
} else {
vm.v_calendar_disable_dates.push( disabled_date );
}
}
}
/* V-Calendar disabled dates change end */
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.booking_before_block_dates ){
var booking_before_block_dates = response.data.booking_before_block_dates.split(",");
if( booking_before_block_dates.length != "" && booking_before_block_dates.length != 0){
for( let d in booking_before_block_dates ){
let booking_before_block_date = booking_before_block_dates[d];
vm.bookingpress_booking_before_block_date.push( booking_before_block_date );
}
}
}
if( postData.action == "bookingpress_get_whole_day_appointments_multiple_days" && "undefined" != typeof response.data.vcal_attributes ){
let vcal_attributes = response.data.vcal_attributes;
vm.bookingpress_select_multi_day_range();
if( vcal_attributes.length != "" ){
let vcal_attr_data = [];
let vcal_attr_data_current = {};
let k = 1;
for( let vcal_date in vcal_attributes ){
let vcal_data = vcal_attributes[ vcal_date ];
vcal_attr_data_current[ vcal_date ] = vcal_data;
let vcal_attr_obj = {
key: k,
dates: vcal_date,
customData:{
title: vcal_data
}
};
vcal_attr_data.push( vcal_attr_obj );
k++;
}
if( vm.v_calendar_attributes.length > 0 ){
vm.v_calendar_attributes = vm.v_calendar_attributes.concat( vcal_attr_data );
} else {
vm.v_calendar_attributes = vcal_attr_data;
}
if( "" != vm.v_calendar_attributes_current ){
let joined_cal_attr_current = { ...vm.v_calendar_attributes_current, ...vcal_attr_data_current };
vm.v_calendar_attributes_current = joined_cal_attr_current;
} else {
vm.v_calendar_attributes_current = vcal_attr_data_current;
}
}
}
}
});
},
bpaMoveMonthResponsive( page ){
const vm = this;
if( "undefined" != typeof vm.v_calendar_check_month_dates && true == vm.v_calendar_check_month_dates && "undefined" != typeof vm.v_calendar_next_month_dates && false == vm.isHoldBookingRequest ){
let current_month = page.month;
let current_year = page.year;
let next_page_month = parseInt( vm.v_calendar_next_month_dates.split("-")[1] ) || null;
let next_page_year = parseInt( vm.v_calendar_next_month_dates.split("-")[0] ) || null;
if( null != next_page_month && null != next_page_year ){
if( current_year == next_page_year && current_month == next_page_month ){
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, 1 );
} else if( (current_year == next_page_year && current_month > next_page_month) || current_year > next_page_year ){
let current_date = new Date( `${current_year}-${current_month}-1` );
let next_page_date = new Date( `${next_page_year}-${next_page_month}-1` );
const monthDiff = current_date.getMonth() - next_page_date.getMonth();
counter = 0 - monthDiff;
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, counter );
}
setTimeout(() => {
vm.focusFirstDate();
}, 500);
}
}
},
bpaMoveMonth( page ){
const vm = this;
if( "undefined" != typeof vm.v_calendar_check_month_dates && true == vm.v_calendar_check_month_dates && "undefined" != typeof vm.v_calendar_next_month_dates && false == vm.isHoldBookingRequest ){
let current_month = page.month;
let current_year = page.year;
let next_page_month = parseInt( vm.v_calendar_next_month_dates.split("-")[1] ) || null;
let next_page_year = parseInt( vm.v_calendar_next_month_dates.split("-")[0] ) || null;
if( null != next_page_month && null != next_page_year ){
if( current_year == next_page_year && current_month == next_page_month ){
vm.isLoadDateTimeCalendarLoad = 1;
vm.bookingpress_retrieve_future_month_details( vm.v_calendar_next_month_dates, 1 );
} else if( (current_year == next_page_year && current_month > next_page_month) || current_year > next_page_year ){
let current_date = new Date( `${current_year}-${current_month}-1` );
let next_page_date = new Date( `${next_page_year}-${next_page_month}-1` );
const monthDiff = current_date.getMonth() - next_page_date.getMonth();
let month_ = ( current_month.toString().length == 1 ) ? ( "0" + current_month.toString() ) : current_month;
let nextMonthDate = current_year + "-" + month_ + "-01";
counter = 0 - monthDiff;
vm.isLoadDateTimeCalendarLoad = 1;
vm.bookingpress_retrieve_future_month_details_single( nextMonthDate, vm.v_calendar_next_month_dates, counter );
}
}
}
},
bookingpress_get_all_parent_node_with_overflow_hidden( elem ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
let computed_style = getComputedStyle( elem );
if( computed_style.overflow == "hidden" || computed_style.overflowX == "hidden" || computed_style.overflowY == "hidden" ){
parents.push(elem);
}
}
return parents;
},
bookingpress_onload_func(){
const vm = this;
vm.current_screen_size = "desktop";
if(window.outerWidth >= 1200){
vm.current_screen_size = "desktop";
}else if(window.outerWidth < 1200 && window.outerWidth >= 768){
vm.current_screen_size = "tablet";
}else if(window.outerWidth < 768){
vm.current_screen_size = "mobile";
}
let is_mobile_device = "";
if( "mobile" != vm.current_screen_size && ("true" == is_mobile_device || true == is_mobile_device) ){
vm.current_screen_size = "mobile";
}
if(window.innerWidth <= 576){
vm.bookingpress_container_dynamic_class = "";
let bookingpress_container = vm.$el;
let parents_with_hidden_overflow = vm.bookingpress_get_all_parent_node_with_overflow_hidden( bookingpress_container );
let apply_overflow = ( parents_with_hidden_overflow.length > 0 ) ? true : false;
window.addEventListener("scroll", function(e){
let bookingpress_scrollTop = bookingpress_container.getBoundingClientRect().top;
let bookingpress_scrollBottom = bookingpress_container.getBoundingClientRect().bottom;
let bpa_current_scroll = window.scrollY;
let targetBottom = bookingpress_container.getBoundingClientRect().bottom;
let viewportHeight = window.innerHeight || document.documentElement.clientHeight;
if( bookingpress_scrollTop < 50 && bpa_current_scroll >= bookingpress_scrollTop && targetBottom >= viewportHeight ){
vm.bookingpress_container_dynamic_class = "bpa-front__mc--is-sticky" ;
vm.bookingpress_footer_dynamic_class = "__bpa-is-sticky"; /* Change this string */
if( apply_overflow ){
for( let i = 0; i < parents_with_hidden_overflow.length; i++ ){
let parent = parents_with_hidden_overflow[i];
parent.classList.add("--bpa-is-overflow-visible");
}
}
} else {
vm.bookingpress_container_dynamic_class = "";
vm.bookingpress_footer_dynamic_class = ""; /* Change this string */
if( apply_overflow ){
for( let i = 0; i < parents_with_hidden_overflow.length; i++ ){
let parent = parents_with_hidden_overflow[i];
parent.classList.remove("--bpa-is-overflow-visible");
}
}
}
});
}
window.addEventListener("resize", function(e){
if( window.innerWidth <= 576 ){
vm.bookingpress_container_dynamic_class = "";
let bookingpress_container = vm.$el;
let bookingpress_scrollTop = bookingpress_container.getBoundingClientRect().top;
let bookingpress_scrollBottom = bookingpress_container.getBoundingClientRect().bottom;
let bpa_current_scroll = window.scrollY;
bookingpress_scrollBottom = bpa_current_scroll + bookingpress_scrollBottom + bookingpress_scrollTop;
let targetBottom = bookingpress_container.getBoundingClientRect().bottom;
let viewportHeight = window.innerHeight || document.documentElement.clientHeight;
if( bookingpress_scrollTop < 50 && bpa_current_scroll >= bookingpress_scrollTop && targetBottom >= viewportHeight ){
vm.bookingpress_container_dynamic_class = "bpa-front__mc--is-sticky";
vm.bookingpress_footer_dynamic_class = "__bpa-is-sticky" /* Change this string */
} else {
vm.bookingpress_container_dynamic_class = "";
vm.bookingpress_footer_dynamic_class = ""; /* Change this string */
}
}
});
},
bookingpress_step_navigation(current_tab, next_tab, previous_tab, is_strict_validate = 1){
const vm = this;
var bookingpress_is_validate = 0;
vm.bookingpress_remove_error_msg();
var bookingpress_validate_fields_arr = vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validate_fields;
if( "staffmembers" == vm.bookingpress_current_tab && "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected && true == vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected ){
is_strict_validate = 0;
}
if("service" == vm.bookingpress_current_tab){
if( vm.bookingpress_is_extra_enable == "1" && typeof vm.appointment_step_form_data.selected_service != "" ){
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if(typeof selected_service_data != "undefined") {
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
bpa_selected_service_extra_count++;
}
}
if("undefined" != selected_service_data.service_extras && "" != selected_service_data.service_extras && bpa_selected_service_extra_count < selected_service_data.bookingpress_min_no_extra_service){
bookingpress_is_validate = 1;
let errorMsg = "Please select at least [x] extra service";
errorMsg = errorMsg.replace("[x]", selected_service_data.bookingpress_min_no_extra_service);
vm.bookingpress_set_extra_service_error_msg(errorMsg);
}
else if("undefined" != selected_service_data.service_extras && "" != selected_service_data.service_extras && bpa_selected_service_extra_count > selected_service_data.bookingpress_max_no_extra_service ){
bookingpress_is_validate = 1;
let errorMsg = "You can select maximum [x] extra services";
errorMsg = errorMsg.replace("[x]", selected_service_data.bookingpress_max_no_extra_service);
vm.bookingpress_set_extra_service_error_msg(errorMsg);
}
}
}
}
if((vm.bookingpress_current_tab == "basic_details") && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
bookingpress_validate_fields_arr.forEach(function(currentValue, index, arr){
if(vm.bookingpress_current_tab == vm.bookingpress_current_tab && vm.appointment_step_form_data[currentValue] == "" && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
});
if(bookingpress_is_validate == 0 && is_strict_validate == 1){
var customer_form = "appointment_step_form_data";
vm.$refs[customer_form].validate((valid) => {
if (!valid) {
bookingpress_is_validate = 1;
}else{
bookingpress_is_validate = 0;
}
});
}
}else{
if(is_strict_validate == 1){
bookingpress_validate_fields_arr.forEach(function(currentValue, index, arr){
if(vm.bookingpress_current_tab == vm.bookingpress_current_tab && vm.appointment_step_form_data[currentValue] == "" && vm.bookingpress_current_tab != next_tab && current_tab != previous_tab){
if( currentValue == "selected_start_time" && vm.appointment_step_form_data[currentValue] == "" ) {
if( vm.appointment_step_form_data.selected_service_duration_unit != "d" ){
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
} else {
vm.bookingpress_set_error_msg(vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].validation_msg[currentValue]);
bookingpress_is_validate = 1;
}
}
});
}
}
if( "service" == current_tab && "service" != vm.bookingpress_current_tab ){
var bookingpress_selected_date = vm.appointment_step_form_data.selected_date+"T00:00:00+00:00";
var bookingpress_disable_dates_arr = vm.days_off_disabled_dates.split(",");
if(bookingpress_disable_dates_arr.includes(bookingpress_selected_date)){
let newDate = new Date("2026-01-16 14:28:54");
let pattern = /(\d{4}\-\d{2}\-\d{2})/;
if( !pattern.test( newDate ) ){
let sel_month = newDate.getMonth() + 1;
let sel_year = newDate.getFullYear();
let sel_date = newDate.getDate();
if( sel_month < 10 ){
sel_month = "0" + sel_month;
}
if( sel_date < 10 ){
sel_date = "0" + sel_date;
}
newDate = sel_year + "-" + sel_month + "-" + sel_date;
}
vm.appointment_step_form_data.selected_date = newDate;
}
}
if( ("basic_details" == current_tab && "service" == vm.bookingpress_current_tab) || ("summary" == current_tab && "service" == vm.bookingpress_current_tab) ){
if(vm.appointment_step_form_data.selected_service_duration_unit != "d"){
if(vm.appointment_step_form_data.selected_start_time == ""){
bookingpress_is_validate = 1;
}
}
}
if(bookingpress_is_validate == 0){
vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].is_allow_navigate = 1;
let current_selected_tab = vm.bookingpress_current_tab;
vm.bookingpress_current_tab = current_tab;
vm.bookingpress_next_tab = next_tab;
vm.bookngpress_previous_tab = previous_tab;
vm.bookingpress_sidebar_step_data[vm.bookingpress_current_tab].is_allow_navigate = 1;
if( "datetime" == current_tab ){
let selected_service_id = vm.appointment_step_form_data.selected_service;
vm.bookingpress_disable_date(selected_service_id,vm.appointment_step_form_data.selected_date);
}
}
if( window.innerWidth <= 576 ){
let container = vm.$el;
let pos = 0;
if( null != container ){
pos = container.getBoundingClientRect().top + window.scrollY;
}
const myVar = Error().stack;
let allow_scroll = true;
if( /mounted/.test( myVar ) ){
allow_scroll = false;
}
if( allow_scroll ){
setTimeout(function(){
window.scrollTo({
top: pos,
behavior: "smooth",
});
}, 500);
}
}
if( "summary" == current_tab && "summary" == vm.bookingpress_current_tab ) {
const vm = this;
var total_payment_div_count = document.querySelectorAll(".bpa-front-module--pm-body__item").length;
if(total_payment_div_count == 1){
var total_payment_div = document.querySelector(".bpa-front-module--pm-body__item");
if( null != total_payment_div && "undefined" != typeof total_payment_div) {
vm.prevent_verification_on_load = true;
total_payment_div.click();
vm.prevent_verification_on_load = false;
}
}
vm.bookingpress_activate_payment_gateway_total_counter = vm.bookingpress_activate_payment_gateway_counter;
if( vm.paypal_payment == "paypal" ){
let total_counter_payment_gateway = vm.bookingpress_activate_payment_gateway_total_counter + 1;
vm.bookingpress_activate_payment_gateway_total_counter = total_counter_payment_gateway;
}
if( total_payment_div_count == 0 && vm.is_only_onsite_enabled == "1" ){
vm.appointment_step_form_data.selected_payment_method = "on-site";
vm.skip_checking_final_step_validation = true;
vm.select_payment_method("on-site");
}
}
if(current_tab == "datetime" || next_tab == "datetime"){
setTimeout(() => {
const custom_duration_select = document.querySelector(".bpa-front-module--date-and-time .bpa-custom-duration-select .el-input__inner");
if(custom_duration_select !== null){
custom_duration_select.focus();
}
vm.focusFirstDate();
window.is_focused = false;
/* const recurring_date_picker = document.querySelector(".bpa-recurring-appointment-head-row .bpa-front-form-control--date-picker .el-input__inner");
if(recurring_date_picker !== null){
recurring_date_picker.focus();
} */
const calendar_btn_mobile = document.querySelector(".bpa-front--dt__ts-sm-back-btn .el-button");
if(calendar_btn_mobile !== null){
calendar_btn_mobile.focus();
}
}, 1000);
}
if(current_tab == "basic_details" || next_tab == "basic_details"){
setTimeout(() => {
document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active")
?.querySelector("input:not([readonly]):not([disabled]):not([type='hidden']), select:not([disabled]), textarea:not([readonly]):not([disabled])")
?.focus();
}, 10);
}
if(next_tab == "summary"){
setTimeout(() => {
let find_first_pg = document.querySelector(".bpa-front-module--payment-methods .bpa-front-module--pm-body__item");
if(find_first_pg !== null){
find_first_pg.focus();
}else {
find_first_pg = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa-front-dc--footer .summery-book-appointment-btn");
if(find_first_pg !== null){
find_first_pg.focus();
}
}
}, 10);
}
if(current_tab == "service" || next_tab == "service"){
setTimeout(() => {
let find_first_service = document.querySelector(".bpa-front-module--service-item .bpa-front-si-card");
if(find_first_service !== null){
find_first_service.focus();
}
}, 10);
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
if (typeof vm.appointment_step_form_data.cart_items == "undefined" || vm.appointment_step_form_data.cart_items.length == 0 ) {
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ];
if( "undefined" != typeof selected_service_data.enable_custom_service_duration && true == selected_service_data.enable_custom_service_duration ){
} else {
let service_extras = selected_service_data.service_extras;
let service_extra_price = 0;
for( let extra_id in service_extras ){
if( "undefined" != typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ] && true == vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_is_selected ){
let extra_price = parseFloat( service_extras[ extra_id ].bookingpress_extra_service_price );
let extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[ extra_id ].bookingpress_selected_qty || 1;
service_extra_price += ( extra_price * extra_qty );
}
}
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
if( true == vm.use_base_price_for_calculation ){
total_payable_amount = vm.appointment_step_form_data.base_price_without_currency;
}
let final_price_with_extra = parseFloat( total_payable_amount ) + parseFloat( service_extra_price );
vm.appointment_step_form_data.service_price_without_currency = final_price_with_extra;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( final_price_with_extra );
}
}
}
if( "summary" == next_tab && "summary" == vm.bookingpress_current_tab && bookingpress_is_validate == 0 ){
let total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
let is_cart = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined") {
if( vm.appointment_step_form_data.bookingpress_cart_total != vm.appointment_step_form_data.bookingpress_cart_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
}
is_cart = true;
}
let is_recurring = false;
if (typeof vm.appointment_step_form_data.is_recurring_appointments != "undefined") {
if(vm.appointment_step_form_data.is_recurring_appointments == true){
if( vm.appointment_step_form_data.bookingpress_recurring_total != vm.appointment_step_form_data.bookingpress_recurring_original_total ){
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_original_total;
} else {
total_payable_amount = vm.appointment_step_form_data.bookingpress_recurring_total;
}
is_recurring = true;
}
}
total_payable_amount = parseFloat( total_payable_amount );
if(typeof vm.appointment_step_form_data.tax_percentage_temp == "undefined"){
vm.appointment_step_form_data.tax_percentage_temp = vm.appointment_step_form_data.tax_percentage;
}
else {
vm.appointment_step_form_data.tax_percentage = vm.appointment_step_form_data.tax_percentage_temp;
}
let tax_percentage = vm.appointment_step_form_data.tax_percentage;
let tax_display_opt = vm.appointment_step_form_data.tax_price_display_options;
/* Country wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
const field_meta_key = Object.keys(vm.appointment_step_form_data.bookingpress_front_field_data).find(key => vm.appointment_step_form_data.bookingpress_front_field_data[key] === vm.appointment_step_form_data.countryselectedField);
if(field_meta_key) {
let meta_key_exists_repeater_field = false;
if(vm.appointment_step_form_data && typeof vm.appointment_step_form_data.bookingpress_repeater_fields_key != undefined){
meta_key_exists_repeater_field = Object.values(vm.appointment_step_form_data.bookingpress_repeater_fields_key).some(nestedObj => field_meta_key in nestedObj);
}
if(!meta_key_exists_repeater_field) {
//if field is not in repeater field then consider tax for that country field.
const form_field_details = vm.appointment_step_form_data.form_fields;
const form_field_value = form_field_details[field_meta_key];
const taxPercentage = vm.appointment_step_form_data.country_wise_tax_details.find(item => item.selectedOption === form_field_value)?.bookingpress_country_wise_tax_per;
if(taxPercentage != "" && typeof taxPercentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(taxPercentage);
tax_percentage = parseFloat(taxPercentage);
}
}
}
}
/* Country wise tax calcualtion */
/* Location wise tax calcualtion */
if(typeof vm.appointment_step_form_data.enable_location_wise_tax != "undefined" && vm.appointment_step_form_data.enable_location_wise_tax == "true"){
let bookingpress_selected_location = "";
if(typeof vm.appointment_step_form_data.selected_location != "undefined" && vm.appointment_step_form_data.selected_location != "" && typeof vm.appointment_step_form_data.location_wise_tax_details != "undefined"){
let bookingpress_selected_location = vm.appointment_step_form_data.selected_location;
const taxDetail = vm.appointment_step_form_data.location_wise_tax_details.find(tax => tax.bookingpress_location_id == vm.appointment_step_form_data.selected_location);
let applied_tax_percentage = taxDetail ? taxDetail.bookingpress_location_tax_percentage : vm.appointment_step_form_data.tax_percentage;
if(applied_tax_percentage != "" && typeof applied_tax_percentage != "undefined") {
vm.appointment_step_form_data.tax_percentage = parseFloat(applied_tax_percentage);
tax_percentage = parseFloat(applied_tax_percentage);
}
}
}
/* Location wise tax calcualtion */
if( "exclude_taxes" == tax_display_opt ){
let calculated_tax_amount = total_payable_amount * ( tax_percentage / 100 );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
let final_tax_amount = total_payable_amount + calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
if( true == is_cart ){
vm.appointment_step_form_data.bookingpress_cart_total = total_payable_amount + calculated_tax_amount;
}
if( true == is_recurring ){
vm.appointment_step_form_data.bookingpress_recurring_total = total_payable_amount + calculated_tax_amount;
}
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
} else {
let calculated_tax_amount = ( parseFloat(total_payable_amount) * parseFloat( tax_percentage ) ) / ( 100 + parseFloat(tax_percentage) );
calculated_tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount, true );
vm.appointment_step_form_data.tax_amount_without_currency = 0;
vm.appointment_step_form_data.tax_amount = vm.bookingpress_price_with_currency_symbol( calculated_tax_amount );
vm.appointment_step_form_data.calculated_tax_amount_org = calculated_tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount;
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true"){
vm.bookingpress_remove_coupon_code();
}
if(typeof vm.appointment_step_form_data.gift_card_code != "undefined" && vm.appointment_step_form_data.gift_card_code != "" && typeof vm.appointment_step_form_data.enable_country_wise_tax != "undefined" && vm.appointment_step_form_data.enable_country_wise_tax == "true" && typeof vm.bookingpress_remove_gift_code === "function" ){
vm.bookingpress_remove_gift_code();
}
}
if((vm.bookingpress_current_tab == "basic_details")){
if(vm.bookingpress_has_password_field == "1"){
if(typeof vm.appointment_step_form_data.form_fields.customer_email != "undefined" && vm.appointment_step_form_data.form_fields.customer_email != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_email);
}
if(typeof vm.appointment_step_form_data.form_fields.customer_username != "undefined" && vm.appointment_step_form_data.form_fields.customer_username != ""){
vm.bpa_check_password_validation(vm.appointment_step_form_data.form_fields.customer_username);
}
}
if( (vm.bookingpress_is_extra_enable == "1" ) ){
let bpa_selected_service_extra_count = 0;
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == true){
let service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price;
let service_extra_qty = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_selected_qty;
if( service_extra_qty != ""){
if(typeof vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] != "undefined"){
service_extra_price = vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"];
}
let bpa_final_extra_price = service_extra_price * service_extra_qty;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key]["bookingpress_extra_price_org"] = service_extra_price;
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_extra_price = vm.bookingpress_price_with_currency_symbol(bpa_final_extra_price);
}
bpa_selected_service_extra_count++;
}
}
vm.appointment_step_form_data.bookingpress_selected_extra_service_count = bpa_selected_service_extra_count;
}
}
if( ( previous_tab == "staffmembers" || ( typeof vm.is_staff_first_step != "undefined" && vm.is_staff_first_step == 1 )) && "service" == current_tab && "true" == vm.appointment_step_form_data.select_any_staffmember && 0 == vm.appointment_step_form_data.selected_staff_member_id && vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime != 1 ){
vm.isLoadServiceLoader = "1";
vm.bookingpress_select_staffmember("any_staff", 1 );
}
if(current_tab == "staffmembers" || next_tab == "staffmembers"){
setTimeout(() => {
let staff_member_first_card = document.querySelector(".bpa-front-module--staff .bpa-front-sm-card");
if(staff_member_first_card !== null){
staff_member_first_card.focus();
}
}, 10);
}
if((vm.bookingpress_is_extra_enable == "0" || vm.bookingpress_service_extras.length == 0 || vm.appointment_step_form_data.is_extra_service_exists == "0") && (vm.is_bring_anyone_with_you_activated == "0" || vm.bookingpress_bring_anyone_with_you_details.length == "0" || parseInt(vm.appointment_step_form_data.service_max_capacity) == "") && (vm.is_staffmember_activated == "0" || vm.appointment_step_form_data.is_staff_exists == "0" || vm.appointment_step_form_data.form_sequence == "staff_selection")){
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
var bpa_selected_staff_from_url = "0";
for(var extra_key in vm.appointment_step_form_data.bookingpress_selected_extra_details){
if(vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected == "true"){
vm.appointment_step_form_data.bookingpress_selected_extra_details[extra_key].bookingpress_is_selected = true;
}
}
var bpa_selected_staff_id = vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id;
if( "summary" == vm.bookingpress_current_tab && "summary" == next_tab && bookingpress_is_validate == 0 ){
/* vm.bookingpress_calculate_service_addons_price(vm.appointment_step_form_data.selected_service); */
vm.bookingpress_get_final_step_amount();
/* vm.bookingpress_recalculate_payable_amount(); */
}
if( "service" == vm.bookingpress_sidebar_step_data[ current_tab ].previous_tab_name ){
document.body.classList.remove( "--bpa-open-advance-drawer" );
}
if( "service" == current_tab && "true" == vm.bookingpress_open_extras_drawer ){
document.body.classList.add( "--bpa-open-advance-drawer" );
}
;
},
bookingpress_select_multi_day_range(day = ""){
const vm = this;
if(vm.appointment_step_form_data.selected_date){
day = vm.appointment_step_form_data.selected_date;
vm.bookingpress_selected_date_range = [];
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_end_date = vm.appointment_step_form_data.selected_date;
var selected_date = new Date(day);
var selected_service_duration = vm.appointment_step_form_data.selected_service_duration;
var bookingpress_selected_date_range = [];
var new_date = new Date(day + " 00:00:00");
bookingpress_selected_date_range.push(day);
for(var i = 1; i < selected_service_duration; i++) {
new_date.setDate(new_date.getDate() + 1);
var month = "" + (new_date.getMonth() + 1),
day = "" + new_date.getDate(),
year = new_date.getFullYear();
if (month.length < 2){
month = "0" + month;
}
if (day.length < 2){
day = "0" + day;
}
var add_date = [year, month, day].join("-");
bookingpress_selected_date_range.push(add_date);
if(i == selected_service_duration-1) {
vm.appointment_step_form_data.selected_end_date = add_date;
}
}
if(bookingpress_selected_date_range.length > 0){
vm.bookingpress_selected_date_range = bookingpress_selected_date_range;
}
}
}
},
async bookingpress_select_multi_staffmember(selected_staffmember_id, is_any_staff_option_selected = 0){
var vm = this;
},
bpa_is_select_multistaff_member(staff_member_id){
var vm = this;
return false;
},
bpa_search_service( value ){
const vm = this;
value = value.toLowerCase();
vm.bpasortedServices.forEach( ( element,index ) =>{
vm.bpasortedServices[index].show_with_search = false;
if( element.bookingpress_service_name.toLowerCase().includes( value ) ){
vm.bpasortedServices[index].show_with_search = true;
}
});
},
bpa_search_staff( value ){
const vm = this;
value = value.toLowerCase();
vm.bookingpress_staffmembers_details.forEach( ( element,index ) => {
vm.bookingpress_staffmembers_details[index].show_with_staff_search = false;
if( (element.bookingpress_staffmember_firstname.toLowerCase().includes( value )) || element.bookingpress_staffmember_lastname.toLowerCase().includes( value ) ){
vm.bookingpress_staffmembers_details[index].show_with_staff_search = true;
}
});
},
bookingpress_validatePhoneField(event) {
this.$nextTick(() => {
if (!this.$refs.appointment_step_form_data) return;
const phoneValue = this.appointment_step_form_data.form_fields.customer_phone;
if (/^[\d\+\s\-\(\)]+$/.test(phoneValue.trim())) {
this.$refs.appointment_step_form_data.clearValidate(["customer_phone"]);
}
});
},
bookingpress_phone_country_open_repeater( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-field-main-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.add("bpa-active-col");
let parent_upper = vm.bookingpress_get_parents( parent[0], ".el-col" );
if( 0 < parent_upper.length && null != parent_upper[0] ){
//parent_upper[0].classList.add("bpa-active-col");
}
}
}
}
},
bookingpress_phone_country_close_repeater( vmodel ){
const vm = this;
if( "" != vmodel ){
let elm = document.querySelector(`div[data-tel-id="${vmodel}"]`);
if( null != elm ){
let parent = vm.bookingpress_get_parents( elm, ".bpa-active-col" );
if( 0 < parent.length && null != parent[0] ){
parent[0].classList.remove("bpa-active-col");
}
}
}
},
bpa_check_space_validation(bpa_input_value,v_modal_data){
var vm = this;
if(bpa_input_value.trim() == ""){
vm.appointment_step_form_data["form_fields"][v_modal_data] = "";
return "";
}
return bpa_input_value;
},
bpa_check_password_validation( bpa_email_value ) {
const vm = this;
if( "undefined" == typeof vm.appointment_step_form_data.form_fields.customer_password || vm.bpa_check_user_login == 1 ){
return;
}
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: "bookingpress_password_validation_check", _wpnonce:bkp_wpnonce_pre_fetch, _email: bpa_email_value };
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "undefined" != typeof response.data.bpa_password_already_exists ){
if( response.data.bpa_password_already_exists == true ){
if(this.$refs.appointment_step_form_data){
this.$refs.appointment_step_form_data.clearValidate("customer_password");
}
vm.appointment_step_form_data.bpa_password_already_exists = true;
vm.customer_details_rule.customer_password[0].required = false;
vm.appointment_step_form_data.bpa_user_email_already_exists = true;
vm.appointment_step_form_data.form_fields["customer_password"] = "";
}
} else {
vm.appointment_step_form_data.bpa_password_already_exists = false;
vm.customer_details_rule.customer_password[0].required = true;
vm.appointment_step_form_data.bpa_user_email_already_exists = false;
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
dayClicked_v2( day ){
const vm = this;
vm.dayClicked( day );
vm.bookingpress_select_multi_day_range( day );
let timeslot_data = vm.v_calendar_timeslots_data[ day.id ];
let max_available_date = vm.booking_cal_maxdate;
;
if( "undefined" != typeof timeslot_data ){
vm.appointment_step_form_data.store_service_date = timeslot_data[0].store_service_date;
vm.appointment_step_form_data.store_selected_date = timeslot_data[0].store_service_date;
}
},
bookingpress_day_click(day){
const vm = this;
let disable_dates = vm.v_calendar_disable_dates;
let max_available_date = vm.booking_cal_maxdate;
;
let max_date_value = false;
if( max_available_date instanceof Date ){
max_date_value = ( max_available_date < ( new Date( day.id ) ) );
} else {
max_date_value = ( max_available_date < day.id );
}
if( disable_dates.includes( day.id + " 00:00:00" ) || disable_dates.includes( day.id ) || max_date_value || (day.date < vm.jsCurrentDateFormatted && false == day.isToday) ){
return false;
}
vm.appointment_step_form_data.selected_date = day.id;
vm.bookingpress_select_multi_day_range(day);
vm.dayClicked( day );
},
bookingpress_get_final_step_amount() {
const vm = this;
var payment_method = vm.appointment_step_form_data.selected_payment_method;
var total_payable_amount = vm.appointment_step_form_data.service_price_without_currency;
var tax_amount = vm.appointment_step_form_data.tax_amount_without_currency;
if( "" == tax_amount ){
tax_amount = 0;
}
let total_payable_amount_without_tax = parseFloat(total_payable_amount);
if(typeof tax_amount != "undefined"){
total_payable_amount = parseFloat(total_payable_amount) + parseFloat(tax_amount);
}
let is_cart_addon = false;
if (typeof vm.appointment_step_form_data.cart_items != "undefined" && ("undefined" == typeof vm.is_club_service || vm.is_club_service != true ) )
{
/* total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total; */
total_payable_amount = vm.appointment_step_form_data.bookingpress_cart_total;
total_payable_amount_without_tax = parseFloat(total_payable_amount);
if( typeof tax_amount != "undefined" ){
total_payable_amount_without_tax = parseFloat( total_payable_amount ) - parseFloat( tax_amount );
if( 1 == vm.is_coupon_activated ){
if(vm.appointment_step_form_data.coupon_code != "" && typeof vm.appointment_step_form_data.tax_amount_before_coupon_without_currency != "undefined"){
total_payable_amount_without_tax = parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.tax_amount_before_coupon_without_currency );
}
}
}
/* console.trace( "INSIDE CART CONDITION ===>>> " + vm.appointment_step_form_data.bookingpress_cart_total ); */
is_cart_addon = true;
}
var coupon_code = vm.appointment_step_form_data.coupon_code;
var selected_service = vm.appointment_step_form_data.selected_service;
var selected_staff_member_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
if( 0 == total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount, true );
}
var subtotal_price = total_payable_amount;
/* apply coupon */
if( 1 == vm.is_coupon_activated ){
if(vm.appointment_step_form_data.coupon_code != ""){
if(typeof vm.appointment_step_form_data.coupon_discount_amount != "undefined" && vm.appointment_step_form_data.coupon_discount_amount != 0){
if(vm.appointment_step_form_data.tax_percentage != ""){
var tax_percentage = parseFloat(vm.appointment_step_form_data.tax_percentage);
if(typeof vm.appointment_step_form_data.tax_price_display_options != "undefined" && vm.appointment_step_form_data.tax_price_display_options == "include_taxes"){
tax_amount = (total_payable_amount_without_tax * tax_percentage) / (100+tax_percentage);
total_payable_amount_without_tax = total_payable_amount_without_tax - tax_amount;
}
}
let f_payable_amount = total_payable_amount_without_tax - vm.appointment_step_form_data.coupon_discount_amount;
if( 0 == f_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = f_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( f_payable_amount, true );
}
var tax_amount = vm.appointment_step_form_data.tax_amount_without_currency;
if( typeof tax_amount != "undefined" ){
vm.appointment_step_form_data.total_payable_amount = vm.appointment_step_form_data.total_payable_amount + tax_amount;
}else {
tax_amount = 0;
}
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.total_payable_amount, true );
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.total_payable_amount );
subtotal_price = f_payable_amount + tax_amount;
if( "undefined" != vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency && 1 == vm.bookingpress_is_deposit_payment_activate ){
if( vm.appointment_step_form_data.bookingpress_deposit_payment_method == "deposit_or_full_price" || vm.appointment_step_form_data.bookingpress_deposit_payment_method == "allow_customer_to_pay_full_amount" ){
if(is_cart_addon){
let cart_items_deposite_amount = 0;
vm.appointment_step_form_data.cart_items.forEach((current_cart_item, cart_item_index) => {
cart_items_deposite_amount = parseFloat(cart_items_deposite_amount) + parseFloat(current_cart_item.bookingpress_deposit_price);
});
if( cart_items_deposite_amount < subtotal_price ){
vm.appointment_step_form_data.calculate_deposit = true;
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
}else{
if( vm.appointment_step_form_data.deposit_payment_type == "fixed") {
if( vm.appointment_step_form_data.deposit_payment_amount < subtotal_price ){
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
vm.appointment_step_form_data.calculate_deposit = true;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
} else if( vm.appointment_step_form_data.deposit_payment_type == "percentage") {
let bookingpress_deposit_amt = total_payable_amount_without_tax * ( parseFloat(vm.appointment_step_form_data.deposit_payment_amount) / 100);
if( bookingpress_deposit_amt < subtotal_price ){
vm.appointment_step_form_data.calculate_deposit = true;
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
} else {
vm.appointment_step_form_data.calculate_deposit = false;
vm.appointment_step_form_data.bookingpress_remove_deposit = 1;
}
}
}
}
}
}
} else {
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
if( 0 == total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount, true );
}
vm.appointment_step_form_data.bookingpress_remove_deposit = 0;
subtotal_price = total_payable_amount;
}
}
/* If deposit payment module enabled then calculate deposit amount */
var deposit_method = vm.appointment_step_form_data.bookingpress_deposit_payment_method;
var deposit_type = vm.appointment_step_form_data.deposit_payment_type;
var deposit_value = vm.appointment_step_form_data.deposit_payment_amount;
var bookingpress_deposit_amt = 0;
var bookingpress_deposit_due_amt = 0;
if(payment_method != "" && 1 == vm.bookingpress_is_deposit_payment_activate && vm.appointment_step_form_data.bookingpress_remove_deposit != 1 && ( "undefined" == typeof vm.appointment_step_form_data.is_clubbed_service || false == vm.appointment_step_form_data.is_clubbed_service ) ){
var bookingpress_check_deposit_avaliable = false;
if( 1 == is_cart_addon ){
if (typeof vm.appointment_step_form_data.cart_items != "undefined"){
var cart_items_temp_data = vm.appointment_step_form_data.cart_items;
if(cart_items_temp_data != "" && cart_items_temp_data.length != 0){
cart_items_temp_data.forEach(function(currentValue, index, arr){
if (typeof cart_items_temp_data[index].bookingpress_deposit_due_amount != "undefined"){
if(parseFloat(cart_items_temp_data[index].bookingpress_deposit_due_amount) > 0){
bookingpress_check_deposit_avaliable = true;
}
}
});
}
}
}else{
if(typeof vm.appointment_step_form_data.deposit_payment_type != undefined && typeof vm.appointment_step_form_data.deposit_payment_amount_percentage != undefined){
if(vm.appointment_step_form_data.deposit_payment_type == "percentage" && vm.appointment_step_form_data.deposit_payment_amount_percentage == 100){
bookingpress_check_deposit_avaliable = false;
}else{
bookingpress_check_deposit_avaliable = true;
}
}
}
if(bookingpress_check_deposit_avaliable && payment_method != "on-site" && (typeof vm.appointment_step_form_data.bookingpress_package_applied_data == "undefined" || (typeof vm.appointment_step_form_data.bookingpress_package_applied_data != "undefined") && vm.appointment_step_form_data.bookingpress_package_applied_data == "") && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
if(deposit_method == "deposit_or_full_price"){
//if( true == is_cart_addon ){
//subtotal_price = total_payable_amount_without_tax;
/* vm.bookingpress_price_with_currency_symbol( total_payable_amount_without_tax, true ); */
//}
if(deposit_type == "percentage"){
bookingpress_deposit_amt = total_payable_amount_without_tax * ( parseFloat(deposit_value) / 100);
bookingpress_deposit_amt = bookingpress_deposit_amt;
/* vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt, true ); */
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
} else if(deposit_type == "fixed") {
bookingpress_deposit_amt = deposit_value;
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
}
} else if(deposit_method == "allow_customer_to_pay_full_amount") {
bookingpress_deposit_amt = subtotal_price;
bookingpress_deposit_due_amt = subtotal_price - bookingpress_deposit_amt;
}
let total_payable_amount_temp = bookingpress_deposit_amt;
if(typeof vm.appointment_step_form_data.tip_amount != undefined && vm.appointment_step_form_data.tip_amount> 0 && vm.appointment_step_form_data.bookingpress_deposit_total != undefined && vm.appointment_step_form_data.bookingpress_deposit_payment_method == "deposit_or_full_price"){
total_payable_amount_temp = parseFloat(vm.appointment_step_form_data.bookingpress_deposit_total) + parseFloat(vm.appointment_step_form_data.tip_amount);
}
vm.appointment_step_form_data.bookingpress_deposit_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt );
vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt, true );
vm.appointment_step_form_data.bookingpress_deposit_due_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt );
vm.appointment_step_form_data.bookingpress_deposit_due_amt_without_currency = bookingpress_deposit_due_amt;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount_temp );
if( 0 == total_payable_amount_temp ){
vm.appointment_step_form_data.total_payable_amount = total_payable_amount_temp;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( total_payable_amount_temp, true );
}
/* 26 April 2023 changes */
if( 1 == is_cart_addon ){
if( "allow_customer_to_pay_full_amount" == deposit_method ){
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bookingpress_deposit_due_amt + tax_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt + tax_amount );
} else {
if( 1 == vm.is_tax_activated ){
/* let tax_method = vm.appointment_step_form_data.tax_price_display_options; */
/* if( "exclude_taxes" == tax_method ){ */
let bpa_deposit_due_amount_total = ( parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.bookingpress_deposit_total ) );
if( 1 == vm.is_coupon_activated){
let coupon_discount = vm.appointment_step_form_data.coupon_discount_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total - coupon_discount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.bookingpress_deposit_due_amount_total );
} else {
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bpa_deposit_due_amount_total );
}
} else {
let bpa_deposit_due_amount_total = ( parseFloat( total_payable_amount ) - parseFloat( vm.appointment_step_form_data.bookingpress_deposit_total ) );
if( 1 == vm.is_coupon_activated){
let coupon_discount = vm.appointment_step_form_data.coupon_discount_amount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total - coupon_discount;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( vm.appointment_step_form_data.bookingpress_deposit_due_amount_total );
}else{
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = bpa_deposit_due_amount_total;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol( bpa_deposit_due_amount_total );
}
}
}
}
/* 26 April 2023 changes */
}
else
{
vm.appointment_step_form_data.bookingpress_deposit_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_amt );
vm.appointment_step_form_data.bookingpress_deposit_amt_without_currency = bookingpress_deposit_amt;
vm.appointment_step_form_data.bookingpress_deposit_due_amt = vm.bookingpress_price_with_currency_symbol( bookingpress_deposit_due_amt );
vm.appointment_step_form_data.bookingpress_deposit_due_amt_without_currency = bookingpress_deposit_due_amt;
vm.appointment_step_form_data.total_payable_amount_with_currency = vm.bookingpress_price_with_currency_symbol( subtotal_price );
if( 0 == subtotal_price ){
vm.appointment_step_form_data.total_payable_amount = subtotal_price;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( subtotal_price, true );
}
if(payment_method != "on-site" && (typeof vm.appointment_step_form_data.bookingpress_package_applied_data == "undefined" || (typeof vm.appointment_step_form_data.bookingpress_package_applied_data != "undefined") && vm.appointment_step_form_data.bookingpress_package_applied_data == "")){
var bookingpress_is_recurring_appointment_active = false;
if(typeof vm.appointment_step_form_data.recurring_appointments != "undefined"){
if(vm.appointment_step_form_data.is_recurring_appointments == true || vm.appointment_step_form_data.is_recurring_appointments == "true"){
bookingpress_is_recurring_appointment_active = true;
}
}
if( 1 == is_cart_addon && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
vm.appointment_step_form_data.bookingpress_deposit_total = total_payable_amount;
vm.appointment_step_form_data.bookingpress_deposit_total_with_currency = vm.bookingpress_price_with_currency_symbol( total_payable_amount );
}
if(bookingpress_is_recurring_appointment_active && (typeof vm.appointment_step_form_data.gift_card_data == "undefined" || (typeof vm.appointment_step_form_data.gift_card_data != "undefined") && vm.appointment_step_form_data.gift_card_data == "")){
vm.appointment_step_form_data.bookingpress_deposit_total = subtotal_price;
vm.appointment_step_form_data.bookingpress_deposit_total_with_currency = vm.bookingpress_price_with_currency_symbol( subtotal_price );
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total = 0;
vm.appointment_step_form_data.bookingpress_deposit_due_amount_total_with_currency = vm.bookingpress_price_with_currency_symbol(0);
}
}
}
}
if(vm.appointment_step_form_data.selected_payment_method != " - " && vm.appointment_step_form_data.selected_payment_method != ""){
vm.appointment_step_form_data.selected_payment_method_org = vm.appointment_step_form_data.selected_payment_method;
}
var paypal_payment_method_type = "lagacy";
if(vm.appointment_step_form_data.total_payable_amount == 0 && typeof vm.appointment_step_form_data.selected_payment_method_org != "undefined" && vm.appointment_step_form_data.selected_payment_method_org == "paypal" && paypal_payment_method_type == "popup" ) {
var final_document_divnew = document.getElementById("paypal-button-container");
vm.show_paypal_popup_button = "false";
if(final_document_divnew){
document.getElementById("paypal-button-container").style.display = "none";
}
}
else if(vm.appointment_step_form_data.total_payable_amount != 0 && typeof vm.appointment_step_form_data.selected_payment_method_org != "undefined" && vm.appointment_step_form_data.selected_payment_method_org == "paypal" && paypal_payment_method_type == "popup" ) {
vm.show_paypal_popup_button = "true";
document.getElementById("paypal-button-container").style.display = "block";
vm.appointment_step_form_data.selected_payment_method = vm.appointment_step_form_data.selected_payment_method_org;
}
if( "undefined" == typeof vm.prevent_verification_on_load || false == vm.prevent_verification_on_load ){
this.bookingpress_verify_total_payment_amount();
}
},
bookingpress_verify_total_payment_amount_v2(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let bpk_payable_data = {
action: "bookingpress_pre_booking_verify_details",
booking_token: vm.appointment_step_form_data.bookingpress_uniq_id,
booking_data: JSON.stringify( vm.appointment_step_form_data ),
_wpnonce: bkp_wpnonce_pre_fetch
};
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bpk_payable_data ) )
.then( function (response) {
if( "undefined" != typeof response.data.verification_token ){
vm.appointment_step_form_data.authorized_token = response.data.verification_token;
vm.appointment_step_form_data.authorized_time = response.data.verification_time;
}
}.bind(this) )
.catch( function (error) {
});
},
bookingpress_verify_total_payment_amount(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
vm.bkp_processing_token = true;
let bpk_payable_data = {
action: "bookingpress_pre_booking_verify_details",
booking_token: vm.appointment_step_form_data.bookingpress_uniq_id,
booking_data: JSON.stringify( vm.appointment_step_form_data ),
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bpk_payable_data ) )
.then( function (response) {
if( "undefined" != typeof response.data.verification_token ){
vm.appointment_step_form_data.authorized_token = response.data.verification_token;
vm.appointment_step_form_data.authorized_time = response.data.verification_time;
vm.bkp_processing_token = false;
}
if( vm.bkp_process_booking == true ){
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
});
},
bookingpress_recalculate_payable_amount(){
return false;
const vm = this;
var bookingpress_recalculate_data = {};
bookingpress_recalculate_data.action = "bookingpress_recalculate_appointment_data";
bookingpress_recalculate_data.appointment_details = JSON.stringify( vm.appointment_step_form_data );
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_recalculate_data._wpnonce = bkp_wpnonce_pre_fetch;
if( "undefined" != typeof vm.bookingpress_timezone_offset ){
bookingpress_recalculate_data.client_timezone_offset = vm.bookingpress_timezone_offset;
}
if( "undefined" != typeof vm.bookingpress_dst_timezone ){
bookingpress_recalculate_data.client_dst_timezone = vm.bookingpress_dst_timezone;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_recalculate_data ) )
.then( function (response) {
vm.appointment_step_form_data = response.data.appointment_data
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error)
});
},
bookingpress_apply_coupon_code(final_call = false){
const vm = this;
vm.coupon_apply_loader = "1";
var bookingpress_apply_coupon_data = {};
bookingpress_apply_coupon_data.action = "bookingpress_apply_coupon_code";
bookingpress_apply_coupon_data.appointment_details = JSON.stringify( vm.appointment_step_form_data );
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_apply_coupon_data._wpnonce = bkp_wpnonce_pre_fetch;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_apply_coupon_data ) )
.then( function (response) {
vm.coupon_apply_loader = "0";
vm.coupon_applied_status = response.data.variant;
if(response.data.variant == "error"){
vm.coupon_code_msg = response.data.msg;
vm.appointment_step_form_data.coupon_discount_amount = 0;
/* for the coupon code error display */
if( document.querySelector(".bpa-bs__coupon-validation.--is-error") != null ){
document.querySelector(".bpa-bs__coupon-validation.--is-error").style.display = "flex";
}
}else{
vm.coupon_code_msg = response.data.msg;
vm.coupon_discounted_amount = "-" + response.data.discounted_amount;
vm.bpa_coupon_apply_disabled = 1;
vm.appointment_step_form_data.applied_coupon_res = { "coupon_data": response.data.coupon_data };
}
vm.appointment_step_form_data.bookingpress_temp_subtotal = 0;
if(response.data.coupon_discount_amount > 0 )
{
vm.appointment_step_form_data.bookingpress_temp_subtotal = response.data.bookingpress_temp_subtotal;
vm.appointment_step_form_data.bookingpress_temp_subtotal_with_currency = response.data.bookingpress_temp_subtotal_with_currency;
vm.appointment_step_form_data.coupon_discount_amount = response.data.coupon_discount_amount;
vm.appointment_step_form_data.coupon_discount_amount_with_currecny = response.data.coupon_discount_amount_with_currecny;
if( typeof response.data.tax_amount != "undefined" ){
vm.appointment_step_form_data.tax_amount_before_coupon = vm.appointment_step_form_data.tax_amount;
vm.appointment_step_form_data.tax_amount_before_coupon_without_currency = vm.appointment_step_form_data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount = response.data.tax_amount;
vm.appointment_step_form_data.tax_amount_without_currency = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.total_payable_amount_with_currency = response.data.total_payable_amount_with_currency;
vm.appointment_step_form_data.calculated_tax_amount_org = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_without_currency_org = response.data.tax_amount_without_currency;
vm.appointment_step_form_data.tax_amount_org = response.data.tax_amount;
}
if( 0 == response.data.total_payable_amount ){
vm.appointment_step_form_data.total_payable_amount = response.data.total_payable_amount;
} else {
vm.appointment_step_form_data.total_payable_amount = vm.bookingpress_price_with_currency_symbol( response.data.total_payable_amount, true );
}
}
vm.bookingpress_get_final_step_amount();
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},
bookingpress_remove_coupon_code(final_call = false){
const vm = this;
let bookingpress_remove_coupon_data = {
action: "bookingpress_remove_coupon_code",
coupon_code: vm.appointment_step_form_data.coupon_code,
};
let bkp_wpnonce_pre = "4ac51a523d";
let bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
bookingpress_remove_coupon_data._wpnonce = bkp_wpnonce_pre_fetch;
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_remove_coupon_data ) )
.then( function (response) {
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
vm.appointment_step_form_data.coupon_code = "";
vm.appointment_step_form_data.applied_coupon_res = "";
vm.coupon_code_msg = "";
/* vm.bookingpress_recalculate_payable_amount() */
vm.bpa_coupon_apply_disabled = 0;
vm.coupon_applied_status = "error";
vm.coupon_discounted_amount = "";
vm.appointment_step_form_data.coupon_discount_amount = 0;
vm.appointment_step_form_data.bookingpress_temp_subtotal = 0;
vm.appointment_step_form_data.bookingpress_temp_subtotal_with_currency = "";
if(typeof vm.appointment_step_form_data.tax_amount_before_coupon != "undefined") {
vm.appointment_step_form_data.tax_amount = vm.appointment_step_form_data.tax_amount_before_coupon;
vm.appointment_step_form_data.tax_amount_without_currency = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.calculated_tax_amount_org = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.tax_amount_without_currency_org = vm.appointment_step_form_data.tax_amount_before_coupon_without_currency;
vm.appointment_step_form_data.tax_amount_org = vm.appointment_step_form_data.tax_amount_before_coupon;
}
vm.bookingpress_get_final_step_amount();
},
generateSpamCaptchav2(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action: "bookingpress_generate_spam_captcha", _wpnonce:bkp_wpnonce_pre_fetch };
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.variant != "error" && (response.data.captcha_val != "" && response.data.captcha_val != undefined)){
}else{
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch!="undefined" && bkp_wpnonce_pre_fetch!=null && response.data.updated_nonce!=""){
document.getElementById("_wpnonce").value = response.data.updated_nonce;
} else {
vm.$notify({
title: response.data.title,
message: response.data.msg,
type: response.data.variant,
customClass: "error_notification"
});
}
if( "undefined" != typeof response.data.updated_ics_nonce && "" != response.data.updated_ics_nonce && null != document.getElementById( "bpa_ics_nonce" ) ){
document.getElementById( "bpa_ics_nonce" ).value = response.data.updated_ics_nonce;
}
}
}.bind(this) )
.catch( function (error) {
console.log(error);
});
},
async bookingpress_render_thankyou_content(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
await vm.generateSpamCaptchav2();
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_render_thankyou_content", bookingpress_uniq_id: vm.appointment_step_form_data.bookingpress_uniq_id, _wpnonce:bkp_wpnonce_pre_fetch };
if( "undefined" != typeof vm.load_synchronized_thankyou_page && true == vm.load_synchronized_thankyou_page ){
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "success"){
var bookingpress_appointment_id = response.data.appointment_id;
document.getElementById("bpa-thankyou-screen-div").innerHTML = response.data.thankyou_content;
document.getElementById("bpa-failed-screen-div").innerHTML = response.data.failed_content;
wp.hooks.doAction("bpa_calendar_js_init", bookingpress_appointment_id);
if( null != document.getElementById("bookingpress_google_calendar") ){
document.getElementById("bookingpress_google_calendar").setAttribute( "href", response.data.bpa_google_cal_link );
}
if( null != document.getElementById("bookingpress_yahoo_calendar") ) {
document.getElementById("bookingpress_yahoo_calendar").setAttribute( "href", response.data.bpa_yahoo_cal_link );
}
setTimeout(function(){
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
const link = document.querySelector(".bpa-front-module--atc-wrapper .bpa-front-module--atc__item a");
const button = document.querySelector(".bpa-front-module--atc-wrapper .bpa-front-module--atc__item button");
// Focus on whichever element exists (prioritizing the link if both exist)
if (link) {
link.focus();
} else if (button) {
button.focus();
}
},1000);
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
});
} else {
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "success"){
var bookingpress_appointment_id = response.data.appointment_id;
document.getElementById("bpa-thankyou-screen-div").innerHTML = response.data.thankyou_content;
document.getElementById("bpa-failed-screen-div").innerHTML = response.data.failed_content;
wp.hooks.doAction("bpa_calendar_js_init", bookingpress_appointment_id);
if( null != document.getElementById("bookingpress_google_calendar") ){
document.getElementById("bookingpress_google_calendar").setAttribute( "href", response.data.bpa_google_cal_link );
}
if( null != document.getElementById("bookingpress_yahoo_calendar") ) {
document.getElementById("bookingpress_yahoo_calendar").setAttribute( "href", response.data.bpa_yahoo_cal_link );
}
setTimeout(function(){
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
},1000);
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
vm.bkp_process_booking = false;
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
});
}
},
checkBeforeBookProAppointment(){
const vm = this;
setTimeout(function(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_pro_before_book_appointment", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm.appointment_step_form_data );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if(response.data.variant == "error"){
vm.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm.service_timing = [];
}
vm.isLoadBookingLoader = "0";
vm.isBookingDisabled = false;
}else{
vm.bookingpress_remove_error_msg();
vm.bookingpress_process_to_book_appointment();
}
}.bind(this) )
.catch( function (error) {
vm.bookingpress_set_error_msg(error);
});
},1500);
},
bookingpress_book_appointment(){
const vm2 = this;
vm2.isLoadBookingLoader = "1";
vm2.isBookingDisabled = true;
/* for the coupon code error hide start */
if( 1 == vm2.is_coupon_activated ){
if( document.querySelector(".bpa-bs__coupon-validation.--is-error") != null ){
document.querySelector(".bpa-bs__coupon-validation.--is-error").style.display = "none";
}
}
/* for the coupon code error hide end */
vm2.bookingpress_process_to_book_appointment();
},
async bookingpress_process_to_book_appointment(){
const vm2 = this;
if( "undefined" != typeof vm2.bkp_processing_token && true == vm2.bkp_processing_token ){
vm2.bkp_process_booking = true;
return false;
}
if(vm2.is_display_error != "1"){
/* vm2.appointment_step_form_data.service_timing = vm2.service_timing */
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = { action:"bookingpress_book_appointment_booking", _wpnonce:bkp_wpnonce_pre_fetch };
postData.appointment_data = JSON.stringify( vm2.appointment_step_form_data );
const cdata = await this.bookingpress_reload_captcha();
let updateData = JSON.parse( postData.appointment_data );
for (let bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
updateData[ bookingpress_grecaptcha_field_v3 ] = cdata;
}
postData.appointment_data = JSON.stringify( updateData );
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
vm2.bkp_process_booking = false;
var bookingpress_redirection_mode = "external_redirection";
if(bookingpress_redirection_mode == "external_redirection"){
if(response.data.variant == "redirect"){
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
},50);
vm2.bookingpress_remove_error_msg();
}else if(response.data.variant == "redirect_url"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else if(response.data.variant == "error"){
vm2.bookingpress_set_error_msg(response.data.msg);
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else{
vm2.bookingpress_remove_error_msg();
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
setTimeout(function(){
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
},2000);
}else{
var bookingpress_uniq_id = vm2.appointment_step_form_data.bookingpress_uniq_id;
if( "undefined" != typeof wp.hooks ){
wp.hooks.doAction("bookingpress_after_book_appointment");
}
if(response.data.variant != "error"){
vm2.bookingpress_render_thankyou_content();
vm2.bookingpress_remove_error_msg();
if(response.data.variant == "redirect"){
vm2.bookingpress_external_html = response.data.redirect_data;
setTimeout(function(){
var scripts = document.getElementById("bpa-external-script").querySelectorAll("script");
if(scripts.length > 0){
var text = scripts[scripts.length - 1].textContent;
eval(text);
}
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
},50);
vm2.bookingpress_remove_error_msg();
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed != "undefined" && response.data.is_transaction_completed == "1"){
vm2.bookingpress_remove_error_msg();
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "none";
document.getElementById("bpa-thankyou-screen-div").style.display = "block";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed != "undefined" && response.data.is_transaction_completed == "0"){
vm2.bookingpress_remove_error_msg();
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "block";
document.getElementById("bpa-thankyou-screen-div").style.display = "none";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}else if(response.data.variant == "redirect_url" && typeof response.data.is_transaction_completed == "undefined"){
vm2.bookingpress_remove_error_msg();
window.location.href = response.data.redirect_data;
}else{
vm2.appointment_step_form_data.is_transaction_completed = 1;
document.getElementById("bookingpress_booking_form_"+bookingpress_uniq_id).style.display = "none";
document.getElementById("bpa-failed-screen-div").style.display = "none";
document.getElementById("bpa-thankyou-screen-div").style.display = "block";
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
vm2.appointment_step_form_data.is_transaction_completed = "";
vm2.bookingpress_set_error_msg(response.data.msg);
if(response.data.error_type == "dayoff"){
vm2.service_timing = [];
}
}
}
}.bind(this) )
.catch( function (error) {
let errorText = ("undefined" != typeof error.response.statusText ) ? error.response.statusText : error;
vm2.bookingpress_set_error_msg( error.response.status + " " + errorText);
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
});
}else{
vm2.isLoadBookingLoader = "0";
vm2.isBookingDisabled = false;
}
},
inputFormat() {
let text = this.appointment_step_form_data.card_number.split(" ").join("");
/* this.cardVdid is not formated in 4 spaces */
this.cardVadid = text;
if (text.length > 0) {
/* regExp 4 in 4 number add an space between */
text = text.match(new RegExp(/.{1,4}/, "g")).join(" ")
/* accept only numbers */
.replace(new RegExp(/[^\d]/, "ig"), " ");
}
/* this.appointment_step_form_data.card_number is formated on 4 spaces */
this.appointment_step_form_data.card_number = text;
/* after formatd they callback cardType for choose a type of the card */
this.GetCardType(this.cardVadid);
},
/* loop for the next 9 years for expire data on credit card */
expirationDate() {
let yearNow = new Date().getFullYear();
for (let i = yearNow; i < yearNow + this.timeToExpire; i++) {
this.years.push({ year: i });
}
},
validCreditCard(value) {
let inputValidate = document.getElementById("cardNumber");
/* luhn algorithm */
let numCheck = 0,
bEven = false;
value = value.toString().replace(new RegExp(/\D/g, ""));
for (let n = value.length - 1; n >= 0; n--) {
let cDigit = value.charAt(n),
digit = parseInt(cDigit, 10);
if (bEven && (digit *= 2) > 9) digit -= 9;
numCheck += digit;
bEven = !bEven;
}
let len = value.length;
/* true: return valid number */
/* this.cardType return true if have an valid number on regx array */
if (numCheck % 10 === 0 && len === 16 && this.cardType) {
inputValidate.classList.remove("notValid");
inputValidate.classList.add("valid");
this.isBookingDisabled = false;
}
/* false: return not valid number */
else if (!(numCheck % 10 === 0) && len === 16) {
inputValidate.classList.remove("valid");
inputValidate.classList.add("notValid");
this.isBookingDisabled = true;
/* if not have number on input */
} else {
inputValidate.classList.remove("valid");
inputValidate.classList.remove("notValid");
this.isBookingDisabled = false;
}
},
/* get the name of the card name */
GetCardType(number) {
this.regx.forEach((item) => {
if (number.match(item.re) != null) {
this.cardType = item.logo;
/* cClass add a class with the name of cardName to manipulate with css */
this.cClass = item.name.toLowerCase();
} else if (!number) {
this.cardType = "";
this.cClass = "";
}
});
/* after choose a cardtype return the number for the luhn algorithm */
this.validCreditCard(number);
},
/* mouse down on btn */
mouseDw() {
this.btnClassName = "btn__active";
},
/* mouse up on btn */
mouseUp() {
this.btnClassName = "";
},
blr() {
let cr = document.getElementsByClassName("card--credit__card")[0];
if( null != cr && "undefined" != typeof cr.classList ){
cr.classList.remove("cvv-active")
}
},
async bookingpress_set_timezone(){
const vm = this;
var bookingpress_timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
let clientTimezoneOffset = new Date().getTimezoneOffset(); /** get client timezone offset in minutes from UTC 0. If client is in UTC -10:00 timezone, then this line will return 600 minutes. If timezone is in daylight saving timezone then it will return 540 minutes ( 09:00 hours ) */
let client_timezone_offset = -1 * ( clientTimezoneOffset / 60 ); /** converted minutes into hours - returns -2 */
let offset_minute = client_timezone_offset % 1; /** Retrieve remaining minutes in case if the minutes falls with decimal numbers */
let final_offset = clientTimezoneOffset; /* hours + "" + minute; /** concate the hours and minutes */
vm.bookingpress_timezone = bookingpress_timezone;
vm.bookingpress_timezone_offset = final_offset;
vm.appointment_step_form_data.selected_date = vm.get_formatted_date( new Date() );
let is_dst_time = 0;
let current_datetime = new Date();
let jan1 = new Date( current_datetime.getFullYear(), 0, 1, 0, 0, 0, 0 );
let temp = jan1.toGMTString();
let jan2 = new Date( temp.substring(0, temp.lastIndexOf(" ") - 1 ) );
let std_tz_offset = ( jan1 - jan2 ) / ( 1000 * 60 * 60 );
let june1 = new Date(current_datetime.getFullYear(), 6, 1, 0, 0, 0, 0);
temp = june1.toGMTString();
let june2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
let daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
if( std_tz_offset != daylight_time_offset ){
is_dst_time = 1;
}
vm.bookingpress_dst_timezone = is_dst_time;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var bookingpress_postdata = { action: "bookingpress_set_clients_timezone", clients_timezone: bookingpress_timezone, _wpnonce: bkp_wpnonce_pre_fetch };
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( bookingpress_postdata ) )
.then( function (response){
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_calculate_service_addons_price(service_id, service_name = "", service_price = "", service_price_without_currency = ""){},
bookingpress_calculate_service_addons_price_legacy(service_id, service_name = "", service_price = "", service_price_without_currency = ""){
const vm = this;
vm.appointment_step_form_data.selected_service = service_id;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
if(service_name != "" && service_price != "" && service_price_without_currency != ""){
vm.appointment_step_form_data.selected_service_name = service_name;
vm.appointment_step_form_data.selected_service_price = service_price;
vm.appointment_step_form_data.service_price_without_currency = service_price_without_currency;
}
var postData = {
action: "bookingpress_calculate_service_addons_price",
selected_service_obj: vm.appointment_step_form_data,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
if(vm.appointment_step_form_data.selected_service == service_id){
vm.appointment_step_form_data.selected_service_price = response.data.selected_service_total_price;
vm.appointment_step_form_data.total_payable_amount = response.data.price_without_currency;
vm.appointment_step_form_data.total_payable_amount_with_currency = response.data.price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = response.data.price_without_currency;
if(response.data.is_tax_calculated == 1){
vm.appointment_step_form_data.tax_amount = response.data.tax_amount;
if(typeof vm.appointment_step_form_data.tax_amount_without_currency != "undefined") {
vm.appointment_step_form_data.tax_amount_without_currency = response.data.tax_amount_without_currency;
}
}
}
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_modify_front_dates_as_service(){
const vm = this;
var service_id = vm.appointment_step_form_data.selected_service;
if(vm.is_loaded_service_disabled_dates !== "undefined" && vm.is_loaded_service_disabled_dates != service_id){
vm.appointment_step_form_data.selected_date = vm.appointment_step_form_data.default_selected_date;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_change_front_calendar_dates",
service_obj: vm.appointment_step_form_data,
_wpnonce: bkp_wpnonce_pre
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
/* vm.days_off_disabled_dates = response.data.disabled_dates */
vm.appointment_step_form_data.selected_date = response.data.next_selected_date;
vm.is_loaded_service_disabled_dates = service_id;
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
}
},
bookingpress_hide_show_extra_description(bookingpress_extra_service_id){
const vm = this;
let selected_service_data = vm.bookingpress_all_services_data[ vm.appointment_step_form_data.selected_service ].service_extras;
let selected_extra = selected_service_data[ bookingpress_extra_service_id ];
if( "undefined" != typeof selected_extra ){
if( "0" == selected_extra.bookingpress_is_display_description ){
selected_extra.bookingpress_is_display_description = "1";
} else {
selected_extra.bookingpress_is_display_description = "0";
}
}
},
bookingpress_select_any_staffmember(){
const vm = this;
let step_data = vm.bookingpress_sidebar_step_data["staffmembers"];
vm.appointment_step_form_data.select_any_staffmember = "true";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = 0;
vm.appointment_step_form_data.selected_staff_member_id = 0;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = true;
if( vm.appointment_step_form_data.bpa_datetime_after_staffselection == 1 && "undefined" != typeof vm.appointment_step_form_data.bpa_after_select_datetime_available_staff ){
let time_details_arr = vm.appointment_step_form_data.bpa_after_select_datetime_available_staff;
if( 1 < time_details_arr.available_staffs.length ){
let available_staff_id = time_details_arr.available_staffs;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null){
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
} else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
let postData = {
action: "bpa_assign_staffmember",
slot_details: JSON.stringify( time_details_arr ),
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
} else {
postData.selected_bring_members = 1;
}
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response) {
if( "success" == response.data.variant ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = (typeof service_staff_details.bookingpress_service_price != "undefined")?service_staff_details.bookingpress_service_price:0;
if( ("undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && vm.appointment_step_form_data.bpa_datetime_before_staffselection != 1) && ("undefined" != typeof time_details.happy_hour_data ) ) {
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
if( "undefined" != typeof vm.bookingpress_refresh_cart_details ){
vm.bookingpress_cart_item_calculations();
vm.bookingpress_refresh_cart_details( false, false, -1, true );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
} else {
let available_staff_id = time_details_arr.available_staffs[0];
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = available_staff_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = 1;
vm.appointment_step_form_data.selected_staff_member_id = available_staff_id;
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ available_staff_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
let event = vm.appointment_step_form_data.custom_service_duration_real_value;
let bpa_selected_staffmember_id = vm.appointment_step_form_data.selected_staff_member_id;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
if( bpa_selected_staffmember_id != "" && ( "undefined" != typeof vm.any_staff_selected && vm.any_staff_selected == 1 ) ){
let staffmember_custom_data = item.staff_price_arr.find(staff => parseInt( staff.staff_id ) === parseInt( bpa_selected_staffmember_id) );
vm.appointment_step_form_data.selected_service_price = staffmember_custom_data.staff_price_with_currency;
vm.appointment_step_form_data.service_price_without_currency = staffmember_custom_data.staff_price;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(staffmember_custom_data.staff_price);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
} else {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
}
});
}
} else {
if( "service" == step_data.next_tab_name && vm.bookingpress_sidebar_step_data[step_data.next_tab_name].is_display_step == 1 ){
vm.appointment_step_form_data.selected_service = "";
}
vm.appointment_step_form_data.bpa_all_available_staff_member = [];
if( vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name == "datetime" && vm.appointment_step_form_data.selected_service == "" && vm.appointment_step_form_data.select_any_staffmember && vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected == true){
vm.appointment_step_form_data.bpa_anystaff_step_first_before_datetime = 1;
vm.bookingpress_staffmembers_details.forEach(function(currentValue, index, arr){
vm.appointment_step_form_data.bpa_all_available_staff_member.push( currentValue.bookingpress_staffmember_id );
});
}
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
} else {
vm.bpasortedServices[x].is_visible = false;
}
}
}
vm.bookingpress_step_navigation(step_data.next_tab_name, step_data.next_tab_name, step_data.previous_tab_name, 0);
},
async bookingpress_select_staffmember(selected_staffmember_id, is_any_staff_option_selected = 0, event){
if(event){
event.preventDefault();
if(event.key === "Enter"){
if(event.target.classList.contains("bpa-front-staff-rat-cb__item")){
return;
}
}
}
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
var bookingpress_is_selected_staff_from_url = "0";
vm.v_calendar_disable_dates = [];
vm.v_calendar_blocked_dates = [];
vm.v_calendar_attributes_current = [];
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( selected_staffmember_id ) > -1 ){
return false;
}
if(typeof vm.appointment_step_form_data.cart_items == "undefined" && ( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && vm.appointment_step_form_data.bpa_datetime_before_staffselection != 1 ) ){
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
vm.appointment_step_form_data.bpa_available_staffwise_service = [];
if( vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name == "datetime" ){
vm.appointment_step_form_data.bpa_datetime_hide_capacity = true;
}
if( (vm.bookingpress_sidebar_step_data.staffmembers.is_first_step == 1 && "datetime" == vm.bookingpress_sidebar_step_data.staffmembers.next_tab_name && vm.appointment_step_form_data.selected_service == "") && ( "undefined" == typeof vm.is_multi_staffmember_activate && vm.is_multi_staffmember_activate != 1 ) || ( "service" == vm.bookingpress_sidebar_step_data.datetime.next_tab_name && vm.appointment_step_form_data.selected_service == "" && (vm.appointment_step_form_data.hide_staff_selection == "true" || vm.appointment_step_form_data.hide_staff_selection == true)) ){
vm.appointment_step_form_data.bpa_datetime_after_service_selection = 1;
let service_data_arr = vm.bookingpress_all_services_data;
if (vm.bookingpress_staffmembers_details.length === 1) {
selected_staffmember_id = vm.bookingpress_staffmembers_details[0].bookingpress_staffmember_id;
}
if( "any_staff" != selected_staffmember_id ){
for (let key in service_data_arr) {
let service_arr = service_data_arr[key];
if( "undefined" != typeof service_arr.assigned_staffmembers ) {
if (service_arr.assigned_staffmembers.includes(selected_staffmember_id)) {
vm.appointment_step_form_data.bpa_available_staffwise_service.push(service_arr.bookingpress_service_id);
}
}
}
}
if( "any_staff" == selected_staffmember_id && "undefined" != vm.appointment_step_form_data.happy_hours_activated && 1 == vm.appointment_step_form_data.happy_hours_activated ){
for (let key in service_data_arr) {
let service_arr = service_data_arr[key];
if ("undefined" != typeof service_arr.assigned_staffmembers) {
for (let i = 0; i < vm.appointment_step_form_data.bpa_all_available_staff_member.length; i++) {
let staffmember_id = vm.appointment_step_form_data.bpa_all_available_staff_member[i];
if (service_arr.assigned_staffmembers.includes(staffmember_id)) {
vm.appointment_step_form_data.bpa_available_staffwise_service.push(service_arr.bookingpress_service_id);
break;
}
}
}
}
}
}
let service_id = vm.appointment_step_form_data.selected_service;
let service_data = vm.bookingpress_all_services_data[ service_id ];
let use_legacy_any_staff = false;
if( selected_staffmember_id == "any_staff" && "undefined" != typeof service_data && "undefined" != typeof service_data.bookingpress_service_duration_unit && "d" == service_data.bookingpress_service_duration_unit ){
use_legacy_any_staff = true;
}
vm.appointment_step_form_data.any_staff_selected = 0;
if( true == use_legacy_any_staff ){
return await vm.bookingpress_select_staffmember_legacy( selected_staffmember_id, is_any_staff_option_selected );
} else if(selected_staffmember_id == "any_staff" ){
vm.appointment_step_form_data.any_staff_selected = 1;
if( "" != vm.appointment_step_form_data.selected_service ){
vm.isLoadServiceLoader = "0";
if( "undefined" != typeof vm.isLoadLocationLoader ){
vm.isLoadLocationLoader = "0";
}
let assigned_staffs = [];
service_data.assigned_staffmembers.forEach( function(staff_id){
assigned_staffs.push( staff_id );
});
let choose_from_url = false;
let assigned_updated_staffs = [];
if( 0 < bookingpress_is_selected_staff_from_url && 0 < assigned_staffs.length ){
let staff_id_from_url = bookingpress_is_selected_staff_from_url;
if( assigned_staffs.includes( staff_id_from_url ) ){
assigned_staffs = [staff_id_from_url];
choose_from_url = true;
}
}
if( 1 == assigned_staffs.length ){
vm.appointment_step_form_data.any_staff_selected = 0;
let selected_staffmember_id = ( true == choose_from_url ) ? assigned_staffs[0] : service_data.assigned_staffmembers[0];
/*Added for applying selected staff memebr price */
let service_staff_details = service_data.staff_member_details[ selected_staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
/*Added for applying selected staff memebr price */
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
vm.hide_capacity_text_flag = false;
} else {
vm.appointment_step_form_data.available_staffs = assigned_staffs;
vm.hide_capacity_text_flag = true;
}
} else {
if( "service" == vm.bookingpress_current_tab ){
let f = 0;
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let first_service_category = "";
let assigned_staffs = [];
for (let x in vm.bpasortedServices) {
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && false == elm.is_disabled ){
elm.assigned_staffmembers.forEach( function(staff_id){
assigned_staffs.push( staff_id );
});
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if ("" == first_service_category) {
first_service_category = elm.bookingpress_category_id;
}
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
vm.appointment_step_form_data.available_staffs = assigned_staffs;
vm.hide_capacity_text_flag = true;
let hidden_category_for_staff = [];
for (let ci in vm.service_categories) {
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
/* if (category_staff.indexOf(response.data.staffmember_id.toString()) < 0) {
hidden_category_for_staff.push(category_id);
} */
}
if ("" != first_service_category) {
for (let c in vm.bookingpress_all_categories) {
vm.bookingpress_all_categories[c].is_visible = true;
let current_category = vm.bookingpress_all_categories[c];
if (current_category.category_id == first_service_category) {
vm.bpa_select_category(current_category.category_id, current_category.category_name);
} else {
if (hidden_category_for_staff.indexOf(current_category.category_id.toString()) > -1) {
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
vm.isLoadServiceLoader = "0";
if( "undefined" != typeof vm.isLoadLocationLoader ){
vm.isLoadLocationLoader = "0";
}
}
vm.hide_capacity_text_flag = false;
}
} else {
vm.hide_capacity_text_flag = false;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.available_staffs = [];
if( vm.is_staff_first_step == 1 ){
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let visible_service_ids = [];
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( selected_staffmember_id ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
visible_service_ids.push( elm.bookingpress_service_id );
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( selected_staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
let current_category = vm.bookingpress_all_categories[c];
vm.bookingpress_all_categories[c].is_visible = true;
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
} else {
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
if( vm.is_bring_anyone_with_you_activated == 1 ){
let service_min_capacity = selected_service_data.staff_member_details[ selected_staffmember_id].bookingpress_min_service_capacity;
if( service_min_capacity != "undefined" && vm.appointment_step_form_data.bookingpress_selected_bring_members < service_min_capacity ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = service_min_capacity;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
vm.bookingpress_update_staffmember_data( vm.appointment_step_form_data.bookingpress_selected_bring_members );
}
}
let service_staff_details = selected_service_data.staff_member_details[ selected_staffmember_id ];
let consider_staff_price = true;
if( ( typeof vm.appointment_step_form_data.bpa_datetime_after_staffselection !== "undefined" && vm.appointment_step_form_data.bpa_datetime_after_staffselection == 1 ) && ( typeof vm.appointment_step_form_data.is_happy_hours_applied !== "undefined" && vm.appointment_step_form_data.is_happy_hours_applied == 1 ) ) {
consider_staff_price = false;
}
if ( true == consider_staff_price ) {
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
}
}
let step_data = "staffmembers";
let f = 0;
let is_club_staff = "0";
if(typeof vm.appointment_step_form_data.is_club_staff != "undefined" && vm.appointment_step_form_data.is_club_staff == "1"){
is_club_staff = "1";
}
if( "staffmembers" == vm.bookingpress_current_tab ){
if(is_club_staff == "0"){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1);
}
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id );
}
}
}
vm.bpa_select_category( "" );
},
async bookingpress_select_staffmember_legacy(selected_staffmember_id, is_any_staff_option_selected = 0){
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
var bookingpress_is_selected_staff_from_url = "0";
vm.v_calendar_disable_dates = [];
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( selected_staffmember_id ) > -1 ){
return false;
}
if(typeof vm.appointment_step_form_data.cart_items == "undefined"){
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
vm.appointment_step_form_data.selected_end_time = "";
}
if(selected_staffmember_id == "any_staff" ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_get_any_staffmember_id",
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
if( "undefined" != vm.appointment_step_form_data.bookingpress_selected_bring_members && 0 < vm.appointment_step_form_data.bookingpress_selected_bring_members ){
postData.selected_bring_members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
if( vm.is_bring_anyone_with_you_activated == 1 ){
vm.bookingpress_repeat_custom_form_fields( vm.appointment_step_form_data.selected_service );
}
} else {
postData.selected_bring_members = 1;
}
return axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
if( 1 > response.data.staffmember_id ){
for( let s in vm.bookingpress_staffmembers_details ){
let staffmember_details = vm.bookingpress_staffmembers_details[s];
let staffmember_selected_services = staffmember_details.assigned_service_details.includes(vm.appointment_step_form_data.selected_service);
if( staffmember_selected_services ){
let staffmember_id = staffmember_details.bookingpress_staffmember_id;
if( "undefined" != typeof vm.bookingpress_disabled_staffmember && vm.bookingpress_disabled_staffmember.indexOf( staffmember_id ) < 0 ){
response.data.staffmember_id = staffmember_id;
}
}
}
}
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.selected_staff_member_id = response.data.staffmember_id;
vm.appointment_step_form_data.is_staff_exists = "1";
let set_service_visibility = false;
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ response.data.staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
} else {
if( "staffmembers" == vm.bookingpress_current_tab && "" != vm.appointment_step_form_data.selected_staff_member_id ){
set_service_visibility = true;
}
}
if( "service" == vm.bookingpress_current_tab || true == set_service_visibility ){
let f = 0;
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( response.data.staffmember_id.toString() ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ response.data.staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
if( "" != first_service_category ){
for( let c of vm.service_categories ){
if( c.bookingpress_category_id == first_service_category ){
vm.bpa_select_category( c.bookingpress_category_id, c.bookingpress_category_name );
break;
}
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( response.data.staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
vm.bookingpress_all_categories[c].is_visible = true;
let current_category = vm.bookingpress_all_categories[c];
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
vm.isLoadServiceLoader = "0";
/* vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1); */
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( response.data.staffmember_id );
}
}
vm.bpa_select_category( "" );
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
}else{
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = selected_staffmember_id;
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.is_any_staff_option_selected = is_any_staff_option_selected;
vm.appointment_step_form_data.selected_staff_member_id = selected_staffmember_id;
if( vm.is_staff_first_step == 1 ){
vm.appointment_step_form_data.selected_category = "-1";
vm.appointment_step_form_data.selected_service = "";
let visible_service_ids = [];
let first_service_category = "";
for( let x in vm.bpasortedServices ){
let elm = vm.bpasortedServices[x];
if( "undefined" != typeof elm.assigned_staffmembers && -1 < elm.assigned_staffmembers.indexOf( selected_staffmember_id ) && false == elm.is_disabled ){
vm.bpasortedServices[x].is_visible = true;
vm.bpasortedServices[x].hide_for_staff = false;
if( "" == first_service_category ){
first_service_category = elm.bookingpress_category_id;
}
vm.appointment_step_form_data.base_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
vm.bpasortedServices[x].service_price_without_currency = vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price;
let selected_staffprice = vm.bookingpress_price_with_currency_symbol( vm.bpasortedServices[x].staff_member_details[ selected_staffmember_id ].bookingpress_service_price );
vm.bpasortedServices[x].bookingpress_service_price = selected_staffprice;
visible_service_ids.push( elm.bookingpress_service_id );
} else {
vm.bpasortedServices[x].is_visible = false;
vm.bpasortedServices[x].hide_for_staff = true;
}
}
let hidden_category_for_staff = [];
for( let ci in vm.service_categories ){
let current_category = vm.service_categories[ci];
let category_id = current_category.bookingpress_category_id;
let category_staff = current_category.bookingpress_staffmembers;
if( category_staff.indexOf( selected_staffmember_id.toString() ) < 0 ){
hidden_category_for_staff.push( category_id );
}
}
if( "" != first_service_category ){
for( let c in vm.bookingpress_all_categories ){
let current_category = vm.bookingpress_all_categories[c];
vm.bookingpress_all_categories[c].is_visible = true;
if( current_category.category_id == first_service_category ){
vm.bpa_select_category( current_category.category_id, current_category.category_name );
} else {
if( hidden_category_for_staff.indexOf( current_category.category_id.toString() ) > -1 ){
vm.bookingpress_all_categories[c].is_visible = false;
}
}
}
}
} else {
if( "" != vm.appointment_step_form_data.selected_service ){
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_staff_details = selected_service_data.staff_member_details[ selected_staffmember_id ];
let selected_staff_price = service_staff_details.bookingpress_service_price;
vm.appointment_step_form_data.service_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.base_price_without_currency = selected_staff_price;
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol( selected_staff_price );
}
}
let step_data = "staffmembers";
let f = 0;
if( "staffmembers" == vm.bookingpress_current_tab ){
vm.bookingpress_step_navigation(vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].next_tab_name, vm.bookingpress_sidebar_step_data[step_data].previous_tab_name, 1);
} else {
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id );
}
}
}
vm.bpa_select_category( "" );
},
bookingpress_show_bring_anyone_on_staffselection( selected_staffmember_id ){
const vm = this;
/** Enable Bring Any one if the service has only 1 capacity but the selected staff has more that 1 capacity */
let is_bring_anone_displayed = document.querySelectorAll(".--bpa-sao-guest-module");
if( "" == selected_staffmember_id || 1 > selected_staffmember_id ){
return false;
}
let selected_service = vm.appointment_step_form_data.selected_service;
if( "" == selected_service ){
return false;
}
let staffmember_details = vm.bookingpress_staffmembers_details;
for( let s in staffmember_details ){
let current_staffmember = staffmember_details[s];
let staffmember_id = current_staffmember.bookingpress_staffmember_id;
if( staffmember_id == selected_staffmember_id ){
let assigned_service_price_list = current_staffmember.assigned_service_price_details;
let max_capacity = assigned_service_price_list[ selected_service ].assigned_service_capacity;
let min_capacity = assigned_service_price_list[ selected_service ].assigned_service_min_capacity;
if( "undefined" == typeof vm.bookingpress_bring_anyone_with_you_details[selected_service] ){
vm.bookingpress_bring_anyone_with_you_details[selected_service] = {
"bookingpress_service_id": selected_service,
"bookingpress_service_max_capacity": parseInt(max_capacity),
"bookingpress_service_min_capacity": parseInt(min_capacity),
};
} else {
vm.bookingpress_bring_anyone_with_you_details[selected_service].bookingpress_service_max_capacity = parseInt(max_capacity);
vm.bookingpress_bring_anyone_with_you_details[selected_service].bookingpress_service_min_capacity = parseInt(min_capacity);
}
vm.appointment_step_form_data.service_max_capacity = parseInt(max_capacity);
vm.appointment_step_form_data.service_min_capacity = parseInt(min_capacity);
}
}
},
bookingpress_is_in_viewport(element) {
const rect = element.getBoundingClientRect();
return (
rect.bottom > 0 &&
rect.right > 0 &&
rect.top < (window.innerHeight || document.documentElement.clientHeight) &&
rect.left < (window.innerWidth || document.documentElement.clientWidth)
);
},
bookingpress_close_extra_drawer(){
const vm = this;
if( "undefined" != typeof vm.bpa_show_extras_drawer && false == vm.bpa_show_extras_drawer ){
return;
}
let selected_service = vm.appointment_step_form_data.selected_service;
let selected_service_focus = document.getElementById("bap-service-" + selected_service);
const target = document.querySelector(".bpa-front-dc--service-body");
if(selected_service_focus && this.bookingpress_is_in_viewport(target)){
selected_service_focus.focus();
}
vm.appointment_step_form_data.selected_service = "";
vm.appointment_step_form_data.selected_service_name = "";
vm.appointment_step_form_data.selected_service_price = "";
vm.appointment_step_form_data.service_price_without_currency = "";
if( "" != selected_service ){
let selected_service_data = vm.bookingpress_all_services_data[ selected_service ];
let service_extras = ( "undefined" != typeof selected_service_data.service_extras ) ? selected_service_data.service_extras : false;
if( false != service_extras ){
for( let se in service_extras ){
vm.appointment_step_form_data.bookingpress_selected_extra_details[ se ].bookingpress_is_selected = false;
vm.appointment_step_form_data.bookingpress_selected_extra_details[ se ].bookingpress_selected_qty = 1;
}
}
}
vm.bookingpress_open_extras_drawer = "false";
document.body.classList.remove( "--bpa-open-advance-drawer" );
/** reset bring anyone details */
if( 1 == vm.is_bring_anyone_with_you_activated ){
vm.appointment_step_form_data.bookingpress_selected_bring_members = 1;
let members = vm.appointment_step_form_data.bookingpress_selected_bring_members;
let uniqueId = vm.appointment_step_form_data.bookingpress_uniq_id;
let uniqueId2 = uniqueId.split("").reverse().join("");
let salt = `${uniqueId}${members}${uniqueId2}`;
let token = btoa( salt );
vm.appointment_step_form_data.multiple_quantity_token = token;
}
},
bookingpress_get_service_capacity(){
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
const vm = this;
var postData = {
action: "bookingpress_get_service_max_capacity",
service_id: vm.appointment_step_form_data.selected_service,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
vm.appointment_step_form_data.service_max_capacity = response.data.max_capacity
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_service_advance_see_less(){
const vm = this;
vm.service_advance_see_less = "1";
vm.bookingpress_close_extra_drawer();
},
bookingpress_load_more_extras(){
const vm = this;
if(vm.is_load_more_extras == "0"){
vm.is_load_more_extras = "1";
}else{
vm.is_load_more_extras = "0";
}
},
bpa_focus_select_elm( $el ){
const vm = this;
setTimeout(function(){
let elm = $el.querySelector(".el-input.is-focus");// .el-input.is-focus");
let parentNode = vm.BPAGetParents( elm, ".bpa-bd-fields--sel-container" );
if( parentNode.length > 0 ){
let firstParent = parentNode[0];
firstParent.classList.add( "bpa-sel--focus" );
}
},100);
},
bpa_remove_focus_select_elm($el){
let elm = document.querySelector( ".bpa-sel--focus" );
},
bookingpress_selectpicker_set_position( flag ){
const vm = this;
if( true == flag ){
let is_admin_bar_visible = ( document.getElementById("wpadminbar") != null && document.getElementById("wpadminbar").getBoundingClientRect().width > 0 && document.getElementById("wpadminbar").getBoundingClientRect().height > 0 ) ? true : false;
if( document.querySelector(".bpa-focused-select") != null && is_admin_bar_visible ) {
setTimeout(function(){
let top_pos = document.querySelector(".bpa-focused-select").style.top;
top_pos = parseInt( top_pos.replace("px","") );
document.querySelector(".bpa-focused-select").style.top = ( top_pos + 32 ) + "px";
},10);
}
if( document.querySelector(".bpa-focused-select") != null ) {
setTimeout(function(){
const allselectcontainer = document.querySelectorAll(".bpa-bd-fields--sel-container");
if(typeof allselectcontainer != "undefined"){
var has_added = false;
allselectcontainer.forEach((selcontItem) => {
var questyle = selcontItem.querySelector(".bpa-focused-select");
if(typeof questyle != "undefined"){
const display = window.getComputedStyle(questyle).display;
if(display != "none" && !has_added){
selcontItem.classList.add( "bpa-sel--focus" );
has_added = true;
}
}
});
}
},100);
}
}
if( false == flag ){
if( document.querySelector(".bpa-bd-fields--sel-container") != null ) {
let elm = document.querySelector(".bpa-bd-fields--sel-container")
const range_inputs = document.querySelectorAll(".bpa-bd-fields--sel-container");
for (const range_input of range_inputs) {
range_input.classList.remove( "bpa-sel--focus" );
}
}
}
},
bookingpress_set_datepicker_position( event ){
let popperElm = document.querySelector(".bpa-custom-datepicker");
if( popperElm != null ){
let is_admin_bar_visible = ( document.getElementById("wpadminbar") != null && document.getElementById("wpadminbar").getBoundingClientRect().width > 0 && document.getElementById("wpadminbar").getBoundingClientRect().height > 0 ) ? true : false;
if( is_admin_bar_visible ){
setTimeout(function(){
let top_pos = popperElm.style.top;
top_pos = parseInt( top_pos.replace("px","") );
popperElm.style.top = ( top_pos + 32 ) + "px";
},10);
}
}
},
bookingpress_get_service_categories_from_staffmembers(){
const vm = this;
var bkp_wpnonce_pre = "4ac51a523d";
var bkp_wpnonce_pre_fetch = document.getElementById("_wpnonce");
if(typeof bkp_wpnonce_pre_fetch=="undefined" || bkp_wpnonce_pre_fetch==null)
{
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre;
}
else {
bkp_wpnonce_pre_fetch = bkp_wpnonce_pre_fetch.value;
}
var postData = {
action: "bookingpress_get_service_cat_details",
staffmember_id: vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id,
_wpnonce: bkp_wpnonce_pre_fetch
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function (response)
{
if(response.data.variant == "success"){
vm.service_categories = response.data.service_categories_data;
var bookingpress_first_cat_id = response.data.first_cat_id;
vm.services_data = [];
setTimeout(function(){
vm.selectStepCategory(bookingpress_first_cat_id);
}, 500);
}
}
.bind( this ) )
.catch( function (error) {
console.log(error);
});
},
bookingpress_update_staffmember_data( number_of_guests, selected_service_id = "" ){
const vm = this;
vm.bookingpress_disabled_staffmember = [];
let selected_service = vm.appointment_step_form_data.selected_service;
if( selected_service == "" || ( (selected_service_id != "") && (selected_service != selected_service_id) ) ){
selected_service = selected_service_id;
}
let guests_count = number_of_guests - 1;
let staffmember_details = vm.bookingpress_staffmembers_details;
for( let s in staffmember_details ){
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = true;
let current_staffmember = staffmember_details[s];
let staffmember_id = current_staffmember.bookingpress_staffmember_id;
let assigned_service_price_list = current_staffmember.assigned_service_price_details;
if( "undefined" != typeof assigned_service_price_list[ selected_service ] ){
let max_capacity = assigned_service_price_list[ selected_service ].assigned_service_capacity;
if( max_capacity < (guests_count + 1) ){
if( "undefined" == typeof vm.bookingpress_disabled_staffmember ){
vm.bookingpress_disabled_staffmember = [];
}
vm.bookingpress_disabled_staffmember.push( staffmember_id );
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = false;
if( vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == staffmember_id ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
}
}
if( vm.is_bring_anyone_with_you_activated == "1" ){
let min_capacity = assigned_service_price_list[ selected_service ].assigned_service_min_capacity;
if( min_capacity > (guests_count + 1) ){
if( "undefined" == typeof vm.bookingpress_disabled_staffmember ){
vm.bookingpress_disabled_staffmember = [];
}
vm.bookingpress_disabled_staffmember.push( staffmember_id );
vm.bookingpress_staffmembers_details[s].is_display_staff_with_flag = false;
if( vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id == staffmember_id ){
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.selected_staff_member_id = "";
vm.appointment_step_form_data.selected_staff_member_id = "";
vm.appointment_step_form_data.bookingpress_selected_staff_member_details.staff_member_id = "";
}
}
}
}
}
},
bookingpress_close_extra_drawer_on_mouseup(){
const vm = this;
window.addEventListener( "mouseup", function(e){
if( null != document.querySelector(".bpa-front-dc--service-body") ){
let div = document.querySelector(".bpa-front-dc--service-body");
let scrollbarWidth = div.offsetWidth - div.clientWidth;
let scrollbarHeight = div.offsetHeight - div.clientHeight;
let isVerticalScrollbarClick = (e.offsetX >= div.clientWidth && e.offsetX <= div.offsetWidth );
let isHorizontalScrollbarClick = e.offsetY >= div.clientHeight;
if (scrollbarWidth > 0 && isVerticalScrollbarClick) {
return;
}
}
let elem = e.target;
let htmlWidth = document.querySelector("html").offsetWidth;
if( htmlWidth < e.clientX ){
return;
}
let parentNode = vm.BPAGetParents( elem, ".bpa-fm--service__advance-options" );
let parentNodeBawy = vm.BPAGetParents( elem, ".bpa-fm--service__advance-options-popper" );
let is_mob = false;
let bpa_parent_container = document.querySelector( ".bpa-frontend-main-container" );
let is_visible = true;
if( null != bpa_parent_container && 1 > bpa_parent_container.offsetWidth ){
is_visible = false;
}
if( parentNode.length < 1 && parentNodeBawy.length < 1 && "true" == vm.bookingpress_open_extras_drawer && "service" == vm.bookingpress_current_tab && "true" == vm.bookingpress_open_extras_drawer && true == is_visible ){
let allow_close_drawer = wp.hooks.applyFilters( "bpa_allow_close_draer", true, is_visible, elem, parentNode, parentNodeBawy );
if( true == allow_close_drawer ){
let mob_extra = document.querySelector( ".bpa-fm--service__advance-options.--bpa-is-mob" );
if( mob_extra == null ){
vm.bookingpress_close_extra_drawer();
} else {
let mob_pos = mob_extra.getBoundingClientRect();
if( mob_pos.width == 0 && mob_pos.height == 0 ){
vm.bookingpress_close_extra_drawer();
}
}
}
}
});
},
BPAGetParents( elem, selector ){
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
var parents = [];
for (; elem && elem !== document; elem = elem.parentNode) {
if (selector) {
if (elem.matches(selector)) {
parents.push(elem);
}
continue;
}
parents.push(elem);
}
return parents;
},
bookingpress_get_formatted_datetime(event,field_meta_key,is_time_enabled) {
if(event != null){
if(is_time_enabled == true) {
this.appointment_step_form_data["form_fields"][field_meta_key] = this.get_formatted_datetime(event);
} else {
this.appointment_step_form_data["form_fields"][field_meta_key] = this.get_formatted_date(event);
}
}
},
openExtraServicePopover() {
// Access the popover methods directly
const vm = this;
this.$nextTick( () =>{
vm.$refs.extra_service_desc_popover.doToggle();
});
},
openRecurringSessionPopover() {
const vm = this;
this.$nextTick( () =>{
// Access the popover methods directly
vm.$refs.recurring_session_desc_popover.doToggle();
});
},
BPACustomerFileUpload(response, file, fileList){
const vm = this;
let ref = response.reference;
if( response.error == 1 ){
vm.$refs[ ref ][0].$options.parent.validateMessage = response.msg;
vm.$refs[ ref ][0].$options.parent.validateState = "error";
vm.$refs[ ref ][0].clearFiles();
} else {
vm.$refs[ref][0].$options.parent.validateMessage = "";
vm.$refs[ref][0].$options.parent.validateState = "";
const uploadUrl = response.upload_url;
const fileRef = response.file_ref;
if (Array.isArray(vm.appointment_step_form_data[fileRef])) {
vm.appointment_step_form_data[fileRef].push(uploadUrl);
} else if (vm.appointment_step_form_data[fileRef]) {
vm.appointment_step_form_data[fileRef] = [
vm.appointment_step_form_data[fileRef],
uploadUrl,
];
} else {
vm.appointment_step_form_data[fileRef] = [uploadUrl];
}
vm.appointment_step_form_data.form_fields[fileRef] = vm.appointment_step_form_data[fileRef];
}
},
BPACustomerFileUploadError(err, file, fileList){
/** Need to handle error but currently no error is reaching to this function */
if( file.status == "fail" ){
console.log( err );
}
},
BPACustomerhandleFileExceed(files, fileList ) {
const vm = this;
vm.bookingpress_set_error_msg( vm.appointment_step_form_data.bpa_fileupload_max_limit_reach_msg );
},
BPACustomerFileUploadRemove( file, fileList ){
const vm = this;
let response = file.response;
vm.appointment_step_form_data[ response.file_ref ] = "";
vm.appointment_step_form_data.form_fields[ response.file_ref ] = "";
let postData = {
action:"bpa_remove_form_file",
_wpnonce: "4ac51a523d",
uploaded_file_name: response.upload_file_name
};
axios.post( appoint_ajax_obj.ajax_url, Qs.stringify( postData ) )
.then( function( response ){
}).catch( function( error ){
});
},
BPAConvertBytesToMB( bytes){
return (bytes / (1024 * 1024)).toFixed(0);
},
bookingpress_reset_selected_timeslot_data(){
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_after_service_selection && "1" == vm.appointment_step_form_data.bpa_datetime_after_service_selection ){
return;
}
vm.appointment_step_form_data.selected_start_time = "";
},
bookingpress_reset_custom_duration_data() {
const vm = this;
if( "undefined" != typeof vm.appointment_step_form_data.bpa_datetime_before_staffselection && 1 != vm.appointment_step_form_data.bpa_datetime_before_staffselection ){
vm.appointment_step_form_data.custom_service_duration_value = "";
vm.appointment_step_form_data.custom_service_duration_real_value = "";
vm.appointment_step_form_data.custom_service_real_price ="" ;
vm.appointment_step_form_data.selected_date = "";
vm.appointment_step_form_data.selected_start_time = "";
}
if(vm.is_coupon_activated == "1" && vm.appointment_step_form_data.coupon_code != ""){
vm.bookingpress_remove_coupon_code();
}
;
},
bookingpress_step_navigator( current_tab, next_tab, previous_tab ){
let vm = this;
let is_strict_validate = false;
let current_selected_tab = vm.bookingpress_current_tab;
let sidebar_step_data = vm.bookingpress_sidebar_step_data;
let sidebar_keys = Object.keys( sidebar_step_data );
let current_tab_pos = sidebar_keys.indexOf( current_selected_tab ); /** Current Tab Position */
let selected_tab_pos = sidebar_keys.indexOf( current_tab ); /** Clicked Tab Position */
if( selected_tab_pos < current_tab_pos ){
vm.bookingpress_step_navigation( current_tab, next_tab, previous_tab, 0 );
} else {
vm.bookingpress_step_navigation( current_tab, next_tab, previous_tab );
}
},
bookingpress_change_service_extras_event( is_checked ){
const vm = this;
},
bookingpress_change_service_extras_qty( is_checked ){
const vm = this;
vm.$forceUpdate();
},
bookingpress_set_extra_service_error_msg(error_msg){
const vm = this;
vm.is_display_extra_service_error = 1;
vm.extra_service_error_msg = error_msg;
setTimeout(function(){
vm.bookingpress_remove_extra_service_error_msg();
},6000);
},
bookingpress_remove_extra_service_error_msg(){
const vm = this;
vm.is_display_extra_service_error = "0";
vm.extra_service_error_msg = "";
},
bookingpress_change_custom_duration(event) {
const vm = this;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
});
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.is_display_custom_duration_day_loader = true;
vm.v_calendar_attributes = [];
vm.bookingpress_booking_before_block_date = [];
vm.bookingpress_disable_date();
}else{
vm.is_display_custom_duration_day_loader = true;
vm.bpa_skip_loading_csd_slot = true;
let selected_service = app.appointment_step_form_data.selected_service;
let selected_date = app.appointment_step_form_data.selected_date;
vm.bookingpress_disable_date_xhr_v2( selected_service, selected_date, true );
}
},
bookingpress_change_custom_duration_first(event){
const vm = this;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
});
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.is_display_custom_duration_loader = true;
vm.v_calendar_attributes = [];
vm.bookingpress_booking_before_block_date = [];
vm.bookingpress_disable_date();
}else{
vm.is_display_custom_duration_loader = true;
let selected_service = app.appointment_step_form_data.selected_service;
let selected_date = app.appointment_step_form_data.selected_date;
vm.bookingpress_disable_date_xhr_v2( selected_service, selected_date, true );
}
},
handle_staff_key_events(event){
const focusableItems = document.querySelectorAll(".bpa-front-module--staff-item-row .bpa-front-sm--col:not([style*='display: none']) .bpa-front-sm-card"); // Update with your actual class
let currentIndex = -1;
// Find the currently focused item
focusableItems.forEach((item, index) => {
if (item === document.activeElement) {
currentIndex = index;
}
});
if (currentIndex === -1) return; // No focusable item is selected
if (event.key === "ArrowRight") {
event.preventDefault();
// Move to the next item
let nextIndex = (currentIndex + 1) % focusableItems.length;
focusableItems[nextIndex].focus();
} else if(event.key === "ArrowDown"){
event.preventDefault();
let nextIndex = (currentIndex + 3) % focusableItems.length;
focusableItems[nextIndex].focus();
}else if (event.key === "ArrowLeft" ) {
event.preventDefault();
// Move to the previous item
let prevIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if(event.key === "ArrowUp"){
event.preventDefault();
let prevIndex = (currentIndex - 3 + focusableItems.length) % focusableItems.length;
focusableItems[prevIndex].focus();
}else if( "Tab" == event.key && event.shiftKey && 0 === currentIndex ){
event.preventDefault();
let focusElement = "";
focusElement = document.querySelector(".bpa-front-tabs--panel-body.__bpa-is-active .bpa_search_service_data_cls .bpa_search_cls .el-input__inner");
if(focusElement == null){
focusElement = document.querySelector(".bpa-front-tab-menu--item.__bpa-is-active");
}
if(typeof this.bpaMoveFocusToPreviousElement !== "undefined"){
this.bpaMoveFocusToPreviousElement( this.$refs.staffmemberItemsGroup, focusElement);
}
}
},
focusFirstStaff(){
this.$nextTick( () =>{
const is_any_staff_col = document.querySelectorAll(".bpa-front-module--staff-item-row .--bpa-sm-is-any-staff-col .bpa-front-sm-card");
if(is_any_staff_col.length){
is_any_staff_col[0].focus();
}else if( this.$refs.staffmember.length ){
this.$refs.staffmember[0].focus();
}
});
},
bookingpress_change_custom_duration(event) {
const vm = this;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
});
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.is_display_custom_duration_day_loader = true;
vm.v_calendar_attributes = [];
vm.bookingpress_booking_before_block_date = [];
vm.bookingpress_disable_date();
}else{
vm.is_display_custom_duration_day_loader = true;
vm.bpa_skip_loading_csd_slot = true;
let selected_service = app.appointment_step_form_data.selected_service;
let selected_date = app.appointment_step_form_data.selected_date;
vm.bookingpress_disable_date_xhr_v2( selected_service, selected_date, true );
}
},
bookingpress_change_custom_duration_first(event){
const vm = this;
vm.bookingpress_custom_service_durations_slot.forEach(function(item,index,arr){
if(item.value == event ) {
vm.appointment_step_form_data.selected_service_price = item.service_price;
vm.appointment_step_form_data.service_price_without_currency = item.service_price_without_currency;
vm.appointment_step_form_data.custom_service_duration_real_value = item.real_value;
vm.appointment_step_form_data.custom_service_real_price = item.real_price;
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.appointment_step_form_data.selected_service_price = vm.bookingpress_price_with_currency_symbol(item.service_price_without_currency);
vm.appointment_step_form_data.selected_service_duration = (item.real_value)/(24*60);
vm.appointment_step_form_data.selected_date = "";
}
}
});
if(vm.appointment_step_form_data.selected_service_duration_unit == "d"){
vm.is_display_custom_duration_loader = true;
vm.v_calendar_attributes = [];
vm.bookingpress_booking_before_block_date = [];
vm.bookingpress_disable_date();
}else{
vm.is_display_custom_duration_loader = true;
let selected_service = app.appointment_step_form_data.selected_service;
let selected_date = app.appointment_step_form_data.selected_date;
vm.bookingpress_disable_date_xhr_v2( selected_service, selected_date, true );
}
},
loadCaptchaJs(is_listing = false){
const vm = this
var script_url = "https://www.google.com/recaptcha/api.js?hl=nl&render=6LfhuZkbAAAAABH5vT_KSnfZuSHl2aGYWFncFZC1"
if(is_listing == false)
{
script_url = script_url+"&onload=render_bookingpress_captcha_v3"
}
var script = document.createElement("script")
script.src = script_url
script.async = true
var bookingpress_captcha_v3 = "bookingpress_captcha_"+bookingpress_uniq_id_js_var
vm[bookingpress_captcha_v3] = ""
var dsize = "normal"
window.addEventListener("load", function() { (function($) {
jQuery(document).ready(function (){
if( !window["bookingpress_recaptcha_v3"] ){
window["bookingpress_recaptcha_v3"] = {}
}
window["bookingpress_recaptcha_v3"][bookingpress_captcha_v3] = {
size : dsize
};
}); })(jQuery); })
document.head.appendChild(script)
},
initMap(){
const vm = this
var bookingpress_grecaptcha_site_key = "6LfhuZkbAAAAABH5vT_KSnfZuSHl2aGYWFncFZC1"
var bookingpress_grecaptcha_language = "nl"
if(vm.enable_google_captcha == "true" && bookingpress_grecaptcha_site_key != "" && bookingpress_grecaptcha_language != "") {
vm.loadCaptchaJs()
}
window.render_bookingpress_captcha_v3 = function() {
if (typeof window["bookingpress_captcha_v3"] != "undefined" && typeof grecaptcha != "undefined") {
grecaptcha.ready(function() {
grecaptcha.execute(bookingpress_grecaptcha_site_key).then(function(bookingpress_recaptcha_token) {
for (var bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
var bookingpress_grecaptcha_fields_v3 = bookingpress_grecaptcha_field_v3
var bookingpress_grecaptcha_size = window["bookingpress_recaptcha_v3"][bookingpress_grecaptcha_field_v3]["size"]
bookingpress_grecaptcha_fields_v3 = grecaptcha.render(bookingpress_grecaptcha_field_v3, {
"sitekey": bookingpress_grecaptcha_site_key,
"size": bookingpress_grecaptcha_size,
})
vm["appointment_step_form_data"][bookingpress_grecaptcha_field_v3] = bookingpress_recaptcha_token
}
});
});
}else{
var bookingpress_captcha_int = 0
var bookingpress_captcha_interval = setInterval(function(){
if (typeof(window["bookingpress_recaptcha_v3"]) != "undefined"){
grecaptcha.ready(function() {
grecaptcha.execute(bookingpress_grecaptcha_site_key).then(function(bookingpress_recaptcha_token) {
for (var bookingpress_grecaptcha_field_v3 in window["bookingpress_recaptcha_v3"]) {
var bookingpress_grecaptcha_fields_v3 = bookingpress_grecaptcha_field_v3;
var bookingpress_grecaptcha_size = window["bookingpress_recaptcha_v3"][bookingpress_grecaptcha_field_v3]["size"]
bookingpress_grecaptcha_fields_v3 = grecaptcha.render(bookingpress_grecaptcha_field_v3, {
"sitekey": bookingpress_grecaptcha_site_key,
"size": bookingpress_grecaptcha_size,
})
vm["appointment_step_form_data"][bookingpress_grecaptcha_field_v3] = bookingpress_recaptcha_token
clearInterval(bookingpress_captcha_interval)
}
});
});
}else{
bookingpress_captcha_int++;
if(bookingpress_captcha_int == 10){
clearInterval(bookingpress_captcha_interval)
}
}
}, 1500)
}
}
},
bookingpress_reload_captcha() {
var bookingpress_grecaptcha_site_key = "6LfhuZkbAAAAABH5vT_KSnfZuSHl2aGYWFncFZC1";
if (typeof(window["bookingpress_recaptcha_v3"]) != "undefined" && typeof(grecaptcha) != "undefined") {
return new Promise( (res,rej) => {
grecaptcha.ready( () =>{
grecaptcha.execute(bookingpress_grecaptcha_site_key).then(function(bookingpress_recaptcha_token) {
return res(bookingpress_recaptcha_token);
})
} );
} );
}
},
start(e) {
const vm = this;
e.preventDefault();
let metakey = e.target.getAttribute("data-metakey" );
vm.appointment_step_form_data.drawing[metakey] = true;
},
stop(e) {
const vm = this;
let metakey = e.target.getAttribute("data-metakey" );
vm.appointment_step_form_data.drawing[metakey] = false;
vm.appointment_step_form_data.prevX[metakey] = vm.appointment_step_form_data.prevY[metakey] = null;
let signatureValue = e.target.toDataURL();
vm.appointment_step_form_data.form_fields[ e.target.getAttribute("data-metakey" ) ] = signatureValue;
},
draw(e) {
const vm = this;
let metakey = e.target.getAttribute("data-metakey" );
if (!vm.appointment_step_form_data.drawing[metakey]) return;
let clientX, clientY;
if (e.type === 'touchmove') {
clientX = e.touches[0].clientX;
clientY = e.touches[0].clientY;
} else {
clientX = e.clientX;
clientY = e.clientY;
}
const canvas = document.querySelector("canvas[data-metakey=\"" + metakey + "\" ]");
if(canvas && metakey != ""){
const rect = canvas.getBoundingClientRect();
vm.currX = clientX - rect.left;
vm.currY = clientY - rect.top;
if (vm.appointment_step_form_data.prevX[metakey] === null || vm.appointment_step_form_data.prevY[metakey] === null) {
vm.appointment_step_form_data.prevX[metakey] = vm.currX;
vm.appointment_step_form_data.prevY[metakey] = vm.currY;
}
if(typeof vm.appointment_step_form_data.ctx[metakey] === "undefined"){
vm.appointment_step_form_data.ctx[metakey] = canvas.getContext("2d");
}
vm.appointment_step_form_data.ctx[metakey].beginPath();
vm.appointment_step_form_data.ctx[metakey].moveTo(vm.appointment_step_form_data.prevX[metakey], vm.appointment_step_form_data.prevY[metakey]);
vm.appointment_step_form_data.ctx[metakey].lineTo(vm.currX, vm.currY);
vm.appointment_step_form_data.ctx[metakey].strokeStyle = 'black';
vm.appointment_step_form_data.ctx[metakey].lineWidth = 2;
vm.appointment_step_form_data.ctx[metakey].stroke();
vm.appointment_step_form_data.ctx[metakey].closePath();
vm.appointment_step_form_data.prevX[metakey] = vm.currX;
vm.appointment_step_form_data.prevY[metakey] = vm.currY;
}
},
clearSignature(e) {
let metakey = e.target.getAttribute("data-metakey" );
const vm = this;
const canvas = document.querySelector("canvas[data-metakey=\"" + metakey + "\" ]");
vm.appointment_step_form_data.ctx[metakey].clearRect(0, 0, canvas.width, canvas.height);
vm.signature = "";
vm.appointment_step_form_data.prevX[metakey] = vm.appointment_step_form_data.prevY[metakey] = null;
vm.appointment_step_form_data.form_fields[ metakey ] = "";
vm.appointment_step_form_data.drawing[metakey] = false;
vm.appointment_step_form_data.prevX[metakey] = vm.appointment_step_form_data.prevY[metakey] = null;
vm.appointment_step_form_data.form_fields[ e.target.getAttribute("data-metakey" ) ] = "";
},
},
});
}
//# sourceURL=bookingpress_elements_locale-js-after
/* ]]> */