diff options
author | Chris Rebert <code@rebertia.com> | 2015-02-03 06:31:37 +0300 |
---|---|---|
committer | Chris Rebert <code@rebertia.com> | 2015-02-03 06:31:37 +0300 |
commit | a8f77528cdaed993c2080f24d29730d8c7325d87 (patch) | |
tree | 374d8f58c8a39fdbf3348f1379fa648ce2a5907e /dist | |
parent | 177a9945807453ad1e4124b1306bc22050a71d11 (diff) |
grunt dist
Diffstat (limited to 'dist')
-rw-r--r-- | dist/browser/mq4-hover-hover-shim.js | 206 | ||||
-rw-r--r-- | dist/cjs/mq4-hover-hover-shim.js | 208 |
2 files changed, 205 insertions, 209 deletions
diff --git a/dist/browser/mq4-hover-hover-shim.js b/dist/browser/mq4-hover-hover-shim.js index 0fa589b..871b7f7 100644 --- a/dist/browser/mq4-hover-hover-shim.js +++ b/dist/browser/mq4-hover-hover-shim.js @@ -8,14 +8,23 @@ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.mq4HoverShim=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ "use strict"; -var _interopRequireWildcard = function (obj) { - return obj && obj.constructor === Object ? obj : { - "default": obj - }; -}; +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { "default": obj }; }; + + + +/** +* Does this UA's primary pointer support true hovering +* OR does the UA at least not try to quirkily emulate hovering, +* such that :hover CSS styles are appropriate? +* Essentially tries to shim the `@media (hover: hover)` CSS media query feature. +* @public +* @returns {boolean} +* @since 0.0.1 +*/ exports.supportsTrueHover = supportsTrueHover; /*eslint-env browser */ +/*eslint no-var:2*/ /* jshint browser: true, esnext: true */ /* jshint -W080 */ /** @@ -23,17 +32,17 @@ exports.supportsTrueHover = supportsTrueHover; * @requires jquery */ var $ = (function () { - try { - var jQuery = _interopRequireWildcard(require("jquery")); - - return jQuery; - } catch (importErr) { - var globaljQuery = window.$ || window.jQuery || window.Zepto; - if (!globaljQuery) { - throw new Error("mq4HoverShim needs jQuery (or similar)"); + try { + var jQuery = _interopRequireWildcard(require("jquery")); + + return jQuery; + } catch (importErr) { + var globaljQuery = window.$ || window.jQuery || window.Zepto; + if (!globaljQuery) { + throw new Error("mq4HoverShim needs jQuery (or similar)"); + } + return globaljQuery; } - return globaljQuery; - } })(); /** @type {boolean|undefined} */ @@ -44,104 +53,93 @@ var canTrulyHover = undefined; * @fires mq4HoverShim#mq4hsChange */ function triggerEvent() { - $(document).trigger($.Event("mq4hsChange", { bubbles: false, trueHover: canTrulyHover })); + $(document).trigger($.Event("mq4hsChange", { bubbles: false, trueHover: canTrulyHover })); } // IIFE so we can use `return`s to avoid deeply-nested if-s (function () { - if (!window.matchMedia) { - // Opera Mini, IE<=9, Android<=2.3, ancient, or obscure; per http://caniuse.com/#feat=matchmedia - - // Opera Mini, Android, and IE Mobile don't support true hovering, so they're what we'll check for. - // Other browsers are either: - // (a) obscure - // (b) touch-based but old enough not to attempt to emulate hovering - // (c) old desktop browsers that do support true hovering - - // Explanation of this UA regex: - // IE Mobile <9 seems to always have "Windows CE", "Windows Phone", or "IEMobile" in its UA string. - // IE Mobile 9 in desktop view doesn't include "IEMobile" or "Windows Phone" in the UA string, - // but it instead includes "XBLWP7" and/or "ZuneWP7". - canTrulyHover = !/Opera Mini|Android|IEMobile|Windows (Phone|CE)|(XBL|Zune)WP7/.test(navigator.userAgent); - - // Since there won't be any event handlers to fire our events, do the one-and-only firing of it here and now. - triggerEvent(); - return; - } - - // CSSWG Media Queries Level 4 draft - // http://drafts.csswg.org/mediaqueries/#hover - var HOVER_NONE = "(hover: none),(-moz-hover: none),(-ms-hover: none),(-webkit-hover: none)"; - var HOVER_ON_DEMAND = "(hover: on-demand),(-moz-hover: on-demand),(-ms-hover: on-demand),(-webkit-hover: on-demand)"; - var HOVER_HOVER = "(hover: hover),(-moz-hover: hover),(-ms-hover: hover),(-webkit-hover: hover)"; - if (window.matchMedia("" + HOVER_NONE + "," + HOVER_ON_DEMAND + "," + HOVER_HOVER).matches) { - // Browser understands the `hover` media feature - var hoverCallback = function (mql) { - var doesMatch = mql.matches; - if (doesMatch !== canTrulyHover) { - canTrulyHover = doesMatch; + if (!window.matchMedia) { + // Opera Mini, IE<=9, Android<=2.3, ancient, or obscure; per http://caniuse.com/#feat=matchmedia + + // Opera Mini, Android, and IE Mobile don't support true hovering, so they're what we'll check for. + // Other browsers are either: + // (a) obscure + // (b) touch-based but old enough not to attempt to emulate hovering + // (c) old desktop browsers that do support true hovering + + // Explanation of this UA regex: + // IE Mobile <9 seems to always have "Windows CE", "Windows Phone", or "IEMobile" in its UA string. + // IE Mobile 9 in desktop view doesn't include "IEMobile" or "Windows Phone" in the UA string, + // but it instead includes "XBLWP7" and/or "ZuneWP7". + canTrulyHover = !/Opera Mini|Android|IEMobile|Windows (Phone|CE)|(XBL|Zune)WP7/.test(navigator.userAgent); + + // Since there won't be any event handlers to fire our events, do the one-and-only firing of it here and now. triggerEvent(); - } - }; - var atHoverQuery = window.matchMedia(HOVER_HOVER); - atHoverQuery.addListener(hoverCallback); - hoverCallback(atHoverQuery); - return; - } - - // Check for touch support instead. - // Touch generally implies that hovering is merely emulated, - // which doesn't count as true hovering support for our purposes - // due to the quirkiness of the emulation (e.g. :hover being sticky). - - // W3C Pointer Events PR, 16 December 2014 - // http://www.w3.org/TR/2014/PR-pointerevents-20141216/ - // Prefixed in IE10, per http://caniuse.com/#feat=pointer - if (window.PointerEvent || window.MSPointerEvent) { - // Browser supports Pointer Events - - // Browser supports touch if it has touch points - /* jshint -W018 */ - canTrulyHover = !((window.navigator.maxTouchPoints || window.navigator.msMaxTouchPoints) > 0); - /* jshint +W018 */ - triggerEvent(); - return; - } - - // Mozilla's -moz-touch-enabled - // https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries#-moz-touch-enabled - var touchEnabledQuery = window.matchMedia("(touch-enabled),(-moz-touch-enabled),(-ms-touch-enabled),(-webkit-touch-enabled)"); - if (touchEnabledQuery.matches) { - canTrulyHover = false; - triggerEvent(); - return; - } + return; + } - // W3C Touch Events REC, 10 October 2013 - // http://www.w3.org/TR/2013/REC-touch-events-20131010/ - if ("ontouchstart" in window) { - canTrulyHover = false; - triggerEvent(); - return; - } + // CSSWG Media Queries Level 4 draft + // http://drafts.csswg.org/mediaqueries/#hover + var HOVER_NONE = "(hover: none),(-moz-hover: none),(-ms-hover: none),(-webkit-hover: none)"; + var HOVER_ON_DEMAND = "(hover: on-demand),(-moz-hover: on-demand),(-ms-hover: on-demand),(-webkit-hover: on-demand)"; + var HOVER_HOVER = "(hover: hover),(-moz-hover: hover),(-ms-hover: hover),(-webkit-hover: hover)"; + if (window.matchMedia("" + HOVER_NONE + "," + HOVER_ON_DEMAND + "," + HOVER_HOVER).matches) { + // Browser understands the `hover` media feature + var hoverCallback = function (mql) { + var doesMatch = mql.matches; + if (doesMatch !== canTrulyHover) { + canTrulyHover = doesMatch; + triggerEvent(); + } + }; + var atHoverQuery = window.matchMedia(HOVER_HOVER); + atHoverQuery.addListener(hoverCallback); + hoverCallback(atHoverQuery); + return; + } - // UA's pointer is non-touch and thus likely either supports true hovering or at least does not try to emulate it. - canTrulyHover = true; - triggerEvent(); -})(); + // Check for touch support instead. + // Touch generally implies that hovering is merely emulated, + // which doesn't count as true hovering support for our purposes + // due to the quirkiness of the emulation (e.g. :hover being sticky). + + // W3C Pointer Events PR, 16 December 2014 + // http://www.w3.org/TR/2014/PR-pointerevents-20141216/ + // Prefixed in IE10, per http://caniuse.com/#feat=pointer + if (window.PointerEvent || window.MSPointerEvent) { + // Browser supports Pointer Events + + // Browser supports touch if it has touch points + /* jshint -W018 */ + canTrulyHover = !((window.navigator.maxTouchPoints || window.navigator.msMaxTouchPoints) > 0); + /* jshint +W018 */ + triggerEvent(); + return; + } + // Mozilla's -moz-touch-enabled + // https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries#-moz-touch-enabled + var touchEnabledQuery = window.matchMedia("(touch-enabled),(-moz-touch-enabled),(-ms-touch-enabled),(-webkit-touch-enabled)"); + if (touchEnabledQuery.matches) { + canTrulyHover = false; + triggerEvent(); + return; + } -/** -* Does this UA's primary pointer support true hovering -* OR does the UA at least not try to quirkily emulate hovering, -* such that :hover CSS styles are appropriate? -* Essentially tries to shim the `@media (hover: hover)` CSS media query feature. -* @public -* @returns {boolean} -* @since 0.0.1 -*/ -function supportsTrueHover() { - return canTrulyHover; + // W3C Touch Events REC, 10 October 2013 + // http://www.w3.org/TR/2013/REC-touch-events-20131010/ + if ("ontouchstart" in window) { + canTrulyHover = false; + triggerEvent(); + return; + } + + // UA's pointer is non-touch and thus likely either supports true hovering or at least does not try to emulate it. + canTrulyHover = true; + triggerEvent(); +})();function supportsTrueHover() { + return canTrulyHover; } +exports.__esModule = true; },{"jquery":undefined}]},{},[1])(1) });
\ No newline at end of file diff --git a/dist/cjs/mq4-hover-hover-shim.js b/dist/cjs/mq4-hover-hover-shim.js index 823a684..4ea9bfe 100644 --- a/dist/cjs/mq4-hover-hover-shim.js +++ b/dist/cjs/mq4-hover-hover-shim.js @@ -1,13 +1,22 @@ "use strict"; -var _interopRequireWildcard = function (obj) { - return obj && obj.constructor === Object ? obj : { - "default": obj - }; -}; +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { "default": obj }; }; + + + +/** +* Does this UA's primary pointer support true hovering +* OR does the UA at least not try to quirkily emulate hovering, +* such that :hover CSS styles are appropriate? +* Essentially tries to shim the `@media (hover: hover)` CSS media query feature. +* @public +* @returns {boolean} +* @since 0.0.1 +*/ exports.supportsTrueHover = supportsTrueHover; /*eslint-env browser */ +/*eslint no-var:2*/ /* jshint browser: true, esnext: true */ /* jshint -W080 */ /** @@ -15,17 +24,17 @@ exports.supportsTrueHover = supportsTrueHover; * @requires jquery */ var $ = (function () { - try { - var jQuery = _interopRequireWildcard(require("jquery")); - - return jQuery; - } catch (importErr) { - var globaljQuery = window.$ || window.jQuery || window.Zepto; - if (!globaljQuery) { - throw new Error("mq4HoverShim needs jQuery (or similar)"); + try { + var jQuery = _interopRequireWildcard(require("jquery")); + + return jQuery; + } catch (importErr) { + var globaljQuery = window.$ || window.jQuery || window.Zepto; + if (!globaljQuery) { + throw new Error("mq4HoverShim needs jQuery (or similar)"); + } + return globaljQuery; } - return globaljQuery; - } })(); /** @type {boolean|undefined} */ @@ -36,102 +45,91 @@ var canTrulyHover = undefined; * @fires mq4HoverShim#mq4hsChange */ function triggerEvent() { - $(document).trigger($.Event("mq4hsChange", { bubbles: false, trueHover: canTrulyHover })); + $(document).trigger($.Event("mq4hsChange", { bubbles: false, trueHover: canTrulyHover })); } // IIFE so we can use `return`s to avoid deeply-nested if-s (function () { - if (!window.matchMedia) { - // Opera Mini, IE<=9, Android<=2.3, ancient, or obscure; per http://caniuse.com/#feat=matchmedia - - // Opera Mini, Android, and IE Mobile don't support true hovering, so they're what we'll check for. - // Other browsers are either: - // (a) obscure - // (b) touch-based but old enough not to attempt to emulate hovering - // (c) old desktop browsers that do support true hovering - - // Explanation of this UA regex: - // IE Mobile <9 seems to always have "Windows CE", "Windows Phone", or "IEMobile" in its UA string. - // IE Mobile 9 in desktop view doesn't include "IEMobile" or "Windows Phone" in the UA string, - // but it instead includes "XBLWP7" and/or "ZuneWP7". - canTrulyHover = !/Opera Mini|Android|IEMobile|Windows (Phone|CE)|(XBL|Zune)WP7/.test(navigator.userAgent); - - // Since there won't be any event handlers to fire our events, do the one-and-only firing of it here and now. - triggerEvent(); - return; - } - - // CSSWG Media Queries Level 4 draft - // http://drafts.csswg.org/mediaqueries/#hover - var HOVER_NONE = "(hover: none),(-moz-hover: none),(-ms-hover: none),(-webkit-hover: none)"; - var HOVER_ON_DEMAND = "(hover: on-demand),(-moz-hover: on-demand),(-ms-hover: on-demand),(-webkit-hover: on-demand)"; - var HOVER_HOVER = "(hover: hover),(-moz-hover: hover),(-ms-hover: hover),(-webkit-hover: hover)"; - if (window.matchMedia("" + HOVER_NONE + "," + HOVER_ON_DEMAND + "," + HOVER_HOVER).matches) { - // Browser understands the `hover` media feature - var hoverCallback = function (mql) { - var doesMatch = mql.matches; - if (doesMatch !== canTrulyHover) { - canTrulyHover = doesMatch; + if (!window.matchMedia) { + // Opera Mini, IE<=9, Android<=2.3, ancient, or obscure; per http://caniuse.com/#feat=matchmedia + + // Opera Mini, Android, and IE Mobile don't support true hovering, so they're what we'll check for. + // Other browsers are either: + // (a) obscure + // (b) touch-based but old enough not to attempt to emulate hovering + // (c) old desktop browsers that do support true hovering + + // Explanation of this UA regex: + // IE Mobile <9 seems to always have "Windows CE", "Windows Phone", or "IEMobile" in its UA string. + // IE Mobile 9 in desktop view doesn't include "IEMobile" or "Windows Phone" in the UA string, + // but it instead includes "XBLWP7" and/or "ZuneWP7". + canTrulyHover = !/Opera Mini|Android|IEMobile|Windows (Phone|CE)|(XBL|Zune)WP7/.test(navigator.userAgent); + + // Since there won't be any event handlers to fire our events, do the one-and-only firing of it here and now. triggerEvent(); - } - }; - var atHoverQuery = window.matchMedia(HOVER_HOVER); - atHoverQuery.addListener(hoverCallback); - hoverCallback(atHoverQuery); - return; - } - - // Check for touch support instead. - // Touch generally implies that hovering is merely emulated, - // which doesn't count as true hovering support for our purposes - // due to the quirkiness of the emulation (e.g. :hover being sticky). - - // W3C Pointer Events PR, 16 December 2014 - // http://www.w3.org/TR/2014/PR-pointerevents-20141216/ - // Prefixed in IE10, per http://caniuse.com/#feat=pointer - if (window.PointerEvent || window.MSPointerEvent) { - // Browser supports Pointer Events - - // Browser supports touch if it has touch points - /* jshint -W018 */ - canTrulyHover = !((window.navigator.maxTouchPoints || window.navigator.msMaxTouchPoints) > 0); - /* jshint +W018 */ - triggerEvent(); - return; - } - - // Mozilla's -moz-touch-enabled - // https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries#-moz-touch-enabled - var touchEnabledQuery = window.matchMedia("(touch-enabled),(-moz-touch-enabled),(-ms-touch-enabled),(-webkit-touch-enabled)"); - if (touchEnabledQuery.matches) { - canTrulyHover = false; - triggerEvent(); - return; - } + return; + } - // W3C Touch Events REC, 10 October 2013 - // http://www.w3.org/TR/2013/REC-touch-events-20131010/ - if ("ontouchstart" in window) { - canTrulyHover = false; - triggerEvent(); - return; - } + // CSSWG Media Queries Level 4 draft + // http://drafts.csswg.org/mediaqueries/#hover + var HOVER_NONE = "(hover: none),(-moz-hover: none),(-ms-hover: none),(-webkit-hover: none)"; + var HOVER_ON_DEMAND = "(hover: on-demand),(-moz-hover: on-demand),(-ms-hover: on-demand),(-webkit-hover: on-demand)"; + var HOVER_HOVER = "(hover: hover),(-moz-hover: hover),(-ms-hover: hover),(-webkit-hover: hover)"; + if (window.matchMedia("" + HOVER_NONE + "," + HOVER_ON_DEMAND + "," + HOVER_HOVER).matches) { + // Browser understands the `hover` media feature + var hoverCallback = function (mql) { + var doesMatch = mql.matches; + if (doesMatch !== canTrulyHover) { + canTrulyHover = doesMatch; + triggerEvent(); + } + }; + var atHoverQuery = window.matchMedia(HOVER_HOVER); + atHoverQuery.addListener(hoverCallback); + hoverCallback(atHoverQuery); + return; + } - // UA's pointer is non-touch and thus likely either supports true hovering or at least does not try to emulate it. - canTrulyHover = true; - triggerEvent(); -})(); + // Check for touch support instead. + // Touch generally implies that hovering is merely emulated, + // which doesn't count as true hovering support for our purposes + // due to the quirkiness of the emulation (e.g. :hover being sticky). + + // W3C Pointer Events PR, 16 December 2014 + // http://www.w3.org/TR/2014/PR-pointerevents-20141216/ + // Prefixed in IE10, per http://caniuse.com/#feat=pointer + if (window.PointerEvent || window.MSPointerEvent) { + // Browser supports Pointer Events + + // Browser supports touch if it has touch points + /* jshint -W018 */ + canTrulyHover = !((window.navigator.maxTouchPoints || window.navigator.msMaxTouchPoints) > 0); + /* jshint +W018 */ + triggerEvent(); + return; + } + // Mozilla's -moz-touch-enabled + // https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries#-moz-touch-enabled + var touchEnabledQuery = window.matchMedia("(touch-enabled),(-moz-touch-enabled),(-ms-touch-enabled),(-webkit-touch-enabled)"); + if (touchEnabledQuery.matches) { + canTrulyHover = false; + triggerEvent(); + return; + } -/** -* Does this UA's primary pointer support true hovering -* OR does the UA at least not try to quirkily emulate hovering, -* such that :hover CSS styles are appropriate? -* Essentially tries to shim the `@media (hover: hover)` CSS media query feature. -* @public -* @returns {boolean} -* @since 0.0.1 -*/ -function supportsTrueHover() { - return canTrulyHover; -}
\ No newline at end of file + // W3C Touch Events REC, 10 October 2013 + // http://www.w3.org/TR/2013/REC-touch-events-20131010/ + if ("ontouchstart" in window) { + canTrulyHover = false; + triggerEvent(); + return; + } + + // UA's pointer is non-touch and thus likely either supports true hovering or at least does not try to emulate it. + canTrulyHover = true; + triggerEvent(); +})();function supportsTrueHover() { + return canTrulyHover; +} +exports.__esModule = true;
\ No newline at end of file |