images
10 months ago
lazy-chunks
5 months ago
tutor-addon-list.js
7 months ago
tutor-admin.js
8 months ago
tutor-coupon.js
5 months ago
tutor-course-builder.js
5 months ago
tutor-front.js
5 months ago
tutor-gutenberg.js
10 months ago
tutor-import-export.js
7 months ago
tutor-order-details.js
6 months ago
tutor-payment-settings.js
7 months ago
tutor-setup.js
8 months ago
tutor-tax-settings.js
7 months ago
tutor-template-import-script.js
7 months ago
tutor.js
5 months ago
tutor-front.js
498 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;// Currently only these types of question supports answer reveal mode. |
| 52 | var e=["true_false","single_choice","multiple_choice"];var r=_tutorobject.quiz_options;var o=new Map;t(".tutor-sortable-list").on("sortchange",a);function a(e,r){var a=parseInt(t(this).closest(".quiz-attempt-single-question").attr("id").match(/\d+/)[0],10);if(!o.get(a)){o.set(a,true)}}function n(){return Number(_tutorobject.quiz_answer_display_time)||2e3}function i(){return"reveal"===r.feedback_mode}function s(){return _tutorobject.quiz_options.question_layout_view}function u(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 c(e){var r=false;// Prepare answer array |
| 53 | var o=JSON.parse(window.tutor_quiz_context.split("").reverse().join(""));!Array.isArray(o)?o=[]:0;if(s()!=="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 n=e.find("input");var c=e.find('input[type="radio"]:checked, input[type="checkbox"]:checked');if(i()){// Loop through every single checked radio/checkbox input field |
| 54 | c.each(function(){var e=t(this);var r=o.indexOf(e.val())>-1;// $input.attr('data-is-correct') == '1'; |
| 55 | // And check if the answer is correct |
| 56 | if(!r){a=false}});// Loop through all the inputs regardless of correct/incorrect |
| 57 | n.each(function(){var n=t(this);var i=n.attr("type");// Reveal mode feature is currently available for only radio and checkbox type answers |
| 58 | if(i==="radio"||i==="checkbox"){var s=o.indexOf(n.val())>-1;// $input.attr('data-is-correct') == '1'; |
| 59 | var c=n.is(":checked");if(s){n.closest(".tutor-quiz-answer-single").addClass("tutor-quiz-answer-single-correct").append(u(__("Correct Answer","tutor"))).find(".tutor-quiz-answer-single-info:eq(1)").remove()}else{if(n.prop("checked")){n.closest(".tutor-quiz-answer-single").addClass("tutor-quiz-answer-single-incorrect")}}if(s&&!c){n.attr("disabled","disabled");a=false;r=true}// Display answer explanation if available |
| 60 | e.find(".tutor-quiz-explanation-wrapper").removeClass("tutor-d-none")}})}if(a){r=true}return r}/** |
| 61 | * |
| 62 | * Validate whether draggable required question has all answers |
| 63 | * |
| 64 | * @since 2.7.2 |
| 65 | * @param {Object} required_answer_wrap |
| 66 | * @returns {boolean} |
| 67 | */function l(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}/** |
| 68 | * Quiz Validation Helper |
| 69 | * |
| 70 | * @since v.1.6.1 |
| 71 | */function d(e,r){var a=e.find(".quiz-answer-required");if(a.length){var n=parseInt(e.attr("id").match(/\d+/)[0],10);var i=o.get(n);var s=e.find(".tutor-draggable");var u=e.find(".ui-sortable");/** |
| 72 | * Radio field validation |
| 73 | * |
| 74 | * @type {jQuery} |
| 75 | * |
| 76 | * @since v.1.6.1 |
| 77 | */var c=a.find("input");if(c.length){var d=c.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>"));r=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>"));r=false}}else if(d==="text"){//Fill in the gaps if many, validation all |
| 78 | c.each(function(o,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>"));r=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>"));r=false}}//Validate draggable quiz questions |
| 79 | if(s.length){var v=l(a);if(!v){e.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(__("The answer for this question is required","tutor"),"</p>"));r=false}}//Validate sortable quiz questions |
| 80 | 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>"));r=false}}return r}/** |
| 81 | * Quiz view |
| 82 | * @date 22 Feb, 2019 |
| 83 | * @since v.1.0.0 |
| 84 | */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(r){r.preventDefault();var o=t(".tutor-quiz-question-counter>span:first-child");var a=parseInt(t(this).closest("[data-question_index]").data("question_index"));// Show previous quiz if press previous button |
| 85 | if(t(this).hasClass("tutor-quiz-answer-previous-btn")){t(this).closest(".quiz-attempt-single-question").hide().prev().show();o.text(a-1);return}var s=t(this);var u=s.closest(".quiz-attempt-single-question");var l=parseInt(s.closest(".quiz-attempt-single-question").attr("id").match(/\d+/)[0],10);var v=s.closest(".quiz-attempt-single-question").attr("data-next-question-id");/** |
| 86 | * Validating required answer |
| 87 | * @type {jQuery} |
| 88 | * |
| 89 | * @since v.1.6.1 |
| 90 | */var f=true;f=d(u,f);if(!f){return}var m=c(u);/** |
| 91 | * If not reveal mode then check feedback response |
| 92 | * |
| 93 | * Since validation already checked above, now user's ans is correct |
| 94 | * or not they should move forward. In reveal mode if feedback response is false |
| 95 | * then it was freezing the process. |
| 96 | * |
| 97 | * @since v2.0.9 |
| 98 | */if(!i()){if(!m){return}}if(v){var p=t(v);if(p&&p.length){/** |
| 99 | * check if reveal mode wait for 500ms then |
| 100 | * hide question so that correct answer reveal |
| 101 | * @since 1.8.10 |
| 102 | */if(i()&&e.includes(u.data("question-type"))){setTimeout(()=>{t(".quiz-attempt-single-question").hide();p.show()},n())}else{t(".quiz-attempt-single-question").hide();p.show()}/** |
| 103 | * If pagination exists, set active class |
| 104 | */if(t(".tutor-quiz-questions-pagination").length){t(".tutor-quiz-question-paginate-item").removeClass("active");t('.tutor-quiz-questions-pagination a[href="'+v+'"]').addClass("active")}// Increase counter |
| 105 | o.text(a+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 |
| 106 | t(".tutor-quiz-question-paginate-item").removeClass("active");r.addClass("active")});/** |
| 107 | * Limit Short Answer Question Type |
| 108 | */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(r){r.preventDefault();var o=t(".quiz-attempt-single-question");var a=document.querySelector(".tutor-quiz-submit-btn");var u=t(r.target);var l=true;var v=true;var f=false;if(o.length){o.each(function(r,o){l=d(t(o),l);v=c(t(o));if(e.includes(t(o).data("question-type"))){f=true}})}//If auto submit option is enabled after time expire submit current progress |
| 109 | if(_tutorobject.quiz_options.quiz_when_time_expires==="auto_submit"&&t("#tutor-quiz-time-update").hasClass("tutor-quiz-time-expired")){l=true;v=true}if(l&&v){var m=500;if(i()&&s()==="question_below_each_other"&&f){m=n();u.find(":submit").addClass("is-loading").attr("disabled","disabled")}setTimeout(()=>{r.target.submit()},m)}else{if(a){a.classList.remove("is-loading");a.disabled=false}}});t(".tutor-quiz-submit-btn").click(function(r){r.preventDefault();var o=t(".quiz-attempt-single-question");var a=o[o.length-1];var s=t(a).data("question-type");if(i()&&e.includes(s)){var u=true;if(o.length){o.each(function(e,r){u=d(t(r));u=c(t(r))})}t(this).attr("disabled","disabled");setTimeout(()=>{t(this).addClass("is-loading");t("#tutor-answering-quiz").submit()},n())}else{t(this).attr("disabled","disabled").addClass("is-loading");t("#tutor-answering-quiz").submit()}});//warn user before leave page if quiz is running |
| 110 | var v=t("#tutor-quiz-time-update");// @todo: check the button class functionality |
| 111 | t(document).on("click","a",function(e){// if user click on ask question then return, no warning. |
| 112 | if(e.target.classList.contains("sidebar-ask-new-qna-btn")||e.target.classList.contains("tutor-quiz-question-paginate-item")){return}if(v.length>0&&v.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{__}=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");r.blur()}}else{var o;var a;tutor_toast(__("Error","tutor-pro"),(a=e===null||e===void 0?void 0:(o=e.data)===null||o===void 0?void 0:o.message)!==null&&a!==void 0?a:"Something went wrong!!","error");t(".tutor-login-modal").addClass("tutor-is-active");r.blur()}},error:function t(t,e,o){tutor_toast(__("Error","tutor-pro"),"Something went wrong!!","error");r.blur()},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 |
| 113 | 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;/** |
| 114 | * Export purchase history |
| 115 | * |
| 116 | * @since v2.0.0 |
| 117 | */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)}}}/** |
| 118 | * Export CSV file |
| 119 | * |
| 120 | * @param {*} data | data that will be used for generating CSV file |
| 121 | * @param {*} filename | filename of CSV file |
| 122 | * @since v2.0.0 |
| 123 | */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 |
| 124 | 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(){/** |
| 125 | * Create new draft course |
| 126 | * |
| 127 | * @since v2.0.3 |
| 128 | */document.addEventListener("DOMContentLoaded",function(){// Course save draft |
| 129 | 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()}}/** |
| 130 | * Fix - Table last row context menu hidden for frontend dashboard. |
| 131 | * |
| 132 | * @since 2.2.4 |
| 133 | */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 |
| 134 | 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 |
| 135 | "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|"+// domain name |
| 136 | "((\\d{1,3}\\.){3}\\d{1,3}))"+// OR ip (v4) address |
| 137 | "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*"+// port and path |
| 138 | "(\\?[;&a-z\\d%_.~+=-]*)?"+// query string |
| 139 | "(\\#[-a-z\\d_]*)?$","i");// fragment locator |
| 140 | return!!e.test(t)};var n=(t,e,r)=>{// Read image as data url |
| 141 | var o=new FileReader;o.addEventListener("load",()=>{// Read as image to retrieve dimension |
| 142 | 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 |
| 143 | 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;/** |
| 144 | * Profile Photo and Cover Photo editor |
| 145 | * |
| 146 | * @since v.1.7.5 |
| 147 | */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 |
| 148 | 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 |
| 149 | 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 |
| 150 | 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.'); |
| 151 | };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 |
| 152 | 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 |
| 153 | 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 |
| 154 | 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]");/** |
| 155 | * Basic markup for profile bio |
| 156 | * @since 2.2.4 |
| 157 | */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;/** |
| 158 | * Withdraw Form Tab/Toggle |
| 159 | * |
| 160 | * @since v.1.1.2 |
| 161 | */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;/** |
| 162 | * Retake course |
| 163 | * |
| 164 | * @since v1.9.5 |
| 165 | */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;/** |
| 166 | * |
| 167 | * Instructor list filter |
| 168 | * |
| 169 | * @since v.1.8.4 |
| 170 | */// Get values on course category selection |
| 171 | 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 |
| 172 | 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 |
| 173 | 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 |
| 174 | .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 |
| 175 | e.preventDefault();s(null,null,t(this).data("page_number"))})// Clear filter |
| 176 | .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 |
| 177 | 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()})});/** |
| 178 | * Show start active as per click |
| 179 | * |
| 180 | * @since v2.0.0 |
| 181 | */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 |
| 182 | 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 |
| 183 | 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 |
| 184 | var e={};// The require function |
| 185 | function r(o){// Check if module is in cache |
| 186 | var a=e[o];if(a!==undefined){return a.exports}// Create a new module (and put it into the cache) |
| 187 | var n=e[o]={exports:{}};// Execute the module function |
| 188 | t[o](n,n.exports,r);// Return the exports of the module |
| 189 | return n.exports}/************************************************************************/// webpack/runtime/define_property_getters |
| 190 | (()=>{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 |
| 191 | (()=>{r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)})();// webpack/runtime/make_namespace_object |
| 192 | (()=>{// define __esModule on exports |
| 193 | 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 |
| 194 | (()=>{r.rv=()=>"1.4.11"})();// webpack/runtime/rspack_unique_id |
| 195 | (()=>{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. |
| 196 | (()=>{"use strict";// CONCATENATED MODULE: ./node_modules/@swc/helpers/esm/_define_property.js |
| 197 | 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 |
| 198 | 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 |
| 199 | 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 |
| 200 | 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 |
| 201 | /** |
| 202 | * On click add filter value on the url |
| 203 | * and refresh page |
| 204 | * |
| 205 | * Handle bulk action |
| 206 | * |
| 207 | * @package Filter / sorting |
| 208 | * @since v2.0.0 |
| 209 | */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 |
| 210 | // So we can avoid wrong tab link retaining search value |
| 211 | 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 |
| 212 | f.onsubmit=t=>{t.preventDefault();var e=m.value;window.location=b("search",e)}}/** |
| 213 | * onclick apply button show checkbox select message |
| 214 | * if not selected |
| 215 | */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")}}}}/** |
| 216 | * Onsubmit bulk form handle ajax request then reload page |
| 217 | */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)}})()}/** |
| 218 | * onclick bulk action button show confirm popup |
| 219 | * on click confirm button submit bulk form |
| 220 | */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}/** |
| 221 | * Select all bulk checkboxes |
| 222 | * |
| 223 | * @since v2.0.0 |
| 224 | */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}})})}/** |
| 225 | * Delete course delete |
| 226 | */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}}}/** |
| 227 | * Handle permanent delete action |
| 228 | * |
| 229 | * @since 3.0.0 |
| 230 | */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}}}/** |
| 231 | * Handle common confirmation form |
| 232 | * |
| 233 | * @since v.2.0.0 |
| 234 | */if(i){i.onsubmit=t=>a(function*(){t.preventDefault();var e=new FormData(i);//show loading |
| 235 | var r=i.querySelector("[data-tutor-modal-submit]");r.classList.add("is-loading");var a=yield n(e);//hide modal |
| 236 | 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 |
| 237 | var i=r(83650);// CONCATENATED MODULE: ./assets/react/helper/utils.js |
| 238 | function s(){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[]}})()}function u(){return/Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent)}// EXTERNAL MODULE: ./assets/react/front/_select_dd_search.js |
| 239 | var c=r(4545);// CONCATENATED MODULE: ./assets/react/helper/tutor-formdata.js |
| 240 | /** |
| 241 | * Prepare custom form data, while setting form data |
| 242 | * it will also set tutor nonce field. |
| 243 | * |
| 244 | * @since v2.1.0 |
| 245 | * |
| 246 | * @param formId form id attribute |
| 247 | * @param data array of objects of form elements. Key value par |
| 248 | * like: [{name: 'john doe'}, {age: 100}] |
| 249 | * |
| 250 | * @return mixed formData on success, false on any error |
| 251 | */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 |
| 252 | 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 |
| 253 | for(var a in o){if(v.indexOf(a)==-1){r.searchParams.append(a,o[a])}}// Add currently used tutor params to the state |
| 254 | 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 |
| 255 | for(var o in r)e(o)};window.jQuery(document).ready(t=>{var{__}=window.wp.i18n;/** |
| 256 | * Manage course filter |
| 257 | * |
| 258 | * @since v.1.7.2 |
| 259 | */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 |
| 260 | 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)]}}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 |
| 261 | 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")});/** |
| 262 | * Enroll student if user click on enroll course button |
| 263 | * |
| 264 | * @since v2.1.0 |
| 265 | */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 |
| 266 | // EXTERNAL MODULE: ./assets/react/front/course/_lesson.js |
| 267 | var _=r(80922);// EXTERNAL MODULE: ./assets/react/front/course/_social-share.js |
| 268 | var h=r(23825);// CONCATENATED MODULE: ./assets/react/front/course/_spotlight.js |
| 269 | 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"}})}/** |
| 270 | * dynamically calcutate sidebarContent height from top |
| 271 | * and decrease sidebar height |
| 272 | */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");/** |
| 273 | * dynamically calcutate qnatabcontentrarea height from top |
| 274 | * and decrease it's height from 100vh |
| 275 | */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 |
| 276 | 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);/** |
| 277 | * Selecting a correct option after an incorrect fails in mobile issue fixed. |
| 278 | * |
| 279 | * @since 3.2.0 |
| 280 | */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 |
| 281 | 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 |
| 282 | 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 |
| 283 | 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 |
| 284 | var g=r(90521);// EXTERNAL MODULE: ./assets/react/front/course/_spotlight-quiz-timing.js |
| 285 | var b=r(63023);// EXTERNAL MODULE: ./assets/react/front/course/_wishlist.js |
| 286 | var y=r(12155);// EXTERNAL MODULE: ./assets/react/front/course/_woocommerce.js |
| 287 | var w=r(53579);// CONCATENATED MODULE: ./assets/react/front/course/index.js |
| 288 | window.jQuery(document).ready(t=>{// Login require on enrol purchase click |
| 289 | 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")}});/** |
| 290 | * Tutor password protected course. |
| 291 | * |
| 292 | * @since v.3.0.0 |
| 293 | */var e=document.querySelector(".tutor-password-protected-course");if(e){// Disable page scrolling when password protected course modal is active. |
| 294 | var r=document.querySelector("body");r.style.overflow="hidden";// Hide and show password on checkbox click. |
| 295 | 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"}})}/** |
| 296 | * Replace UTC date time to local date time |
| 297 | * |
| 298 | * @since v.3.3.0 |
| 299 | */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 |
| 300 | var q=r(20193);// EXTERNAL MODULE: ./assets/react/front/dashboard/withdrawal.js |
| 301 | var k=r(44789);// EXTERNAL MODULE: ./assets/react/front/dashboard/settings/profile.js |
| 302 | var S=r(48621);// EXTERNAL MODULE: ./assets/react/front/dashboard/settings/passowrd-reset.js |
| 303 | var x=r(35852);// CONCATENATED MODULE: ./assets/react/front/dashboard/settings/billing.js |
| 304 | 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 |
| 305 | var L=r(11602);// CONCATENATED MODULE: ./assets/react/front/dashboard.js |
| 306 | // EXTERNAL MODULE: ./assets/react/front/dashboard/export-csv.js |
| 307 | var j=r(6402);// CONCATENATED MODULE: ./assets/react/front/pages/billing.js |
| 308 | document.addEventListener("DOMContentLoaded",()=>a(function*(){var{__}=wp.i18n;var t=document.querySelector("[name=billing_country]");if(t){var e=yield s();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 |
| 309 | if(a&&a.length>0){n.innerHTML="";// Populate state dropdown with new states |
| 310 | 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 |
| 311 | document.addEventListener("DOMContentLoaded",function(){var{__}=wp.i18n;var t=__("Something went wrong, please try again","tutor");// Add to cart functionalities |
| 312 | 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 |
| 313 | var f=new CustomEvent("tutorAddToCartEvent",{detail:{cart_count:u===null||u===void 0?void 0:u.cart_count}});// Dispatch the custom cart event |
| 314 | 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 |
| 315 | 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 |
| 316 | var c=new CustomEvent("tutorRemoveCartEvent",{detail:{cart_count:s===null||s===void 0?void 0:s.cart_count}});// Dispatch the custom cart event |
| 317 | 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. |
| 318 | 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. |
| 319 | 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 |
| 320 | 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]");/** |
| 321 | * Get checkout JSON object. |
| 322 | * |
| 323 | * @since 3.6.0 |
| 324 | * |
| 325 | * @returns {object} JSON object. |
| 326 | */function u(){var t;var e=(t=document.querySelector("#checkout_data"))===null||t===void 0?void 0:t.value;return JSON.parse(e)}/** |
| 327 | * Determines if tax is managed by Tutor (not the payment gateway) |
| 328 | * |
| 329 | * @since 3.6.0 |
| 330 | * |
| 331 | * @param {string} paymentMethodName - The name of the payment method (paypal, stripe, paddle, etc). |
| 332 | * |
| 333 | * @returns {boolean} |
| 334 | */function c(t){var e=["paddle"];return!e.includes(t.toLowerCase())}/** |
| 335 | * Determine tax info will be shown or hide. |
| 336 | * |
| 337 | * @since 3.6.0 |
| 338 | * |
| 339 | * @param {string} paymentMethodName payment method name. |
| 340 | * |
| 341 | * @returns {void} |
| 342 | */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. |
| 343 | 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. |
| 344 | i.forEach(t=>t.classList.remove("active"));// Add active class to the selected option. |
| 345 | 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. |
| 346 | 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. |
| 347 | 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. |
| 348 | 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. |
| 349 | g();// Apply coupon on enter coupon field. |
| 350 | 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. |
| 351 | 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()});/** |
| 352 | * Update checkout data. |
| 353 | * |
| 354 | * @since 3.3.0 |
| 355 | * |
| 356 | * @param {string} couponCode coupon code. |
| 357 | * @param {string} billingCountry Billing country. |
| 358 | * @param {string} billingState Billing state. |
| 359 | */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=o.searchParams.get("order_id");var u=new FormData;u.set(window.tutor_get_nonce_data(true).key,window.tutor_get_nonce_data(true).value);u.set("action","tutor_get_checkout_html");u.set("coupon_code",t);if(e){u.set("billing_country",e)}if(r){u.set("billing_state",r)}if(a){u.set("plan",a)}if(i){u.set("course_id",i)}if(s){u.set("order_id",s)}var c=yield n(u);var l=yield c.json();var d=document.querySelector("[tutor-checkout-details]");if(d){d.innerHTML=l.data}})()}/** |
| 360 | * Handle tax calculation on country and state change. |
| 361 | * |
| 362 | * @since 3.0.0 |
| 363 | */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")}})());/** |
| 364 | * Handles the selection of a single payment option. |
| 365 | * |
| 366 | * @returns {void} |
| 367 | * @since 3.5.0 |
| 368 | */function g(){var t=u();if(!t.payment_method_required){return}// If only one payment available, keep selected. |
| 369 | 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 |
| 370 | var E=r(1838);// EXTERNAL MODULE: ./assets/react/front/pages/instructor-list-filter.js |
| 371 | var C=r(39356);// CONCATENATED MODULE: ./assets/react/front/tutor-front.js |
| 372 | /** |
| 373 | * Codes from this file should be decentralized according to relavent file/folder structure. |
| 374 | * It's a legacy file. |
| 375 | */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";/** |
| 376 | * wp.i18n translatable functions |
| 377 | * @since 1.9.0 |
| 378 | */var{__,_x:r,_n:o,_nx:a,sprintf:n}=wp.i18n;/** |
| 379 | * Initiate Select2 |
| 380 | * @since v.1.3.4 |
| 381 | */if(jQuery().select2){t(".tutor_select2").select2({escapeMarkup:function t(t){return t}})}//END: select2 |
| 382 | /*! |
| 383 | * jQuery UI Touch Punch 0.2.3 |
| 384 | * |
| 385 | * Copyright 2011–2014, Dave Furfero |
| 386 | * Dual licensed under the MIT or GPL Version 2 licenses. |
| 387 | * |
| 388 | * Depends: |
| 389 | * jquery.ui.widget.js |
| 390 | * jquery.ui.mouse.js |
| 391 | */!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);/** |
| 392 | * END jQuery UI Touch Punch |
| 393 | */var i={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 |
| 394 | if(e>a){t.preventDefault();tutor_toast(__("Warning","tutor"),__("Forward seeking is disabled","tutor"),"error");return false}return true}})});n.on("ready",function(e){var o=e.detail.plyr;var{best_watch_time:i=0}=a||{};/** |
| 395 | * Fix: Mobile Vimeo autoplay sound issue |
| 396 | * Always start muted on mobile to comply with autoplay policy. |
| 397 | * |
| 398 | * @since 3.9.2 |
| 399 | */if(n.provider==="vimeo"&&u()){try{n.muted=true;if(typeof n.mute==="function"){n.mute()}}catch(t){console.warn("Vimeo mute init failed:",t)}}if(_tutorobject.tutor_pro_url&&i>0){var s=Math.floor(i);var c=setTimeout(function(){if(n.playing!==true&&n.currentTime!==s){if(o.provider==="youtube"){o.embed.seekTo(i)}else{o.media.currentTime=s}}else{clearTimeout(c)}})}r.sync_time(o);// Set player to window and dispatch custom event if lesson single page |
| 400 | if(t(r.player_DOM).closest(".tutor-course-topic-single-body .tutor-video-player-wrapper").length){var l=new CustomEvent("tutorLessonPlayerReady",{detail:{player:o}});window.dispatchEvent(l);window.tutorLessonPlayer=n}});n.on("play",e=>{r.played_once=true;/** |
| 401 | * Unmute automatically after first user interaction |
| 402 | * Mobile browsers allow audio only after gesture. |
| 403 | * |
| 404 | * @since 3.9.2 |
| 405 | */if(n.provider==="vimeo"&&u()){try{n.muted=false;if(typeof n.unmute==="function"){n.unmute()}}catch(t){console.warn("Vimeo unmute on play failed:",t)}}// Send to tutor backend about video playing time in this interval |
| 406 | 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. |
| 407 | 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 i=this.getPercentage(Number(r),Number(o));if(i<a){var s=t('button[name="complete_lesson_btn"]');s.attr("disabled",true);s.wrap('<div class="tooltip-wrap"></div>');s.after(/* translators: %s is the required watch percentage (e.g., 80) */'<span class="tooltip-txt tooltip-bottom">'.concat(n(__("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()}}};/** |
| 408 | * Fire TUTOR video |
| 409 | * @since v.1.0.0 |
| 410 | */t(".tutorPlayer").each(function(){i.init(this)});t(document).on("change keyup paste",".tutor_user_name",function(){t(this).val(s(t(this).val()))});function s(t){return t.toString().toLowerCase().replace(/\s+/g,"-")// Replace spaces with - |
| 411 | .replace(/[^\w\-]+/g,"")// Remove all non-word chars |
| 412 | .replace(/\-\-+/g,"-")// Replace multiple - with single - |
| 413 | .replace(/^-+/,"")// Trim - from start of text |
| 414 | .replace(/-+$/,"");// Trim - from end of text |
| 415 | }t(document).on("click",".tutor_question_cancel",function(e){e.preventDefault();t(".tutor-add-question-wrap").toggle()});// Quiz Review : Tooltip |
| 416 | t(".tooltip-btn").on("hover",function(e){t(this).toggleClass("active")});// tutor course content accordion |
| 417 | /** |
| 418 | * Toggle topic summery |
| 419 | * @since v.1.6.9 |
| 420 | */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 |
| 421 | 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 |
| 422 | 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")});/** |
| 423 | * |
| 424 | * @type {jQuery} |
| 425 | * |
| 426 | * Improved Quiz draggable answers drop accessibility |
| 427 | * Answers draggable wrap will be now same height. |
| 428 | * |
| 429 | * @since v.1.4.4 |
| 430 | */var c=t(".quiz-draggable-rand-answers").length;if(c){t(".quiz-draggable-rand-answers").each(function(){var e=t(this);var r=e.height();e.css({height:r})})}/** |
| 431 | * Datepicker initiate |
| 432 | * |
| 433 | * @since v.1.1.2 |
| 434 | */if(jQuery.datepicker){t(".tutor_report_datepicker").datepicker({dateFormat:"yy-mm-dd"})}/** |
| 435 | * Setting account for withdraw earning |
| 436 | * |
| 437 | * @since v.1.2.0 |
| 438 | */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)}})}});/** |
| 439 | * Make Withdraw Form |
| 440 | * |
| 441 | * @since v.1.2.0 |
| 442 | */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")}})});/** |
| 443 | * Delete Course |
| 444 | */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")}})});/** |
| 445 | * Assignment |
| 446 | * |
| 447 | * @since v.1.3.3 |
| 448 | */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){/** |
| 449 | * The `true` value will force reload current page |
| 450 | * from server instead of browser cache. |
| 451 | */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")}})});/** |
| 452 | * Assignment answer validation |
| 453 | */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)}});/** |
| 454 | * Single Assignment Upload Button |
| 455 | * @since v.1.3.4 |
| 456 | */t("form").on("change",".tutor-assignment-file-upload",function(){t(this).siblings("label").find("span").html(t(this).val().replace(/.*(\/|\\)/,""))});/** |
| 457 | * Open the first lesson if all the lessons are closed |
| 458 | */if(t(".tutor-accordion-item-header.is-active").length===0){t(".tutor-accordion-item-header").first().trigger("click")}/** |
| 459 | * |
| 460 | * @type {jQuery} |
| 461 | * |
| 462 | * Course builder section toggle |
| 463 | * |
| 464 | * @since v.1.3.5 |
| 465 | */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()});/** |
| 466 | * Profile photo upload |
| 467 | * @since v.1.4.5 |
| 468 | */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])}});/** |
| 469 | * Addon, Tutor BuddyPress |
| 470 | * Retrieve MetaInformation on BuddyPress message system |
| 471 | * @for TutorLMS Pro |
| 472 | * @since v.1.4.8 |
| 473 | */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);l()}}})});function l(){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()})}l();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("")});/** |
| 474 | * Addon, Tutor Certificate |
| 475 | * Certificate dropdown content and copy link |
| 476 | * @for TutorLMS Pro |
| 477 | * @since v.1.5.1 |
| 478 | *///$(document).on('click', '.tutor-dropbtn', function (e) { |
| 479 | 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 |
| 480 | if(!r.is(e.target)&&r.has(e.target).length===0){o.slideUp(100)}});/** |
| 481 | * Show hide is course public checkbox (frontend dashboard editor) |
| 482 | * |
| 483 | * @since v.1.7.2 |
| 484 | */var d=t('.tutor-frontend-builder-course-price [name="tutor_course_price_type"]');if(d.length==0){t("#_tutor_is_course_public_meta_checkbox").show()}else{d.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")}/** |
| 485 | * Withdrawal page tooltip |
| 486 | * |
| 487 | * @since v.1.7.4 |
| 488 | */// Fully accessible tooltip jQuery plugin with delegation. |
| 489 | // Ideal for view containers that may re-render content. |
| 490 | (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) |
| 491 | .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 |
| 492 | .on("mouseenter focus",":has(>.tooltip)",function(e){if(!t(this).prop("disabled")){// IE 8 fix to prevent tooltip on `disabled` elements |
| 493 | t(this).find(".tooltip").addClass("isVisible")}})// Delegate to parent of tooltip, Hide tooltip if parent loses mouse or focus |
| 494 | .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 |
| 495 | 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 |
| 496 | var v=document.getElementById("tutor-reuseable-snackbar");if(v){// Apply the animation class after a short delay |
| 497 | setTimeout(function(){v.classList.add("tutor-snackbar-show")},1e3);// Adjust the delay (in milliseconds) as needed |
| 498 | }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"]()})})})()})(); |