Current File : /home/pacjaorg/www/cop/media/plg_system_nrframework/js/conditionbuilder.js |
var TF_Condition_Builder=function(){function e(e){this.app_ajax_url="?option=com_ajax&format=raw&plugin=nrframework&task=ConditionBuilder",this.wrapper=e,this.isJ4=Joomla.Modal,this.root_url=this.wrapper.dataset.root,this.token=this.wrapper.dataset.token,this.init()}var t=e.prototype;return t.init=function(){this.initEvents(),this.initLoadConditions()},t.initEvents=function(){this.prepare(),document.addEventListener("click",function(e){this.addConditionEvent(e),this.deleteConditionEvent(e),this.deleteGroupConditionEvent(e)}.bind(this)),document.addEventListener("change",function(e){this.handleConditionSelector(e)}.bind(this)),jQuery(document).on("change",".condition_selector",function(e){this.handleConditionSelector(e)}.bind(this)),document.addEventListener("afterConditionSettings",function(e){this.loadConditionAssets(e.detail.condition_name,e.detail.element)}.bind(this))},t.prepare=function(){NRHelper.loadStyleSheet("/media/plg_system_nrframework/css/toggle.css")},t.initLoadConditions=function(){var e=this.wrapper.previousElementSibling.value;if(e){var t={data:e,name:this.wrapper.previousElementSibling.getAttribute("name"),include_rules:this.wrapper.dataset.includeRules,exclude_rules:this.wrapper.dataset.excludeRules},o=this;this.call("init_load",t,function(e){o.wrapper.querySelector(".cb-groups").innerHTML=e,o.getValidRules().forEach(function(e){o.loadConditionAssets(e.value,e.closest(".cb-item"))})})}else this.wrapper.querySelector(".tf-cb-add-new-group").click()},t.loadConditionAssets=function(e,t){var o=this.root_url.replace("/administrator","");switch(e){case"Joomla\\UserGroup":case"Joomla\\Menu":case"Component\\ContentCategory":case"Component\\K2Category":NRHelper.loadStyleSheet(o+"media/plg_system_nrframework/css/treeselect.css"),NRHelper.loadScript(o+"media/plg_system_nrframework/js/treeselect.js",function(){NRTreeselect.init(t)},!0);break;case"Date\\Date":NRHelper.loadStyleSheet(o+"media/system/css/fields/calendar.css"),NRHelper.loadScript(o+"media/system/js/fields/calendar-locales/en.js"),NRHelper.loadScript(o+"media/system/js/fields/calendar-locales/date/gregorian/date-helper.min.js"),NRHelper.loadScript(o+"media/system/js/fields/calendar.min.js",function(){t.querySelectorAll(".field-calendar").forEach(function(e){JoomlaCalendar.init(e)})},!0);break;case"Date\\Time":NRHelper.loadStyleSheet(o+"media/plg_system_nrframework/css/vendor/jquery-clockpicker.min.css"),NRHelper.loadScript(o+"media/plg_system_nrframework/js/vendor/jquery-clockpicker.min.js",function(){t.querySelectorAll(".clockpicker").forEach(function(e){jQuery(e).clockpicker()})},!0);break;case"URL":case"Joomla\\UserID":case"Geo\\City":case"Geo\\Region":case"Referrer":case"IP":this.isJ4?NRHelper.loadScript("/media/system/js/fields/joomla-field-subform.js"):NRHelper.loadScript("/media/jui/js/jquery.ui.core.min.js",function(){NRHelper.loadScript("/media/jui/js/jquery.ui.sortable.min.js",function(){NRHelper.loadScript("/media/system/js/subform-repeatable.js")})}),NRHelper.loadStyleSheet(o+"media/plg_system_nrframework/css/tfinputrepeater.css"),NRHelper.loadScript(o+"media/plg_system_nrframework/js/tfinputrepeater.js");case"Joomla\\UserID":this.isJ4?NRHelper.loadScript(o+"media/system/js/fields/joomla-field-user.min.js"):NRHelper.loadScript(o+"media/jui/js/fielduser.min.js");break;case"Component\\K2Item":case"Component\\ContentArticle":NRHelper.loadStyleSheet(o+"media/plg_system_nrframework/css/select2.css"),NRHelper.loadScript(o+"media/plg_system_nrframework/js/vendor/select2.min.js",function(){NRHelper.loadScript(o+"media/plg_system_nrframework/js/ajaxify.js",!1,!0)},!0)}NRHelper.loadStyleSheet(o+"media/plg_system_nrframework/css/toggle.css"),"Date"!=e&&jQuery(document).trigger("subform-row-add",[t]),this.isJ4&&this.fixShowOnElements(t)},t.fixShowOnElements=function(t){t.querySelectorAll("[data-showon]").forEach(function(e){e.removeAttribute("data-showon-initialised"),Joomla.Showon.initialise(t)})},t.handleConditionSelector=function(e){var t=e.target.closest(".condition_selector");if(t&&t.value){e.preventDefault();var o=t.closest(".cb-item");o.classList.add("ajax-loading");this.loadConditionSettings(o,t.value,function(){o.classList.remove("ajax-loading"),o.querySelector(".cb-item-content").querySelectorAll("select.hasChosen").forEach(function(e){jQuery(e).chosen("destroy"),jQuery(e).chosen({disable_search_threshold:10,inherit_select_classes:!0})})})}},t.loadConditionSettings=function(o,n,i){var e=parseInt(o.closest(".cb-group").dataset.key),t=parseInt(o.closest(".cb-item").dataset.key),r={conditionItemGroup:this.wrapper.previousElementSibling.getAttribute("name")+"["+e+"][rules]["+t+"]",name:n,request_option:this.wrapper.dataset.option,request_layout:this.wrapper.dataset.layout};this.call("options",r,function(e){e=""!==e?e:'<div class="select-condition-message">'+Joomla.JText._("NR_CB_SELECT_CONDITION_GET_STARTED")+"</div>",o.querySelector(".cb-item-content").innerHTML=e;var t=new CustomEvent("afterConditionSettings",{detail:{element:o,condition_name:n}});document.dispatchEvent(t),i&&i()})},t.deleteGroupConditionEvent=function(e){if(e.target.closest(".removeGroupCondition")){e.preventDefault();var t=e.target.closest(".cb-group");this.getValidRules(t).length&&!confirm(Joomla.JText._("NR_ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_ITEM"))||(1==this.getTotalConditionGroups()?(t.querySelectorAll(".cb-item:not(:first-child)").forEach(function(e){e.remove()}),this.resetCondition(t.querySelector(".cb-item"))):t.remove())}},t.deleteConditionEvent=function(e){if(e.target.closest(".tf-cb-remove-condition")){e.preventDefault();var t=e.target.closest(".cb-item");0!==t.querySelector(".condition_selector").selectedIndex&&!confirm(Joomla.JText._("NR_ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_ITEM"))||(1!=this.getTotalConditionItems()?this.deleteCondition(t):this.resetCondition(t))}},t.deleteCondition=function(e){var t=e.closest(".cb-group");e.remove(),0==t.querySelectorAll(".cb-item").length&&t.remove()},t.resetCondition=function(e){e.querySelector(".condition_selector").selectedIndex=0,jQuery(e.querySelector(".condition_selector")).chosen("destroy"),jQuery(e.querySelector(".condition_selector")).chosen({disable_search_threshold:10,inherit_select_classes:!0}),jQuery(e.querySelector(".condition_selector")).trigger("change")},t.getTotalConditionGroups=function(){return this.wrapper.querySelectorAll(".cb-group").length},t.getValidRules=function(e){void 0===e&&(e=this.wrapper);var t=e.querySelectorAll("select.condition_selector"),o=[];return t.forEach(function(e){0!==e.selectedIndex&&o.push(e)}),o},t.getTotalConditionItems=function(){return this.wrapper.querySelectorAll(".cb-item").length},t.addConditionEvent=function(e){var t=e.target.closest(".tf-cb-add-new-group");if(t){e.preventDefault();var o=t.closest(".cb-item")||t,n=o.closest(".cb-group"),i=groupKey=0;i=this.addingNewGroup(o)?(groupKey=this.findHighestGroupKey()+1,0):(groupKey=parseInt(n.dataset.key),this.findHighestGroupItemKey(n)+1),o.classList.add("ajax-loading");this.addCondition(o,this.wrapper.previousElementSibling.getAttribute("name"),groupKey,i,function(){o.classList.remove("ajax-loading")})}},t.findHighestGroupKey=function(){return Math.max.apply(Math,Array.from(this.wrapper.querySelectorAll(".cb-group[data-key]")).map(function(e){return parseInt(e.dataset.key)}))},t.findHighestGroupItemKey=function(e){return Math.max.apply(Math,Array.from(e.querySelectorAll(".cb-item[data-key]")).map(function(e){return parseInt(e.dataset.key)}))},t.addCondition=function(n,e,t,i,r){var s=this.addingNewGroup(n),a={conditionItemGroup:e,groupKey:t,conditionKey:i,include_rules:this.wrapper.dataset.includeRules,exclude_rules:this.wrapper.dataset.excludeRules,addingNewGroup:s},l=this;this.call("add",a,function(e){if(s){var t=document.createElement("div");t.innerHTML=e,l.wrapper.querySelector(".cb-groups").insertAdjacentHTML("beforeend",t.innerHTML),l.wrapper.setAttribute("data-max-index",a.groupKey)}else{var o=document.createElement("div");o.innerHTML=e,n.closest(".item-group-footer")?n.closest(".cb-group").querySelector(".cb-items").insertAdjacentHTML("beforeend",o.innerHTML):n.insertAdjacentHTML("afterend",o.innerHTML),n.closest(".cb-group").setAttribute("data-max-index",i)}r&&r()})},t.addingNewGroup=function(e){return!!e&&!e.closest(".cb-group")},t.call=function(e,t,o){var n=this,i=this.root_url+this.app_ajax_url+"&subtask="+e+"&"+this.token+"=1",r=Object.keys(t).map(function(e){return encodeURIComponent(e)+"="+encodeURIComponent(t[e])}).join("&");fetch(i+"&"+r).then(function(e){return e.text()}).then(function(e){o(e),n.wrapper.querySelectorAll("select.hasChosen").forEach(function(e){jQuery(e).chosen("destroy"),jQuery(e).chosen({disable_search_threshold:10,inherit_select_classes:!0})}),n.wrapper.querySelectorAll(".hasPopover").forEach(function(e){jQuery(e).popover({html:!0,trigger:"hover focus",container:"body"})})}).catch(function(e){alert(e)})},e}(),TF_Condition_Builder_Loader=function(){function e(){this.init()}return e.prototype.init=function(){!function(){if(window.IntersectionObserver){var t=new IntersectionObserver(function(e,t){e.forEach(function(e){e.isIntersecting&&(new TF_Condition_Builder(e.target),t.unobserve(e.target))})},{rootMargin:"0px 0px 0px 0px"});document.querySelectorAll("div.cb").forEach(function(e){t.observe(e)})}}()},e}();!function(){"use strict";document.addEventListener("DOMContentLoaded",function(){new TF_Condition_Builder_Loader})}(window);