Your IP : 216.73.217.68


Current Path : /home/w/u/e/wuectly/www/03cbe/
Upload File :
Current File : /home/w/u/e/wuectly/www/03cbe/dropdown.js.tar

home/wuectly/www/media/fef/js/dropdown.js000060400000011114152456321110014433 0ustar00/*
 * Akeeba Frontend Framework (FEF)
 *
 * @package   fef
 * @copyright (c) 2017-2020 Nicholas K. Dionysopoulos / Akeeba Ltd
 * @license   GNU General Public License version 3, or later
 *
 * Created by Crystal Dionysopoulou for Akeeba Ltd, https://www.akeeba.com
 */

if (typeof akeeba === 'undefined')
{
    akeeba = {};
}

if (typeof akeeba.fef === 'undefined')
{
    akeeba.fef = {};
}

if (typeof akeeba.fef.forEach === 'undefined')
{
	akeeba.fef.forEach = function (array, callback, scope) {
		for (var i = 0; i < array.length; i++) {
			callback.call(scope, i, array[i]);
		}
	};
}

if (typeof akeeba.fef.triggerEvent === 'undefined')
{
	akeeba.fef.triggerEvent = function (element, eventName)
	{
		if (typeof element === 'undefined')
		{
			return;
		}

		if (element === null)
		{
			return;
		}

		// Allow the passing of an element ID string instead of the DOM elem
		if (typeof element === "string")
		{
			element = document.getElementById(element);
		}

		if (typeof element !== 'object')
		{
			return;
		}

		if (!(element instanceof Element))
		{
			return;
		}

		// Use jQuery and be done with it!
		if (typeof window.jQuery === 'function')
		{
			window.jQuery(element).trigger(eventName);

			return;
		}

		// Internet Explorer way
		if (document.fireEvent && (typeof window.Event === 'undefined'))
		{
			element.fireEvent('on' + eventName);

			return;
		}

		// This works on Chrome and Edge but not on Firefox. Ugh.
		var event = null;

		event = document.createEvent("Event");
		event.initEvent(eventName, true, true);
		element.dispatchEvent(event);
	};
}

/**
 * Activates the dropdown interface for specific HTML elements
 *
 * @param  {String}  [selector]  CSS selector for the tab-set wrapper(s). Default: 'nav.akeeba-dropdown'
 */
akeeba.fef.dropdown = function(selector)
{
    // Use the default selector, if necessary
    if ((typeof selector === 'undefined') || (selector === ''))
    {
        selector = 'nav.akeeba-dropdown';
    }

    // Get all outer wrappers (NAV elements)
    var navList = document.querySelectorAll(selector);

    if (navList.length === 0)
    {
        return;
    }

    // Loop for the first button inside each wrapper (the NAV)
    akeeba.fef.forEach(navList, function(i, elNav) {
        // Get the first button inside the NAV wrapper. That's our drop-down toggle.
        var buttonList = elNav.querySelectorAll('button');

        if (buttonList.length === 0)
        {
            return;
        }

        var elButton = buttonList[0];

        // Add an event listener to toggle the "open" class whenever the button is clicked.
		elButton.addEventListener('click', function (event) {
		    var isOpen = false;
			var currentClasses = this.className.split(' ');
			var newClass = '';

			for (var property in currentClasses)
			{
				if (!currentClasses.hasOwnProperty(property))
                {
                    continue;
                }

                if (currentClasses[property] === 'open')
                {
                    isOpen = true;

                    continue;
                }

				newClass += currentClasses[property] + ' ';
			}

			if (newClass.trim)
			{
				newClass = newClass.trim();
			}

			if (!isOpen)
            {
                newClass += ' open';
            }

			this.className = newClass;

			event.preventDefault();
		});

		// Loop through all section > a elements in the NAV
        var linkList = elNav.querySelectorAll('section > a');

        if (linkList.length === 0)
        {
            return;
        }

		/**
		 * Clicking on each link will do two things:
		 * - It will set the clicked link's class to “current”
		 * - It will unset the “current” class on every other link
		 * - It will trigger a virtual click on the drop-down button (to close the drop-down).
		 */
		akeeba.fef.forEach(linkList, function(i, elLink) {
			elLink.addEventListener('click', function (event) {
				// Close the drop-down
				akeeba.fef.triggerEvent(elButton, 'click');

				// Remove the “current” class from all links
				akeeba.fef.forEach(linkList, function(i, element) {
					var currentClasses = element.className.split(' ');
					var newClass = '';

					for (var property in currentClasses)
					{
						if (!currentClasses.hasOwnProperty(property) || (currentClasses[property] === 'current'))
						{
							continue;
						}

						newClass += currentClasses[property] + ' ';
					}

					if (newClass.trim)
					{
						newClass = newClass.trim();
					}

					element.className = newClass;
				});

				// Add the “current” class to the current link
				this.className += ' current';

				event.preventDefault();
			});
		});
    });
};
home/wuectly/www/plugins/system/t3/base/bootstrap/js/dropdown.js000060400000010630152457215260021111 0ustar00/* ========================================================================
 * Bootstrap: dropdown.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#dropdowns
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */


