Join our webinar on Wednesday, June 26, at 1pm EDTHow Chia Mitigates Risk in the Crypto Industry.Register
Socket
Socket
Sign inDemoInstall

ctx-polyfill

Package Overview
Dependencies
0
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.1.2 to 1.1.3

85

ctx-polyfill.js

@@ -6,29 +6,38 @@ (function() {

if(CanvasRenderingContext2D.useSvgMatrix === void 0) {
CanvasRenderingContext2D.useSvgMatrix = false;
if(CanvasRenderingContext2D.useSVGMatrix === void 0) {
CanvasRenderingContext2D.useSVGMatrix = false;
}
CanvasRenderingContext2D.arrayToSVGMatrix = function(array) {
if(array instanceof SVGMatrix) return array;
var matrix = document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGMatrix();
matrix.a = array[0];
matrix.b = array[1];
matrix.c = array[2];
matrix.d = array[3];
matrix.e = array[4];
matrix.f = array[5];
return matrix;
CanvasRenderingContext2D.arrayToSVGMatrix = function(matrix) {
if(matrix instanceof SVGMatrix) {
return matrix;
} else if(matrix instanceof Array) {
var _matrix = document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGMatrix();
_matrix.a = array[0];
_matrix.b = array[1];
_matrix.c = array[2];
_matrix.d = array[3];
_matrix.e = array[4];
_matrix.f = array[5];
return _matrix;
} else {
throw new Error('Matrix is not an Array');
}
};
CanvasRenderingContext2D.svgMatrixToArray = function(matrix) {
if(matrix instanceof Array) return matrix;
if(!(matrix instanceof SVGMatrix)) throw new Error('Matrix is not a SVGMatrix');
return [
matrix.a,
matrix.b,
matrix.c,
matrix.d,
matrix.e,
matrix.f
];
if(matrix instanceof Array) {
return matrix;
} else if(matrix instanceof SVGMatrix) {
return [
matrix.a,
matrix.b,
matrix.c,
matrix.d,
matrix.e,
matrix.f
];
} else {
throw new Error('Matrix is not a SVGMatrix');
}
};

@@ -59,8 +68,6 @@

get: function() {
return CanvasRenderingContext2D.useSvgMatrix ?
CanvasRenderingContext2D.arrayToSVGMatrix(this.mozCurrentTransform) : this.mozCurrentTransform;
return this.mozCurrentTransform;
},
set: function(matrix) {
this.mozCurrentTransform = CanvasRenderingContext2D.useSvgMatrix ?
CanvasRenderingContext2D.svgMatrixToArray(matrix) : matrix;
this.mozCurrentTransform = matrix;
},

@@ -87,8 +94,5 @@ enumerable: true,

get: function() {
return CanvasRenderingContext2D.useSvgMatrix ?
CanvasRenderingContext2D.arrayToSVGMatrix(this._transformMatrix) : this._transformMatrix;
return this._transformMatrix;
},
set: function(matrix) {
matrix = CanvasRenderingContext2D.useSvgMatrix ?
CanvasRenderingContext2D.svgMatrixToArray(matrix) : matrix;
this._transformMatrix = matrix;

@@ -190,2 +194,20 @@ this.setTransform(

// allow conversion from arrayToSVGMatrix or svgMatrixToArray according to useSVGMatrix
var currentTransform = Object.getOwnPropertyDescriptor(CanvasRenderingContext2D.prototype, 'currentTransform');
var currentTransformIsSVGMatrix = (document.createElement('canvas').getContext('2d').currentTransform instanceof SVGMatrix);
Object.defineProperty(canvasRenderingContext2DPrototype, 'currentTransform', {
get: function() {
var value = currentTransform.get.call(this);
return CanvasRenderingContext2D.useSVGMatrix ?
CanvasRenderingContext2D.arrayToSVGMatrix(value) : CanvasRenderingContext2D.svgMatrixToArray(value);
},
set: function(matrix) {
currentTransform.set.call(this, currentTransformIsSVGMatrix ?
CanvasRenderingContext2D.svgMatrixToArray(matrix) : CanvasRenderingContext2D.svgMatrixToArray(matrix));
},
enumerable: true,
configurable: true
});
if(!('imageSmoothingEnabled' in canvasRenderingContext2DPrototype)) {

@@ -345,4 +367,3 @@ Object.defineProperty(canvasRenderingContext2DPrototype, 'imageSmoothingEnabled', {

type: 'transform',
arguments: CanvasRenderingContext2D.useSvgMatrix ?
CanvasRenderingContext2D.svgMatrixToArray(transform) : transform
arguments: CanvasRenderingContext2D.svgMatrixToArray(transform)
});

@@ -349,0 +370,0 @@ }

@@ -1,1 +0,1 @@

(function(){if(CanvasRenderingContext2D.useSvgMatrix===void 0){CanvasRenderingContext2D.useSvgMatrix=false}CanvasRenderingContext2D.arrayToSVGMatrix=function(t){if(t instanceof SVGMatrix)return t;var r=document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGMatrix();r.a=t[0];r.b=t[1];r.c=t[2];r.d=t[3];r.e=t[4];r.f=t[5];return r};CanvasRenderingContext2D.svgMatrixToArray=function(t){if(t instanceof Array)return t;if(!(t instanceof SVGMatrix))throw new Error("Matrix is not a SVGMatrix");return[t.a,t.b,t.c,t.d,t.e,t.f]}})();(function(){var t=CanvasRenderingContext2D.prototype;var r=HTMLCanvasElement.prototype;if(!("resetTransform"in t)){t.resetTransform=function(){this.setTransform(1,0,0,1,0,0)}}if(!("currentTransform"in t)){if("mozCurrentTransform"in t){Object.defineProperty(t,"currentTransform",{get:function(){return CanvasRenderingContext2D.useSvgMatrix?CanvasRenderingContext2D.arrayToSVGMatrix(this.mozCurrentTransform):this.mozCurrentTransform},set:function(t){this.mozCurrentTransform=CanvasRenderingContext2D.useSvgMatrix?CanvasRenderingContext2D.svgMatrixToArray(t):t},enumerable:true,configurable:true})}else{var e=r.getContext;r.getContext=function(t,r){var a=e.call(this,t,r);switch(t){case"2d":Object.defineProperties(a,{_transformStack:{value:[],configurable:true,writable:true},_transformMatrix:{value:[1,0,0,1,0,0],configurable:true,writable:true}});break}return a};Object.defineProperty(t,"currentTransform",{get:function(){return CanvasRenderingContext2D.useSvgMatrix?CanvasRenderingContext2D.arrayToSVGMatrix(this._transformMatrix):this._transformMatrix},set:function(t){t=CanvasRenderingContext2D.useSvgMatrix?CanvasRenderingContext2D.svgMatrixToArray(t):t;this._transformMatrix=t;this.setTransform(t[0],t[1],t[2],t[3],t[4],t[5])},enumerable:true,configurable:true});var a=t.translate;t.translate=function(t,r){var e=this._transformMatrix;e[4]=e[0]*t+e[2]*r+e[4];e[5]=e[1]*t+e[3]*r+e[5];a.call(this,t,r)};var n=t.scale;t.scale=function(t,r){var e=this._transformMatrix;e[0]*=t;e[1]*=t;e[2]*=r;e[3]*=r;n.call(this,t,r)};var i=t.rotate;t.rotate=function(t){var r=Math.cos(t);var e=Math.sin(t);var a=this._transformMatrix;this._transformMatrix=[a[0]*r+a[2]*e,a[1]*r+a[3]*e,a[0]*-e+a[2]*r,a[1]*-e+a[3]*r,a[4],a[5]];i.call(this,t)};var o=t.transform;t.transform=function(t,r,e,a,n,i){var s=this._transformMatrix;this._transformMatrix=[s[0]*t+s[2]*r,s[1]*t+s[3]*r,s[0]*e+s[2]*a,s[1]*e+s[3]*a,s[0]*n+s[2]*i+s[4],s[1]*n+s[3]*i+s[5]];o.call(this,t,r,e,a,n,i)};var s=t.setTransform;t.setTransform=function(t,r,e,a,n,i){this._transformMatrix=[t,r,e,a,n,i];s.call(this,t,r,e,a,n,i)};var f=t.resetTransform;t.resetTransform=function(){this._transformMatrix=[1,0,0,1,0,0];f.call(this)};var l=t.save;t.save=function(){this._transformStack.push(this._transformMatrix);this._transformMatrix=this._transformMatrix.slice(0,6);l.call(this)};var h=t.restore;t.restore=function(){var t=this._transformStack.pop();if(t){this._transformMatrix=t}h.call(this)}}}if(!("imageSmoothingEnabled"in t)){Object.defineProperty(t,"imageSmoothingEnabled",{get:function(){if(this.mozImageSmoothingEnabled!==void 0){return this.mozImageSmoothingEnabled}else if(this.webkitImageSmoothingEnabled!==void 0){return this.webkitImageSmoothingEnabled}else if(this.msImageSmoothingEnabled!==void 0){return this.msImageSmoothingEnabled}else{return true}},set:function(t){if(this.mozImageSmoothingEnabled!==void 0){this.mozImageSmoothingEnabled=t}else if(this.webkitImageSmoothingEnabled!==void 0){this.webkitImageSmoothingEnabled=t}else if(this.msImageSmoothingEnabled!==void 0){this.msImageSmoothingEnabled=t}},enumerable:true,configurable:true})}if(!("ellipse"in t)){t.ellipse=function(t,r,e,a,n,i,o,s){this.save();this.translate(t,r);this.rotate(n);this.scale(e,a);this.arc(0,0,1,i,o,s);this.restore()}}})();(function(){if(!("Path2D"in window)||!("addPath"in window.Path2D.prototype)){var t=window.Path2D;var r=function(e){Object.defineProperty(this,"_operations",{value:[],configurable:true,writable:true});if(e instanceof r){if(e._original&&t){Object.defineProperty(this,"_original",{value:new t(e._original),configurable:true,writable:true});this._operations=e._operations.slice(0)}else{this.addPath(e)}}else if(t){Object.defineProperty(this,"_original",{value:new t(e),configurable:true,writable:true})}};window.Path2D=r;var e=r.prototype;["arc","arcTo","bezierCurveTo","closePath","ellipse","lineTo","moveTo","quadraticCurveTo","rect"].forEach(function(r){e[r]=function(){this._operations.push({type:r,arguments:Array.prototype.slice.call(arguments,0)});if(this._original)t.prototype[r].apply(this._original,arguments)}});var a=CanvasRenderingContext2D.prototype;["fill","stroke","clip","isPointInPath","isPointInStroke"].forEach(function(t){var e=a[t];a[t]=function(t){if(t instanceof r){if(t._original){e.apply(this,[t._original].concat(Array.prototype.slice.call(arguments,1)))}else{this.beginPath();var n;for(var i=0,o=t._operations.length;i<o;i++){n=t._operations[i];a[n.type].apply(this,n.arguments)}e.apply(this,Array.prototype.slice.call(arguments,1))}}else{e.apply(this,arguments)}}});if(!("addPath"in e)){e.addPath=function(t,r){if(r!==void 0){if(t._original)delete t._original;this._operations.push({type:"save",arguments:[]});this._operations.push({type:"transform",arguments:CanvasRenderingContext2D.useSvgMatrix?CanvasRenderingContext2D.svgMatrixToArray(r):r})}var a;for(var n=0,i=t._operations.length;n<i;n++){a=t._operations[n];e[a.type].apply(this,a.arguments)}if(r!==void 0){this._operations.push({type:"restore",arguments:[]})}}}}})();
(function(){if(CanvasRenderingContext2D.useSVGMatrix===void 0){CanvasRenderingContext2D.useSVGMatrix=false}CanvasRenderingContext2D.arrayToSVGMatrix=function(t){if(t instanceof SVGMatrix){return t}else if(t instanceof Array){var r=document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGMatrix();r.a=array[0];r.b=array[1];r.c=array[2];r.d=array[3];r.e=array[4];r.f=array[5];return r}else{throw new Error("Matrix is not an Array")}};CanvasRenderingContext2D.svgMatrixToArray=function(t){if(t instanceof Array){return t}else if(t instanceof SVGMatrix){return[t.a,t.b,t.c,t.d,t.e,t.f]}else{throw new Error("Matrix is not a SVGMatrix")}}})();(function(){var t=CanvasRenderingContext2D.prototype;var r=HTMLCanvasElement.prototype;if(!("resetTransform"in t)){t.resetTransform=function(){this.setTransform(1,0,0,1,0,0)}}if(!("currentTransform"in t)){if("mozCurrentTransform"in t){Object.defineProperty(t,"currentTransform",{get:function(){return this.mozCurrentTransform},set:function(t){this.mozCurrentTransform=t},enumerable:true,configurable:true})}else{var e=r.getContext;r.getContext=function(t,r){var a=e.call(this,t,r);switch(t){case"2d":Object.defineProperties(a,{_transformStack:{value:[],configurable:true,writable:true},_transformMatrix:{value:[1,0,0,1,0,0],configurable:true,writable:true}});break}return a};Object.defineProperty(t,"currentTransform",{get:function(){return this._transformMatrix},set:function(t){this._transformMatrix=t;this.setTransform(t[0],t[1],t[2],t[3],t[4],t[5])},enumerable:true,configurable:true});var a=t.translate;t.translate=function(t,r){var e=this._transformMatrix;e[4]=e[0]*t+e[2]*r+e[4];e[5]=e[1]*t+e[3]*r+e[5];a.call(this,t,r)};var n=t.scale;t.scale=function(t,r){var e=this._transformMatrix;e[0]*=t;e[1]*=t;e[2]*=r;e[3]*=r;n.call(this,t,r)};var i=t.rotate;t.rotate=function(t){var r=Math.cos(t);var e=Math.sin(t);var a=this._transformMatrix;this._transformMatrix=[a[0]*r+a[2]*e,a[1]*r+a[3]*e,a[0]*-e+a[2]*r,a[1]*-e+a[3]*r,a[4],a[5]];i.call(this,t)};var o=t.transform;t.transform=function(t,r,e,a,n,i){var s=this._transformMatrix;this._transformMatrix=[s[0]*t+s[2]*r,s[1]*t+s[3]*r,s[0]*e+s[2]*a,s[1]*e+s[3]*a,s[0]*n+s[2]*i+s[4],s[1]*n+s[3]*i+s[5]];o.call(this,t,r,e,a,n,i)};var s=t.setTransform;t.setTransform=function(t,r,e,a,n,i){this._transformMatrix=[t,r,e,a,n,i];s.call(this,t,r,e,a,n,i)};var f=t.resetTransform;t.resetTransform=function(){this._transformMatrix=[1,0,0,1,0,0];f.call(this)};var l=t.save;t.save=function(){this._transformStack.push(this._transformMatrix);this._transformMatrix=this._transformMatrix.slice(0,6);l.call(this)};var c=t.restore;t.restore=function(){var t=this._transformStack.pop();if(t){this._transformMatrix=t}c.call(this)}}}var u=Object.getOwnPropertyDescriptor(CanvasRenderingContext2D.prototype,"currentTransform");var h=document.createElement("canvas").getContext("2d").currentTransform instanceof SVGMatrix;Object.defineProperty(t,"currentTransform",{get:function(){var t=u.get.call(this);return CanvasRenderingContext2D.useSVGMatrix?CanvasRenderingContext2D.arrayToSVGMatrix(t):CanvasRenderingContext2D.svgMatrixToArray(t)},set:function(t){u.set.call(this,h?CanvasRenderingContext2D.svgMatrixToArray(t):CanvasRenderingContext2D.svgMatrixToArray(t))},enumerable:true,configurable:true});if(!("imageSmoothingEnabled"in t)){Object.defineProperty(t,"imageSmoothingEnabled",{get:function(){if(this.mozImageSmoothingEnabled!==void 0){return this.mozImageSmoothingEnabled}else if(this.webkitImageSmoothingEnabled!==void 0){return this.webkitImageSmoothingEnabled}else if(this.msImageSmoothingEnabled!==void 0){return this.msImageSmoothingEnabled}else{return true}},set:function(t){if(this.mozImageSmoothingEnabled!==void 0){this.mozImageSmoothingEnabled=t}else if(this.webkitImageSmoothingEnabled!==void 0){this.webkitImageSmoothingEnabled=t}else if(this.msImageSmoothingEnabled!==void 0){this.msImageSmoothingEnabled=t}},enumerable:true,configurable:true})}if(!("ellipse"in t)){t.ellipse=function(t,r,e,a,n,i,o,s){this.save();this.translate(t,r);this.rotate(n);this.scale(e,a);this.arc(0,0,1,i,o,s);this.restore()}}})();(function(){if(!("Path2D"in window)||!("addPath"in window.Path2D.prototype)){var t=window.Path2D;var r=function(e){Object.defineProperty(this,"_operations",{value:[],configurable:true,writable:true});if(e instanceof r){if(e._original&&t){Object.defineProperty(this,"_original",{value:new t(e._original),configurable:true,writable:true});this._operations=e._operations.slice(0)}else{this.addPath(e)}}else if(t){Object.defineProperty(this,"_original",{value:new t(e),configurable:true,writable:true})}};window.Path2D=r;var e=r.prototype;["arc","arcTo","bezierCurveTo","closePath","ellipse","lineTo","moveTo","quadraticCurveTo","rect"].forEach(function(r){e[r]=function(){this._operations.push({type:r,arguments:Array.prototype.slice.call(arguments,0)});if(this._original)t.prototype[r].apply(this._original,arguments)}});var a=CanvasRenderingContext2D.prototype;["fill","stroke","clip","isPointInPath","isPointInStroke"].forEach(function(t){var e=a[t];a[t]=function(t){if(t instanceof r){if(t._original){e.apply(this,[t._original].concat(Array.prototype.slice.call(arguments,1)))}else{this.beginPath();var n;for(var i=0,o=t._operations.length;i<o;i++){n=t._operations[i];a[n.type].apply(this,n.arguments)}e.apply(this,Array.prototype.slice.call(arguments,1))}}else{e.apply(this,arguments)}}});if(!("addPath"in e)){e.addPath=function(t,r){if(r!==void 0){if(t._original)delete t._original;this._operations.push({type:"save",arguments:[]});this._operations.push({type:"transform",arguments:CanvasRenderingContext2D.svgMatrixToArray(r)})}var a;for(var n=0,i=t._operations.length;n<i;n++){a=t._operations[n];e[a.type].apply(this,a.arguments)}if(r!==void 0){this._operations.push({type:"restore",arguments:[]})}}}}})();
{
"name": "ctx-polyfill",
"version": "1.1.2",
"version": "1.1.3",
"description": "Polyfill CanvasRenderingContext2D and Path2D (currentTransform, resetTransform, imageSmoothingEnabled, etc...)",

@@ -5,0 +5,0 @@ "main": "ctx-polyfill.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc