Repository navigation
Expand file tree
/
Copy pathbirdify.min.js
More file actions
1 lines (1 loc) · 2.64 KB
/
Copy pathbirdify.min.js
File metadata and controls
1 lines (1 loc) · 2.64 KB
1
function Birdify(e,t){if(this.constructor===Window){return new Birdify(e,t)}if(e.constructor.name!==Function){e=$(e)}this.ctx=e;this.mode=t;Birdify._wrapBirdTextRecursive(e,t);this.birds=e.find(".bird-candidate")}Birdify.modes={parentheses:1,text:2};Birdify.prototype.fly=function(e,t){Birdify._activateBirds(this.birds,e,t)};Birdify.prototype.reset=function(){Birdify._deactivateBirds(this.birds)};Birdify._roundRobin=1;Birdify._numPaths=6;Birdify._selectFlightPath=function(){var e=Birdify._roundRobin;Birdify._roundRobin++;if(Birdify._roundRobin>Birdify._numPaths){Birdify._roundRobin=1}return"flightpath-"+e};Birdify._wrapParenReplacer='<span class="bird-candidate bird-candidate-paren"><span class="left wing">$1</span>$2<span class="right wing">$3</span></span>';Birdify._wrapTextReplacer='<span class="bird-candidate bird-candidate-text"><span class="left wing">$1</span>$2<span class="right wing">$3</span></span>';Birdify._wrapBirdTextRecursive=function(e,t){if(t===undefined){t=1}e.contents().filter(function(){return this.nodeType!=Node.TEXT_NODE}).each(function(){Birdify._wrapBirdTextRecursive($(this),t)});e.contents().filter(function(){return this.nodeType==Node.TEXT_NODE}).each(function(){var e=$(this).text();if(t&1){e=e.replace(/([{\[\(])([^\{^\[^\(^\}^\]^\)]?)([}\]\)])/g,Birdify._wrapParenReplacer)}if(t&2){e=e.replace(/([A-Za-z0-9]{5,8})([\.+@&\*=])([A-Za-z0-9]{5,8})/g,Birdify._wrapTextReplacer).replace(/([A-Za-z0-9]{3,4})([\.+@&\*=])([A-Za-z0-9]{3,4})/g,Birdify._wrapTextReplacer)}$(this).replaceWith(e)});return e};Birdify._transitionToActive=function(e){e.removeClass("bird-candidate");e.addClass("birdified");if(e.hasClass("bird-candidate-paren")){e.removeClass("bird-candidate-paren");e.addClass("with-paren")}else if(e.hasClass("bird-candidate-text")){e.removeClass("bird-candidate-text");e.addClass("with-text")}if(e.attr("hasPath")===undefined){e.attr("hasPath",true);e.addClass(Birdify._selectFlightPath())}return};Birdify._transitionToInactive=function(e){e.addClass("bird-candidate");e.removeClass("birdified");if(e.hasClass("with-paren")){e.addClass("bird-candidate-paren");e.removeClass("with-paren")}else if(e.hasClass("with-text")){e.addClass("bird-candidate-text");ctx.removeClass("with-text")}if(e.attr("hasPath")===undefined){e.attr("hasPath",true);e.addClass(Birdify._selectFlightPath())}return};Birdify._activateBirds=function(e,t,n){if(n===undefined){n=0}if(t===undefined){t=0}e.each(function(){var e=$(this);if(t+n==0){Birdify._transitionToActive(e)}else{var r=Math.floor(Math.random()*t)+n;setTimeout(function(){Birdify._transitionToActive(e)},r)}})};Birdify._deactivateBirds=function(e){e.each(function(){var e=$(this);Birdify._transitionToInactive(e)})}