+function ($) { "use strict";

  // DROPDOWN CLASS DEFINITION
  // =========================

  var backdrop = '.dropdown-backdrop'
  var toggle   = '[data-toggle=dropdown]'
  var Dropdown = function (element) {
    var $el = $(element).on('click.bs.dropdown', this.toggle)
  }

  Dropdown.prototype.toggle = function (e) {
    var $this = $(this)

    if ($this.is('.disabled, :disabled')) return

    var $parent  = getParent($this)
    var isActive = $parent.hasClass('open')

    clearMenus()

    if (!isActive) {
      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
        // if mobile we we use a backdrop because click events don't delegate
        $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
      }

      $parent.trigger(e = $.Event('show.bs.dropdown'))

      if (e.isDefaultPrevented()) return

      $parent
        .toggleClass('open')
        .trigger('shown.bs.dropdown')

      $this.focus()
    }

    return false
  }

  Dropdown.prototype.keydown = function (e) {
    if (!/(38|40|27)/.test(e.keyCode)) return

    var $this = $(this)

    e.preventDefault()
    e.stopPropagation()

    if ($this.is('.disabled, :disabled')) return

    var $parent  = getParent($this)
    var isActive = $parent.hasClass('open')

    if (!isActive || (isActive && e.keyCode == 27)) {
      if (e.which == 27) $parent.find(toggle).focus()
      return $this.click()
    }

    var $items = $('[role=menu] li:not(.divider):visible a', $parent)

    if (!$items.length) return

    var index = $items.index($items.filter(':focus'))

    if (e.keyCode == 38 && index > 0)                 index--                        // up
    if (e.keyCode == 40 && index < $items.length - 1) index++                        // down
    if (!~index)                                      index=0

    $items.eq(index).focus()
  }

  function clearMenus() {
    $(backdrop).remove()
    $(toggle).each(function (e) {
      var $parent = getParent($(this))
      if (!$parent.hasClass('open')) return
      $parent.trigger(e = $.Event('hide.bs.dropdown'))
      if (e.isDefaultPrevented()) return
      $parent.removeClass('open').trigger('hidden.bs.dropdown')
    })
  }

  function getParent($this) {
    var selector = $this.attr('data-target')

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
    }

    var $parent = selector && $(selector)

    return $parent && $parent.length ? $parent : $this.parent()
  }


  // DROPDOWN PLUGIN DEFINITION
  // ==========================

  var old = $.fn.dropdown

  $.fn.dropdown = function (option) {
    return this.each(function () {
      var $this = $(this)
      var data  = $this.data('dropdown')

      if (!data) $this.data('dropdown', (data = new Dropdown(this)))
      if (typeof option == 'string') data[option].call($this)
    })
  }

  $.fn.dropdown.Constructor = Dropdown


  // DROPDOWN NO CONFLICT
  // ====================

  $.fn.dropdown.noConflict = function () {
    $.fn.dropdown = old
    return this
  }


  // APPLY TO STANDARD DROPDOWN ELEMENTS
  // ===================================

  $(document)
    .on('click.bs.dropdown.data-api', clearMenus)
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
    .on('click.bs.dropdown.data-api'  , toggle, Dropdown.prototype.toggle)
    .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)

}(window.jQuery);