1jQuery(function ($) { 2 if (window.rpStFunctionsBound) { 3 return; 4 } 5 window.rpStFunctionsBound = true; 6 // Get Cookie 7 function rpress_getCookie(cname) { 8 var name = cname + "="; 9 var ca = document.cookie.split(';'); 10 for (var i = 0; i < ca.length; i++) { 11 var c = ca[i]; 12 while (c.charAt(0) == ' ') c = c.substring(1); 13 if (c.indexOf(name) != -1) return c.substring(name.length, c.length); 14 } 15 return ""; 16 } 17 function rpress_setCookie(cname, cvalue, exdays) { 18 var d = new Date(); 19 d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); 20 var expires = "expires=" + d.toUTCString(); 21 document.cookie = cname + "=" + cvalue + "; " + expires + ";path=/"; 22 } 23 function getSelectedLocationId(serviceType, $context) { 24 var selector = serviceType === 'pickup' 25 ? 'input[name="rpress_location_pickup"]' 26 : 'input[name="rpress_location"]'; 27 var locationId = ''; 28 29 if ($context && $context.length) { 30 locationId = $context.find(selector + ':checked').val() || ''; 31 } 32 33 if (!locationId) { 34 locationId = $(selector + ':checked').val() || ''; 35 } 36 37 if (!locationId) { 38 locationId = rpress_getCookie('branch'); 39 } 40 return locationId; 41 } 42 function getDateBlockSelector(serviceType) { 43 return serviceType === 'pickup' ? '.pickup-time-wraper' : '.delivery-time-wrapper'; 44 } 45 function getDateSelectSelector(serviceType) { 46 return serviceType === 'pickup' ? '#rpress_get_pickup_dates' : '#rpress_get_delivery_dates'; 47 } 48 function getModalContext($element) { 49 if ($element && $element.length) { 50 var $context = $element.closest('#rpressDateTime, #rpressModal'); 51 if ($context.length) { 52 return $context; 53 } 54 } 55 56 return $('#rpressDateTime'); 57 } 58 function getTimeWrap(serviceType, $context) { 59 var $wrap = $context.find('.rpress-time-preference-wrap').first(); 60 61 if ($wrap.length) { 62 return $wrap; 63 } 64 65 return $context.find(serviceType === 'pickup' ? '.rpress-pickup-time-wrap' : '.rpress-delivery-time-wrap').first(); 66 } 67 function ensureTimeWrapVisible(serviceType, $context) { 68 var $wrap = getTimeWrap(serviceType, $context); 69 70 if ($wrap.length) { 71 $wrap.css('display', 'flex'); 72 } 73 74 return $wrap; 75 } 76 function getDateSelect(serviceType, $context) { 77 return $context.find(getDateSelectSelector(serviceType)).first(); 78 } 79 function getHoursSelect(serviceType, $context) { 80 var selector = serviceType === 'pickup' 81 ? '#rpress-pickup-hours, #rpress-delivery-hours' 82 : '#rpress-delivery-hours'; 83 84 return $context.find(selector).first(); 85 } 86 function getHoursRow(serviceType, $context) { 87 var $hours = getHoursSelect(serviceType, $context); 88 var $row = $hours.closest('.rpress-service-hours-row'); 89 90 if ($row.length) { 91 return $row; 92 } 93 94 return $hours.closest('.rp-col-lg-12, .rp-col-md-12, .rp-col-sm-12, .rp-col-xs-12').first(); 95 } 96 function getNoticeRowSelector(serviceType) { 97 return '.rp-store-timing-notice-row[data-service-type="' + serviceType + '"]'; 98 } 99 function removeServiceNotice(serviceType, $context) { 100 getTimeWrap(serviceType, $context).find(getNoticeRowSelector(serviceType)).remove(); 101 }
102 function renderServiceNotice(serviceType, noticeText, $context) { 103 var $wrap = ensureTimeWrapVisible(serviceType, $context); 104 var $noticeRow = $wrap.find(getNoticeRowSelector(serviceType)).first(); 105 var $anchor = $wrap.find(getDateBlockSelector(serviceType)).closest('.rp-col-lg-12, .rp-col-md-12, .rp-col-sm-12, .rp-col-xs-12').last(); 106 107 if ($noticeRow.length) { 108 $noticeRow.find('.rp-store-timing-notice').text(noticeText); 109 return; 110 } 111 112 if (!$anchor.length) { 113 $anchor = $wrap.find('.rpress-service-type-message').last(); 114 } 115 116 $noticeRow = $('<div/>', { 117 'class': 'rp-col-lg-12 rp-col-md-12 rp-col-sm-12 rp-col-xs-12 rp-store-timing-notice-row', 118 'data-service-type': serviceType 119 }).append($('<div/>', { 120 'class': 'rp-store-timing-notice', 121 text: noticeText 122 })); 123 124 if ($anchor.length) { 125 $anchor.after($noticeRow); 126 } else { 127 $wrap.prepend($noticeRow); 128 } 129 } 130 function setHoursRowVisibility(serviceType, $context, isVisible) { 131 var $row = getHoursRow(serviceType, $context); 132 133 if ($row.length) { 134 $row.css('display', isVisible ? '' : 'none'); 135 } 136 } 137 function removeDateDropdown(serviceType, $context) { 138 getTimeWrap(serviceType, $context).find(getDateBlockSelector(serviceType)).remove(); 139 } 140 function renderDateDropdown(serviceType, rawDates, formattedDates, $context) { 141 var selectId = serviceType === 'pickup' ? 'rpress_get_pickup_dates' : 'rpress_get_delivery_dates'; 142 var labelText = serviceType === 'pickup' ? 'Select pickup order date' : 'Select delivery order date'; 143 var wrapperClass = serviceType === 'pickup' ? 'pickup-time-wraper' : 'delivery-time-wrapper'; 144 var labelClass = serviceType === 'pickup' ? 'pickup-time-text text-left' : 'delivery-time-text text-left'; 145 var optionsHtml = ''; 146 147 for (var i = 0; i < rawDates.length; i++) { 148 var optionLabel = (formattedDates && formattedDates[i]) ? formattedDates[i] : rawDates[i]; 149 optionsHtml += '<option value="' + rawDates[i] + '">' + optionLabel + '</option>'; 150 } 151 152 var html = '' + 153 '<div class="rp-col-lg-12 rp-col-md-12 rp-col-sm-12 rp-col-xs-12">' + 154 '<div class="' + wrapperClass + '">' + 155 '<div class="' + labelClass + '">' + labelText + '</div>' + 156 '<select id="' + selectId + '" class="rpress_get_delivery_dates rp-form-control">' + 157 optionsHtml + 158 '</select>' + 159 '</div>' + 160 '</div>'; 161 162 var $wrap = ensureTimeWrapVisible(serviceType, $context); 163 var $anchor = $wrap.find('.rpress-service-type-message').last(); 164 165 $wrap.find(getDateBlockSelector(serviceType)).remove(); 166 167 if (!$anchor.length) { 168 $anchor = $wrap.find(serviceType === 'pickup' ? '.pickup-time-text' : '.delivery-time-text').first(); 169 } 170 171 if ($anchor.length) { 172 $anchor.after(html); 173 } else { 174 $wrap.prepend(html); 175 } 176 } 177 function getNoticeText(serviceType) { 178 return serviceType === 'pickup' ? rp_st_vars.no_pickup_notice : rp_st_vars.no_delivery_notice; 179 } 180 function resolveNoticeText(serviceType, noticeText) { 181 var message = (noticeText || '').toString().trim(); 182 183 if (!message) { 184 message = (getNoticeText(serviceType) || '').toString().trim(); 185 } 186 187 return message || 'Sorry, we are closed for ordering now.'; 188 } 189 function showTimingToast(message) { 190 var title = window.rp_scripts && rp_scripts.error ? rp_scripts.error : 'Error'; 191 192 if (!message || typeof tata === 'undefined' || typeof tata.error !== 'function') { 193 return; 194 } 195 196 tata.error(title, message, { position: "tr" }); 197 } 198 function clearServiceSelectionCookies() { 199 rpress_setCookie('service_date', '', -1); 200 rpress_setCookie('delivery_date', '', -1); 201 rpress_setCookie('service_time', '', -1); 202 rpress_setCookie('service_time_text', '', -1); 203 } 204 function renderClosedSummaryNotice(noticeText) { 205 var message = (noticeText || '').toString().trim(); 206 207 if (!message) { 208 return; 209 } 210 211 $('#deliveryDate').text(message); 212 $('#deliveryTime').text(''); 213 } 214 function isPreOrderEnabled(serviceType) { 215 return serviceType === 'pickup' 216 ? rp_st_vars.pre_order_enable_pickup == "true" 217 : rp_st_vars.pre_order_enable_delivery == "true"; 218 } 219 function getServiceAsapText(serviceType) { 220 return serviceType === 'pickup' ? rp_st_vars.pickup_asap_text : rp_st_vars.delivery_asap_text; 221 } 222 function setTimeSelectLoading(serviceType, $context) { 223 ensureTimeWrapVisible(serviceType, $context); 224 removeServiceNotice(serviceType, $context); 225 setHoursRowVisibility(serviceType, $context, true); 226 var $hours = getHoursSelect(serviceType, $context); 227 228 if ($hours.length) { 229 $hours.html('<option value="">' + rpress_scripts.loading + '...</option>'); 230 } 231 }
232 function renderServiceHours(serviceType, hours, selectedDate, isStoreClosed, $context, noticeText) { 233 ensureTimeWrapVisible(serviceType, $context); 234 var $hours = getHoursSelect(serviceType, $context); 235 var selectedTime = rpress_getCookie('service_time'); 236 var optionsHtml = ''; 237 var slots = Array.isArray(hours) ? hours.slice() : []; 238 var enableAsap = rp_st_vars.enable_asap_option == "1"; 239 var enableAsapOnly = rp_st_vars.enable_asap_option_only == "1"; 240 var asapToken = 'ASAP'; 241 var isUnavailable = !!isStoreClosed || !slots.length; 242 var unavailableNotice = resolveNoticeText(serviceType, noticeText); 243 var $submitButton = $context.find('.rpress-editaddress-submit-btn'); 244 245 if (enableAsap && slots.length) { 246 slots.unshift(asapToken); 247 if (isPreOrderEnabled(serviceType) && selectedDate !== rp_st_vars.current_date) { 248 slots.shift(); 249 } 250 } 251 252 if (enableAsap && enableAsapOnly && slots.length) { 253 slots = [asapToken]; 254 } 255 256 if (!isUnavailable && $hours.length) { 257 for (var i = 0; i < slots.length; i++) { 258 var slot = slots[i]; 259 var label = slot; 260 var value = slot; 261 262 if (slot === asapToken) { 263 value = asapToken + getServiceAsapText(serviceType); 264 label = rp_st_vars.asap_txt + ' ' + getServiceAsapText(serviceType); 265 } else if (rp_st_vars.timeslot_mode === 'multiple' && i < slots.length - 1 && slots[i + 1] !== asapToken) { 266 label = slot + '-' + slots[i + 1]; 267 } 268 269 optionsHtml += '<option value="' + value + '">' + label + '</option>'; 270 } 271 272 $hours.html(optionsHtml); 273 274 if (selectedTime && $hours.find('option[value="' + selectedTime + '"]').length > 0) { 275 $hours.val(selectedTime); 276 } else { 277 $hours.val($hours.find('option:first').val()); 278 } 279 } else if ($hours.length) { 280 $hours.html(''); 281 } 282 283 if (isUnavailable) { 284 setHoursRowVisibility(serviceType, $context, false); 285 renderServiceNotice(serviceType, unavailableNotice, $context); 286 clearServiceSelectionCookies(); 287 renderClosedSummaryNotice(unavailableNotice); 288 } else { 289 removeServiceNotice(serviceType, $context); 290 setHoursRowVisibility(serviceType, $context, true); 291 } 292 293 if ($submitButton.length) { 294 $submitButton.toggle(!isUnavailable); 295 } else if (isUnavailable) { 296 $(".rpress-editaddress-submit-btn").hide(); 297 } else { 298 $(".rpress-editaddress-submit-btn").show(); 299 } 300 } 301 function requestServiceTimings(serviceType, selectedDate, $context) { 302 if (!selectedDate) { 303 selectedDate = rp_st_vars.current_date; 304 } 305 306 setTimeSelectLoading(serviceType, $context); 307 308 $.ajax({
309 type: "POST", 310 dataType: "json", 311 url: rp_st_vars.ajaxurl, 312 data: { 313 action: 'rp_st_render_timings', 314 selectedDate: selectedDate, 315 serviceType: serviceType, 316 chosen_location_id: getSelectedLocationId(serviceType, $context) 317 }, 318 success: function (response) { 319 if (!response || !response.success || !response.data) { 320 return; 321 } 322 323 var hours = serviceType === 'pickup' ? response.data.pickupHrs : response.data.deliveryHrs; 324 renderServiceHours(serviceType, hours, selectedDate, !!response.data.is_store_closed, $context, response.data.closed_message || ''); 325 } 326 }); 327 } 328 function syncLocationDateAndTime(serviceType, locationId, preferredDate, $context) { 329 if (!locationId) { 330 return; 331 } 332 333 setTimeSelectLoading(serviceType, $context); 334 335 $.ajax({
336 type: "POST", 337 dataType: "json", 338 url: rp_st_vars.ajaxurl, 339 data: { 340 action: 'rp_multilocation_get_location_store_time', 341 location_id: locationId, 342 service_type: serviceType, 343 selectedDate: preferredDate || '' 344 }, 345 success: function (response) { 346 if (!response || !response.success || !response.data) { 347 return; 348 } 349 350 var responseData = response.data; 351 var effectiveDate = responseData.selected_date || preferredDate || rp_st_vars.current_date; 352 var rawDates = responseData.date_range && responseData.date_range.raw_date ? responseData.date_range.raw_date : []; 353 var formattedDates = responseData.date_range && responseData.date_range.formatted_date ? responseData.date_range.formatted_date : []; 354 var timeData = responseData.delivery_time || {}; 355 var initialHours = serviceType === 'pickup' ? timeData.pickupHrs : timeData.deliveryHrs; 356 var hasInitialHours = Array.isArray(initialHours) && initialHours.length > 0; 357 var hasDateOptions = Array.isArray(rawDates) && rawDates.length > 0; 358 var closeMessage = responseData.closed_message || getNoticeText(serviceType) || 'Sorry, we are closed for ordering now.'; 359 var $dateSelect; 360 361 if (!hasDateOptions) { 362 removeDateDropdown(serviceType, $context); 363 if (!hasInitialHours && initialHours !== null) { 364 showTimingToast(closeMessage); 365 clearServiceSelectionCookies(); 366 renderClosedSummaryNotice(closeMessage); 367 } 368 369 // if (responseData.pre_order_status === 'enabled') { 370 // } 371 } 372 373 if (!formattedDates.length && rawDates.length) { 374 formattedDates = rawDates.slice(); 375 } 376 377 if (rawDates.length) { 378 renderDateDropdown(serviceType, rawDates, formattedDates, $context); 379 $dateSelect = getDateSelect(serviceType, $context); 380 381 if ($dateSelect.length) { 382 if ($dateSelect.find('option[value="' + effectiveDate + '"]').length === 0) { 383 effectiveDate = rawDates[0]; 384 } 385 386 $dateSelect.val(effectiveDate); 387 } 388 } 389 390 if (initialHours === null) { 391 requestServiceTimings(serviceType, effectiveDate, $context); 392 return; 393 } 394 395 if (!hasDateOptions && !hasInitialHours) { 396 renderServiceHours(serviceType, [], effectiveDate, true, $context, closeMessage); 397 return; 398 } 399 400 renderServiceHours(serviceType, initialHours, effectiveDate, !hasInitialHours, $context, closeMessage); 401 } 402 }); 403 } 404 function getLocationInputs(serviceType, $context) { 405 var selector = serviceType === 'pickup' ? 'input[name="rpress_location_pickup"]' : 'input[name="rpress_location"]'; 406 407 return $context.find(selector); 408 } 409 function initializeModalLocationTiming(serviceType, $context) { 410 var branch = rpress_getCookie('branch'); 411 var $inputs = getLocationInputs(serviceType, $context); 412 var $input = $inputs.filter(':checked').first(); 413 var preferredDate = ''; 414 415 if (branch) { 416 var $cookieInput = $inputs.filter('[value="' + branch + '"]').first(); 417 if ($cookieInput.length) { 418 $cookieInput.prop('checked', true); 419 $input = $cookieInput; 420 } 421 } 422 423 if (!$input.length) { 424 return; 425 } 426 427 preferredDate = getDateSelect(serviceType, $context).val() || rpress_getCookie('service_date') || ''; 428 429 if ($input.data('branchName')) { 430 rpress_setCookie('branch_name', encodeURIComponent($input.data('branchName')), 1
430); 431 } 432 433 syncLocationDateAndTime(serviceType, $input.val(), preferredDate, $context); 434 } 435 function versionCompare(v1, v2) { 436 if (!v1 || !v2) return 0; 437 438 const v1parts = v1.split('.').map(n => parseInt(n, 10)); 439 const v2parts = v2.split('.').map(n => parseInt(n, 10)); 440 441 for (let i = 0; i < Math.max(v1parts.length, v2parts.length); i++) { 442 const a = v1parts[i] ?? 0; // use nullish coalescing (handles undefined) 443 const b = v2parts[i] ?? 0; 444 if (a > b) return 1; 445 if (a < b) return -1; 446 } 447 return 0; 448 } 449 450 $(document.body).on('opened_service_options', function (event) { 451 $('.rpress_get_delivery_dates').trigger('change'); 452 //Remove the additional service date dropdown 453 // if (rp_st_vars.enabled_sevice_type == 'delivery_and_pickup') { 454 // $('.delivery-settings-wrapper#nav-pickup .delivery-time-wrapper:eq(0)').remove(); 455 // } 456 457 var delivery_hours = $('.rpress-allowed-delivery-hrs').find('option').length; 458 var delivery_close_time = rp_st_vars.today_store_close_delivery; 459 460 if (delivery_close_time) { 461 var specificTimeDate = new Date(); // Get the current date 462 specificTimeDate.setHours(0, 0, 0, 0); // Set the time to midnight 463 var specificTimeArray = delivery_close_time.match(/^(\d+):(\d+)(am|pm)$/i); // Extract hour, minute, and am/pm from the string 464 465 if (specificTimeArray !== null) { 466 467 var hour = parseInt(specificTimeArray[1]); 468 var minute = parseInt(specificTimeArray[2]); 469 var ampm = specificTimeArray[3].toLowerCase(); 470 471 if (ampm === 'pm' && hour !== 12) { 472 hour += 12; 473 } else if (ampm === 'am' && hour === 12) { 474 hour = 0; 475 } 476 477 specificTimeDate.setHours(hour, minute); // Set the specific time 478 479 var currentTime = new Date(); // Get the current date and time 480 481 } 482 483 if (specificTimeDate && delivery_hours == 0) { 484 var notice = rp_st_vars.no_delivery_notice; 485 $('.rpress-delivery-time-wrap').html('<h4 class="rp-store-timing-notice">' + notice + '</h4>'); 486 $('#nav-delivery-tab').click(function (e) { 487 $('.rpress-delivery-opt-update').hide(); 488 }) 489 var delivery_selected = $('#nav-delivery-tab').parent('li').hasClass('active'); 490 if (versionCompare(rp_st_vars.plugin_version, '2.0.7.4') <= 0) { 491 if (delivery_selected) { 492 $('#nav-delivery-tab').trigger('click'); 493 } 494 } 495 } else { 496 $('#nav-delivery-tab').click(function (e) { 497 $('.rpress-delivery-opt-update').show(); 498 }) 499 } 500 501 } 502 503 var pickup_hours = $('.rpress-allowed-pickup-hrs').find('option').length; 504 var pickup_close_time = rp_st_vars.today_store_close_pickup; 505 if (pickup_close_time) { 506 var specificTimeDatep = new Date(); // Get the current date 507 specificTimeDatep.setHours(0, 0, 0, 0); // Set the time to midnight 508 var specificTimeArrayp = pickup_close_time.match(/^(\d+):(\d+)(am|pm)$/i); // Extract hour, minute, and am/pm from the string 509 510 if (specificTimeArrayp !== null) { 511 512 var hourp = parseInt(specificTimeArrayp[1]); 513 var minutep = parseInt(specificTimeArrayp[2]); 514 var ampmp = specificTimeArrayp[3].toLowerCase(); 515 516 if (ampmp === 'pm' && hourp !== 12) { 517 hourp += 12; 518 } else if (ampmp === 'am' && hourp === 12) { 519 hourp = 0; 520 } 521 522 specificTimeDatep.setHours(hourp, minutep); // Set the specific time 523 524 var currentTimep = new Date(); // Get the current date and time 525 526 } 527 528 if (specificTimeDatep && pickup_hours == 0) { 529 var notice = rp_st_vars.no_pickup_notice; 530 $('.rpress-pickup-time-wrap').html('<h3 class="rp-store-timing-notice">' + notice + '</h3>'); 531 $('#nav-pickup-tab').click(function (e) { 532 $('.rpress-delivery-opt-update').hide(); 533 }) 534 var pickup_selected = $('#nav-pickup-tab').parent('li').hasClass('active'); 535 536 if (versionCompare(rp_st_vars.plugin_version, '2.0.7.4') <= 0) { 537 if (pickup_selected) { 538 $('#nav-pickup-tab').trigger('click'); 539 } 540 } 541 } else { 542 $('#nav-pickup-tab').click(function (e) { 543 $('.rpress-delivery-opt-update').show(); 544 }) 545 } 546 547 } 548 //Selected service date 549 var selectedDate = rpress_getCookie('service_date'); 550 var serviceType = rpress_getCookie('service_type'); 551 var selected = selectedDate !== '' ? selectedDate : rp_st_vars.selectedDate[serviceType]; 552 if (selectedDate !== '' && $('#rpress_get_delivery_dates option[value="' + selectedDate + '"]').length > 0) { 553 $('#rpress_get_delivery_dates').val(selectedDate).change(); 554 } else { 555 $('#rpress_get_delivery_dates').val($("#rpress_get_delivery_dates option:first").val()); 556 } 557 if (selectedDate !== '' && $('#rpress_get_pickup_dates option[value="' + selectedDate + '"]').length > 0) { 558 $('#rpress_get_pickup_dates').val(selectedDate).change(); 559 } else { 560 $('#rpress_get_pickup_dates').val($("#rpress_get_pickup_dates option:first").val()); 561 } 562 563 setTimeout(function () { 564 initializeModalLocationTiming(serviceType || 'delivery', $('#rpressModal')); 565 }, 100); 566 });
567 $('body').off('change.rpstdeliverydate', '#rpress_get_delivery_dates').on('change.rpstdeliverydate', '#rpress_get_delivery_dates', function () { 568 var selectedDate = $(this).val(); 569 var $context = getModalContext($(this)); 570 571 $(this).val(selectedDate); 572 requestServiceTimings('delivery', selectedDate, $context); 573 }); 574 $('body').off('change.rpstpickupdate', '#rpress_get_pickup_dates').on('change.rpstpickupdate', '#rpress_get_pickup_dates', function () { 575 var selectedDate = $(this).val(); 576 var $context = getModalContext($(this)); 577 578 $(this).val(selectedDate); 579 requestServiceTimings('pickup', selectedDate, $context); 580 }); 581 582 // Refresh date/time based on currently selected location. 583 $('body').off('change.rpstlocation', 'input[name="rpress_location"], input[name="rpress_location_pickup"]').on('change.rpstlocation', 'input[name="rpress_location"], input[name="rpress_location_pickup"]', function () { 584 var serviceType = $(this).attr('name') === 'rpress_location_pickup' ? 'pickup' : 'delivery'; 585 var $context = getModalContext($(this)); 586 var locationId = $(this).val() || getSelectedLocationId(serviceType, $context); 587 var branchName = $(this).data('branchName') || ''; 588 var preferredDate = getDateSelect(serviceType, $context).val() || rpress_getCookie('service_date') || ''; 589 590 if (!locationId) { 591 return; 592 } 593 594 rpress_setCookie('branch', locationId, 1); 595 if (branchName) { 596 rpress_setCookie('branch_name', encodeURIComponent(branchName), 1); 597 } 598 599 syncLocationDateAndTime(serviceType, locationId, preferredDate, $context); 600 }); 601 602 $('body').off('click.rpstedit', '#editDateTime').on('click.rpstedit', '#editDateTime', function () { 603 var serviceType = rpress_getCookie('service_type') || 'delivery'; 604 605 setTimeout(function () { 606 initializeModalLocationTiming(serviceType, $('#rpressDateTime')); 607 }, 350); 608 }); 609 610 // On catalog load: if no branch cookie, prompt location selection popup. 611 $(function () { 612 var shouldPromptLocation = typeof rp_st_vars !== 'undefined' 613 && rp_st_vars.should_auto_open_location_popup === '1' 614 && !rpress_getCookie('branch') 615 && $('#rpressDateTime').length; 616 617 if (!shouldPromptLocation) { 618 return; 619 } 620 621 setTimeout(function () { 622 var $modal = $('#rpressDateTime'); 623 624 if (!$modal.length || $modal.attr('aria-hidden') === 'false' || $modal.hasClass('is-open')) { 625 return; 626 } 627 628 if (typeof MicroModal !== 'undefined' && typeof MicroModal.show === 'function') { 629 MicroModal.show('rpressDateTime', { 630 disableScroll: true 631 }); 632 } else { 633 $modal.addClass('is-open').attr('aria-hidden', 'false'); 634 } 635 }, 300); 636 }); 637});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.