diff options
Diffstat (limited to 'js/vendor/matches-selector')
-rw-r--r-- | js/vendor/matches-selector/.bower.json | 42 | ||||
-rw-r--r-- | js/vendor/matches-selector/README.md | 27 | ||||
-rw-r--r-- | js/vendor/matches-selector/bower.json | 32 | ||||
-rw-r--r-- | js/vendor/matches-selector/matches-selector.js | 53 |
4 files changed, 154 insertions, 0 deletions
diff --git a/js/vendor/matches-selector/.bower.json b/js/vendor/matches-selector/.bower.json new file mode 100644 index 000000000..2bc7c9509 --- /dev/null +++ b/js/vendor/matches-selector/.bower.json @@ -0,0 +1,42 @@ +{ + "name": "matches-selector", + "description": "matches/matchesSelector helper", + "main": "matches-selector.js", + "devDependencies": { + "qunit": "1.x" + }, + "homepage": "https://github.com/desandro/matches-selector", + "authors": [ + "David DeSandro" + ], + "moduleType": [ + "amd", + "globals", + "node" + ], + "keywords": [ + "DOM", + "matchesSelector", + "matches" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests", + "tests.*", + "package.json" + ], + "version": "2.0.1", + "_release": "2.0.1", + "_resolution": { + "type": "version", + "tag": "v2.0.1", + "commit": "96bc8d60f8e67026fd467a0d55742663ca9b7c30" + }, + "_source": "git://github.com/desandro/matches-selector.git", + "_target": "~2.0.0", + "_originalSource": "matches-selector" +}
\ No newline at end of file diff --git a/js/vendor/matches-selector/README.md b/js/vendor/matches-selector/README.md new file mode 100644 index 000000000..09fd5f378 --- /dev/null +++ b/js/vendor/matches-selector/README.md @@ -0,0 +1,27 @@ +# matchesSelector helper + +[`matches`/`matchesSelector`](https://developer.mozilla.org/en-US/docs/Web/API/Element/matches) is pretty hot :fire:, but has [vendor-prefix baggage](http://caniuse.com/#feat=matchesselector) :handbag: :pouch:. This helper function takes care of that, without polyfilling or augmenting `Element.prototype`. + +``` js +matchesSelector( elem, selector ); +// for example +matchesSelector( myElem, 'div.my-hawt-selector' ); +``` + +## Install + +Download [matches-selector.js](https://github.com/desandro/matches-selector/raw/master/matches-selector.js) + +Install with [Bower](http://bower.io): `bower install matches-selector` + +[Install with npm](https://www.npmjs.org/package/desandro-matches-selector): `npm install desandro-matches-selector` + +## Browser support + +IE10+, all modern browsers + +Use [matchesSelector v1](https://github.com/desandro/matches-selector/releases/tag/v1.0.3) for IE8 and IE9 support. + +## MIT license + +matchesSelector is released under the [MIT license](http://desandro.mit-license.org) diff --git a/js/vendor/matches-selector/bower.json b/js/vendor/matches-selector/bower.json new file mode 100644 index 000000000..e502c871e --- /dev/null +++ b/js/vendor/matches-selector/bower.json @@ -0,0 +1,32 @@ +{ + "name": "matches-selector", + "description": "matches/matchesSelector helper", + "main": "matches-selector.js", + "devDependencies": { + "qunit": "1.x" + }, + "homepage": "https://github.com/desandro/matches-selector", + "authors": [ + "David DeSandro" + ], + "moduleType": [ + "amd", + "globals", + "node" + ], + "keywords": [ + "DOM", + "matchesSelector", + "matches" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests", + "tests.*", + "package.json" + ] +} diff --git a/js/vendor/matches-selector/matches-selector.js b/js/vendor/matches-selector/matches-selector.js new file mode 100644 index 000000000..482a795e9 --- /dev/null +++ b/js/vendor/matches-selector/matches-selector.js @@ -0,0 +1,53 @@ +/** + * matchesSelector v2.0.1 + * matchesSelector( element, '.selector' ) + * MIT license + */ + +/*jshint browser: true, strict: true, undef: true, unused: true */ + +( function( window, factory ) { + /*global define: false, module: false */ + 'use strict'; + // universal module definition + if ( typeof define == 'function' && define.amd ) { + // AMD + define( factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory(); + } else { + // browser global + window.matchesSelector = factory(); + } + +}( window, function factory() { + 'use strict'; + + var matchesMethod = ( function() { + var ElemProto = Element.prototype; + // check for the standard method name first + if ( ElemProto.matches ) { + return 'matches'; + } + // check un-prefixed + if ( ElemProto.matchesSelector ) { + return 'matchesSelector'; + } + // check vendor prefixes + var prefixes = [ 'webkit', 'moz', 'ms', 'o' ]; + + for ( var i=0; i < prefixes.length; i++ ) { + var prefix = prefixes[i]; + var method = prefix + 'MatchesSelector'; + if ( ElemProto[ method ] ) { + return method; + } + } + })(); + + return function matchesSelector( elem, selector ) { + return elem[ matchesMethod ]( selector ); + }; + +})); |