From 6891f79753212fbde5d64072c9b11e49efcd86ee Mon Sep 17 00:00:00 2001 From: Nick Desaulniers Date: Fri, 18 Sep 2015 10:16:34 -0700 Subject: [PATCH 1/3] mark all files as non executable --- Gruntfile.js | 0 package.json | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 Gruntfile.js mode change 100755 => 100644 package.json diff --git a/Gruntfile.js b/Gruntfile.js old mode 100755 new mode 100644 diff --git a/package.json b/package.json old mode 100755 new mode 100644 From c722fd35200c99d27a614a72a037aa7ba3639dcb Mon Sep 17 00:00:00 2001 From: Nick Desaulniers Date: Fri, 18 Sep 2015 10:36:52 -0700 Subject: [PATCH 2/3] allow this to be used w/ Browserify --- CanvasTextWrapper.js | 10 +++++++--- CanvasTextWrapper.min.js | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CanvasTextWrapper.js b/CanvasTextWrapper.js index f29b57b..34e72de 100644 --- a/CanvasTextWrapper.js +++ b/CanvasTextWrapper.js @@ -5,7 +5,7 @@ * Copyright (c) 2014 Vadim Namniak */ -(function() { +(function(root) { 'use strict'; var EL_WIDTH,EL_HEIGHT,MAX_TXT_WIDTH,MAX_TXT_HEIGHT; @@ -284,5 +284,9 @@ } }; - window.CanvasTextWrapper = CanvasTextWrapper; -})(); \ No newline at end of file + if ('module' in root && 'exports' in module) { + module.exports = CanvasTextWrapper; + } else { + root.CanvasTextWrapper = CanvasTextWrapper; + } +})(this); diff --git a/CanvasTextWrapper.min.js b/CanvasTextWrapper.min.js index 2fd78d4..2ee425e 100644 --- a/CanvasTextWrapper.min.js +++ b/CanvasTextWrapper.min.js @@ -4,4 +4,4 @@ * MIT License (http://www.opensource.org/licenses/mit-license.html) * Copyright (c) 2014 Vadim Namniak */ -!function(){"use strict";var a,b,c,d,e={font:"18px Arial, sans-serif",sizeToFill:!1,lineHeight:1,allowNewLine:!0,lineBreak:"auto",textAlign:"left",verticalAlign:"top",justifyLines:!1,paddingX:0,paddingY:0,fitParent:!1,strokeText:!1},f=function(g,h,i){if(!(this instanceof f))return new f(g,h,i);this.canvas=g,this.text=h,this.context=this.canvas.getContext("2d"),this.context.font=this.font,this.context.textBaseline="bottom";for(var j in e)e.hasOwnProperty(j)&&(this[j]=i&&i[j]?i[j]:e[j]);a=this.fitParent===!1?this.canvas.width:this.canvas.parentNode.clientWidth,b=this.fitParent===!1?this.canvas.height:this.canvas.parentNode.clientHeight,c=a-2*this.paddingX,d=b-2*this.paddingY,this._init()};f.prototype={_init:function(){this.fontSize=this.font.match(/\d+(px|em|\%)/g)?+this.font.match(/\d+(px|em|\%)/g)[0].match(/\d+/g):18,this.textBlockHeight=0,this.lines=[],this.newLineIndexes=[],this.textPos={x:0,y:0},this._setFont(this.fontSize),this._setLineHeight(),this._validate(),this._render()},_render:function(){if(this.sizeToFill){var a=this.text.trim().split(/\s+/).length,b=0;do this._setFont(++b),this.lineHeight=this.fontSize,this._wrap();while(this.textBlockHeightc){for(var h=0;this.context.measureText(b+a[g][h]).width<=c&&ha)&&(a=c,b=d);var e,f,g,h,i,j=" ";for(d=0;d=e))){this.lines[d]=this.lines[d].trim().split(/\s+/).join(j),f=this.context.measureText(j).width,g=(a-this.context.measureText(this.lines[d]).width)/f,h=g/(e-1),i="";for(var k=0;h>k;k++)i+=j;this.lines[d]=this.lines[d].trim().split(j).join(i)}},_drawText:function(){for(var a=0;ad){for(var h=0;this.context.measureText(b+a[g][h]).width<=d&&ha)&&(a=c,b=d);var e,f,g,h,i,j=" ";for(d=0;d=e))){this.lines[d]=this.lines[d].trim().split(/\s+/).join(j),f=this.context.measureText(j).width,g=(a-this.context.measureText(this.lines[d]).width)/f,h=g/(e-1),i="";for(var k=0;h>k;k++)i+=j;this.lines[d]=this.lines[d].trim().split(j).join(i)}},_drawText:function(){for(var a=0;a Date: Fri, 18 Sep 2015 10:37:09 -0700 Subject: [PATCH 3/3] add a simple example, also for testing purposes Fixes #8 --- example.html | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 example.html diff --git a/example.html b/example.html new file mode 100644 index 0000000..1401c8c --- /dev/null +++ b/example.html @@ -0,0 +1,18 @@ + + + + + + + + + + +