Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/joomla5/media/system/js/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/joomla5/media/system/js/multiselect.min.js

/**
 * @copyright   (C) 2018 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */class
JMultiSelect{constructor(e){this.tableEl=e,this.formEl=e.closest("form"),this.rowSelector='tr[class^="row"]',this.boxSelector='input[type="checkbox"][name="cid[]"]',this.checkallToggle=this.tableEl.querySelector('[name="checkall-toggle"]'),this.prevRow=null,this.tableEl.addEventListener("click",c=>{c.target.closest(this.rowSelector)&&this.onRowClick(c)}),this.checkallToggle&&this.checkallToggle.addEventListener("click",({target:c})=>{const
t=c.checked;this.getRows().forEach(o=>{this.changeBg(o,t)})})}getRows(){return
Array.from(this.tableEl.querySelectorAll(this.rowSelector))}changeBg(e,c){e.classList.toggle("row-selected",c)}onRowClick({target:e,shiftKey:c}){if(e.tagName&&(e.tagName==="A"||e.tagName==="BUTTON"||e.tagName==="SELECT"||e.tagName==="TEXTAREA"||e.tagName==="INPUT"&&!e.matches(this.boxSelector)))return;const
t=e.closest(this.rowSelector),o=e.matches(this.boxSelector)?e:t.querySelector(this.boxSelector);if(!o)return;const
s=o!==e?!o.checked:o.checked;if(s!==o.checked&&(o.checked=s,Joomla.isChecked(s,this.formEl)),this.changeBg(t,s),c&&this.prevRow){document.getSelection().removeAllRanges();const
r=this.getRows(),l=r.indexOf(this.prevRow),i=r.indexOf(t);l>=0&&i>=0&&Math.abs(l-i)>1&&(l<i?r.slice(l,i+1):r.slice(i,l+1)).forEach(n=>{if(n===t)return;const
a=n.querySelector(this.boxSelector);a&&a.checked!==s&&(a.checked=s,this.changeBg(n,s),Joomla.isChecked(s,this.formEl))})}this.prevRow=t}}const
onBoot=h=>{let e="#adminForm";const
c=window.Joomla?Joomla.getOptions("js-multiselect",{}).formName:"";if(c){const
t=c[0];e=t!=="."&&t!=="#"?`#${c}`:c}h.querySelectorAll(e).forEach(t=>{t&&!("multiselect"in
t.dataset)&&(t.dataset.multiselect="",new
JMultiSelect(t))})};onBoot(document),document.addEventListener("joomla:updated",({target:h})=>onBoot(h));