UNPKG

simple-frame-unit

Version:

基于vue2 研发的与simple-data后端配合使用的组件

1,671 lines (1,408 loc) 356 kB
((typeof self !== 'undefined' ? self : this)["webpackJsonpsimple_frame_unit"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpsimple_frame_unit"] || []).push([[1],{ /***/ "0075": /***/ (function(module, exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__("9b79"); var safeGetBuiltIn = __webpack_require__("5fe0"); var bind = __webpack_require__("a151"); var macrotask = __webpack_require__("cbc4").set; var Queue = __webpack_require__("058f"); var IS_IOS = __webpack_require__("3c0b"); var IS_IOS_PEBBLE = __webpack_require__("dcd0"); var IS_WEBOS_WEBKIT = __webpack_require__("5b2a"); var IS_NODE = __webpack_require__("6b59"); var MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver; var document = globalThis.document; var process = globalThis.process; var Promise = globalThis.Promise; var microtask = safeGetBuiltIn('queueMicrotask'); var notify, toggle, node, promise, then; // modern engines have queueMicrotask method if (!microtask) { var queue = new Queue(); var flush = function () { var parent, fn; if (IS_NODE && (parent = process.domain)) parent.exit(); while (fn = queue.get()) try { fn(); } catch (error) { if (queue.head) notify(); throw error; } if (parent) parent.enter(); }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { toggle = true; node = document.createTextNode(''); new MutationObserver(flush).observe(node, { characterData: true }); notify = function () { node.data = toggle = !toggle; }; // environments with maybe non-completely correct, but existent Promise } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { // Promise.resolve without an argument throws an error in LG WebOS 2 promise = Promise.resolve(undefined); // workaround of WebKit ~ iOS Safari 10.1 bug promise.constructor = Promise; then = bind(promise.then, promise); notify = function () { then(flush); }; // Node.js without promises } else if (IS_NODE) { notify = function () { process.nextTick(flush); }; // for other environments - macrotask based on: // - setImmediate // - MessageChannel // - window.postMessage // - onreadystatechange // - setTimeout } else { // `webpack` dev server bug on IE global methods - use bind(fn, global) macrotask = bind(macrotask, globalThis); notify = function () { macrotask(flush); }; } microtask = function (fn) { if (!queue.head) notify(); queue.add(fn); }; } module.exports = microtask; /***/ }), /***/ "02de": /***/ (function(module, exports, __webpack_require__) { "use strict"; var PROPER_FUNCTION_NAME = __webpack_require__("00e3").PROPER; var defineBuiltIn = __webpack_require__("ca12"); var anObject = __webpack_require__("f671"); var $toString = __webpack_require__("a8e0"); var fails = __webpack_require__("e967"); var getRegExpFlags = __webpack_require__("8d16"); var TO_STRING = 'toString'; var RegExpPrototype = RegExp.prototype; var nativeToString = RegExpPrototype[TO_STRING]; var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); // FF44- RegExp#toString has a wrong name var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; // `RegExp.prototype.toString` method // https://tc39.es/ecma262/#sec-regexp.prototype.tostring if (NOT_GENERIC || INCORRECT_NAME) { defineBuiltIn(RegExpPrototype, TO_STRING, function toString() { var R = anObject(this); var pattern = $toString(R.source); var flags = $toString(getRegExpFlags(R)); return '/' + pattern + '/' + flags; }, { unsafe: true }); } /***/ }), /***/ "058f": /***/ (function(module, exports, __webpack_require__) { "use strict"; var Queue = function () { this.head = null; this.tail = null; }; Queue.prototype = { add: function (item) { var entry = { item: item, next: null }; var tail = this.tail; if (tail) tail.next = entry; else this.head = entry; this.tail = entry; }, get: function () { var entry = this.head; if (entry) { var next = this.head = entry.next; if (next === null) this.tail = null; return entry.item; } } }; module.exports = Queue; /***/ }), /***/ "065f": /***/ (function(module, exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__("9b79"); module.exports = globalThis.Promise; /***/ }), /***/ "069c": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export BlurStack */ /* unused harmony export canvasRGB */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return processCanvasRGBA; }); /* unused harmony export image */ /* unused harmony export imageDataRGB */ /* unused harmony export imageDataRGBA */ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function (obj) { return typeof obj; }; } else { _typeof = function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /* eslint-disable no-bitwise -- used for calculations */ /* eslint-disable unicorn/prefer-query-selector -- aiming at backward-compatibility */ /** * StackBlur - a fast almost Gaussian Blur For Canvas * * In case you find this class useful - especially in commercial projects - * I am not totally unhappy for a small donation to my PayPal account * mario@quasimondo.de * * Or support me on flattr: * {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}. * * @module StackBlur * @author Mario Klingemann * Contact: mario@quasimondo.com * Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html} * Twitter: @quasimondo * * @copyright (c) 2010 Mario Klingemann * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ var mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259]; var shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24]; /** * @param {string|HTMLImageElement} img * @param {string|HTMLCanvasElement} canvas * @param {Float} radius * @param {boolean} blurAlphaChannel * @param {boolean} useOffset * @param {boolean} skipStyles * @returns {undefined} */ function processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) { if (typeof img === 'string') { img = document.getElementById(img); } if (!img || Object.prototype.toString.call(img).slice(8, -1) === 'HTMLImageElement' && !('naturalWidth' in img)) { return; } var dimensionType = useOffset ? 'offset' : 'natural'; var w = img[dimensionType + 'Width']; var h = img[dimensionType + 'Height']; // add ImageBitmap support,can blur texture source if (Object.prototype.toString.call(img).slice(8, -1) === 'ImageBitmap') { w = img.width; h = img.height; } if (typeof canvas === 'string') { canvas = document.getElementById(canvas); } if (!canvas || !('getContext' in canvas)) { return; } if (!skipStyles) { canvas.style.width = w + 'px'; canvas.style.height = h + 'px'; } canvas.width = w; canvas.height = h; var context = canvas.getContext('2d'); context.clearRect(0, 0, w, h); context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h); if (isNaN(radius) || radius < 1) { return; } if (blurAlphaChannel) { processCanvasRGBA(canvas, 0, 0, w, h, radius); } else { processCanvasRGB(canvas, 0, 0, w, h, radius); } } /** * @param {string|HTMLCanvasElement} canvas * @param {Integer} topX * @param {Integer} topY * @param {Integer} width * @param {Integer} height * @throws {Error|TypeError} * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata} */ function getImageDataFromCanvas(canvas, topX, topY, width, height) { if (typeof canvas === 'string') { canvas = document.getElementById(canvas); } if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) { throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!'); } var context = canvas.getContext('2d'); try { return context.getImageData(topX, topY, width, height); } catch (e) { throw new Error('unable to access image data: ' + e); } } /** * @param {HTMLCanvasElement} canvas * @param {Integer} topX * @param {Integer} topY * @param {Integer} width * @param {Integer} height * @param {Float} radius * @returns {undefined} */ function processCanvasRGBA(canvas, topX, topY, width, height, radius) { if (isNaN(radius) || radius < 1) { return; } radius |= 0; var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height); imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius); canvas.getContext('2d').putImageData(imageData, topX, topY); } /** * @param {ImageData} imageData * @param {Integer} topX * @param {Integer} topY * @param {Integer} width * @param {Integer} height * @param {Float} radius * @returns {ImageData} */ function processImageDataRGBA(imageData, topX, topY, width, height, radius) { var pixels = imageData.data; var div = 2 * radius + 1; // const w4 = width << 2; var widthMinus1 = width - 1; var heightMinus1 = height - 1; var radiusPlus1 = radius + 1; var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2; var stackStart = new BlurStack(); var stack = stackStart; var stackEnd; for (var i = 1; i < div; i++) { stack = stack.next = new BlurStack(); if (i === radiusPlus1) { stackEnd = stack; } } stack.next = stackStart; var stackIn = null, stackOut = null, yw = 0, yi = 0; var mulSum = mulTable[radius]; var shgSum = shgTable[radius]; for (var y = 0; y < height; y++) { stack = stackStart; var pr = pixels[yi], pg = pixels[yi + 1], pb = pixels[yi + 2], pa = pixels[yi + 3]; for (var _i = 0; _i < radiusPlus1; _i++) { stack.r = pr; stack.g = pg; stack.b = pb; stack.a = pa; stack = stack.next; } var rInSum = 0, gInSum = 0, bInSum = 0, aInSum = 0, rOutSum = radiusPlus1 * pr, gOutSum = radiusPlus1 * pg, bOutSum = radiusPlus1 * pb, aOutSum = radiusPlus1 * pa, rSum = sumFactor * pr, gSum = sumFactor * pg, bSum = sumFactor * pb, aSum = sumFactor * pa; for (var _i2 = 1; _i2 < radiusPlus1; _i2++) { var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2); var r = pixels[p], g = pixels[p + 1], b = pixels[p + 2], a = pixels[p + 3]; var rbs = radiusPlus1 - _i2; rSum += (stack.r = r) * rbs; gSum += (stack.g = g) * rbs; bSum += (stack.b = b) * rbs; aSum += (stack.a = a) * rbs; rInSum += r; gInSum += g; bInSum += b; aInSum += a; stack = stack.next; } stackIn = stackStart; stackOut = stackEnd; for (var x = 0; x < width; x++) { var paInitial = aSum * mulSum >>> shgSum; pixels[yi + 3] = paInitial; if (paInitial !== 0) { var _a2 = 255 / paInitial; pixels[yi] = (rSum * mulSum >>> shgSum) * _a2; pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2; pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2; } else { pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0; } rSum -= rOutSum; gSum -= gOutSum; bSum -= bOutSum; aSum -= aOutSum; rOutSum -= stackIn.r; gOutSum -= stackIn.g; bOutSum -= stackIn.b; aOutSum -= stackIn.a; var _p = x + radius + 1; _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2; rInSum += stackIn.r = pixels[_p]; gInSum += stackIn.g = pixels[_p + 1]; bInSum += stackIn.b = pixels[_p + 2]; aInSum += stackIn.a = pixels[_p + 3]; rSum += rInSum; gSum += gInSum; bSum += bInSum; aSum += aInSum; stackIn = stackIn.next; var _stackOut = stackOut, _r = _stackOut.r, _g = _stackOut.g, _b = _stackOut.b, _a = _stackOut.a; rOutSum += _r; gOutSum += _g; bOutSum += _b; aOutSum += _a; rInSum -= _r; gInSum -= _g; bInSum -= _b; aInSum -= _a; stackOut = stackOut.next; yi += 4; } yw += width; } for (var _x = 0; _x < width; _x++) { yi = _x << 2; var _pr = pixels[yi], _pg = pixels[yi + 1], _pb = pixels[yi + 2], _pa = pixels[yi + 3], _rOutSum = radiusPlus1 * _pr, _gOutSum = radiusPlus1 * _pg, _bOutSum = radiusPlus1 * _pb, _aOutSum = radiusPlus1 * _pa, _rSum = sumFactor * _pr, _gSum = sumFactor * _pg, _bSum = sumFactor * _pb, _aSum = sumFactor * _pa; stack = stackStart; for (var _i3 = 0; _i3 < radiusPlus1; _i3++) { stack.r = _pr; stack.g = _pg; stack.b = _pb; stack.a = _pa; stack = stack.next; } var yp = width; var _gInSum = 0, _bInSum = 0, _aInSum = 0, _rInSum = 0; for (var _i4 = 1; _i4 <= radius; _i4++) { yi = yp + _x << 2; var _rbs = radiusPlus1 - _i4; _rSum += (stack.r = _pr = pixels[yi]) * _rbs; _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs; _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs; _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs; _rInSum += _pr; _gInSum += _pg; _bInSum += _pb; _aInSum += _pa; stack = stack.next; if (_i4 < heightMinus1) { yp += width; } } yi = _x; stackIn = stackStart; stackOut = stackEnd; for (var _y = 0; _y < height; _y++) { var _p2 = yi << 2; pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum; if (_pa > 0) { _pa = 255 / _pa; pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa; pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa; pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa; } else { pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0; } _rSum -= _rOutSum; _gSum -= _gOutSum; _bSum -= _bOutSum; _aSum -= _aOutSum; _rOutSum -= stackIn.r; _gOutSum -= stackIn.g; _bOutSum -= stackIn.b; _aOutSum -= stackIn.a; _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2; _rSum += _rInSum += stackIn.r = pixels[_p2]; _gSum += _gInSum += stackIn.g = pixels[_p2 + 1]; _bSum += _bInSum += stackIn.b = pixels[_p2 + 2]; _aSum += _aInSum += stackIn.a = pixels[_p2 + 3]; stackIn = stackIn.next; _rOutSum += _pr = stackOut.r; _gOutSum += _pg = stackOut.g; _bOutSum += _pb = stackOut.b; _aOutSum += _pa = stackOut.a; _rInSum -= _pr; _gInSum -= _pg; _bInSum -= _pb; _aInSum -= _pa; stackOut = stackOut.next; yi += width; } } return imageData; } /** * @param {HTMLCanvasElement} canvas * @param {Integer} topX * @param {Integer} topY * @param {Integer} width * @param {Integer} height * @param {Float} radius * @returns {undefined} */ function processCanvasRGB(canvas, topX, topY, width, height, radius) { if (isNaN(radius) || radius < 1) { return; } radius |= 0; var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height); imageData = processImageDataRGB(imageData, topX, topY, width, height, radius); canvas.getContext('2d').putImageData(imageData, topX, topY); } /** * @param {ImageData} imageData * @param {Integer} topX * @param {Integer} topY * @param {Integer} width * @param {Integer} height * @param {Float} radius * @returns {ImageData} */ function processImageDataRGB(imageData, topX, topY, width, height, radius) { var pixels = imageData.data; var div = 2 * radius + 1; // const w4 = width << 2; var widthMinus1 = width - 1; var heightMinus1 = height - 1; var radiusPlus1 = radius + 1; var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2; var stackStart = new BlurStack(); var stack = stackStart; var stackEnd; for (var i = 1; i < div; i++) { stack = stack.next = new BlurStack(); if (i === radiusPlus1) { stackEnd = stack; } } stack.next = stackStart; var stackIn = null; var stackOut = null; var mulSum = mulTable[radius]; var shgSum = shgTable[radius]; var p, rbs; var yw = 0, yi = 0; for (var y = 0; y < height; y++) { var pr = pixels[yi], pg = pixels[yi + 1], pb = pixels[yi + 2], rOutSum = radiusPlus1 * pr, gOutSum = radiusPlus1 * pg, bOutSum = radiusPlus1 * pb, rSum = sumFactor * pr, gSum = sumFactor * pg, bSum = sumFactor * pb; stack = stackStart; for (var _i5 = 0; _i5 < radiusPlus1; _i5++) { stack.r = pr; stack.g = pg; stack.b = pb; stack = stack.next; } var rInSum = 0, gInSum = 0, bInSum = 0; for (var _i6 = 1; _i6 < radiusPlus1; _i6++) { p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2); rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6); gSum += (stack.g = pg = pixels[p + 1]) * rbs; bSum += (stack.b = pb = pixels[p + 2]) * rbs; rInSum += pr; gInSum += pg; bInSum += pb; stack = stack.next; } stackIn = stackStart; stackOut = stackEnd; for (var x = 0; x < width; x++) { pixels[yi] = rSum * mulSum >>> shgSum; pixels[yi + 1] = gSum * mulSum >>> shgSum; pixels[yi + 2] = bSum * mulSum >>> shgSum; rSum -= rOutSum; gSum -= gOutSum; bSum -= bOutSum; rOutSum -= stackIn.r; gOutSum -= stackIn.g; bOutSum -= stackIn.b; p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2; rInSum += stackIn.r = pixels[p]; gInSum += stackIn.g = pixels[p + 1]; bInSum += stackIn.b = pixels[p + 2]; rSum += rInSum; gSum += gInSum; bSum += bInSum; stackIn = stackIn.next; rOutSum += pr = stackOut.r; gOutSum += pg = stackOut.g; bOutSum += pb = stackOut.b; rInSum -= pr; gInSum -= pg; bInSum -= pb; stackOut = stackOut.next; yi += 4; } yw += width; } for (var _x2 = 0; _x2 < width; _x2++) { yi = _x2 << 2; var _pr2 = pixels[yi], _pg2 = pixels[yi + 1], _pb2 = pixels[yi + 2], _rOutSum2 = radiusPlus1 * _pr2, _gOutSum2 = radiusPlus1 * _pg2, _bOutSum2 = radiusPlus1 * _pb2, _rSum2 = sumFactor * _pr2, _gSum2 = sumFactor * _pg2, _bSum2 = sumFactor * _pb2; stack = stackStart; for (var _i7 = 0; _i7 < radiusPlus1; _i7++) { stack.r = _pr2; stack.g = _pg2; stack.b = _pb2; stack = stack.next; } var _rInSum2 = 0, _gInSum2 = 0, _bInSum2 = 0; for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) { yi = yp + _x2 << 2; _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8); _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs; _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs; _rInSum2 += _pr2; _gInSum2 += _pg2; _bInSum2 += _pb2; stack = stack.next; if (_i8 < heightMinus1) { yp += width; } } yi = _x2; stackIn = stackStart; stackOut = stackEnd; for (var _y2 = 0; _y2 < height; _y2++) { p = yi << 2; pixels[p] = _rSum2 * mulSum >>> shgSum; pixels[p + 1] = _gSum2 * mulSum >>> shgSum; pixels[p + 2] = _bSum2 * mulSum >>> shgSum; _rSum2 -= _rOutSum2; _gSum2 -= _gOutSum2; _bSum2 -= _bOutSum2; _rOutSum2 -= stackIn.r; _gOutSum2 -= stackIn.g; _bOutSum2 -= stackIn.b; p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2; _rSum2 += _rInSum2 += stackIn.r = pixels[p]; _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1]; _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2]; stackIn = stackIn.next; _rOutSum2 += _pr2 = stackOut.r; _gOutSum2 += _pg2 = stackOut.g; _bOutSum2 += _pb2 = stackOut.b; _rInSum2 -= _pr2; _gInSum2 -= _pg2; _bInSum2 -= _pb2; stackOut = stackOut.next; yi += width; } } return imageData; } /** * */ var BlurStack = /** * Set properties. */ function BlurStack() { _classCallCheck(this, BlurStack); this.r = 0; this.g = 0; this.b = 0; this.a = 0; this.next = null; }; /***/ }), /***/ "06ea": /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (exec) { try { return { error: false, value: exec() }; } catch (error) { return { error: true, value: error }; } }; /***/ }), /***/ "0863": /***/ (function(module, exports, __webpack_require__) { "use strict"; /* global ActiveXObject -- old IE, WSH */ var anObject = __webpack_require__("f671"); var definePropertiesModule = __webpack_require__("b5ba"); var enumBugKeys = __webpack_require__("1946"); var hiddenKeys = __webpack_require__("5d08"); var html = __webpack_require__("a56d"); var documentCreateElement = __webpack_require__("b2d6"); var sharedKey = __webpack_require__("d59f"); var GT = '>'; var LT = '<'; var PROTOTYPE = 'prototype'; var SCRIPT = 'script'; var IE_PROTO = sharedKey('IE_PROTO'); var EmptyConstructor = function () { /* empty */ }; var scriptTag = function (content) { return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype var NullProtoObjectViaActiveX = function (activeXDocument) { activeXDocument.write(scriptTag('')); activeXDocument.close(); var temp = activeXDocument.parentWindow.Object; // eslint-disable-next-line no-useless-assignment -- avoid memory leak activeXDocument = null; return temp; }; // Create object with fake `null` prototype: use iframe Object with cleared prototype var NullProtoObjectViaIFrame = function () { // Thrash, waste and sodomy: IE GC bug var iframe = documentCreateElement('iframe'); var JS = 'java' + SCRIPT + ':'; var iframeDocument; iframe.style.display = 'none'; html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475 iframe.src = String(JS); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(scriptTag('document.F=Object')); iframeDocument.close(); return iframeDocument.F; }; // Check for document.domain and active x support // No need to use active x approach when document.domain is not set // see https://github.com/es-shims/es5-shim/issues/150 // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 // avoid IE GC bug var activeXDocument; var NullProtoObject = function () { try { activeXDocument = new ActiveXObject('htmlfile'); } catch (error) { /* ignore */ } NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) // old IE : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument); // WSH var length = enumBugKeys.length; while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; return NullProtoObject(); }; hiddenKeys[IE_PROTO] = true; // `Object.create` method // https://tc39.es/ecma262/#sec-object.create // eslint-disable-next-line es/no-object-create -- safe module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { EmptyConstructor[PROTOTYPE] = anObject(O); result = new EmptyConstructor(); EmptyConstructor[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = NullProtoObject(); return Properties === undefined ? result : definePropertiesModule.f(result, Properties); }; /***/ }), /***/ "0a50": /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__("6b85"); var uncurryThis = __webpack_require__("eb0f"); var isArray = __webpack_require__("ae55"); var nativeReverse = uncurryThis([].reverse); var test = [1, 2]; // `Array.prototype.reverse` method // https://tc39.es/ecma262/#sec-array.prototype.reverse // fix for Safari 12.0 bug // https://bugs.webkit.org/show_bug.cgi?id=188794 $({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, { reverse: function reverse() { // eslint-disable-next-line no-self-assign -- dirty hack if (isArray(this)) this.length = this.length; return nativeReverse(this); } }); /***/ }), /***/ "0f98": /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__("6b85"); var uncurryThis = __webpack_require__("eb0f"); var notARegExp = __webpack_require__("bd83"); var requireObjectCoercible = __webpack_require__("9046"); var toString = __webpack_require__("a8e0"); var correctIsRegExpLogic = __webpack_require__("eca8"); var stringIndexOf = uncurryThis(''.indexOf); // `String.prototype.includes` method // https://tc39.es/ecma262/#sec-string.prototype.includes $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { includes: function includes(searchString /* , position = 0 */) { return !!~stringIndexOf( toString(requireObjectCoercible(this)), toString(notARegExp(searchString)), arguments.length > 1 ? arguments[1] : undefined ); } }); /***/ }), /***/ "109b": /***/ (function(module, exports, __webpack_require__) { "use strict"; // `CreateIterResultObject` abstract operation // https://tc39.es/ecma262/#sec-createiterresultobject module.exports = function (value, done) { return { value: value, done: done }; }; /***/ }), /***/ "10b3": /***/ (function(module, exports, __webpack_require__) { var toPropertyKey = __webpack_require__("1114"); function _defineProperty(e, r, t) { return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "1114": /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__("3569")["default"]; var toPrimitive = __webpack_require__("356b"); function toPropertyKey(t) { var i = toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "1196": /***/ (function(module, exports, __webpack_require__) { "use strict"; var fails = __webpack_require__("e967"); var globalThis = __webpack_require__("9b79"); // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError var $RegExp = globalThis.RegExp; module.exports = fails(function () { var re = $RegExp('.', 's'); return !(re.dotAll && re.test('\n') && re.flags === 's'); }); /***/ }), /***/ "13d2": /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__("6b85"); var IS_PURE = __webpack_require__("b515"); var IS_NODE = __webpack_require__("6b59"); var globalThis = __webpack_require__("9b79"); var call = __webpack_require__("016c"); var defineBuiltIn = __webpack_require__("ca12"); var setPrototypeOf = __webpack_require__("5c78"); var setToStringTag = __webpack_require__("4285"); var setSpecies = __webpack_require__("9656"); var aCallable = __webpack_require__("025a"); var isCallable = __webpack_require__("c390"); var isObject = __webpack_require__("5808"); var anInstance = __webpack_require__("dce8"); var speciesConstructor = __webpack_require__("8101"); var task = __webpack_require__("cbc4").set; var microtask = __webpack_require__("0075"); var hostReportErrors = __webpack_require__("4d67"); var perform = __webpack_require__("06ea"); var Queue = __webpack_require__("058f"); var InternalStateModule = __webpack_require__("2646"); var NativePromiseConstructor = __webpack_require__("065f"); var PromiseConstructorDetection = __webpack_require__("c74d"); var newPromiseCapabilityModule = __webpack_require__("efc9"); var PROMISE = 'Promise'; var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR; var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); var setInternalState = InternalStateModule.set; var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; var PromiseConstructor = NativePromiseConstructor; var PromisePrototype = NativePromisePrototype; var TypeError = globalThis.TypeError; var document = globalThis.document; var process = globalThis.process; var newPromiseCapability = newPromiseCapabilityModule.f; var newGenericPromiseCapability = newPromiseCapability; var DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent); var UNHANDLED_REJECTION = 'unhandledrejection'; var REJECTION_HANDLED = 'rejectionhandled'; var PENDING = 0; var FULFILLED = 1; var REJECTED = 2; var HANDLED = 1; var UNHANDLED = 2; var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; // helpers var isThenable = function (it) { var then; return isObject(it) && isCallable(then = it.then) ? then : false; }; var callReaction = function (reaction, state) { var value = state.value; var ok = state.state === FULFILLED; var handler = ok ? reaction.ok : reaction.fail; var resolve = reaction.resolve; var reject = reaction.reject; var domain = reaction.domain; var result, then, exited; try { if (handler) { if (!ok) { if (state.rejection === UNHANDLED) onHandleUnhandled(state); state.rejection = HANDLED; } if (handler === true) result = value; else { if (domain) domain.enter(); result = handler(value); // can throw if (domain) { domain.exit(); exited = true; } } if (result === reaction.promise) { reject(new TypeError('Promise-chain cycle')); } else if (then = isThenable(result)) { call(then, result, resolve, reject); } else resolve(result); } else reject(value); } catch (error) { if (domain && !exited) domain.exit(); reject(error); } }; var notify = function (state, isReject) { if (state.notified) return; state.notified = true; microtask(function () { var reactions = state.reactions; var reaction; while (reaction = reactions.get()) { callReaction(reaction, state); } state.notified = false; if (isReject && !state.rejection) onUnhandled(state); }); }; var dispatchEvent = function (name, promise, reason) { var event, handler; if (DISPATCH_EVENT) { event = document.createEvent('Event'); event.promise = promise; event.reason = reason; event.initEvent(name, false, true); globalThis.dispatchEvent(event); } else event = { promise: promise, reason: reason }; if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event); else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); }; var onUnhandled = function (state) { call(task, globalThis, function () { var promise = state.facade; var value = state.value; var IS_UNHANDLED = isUnhandled(state); var result; if (IS_UNHANDLED) { result = perform(function () { if (IS_NODE) { process.emit('unhandledRejection', value, promise); } else dispatchEvent(UNHANDLED_REJECTION, promise, value); }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; if (result.error) throw result.value; } }); }; var isUnhandled = function (state) { return state.rejection !== HANDLED && !state.parent; }; var onHandleUnhandled = function (state) { call(task, globalThis, function () { var promise = state.facade; if (IS_NODE) { process.emit('rejectionHandled', promise); } else dispatchEvent(REJECTION_HANDLED, promise, state.value); }); }; var bind = function (fn, state, unwrap) { return function (value) { fn(state, value, unwrap); }; }; var internalReject = function (state, value, unwrap) { if (state.done) return; state.done = true; if (unwrap) state = unwrap; state.value = value; state.state = REJECTED; notify(state, true); }; var internalResolve = function (state, value, unwrap) { if (state.done) return; state.done = true; if (unwrap) state = unwrap; try { if (state.facade === value) throw new TypeError("Promise can't be resolved itself"); var then = isThenable(value); if (then) { microtask(function () { var wrapper = { done: false }; try { call(then, value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state) ); } catch (error) { internalReject(wrapper, error, state); } }); } else { state.value = value; state.state = FULFILLED; notify(state, false); } } catch (error) { internalReject({ done: false }, error, state); } }; // constructor polyfill if (FORCED_PROMISE_CONSTRUCTOR) { // 25.4.3.1 Promise(executor) PromiseConstructor = function Promise(executor) { anInstance(this, PromisePrototype); aCallable(executor); call(Internal, this); var state = getInternalPromiseState(this); try { executor(bind(internalResolve, state), bind(internalReject, state)); } catch (error) { internalReject(state, error); } }; PromisePrototype = PromiseConstructor.prototype; // eslint-disable-next-line no-unused-vars -- required for `.length` Internal = function Promise(executor) { setInternalState(this, { type: PROMISE, done: false, notified: false, parent: false, reactions: new Queue(), rejection: false, state: PENDING, value: null }); }; // `Promise.prototype.then` method // https://tc39.es/ecma262/#sec-promise.prototype.then Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) { var state = getInternalPromiseState(this); var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); state.parent = true; reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; reaction.fail = isCallable(onRejected) && onRejected; reaction.domain = IS_NODE ? process.domain : undefined; if (state.state === PENDING) state.reactions.add(reaction); else microtask(function () { callReaction(reaction, state); }); return reaction.promise; }); OwnPromiseCapability = function () { var promise = new Internal(); var state = getInternalPromiseState(promise); this.promise = promise; this.resolve = bind(internalResolve, state); this.reject = bind(internalReject, state); }; newPromiseCapabilityModule.f = newPromiseCapability = function (C) { return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); }; if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { nativeThen = NativePromisePrototype.then; if (!NATIVE_PROMISE_SUBCLASSING) { // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { var that = this; return new PromiseConstructor(function (resolve, reject) { call(nativeThen, that, resolve, reject); }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640 }, { unsafe: true }); } // make `.constructor === Promise` work for native promise-based APIs try { delete NativePromisePrototype.constructor; } catch (error) { /* empty */ } // make `instanceof Promise` work for native promise-based APIs if (setPrototypeOf) { setPrototypeOf(NativePromisePrototype, PromisePrototype); } } } $({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { Promise: PromiseConstructor }); setToStringTag(PromiseConstructor, PROMISE, false, true); setSpecies(PROMISE); /***/ }), /***/ "14bf": /***/ (function(module, exports, __webpack_require__) { "use strict"; var charAt = __webpack_require__("8868").charAt; // `AdvanceStringIndex` abstract operation // https://tc39.es/ecma262/#sec-advancestringindex module.exports = function (S, index, unicode) { return index + (unicode ? charAt(S, index).length : 1); }; /***/ }), /***/ "1c9e": /***/ (function(module, exports, __webpack_require__) { "use strict"; var wellKnownSymbol = __webpack_require__("1ec9"); var Iterators = __webpack_require__("5776"); var ITERATOR = wellKnownSymbol('iterator'); var ArrayPrototype = Array.prototype; // check on default Array iterator module.exports = function (it) { return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); }; /***/ }), /***/ "1cbe": /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.12.2 (function() { var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime; if ((typeof performance !== "undefined" && performance !== null) && performance.now) { module.exports = function() { return performance.now(); }; } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) { module.exports = function() { return (getNanoSeconds() - nodeLoadTime) / 1e6; }; hrtime = process.hrtime; getNanoSeconds = function() { var hr; hr = hrtime(); return hr[0] * 1e9 + hr[1]; }; moduleLoadTime = getNanoSeconds(); upTime = process.uptime() * 1e9; nodeLoadTime = moduleLoadTime - upTime; } else if (Date.now) { module.exports = function() { return Date.now() - loadTime; }; loadTime = Date.now(); } else { module.exports = function() { return new Date().getTime() - loadTime; }; loadTime = new Date().getTime(); } }).call(this); //# sourceMappingURL=performance-now.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("eef6"))) /***/ }), /***/ "20cb": /***/ (function(module, exports, __webpack_require__) { "use strict"; var wellKnownSymbol = __webpack_require__("1ec9"); var create = __webpack_require__("0863"); var defineProperty = __webpack_require__("cb24").f; var UNSCOPABLES = wellKnownSymbol('unscopables'); var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables if (ArrayPrototype[UNSCOPABLES] === undefined) { defineProperty(ArrayPrototype, UNSCOPABLES, { configurable: true, value: create(null) }); } // add a key to Array.prototype[@@unscopables] module.exports = function (key) { ArrayPrototype[UNSCOPABLES][key] = true; }; /***/ }), /***/ "2119": /***/ (function(module, exports, __webpack_require__) { "use strict"; var internalObjectKeys = __webpack_require__("b304"); var enumBugKeys = __webpack_require__("1946"); // `Object.keys` method // https://tc39.es/ecma262/#sec-object.keys // eslint-disable-next-line es/no-object-keys -- safe module.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; /***/ }), /***/ "29a8": /***/ (function(module, exports, __webpack_require__) { "use strict"; var bind = __webpack_require__("a151"); var call = __webpack_require__("016c"); var anObject = __webpack_require__("f671"); var tryToString = __webpack_require__("31c3"); var isArrayIteratorMethod = __webpack_require__("1c9e"); var lengthOfArrayLike = __webpack_require__("0ea1"); var isPrototypeOf = __webpack_require__("2b97"); var getIterator = __webpack_require__("4bda"); var getIteratorMethod = __webpack_require__("cce8"); var iteratorClose = __webpack_require__("0d1e"); var $TypeError = TypeError; var Result = function (stopped, result) { this.stopped = stopped; this.result = result; }; var ResultPrototype = Result.prototype; module.exports = function (iterable, unboundFunction, options) { var that = options && options.that; var AS_ENTRIES = !!(options && options.AS_ENTRIES); var IS_RECORD = !!(options && options.IS_RECORD); var IS_ITERATOR = !!(options && options.IS_ITERATOR); var INTERRUPTED = !!(options && options.INTERRUPTED); var fn = bind(unboundFunction, that); var iterator, iterFn, index, length, result, next, step; var stop = function (condition) { if (iterator) iteratorClose(iterator, 'normal', condition); return new Result(true, condition); }; var callFn = function (value) { if (AS_ENTRIES) { anObject(value); return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); } return INTERRUPTED ? fn(value, stop) : fn(value); }; if (IS_RECORD) { iterator = iterable.iterator; } else if (IS_ITERATOR) { iterator = iterable; } else { iterFn = getIteratorMethod(iterable); if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable'); // optimisation for array iterators if (isArrayIteratorMethod(iterFn)) { for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { result = callFn(iterable[index]); if (result && isPrototypeOf(ResultPrototype, result)) return result; } return new Result(false); } iterator = getIterator(iterable, iterFn); } next = IS_RECORD ? iterable.next : iterator.next; while (!(step = call(next, iterator)).done) { try { result = callFn(step.value); } catch (error) { iteratorClose(iterator, 'throw', error); } if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; } return new Result(false); }; /***/ }), /***/ "2a72": /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__("6b85"); var call = __webpack_require__("016c"); var aCallable = __webpack_require__("025a"); var newPromiseCapabilityModule = __webpack_require__("efc9"); var perform = __webpack_require__("06ea"); var iterate = __webpack_require__("29a8"); var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__("35e3"); // `Promise.all` method // https://tc39.es/ecma262/#sec-promise.all $({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { all: function all(iterable) { var C = this; var capability = newPromiseCapabilityModule.f(C); var resolve = capability.resolve; var reject = capability.reject; var result = perform(function () { var $promiseResolve = aCallable(C.resolve); var values = []; var counter = 0; var remaining = 1; iterate(iterable, function (promise) { var index = counter++; var alreadyCalled = false; remaining++; call($promiseResolve, C, promise).then(function (value) { if (alreadyCalled) return; alreadyCalled = true; values[index] = value; --remaining || resolve(values); }, reject); }); --remaining || resolve(values); }); if (result.error) reject(result.value); return capability.promise; } }); /***/ }), /***/ "2b62": /***/ (function(module, exports) { /* Based on rgbcolor.js by Stoyan Stefanov <sstoo@gmail.com> http://www.phpied.com/rgb-color-parser-in-javascript/ */ module.exports = function(color_string) { this.ok = false; this.alpha = 1.0; // strip any leading # if (color_string.charAt(0) == '#') { // remove # if any color_string = color_string.substr(1,6); } color_string = color_string.replace(/ /g,''); color_string = color_string.toLowerCase(); // before getting into regexps, try simple matches // and overwrite the input var simple_colors = { aliceblue: 'f0f8ff', antiquewhite: 'faebd7', aqua: '00ffff', aquamarine: '7fffd4', azure: 'f0ffff', beige: 'f5f5dc', bisque: 'ffe4c4', black: '000000', blanchedalmond: 'ffebcd', blue: '0000ff', blueviolet: '8a2be2', brown: 'a52a2a', burlywood: 'deb887', cadetblue: '5f9ea0', chartreuse: '7fff00', chocolate: 'd2691e', coral: 'ff7f50', cornflowerblue: '6495ed', cornsilk: 'fff8dc', crimson: 'dc143c', cyan: '00ffff', darkblue: '00008b', darkcyan: '008b8b', darkgoldenrod: 'b8860b', darkgray: 'a9a9a9', darkgreen: '006400', darkkhaki: 'bdb76b', darkmagenta: '8b008b', darkolivegreen: '556b2f', darkorange: 'ff8c00', darkorchid: '9932cc', darkred: '8b0000', darksalmon: 'e9967a', darkseagreen: '8fbc8f', darkslateblue: '483d8b', darkslategray: '2f4f4f', darkturquoise: '00ced1', darkviolet: '9400d3', deeppink: 'ff1493', deepskyblue: '00bfff', dimgray: '696969', dodgerblue: '1e90ff', feldspar: 'd19275', firebrick: 'b22222', floralwhite: 'fffaf0', forestgreen: '228b22', fuchsia: 'ff00ff', gainsboro: 'dcdcdc', ghostwhite: 'f8f8ff', gold: 'ffd700', goldenrod: 'daa520', gray: '808080', green: '008000', greenyellow: 'adff