mirror of
https://github.com/azure/login.git
synced 2026-06-06 21:17:09 +00:00
* Bump lodash from 4.17.15 to 4.17.19 (#52) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Amruta Kawade <65217380+AmrutaKawade@users.noreply.github.com> * Bump @actions/core from 1.1.3 to 1.2.6 (#60) Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.1.3 to 1.2.6. - [Release notes](https://github.com/actions/toolkit/releases) - [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md) - [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Amruta Kawade <65217380+AmrutaKawade@users.noreply.github.com> * updating node_nodules * updated package-lock Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
135 lines
4.2 KiB
JavaScript
135 lines
4.2 KiB
JavaScript
/*
|
|
* 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));
|