first commit
This commit is contained in:
196
WebRoot/node_modules/pdf/jsPDF-1.3.2/libs/polyfill.js
generated
vendored
Normal file
196
WebRoot/node_modules/pdf/jsPDF-1.3.2/libs/polyfill.js
generated
vendored
Normal file
@ -0,0 +1,196 @@
|
||||
/**
|
||||
* JavaScript Polyfill functions for jsPDF
|
||||
* Collected from public resources by
|
||||
* https://github.com/diegocr
|
||||
*/
|
||||
|
||||
(function (global) {
|
||||
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||
|
||||
if (typeof global.btoa === 'undefined') {
|
||||
global.btoa = function(data) {
|
||||
// discuss at: http://phpjs.org/functions/base64_encode/
|
||||
// original by: Tyler Akins (http://rumkin.com)
|
||||
// improved by: Bayron Guevara
|
||||
// improved by: Thunder.m
|
||||
// improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||||
// improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||||
// improved by: Rafal Kukawski (http://kukawski.pl)
|
||||
// bugfixed by: Pellentesque Malesuada
|
||||
// example 1: base64_encode('Kevin van Zonneveld');
|
||||
// returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
|
||||
|
||||
var o1,o2,o3,h1,h2,h3,h4,bits,i = 0,ac = 0,enc = '',tmp_arr = [];
|
||||
|
||||
if (!data) {
|
||||
return data;
|
||||
}
|
||||
|
||||
do { // pack three octets into four hexets
|
||||
o1 = data.charCodeAt(i++);
|
||||
o2 = data.charCodeAt(i++);
|
||||
o3 = data.charCodeAt(i++);
|
||||
|
||||
bits = o1 << 16 | o2 << 8 | o3;
|
||||
|
||||
h1 = bits >> 18 & 0x3f;
|
||||
h2 = bits >> 12 & 0x3f;
|
||||
h3 = bits >> 6 & 0x3f;
|
||||
h4 = bits & 0x3f;
|
||||
|
||||
// use hexets to index into b64, and append result to encoded string
|
||||
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
|
||||
} while (i < data.length);
|
||||
|
||||
enc = tmp_arr.join('');
|
||||
|
||||
var r = data.length % 3;
|
||||
|
||||
return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);
|
||||
};
|
||||
}
|
||||
|
||||
if (typeof global.atob === 'undefined') {
|
||||
global.atob = function(data) {
|
||||
// discuss at: http://phpjs.org/functions/base64_decode/
|
||||
// original by: Tyler Akins (http://rumkin.com)
|
||||
// improved by: Thunder.m
|
||||
// improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||||
// improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||||
// input by: Aman Gupta
|
||||
// input by: Brett Zamir (http://brett-zamir.me)
|
||||
// bugfixed by: Onno Marsman
|
||||
// bugfixed by: Pellentesque Malesuada
|
||||
// bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||||
// example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA==');
|
||||
// returns 1: 'Kevin van Zonneveld'
|
||||
|
||||
var o1,o2,o3,h1,h2,h3,h4,bits,i = 0,ac = 0,dec = '',tmp_arr = [];
|
||||
|
||||
if (!data) {
|
||||
return data;
|
||||
}
|
||||
|
||||
data += '';
|
||||
|
||||
do { // unpack four hexets into three octets using index points in b64
|
||||
h1 = b64.indexOf(data.charAt(i++));
|
||||
h2 = b64.indexOf(data.charAt(i++));
|
||||
h3 = b64.indexOf(data.charAt(i++));
|
||||
h4 = b64.indexOf(data.charAt(i++));
|
||||
|
||||
bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;
|
||||
|
||||
o1 = bits >> 16 & 0xff;
|
||||
o2 = bits >> 8 & 0xff;
|
||||
o3 = bits & 0xff;
|
||||
|
||||
if (h3 == 64) {
|
||||
tmp_arr[ac++] = String.fromCharCode(o1);
|
||||
} else if (h4 == 64) {
|
||||
tmp_arr[ac++] = String.fromCharCode(o1, o2);
|
||||
} else {
|
||||
tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
|
||||
}
|
||||
} while (i < data.length);
|
||||
|
||||
dec = tmp_arr.join('');
|
||||
|
||||
return dec;
|
||||
};
|
||||
}
|
||||
|
||||
if (!Array.prototype.map) {
|
||||
Array.prototype.map = function(fun /*, thisArg */) {
|
||||
if (this === void 0 || this === null || typeof fun !== "function")
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this), len = t.length >>> 0, res = new Array(len);
|
||||
var thisArg = arguments.length > 1 ? arguments[1] : void 0;
|
||||
for (var i = 0; i < len; i++) {
|
||||
// NOTE: Absolute correctness would demand Object.defineProperty
|
||||
// be used. But this method is fairly new, and failure is
|
||||
// possible only if Object.prototype or Array.prototype
|
||||
// has a property |i| (very unlikely), so use a less-correct
|
||||
// but more portable alternative.
|
||||
if (i in t)
|
||||
res[i] = fun.call(thisArg, t[i], i, t);
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
if(!Array.isArray) {
|
||||
Array.isArray = function(arg) {
|
||||
return Object.prototype.toString.call(arg) === '[object Array]';
|
||||
};
|
||||
}
|
||||
|
||||
if (!Array.prototype.forEach) {
|
||||
Array.prototype.forEach = function(fun, thisArg) {
|
||||
"use strict";
|
||||
|
||||
if (this === void 0 || this === null || typeof fun !== "function")
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this), len = t.length >>> 0;
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (i in t)
|
||||
fun.call(thisArg, t[i], i, t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
if (!Object.keys) {
|
||||
Object.keys = (function () {
|
||||
'use strict';
|
||||
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
||||
hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
|
||||
dontEnums = ['toString','toLocaleString','valueOf','hasOwnProperty',
|
||||
'isPrototypeOf','propertyIsEnumerable','constructor'],
|
||||
dontEnumsLength = dontEnums.length;
|
||||
|
||||
return function (obj) {
|
||||
if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
|
||||
throw new TypeError();
|
||||
}
|
||||
var result = [], prop, i;
|
||||
|
||||
for (prop in obj) {
|
||||
if (hasOwnProperty.call(obj, prop)) {
|
||||
result.push(prop);
|
||||
}
|
||||
}
|
||||
|
||||
if (hasDontEnumBug) {
|
||||
for (i = 0; i < dontEnumsLength; i++) {
|
||||
if (hasOwnProperty.call(obj, dontEnums[i])) {
|
||||
result.push(dontEnums[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
}());
|
||||
}
|
||||
|
||||
if (!String.prototype.trim) {
|
||||
String.prototype.trim = function () {
|
||||
return this.replace(/^\s+|\s+$/g, '');
|
||||
};
|
||||
}
|
||||
if (!String.prototype.trimLeft) {
|
||||
String.prototype.trimLeft = function() {
|
||||
return this.replace(/^\s+/g, "");
|
||||
};
|
||||
}
|
||||
if (!String.prototype.trimRight) {
|
||||
String.prototype.trimRight = function() {
|
||||
return this.replace(/\s+$/g, "");
|
||||
};
|
||||
}
|
||||
|
||||
})(typeof self !== "undefined" && self || typeof window !== "undefined" && window || this);
|
||||
Reference in New Issue
Block a user