Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/mq4-hover-shim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Rebert <github@rebertia.com>2015-02-03 06:34:05 +0300
committerChris Rebert <github@rebertia.com>2015-02-03 06:34:05 +0300
commite499d2cd0d0e2dddc08e24278897d4eaea57dcdc (patch)
tree374d8f58c8a39fdbf3348f1379fa648ce2a5907e
parentcdeeb007171887960a79437773fda390a6ee3ffd (diff)
parenta8f77528cdaed993c2080f24d29730d8c7325d87 (diff)
Merge pull request #10 from cvrebert/update-6to5
Update 6to5
-rw-r--r--Gruntfile.js1
-rw-r--r--dist/browser/mq4-hover-hover-shim.js206
-rw-r--r--dist/cjs/mq4-hover-hover-shim.js208
-rw-r--r--package.json2
4 files changed, 207 insertions, 210 deletions
diff --git a/Gruntfile.js b/Gruntfile.js
index 52c0a25..fdf3fb9 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -20,6 +20,7 @@ module.exports = function (grunt) {
'6to5': {
options: {
+ loose: ['es6.modules'],
modules: "common" // output a CommonJS module
},
dist: {
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
diff --git a/package.json b/package.json
index b2342f0..55ae2e9 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,7 @@
},
"devDependencies": {
"grunt": "^0.4.5",
- "grunt-6to5": "^2.0.0",
+ "grunt-6to5": "^3.0.0",
"grunt-browserify": "^3.2.1",
"grunt-contrib-jshint": "^0.11.0",
"grunt-contrib-nodeunit": "^0.4.1",