File tree Expand file tree Collapse file tree 5 files changed +29
-4
lines changed Expand file tree Collapse file tree 5 files changed +29
-4
lines changed Original file line number Diff line number Diff line change 1313var addClass = require (' fd-class' ).addClass ;
1414var removeClass = require (' fd-class' ).removeClass ;
1515var toggleClass = require (' fd-class' ).toggleClass ;
16+ var hasClass = require (' fd-class' ).hasClass ;
1617
1718var select = require (' fd-select' ).select ;
1819var always = require (' fj-always' );
1920
2021addClass (always (' blue' ), select (' li' )); // adds the class "blue" to all the li
2122removeClass (always (' blue' ), select (' li' )); // removes the class "blue" to all the li
2223toggleClass (always (' blue' ), select (' li' )); // toggles the class "blue" to all the li
24+ hasClass (always (' foo' ), select (' .item' )); // returns true if all ".item" contain the class "foo"
2325
2426var hide = addClass (always (' hide' ));
2527
Original file line number Diff line number Diff line change @@ -12,6 +12,11 @@ function _toggleClass(getClass, elements) {
1212 return elements . map ( ( element , idx ) => element . classList . toggle ( getClass ( idx ) ) ) ;
1313}
1414
15+ function _hasClass ( getClass , elements ) {
16+ return elements . every ( ( element , idx ) => element . classList . contains ( getClass ( idx ) ) ) ;
17+ }
18+
1519export let addClass = curry2 ( _addClass ) ;
1620export let removeClass = curry2 ( _removeClass ) ;
1721export let toggleClass = curry2 ( _toggleClass ) ;
22+ export let hasClass = curry2 ( _hasClass ) ;
Original file line number Diff line number Diff line change @@ -21,7 +21,14 @@ function _toggleClass(getClass, elements) {
2121 } ) ;
2222}
2323
24+ function _hasClass ( getClass , elements ) {
25+ return elements . every ( function ( element , idx ) {
26+ return element . classList . contains ( getClass ( idx ) ) ;
27+ } ) ;
28+ }
29+
2430var addClass = exports . addClass = curry2 ( _addClass ) ;
2531var removeClass = exports . removeClass = curry2 ( _removeClass ) ;
2632var toggleClass = exports . toggleClass = curry2 ( _toggleClass ) ;
33+ var hasClass = exports . hasClass = curry2 ( _hasClass ) ;
2734exports . __esModule = true ;
Original file line number Diff line number Diff line change @@ -2,14 +2,14 @@ import assert from 'assert';
22import always from 'fj-always' ;
33import { select , selectOne } from 'fd-select' ;
44
5- import { addClass , removeClass , toggleClass } from './' ;
5+ import { addClass , removeClass , toggleClass , hasClass } from './' ;
66
77
88describe ( 'fd-class' , ( ) => {
99 const HTML = `
1010 <ul data-foo="bar" class="fruits">
11- <li class="fruit yummie tastie">apple</li>
12- <li class="fruit yummie tastie">orange</li>
11+ <li class="fruit yummie tastie red ">apple</li>
12+ <li class="fruit yummie tastie red ">orange</li>
1313 <li class="fruit yummie tastie">plum</li>
1414 </ul>
1515 ` ;
@@ -73,6 +73,11 @@ describe('fd-class', () => {
7373 assert ( ! lis [ 2 ] . classList . contains ( 'blue' ) ) ;
7474 } ) ;
7575
76+ it ( '#hasClass' , ( ) => {
77+ assert ( hasClass ( always ( 'fruit' ) ) ( lis ) ) ;
78+ assert ( ! hasClass ( always ( 'red' ) ) ( lis ) ) ;
79+ } ) ;
80+
7681 it ( '#getClass should get the index of the element' , ( ) => {
7782 function rowClass ( idx ) {
7883 return 'row-' + idx ;
Original file line number Diff line number Diff line change @@ -15,11 +15,12 @@ var _ = require("./");
1515var addClass = _ . addClass ;
1616var removeClass = _ . removeClass ;
1717var toggleClass = _ . toggleClass ;
18+ var hasClass = _ . hasClass ;
1819
1920
2021
2122describe ( "fd-class" , function ( ) {
22- var HTML = "\n <ul data-foo=\"bar\" class=\"fruits\">\n <li class=\"fruit yummie tastie\">apple</li>\n <li class=\"fruit yummie tastie\">orange</li>\n <li class=\"fruit yummie tastie\">plum</li>\n </ul>\n " ;
23+ var HTML = "\n <ul data-foo=\"bar\" class=\"fruits\">\n <li class=\"fruit yummie tastie red \">apple</li>\n <li class=\"fruit yummie tastie red \">orange</li>\n <li class=\"fruit yummie tastie\">plum</li>\n </ul>\n " ;
2324 var fixture = undefined ,
2425 lis = undefined ,
2526 li = undefined ;
@@ -82,6 +83,11 @@ describe("fd-class", function () {
8283 assert ( ! lis [ 2 ] . classList . contains ( "blue" ) ) ;
8384 } ) ;
8485
86+ it ( "#hasClass" , function ( ) {
87+ assert ( hasClass ( always ( "fruit" ) ) ( lis ) ) ;
88+ assert ( ! hasClass ( always ( "red" ) ) ( lis ) ) ;
89+ } ) ;
90+
8591 it ( "#getClass should get the index of the element" , function ( ) {
8692 function rowClass ( idx ) {
8793 return "row-" + idx ;
You can’t perform that action at this time.
0 commit comments