PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.7.4
Tutor LMS – eLearning and online course solution v3.7.4
4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / assets / js / tutor-front.js
tutor / assets / js Last commit date
images 10 months ago lazy-chunks 10 months ago tutor-addon-list.js 10 months ago tutor-admin.js 10 months ago tutor-coupon.js 10 months ago tutor-course-builder.js 10 months ago tutor-front.js 10 months ago tutor-gutenberg.js 10 months ago tutor-import-export.js 10 months ago tutor-order-details.js 10 months ago tutor-payment-settings.js 10 months ago tutor-setup.js 10 months ago tutor-tax-settings.js 10 months ago tutor-template-import-script.js 10 months ago tutor.js 10 months ago
tutor-front.js
494 lines
1 (()=>{var t={83650:function(){// this function will load after document content load
2 window.readyState_complete=t=>{var e=t=>t();document.addEventListener("readystatechange",r=>r.target.readyState==="complete"?typeof t=="function"?setTimeout(()=>e(t)):"":"")};window.addBodyClass=t=>{// History push
3 var e=new URL(t);var r=e.searchParams.get("tab_page");var o=e.searchParams.get("edit")&&"_edit";document.body.classList.add(r);document.body.classList.add(r+o)};window.selectorById=t=>{return document.getElementById(t)};window.selectorByClass=t=>{return document.getElementsByClassName(t)};/**
4 * Function to download json file
5 * @param {json} response
6 * @param {string} fileName
7 */window.json_download=(t,e)=>{var r=new Blob([t],{type:"application/json"});var o=document.createElement("a");o.href=URL.createObjectURL(r);o.download=e;o.click()}},4545:function(){window.selectSearchField=t=>{var e=document.querySelectorAll(t);(()=>{e.forEach(t=>{if(t&&!t.classList.contains("tutor-js-form-select")&&!t.hasAttribute("noDropdown")&&!t.classList.contains("no-tutor-dropdown")){var e=t.hasAttribute("data-searchable");var a=t.options[t.selectedIndex];t.style.display="none";var n,i,s,u,c,l,d,v;t.insertAdjacentHTML("afterend",o(t.options,t.value,e));n=t.nextElementSibling;i=n.querySelector(".tutor-form-select-search");s=i&&i.querySelector("input");v=n.querySelector(".tutor-form-select-dropdown");var f=n.querySelector(".tutor-form-select-label");f.innerText=a&&a.text;n.onclick=t=>{t.stopPropagation();r(document.querySelectorAll(".tutor-js-form-select"),n);n.classList.toggle("is-active");if(s){setTimeout(()=>{s.focus()},100)}v.onclick=t=>{t.stopPropagation()}};r(document.querySelectorAll(".tutor-js-form-select"));c=n.querySelector(".tutor-form-select-options");l=c&&c.querySelectorAll(".tutor-form-select-option");if(l){l.forEach(e=>{e.onclick=r=>{r.stopPropagation();var o=Array.from(t.options);o.forEach((o,a)=>{if(o.value===r.target.dataset.key){var i;(i=c.querySelector(".is-active"))===null||i===void 0?void 0:i.classList.remove("is-active");e.classList.add("is-active");n.classList.remove("is-active");f.innerText=r.target.innerText;f.dataset.value=o.value;t.value=o.value;var s=document.getElementById("save_tutor_option");if(s){s.disabled=false}}});var a=new Event("change",{bubbles:true});t.dispatchEvent(a)}})}var m=t=>{var e=0;t.forEach(t=>{if(t.style.display!=="none"){e+=1}});return e};if(s){s.oninput=t=>{var e,r=false;u=t.target.value.toUpperCase();l.forEach(t=>{d=t.querySelector("[tutor-dropdown-item]");e=d.textContent||d.innerText;if(e.toUpperCase().indexOf(u)>-1){t.style.display="";r="false"}else{r="true";t.style.display="none"}});var o='\n <div class="tutor-form-select-option noItem tutor-text-center tutor-fs-7">\n '.concat(window.wp.i18n.__("No item found","tutor"),"\n </div>\n ");var a=v.querySelector(".tutor-form-select-options");if(0==m(l)){var n=false;a.querySelectorAll(".tutor-form-select-option").forEach(t=>{if(t.classList.contains("noItem")==true){n=true}});if(false==n){a.insertAdjacentHTML("beforeend",o);n=true}}else{if(null!==v.querySelector(".noItem")){v.querySelector(".noItem").remove()}}}}}});var t=document.querySelectorAll(".tutor-js-form-select");t.forEach(t=>{if(t.nextElementSibling){if(t.nextElementSibling.classList.contains("tutor-js-form-select")){t.nextElementSibling.remove()}}});var a=document.querySelectorAll(".tutor-js-form-select");document.onclick=t=>{r(a)}})();function r(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(t){t.forEach(t=>{if(t!==e){t.classList.remove("is-active")}})}}function o(t,e,r){var o="";Array.from(t).forEach(t=>{o+='\n <div class="tutor-form-select-option '.concat(e===t.value?"is-active":"",'">\n <span tutor-dropdown-item data-key="').concat(tutor_esc_attr(t.value),'" class="tutor-nowrap-ellipsis" title="').concat(tutor_esc_attr(t.text),'">').concat(tutor_esc_html(t.text),"</span>\n </div>\n ")});var a="";if(r){a='\n <div class="tutor-form-select-search tutor-pt-8 tutor-px-8">\n <div class="tutor-form-wrap">\n <span class="tutor-form-icon">\n <i class="tutor-icon-search" area-hidden="true"></i>\n </span>\n <input type="search" class="tutor-form-control" placeholder="'.concat(window.wp.i18n.__("Search ...","tutor"),'" />\n </div>\n </div>\n ')}var n='\n <div class="tutor-form-control tutor-form-select tutor-js-form-select">\n <span class="tutor-form-select-label" tutor-dropdown-label>'.concat(window.wp.i18n.__("Select","tutor"),'</span>\n <div class="tutor-form-select-dropdown">\n ').concat(a,'\n <div class="tutor-form-select-options">\n ').concat(o,"\n </div>\n </div>\n </div>\n ");return n}};selectSearchField(".tutor-form-select")},80922:function(){window.jQuery(document).ready(t=>{/**
8 * data-mce-style attr rename to style
9 */t("div.tutor-lesson-wrapper [data-mce-style]").each(function(){t(this).attr("style",t(this).attr("data-mce-style"));t(this).removeAttr("data-mce-style")});t(document).on("click",'.tutor-single-course-lesson-comments button[type="submit"]',function(e){e.preventDefault();var{__}=wp.i18n;var r=t(this);var o=r.closest("form");var a=o.serialize();var n=o.find('textarea[name="comment"]').val();if(n.trim().length===0){tutor_toast(__("Warning","tutor"),__("Blank comment is not allowed.","tutor"),"error");return}t.ajax({url:_tutorobject.ajaxurl,type:"POST",data:a,beforeSend:function t(){r.addClass("is-loading").prop("disabled",true)},complete:function t(){r.removeClass("is-loading");r.removeAttr("disabled")},success:function e(e){var r=o.attr("tutor-comment-reply");// If it's reply then just prepend element.
10 if(typeof r!=="undefined"&&r!==false){o.before(e.data.html)}else{// Render comments section for new comment.
11 var a=document.querySelector(".tutor-course-spotlight-comments");a.innerHTML=e.data.html}t(".tutor-comment-line").css("height","calc(100% - 308px)");// Clear text area.
12 t("textarea").val("")},error:function t(t){r.removeClass("is-loading").prop("disabled",false)}})})})},23825:function(){window.jQuery(document).ready(t=>{/**
13 * Share Link enable
14 *
15 * @since v.1.0.4
16 */if(t.fn.ShareLink){var e=t(".tutor-social-share-wrap");if(e.length){var r=JSON.parse(e.attr("data-social-share-config"));e.find(".tutor_share").ShareLink({title:r.title,text:r.text,image:r.image,class_prefix:"s_",width:640,height:480})}}})},63023:function(){window.jQuery(document).ready(t=>{var{__}=window.wp.i18n;/**
17 * Remove course-topic footer from quiz pages
18 */if(t(".tutor-quiz-wrap").length){if(!t(".tutor-table-quiz-attempts").length&&!t(".tutor-quiz-attempt-details").length){t(".tutor-course-topic-single-footer").remove()}}/**
19 * Quiz attempt
20 */var e=t("#tutor-quiz-time-update");// Assign countdown if quiz time element available
21 if(e.length){// Get timing info from data
22 var r=JSON.parse(e.attr("data-attempt-settings"));var o=JSON.parse(e.attr("data-attempt-meta"));// Restrict quiz timing if time limit is set
23 if(o.time_limit.time_limit_seconds>0){var a,n;// Get the timeout timestamp
24 var i=new Date((a=r.attempt_started_at)===null||a===void 0?void 0:a.replaceAll("-","/")).getTime()+o.time_limit.time_limit_seconds*1e3;var s=new Date((n=o.date_time_now)===null||n===void 0?void 0:n.replaceAll("-","/")).getTime();var u=Date.now()-s;// Set the time interval to show countdown
25 var c=setInterval(function(){// Distance between current time and the quiz timeout timestamp
26 var r=Date.now()-u;var a=i-r;// Distance in human readable fragments
27 var n=Math.floor(a/(1e3*60*60*24));var s=Math.floor(a%(1e3*60*60*24)/(1e3*60*60));var l=Math.floor(a%(1e3*60*60)/(1e3*60));var d=Math.floor(a%(1e3*60)/1e3);// Concat fragments to human redable time
28 var v="";n?v+=n+"d ":0;v+=(s||0)+"h ";v+=(l||0)+"m ";v+=(d||0)+"s ";// If distance is smaller than 0, then clear the interval and show reattempt alert box
29 if(a<0){clearInterval(c);e.toggleClass("tutor-quiz-time-expired");// Replace the time with expired text
30 v="EXPIRED";if(_tutorobject.quiz_options.quiz_when_time_expires==="auto_submit"){// Automatically submit the quiz with the progress so far
31 t("form#tutor-answering-quiz").submit()}else{// Else if 'auto_abandon' or anything else for now
32 // Add Disable state button class and disable then
33 t(".tutor-quiz-answer-next-btn, .tutor-quiz-submit-btn, .tutor-quiz-answer-previous-btn").prop("disabled",true);t("button[name='quiz_answer_submit_btn']").prop("disabled",true);// add alert text
34 t(".time-remaining span").css("color","#F44337");// Abandon the quiz. The attempt status in the database will be 'attempt_timeout'
35 t.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{quiz_id:t("#tutor_quiz_id").val(),action:"tutor_quiz_timeout"},success:function r(r){var o=t("#tutor-quiz-time-expire-wrapper").data("attempt-allowed");var a=t("#tutor-quiz-time-expire-wrapper").data("attempt-remaining");var n="#tutor-quiz-time-expire-wrapper";t(n).addClass("tutor-alert-show");// if attempt remaining
36 if(a>0){t("".concat(n," .tutor-quiz-alert-text")).html(__("Your time limit for this quiz has expired, please reattempt the quiz. Attempts remaining:","tutor")+" "+a+"/"+o// Don't break line
37 )}else{// if attempt not remaining
38 if(t(n).hasClass("time-remaining-warning")){t(n).removeClass("time-remaining-warning");t(n).addClass("time-over")}if(t("".concat(n," .flash-info span:first-child")).hasClass("tutor-icon-circle-info")){t("".concat(n," .flash-info span:first-child")).removeClass("tutor-icon-circle-info");t("".concat(n," .flash-info span:first-child")).addClass("tutor-icon-circle-times-line")}e.toggleClass("tutor-quiz-time-expired");t("#tutor-start-quiz").hide();t("".concat(n," .tutor-quiz-alert-text")).html("".concat(__("Unfortunately, you are out of time and quiz attempts. ","tutor")));// No attempt is remaining, so reload the page.
39 window.location.reload(true)}},complete:function t(){}})}}// Update the alert content based on timing
40 e.html(v);// clearTimeout(tutor_quiz_interval);
41 // return;
42 if(v=="EXPIRED"){e.addClass("color-text-error")}/**
43 * dynamically update progress indicator
44 *
45 * @since v2.0.0
46 */if(a){// convert distance in sec
47 var f=a/1e3;// get total time duration in sec
48 var m=o.time_limit.time_limit_seconds;//calculate progress
49 var p=Math.ceil(f*100/m);var _=document.querySelector(".quiz-time-remaining-progress-circle");var h=document.querySelector(".quiz-time-remaining-progress-circle svg");if(h&&_){var g=44-44*(p/100);if(p<=0){p=0;// if time out red the progress circle
50 _.innerHTML='<svg viewBox="0 0 50 50" width="50" height="50">\n <circle cx="0" cy="0" r="11"></circle>\n </svg>';_.setAttribute("class","quiz-time-remaining-expired-circle")}h.setAttribute("style","stroke-dashoffset: ".concat(g,";"))}}},1e3)}else{// If no time limit is set, show 'No Limit' message
51 e.html(__("No Limit","tutor"))}}var l=t("form#tutor-start-quiz");if(l.length){if(_tutorobject.quiz_options.quiz_auto_start==1){l.submit()}}})},90521:function(){window.jQuery(document).ready(t=>{var{__}=window.wp.i18n;var e=_tutorobject.quiz_options;var r=new Map;t(".tutor-sortable-list").on("sortchange",o);function o(e,o){var a=parseInt(t(this).closest(".quiz-attempt-single-question").attr("id").match(/\d+/)[0],10);if(!r.get(a)){r.set(a,true)}}function a(){return Number(_tutorobject.quiz_answer_display_time)||2e3}function n(){return"reveal"===e.feedback_mode}function i(){return _tutorobject.quiz_options.question_layout_view}function s(t){return'<span class="tutor-quiz-answer-single-info tutor-color-success tutor-mt-8">\n <i class="tutor-icon-mark tutor-color-success" area-hidden="true"></i>\n '.concat(t,"\n </span>")}function u(e){var r=false;// Prepare answer array
52 var o=JSON.parse(window.tutor_quiz_context.split("").reverse().join(""));!Array.isArray(o)?o=[]:0;if(i()!=="question_below_each_other"){t(".tutor-quiz-answer-single-info").remove()}t(".tutor-quiz-answer-single").removeClass("tutor-quiz-answer-single-correct tutor-quiz-answer-single-incorrect");var a=true;var u=e.find("input");var c=e.find('input[type="radio"]:checked, input[type="checkbox"]:checked');if(n()){// Loop through every single checked radio/checkbox input field
53 c.each(function(){var e=t(this);var r=o.indexOf(e.val())>-1;// $input.attr('data-is-correct') == '1';
54 // And check if the answer is correct
55 if(!r){a=false}});// Loop through all the inputs regardless of correct/incorrect
56 u.each(function(){var e=t(this);var n=e.attr("type");// Reveal mode feature is currently available for only radio and checkbox type answers
57 if(n==="radio"||n==="checkbox"){var i=o.indexOf(e.val())>-1;// $input.attr('data-is-correct') == '1';
58 var u=e.is(":checked");if(i){e.closest(".tutor-quiz-answer-single").addClass("tutor-quiz-answer-single-correct").append(s(__("Correct Answer","tutor"))).find(".tutor-quiz-answer-single-info:eq(1)").remove()}else{if(e.prop("checked")){e.closest(".tutor-quiz-answer-single").addClass("tutor-quiz-answer-single-incorrect")}}if(i&&!u){e.attr("disabled","disabled");a=false;r=true}}})}if(a){r=true}return r}/**
59 *
60 * Validate whether draggable required question has all answers
61 *
62 * @since 2.7.2
63 * @param {Object} required_answer_wrap
64 * @returns {boolean}
65 */function c(e){var r=true;var o=e[0];var a=t(o).find(".tutor-dropzone");if(a.length>0){Object.values(a).forEach(e=>{if(e instanceof Element&&e.classList.contains("tutor-dropzone")){if(t(e).has("input").length===0){r=false}}})}return r}/**
66 * Quiz Validation Helper
67 *
68 * @since v.1.6.1
69 */function l(e,o){var a=e.find(".quiz-answer-required");if(a.length){var n=parseInt(e.attr("id").match(/\d+/)[0],10);var i=r.get(n);var s=e.find(".tutor-draggable");var u=e.find(".ui-sortable");/**
70 * Radio field validation
71 *
72 * @type {jQuery}
73 *
74 * @since v.1.6.1
75 */var l=a.find("input");if(l.length){var d=l.attr("type");if(d==="radio"){if(a.find('input[type="radio"]:checked').length==0){e.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(__("Please select an option to answer","tutor"),"</p>"));o=false}}else if(d==="checkbox"){if(a.find('input[type="checkbox"]:checked').length==0){e.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(__("Please select at least one option to answer.","tutor"),"</p>"));o=false}}else if(d==="text"){//Fill in the gaps if many, validation all
76 l.each(function(r,a){if(!t(a).val().trim().length){e.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(__("The answer for this question is required","tutor"),"</p>"));o=false}})}}if(a.find("textarea").length){if(a.find("textarea").val().trim().length<1){e.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(__("The answer for this question is required","tutor"),"</p>"));o=false}}//Validate draggable quiz questions
77 if(s.length){var v=c(a);if(!v){e.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(__("The answer for this question is required","tutor"),"</p>"));o=false}}//Validate sortable quiz questions
78 if(i===undefined&&u.length){e.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(__("The answer for this question is required","tutor"),"</p>"));o=false}}return o}/**
79 * Quiz view
80 * @date 22 Feb, 2019
81 * @since v.1.0.0
82 */t(".tutor-quiz-next-btn-all").prop("disabled",false);t(".quiz-attempt-single-question input").filter('[type="radio"], [type="checkbox"]').change(function(){if(t(".tutor-quiz-time-expired").length===0){t(".tutor-quiz-next-btn-all").prop("disabled",false)}});t(document).on("click",".tutor-quiz-answer-next-btn, .tutor-quiz-answer-previous-btn",function(e){e.preventDefault();var r=t(".tutor-quiz-question-counter>span:first-child");var o=parseInt(t(this).closest("[data-question_index]").data("question_index"));// Show previous quiz if press previous button
83 if(t(this).hasClass("tutor-quiz-answer-previous-btn")){t(this).closest(".quiz-attempt-single-question").hide().prev().show();r.text(o-1);return}var i=t(this);var s=i.closest(".quiz-attempt-single-question");var c=parseInt(i.closest(".quiz-attempt-single-question").attr("id").match(/\d+/)[0],10);var d=i.closest(".quiz-attempt-single-question").attr("data-next-question-id");/**
84 * Validating required answer
85 * @type {jQuery}
86 *
87 * @since v.1.6.1
88 */var v=true;v=l(s,v);if(!v){return}var f=u(s);/**
89 * If not reveal mode then check feedback response
90 *
91 * Since validation already checked above, now user's ans is correct
92 * or not they should move forward. In reveal mode if feedback response is false
93 * then it was freezing the process.
94 *
95 * @since v2.0.9
96 */if(!n()){if(!f){return}}if(d){var m=t(d);if(m&&m.length){/**
97 * check if reveal mode wait for 500ms then
98 * hide question so that correct answer reveal
99 * @since 1.8.10
100 */if(n()){setTimeout(()=>{t(".quiz-attempt-single-question").hide();m.show()},a())}else{t(".quiz-attempt-single-question").hide();m.show()}/**
101 * If pagination exists, set active class
102 */if(t(".tutor-quiz-questions-pagination").length){t(".tutor-quiz-question-paginate-item").removeClass("active");t('.tutor-quiz-questions-pagination a[href="'+d+'"]').addClass("active")}// Increase counter
103 r.text(o+1)}}});t(document).on("click",".tutor-quiz-question-paginate-item",function(e){e.preventDefault();var r=t(this);var o=t(r.attr("href"));t(".quiz-attempt-single-question").hide();o.show();//Active Class
104 t(".tutor-quiz-question-paginate-item").removeClass("active");r.addClass("active")});/**
105 * Limit Short Answer Question Type
106 */t(document).on("keyup","textarea.question_type_short_answer, textarea.question_type_open_ended",function(e){var r=t(this);var o=r.val();var a=r.hasClass("question_type_short_answer")?_tutorobject.quiz_options.short_answer_characters_limit:_tutorobject.quiz_options.open_ended_answer_characters_limit;if(!a){return}var n=a-o.length;if(n<1){r.val(o.substr(0,a));n=0}r.closest(".quiz-attempt-single-question").find(".characters_remaining").html(n)});t(document).on("submit","#tutor-answering-quiz",function(e){e.preventDefault();var r=t(".quiz-attempt-single-question");var o=document.querySelector(".tutor-quiz-submit-btn");var s=t(e.target);var c=true;var d=true;if(r.length){r.each(function(e,r){c=l(t(r),c);d=u(t(r))})}//If auto submit option is enabled after time expire submit current progress
107 if(_tutorobject.quiz_options.quiz_when_time_expires==="auto_submit"&&t("#tutor-quiz-time-update").hasClass("tutor-quiz-time-expired")){c=true;d=true}if(c&&d){var v=500;if(n()&&i()==="question_below_each_other"){v=a();s.find(":submit").addClass("is-loading").attr("disabled","disabled")}setTimeout(()=>{e.target.submit()},v)}else{if(o){o.classList.remove("is-loading");o.disabled=false}}});t(".tutor-quiz-submit-btn").click(function(e){e.preventDefault();if(n()){var r=t(".quiz-attempt-single-question");var o=true;if(r.length){r.each(function(e,r){o=l(t(r));o=u(t(r))})}t(this).attr("disabled","disabled");setTimeout(()=>{t(this).addClass("is-loading");t("#tutor-answering-quiz").submit()},a())}else{t(this).attr("disabled","disabled").addClass("is-loading");t("#tutor-answering-quiz").submit()}});//warn user before leave page if quiz is running
108 var d=t("#tutor-quiz-time-update");// @todo: check the button class functionality
109 t(document).on("click","a",function(e){// if user click on ask question then return, no warning.
110 if(e.target.classList.contains("sidebar-ask-new-qna-btn")||e.target.classList.contains("tutor-quiz-question-paginate-item")){return}if(d.length>0&&d.text()!="EXPIRED"){e.preventDefault();e.stopImmediatePropagation();var r;var o={title:__("Abandon Quiz?","tutor"),description:__("Do you want to abandon this quiz? The quiz will be submitted partially up to this question if you leave this page.","tutor"),buttons:{keep:{title:__("Yes, leave quiz","tutor"),id:"leave",class:"tutor-btn tutor-btn-outline-primary",callback:function e(){var e=t("form#tutor-answering-quiz").serialize()+"&action="+"tutor_quiz_abandon";t.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:e,beforeSend:function t(){document.querySelector("#tutor-popup-leave").innerHTML=__("Leaving...","tutor")},success:function t(t){if(t.success){location.reload(true)}else{alert(__("Something went wrong","tutor"))}},error:function t(){alert(__("Something went wrong","tutor"));r.find("[data-tutor-modal-close]").click()}})}},reset:{title:__("Stay here","tutor"),id:"reset",class:"tutor-btn tutor-btn-primary tutor-ml-20",callback:function t(){r.find("[data-tutor-modal-close]").click()}}}};r=new window.tutor_popup(t,"").popup(o)}});/* Disable start quiz button */t("body").on("submit","form#tutor-start-quiz",function(){t(this).find("button").prop("disabled",true)})})},12155:function(){window.jQuery(document).ready(t=>{var{__:e}=wp.i18n;t(document).on("click",".tutor-course-wishlist-btn",function(e){e.preventDefault();var r=t(this);var o=r.attr("data-course-id");t.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{course_id:o,action:"tutor_course_add_to_wishlist"},beforeSend:function t(){r.attr("disabled","disabled").addClass("is-loading")},success:function e(e){if(e.success){if(e.data.status==="added"){r.find("i").addClass("tutor-icon-bookmark-bold").removeClass("tutor-icon-bookmark-line")}else{r.find("i").addClass("tutor-icon-bookmark-line").removeClass("tutor-icon-bookmark-bold")}}else{//window.location = data.data.redirect_to;
111 t(".tutor-login-modal").addClass("tutor-is-active")}},complete:function t(){r.removeAttr("disabled").removeClass("is-loading")}})})})},53579:function(){window.jQuery(document).ready(t=>{// course archive page added_to_cart event change view cart html
112 t(document).on("added_to_cart",function(t,e,r,o){o.removeClass("is-loading");o.siblings("a.added_to_cart").addClass("tutor-btn tutor-btn-outline-primary tutor-btn-md tutor-btn-block").prepend('<span class="tutor-icon-cart-line tutor-mr-8"></span>')});t(document).on("adding_to_cart",function(t,e){e.addClass("is-loading");setTimeout(()=>{e.removeClass("is-loading")},4e3)})})},6402:function(){document.addEventListener("DOMContentLoaded",function(){var{__:t,_x:e,_n:r,_nx:o}=wp.i18n;/**
113 * Export purchase history
114 *
115 * @since v2.0.0
116 */var a=document.querySelectorAll(".tutor-export-purchase-history");for(var n of a){if(n){n.onclick=t=>{var e=t.currentTarget;var r="order-".concat(e.dataset.order,"-purchase-history.csv");var o=[{"Order ID ":e.dataset.order,"Course Name":e.dataset.courseName,Price:e.dataset.price,Date:e.dataset.date,Status:e.dataset.status}];i(o,r)}}}/**
117 * Export CSV file
118 *
119 * @param {*} data | data that will be used for generating CSV file
120 * @param {*} filename | filename of CSV file
121 * @since v2.0.0
122 */function i(t,e){var r=Object.keys(t[0]);var o=[r.join(","),t.map(t=>r.map(e=>t[e]).join(",")).join("\n")].join("\n");//generate csv
123 var a=new Blob([o],{type:"text/csv;charset=utf-8"});var n=URL.createObjectURL(a);var i=document.createElement("a");i.setAttribute("href",n);i.setAttribute("download",e);i.style.visibility="hidden";document.body.appendChild(i);i.click();document.body.removeChild(i)}})},11602:function(){/**
124 * Create new draft course
125 *
126 * @since v2.0.3
127 */document.addEventListener("DOMContentLoaded",function(){// Course save draft
128 var t=document.getElementById("tutor-course-save-draft");if(t){t.onclick=e=>{e.preventDefault();t.setAttribute("disabled","disabled");t.classList.add("is-loading");document.getElementById("tutor-frontend-course-builder").submit()}}/**
129 * Fix - Table last row context menu hidden for frontend dashboard.
130 *
131 * @since 2.2.4
132 */var e=jQuery(".tutor-table-responsive .tutor-table .tutor-dropdown");if(e.length){var r=jQuery(".tutor-table-responsive .tutor-table").height();jQuery(".tutor-table-responsive").css("min-height",r+110)}})},20193:function(){document.addEventListener("DOMContentLoaded",()=>{// Toggle menu in mobile view
133 var t=window.jQuery;t(".tutor-dashboard .tutor-dashboard-menu-toggler").click(function(){var e=t(".tutor-dashboard-left-menu");e.closest(".tutor-dashboard").toggleClass("is-sidebar-expanded");if(e.css("display")!=="none"){e.get(0).scrollIntoView({block:"start"})}})})},35852:function(t,e,r){var{get_response_message:o}=r(10836);window.jQuery(document).ready(t=>{var{__}=wp.i18n;t('.tutor-settings-pass-field [name="confirm_new_password"]').on("input",function(){var e=t('[name="new_password"]');var r=(e.val()||"").trim();var o=r&&t(this).val()===r;t(this).parent().find(".tutor-validation-icon")[o?"show":"hide"]()});t(".tutor-profile-password-reset").click(function(e){e.preventDefault();var r=t(this);var a=r.closest("form");var n=a.serializeObject();n.action="tutor_profile_password_reset";t.ajax({url:_tutorobject.ajaxurl,type:"POST",data:n,beforeSend:()=>{r.addClass("is-loading")},success:t=>{var{success:e}=t;if(e){window.tutor_toast(__("Success","tutor"),o(t),"success");window.location.reload()}else{window.tutor_toast(__("Error","tutor"),o(t),"error")}},complete:()=>{r.removeClass("is-loading")}})})})},48621:function(t,e,r){var{get_response_message:o}=r(10836);var a=t=>{var e=new RegExp("^(https?:\\/\\/)?"+// protocol
134 "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|"+// domain name
135 "((\\d{1,3}\\.){3}\\d{1,3}))"+// OR ip (v4) address
136 "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*"+// port and path
137 "(\\?[;&a-z\\d%_.~+=-]*)?"+// query string
138 "(\\#[-a-z\\d_]*)?$","i");// fragment locator
139 return!!e.test(t)};var n=(t,e,r)=>{// Read image as data url
140 var o=new FileReader;o.addEventListener("load",()=>{// Read as image to retrieve dimension
141 var a=new Image;a.addEventListener("load",()=>{var{width:o,height:n}=a;var i=0;var s=0;var u=o;var c=n;if(e.width==e.height){i=o>n?(o-n)/2:0;s=n>o?(n-o)/2:0;u=o>n?n:o;c=n>o?o:n}e.height=e.height||n/o*e.width;var l=e.width>o?o:e.width;var d=e.width>o?n:e.height;// Create the destination canvas
142 var v=document.createElement("canvas");v.width=l;v.height=d;var f=v.getContext("2d");f.drawImage(a,i,s,u,c,0,0,v.width,v.height);v.toBlob(e=>{e.name=t.name;e.lastModified=t.lastModified;var o=new FileReader;o.addEventListener("load",()=>{r(e,o.result)});o.readAsDataURL(e)},"image/jpeg")});a.src=o.result});o.readAsDataURL(t)};window.jQuery(document).ready(t=>{var{__}=wp.i18n;/**
143 * Profile Photo and Cover Photo editor
144 *
145 * @since v.1.7.5
146 */var e=function e(e){this.dialogue_box=e.find("#tutor_photo_dialogue_box");this.open_dialogue_box=function(t){this.dialogue_box.attr("name",t);this.dialogue_box.trigger("click")};this.upload_selected_image=function(e,r){var o=tutor_get_nonce_data(true);var a=this;a.toggle_loader(e,true);// Prepare payload to upload
147 var n=new FormData;n.append("action","tutor_user_photo_upload");n.append("photo_type",e);n.append("photo_file",r,r.name);n.append(o.key,o.value);// Upload the image to server
148 var i=this;t.ajax({url:window._tutorobject.ajaxurl,data:n,type:"POST",processData:false,contentType:false,error:a.error_alert,success:function t(){var t=i.title_capitalize(e.replace("_"," "));var r=__("Success","tutor");var o=t+" Changed Successfully!";if("Profile Photo"===t){o=__("Profile Photo Changed Successfully!","tutor")}if("Cover Photo"===t){o=__("Cover Photo Changed Successfully!","tutor")}tutor_toast(r,o,"success")},complete:function t(){a.toggle_loader(e,false)}})};this.title_capitalize=function(t){var e=t.split(" ");for(var r=0;r<e.length;r++){e[r]=e[r].charAt(0).toUpperCase()+e[r].slice(1)}return e.join(" ")};this.accept_upload_image=function(e,r){var o=r.currentTarget.files[0]||null;e.update_preview(r.currentTarget.name,o);// Resize
149 n(o,{width:1200},t=>{e.upload_selected_image(r.currentTarget.name,t)});t(r.currentTarget).val("")};this.delete_image=function(e){var r=this;r.toggle_loader(e,true);t.ajax({url:window._tutorobject.ajaxurl,data:{action:"tutor_user_photo_remove",photo_type:e},type:"POST",error:r.error_alert,complete:function t(){r.toggle_loader(e,false)}})};this.update_preview=function(t,r){var o=e.find(t=="cover_photo"?"#tutor_cover_area":"#tutor_profile_area");if(!r){o.css("background-image","url("+o.data("fallback")+")");this.delete_image(t);return}var a=new FileReader;a.onload=function(t){o.css("background-image","url("+t.target.result+")")};a.readAsDataURL(r)};this.toggle_profile_pic_action=function(t){var r=t===undefined?"toggleClass":t?"addClass":"removeClass";e[r]("pop-up-opened")};this.error_alert=function(){tutor_toast(__("Error","tutor"),__("Maximum file size exceeded!","tutor"),"error");// alert('Something Went Wrong.');
150 };this.toggle_loader=function(t,r){e.find("#tutor_photo_meta_area .loader-area").css("display",r?"block":"none")};this.initialize=function(){var t=this;this.dialogue_box.change(function(e){t.accept_upload_image(t,e)});e.find("#tutor_profile_area .tutor_overlay, #tutor_pp_option>div:last-child").click(function(){t.toggle_profile_pic_action()});// Upload new
151 e.find(".tutor_cover_uploader").click(function(){t.open_dialogue_box("cover_photo")});e.find(".tutor_pp_uploader").click(function(){t.open_dialogue_box("profile_photo")});// Delete existing
152 e.find(".tutor_cover_deleter").click(function(){t.update_preview("cover_photo",null)});e.find(".tutor_pp_deleter").click(function(){t.update_preview("profile_photo",null)})}};var r=t("#tutor_profile_cover_photo_editor");r.length>0?new e(r).initialize():0;// Save profile settings with ajax
153 t(".tutor-profile-settings-save").click(function(e){e.preventDefault();var r=t(this);var a=r.closest("form");var n=a.serializeObject();var i=document.querySelector("[name=phone_number]");/**
154 * Basic markup for profile bio
155 * @since 2.2.4
156 */if(window.tinyMCE!==undefined){var s=tinyMCE.get("tutor_profile_bio");n.tutor_profile_bio=s.getContent({format:"html"})}if(n.phone_number&&!n.phone_number.match(/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im)){i.classList.add("invalid");tutor_toast(__("Invalid","tutor"),__("Invalid phone number","tutor"),"error");i.focus();return false}else{i.classList.remove("invalid")}n.action="tutor_update_profile";t.ajax({url:_tutorobject.ajaxurl,type:"POST",data:n,beforeSend:()=>{r.addClass("is-loading")},success:t=>{var{success:e}=t;if(e){window.tutor_toast(__("Success","tutor"),o(t),"success")}else{window.tutor_toast(__("Error","tutor"),o(t),"error")}},complete:()=>{r.removeClass("is-loading")}})});t("#user_social_form").submit(function(e){e.preventDefault();var r=t(this).find("button[type=submit]");var a=_tutorobject.ajaxurl;var n=t(this).serializeObject();t.ajax({url:a,type:"POST",data:n,beforeSend:()=>{r.addClass("is-loading")},success:t=>{var{success:e}=t;var r=o(t);if(e){window.tutor_toast(__("Success","tutor"),r,"success")}else{window.tutor_toast(__("Error","tutor"),r,"error")}},complete:()=>{r.removeClass("is-loading")}})})})},44789:function(){document.addEventListener("DOMContentLoaded",()=>{var t=window.jQuery;/**
157 * Withdraw Form Tab/Toggle
158 *
159 * @since v.1.1.2
160 */t('.tutor-dashboard-setting-withdraw input[name="tutor_selected_withdraw_method"]').on("change",function(e){var r=t(this);var o=r.closest("form");o.find(".withdraw-method-form").hide();o.find(".withdraw-method-form").hide().filter('[data-withdraw-form="'+r.val()+'"]').show()})})},1838:function(){window.jQuery(document).ready(t=>{var{__}=window.wp.i18n;/**
161 * Retake course
162 *
163 * @since v1.9.5
164 */t(".tutor-course-retake-button").prop("disabled",false).click(function(e){e.preventDefault();var r=t(this).attr("href");var o=t(this).data("course_id");var a={title:__("Override Previous Progress","tutor"),description:__("Before continue, please decide whether to keep progress or reset.","tutor"),buttons:{reset:{title:__("Reset Data","tutor"),class:"tutor-btn tutor-btn-primary",callback:function e(e){t.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{action:"tutor_reset_course_progress",course_id:o},beforeSend:()=>{e.prop("disabled",true).addClass("is-loading")},success:function t(t){if(t.success){window.location.assign(t.data.redirect_to)}else{alert((t.data||{}).message||__("Something went wrong","tutor"))}},complete:function t(){e.prop("disabled",false).removeClass("is-loading")}})}},keep:{title:__("Keep Data","tutor"),class:"tutor-btn tutor-btn-outline-primary tutor-ml-20",attr:"data-tutor-modal-close",callback:function t(){window.location.assign(r)}}}};new window.tutor_popup(t,"icon-gear").popup(a)})});readyState_complete(()=>{var t=document.querySelector(".tutor-video-player .loading-spinner");if(null!==t){t.remove()}})},39356:function(){jQuery(document).ready(function(t){var{__,_x:e,_n:r,_nx:o}=wp.i18n;/**
165 *
166 * Instructor list filter
167 *
168 * @since v.1.8.4
169 */// Get values on course category selection
170 t("[tutor-instructors]").each(function(){var e=t(this);var r={};var o;var a=document.querySelector(".tutor-ratings-stars i.is-active");var i=0;if(a){i=a.dataset.value}function s(o,a,n){// Prepare http payload
171 var i=e.find("[tutor-instructors-content]");var s=i.html();var u=e.data();u.current_page=n||1;o?r[o]=a:r={};r.attributes=u;r.action="load_filtered_instructor";// Append spinner
172 i.html('<div class="tutor-spinner-wrap"><span class="tutor-spinner" area-hidden="true"></span></div>');t.ajax({url:window._tutorobject.ajaxurl,data:r,type:"POST",success:function t(t){i.html((t.data||{}).html)},error:function t(){i.html(s);tutor_toast(__("Failed","tutor"),__("Request Error","tutor"),"error")}})}e.on("change",'[tutor-instructors-filter-category] [type="checkbox"]',function(){var e={};t(this).closest("[tutor-instructors-filter-category]").find("input:checked").each(function(){e[t(this).val()]=t(this).parent().text()});var r=Object.keys(e);s(t(this).attr("name"),r)}).on("click","[tutor-instructors-filter-rating]",function(t){var e=t.target.dataset.value;if(e!=i){s("rating_filter",e)}i=e}).on("change","[tutor-instructors-filter-sort]",function(t){var e=t.target.value;s("short_by",e)})// Get values on search keyword change
173 .on("input","[tutor-instructors-filter-search]",function(){var e=t(this).val();o?window.clearTimeout(o):0;o=window.setTimeout(function(){s("keyword",e);o=null},500)}).on("click","[data-page_number]",function(e){// On pagination click
174 e.preventDefault();s(null,null,t(this).data("page_number"))})// Clear filter
175 .on("click","[tutor-instructors-filter-clear]",function(){var e=t(this).closest("[tutor-instructors-filters]");e.find('input[type="checkbox"]').prop("checked",false);e.find("[tutor-instructors-filter-search]").val("");var r=document.querySelectorAll("[tutor-instructors-filter-rating]");//remove star selection
176 for(var o of r){if(o.classList.contains("active")){o.classList.remove("active")}if(o.classList.contains("tutor-icon-star-bold")){o.classList.remove("tutor-icon-star-bold");o.classList.add("tutor-icon-star-line")}}n.innerHTML="";s()})});/**
177 * Show start active as per click
178 *
179 * @since v2.0.0
180 */var a=document.querySelectorAll("[tutor-instructors-filter-rating]");var n=document.querySelector("[tutor-instructors-filter-rating-count]");for(var i of a){i.onclick=t=>{var e=t.currentTarget;//remove active if has
181 for(var r of a){if(r.classList.contains("is-active")){r.classList.remove("is-active")}if(r.classList.contains("tutor-icon-star-bold")){r.classList.remove("tutor-icon-star-bold");r.classList.add("tutor-icon-star-line")}}//show stars active as click
182 var o=Number(t.target.dataset.value);var i=__("star","tutor");if(o>1){i=__("stars","tutor")}if(!e.classList.contains("is-active")){e.classList.add("is-active")}if(!e.classList.contains("tutor-icon-star-bold")){e.classList.remove("tutor-icon-star-line");e.classList.add("tutor-icon-star-bold")}n.innerHTML="".concat(o," ").concat(i)}}})},10836:function(t,e,r){"use strict";r.r(e);r.d(e,{get_response_message:()=>o});var o=(t,e)=>{var{__}=wp.i18n;var{data:r={}}=t||{};var{message:o=e||__("Something Went Wrong!","tutor")}=r;return o}}};/************************************************************************/// The module cache
183 var e={};// The require function
184 function r(o){// Check if module is in cache
185 var a=e[o];if(a!==undefined){return a.exports}// Create a new module (and put it into the cache)
186 var n=e[o]={exports:{}};// Execute the module function
187 t[o](n,n.exports,r);// Return the exports of the module
188 return n.exports}/************************************************************************/// webpack/runtime/define_property_getters
189 (()=>{r.d=(t,e)=>{for(var o in e){if(r.o(e,o)&&!r.o(t,o)){Object.defineProperty(t,o,{enumerable:true,get:e[o]})}}}})();// webpack/runtime/has_own_property
190 (()=>{r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)})();// webpack/runtime/make_namespace_object
191 (()=>{// define __esModule on exports
192 r.r=t=>{if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(t,"__esModule",{value:true})}})();// webpack/runtime/rspack_version
193 (()=>{r.rv=()=>"1.4.11"})();// webpack/runtime/rspack_unique_id
194 (()=>{r.ruid="bundler=rspack@1.4.11"})();/************************************************************************/var o={};// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
195 (()=>{"use strict";// CONCATENATED MODULE: ./node_modules/@swc/helpers/esm/_define_property.js
196 function t(t,e,r){if(e in t){Object.defineProperty(t,e,{value:r,enumerable:true,configurable:true,writable:true})}else t[e]=r;return t};// CONCATENATED MODULE: ./node_modules/@swc/helpers/esm/_object_spread.js
197 function e(e){for(var r=1;r<arguments.length;r++){var o=arguments[r]!=null?arguments[r]:{};var a=Object.keys(o);if(typeof Object.getOwnPropertySymbols==="function"){a=a.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))}a.forEach(function(r){t(e,r,o[r])})}return e};// CONCATENATED MODULE: ./node_modules/@swc/helpers/esm/_async_to_generator.js
198 function o(t,e,r,o,a,n,i){try{var s=t[n](i);var u=s.value}catch(t){r(t);return}if(s.done)e(u);else Promise.resolve(u).then(o,a)}function a(t){return function(){var e=this,r=arguments;return new Promise(function(a,n){var i=t.apply(e,r);function s(t){o(i,a,n,s,u,"next",t)}function u(t){o(i,a,n,s,u,"throw",t)}s(undefined)})}};// CONCATENATED MODULE: ./assets/react/helper/ajax-handler.js
199 function n(t){return a(function*(){try{var e=yield fetch(window._tutorobject.ajaxurl,{method:"POST",body:t});return e}catch(t){tutor_toast(__("Operation failed","tutor"),t,"error")}})()};// CONCATENATED MODULE: ./assets/react/admin-dashboard/segments/filter.js
200 /**
201 * On click add filter value on the url
202 * and refresh page
203 *
204 * Handle bulk action
205 *
206 * @package Filter / sorting
207 * @since v2.0.0
208 */document.addEventListener("DOMContentLoaded",function(){var{__,_x:t,_n:e,_nx:r}=wp.i18n;var o=document.getElementById("tutor-common-confirmation-modal");var i=document.getElementById("tutor-common-confirmation-form");var s=document.querySelectorAll(".tutor-filter-select");s.forEach(t=>{t.addEventListener("change",t=>{var e=t.target.name;var r=t.target.value;if(r.length){window.location=b(e,r)}else{window.location=y(e)}},{once:true})});var u=document.querySelectorAll(".tutor-admin-dashboard-filter-form");u.forEach(t=>{t.addEventListener("submit",t=>{t.preventDefault();var e=new FormData(t.target);var r=Object.fromEntries(e);var o=new URL(window.location.href);var a=o.searchParams;a.set("paged",1);for(var n in r){var i=r[n];if(i){a.set(n,i)}else{a.delete(n)}}window.location=o})});var c=document.getElementById("tutor-backend-filter-course");if(c){c.addEventListener("change",t=>{window.location=b("course-id",t.target.value)},{once:true})}var l=document.getElementById("tutor-backend-filter-category");if(l){l.addEventListener("change",t=>{window.location=b("category",t.target.value)},{once:true})}var d=document.getElementById("tutor-backend-filter-order");if(d){d.addEventListener("change",t=>{window.location=b("order",t.target.value)},{once:true})}var v=document.getElementById("tutor-backend-filter-payment-status");v===null||v===void 0?void 0:v.addEventListener("change",t=>{window.location=b("payment-status",t.target.value)},{once:true});var f=document.getElementById("tutor-admin-search-filter-form");var m=document.getElementById("tutor-backend-filter-search");if(f){// Resubmit filter on clear
209 // So we can avoid wrong tab link retaining search value
210 m.addEventListener("search",t=>{var{value:e}=t.currentTarget||{};if(/\S+/.test(e)==false){window.location=y("search")}});// Assign search value to normal form submission
211 f.onsubmit=t=>{t.preventDefault();var e=m.value;window.location=b("search",e)}}/**
212 * onclick apply button show checkbox select message
213 * if not selected
214 */var p=document.getElementById("tutor-admin-bulk-action-btn");var _=document.querySelector(".tutor-bulk-modal-disabled");if(p){p.onclick=()=>{var t=[];var e=document.querySelectorAll(".tutor-bulk-checkbox");for(var r of e){if(r.checked){t.push(r.value)}}if(t.length){_.setAttribute("id","tutor-bulk-confirm-popup")}else{tutor_toast(__("Warning","tutor"),__("Nothing was selected for bulk action.","tutor"),"error");if(_.hasAttribute("id")){_.removeAttribute("id")}}}}/**
215 * Onsubmit bulk form handle ajax request then reload page
216 */var h=document.getElementById("tutor-admin-bulk-action-form");if(h){h.onsubmit=t=>a(function*(){t.preventDefault();t.stopPropagation();var e=new FormData(h);var r=[];var o=document.querySelectorAll(".tutor-bulk-checkbox");for(var a of o){if(a.checked){r.push(a.value)}}if(!r.length){alert(__("Select checkbox for action","tutor"));return}e.set("bulk-ids",r);e.set(window.tutor_get_nonce_data(true).key,window.tutor_get_nonce_data(true).value);try{var n=document.querySelector("#tutor-confirm-bulk-action[data-tutor-modal-submit]");n.classList.add("is-loading");var i=yield fetch(window._tutorobject.ajaxurl,{method:"POST",body:e});n.classList.remove("is-loading");if(i.ok){var s=yield i.json();if(s.success||200===(s===null||s===void 0?void 0:s.status_code)){location.reload()}else{var{message:u=__("Something went wrong, please try again ","tutor")}=s.data||{};tutor_toast(__("Failed","tutor"),u,"error")}}}catch(t){console.log(t)}})()}/**
217 * onclick bulk action button show confirm popup
218 * on click confirm button submit bulk form
219 */var g=document.getElementById("tutor-confirm-bulk-action");if(g){g.onclick=()=>{var t=document.createElement("input");t.type="submit";h.appendChild(t);t.click();t.remove()}}function b(t,e){var r=new URL(window.location.href);var o=r.searchParams;o.set(t,e);o.set("paged",1);return r}function y(t){var e=new URL(window.location.href);var r=e.searchParams;r.delete(t);return e}/**
220 * Select all bulk checkboxes
221 *
222 * @since v2.0.0
223 */var w=document.querySelector("#tutor-bulk-checkbox-all");if(w){w.addEventListener("click",()=>{var t=document.querySelectorAll(".tutor-bulk-checkbox");t.forEach(t=>{if(w.checked){t.checked=true}else{t.checked=false}})})}/**
224 * Delete course delete
225 */var q=document.querySelectorAll(".tutor-admin-course-delete");for(var k of q){k.onclick=t=>{var e=t.currentTarget.dataset.id;if(i){i.elements.action.value="tutor_course_delete";i.elements.id.value=e}}}/**
226 * Handle permanent delete action
227 *
228 * @since 3.0.0
229 */var S=document.querySelectorAll(".tutor-delete-permanently");for(var x of S){x.onclick=t=>{var e=t.currentTarget.dataset.id;var r=t.currentTarget.dataset.action;if(i){i.elements.action.value=r;i.elements.id.value=e}}}/**
230 * Handle common confirmation form
231 *
232 * @since v.2.0.0
233 */if(i){i.onsubmit=t=>a(function*(){t.preventDefault();var e=new FormData(i);//show loading
234 var r=i.querySelector("[data-tutor-modal-submit]");r.classList.add("is-loading");var a=yield n(e);//hide modal
235 if(o.classList.contains("tutor-is-active")){o.classList.remove("tutor-is-active")}if(a.ok){var s=yield a.json();r.classList.remove("is-loading");if(s){if(typeof s==="object"&&s.success){tutor_toast(__("Delete","tutor"),s.data,"success");location.reload(true)}else if(typeof s==="object"&&s.success===false){tutor_toast(__("Failed","tutor"),s.data,"error")}else{tutor_toast(__("Delete","tutor"),__("Successfully deleted ","tutor"),"success");location.reload()}}else{tutor_toast(__("Failed","tutor"),__("Delete failed ","tutor"),"error")}}})()}});// EXTERNAL MODULE: ./assets/react/admin-dashboard/segments/lib.js
236 var i=r(83650);// CONCATENATED MODULE: ./assets/react/helper/sprintf.js
237 /**
238 * sprintf helper like as php
239 *
240 * @param {string} str string
241 * @param {...any} args
242 *
243 * @returns string
244 */function s(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),o=1;o<e;o++){r[o-1]=arguments[o]}return t.replace(/%s/g,function(){return r.shift()})}/* ESM default export */const u=s;// EXTERNAL MODULE: ./assets/react/front/_select_dd_search.js
245 var c=r(4545);// CONCATENATED MODULE: ./assets/react/helper/tutor-formdata.js
246 /**
247 * Prepare custom form data, while setting form data
248 * it will also set tutor nonce field.
249 *
250 * @since v2.1.0
251 *
252 * @param formId form id attribute
253 * @param data array of objects of form elements. Key value par
254 * like: [{name: 'john doe'}, {age: 100}]
255 *
256 * @return mixed formData on success, false on any error
257 */if(!window.tutor_get_nonce_data){window.tutor_get_nonce_data=function(t){var e=window._tutorobject||{};var r=e.nonce_key||"";var o=e[r]||"";if(t){return{key:r,value:o}}return{[r]:o}}}function l(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];var e=new FormData;t.forEach(t=>{for(var[r,o]of Object.entries(t)){e.set(r,o)}});e.set(window.tutor_get_nonce_data(true).key,window.tutor_get_nonce_data(true).value);return e}/* ESM default export */const d=l;// CONCATENATED MODULE: ./assets/react/front/course/_archive.js
258 var v=["keyword","course_order","tutor-course-filter-type","tutor-course-filter-level","tutor-course-filter-tag","tutor-course-filter-category","tutor-course-filter-price","course_filter","supported_filters","current_page","action"];var f=t=>{var e=function(e){var o=Array.isArray(t[e]);var a=o?e+"[]":e;var n=o?t[e]:[t[e]];n.forEach(t=>{if(typeof t!="object"){r.searchParams.append(a,t)}})};var r=new URL(window.location.origin+window.location.pathname);var o=m();// Include other params except tutors
259 for(var a in o){if(v.indexOf(a)==-1){r.searchParams.append(a,o[a])}}// Add currently used tutor params to the state
260 for(var n in t)e(n);window.history.pushState({},"",r)};var m=()=>{var t={};new URL(window.location).searchParams.forEach(function(e,r){if(r.slice(-2)=="[]"){var o=r.slice(0,-2);!t[o]?t[o]=[]:0;!Array.isArray(t[o])?t[o]=[t[o]]:0;t[o].push(e)}else{t[r]=e}});return t};var p=t=>{var e=function(e){var o=r[e];var a=t.find('[name="'+e+'"]');if(a.eq(0).attr("type")=="checkbox"){var n=!Array.isArray(o)?[o]:o;a.each(function(){var t=n.indexOf(window.jQuery(this).attr("value"))>-1;window.jQuery(this).prop("checked",t)})}else{a.val(o)}};var r=m();t.find('[type="checkbox"]').prop("checked",false);t.find('[type="text"], select').val("");// Loop through filter params array and change element state like check/uncheck/field value based on the filter
261 for(var o in r)e(o)};window.jQuery(document).ready(t=>{var{__}=window.wp.i18n;/**
262 * Manage course filter
263 *
264 * @since v.1.7.2
265 */var e=t("[tutor-course-filter] form");if(!e.length){return}var r=t("[tutor-course-list-container]");var o=t(".tutor-courses-wrap").data("tutor_courses_meta")||{};var i={};// Sidebar checkbox value change
266 e.on("submit",function(t){t.preventDefault()}).find("input,select").on("change",function(t){s()});p(e);window.addEventListener("popstate",()=>{p(e);s(false,true)});var s=function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:true,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:false;var s=m();var u=Object.assign(e.serializeObject(),i,o);u.current_page=n&&s.current_page?s.current_page:1;u.action="tutor_course_filter_ajax";if(a){f(u)}r.html('<div class="tutor-spinner-wrap"><span class="tutor-spinner" area-hidden="true"></span></div>');e.find("[action-tutor-clear-filter]").closest(".tutor-widget-course-filter").removeClass("tutor-d-none");if(!("category"in u.supported_filters)){var c="tutor-course-filter-category";var l=Object.keys(s).filter(t=>t.includes(c));if(l.length>0){var d=[];l.forEach(t=>{d.push(s[t])});u["tutor-course-filter-category"]=[...new Set(d)]}else{u["tutor-course-filter-category"]=JSON.parse(t("#course_filter_categories").val())}}var v="tutor-course-filter-exclude-ids";var p=Object.keys(s).filter(t=>t.includes(v));var _=[];if(p.length>0){p.forEach(t=>{_.push(s[t])});u["tutor-course-filter-exclude-ids"]=[...new Set(_)]}else{if(t("#course_filter_exclude_ids").length){u["tutor-course-filter-exclude-ids"]=JSON.parse(t("#course_filter_exclude_ids").val())}}var h="tutor-course-filter-post-ids";var g=Object.keys(s).filter(t=>t.includes(h));var b=[];if(g.length>0){g.forEach(t=>{b.push(s[t])});u["tutor-course-filter-post-ids"]=[...new Set(b)]}else{if(t("#course_filter_post_ids").length){u["tutor-course-filter-post-ids"]=JSON.parse(t("#course_filter_post_ids").val())}}t.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:u,success:function t(t){if(!t.success){r.html(__("Could not load courses","tutor"));return}r.html(t.data.html).find("nav").css("display","flex");window.dispatchEvent(new Event(_tutorobject.content_change_event))}})};// Course Filter on Phone
267 t("[tutor-toggle-course-filter]").on("click",function(e){e.preventDefault();t("body").toggleClass("tutor-course-filter-open");if(t(".tutor-course-filter-backdrop").length==0){t("body").append(t('<div class="tutor-course-filter-backdrop" area-hidden="true"></div>').hide().fadeIn(150))}});t("[tutor-hide-course-filter]").on("click",function(e){e.preventDefault();t("body").removeClass("tutor-course-filter-open")});/**
268 * Enroll student if user click on enroll course button
269 *
270 * @since v2.1.0
271 */var u=document.querySelectorAll(".tutor-course-list-enroll");u.forEach(t=>{t.onclick=t=>a(function*(){t.preventDefault();var e=__("Something went wrong, please try again!","tutor");var r=t.target;var o=[{action:"tutor_course_enrollment"},{course_id:r.dataset.courseId}];if(r.dataset.subscriptionEnrollment){o.push({tutor_subscription_enrollment:true})}var a=d(o);r.classList.add("is-loading");r.setAttribute("disabled",true);var i=yield n(a);if(i.ok){var s=yield i.json();var{success:u,data:c}=s;if(u){tutor_toast(__("Success","tutor"),c,"success");window.location.href=r.href}else{tutor_toast(__("Failed","tutor"),c?c:e,"error")}}else{tutor_toast(__("Error","tutor"),__(e),"error")}r.classList.remove("is-loading");r.removeAttribute("disabled")})()})});// Reusable for Instructor list filter
272 // EXTERNAL MODULE: ./assets/react/front/course/_lesson.js
273 var _=r(80922);// EXTERNAL MODULE: ./assets/react/front/course/_social-share.js
274 var h=r(23825);// CONCATENATED MODULE: ./assets/react/front/course/_spotlight.js
275 jQuery(document).ready(function(t){t(".tutor-sortable-list").sortable()});document.addEventListener("DOMContentLoaded",t=>{var{__,_x:e,_n:r,_nx:o}=wp.i18n;var i=document.querySelector(".tutor-lesson-sidebar.tutor-desktop-sidebar");var s=document.querySelector(".tutor-sidebar-toggle-anchor");if(i&&s){s.addEventListener("click",()=>{if(getComputedStyle(i).flex==="0 0 400px"){i.style.flex="0 0 0px";i.style.display="none"}else{i.style.display="block";i.style.flex="0 0 400px"}})}/**
276 * dynamically calcutate sidebarContent height from top
277 * and decrease sidebar height
278 */var u=document.querySelector(".tutor-sidebar-tabs-content");if(u){var c=u.getBoundingClientRect().top;u.style.height="calc(100vh - ".concat(c,"px)")}var l=function t(t){var e=document.querySelector(".tutor-desktop-sidebar-area");if(null!==e&&e.children.length<2){return}t.forEach(t=>{t.addEventListener("click",t=>{var e=t.currentTarget.parentNode.nextElementSibling;r(e);t.currentTarget.classList.add("active");var o=t.currentTarget.getAttribute("data-sidebar-tab");var a=e.querySelector("#"+o);a.classList.add("active");/**
279 * dynamically calcutate qnatabcontentrarea height from top
280 * and decrease it's height from 100vh
281 */var n=document.querySelector(".tutor-lessons-tab-area");var i=n.offsetHeight;if(o=="sidebar-qna-tab-content"){a.style.height="calc(100% - ".concat(i,"px)")}})});var r=function e(e){for(var r=0;r<t.length;r++){t[r].classList.remove("active")}var o=e.querySelectorAll(".tutor-lesson-sidebar-tab-item");for(var a=0;a<o.length;a++){o[a].classList.remove("active")}}};var d=document.querySelectorAll(".tutor-desktop-sidebar-area .tutor-sidebar-tab-item");var v=document.querySelectorAll(".tutor-mobile-sidebar-area .tutor-sidebar-tab-item");if(d){l(d)}if(v){l(v)}/* end of sidetab tab *//* comment text-area focus arrow style */var f=document.querySelectorAll(".tutor-comment-textarea textarea");if(f){f.forEach(t=>{t.addEventListener("focus",()=>{t.parentElement.classList.add("is-focused")});t.addEventListener("blur",()=>{t.parentElement.classList.remove("is-focused")})})}/* comment text-area focus arrow style */function m(){var t=document.querySelectorAll(".tutor-comments-list.tutor-parent-comment");var e=document.querySelector(".tutor-comment-box.tutor-reply-box");if(t){[...t].forEach(t=>{var r=t.querySelectorAll(".tutor-comments-list.tutor-child-comment");var o=t.querySelector(".tutor-comment-line");var a=r.length;if(r[a-1]){var n=r[a-1].clientHeight;var i=n+e.clientHeight+20-25+50;o.style.setProperty("height","calc(100% - ".concat(i,"px)"))}})}}m();window.addEventListener(_tutorobject.content_change_event,m);/* commenting */// quiz drag n drop functionality
282 var p=document.querySelectorAll(".tutor-draggable > div");var _=document.querySelectorAll(".tutor-dropzone");p.forEach(t=>{t.addEventListener("dragstart",k);t.addEventListener("dragend",S)});p.forEach(t=>{["touchstart","touchmove","touchend"].forEach(function(e){t.addEventListener(e,b)})});_.forEach(t=>{t.addEventListener("dragover",x);t.addEventListener("dragenter",L);t.addEventListener("dragleave",j);t.addEventListener("drop",E)});var h=null;var g=0;function b(t){t.preventDefault();var{type:e}=t;if(e==="touchstart"){this.classList.add("tutor-dragging");w()}else if(e==="touchmove"){var r=t.target.closest(".tutor-dragging");var o=document.querySelector(".tutor-drag-copy");if(r){var a=r.getBoundingClientRect();var n=t.touches[0].clientY;var i=t.touches[0].clientX;var s=100;var u=40;var c=window.innerHeight;var l=c-n;var d=n;g=0;if(l<s){g=q(s,l,u)}else if(d<s){g=-q(s,d,u)}if(!o){o=r.cloneNode(true);o.classList.add("tutor-drag-copy");r.parentNode.appendChild(o)}o.style.position="fixed";o.style.left=i-o.clientWidth/2+"px";o.style.top=n-o.clientHeight/2+"px";o.style.zIndex="9999";o.style.opacity="0.5";o.style.width=a.width+"px";o.style.height=a.height+"px"}}else if(e==="touchend"){var v=document.querySelector(".tutor-drag-copy");if(v){v.remove();var f=typeof t.originalEvent==="undefined"?t:t.originalEvent;var m=f.touches[0]||f.changedTouches[0];var[p,_]=[m.clientX,m.clientY];var h=document.elementFromPoint(p,_);if(h.classList.contains("tutor-dropzone")||h.closest(".tutor-dropzone")){if(!h.classList.contains("tutor-dropzone")){h=h.closest(".tutor-dropzone")}var b=v.querySelector("input");var k=b.dataset.name;var S=document.createElement("input");S.type="text";S.setAttribute("value",b.value);S.setAttribute("name",k);/**
283 * Selecting a correct option after an incorrect fails in mobile issue fixed.
284 *
285 * @since 3.2.0
286 */var x=h.querySelector("input");if(x){x.remove()}h.appendChild(S);var L=v.querySelector(".tutor-dragging-text-conent").textContent;h.querySelector(".tutor-dragging-text-conent").textContent=L;h.querySelector(".tutor-dragging-text-conent").classList.add("tutor-color-black");this.classList.remove("tutor-dragging")}}y()}}function y(){clearInterval(h);h=null}function w(){if(!h){h=setInterval(()=>{window.scrollBy(0,g)},60)}}function q(t,e,r){var o=(t-e)/t*r;return Math.max(o,0)}function k(){this.classList.add("tutor-dragging")}function S(){this.classList.remove("tutor-dragging")}function x(t){this.classList.add("tutor-drop-over");t.preventDefault()}function L(){}function j(){this.classList.remove("tutor-drop-over")}function E(){var t=document.querySelector(".tutor-quiz-border-box.tutor-dragging");if(this.querySelector("input")){this.querySelector("input").remove()}var e=t.querySelector("input");var r=e.dataset.name;var o=document.createElement("input");o.type="text";o.setAttribute("value",e.value);o.setAttribute("name",r);this.appendChild(o);var a=t.querySelector(".tutor-dragging-text-conent").textContent;this.querySelector(".tutor-dragging-text-conent").textContent=a;this.querySelector(".tutor-dragging-text-conent").classList.add("tutor-color-black");this.classList.remove("tutor-drop-over")}// tutor assignment file upload
287 var C=document.getElementById("tutor-assignment-file-upload");if(C){C.addEventListener("change",z)}function z(){var t;var e=[...C.files].reduce((t,e)=>t+e.size,0);// byte
288 var r=parseInt((t=document.querySelector('input[name="tutor_assignment_upload_limit"]'))===null||t===void 0?void 0:t.value)||0;var o="";var a=window._tutorobject.assignment_max_file_allowed;var n=document.querySelectorAll("#tutor-student-assignment-edit-file-preview .tutor-instructor-card").length;var i=a-n;if(C.files.length>i){C.value=null;tutor_toast(__("Warning","tutor"),__("Max ".concat(a," file allowed to upload"),"tutor"),"error");return}if(e>r){C.value=null;tutor_toast(__("Warning","tutor"),__("File size exceeds maximum limit ".concat(Math.floor(r/1e6)," MB."),"tutor"),"error");return}if("files"in C){if(C&&C.files.length==0){o="Select one or more files."}else{if(C.files.length>i){tutor_toast(__("Warning","tutor"),__("Max ".concat(a," file allowed to upload"),"tutor"),"error")}var s="";var u=document.querySelector(".tutor-asisgnment-upload-file-preview");var c=document.getElementById("tutor-student-assignment-edit-file-preview");for(var l=0;l<i;l++){var d=C.files[l];if(!d){continue}var v=c?"tutor-col-sm-5 tutor-py-16 tutor-mr-16":"";s+='<div class="tutor-instructor-card '.concat(v,'">\n <div class="tutor-icard-content">\n <div class="tutor-fs-6 tutor-color-secondary">\n ').concat(d.name,'\n </div>\n <div class="tutor-fs-7">Size: ').concat(d.size,'</div>\n </div>\n <div onclick="(() => {\n this.closest(\'.tutor-instructor-card\').remove();\n })()" class="tutor-attachment-file-close tutor-iconic-btn tutor-iconic-btn-outline flex-center">\n <span class="tutor-icon-times"></span>\n </div>\n </div>')}if(u){u.innerHTML=s}if(c){c.insertAdjacentHTML("beforeend",s)}}}}//remove file
289 var T=document.querySelectorAll(".tutor-attachment-file-close a");T.forEach(t=>{t.onclick=t=>a(function*(){t.preventDefault();var e=t.currentTarget;var r=e.dataset.name;var o=e.dataset.id;var a=new FormData;a.set("action","tutor_remove_assignment_attachment");a.set("assignment_comment_id",o);a.set("file_name",r);a.set(window.tutor_get_nonce_data(true).key,window.tutor_get_nonce_data(true).value);var i=e.querySelector("span");t.target.classList.add("is-loading");var s=yield n(a);if(s.ok){var u=yield s.json();if(!u){tutor_toast(__("Warning","tutor"),__("Attachment remove failed","tutor"),"error")}else{e.closest(".tutor-instructor-card").remove()}}else{alert(s.statusText);t.target.classList.remove("is-loading")}})()})});// EXTERNAL MODULE: ./assets/react/front/course/_spotlight-quiz.js
290 var g=r(90521);// EXTERNAL MODULE: ./assets/react/front/course/_spotlight-quiz-timing.js
291 var b=r(63023);// EXTERNAL MODULE: ./assets/react/front/course/_wishlist.js
292 var y=r(12155);// EXTERNAL MODULE: ./assets/react/front/course/_woocommerce.js
293 var w=r(53579);// CONCATENATED MODULE: ./assets/react/front/course/index.js
294 window.jQuery(document).ready(t=>{// Login require on enrol purchase click
295 t(document).on("click",".tutor-course-entry-box-login button, .tutor-course-entry-box-login a, .tutor-open-login-modal",function(e){e.preventDefault();var r=t(this).data("login_url")||t(this).closest(".tutor-course-entry-box-login").data("login_url");if(r){window.location.assign(r)}else{t(".tutor-login-modal").addClass("tutor-is-active")}});/**
296 * Tutor password protected course.
297 *
298 * @since v.3.0.0
299 */var e=document.querySelector(".tutor-password-protected-course");if(e){// Disable page scrolling when password protected course modal is active.
300 var r=document.querySelector("body");r.style.overflow="hidden";// Hide and show password on checkbox click.
301 var o=e.querySelector('input[type="password"]');var a=e.querySelector('input[type="checkbox"]');a.addEventListener("change",function(){if(a.checked){o.type="text"}else{o.type="password"}})}/**
302 * Replace UTC date time to local date time
303 *
304 * @since v.3.3.0
305 */function n(){var t=document.querySelectorAll(".tutor-utc-date-time");if(t.length>0&&wp.date){var e=wp.date.getSettings();var r=e.formats.date;var o=e.formats.time;var a="".concat(r,", ").concat(o);t.forEach(t=>{try{var e=t.textContent.trim();var r=new Date("".concat(e," UTC"));if(!isNaN(r)){t.textContent=wp.date.dateI18n(a,r,Intl.DateTimeFormat().resolvedOptions().timeZone)}else{console.warn('Invalid UTC date: "'.concat(e,'"'))}}catch(t){console.log(t)}})}}n();window.addEventListener("tutor_content_changed_event",()=>{n()})});// EXTERNAL MODULE: ./assets/react/front/dashboard/mobile-nav.js
306 var q=r(20193);// EXTERNAL MODULE: ./assets/react/front/dashboard/withdrawal.js
307 var k=r(44789);// EXTERNAL MODULE: ./assets/react/front/dashboard/settings/profile.js
308 var S=r(48621);// EXTERNAL MODULE: ./assets/react/front/dashboard/settings/passowrd-reset.js
309 var x=r(35852);// CONCATENATED MODULE: ./assets/react/front/dashboard/settings/billing.js
310 document.addEventListener("DOMContentLoaded",function(){var{__}=wp.i18n;var t=__("Something went wrong, please try again","tutor");var e=document.querySelector("#user_billing_form");if(e){var r=e.querySelector('button[type="submit"]');e.addEventListener("submit",function(e){return a(function*(){e.preventDefault();var o=new FormData(e.target);try{r.setAttribute("disabled","disabled");r.classList.add("is-loading");var a=yield n(o);var{status_code:i,message:s=t}=yield a.json();if(i===200){tutor_toast(__("Success","tutor"),s,"success")}else{tutor_toast(__("Failed","tutor"),s,"error")}}catch(e){tutor_toast(__("Failed","tutor"),t,"error")}finally{r.removeAttribute("disabled");r.classList.remove("is-loading")}})()})}});// EXTERNAL MODULE: ./assets/react/front/dashboard/index.js
311 var L=r(11602);// CONCATENATED MODULE: ./assets/react/front/dashboard.js
312 // EXTERNAL MODULE: ./assets/react/front/dashboard/export-csv.js
313 var j=r(6402);// CONCATENATED MODULE: ./assets/react/helper/utils.js
314 function E(){return a(function*(){try{var t=yield fetch("".concat(_tutorobject.tutor_url,"/assets/json/countries.json"));if(!t.ok){throw new Error("Failed to fetch countries: ".concat(t.status," ").concat(t.statusText))}return yield t.json()}catch(t){console.error("Error fetching countries:",t);return[]}})()};// CONCATENATED MODULE: ./assets/react/front/pages/billing.js
315 document.addEventListener("DOMContentLoaded",()=>a(function*(){var{__}=wp.i18n;var t=document.querySelector("[name=billing_country]");if(t){var e=yield E();t.addEventListener("change",t=>{var r;var o=t.target.value;var a=(r=e.find(t=>t.name===o))===null||r===void 0?void 0:r.states;var n=document.querySelector("[name=billing_state]");// Clear current state options
316 if(a&&a.length>0){n.innerHTML="";// Populate state dropdown with new states
317 a.forEach(function(t){var e=document.createElement("option");e.value=t.name;e.textContent=t.name;n.appendChild(e)})}else{n.innerHTML='<option value="">'.concat(__("N/A","tutor"),"</option>")}})}})());// CONCATENATED MODULE: ./assets/react/front/pages/cart.js
318 document.addEventListener("DOMContentLoaded",function(){var{__}=wp.i18n;var t=__("Something went wrong, please try again","tutor");// Add to cart functionalities
319 document.addEventListener("click",e=>a(function*(){var r=e.target.closest(".tutor-native-add-to-cart");if(r){var o=d([{action:"tutor_add_course_to_cart",course_id:r.dataset.courseId}]);var a=document.body.classList.contains("single-courses")||document.body.classList.contains("single-course-bundle");try{r.setAttribute("disabled","disabled");r.classList.add("is-loading");var i=yield n(o);var{status_code:s,data:u,message:c=t}=yield i.json();if(s===201){tutor_toast(__("Success","tutor"),c,"success");var l;var v='<a data-cy="tutor-native-view-cart" href="'.concat((l=u===null||u===void 0?void 0:u.cart_page_url)!==null&&l!==void 0?l:"#",'" class="tutor-btn tutor-btn-outline-primary ').concat(a?"tutor-btn-lg tutor-btn-block":"tutor-btn-md"," ").concat(!(u===null||u===void 0?void 0:u.cart_page_url)?"tutor-cart-page-not-configured":"",'">').concat(__("View Cart","tutor"),"</a>");r.parentElement.innerHTML=v;// Create a custom event with cart count
320 var f=new CustomEvent("tutorAddToCartEvent",{detail:{cart_count:u===null||u===void 0?void 0:u.cart_count}});// Dispatch the custom cart event
321 document.dispatchEvent(f)}else{tutor_toast(__("Failed","tutor"),c,"error")}}catch(e){tutor_toast(__("Failed","tutor"),t,"error")}finally{r.removeAttribute("disabled");r.classList.remove("is-loading")}}})());// Remove course from card
322 var e=document.querySelector(".tutor-cart-page");if(e){document.addEventListener("click",e=>a(function*(){var r=e.target.closest(".tutor-cart-remove-button");if(r){var o=d([{action:"tutor_delete_course_from_cart",course_id:r.dataset.courseId}]);try{r.setAttribute("disabled","disabled");r.classList.add("is-loading");var a=yield n(o);var{status_code:i,data:s,message:u=t}=yield a.json();if(i===200){document.querySelector(".tutor-cart-page-wrapper").parentElement.innerHTML=s===null||s===void 0?void 0:s.cart_template;tutor_toast(__("Success","tutor"),u,"success");// Trigger a custom event with cart count
323 var c=new CustomEvent("tutorRemoveCartEvent",{detail:{cart_count:s===null||s===void 0?void 0:s.cart_count}});// Dispatch the custom cart event
324 document.dispatchEvent(c)}else{tutor_toast(__("Failed","tutor"),u,"error")}}catch(e){tutor_toast(__("Failed","tutor"),t,"error")}finally{r.removeAttribute("disabled");r.classList.remove("is-loading")}}})())}// Display toast if cart page is not configured.
325 document.addEventListener("click",t=>{if(t.target.classList.contains("tutor-cart-page-not-configured")){t.preventDefault();tutor_toast(__("Error!","tutor"),__("Cart page is not configured.","tutor"),"error")}});// Display toast if checkout page is not configured.
326 document.addEventListener("click",t=>{if(t.target.classList.contains("tutor-checkout-page-not-configured")){t.preventDefault();tutor_toast(__("Error!","tutor"),__("Checkout page is not configured.","tutor"),"error")}})});// CONCATENATED MODULE: ./assets/react/front/pages/checkout.js
327 document.addEventListener("DOMContentLoaded",()=>{var{__}=wp.i18n;var t=__("Something went wrong, please try again","tutor");var e=document.querySelector(".tutor-checkout-page");if(e){var r=document.querySelector(".tutor-payment-method-wrapper");var o=document.querySelector("#tutor-checkout-pay-now-button");var i=document.querySelectorAll(".tutor-checkout-payment-item");var s=document.querySelector("input[name=payment_type]");/**
328 * Get checkout JSON object.
329 *
330 * @since 3.6.0
331 *
332 * @returns {object} JSON object.
333 */function u(){var t;var e=(t=document.querySelector("#checkout_data"))===null||t===void 0?void 0:t.value;return JSON.parse(e)}/**
334 * Determines if tax is managed by Tutor (not the payment gateway)
335 *
336 * @since 3.6.0
337 *
338 * @param {string} paymentMethodName - The name of the payment method (paypal, stripe, paddle, etc).
339 *
340 * @returns {boolean}
341 */function c(t){var e=["paddle"];return!e.includes(t.toLowerCase())}/**
342 * Determine tax info will be shown or hide.
343 *
344 * @since 3.6.0
345 *
346 * @param {string} paymentMethodName payment method name.
347 *
348 * @returns {void}
349 */function l(t){var e=document.querySelector(".tutor-checkout-tax-amount");var r=document.querySelectorAll(".tutor-checkout-incl-tax-label");var o=document.querySelector(".tutor-checkout-grand-total");var a=u();if(c(t)){o.innerHTML=a.formatted_total_price;r.forEach(t=>t.classList.remove("tutor-d-none"));e===null||e===void 0?void 0:e.classList.remove("tutor-d-none")}else{o.innerHTML=a.formatted_total_price_without_tax;r.forEach(t=>t.classList.add("tutor-d-none"));e===null||e===void 0?void 0:e.classList.add("tutor-d-none")}}// Handle payment method selection.
350 document.addEventListener("click",e=>a(function*(){if(e.target.closest(".tutor-checkout-payment-options")){var a=document.querySelector(".tutor-checkout-payment-options");var i=a.querySelectorAll("label");// Remove active class.
351 i.forEach(t=>t.classList.remove("active"));// Add active class to the selected option.
352 var c=e.target.closest("label");c.classList.add("active");s.value=c.dataset.paymentType;var d=c.firstElementChild.value;l(d);var f=document.querySelector(".tutor-payment-instructions");if(f){var m=c.querySelector(".tutor-payment-item-instructions");if(m){f.classList.remove("tutor-d-none");f.innerHTML=m.innerHTML}else{f.classList.add("tutor-d-none")}}}// Handle toggle coupon form button click.
353 if(e.target.closest("#tutor-toggle-coupon-button")){var p=document.querySelector(".tutor-apply-coupon-form");var _=p===null||p===void 0?void 0:p.querySelector("input");if(p.classList.contains("tutor-d-none")){p.classList.remove("tutor-d-none");_.focus()}else{p.classList.add("tutor-d-none")}}// Handle apply coupon button.
354 if(e.target.closest("#tutor-apply-coupon-button")){var h;var b=new URL(window.location.href);var y=b.searchParams.get("plan");var w=(h=document.querySelector(".tutor-apply-coupon-form input"))===null||h===void 0?void 0:h.value;var q=document.querySelector(".tutor-apply-coupon-form button");if(w.length===0){tutor_toast(__("Failed","tutor"),__("Please add a coupon code.","tutor"),"error");return}var k=new FormData;k.set(window.tutor_get_nonce_data(true).key,window.tutor_get_nonce_data(true).value);k.set("action","tutor_apply_coupon");k.set("coupon_code",w);k.set("object_ids",q.dataset.objectIds);if(y){k.set("plan",y)}try{q.setAttribute("disabled","disabled");q.classList.add("is-loading");var S=yield n(k);var{status_code:x,data:L,message:j=t}=yield S.json();if(x===200){tutor_toast(__("Success","tutor"),j,"success");yield v(w,null,null);if(!L.total_price&&L.order_type==="single_order"){var E;r.classList.add("tutor-d-none");o.innerHTML=(E=u())===null||E===void 0?void 0:E.pay_now_btn_text;r.insertAdjacentHTML("beforeend","<input type='hidden' name='payment_method' value='free' id=\"tutor-temp-payment-method\"/>")}}else{tutor_toast(__("Failed","tutor"),j,"error")}}catch(e){tutor_toast(__("Failed","tutor"),t,"error")}finally{q.removeAttribute("disabled");q.classList.remove("is-loading")}}// Handle coupon remove button click.
355 if(e.target.closest("#tutor-checkout-remove-coupon")){var C,z,T;document.querySelector("input[name=coupon_code]").value="-1";document.querySelector("#tutor-checkout-remove-coupon").classList.add("is-loading");yield v("-1",null,null);var A=(C=document.querySelector("input[name=payment_method]:checked"))===null||C===void 0?void 0:C.value;if(A){l(A)}r.classList.remove("tutor-d-none");o.innerHTML=(z=u())===null||z===void 0?void 0:z.pay_now_btn_text;(T=document.getElementById("tutor-temp-payment-method"))===null||T===void 0?void 0:T.remove();g()}})());// If only one payment available, keep selected.
356 g();// Apply coupon on enter coupon field.
357 document.addEventListener("keydown",t=>{if(t.key==="Enter"&&t.target.closest("input[name=coupon_code]")){t.preventDefault();var e=t.target.parentNode.querySelector("#tutor-apply-coupon-button");e===null||e===void 0?void 0:e.click()}});// Validate checkout form.
358 var d=document.getElementById("tutor-checkout-form");d===null||d===void 0?void 0:d.addEventListener("submit",function(t){t.preventDefault();var e=u();var r=new FormData(t.target);if(e.payment_method_required&&!r.get("payment_method")){tutor_toast(__("Error","tutor"),__("Please select a payment method.","tutor"),"error");return}var o=document.getElementById("tutor-checkout-pay-now-button");o.classList.add("is-loading");o.textContent=__("Processing","tutor");o.setAttribute("disabled",true);this.submit()});/**
359 * Update checkout data.
360 *
361 * @since 3.3.0
362 *
363 * @param {string} couponCode coupon code.
364 * @param {string} billingCountry Billing country.
365 * @param {string} billingState Billing state.
366 */function v(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;return a(function*(){var o=new URL(window.location.href);var a=o.searchParams.get("plan");var i=o.searchParams.get("course_id");var s=new FormData;s.set(window.tutor_get_nonce_data(true).key,window.tutor_get_nonce_data(true).value);s.set("action","tutor_get_checkout_html");s.set("coupon_code",t);if(e){s.set("billing_country",e)}if(r){s.set("billing_state",r)}if(a){s.set("plan",a)}if(i){s.set("course_id",i)}var u=yield n(s);var c=yield u.json();var l=document.querySelector("[tutor-checkout-details]");if(l){l.innerHTML=c.data}})()}/**
367 * Handle tax calculation on country and state change.
368 *
369 * @since 3.0.0
370 */var f=document.querySelector("[name=billing_country]");var m=document.querySelector("[name=billing_state]");var p='<span class="tutor-btn is-loading tutor-checkout-spinner"></span>';function _(t){return a(function*(){t.set(window.tutor_get_nonce_data(true).key,window.tutor_get_nonce_data(true).value);t.set("action","tutor_save_billing_info");var e=yield n(t);var r=yield e.json();return r})()}var h=(t,e)=>{if("show"===e){var r;t===null||t===void 0?void 0:t.setAttribute("disabled","disabled");t===null||t===void 0?void 0:(r=t.closest(".tutor-position-relative"))===null||r===void 0?void 0:r.insertAdjacentHTML("beforeend",p)}else{var o,a;t===null||t===void 0?void 0:t.removeAttribute("disabled");t===null||t===void 0?void 0:(a=t.closest(".tutor-position-relative"))===null||a===void 0?void 0:(o=a.querySelector(".tutor-checkout-spinner"))===null||o===void 0?void 0:o.remove()}};f===null||f===void 0?void 0:f.addEventListener("change",t=>a(function*(){var e=document.querySelector("[name=coupon_code]");var r=t.target.value;var o=(e===null||e===void 0?void 0:e.value)?e.value:"";if(r){h(t.target,"show");var a=new FormData;a.set("billing_country",r);yield _(a);yield v(o,f.value,m.value);h(t.target,"hide")}})());m===null||m===void 0?void 0:m.addEventListener("change",t=>a(function*(){var e=document.querySelector("[name=coupon_code]");var r=f.value;var o=t.target.value;var a=(e===null||e===void 0?void 0:e.value)?e.value:"";if(o){h(t.target,"show");var n=new FormData;n.set("billing_country",r);n.set("billing_state",o);yield _(n);yield v(a,f.value,m.value);h(t.target,"hide")}})());/**
371 * Handles the selection of a single payment option.
372 *
373 * @returns {void}
374 * @since 3.5.0
375 */function g(){var t=u();if(!t.payment_method_required){return}// If only one payment available, keep selected.
376 if(i.length===1){i[0].classList.add("active");i[0].querySelector("input[name=payment_method]").checked=true;s.value=i[0].dataset.paymentType;l(i[0].firstElementChild.value);var e=i[0].querySelector(".tutor-payment-item-instructions");if(e){document.querySelector(".tutor-payment-instructions").classList.remove("tutor-d-none");document.querySelector(".tutor-payment-instructions").innerHTML=e.innerHTML}}}}});// EXTERNAL MODULE: ./assets/react/front/pages/course-landing.js
377 var C=r(1838);// EXTERNAL MODULE: ./assets/react/front/pages/instructor-list-filter.js
378 var z=r(39356);// CONCATENATED MODULE: ./assets/react/front/tutor-front.js
379 /**
380 * Codes from this file should be decentralized according to relavent file/folder structure.
381 * It's a legacy file.
382 */readyState_complete(()=>{Object.entries(document.getElementsByTagName("a")).forEach(t=>{var e=t[1].getAttribute("href");if((e===null||e===void 0?void 0:e.includes("/logout"))||(e===null||e===void 0?void 0:e.includes("logout"))){t[1].setAttribute("data-no-instant","")}})});jQuery(document).ready(function(t){"use strict";/**
383 * wp.i18n translatable functions
384 * @since 1.9.0
385 */var{__,_x:r,_n:o,_nx:a}=wp.i18n;/**
386 * Initiate Select2
387 * @since v.1.3.4
388 */if(jQuery().select2){t(".tutor_select2").select2({escapeMarkup:function t(t){return t}})}//END: select2
389 /*!
390 * jQuery UI Touch Punch 0.2.3
391 *
392 * Copyright 2011–2014, Dave Furfero
393 * Dual licensed under the MIT or GPL Version 2 licenses.
394 *
395 * Depends:
396 * jquery.ui.widget.js
397 * jquery.ui.mouse.js
398 */!function(t){function e(t,e){if(!(t.originalEvent.touches.length>1)){t.preventDefault();var r=t.originalEvent.changedTouches[0],o=document.createEvent("MouseEvents");o.initMouseEvent(e,!0,!0,window,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(o)}}if(t.support.touch="ontouchend"in document,t.support.touch){var r,o=t.ui.mouse.prototype,a=o._mouseInit,n=o._mouseDestroy;o._touchStart=function(t){var o=this;!r&&o._mouseCapture(t.originalEvent.changedTouches[0])&&(r=!0,o._touchMoved=!1,e(t,"mouseover"),e(t,"mousemove"),e(t,"mousedown"))},o._touchMove=function(t){r&&(this._touchMoved=!0,e(t,"mousemove"))},o._touchEnd=function(t){r&&(e(t,"mouseup"),e(t,"mouseout"),this._touchMoved||e(t,"click"),r=!1)},o._mouseInit=function(){var e=this;e.element.bind({touchstart:t.proxy(e,"_touchStart"),touchmove:t.proxy(e,"_touchMove"),touchend:t.proxy(e,"_touchEnd")}),a.call(e)},o._mouseDestroy=function(){var e=this;e.element.unbind({touchstart:t.proxy(e,"_touchStart"),touchmove:t.proxy(e,"_touchMove"),touchend:t.proxy(e,"_touchEnd")}),n.call(e)}}}(jQuery);/**
399 * END jQuery UI Touch Punch
400 */var n={ajaxurl:window._tutorobject.ajaxurl,nonce_key:window._tutorobject.nonce_key,played_once:false,max_seek_time:0,video_data:function e(){var e=t("#tutor_video_tracking_information").val();return e?JSON.parse(e):{}},track_player:function r(){var r=this;if(typeof Plyr!=="undefined"){var o;var a=r.video_data();var n=new Plyr(this.player_DOM,{keyboard:{focused:r.isRequiredPercentage()?false:true,global:false},listeners:e({},r.isRequiredPercentage()&&{seek(t){var e=r.getTargetTime(n,t);var o=n.currentTime;var a=o>r.max_seek_time?o:r.max_seek_time;// Disallow moving forward
401 if(e>a){t.preventDefault();tutor_toast(__("Warning","tutor"),__("Forward seeking is disabled","tutor"),"error");return false}return true}})});n.on("ready",function(t){var e=t.detail.plyr;var{best_watch_time:o=0}=a||{};if(_tutorobject.tutor_pro_url&&o>0){var i=Math.floor(o);var s=setTimeout(function(){if(n.playing!==true&&n.currentTime!==i){if(e.provider==="youtube"){e.embed.seekTo(o)}else{e.media.currentTime=i}}else{clearTimeout(s)}})}r.sync_time(e)});n.on("play",e=>{r.played_once=true;// Send to tutor backend about video playing time in this interval
402 var a=10;var i=e.detail.plyr;o=setInterval(()=>{r.sync_time(i)},a*1e3);if(_tutorobject.tutor_pro_url&&n.provider==="youtube"){t(".plyr--youtube.plyr__poster-enabled .plyr__poster").css("opacity",0)}});n.on("pause",t=>{clearInterval(o);var e=t.detail.plyr;r.sync_time(e)});n.on("ended",function(e){clearInterval(o);var a=r.video_data();var i=e.detail.plyr;var s={is_ended:true};r.sync_time(i,s);if(a.autoload_next_course_content&&r.played_once){r.autoload_content()}if(_tutorobject.tutor_pro_url&&n.provider==="youtube"){t(".plyr--youtube.plyr__poster-enabled .plyr__poster").css("opacity",1)}})}},sync_time:function e(e,r){var o=this.video_data();if(!o){return}if(this.isRequiredPercentage()){this.enable_complete_lesson_btn(e)}//TUTOR is sending about video playback information to server.
403 var a={action:"sync_video_playback",currentTime:e.currentTime,duration:e.duration,post_id:o.post_id};a[this.nonce_key]=_tutorobject[this.nonce_key];var n=a;if(r){n=Object.assign(a,r)}t.post(this.ajaxurl,n);var i=o.best_watch_time>e.currentTime?o.best_watch_time:e.currentTime;if(i>this.max_seek_time){this.max_seek_time=i}},autoload_content:function e(){console.log("Autoloader called");var e=this.video_data().post_id;var r={action:"autoload_next_course_content",post_id:e};r[this.nonce_key]=_tutorobject[this.nonce_key];t.post(this.ajaxurl,r).done(function(t){console.log(t);if(t.success&&t.data.next_url){location.href=t.data.next_url}})},isRequiredPercentage:function t(){var t=this.video_data();if(!t){return false}var{strict_mode:e,control_video_lesson_completion:r,lesson_completed:o,is_enrolled:a}=t;if(_tutorobject.tutor_pro_url&&a&&!o&&e&&r){return true}return false},enable_complete_lesson_btn:function e(e){var r=t('button[name="complete_lesson_btn"]');var o=this.video_data();var a=this.getPercentage(Number(e.currentTime),Number(e.duration));if(a>=o.required_percentage){r.attr("disabled",false);r.next().remove()}},disable_complete_lesson_btn:function e(){var e=this.video_data();if(!e){return}var{best_watch_time:r,video_duration:o,required_percentage:a}=e;var n=this.getPercentage(Number(r),Number(o));if(n<a){var i=t('button[name="complete_lesson_btn"]');i.attr("disabled",true);/* translators: %s is the required watch percentage (e.g., 80) */i.wrap('<div class="tooltip-wrap"></div>').after('<span class="tooltip-txt tooltip-bottom">'.concat(u(__("Watch at least %s% to complete the lesson.","tutor"),e.required_percentage),"</span>"))}},getPercentage:function t(t,e){if(t>0&&e>0){return Math.round(t/e*100)}return 0},getTargetTime:function t(t,e){if(typeof e==="object"&&(e.type==="input"||e.type==="change")){return e.target.value/e.target.max*t.media.duration}else{return Number(e)}},init:function t(t){this.player_DOM=t;this.track_player();if(this.isRequiredPercentage()){this.disable_complete_lesson_btn()}}};/**
404 * Fire TUTOR video
405 * @since v.1.0.0
406 */t(".tutorPlayer").each(function(){n.init(this)});t(document).on("change keyup paste",".tutor_user_name",function(){t(this).val(i(t(this).val()))});function i(t){return t.toString().toLowerCase().replace(/\s+/g,"-")// Replace spaces with -
407 .replace(/[^\w\-]+/g,"")// Remove all non-word chars
408 .replace(/\-\-+/g,"-")// Replace multiple - with single -
409 .replace(/^-+/,"")// Trim - from start of text
410 .replace(/-+$/,"");// Trim - from end of text
411 }t(document).on("click",".tutor_question_cancel",function(e){e.preventDefault();t(".tutor-add-question-wrap").toggle()});// Quiz Review : Tooltip
412 t(".tooltip-btn").on("hover",function(e){t(this).toggleClass("active")});// tutor course content accordion
413 /**
414 * Toggle topic summery
415 * @since v.1.6.9
416 */t(".tutor-course-title h4 .toggle-information-icon").on("click",function(e){t(this).closest(".tutor-topics-in-single-lesson").find(".tutor-topics-summery").slideToggle();e.stopPropagation()});t(".tutor-course-topic.tutor-active").find(".tutor-course-lessons").slideDown();t(".tutor-course-title").on("click",function(){var e=t(this).siblings(".tutor-course-lessons");t(this).closest(".tutor-course-topic").toggleClass("tutor-active");e.slideToggle()});t(document).on("click",".tutor-topics-title h3 .toggle-information-icon",function(e){t(this).closest(".tutor-topics-in-single-lesson").find(".tutor-topics-summery").slideToggle();e.stopPropagation()});// toggle topics sidebar
417 t(document).on("click","[tutor-course-topics-sidebar-toggler]",function(e){e.preventDefault();t(".tutor-course-single-content-wrapper").toggleClass("tutor-course-single-sidebar-hidden")});t("[tutor-course-topics-sidebar-offcanvas-toggler]").on("click",function(e){e.preventDefault();t(".tutor-course-single-content-wrapper").toggleClass("tutor-course-single-sidebar-open");t("body").toggleClass("tutor-overflow-hidden")});t("[tutor-hide-course-single-sidebar]").on("click",function(e){e.preventDefault();console.log("Hello");t(".tutor-course-single-content-wrapper").removeClass("tutor-course-single-sidebar-open");t("body").removeClass("tutor-overflow-hidden")});//@todo: to be removed
418 t(".tutor-tabs-btn-group a").on("click touchstart",function(e){e.preventDefault();var r=t(this);var o=r.attr("href");t(".tutor-lesson-sidebar-tab-item").hide();t(o).show();t(".tutor-tabs-btn-group a").removeClass("active");r.addClass("active")});/**
419 *
420 * @type {jQuery}
421 *
422 * Improved Quiz draggable answers drop accessibility
423 * Answers draggable wrap will be now same height.
424 *
425 * @since v.1.4.4
426 */var s=t(".quiz-draggable-rand-answers").length;if(s){t(".quiz-draggable-rand-answers").each(function(){var e=t(this);var r=e.height();e.css({height:r})})}/**
427 * Datepicker initiate
428 *
429 * @since v.1.1.2
430 */if(jQuery.datepicker){t(".tutor_report_datepicker").datepicker({dateFormat:"yy-mm-dd"})}/**
431 * Setting account for withdraw earning
432 *
433 * @since v.1.2.0
434 */t(document).on("submit","#tutor-withdraw-account-set-form",function(e){if(!e.detail||e.detail==1){e.preventDefault();var r=t(this);var o=r.find(".tutor_set_withdraw_account_btn");var a=r.serializeObject();o.prop("disabled",true);t.ajax({url:_tutorobject.ajaxurl,type:"POST",data:a,beforeSend:function t(){o.addClass("is-loading")},success:function t(t){if(t.success){tutor_toast(__("Success!","tutor"),t.data.msg,"success")}},complete:function t(){o.removeClass("is-loading");setTimeout(()=>{o.prop("disabled",false)},2e3)}})}});/**
435 * Make Withdraw Form
436 *
437 * @since v.1.2.0
438 */t(document).on("submit","#tutor-earning-withdraw-form",function(e){e.preventDefault();var r=t(this);var o=t("#tutor-earning-withdraw-btn");var a=t(".tutor-withdraw-form-response");var n=r.serializeObject();t.ajax({url:_tutorobject.ajaxurl,type:"POST",data:n,beforeSend:function t(){r.find(".tutor-success-msg").remove();o.attr("disabled","disabled").addClass("is-loading")},success:function e(e){var r;t(".tutor-earning-withdraw-form-wrap").hide();if(e.success){console.log(e.data.available_balance);if(e.data.available_balance!=="undefined"){t(".withdraw-balance-col .available_balance").html(e.data.available_balance)}tutor_toast(__("Request Successful","tutor"),__("Your request has been submitted. Please wait for the administrator's response.","tutor"),"success");setTimeout(function(){location.reload()},500)}else{tutor_toast(__("Error","tutor"),e.data.msg,"error");r='<div class="tutor-error-msg inline-image-text is-inline-block"> <img src="'+window._tutorobject.tutor_url+'assets/images/icon-cross.svg"/> <div> <b>Error</b><br/> <span>'+e.data.msg+"</span> </div> </div>";setTimeout(function(){a.html("")},5e3);return false}},complete:function t(){o.removeAttr("disabled").removeClass("is-loading")}})});/**
439 * Delete Course
440 */t(document).on("click",".tutor-dashboard-element-delete-btn",function(e){e.preventDefault();var r=t(this).attr("data-id");t("#tutor-dashboard-delete-element-id").val(r)});t(document).on("submit","#tutor-dashboard-delete-element-form",function(e){e.preventDefault();var r=t("#tutor-dashboard-delete-element-id").val();var o=t(".tutor-modal-element-delete-btn");var a=t(this).serializeObject();t.ajax({url:_tutorobject.ajaxurl,type:"POST",data:a,beforeSend:function t(){o.addClass("is-loading")},success:function e(e){if(e.success){t("#tutor-dashboard-"+e.data.element+"-"+r).remove()}},complete:function t(){o.removeClass("is-loading")}})});/**
441 * Assignment
442 *
443 * @since v.1.3.3
444 */t(document).on("submit","#tutor_assignment_start_form",function(e){e.preventDefault();var r=t(this);var o=r.serializeObject();o.action="tutor_start_assignment";t.ajax({url:_tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function e(){t("#tutor_assignment_start_btn").addClass("is-loading")},success:function t(t){if(t.success){/**
445 * The `true` value will force reload current page
446 * from server instead of browser cache.
447 */location.reload(true)}},error:function t(t,e,r){console.log("assignment start error: "+r)},complete:function e(){t("#tutor_assignment_start_btn").removeClass("is-loading")}})});/**
448 * Assignment answer validation
449 */t(document).on("submit","#tutor_assignment_submit_form",function(t){var e=tinymce.activeEditor.getContent();if(e.trim().length<1){t.preventDefault();tutor_toast(__("Warning","tutor"),__("Assignment answer is required.","tutor"),"error");setTimeout(()=>{jQuery("button#tutor_assignment_submit_btn").removeClass("is-loading").removeAttr("disabled")},500)}});/**
450 * Single Assignment Upload Button
451 * @since v.1.3.4
452 */t("form").on("change",".tutor-assignment-file-upload",function(){t(this).siblings("label").find("span").html(t(this).val().replace(/.*(\/|\\)/,""))});/**
453 * Open the first lesson if all the lessons are closed
454 */if(t(".tutor-accordion-item-header.is-active").length===0){t(".tutor-accordion-item-header").first().trigger("click")}/**
455 *
456 * @type {jQuery}
457 *
458 * Course builder section toggle
459 *
460 * @since v.1.3.5
461 */t(".tutor-course-builder-section-title").on("click",function(){if(t(this).find("i").hasClass("tutor-icon-angle-up")){t(this).find("i").removeClass("tutor-icon-angle-up").addClass("tutor-icon-angle-down")}else{t(this).find("i").removeClass("tutor-icon-angle-down").addClass("tutor-icon-angle-up")}t(this).next("div").slideToggle()});/**
462 * Profile photo upload
463 * @since v.1.4.5
464 */t(document).on("click","#tutor_profile_photo_button",function(e){e.preventDefault();t("#tutor_profile_photo_file").trigger("click")});t(document).on("change","#tutor_profile_photo_file",function(e){e.preventDefault();var r=this;if(r.files&&r.files[0]){var o=new FileReader;o.onload=function(e){t(".tutor-profile-photo-upload-wrap").find("img").attr("src",e.target.result)};o.readAsDataURL(r.files[0])}});/**
465 * Addon, Tutor BuddyPress
466 * Retrieve MetaInformation on BuddyPress message system
467 * @for TutorLMS Pro
468 * @since v.1.4.8
469 */t(document).on("click",".thread-content .subject",function(e){var r=t(this);var o=parseInt(r.closest(".thread-content").attr("data-thread-id"));var a=_tutorobject.nonce_key;var n={thread_id:o,action:"tutor_bp_retrieve_user_records_for_thread"};n[a]=_tutorobject[a];t.ajax({type:"POST",url:window._tutorobject.ajaxurl,data:n,beforeSend:function e(){t("#tutor-bp-thread-wrap").html("")},success:function e(e){if(e.success){t("#tutor-bp-thread-wrap").html(e.data.thread_head_html);c()}}})});function c(){t("ul.tutor-bp-enrolled-course-list").each(function(){var e=t(this);var r=e.find(" > li");var o=3;if(r.length>o){var a=r.length-o;r.each(function(e,r){var a=t(this);if(e>=o){a.hide()}});var n='<a href="javascript:;" class="tutor_bp_plus_courses"><strong>+'+a+" More </strong></a> Courses";e.closest(".tutor-bp-enrolled-courses-wrap").find(".thread-participant-enrolled-info").html(n)}e.show()})}c();t(document).on("click","a.tutor_bp_plus_courses",function(e){e.preventDefault();var r=t(this);r.closest(".tutor-bp-enrolled-courses-wrap").find(".tutor-bp-enrolled-course-list li").show();r.closest(".thread-participant-enrolled-info").html("")});/**
470 * Addon, Tutor Certificate
471 * Certificate dropdown content and copy link
472 * @for TutorLMS Pro
473 * @since v.1.5.1
474 *///$(document).on('click', '.tutor-dropbtn', function (e) {
475 t(".tutor-dropbtn").click(function(){var e=t(this).parent().find(".tutor-dropdown-content");e.slideToggle(100)});t(document).on("click",function(e){var r=t(".tutor-dropdown");var o=r.find(".tutor-dropdown-content");// if the target of the click isn't the container nor a descendant of the container
476 if(!r.is(e.target)&&r.has(e.target).length===0){o.slideUp(100)}});/**
477 * Show hide is course public checkbox (frontend dashboard editor)
478 *
479 * @since v.1.7.2
480 */var l=t('.tutor-frontend-builder-course-price [name="tutor_course_price_type"]');if(l.length==0){t("#_tutor_is_course_public_meta_checkbox").show()}else{l.change(function(){if(t(this).prop("checked")){var e=t(this).val()=="paid"?"hide":"show";t("#_tutor_is_course_public_meta_checkbox")[e]()}}).trigger("change")}/**
481 * Withdrawal page tooltip
482 *
483 * @since v.1.7.4
484 */// Fully accessible tooltip jQuery plugin with delegation.
485 // Ideal for view containers that may re-render content.
486 (function(t){t.fn.tutor_tooltip=function(){this// Delegate to tooltip, Hide if tooltip receives mouse or is clicked (tooltip may stick if parent has focus)
487 .on("mouseenter click",".tooltip",function(e){e.stopPropagation();t(this).removeClass("isVisible")})// Delegate to parent of tooltip, Show tooltip if parent receives mouse or focus
488 .on("mouseenter focus",":has(>.tooltip)",function(e){if(!t(this).prop("disabled")){// IE 8 fix to prevent tooltip on `disabled` elements
489 t(this).find(".tooltip").addClass("isVisible")}})// Delegate to parent of tooltip, Hide tooltip if parent loses mouse or focus
490 .on("mouseleave blur keydown",":has(>.tooltip)",function(e){if(e.type==="keydown"){if(e.which===27){t(this).find(".tooltip").removeClass("isVisible")}}else{t(this).find(".tooltip").removeClass("isVisible")}});return this}})(jQuery);// Bind event listener to container element
491 jQuery(".tutor-tooltip-inside").tutor_tooltip();jQuery(".tutor-static-loader").click(function(){setTimeout(()=>{jQuery(this).addClass("is-loading").attr("disabled","disabled")},100)});// Show the snackbar
492 var d=document.getElementById("tutor-reuseable-snackbar");if(d){// Apply the animation class after a short delay
493 setTimeout(function(){d.classList.add("tutor-snackbar-show")},1e3);// Adjust the delay (in milliseconds) as needed
494 }jQuery('#tutor-registration-form [name="password_confirmation"]').on("input",function(){var t=jQuery('[name="password"]');var e=(t.val()||"").trim();var r=e&&jQuery(this).val()===e;jQuery(this).parent().find(".tutor-validation-icon")[r?"show":"hide"]()})})})()})();