diff options
Diffstat (limited to 'school/node_modules/nwsapi/src/modules/nwsapi-jquery.js')
-rw-r--r-- | school/node_modules/nwsapi/src/modules/nwsapi-jquery.js | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/school/node_modules/nwsapi/src/modules/nwsapi-jquery.js b/school/node_modules/nwsapi/src/modules/nwsapi-jquery.js deleted file mode 100644 index 961cb30..0000000 --- a/school/node_modules/nwsapi/src/modules/nwsapi-jquery.js +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (C) 2007-2017 Diego Perini - * All rights reserved. - * - * this is just a small example to show - * how an extension for NWMatcher could be - * adapted to handle special jQuery selectors - * - * Child Selectors - * :even, :odd, :eq, :lt, :gt, :first, :last, :nth - * - * Pseudo Selectors - * :has, :button, :header, :input, :checkbox, :radio, :file, :image - * :password, :reset, :submit, :text, :hidden, :visible, :parent - * - */ - -// for structural pseudo-classes extensions -NW.Dom.registerSelector( - 'jquery:child', - /^\:((?:(nth|eq|lt|gt)\(([^()]*)\))|(?:even|odd|first|last))(.*)/i, - (function(global) { - - return function(match, source, mode, callback) { - - var status = true, - macro = mode ? NW.Dom.S_BODY : NW.Dom.M_BODY; - - macro = macro.replace('@', typeof callback == 'function' ? (mode ? NW.Dom.S_TEST : NW.Dom.M_TEST) : ''); - - switch (match[1].toLowerCase()) { - case 'odd': - source = source.replace(macro, 'if((n=n^1)==0){' + macro + '}'); - break; - case 'even': - source = source.replace(macro, 'if((n=n^1)==1){' + macro + '}'); - break; - case 'first': - source = 'n=s.root.getElementsByTagName(e.nodeName);if(n.length&&n[0]===e){' + source + '}'; - break; - case 'last': - source = 'n=s.root.getElementsByTagName(e.nodeName);if(n.length&&n[n.length-1]===e){' + source + '}'; - break; - default: - switch (match[2].toLowerCase()) { - case 'nth': - source = 'n=s.root.getElementsByTagName(e.nodeName);if(n.length&&n[' + match[3] + ']===e){' + source + '}'; - break; - case 'eq': - source = source.replace(macro, 'if(x++==' + match[3] + '){' + macro + '}'); - break; - case 'lt': - source = source.replace(macro, 'if(x++<' + match[3] + '){' + macro + '}'); - break; - case 'gt': - source = source.replace(macro, 'if(x++>' + match[3] + '){' + macro + '}'); - break; - default: - status = false; - break; - } - break; - } - - // compiler will add this to "source" - return { - 'source': source, - 'status': status, - 'modvar': 'x=0' - }; - - }; - - })(this)); - -// for element pseudo-classes extensions -NW.Dom.registerSelector( - 'jquery:pseudo', - /^\:(has|checkbox|file|image|password|radio|reset|submit|text|button|input|header|hidden|visible|parent)(?:\(\s*(["']*)?([^'"()]*)\2\s*\))?(.*)/i, - (function(global) { - - return function(match, source, mode, callback) { - - var status = true, - macro = mode ? NW.Dom.S_BODY : NW.Dom.M_BODY; - - macro = macro.replace('@', typeof callback == 'function' ? (mode ? NW.Dom.S_TEST : NW.Dom.M_TEST) : ''); - - switch(match[1].toLowerCase()) { - case 'has': - source = source.replace(macro, 'if(e.getElementsByTagName("' + match[3].replace(/^\s|\s$/g, '') + '")[0]){' + macro + '}'); - break; - case 'checkbox': - case 'file': - case 'image': - case 'password': - case 'radio': - case 'reset': - case 'submit': - case 'text': - // :checkbox, :file, :image, :password, :radio, :reset, :submit, :text - source = 'if(/^' + match[1] + '$/i.test(e.type)){' + source + '}'; - break; - case 'button': - source = 'if(/^button$/i.test(e.nodeName)){' + source + '}'; - break; - case 'input': - source = 'if(/^(?:button|input|select|textarea)$/i.test(e.nodeName)){' + source + '}'; - break; - case 'header': - source = 'if(/^h[1-6]$/i.test(e.nodeName)){' + source + '}'; - break; - case 'hidden': - source = 'if(!e.offsetWidth&&!e.offsetHeight){' + source + '}'; - break; - case 'visible': - source = 'if(e.offsetWidth||e.offsetHeight){' + source + '}'; - break; - case 'parent': - source = 'if(e.firstChild){' + source + '}'; - break; - default: - status = false; - break; - } - - // compiler will add this to "source" - return { - 'source': source, - 'status': status - }; - - }; - - })(this)); |