diff core/assets/vendor/jquery-once/jquery.once.js @ 0:c75dbcec494b

Initial commit from drush-created site
author Chris Cannam
date Thu, 05 Jul 2018 14:24:15 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/assets/vendor/jquery-once/jquery.once.js	Thu Jul 05 14:24:15 2018 +0000
@@ -0,0 +1,176 @@
+/*!
+ * jQuery Once v2.2.0 - http://github.com/robloach/jquery-once
+ * @license MIT, GPL-2.0
+ *   http://opensource.org/licenses/MIT
+ *   http://opensource.org/licenses/GPL-2.0
+ */
+
+/**
+ * Universal Module Definition
+ *
+ * jQuery Once has a dependency on jQuery, so we wrap the code with a UMD
+ * pattern in order to allow loading jQuery and jQuery Once through a module
+ * definition like CommonJS, AMD, or through a global object.
+ *
+ * @see {@link http://github.com/umdjs/umd}
+ */
+(function (factory) {
+  'use strict';
+
+  if (typeof exports === 'object') {
+    // CommonJS
+    factory(require('jquery'));
+  } else if (typeof define === 'function' && define.amd) {
+    // AMD
+    /* globals define */
+    define(['jquery'], factory);
+  } else {
+    // Global object
+    /* globals jQuery */
+    factory(jQuery);
+  }
+})(function ($) {
+  'use strict';
+
+  /**
+   * Ensures that the given ID is valid, returning 'once' if one is not given.
+   *
+   * @param {string} [id=once]
+   *   A string representing the ID to check. Defaults to `'once'`.
+   *
+   * @returns The valid ID name.
+   *
+   * @throws TypeError when an ID is provided, but not a string.
+   * @private
+   */
+  var checkId = function (id) {
+    id = id || 'once';
+    if (typeof id !== 'string') {
+      throw new TypeError('The jQuery Once id parameter must be a string');
+    }
+    return id;
+  };
+
+  /**
+   * Filter elements that have yet to be processed by the given data ID.
+   *
+   * @param {string} [id=once]
+   *   The data ID used to determine whether the given elements have already
+   *   been processed or not. Defaults to `'once'`.
+   *
+   * @returns jQuery collection of elements that have now run once by
+   *   the given ID.
+   *
+   * @example
+   * ``` javascript
+   * // The following will change the color of each paragraph to red, just once
+   * // for the 'changecolor' key.
+   * $('p').once('changecolor').css('color', 'red');
+   *
+   * // .once() will return a set of elements that yet to have the once ID
+   * // associated with them. You can return to the original collection set by
+   * // using .end().
+   * $('p')
+   *   .once('changecolorblue')
+   *     .css('color', 'blue')
+   *   .end()
+   *   .css('color', 'red');
+   *
+   * // To execute a function on the once set, you can use jQuery's each().
+   * $('div.calendar').once().each(function () {
+   *   // Since there is no once ID provided here, the key will be 'once'.
+   * });
+   * ```
+   *
+   * @see removeOnce
+   * @see findOnce
+   * @this jQuery
+   *
+   * @global
+   * @public
+   */
+  $.fn.once = function (id) {
+    // Build the jQuery Once data name from the provided ID.
+    var name = 'jquery-once-' + checkId(id);
+
+    // Find elements that don't have the jQuery Once data applied to them yet.
+    return this.filter(function () {
+      return $(this).data(name) !== true;
+    }).data(name, true);
+  };
+
+  /**
+   * Removes the once data from elements, based on the given ID.
+   *
+   * @param {string} [id=once]
+   *   A string representing the name of the data ID which should be used when
+   *   filtering the elements. This only filters elements that have already been
+   *   processed by the once function. The ID should be the same ID that was
+   *   originally passed to the once() function. Defaults to `'once'`.
+   *
+   * @returns jQuery collection of elements that were acted upon to remove their
+   *    once data.
+   *
+   * @example
+   * ``` javascript
+   * // Remove once data with the 'changecolor' ID. The result set is the
+   * // elements that had their once data removed.
+   * $('p').removeOnce('changecolor').css('color', '');
+   *
+   * // Any jQuery function can be performed on the result set.
+   * $('div.calendar').removeOnce().each(function () {
+   *   // Remove the calendar behavior.
+   * });
+   * ```
+   *
+   * @see once
+   * @this jQuery
+   *
+   * @global
+   * @public
+   */
+  $.fn.removeOnce = function (id) {
+    // Filter through the elements to find the once'd elements.
+    return this.findOnce(id).removeData('jquery-once-' + checkId(id));
+  };
+
+  /**
+   * Filters elements that have already been processed once.
+   *
+   * @param {string} [id=once]
+   *   A string representing the name of the data id which should be used when
+   *   filtering the elements. This only filters elements that have already
+   *   been processed by the once function. The id should be the same id that
+   *   was originally passed to the once() function. Defaults to 'once'.
+   *
+   * @returns jQuery collection of elements that have been run once.
+   *
+   * @example
+   * ``` javascript
+   * // Find all elements that have been changecolor'ed once.
+   * $('p').findOnce('changecolor').each(function () {
+   *   // This function is called for all elements that has already once'd.
+   * });
+   *
+   * // Find all elements that have been acted on with the default 'once' key.
+   * $('p').findOnce().each(function () {
+   *   // This function is called for all elements that have been acted on with
+   *   // a 'once' action.
+   * });
+   * ```
+   *
+   * @see once
+   * @this jQuery
+   *
+   * @global
+   * @public
+   */
+  $.fn.findOnce = function (id) {
+    // Filter the elements by which do have the data.
+    var name = 'jquery-once-' + checkId(id);
+
+    return this.filter(function () {
+      return $(this).data(name) === true;
+    });
+  };
+});