From 25cf7a8142dab5e612268a824a72be2236927943 Mon Sep 17 00:00:00 2001 From: Mottie Date: Tue, 1 Sep 2015 12:20:21 -0500 Subject: Remove jQuery dependency; add drag & keyboard I know, this is a bad all-in-one commit. I did try to test the heck out of it! --- printliminator.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'printliminator.min.js') diff --git a/printliminator.min.js b/printliminator.min.js index 9c85bfd..feb5e23 100644 --- a/printliminator.min.js +++ b/printliminator.min.js @@ -1 +1 @@ -function csstricksPrintliminator(a){var b=a.noConflict(),c=[],d={},e=("file://"===window.location.origin?"":"//css-tricks.github.io/The-Printliminator/")+"printliminator.png",f="._print_controls { position: fixed; top: 25px; right: 25px; width: 162px; height: 182px; z-index: 10000;-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;background: url("+e+") no-repeat; }._print_controls_close { position: absolute; top: -20px; right: -20px; width: 33px; height: 33px;background: url("+e+") -222px -3px no-repeat; }._print_controls_close:hover { background-position: -222px -39px; }._print_controls_remove_graphics, ._print_controls_print, ._print_controls_undo, ._print_controls_stylize {position: absolute; height: 74px; width: 74px;background: url("+e+") no-repeat; }._print_controls_remove_graphics { top: 6px; left: 6px; background-position: 0px -182px; }._print_controls_remove_graphics:hover { background-position: 0 -256px; }._print_controls_remove_graphics.active { background-position: 0 -330px; }._print_controls_print { top: 83px; left: 83px; background-position: -74px -182px; }._print_controls_print:hover { background-position: -74px -256px; }._print_controls_print.active { background-position: -74px -330px; }._print_controls_undo { top: 83px; left: 6px; background-position: -148px -182px; }._print_controls_undo:hover { background-position: -148px -256px; }._print_controls_undo.active { background-position: -148px -330px; }._print_controls_stylize { top: 6px; left: 83px; background-position: -222px -182px; }._print_controls_stylize:hover { background-position: -222px -256px; }._print_controls_stylize.active { background-position: -222px -330px; }._print_removed { display: none !important; }._printliminator_highlight { outline: 3px solid red; }@media print{ ._print_controls { display: none; } }",g='@media print, screen {body { margin:0; padding:0; line-height: 1.4; word-spacing: 1.1pt; letter-spacing: 0.2pt;font-family: Garamond, "Times New Roman", serif; color: #000; background: none; font-size: 12pt; }h1, h2, h3, h4, h5, h6 { font-family: Helvetica, Arial, sans-serif; }h1 { font-size: 19pt; }h2 { font-size: 17pt; }h3 { font-size: 15pt; }h4, h5, h6 { font-size: 12pt; }code { font: 10pt Courier, monospace; }blockquote { margin: 1.3em; padding: 1em; font-size: 10pt; }hr { background-color: #ccc; }img { float: left; margin: 1em 1.5em 1.5em 0; }a img { border: none; }table { margin: 1px; text-align: left; border-collapse: collapse; }th { border: 1px solid #333; font-weight: bold; }td { border: 1px solid #333; }th, td { padding: 4px 10px; }tfoot { font-style: italic; }caption { background: #fff; margin-bottom: 20px; text-align: left; }thead {display: table-header-group; }tr { page-break-inside: avoid; }} @media screen { body { padding: 20px; } }';b('",a.addEvent(b.querySelector("."+a.css.noGraphics),"click",a.removeGraphics),a.addEvent(b.querySelector("."+a.css.print),"click",a.print),a.addEvent(b.querySelector("."+a.css.undo),"click",a.undo),a.addEvent(b.querySelector("."+a.css.stylize),"click",a.stylize),a.addEvent(b.querySelector("."+a.css.close),"click",a.abort),a.addEvent(b.querySelector("."+a.css.keyboard),"click",a.keyboard),a.addEvent(document.querySelector("."+a.css.drag),"mousedown",a.dragInit),a.addEvent(b,"mouseup",a.docMouseUp)},bodyClick:function(b){if(b.preventDefault(),b.stopImmediatePropagation(),"BODY"!==b.target.nodeName&&!a.hasClass(b.target,a.css.controls)){var c,d,e=document.querySelector("."+a.css.hilite);if(b[a.keys.opposite]){if(c=a.getOpposite(e),d=c.length,!d)return!1}else c=[e];a.hide(c),csstricksPrintliminatorVars.history.push(c),a.clearSelection()}},bodyMouseover:function(b){a.hasClass(b.target,a.css.controls)||a.addClass(b.target,a.css.hilite)},removeHighlight:function(){var b,c=document.querySelectorAll("."+a.css.hilite),d=c.length;for(b=0;d>b;b++)a.removeClass(c[b],a.css.hilite)},bodyKeyUp:function(b){b.preventDefault(),b.which===a.keys.print&&a.print()},bodyKeyDown:function(b){b.preventDefault();var c,d,e,f,g,h=document.querySelectorAll("body")[0],i=document.querySelectorAll("."+a.css.hilite)[0],j=a.css.hidden,k=a.css.hilite;if(i)switch(g="BODY"===i.nodeName,b.which){case a.keys.parent1:case a.keys.parent2:!g&&i.parentNode&&(a.removeClass(i,k),a.addClass(i.parentNode,k));break;case a.keys.child1:case a.keys.child2:f=Array.prototype.filter.call(i.children,a.filterElements),f.length&&(a.removeClass(i,k),a.addClass(f[0],k));break;case a.keys.nextSib:e=a.getNext(i),!g&&e&&(a.removeClass(i,k),a.addClass(e,k));break;case a.keys.prevSib:e=a.getPrev(i),!g&&e&&(a.removeClass(i,k),a.addClass(e,k));break;case a.keys.hide:g||(a.addClass(i,j),a.addClass(i.parentNode,k),csstricksPrintliminatorVars.history.push(i))}else i=b.target,a.addClass(i,k);switch(c=window.getComputedStyle(h,null).getPropertyValue("font-size"),d=c.match(/[a-z]+/i)[0],b.which){case a.keys.fontUp:h.style.fontSize=parseFloat(c)+1+d;break;case a.keys.fontDown:h.style.fontSize=parseFloat(c)-1+d;break;case a.keys.fontReset:h.style.fontSize="";break;case a.keys.undo:a.undo();break;case a.keys.abort:a.abort()}},dragInit:function(){var b=a.drag;b.el=document.querySelector("."+a.css.wrap),b.elm[0]=b.pos[0]-b.el.offsetLeft,b.elm[1]=b.pos[1]-b.el.offsetTop,a.toggleSelection(!0)},docMouseMove:function(b){var c=a.drag;c.pos[0]=document.all?window.event.clientX:b.pageX,c.pos[1]=document.all?window.event.clientY:b.pageY,null!==a.drag.el&&(c.el.style.left=c.pos[0]-c.elm[0]+"px",c.el.style.top=c.pos[1]-c.elm[1]+"px")},docMouseUp:function(){a.drag.el=null,a.toggleSelection()},stopSelection:function(){return!1},clearSelection:function(){var a=window.getSelection?window.getSelection():document.selection;a&&(a.removeAllRanges?a.removeAllRanges():a.empty&&a.empty())},toggleSelection:function(b){var c=document.querySelector("body");b?(a.savedUnsel=c.getAttribute("unselectable"),c.setAttribute("unselectable","on"),a.addClass(c,a.css.noSelection),a.addEvent(c,"onselectstart",a.stopSelection)):(a.savedUnsel&&c.setAttribute("unselectable",a.savedUnsel),a.removeClass(c,a.css.noSelection),a.removeEvent(c,"onselectstart",a.stopSelection)),a.clearSelection()},removeGraphics:function(){if(!csstricksPrintliminatorVars.flags.removeGraphics){var b,c,d=[],e=document.querySelector("body"),f=e.querySelectorAll(a.noGraphicsSelectors),g=e.querySelectorAll("*:not(."+a.css.controls+")"),h=g.length;for(b=0;h>b;b++)c=window.getComputedStyle(g[b]).getPropertyValue("background-image"),c&&"none"!==c&&(d.push([g[b],c]),g[b].style.backgroundImage="none");a.removeHighlight(),a.hide(f),csstricksPrintliminatorVars.flags.removeGraphics=!0,csstricksPrintliminatorVars.history.push(function(){for(csstricksPrintliminatorVars.flags.removeGraphics=!1,a.show(f),h=d.length,b=0;h>b;b++)d[b][0].style.backgroundImage=d[b][1]})}},stylize:function(){if(!csstricksPrintliminatorVars.flags.stylize){var b,c=[],d=document.querySelector("body"),e=document.querySelectorAll('link[rel="stylesheet"], style'),f=document.querySelectorAll("body *:not(."+a.css.hidden+"):not(."+a.css.controls+")"),g=e.length;for(b=0;g>b;b++)e[b].id!==a.css.stylesheet&&(e[b].disabled=!0);Array.prototype.filter.call(f,function(a){var b=a.getAttribute("style");null!==b&&(a.removeAttribute("style"),c.push({el:a,style:b}))}),a.addClass(d,a.css.stylized),a.removeHighlight(),csstricksPrintliminatorVars.flags.stylize=!0,csstricksPrintliminatorVars.history.push(function(){csstricksPrintliminatorVars.flags.stylize=!1,a.removeClass(d,a.css.stylized);var b,f=e.length;for(b=0;f>b;b++)e[b].disabled=!1;for(f=c.length,b=0;f>b;b++)c[b].el.setAttribute("style",c[b].style)})}},print:function(){a.removeHighlight(),window.print()},undo:function(){var b=csstricksPrintliminatorVars.history.pop();b&&(a.removeHighlight(),"function"!=typeof b?a.show(b):b.call())},keyboard:function(){var b=document.querySelector("."+a.css.wrap),c=b.querySelector("iframe."+a.css.controls),d=c.contentWindow.document.body,e=d.querySelector("#"+a.css.keyboard),f=d.querySelector("."+a.css.keyboard),g=e.style.display,h="none"===g;a[h?"addClass":"removeClass"](f,"active"),e.style.display=h?"":"none",b.style.height=(h?a.keyboardOpen:a.keyboardClosed)+5+"px",c.style.height=(h?a.keyboardOpen:a.keyboardClosed)+5+"px",d.style.height=(h?a.keyboardOpen:a.keyboardClosed)+"px"},abort:function(){var b=document.querySelector("body");a.removeHighlight(),a.removeEvent(b,"click",a.bodyClick),a.removeEvent(b,"mouseover",a.bodyMouseover),a.removeEvent(b,"mouseout",a.removeHighlight),a.removeEvent(document,"keyup",a.bodyKeyUp),a.removeEvent(document,"keydown",a.bodyKeyDown),a.removeEvent(document,"mouseup",a.docMouseUp),a.removeEvent(document,"mousemove",a.docMouseMove),b.removeChild(document.querySelector("."+a.css.wrap))},filterElements:function(b){return b&&1===b.nodeType&&!a.ignoredElm.test(b.nodeName)&&!a.hasClass(b,a.css.controls)&&!(a.hasClass(b,a.css.hidden)||"none"===b.style.display)},getOpposite:function(b){for(var c,d=[];"BODY"!==b.nodeName;)c=a.getSiblings(b),d=d.concat(c),b=b.parentNode;return d},getSiblings:function(b){for(var c=[],d=b.parentNode.firstChild;d;d=d.nextSibling)d!==b&&a.filterElements(d)&&c.push(d);return c},getNext:function(b){for(;b=b.nextSibling;)if(b&&a.filterElements(b))return b;return null},getPrev:function(b){for(;b=b.previousSibling;)if(b&&a.filterElements(b))return b;return null},hide:function(b){if(b){var c,d=b.length;if("undefined"!=typeof d)for(c=0;d>c;c++)a.addClass(b[c],a.css.hidden);else a.addClass(b,a.css.hidden)}},show:function(b){if(b){var c,d=b.length;if("undefined"!=typeof d)for(c=0;d>c;c++)a.removeClass(b[c],a.css.hidden);else a.removeClass(b,a.css.hidden)}},addClass:function(b,c){b.classList?b.classList.add(c):a.hasClass(b,c)||(b.className+=" "+c)},removeClass:function(a,b){a.classList?a.classList.remove(b):a.className=a.className.replace(new RegExp("\\b"+b+"\\b","g"),"")},hasClass:function(a,b){return a.classList?a.classList.contains(b):new RegExp("\\b"+b+"\\b").test(a.className)},addEvent:function(a,b,c){a.attachEvent?a.attachEvent("on"+b,c):a.addEventListener(b,c)},removeEvent:function(a,b,c){a.detachEvent?a.detachEvent("on"+b,c):a.removeEventListener(b,c)}};window.csstricksPrintliminator=function(){a.init()}}(); \ No newline at end of file -- cgit v1.2.3