From c6551102f8e3b5b1dfd21c53612bfb3f213894e4 Mon Sep 17 00:00:00 2001 From: Bala Clark Date: Thu, 16 Jul 2015 23:33:46 +0200 Subject: [PATCH] starting to port canvas drawing code --- app/index.js | 9 +- app/lib/make-image.js | 9 + app/view/canvas.js | 73 +- dist/comicbook.js | 14080 +----------------------------------- dist/comicbook.js.map | 254 +- dist/comicbook.min.js | 7 +- dist/comicbook.min.js.map | 2 +- examples/basic.html | 11 + package.json | 6 +- test/comic-book.test.js | 4 +- test/data/image.js | 455 ++ test/fixture/image.js | 1826 +++++ test/view/canvas.test.js | 30 +- 13 files changed, 2708 insertions(+), 14058 deletions(-) create mode 100644 app/lib/make-image.js create mode 100644 examples/basic.html create mode 100644 test/data/image.js create mode 100644 test/fixture/image.js diff --git a/app/index.js b/app/index.js index 2ab0e62..78b9e08 100644 --- a/app/index.js +++ b/app/index.js @@ -1,2 +1,9 @@ -window.ComicBook = require('./comic-book') +// let ComicBook = window.ComicBook = require('./comic-book') +let Canvas = require('./view/canvas') +let makeImages = require('../test/data/image') +makeImages((testImages) => { + let canvas = new Canvas() + canvas.drawImage(testImages.portrait1) + document.body.appendChild(canvas.canvas) +}) diff --git a/app/lib/make-image.js b/app/lib/make-image.js new file mode 100644 index 0000000..842fbd1 --- /dev/null +++ b/app/lib/make-image.js @@ -0,0 +1,9 @@ + +module.exports = function makeImage (src, cb) { + let image = new window.Image() + image.onload = () => { + cb(image) + } + image.src = src +} + diff --git a/app/view/canvas.js b/app/view/canvas.js index 8296b42..e76bb13 100644 --- a/app/view/canvas.js +++ b/app/view/canvas.js @@ -9,19 +9,84 @@ class Canvas extends EventEmitter { // fitWidth, fitWindow, manua zoomMode: 'fitWidth', // ltr, rtl - readDirection: 'ltr' + readDirection: 'ltr', + // should two pages be rendered at a time? + doublePage: false }, options) this.canvas = document.createElement('canvas') this.context = this.canvas.getContext('2d') + + this.on('draw:start', this.clearCanvas.bind(this)) } - draw (image, doublePage, image2) { - if (!(image instanceof window.Image) || (doublePage && !(image2 instanceof window.Image))) { + getScale () { + + } + + fitCanvasToImage (image) { + // make sure the canvas is always at least full screen, even if the page is more narrow than the screen + this.canvas.width = (this.canvas.width < window.innerWidth) ? window.innerWidth : this.canvas.width + this.canvas.height = (this.canvas.height < window.innerHeight) ? window.innerHeight : this.canvas.height + } + + getDimensions (image) { + let dimensions = { + width: image.width, + height: image.height + } + return dimensions + } + + getOffset (dimensions) { + let offset = { + width: 0, + height: 0 + } + + // always keep pages centered + if (this.options.zoomMode === 'manual' || this.options.zoomMode === 'fitWindow') { + + // work out a horizontal position + if (this.canvas.width < window.innerWidth) { + offset.width = (window.innerWidth - dimensions.width) / 2 + if (this.options.doublePage) { + offset.width = offset.width - dimensions.width / 2 + } + } + + // work out a vertical position + if (this.canvas.height < window.innerHeight) { + offset.height = (window.innerHeight - dimensions.height) / 2 + } + } + + return offset + } + + clearCanvas () { + this.canvas.width = 0 + this.canvas.height = 0 + } + + drawImage (image, image2) { + this.emit('draw:start') + + if (!(image instanceof window.Image) || (this.options.doublePage && !(image2 instanceof window.Image))) { throw new Error('Invalid image') } - this.emit('draw') + this.fitCanvasToImage() + + let dimensions = this.getDimensions(image) + let offset = this.getOffset(dimensions) + + this.context.drawImage(image, offset.width, offset.height, dimensions.width, dimensions.height) + if (this.options.doublePage && image2) { + this.context.drawImage(image2, dimensions.width + offset.width, offset.height, dimensions.width, dimensions.height) + } + + this.emit('draw:finish') } } diff --git a/dist/comicbook.js b/dist/comicbook.js index 77641cf..8a10491 100644 --- a/dist/comicbook.js +++ b/dist/comicbook.js @@ -1,263 +1,275 @@ -require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { - return "
\n"; -},"useData":true}); -},{"handlebars/runtime":105}],5:[function(require,module,exports){ -(function (global){ +},{"babel-runtime/core-js/object/assign":4,"babel-runtime/helpers/class-call-check":8,"babel-runtime/helpers/create-class":9,"babel-runtime/helpers/get":10,"babel-runtime/helpers/inherits":11,"events":24}],4:[function(require,module,exports){ +module.exports = { "default": require("core-js/library/fn/object/assign"), __esModule: true }; +},{"core-js/library/fn/object/assign":12}],5:[function(require,module,exports){ +module.exports = { "default": require("core-js/library/fn/object/create"), __esModule: true }; +},{"core-js/library/fn/object/create":13}],6:[function(require,module,exports){ +module.exports = { "default": require("core-js/library/fn/object/define-property"), __esModule: true }; +},{"core-js/library/fn/object/define-property":14}],7:[function(require,module,exports){ +module.exports = { "default": require("core-js/library/fn/object/get-own-property-descriptor"), __esModule: true }; +},{"core-js/library/fn/object/get-own-property-descriptor":15}],8:[function(require,module,exports){ "use strict"; -var _toolsProtectJs2 = require("./tools/protect.js"); - -var _toolsProtectJs3 = _interopRequireDefault(_toolsProtectJs2); - -require("core-js/shim"); - -require("regenerator/runtime"); - -_toolsProtectJs3["default"](module); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -if (global._babelPolyfill) { - throw new Error("only one instance of babel/polyfill is allowed"); -} -global._babelPolyfill = true; -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) - -},{"./tools/protect.js":6,"core-js/shim":96,"regenerator/runtime":109}],6:[function(require,module,exports){ -(function (__dirname){ -"use strict"; +exports["default"] = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; exports.__esModule = true; +},{}],9:[function(require,module,exports){ +"use strict"; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _Object$defineProperty = require("babel-runtime/core-js/object/define-property")["default"]; -var _path = require("path"); +exports["default"] = (function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; -var _path2 = _interopRequireDefault(_path); + _Object$defineProperty(target, descriptor.key, descriptor); + } + } -var root = _path2["default"].resolve(__dirname, "../../../"); + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +})(); -/** - * Protect Babel internals from being hotlinked by other tools. - * Sorry, not sorry. - */ +exports.__esModule = true; +},{"babel-runtime/core-js/object/define-property":6}],10:[function(require,module,exports){ +"use strict"; -exports["default"] = function (module) { - if (module.parent && module.parent.filename.indexOf(root) !== 0) { - throw new Error("Don't hotlink internal Babel files."); +var _Object$getOwnPropertyDescriptor = require("babel-runtime/core-js/object/get-own-property-descriptor")["default"]; + +exports["default"] = function get(_x, _x2, _x3) { + var _again = true; + + _function: while (_again) { + var object = _x, + property = _x2, + receiver = _x3; + desc = parent = getter = undefined; + _again = false; + if (object === null) object = Function.prototype; + + var desc = _Object$getOwnPropertyDescriptor(object, property); + + if (desc === undefined) { + var parent = Object.getPrototypeOf(object); + + if (parent === null) { + return undefined; + } else { + _x = parent; + _x2 = property; + _x3 = receiver; + _again = true; + continue _function; + } + } else if ("value" in desc) { + return desc.value; + } else { + var getter = desc.get; + + if (getter === undefined) { + return undefined; + } + + return getter.call(receiver); + } } }; -module.exports = exports["default"]; -}).call(this,"/node_modules/babel-core/lib/babel/tools") +exports.__esModule = true; +},{"babel-runtime/core-js/object/get-own-property-descriptor":7}],11:[function(require,module,exports){ +"use strict"; -},{"path":107}],7:[function(require,module,exports){ -module.exports = require("./lib/babel/polyfill"); +var _Object$create = require("babel-runtime/core-js/object/create")["default"]; -},{"./lib/babel/polyfill":5}],8:[function(require,module,exports){ -// false -> Array#indexOf -// true -> Array#includes -var $ = require('./$'); -module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = $.toObject($this) - , length = $.toLength(O.length) - , index = $.toIndex(fromIndex, length) - , value; - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index; - } return !IS_INCLUDES && -1; - }; -}; -},{"./$":29}],9:[function(require,module,exports){ -// 0 -> Array#forEach -// 1 -> Array#map -// 2 -> Array#filter -// 3 -> Array#some -// 4 -> Array#every -// 5 -> Array#find -// 6 -> Array#findIndex -var $ = require('./$') - , ctx = require('./$.ctx'); -module.exports = function(TYPE){ - var IS_MAP = TYPE == 1 - , IS_FILTER = TYPE == 2 - , IS_SOME = TYPE == 3 - , IS_EVERY = TYPE == 4 - , IS_FIND_INDEX = TYPE == 6 - , NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function($this, callbackfn, that){ - var O = Object($.assertDefined($this)) - , self = $.ES5Object(O) - , f = ctx(callbackfn, that, 3) - , length = $.toLength(self.length) - , index = 0 - , result = IS_MAP ? Array(length) : IS_FILTER ? [] : undefined - , val, res; - for(;length > index; index++)if(NO_HOLES || index in self){ - val = self[index]; - res = f(val, index, O); - if(TYPE){ - if(IS_MAP)result[index] = res; // map - else if(res)switch(TYPE){ - case 3: return true; // some - case 5: return val; // find - case 6: return index; // findIndex - case 2: result.push(val); // filter - } else if(IS_EVERY)return false; // every - } +exports["default"] = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = _Object$create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; - }; + }); + if (superClass) subClass.__proto__ = superClass; }; -},{"./$":29,"./$.ctx":17}],10:[function(require,module,exports){ -var $ = require('./$'); -function assert(condition, msg1, msg2){ - if(!condition)throw TypeError(msg2 ? msg1 + msg2 : msg1); -} -assert.def = $.assertDefined; -assert.fn = function(it){ - if(!$.isFunction(it))throw TypeError(it + ' is not a function!'); - return it; + +exports.__esModule = true; +},{"babel-runtime/core-js/object/create":5}],12:[function(require,module,exports){ +require('../../modules/es6.object.assign'); +module.exports = require('../../modules/$').core.Object.assign; +},{"../../modules/$":21,"../../modules/es6.object.assign":22}],13:[function(require,module,exports){ +var $ = require('../../modules/$'); +module.exports = function create(P, D){ + return $.create(P, D); }; -assert.obj = function(it){ - if(!$.isObject(it))throw TypeError(it + ' is not an object!'); - return it; +},{"../../modules/$":21}],14:[function(require,module,exports){ +var $ = require('../../modules/$'); +module.exports = function defineProperty(it, key, desc){ + return $.setDesc(it, key, desc); }; -assert.inst = function(it, Constructor, name){ - if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!"); - return it; +},{"../../modules/$":21}],15:[function(require,module,exports){ +var $ = require('../../modules/$'); +require('../../modules/es6.object.statics-accept-primitives'); +module.exports = function getOwnPropertyDescriptor(it, key){ + return $.getDesc(it, key); }; -module.exports = assert; -},{"./$":29}],11:[function(require,module,exports){ +},{"../../modules/$":21,"../../modules/es6.object.statics-accept-primitives":23}],16:[function(require,module,exports){ var $ = require('./$') , enumKeys = require('./$.enum-keys'); // 19.1.2.1 Object.assign(target, source, ...) @@ -277,375 +289,16 @@ module.exports = Object.assign || function assign(target, source){ } return T; }; -},{"./$":29,"./$.enum-keys":20}],12:[function(require,module,exports){ -var $ = require('./$') - , TAG = require('./$.wks')('toStringTag') - , toString = {}.toString; -function cof(it){ - return toString.call(it).slice(8, -1); -} -cof.classof = function(it){ - var O, T; - return it == undefined ? it === undefined ? 'Undefined' : 'Null' - : typeof (T = (O = Object(it))[TAG]) == 'string' ? T : cof(O); -}; -cof.set = function(it, tag, stat){ - if(it && !$.has(it = stat ? it : it.prototype, TAG))$.hide(it, TAG, tag); -}; -module.exports = cof; -},{"./$":29,"./$.wks":47}],13:[function(require,module,exports){ -'use strict'; -var $ = require('./$') - , ctx = require('./$.ctx') - , safe = require('./$.uid').safe - , assert = require('./$.assert') - , forOf = require('./$.for-of') - , step = require('./$.iter').step - , $has = $.has - , set = $.set - , isObject = $.isObject - , hide = $.hide - , isExtensible = Object.isExtensible || isObject - , ID = safe('id') - , O1 = safe('O1') - , LAST = safe('last') - , FIRST = safe('first') - , ITER = safe('iter') - , SIZE = $.DESC ? safe('size') : 'size' - , id = 0; - -function fastKey(it, create){ - // return primitive with prefix - if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if(!$has(it, ID)){ - // can't set id to frozen object - if(!isExtensible(it))return 'F'; - // not necessary to add id - if(!create)return 'E'; - // add missing object id - hide(it, ID, ++id); - // return object id with prefix - } return 'O' + it[ID]; -} - -function getEntry(that, key){ - // fast case - var index = fastKey(key), entry; - if(index !== 'F')return that[O1][index]; - // frozen object case - for(entry = that[FIRST]; entry; entry = entry.n){ - if(entry.k == key)return entry; - } -} - -module.exports = { - getConstructor: function(wrapper, NAME, IS_MAP, ADDER){ - var C = wrapper(function(that, iterable){ - assert.inst(that, C, NAME); - set(that, O1, $.create(null)); - set(that, SIZE, 0); - set(that, LAST, undefined); - set(that, FIRST, undefined); - if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that); - }); - require('./$.mix')(C.prototype, { - // 23.1.3.1 Map.prototype.clear() - // 23.2.3.2 Set.prototype.clear() - clear: function clear(){ - for(var that = this, data = that[O1], entry = that[FIRST]; entry; entry = entry.n){ - entry.r = true; - if(entry.p)entry.p = entry.p.n = undefined; - delete data[entry.i]; - } - that[FIRST] = that[LAST] = undefined; - that[SIZE] = 0; - }, - // 23.1.3.3 Map.prototype.delete(key) - // 23.2.3.4 Set.prototype.delete(value) - 'delete': function(key){ - var that = this - , entry = getEntry(that, key); - if(entry){ - var next = entry.n - , prev = entry.p; - delete that[O1][entry.i]; - entry.r = true; - if(prev)prev.n = next; - if(next)next.p = prev; - if(that[FIRST] == entry)that[FIRST] = next; - if(that[LAST] == entry)that[LAST] = prev; - that[SIZE]--; - } return !!entry; - }, - // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) - // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) - forEach: function forEach(callbackfn /*, that = undefined */){ - var f = ctx(callbackfn, arguments[1], 3) - , entry; - while(entry = entry ? entry.n : this[FIRST]){ - f(entry.v, entry.k, this); - // revert to the last existing entry - while(entry && entry.r)entry = entry.p; - } - }, - // 23.1.3.7 Map.prototype.has(key) - // 23.2.3.7 Set.prototype.has(value) - has: function has(key){ - return !!getEntry(this, key); - } - }); - if($.DESC)$.setDesc(C.prototype, 'size', { - get: function(){ - return assert.def(this[SIZE]); - } - }); - return C; - }, - def: function(that, key, value){ - var entry = getEntry(that, key) - , prev, index; - // change existing entry - if(entry){ - entry.v = value; - // create new entry - } else { - that[LAST] = entry = { - i: index = fastKey(key, true), // <- index - k: key, // <- key - v: value, // <- value - p: prev = that[LAST], // <- previous entry - n: undefined, // <- next entry - r: false // <- removed - }; - if(!that[FIRST])that[FIRST] = entry; - if(prev)prev.n = entry; - that[SIZE]++; - // add to index - if(index !== 'F')that[O1][index] = entry; - } return that; - }, - getEntry: getEntry, - // add .keys, .values, .entries, [@@iterator] - // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 - setIter: function(C, NAME, IS_MAP){ - require('./$.iter-define')(C, NAME, function(iterated, kind){ - set(this, ITER, {o: iterated, k: kind}); - }, function(){ - var iter = this[ITER] - , kind = iter.k - , entry = iter.l; - // revert to the last existing entry - while(entry && entry.r)entry = entry.p; - // get next entry - if(!iter.o || !(iter.l = entry = entry ? entry.n : iter.o[FIRST])){ - // or finish the iteration - iter.o = undefined; - return step(1); - } - // return step by kind - if(kind == 'keys' )return step(0, entry.k); - if(kind == 'values')return step(0, entry.v); - return step(0, [entry.k, entry.v]); - }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true); - } -}; -},{"./$":29,"./$.assert":10,"./$.ctx":17,"./$.for-of":21,"./$.iter":28,"./$.iter-define":26,"./$.mix":31,"./$.uid":45}],14:[function(require,module,exports){ -// https://github.com/DavidBruant/Map-Set.prototype.toJSON -var $def = require('./$.def') - , forOf = require('./$.for-of'); -module.exports = function(NAME){ - $def($def.P, NAME, { - toJSON: function toJSON(){ - var arr = []; - forOf(this, false, arr.push, arr); - return arr; - } - }); -}; -},{"./$.def":18,"./$.for-of":21}],15:[function(require,module,exports){ -'use strict'; -var $ = require('./$') - , safe = require('./$.uid').safe - , assert = require('./$.assert') - , forOf = require('./$.for-of') - , $has = $.has - , isObject = $.isObject - , hide = $.hide - , isExtensible = Object.isExtensible || isObject - , id = 0 - , ID = safe('id') - , WEAK = safe('weak') - , LEAK = safe('leak') - , method = require('./$.array-methods') - , find = method(5) - , findIndex = method(6); -function findFrozen(store, key){ - return find(store.array, function(it){ - return it[0] === key; - }); -} -// fallback for frozen keys -function leakStore(that){ - return that[LEAK] || hide(that, LEAK, { - array: [], - get: function(key){ - var entry = findFrozen(this, key); - if(entry)return entry[1]; - }, - has: function(key){ - return !!findFrozen(this, key); - }, - set: function(key, value){ - var entry = findFrozen(this, key); - if(entry)entry[1] = value; - else this.array.push([key, value]); - }, - 'delete': function(key){ - var index = findIndex(this.array, function(it){ - return it[0] === key; - }); - if(~index)this.array.splice(index, 1); - return !!~index; - } - })[LEAK]; -} - -module.exports = { - getConstructor: function(wrapper, NAME, IS_MAP, ADDER){ - var C = wrapper(function(that, iterable){ - $.set(assert.inst(that, C, NAME), ID, id++); - if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that); - }); - require('./$.mix')(C.prototype, { - // 23.3.3.2 WeakMap.prototype.delete(key) - // 23.4.3.3 WeakSet.prototype.delete(value) - 'delete': function(key){ - if(!isObject(key))return false; - if(!isExtensible(key))return leakStore(this)['delete'](key); - return $has(key, WEAK) && $has(key[WEAK], this[ID]) && delete key[WEAK][this[ID]]; - }, - // 23.3.3.4 WeakMap.prototype.has(key) - // 23.4.3.4 WeakSet.prototype.has(value) - has: function has(key){ - if(!isObject(key))return false; - if(!isExtensible(key))return leakStore(this).has(key); - return $has(key, WEAK) && $has(key[WEAK], this[ID]); - } - }); - return C; - }, - def: function(that, key, value){ - if(!isExtensible(assert.obj(key))){ - leakStore(that).set(key, value); - } else { - $has(key, WEAK) || hide(key, WEAK, {}); - key[WEAK][that[ID]] = value; - } return that; - }, - leakStore: leakStore, - WEAK: WEAK, - ID: ID -}; -},{"./$":29,"./$.array-methods":9,"./$.assert":10,"./$.for-of":21,"./$.mix":31,"./$.uid":45}],16:[function(require,module,exports){ -'use strict'; -var $ = require('./$') - , $def = require('./$.def') - , BUGGY = require('./$.iter').BUGGY - , forOf = require('./$.for-of') - , species = require('./$.species') - , assertInstance = require('./$.assert').inst; - -module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){ - var Base = $.g[NAME] - , C = Base - , ADDER = IS_MAP ? 'set' : 'add' - , proto = C && C.prototype - , O = {}; - function fixMethod(KEY){ - var fn = proto[KEY]; - require('./$.redef')(proto, KEY, - KEY == 'delete' ? function(a){ return fn.call(this, a === 0 ? 0 : a); } - : KEY == 'has' ? function has(a){ return fn.call(this, a === 0 ? 0 : a); } - : KEY == 'get' ? function get(a){ return fn.call(this, a === 0 ? 0 : a); } - : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; } - : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; } - ); - } - if(!$.isFunction(C) || !(IS_WEAK || !BUGGY && proto.forEach && proto.entries)){ - // create collection constructor - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - require('./$.mix')(C.prototype, methods); - } else { - var inst = new C - , chain = inst[ADDER](IS_WEAK ? {} : -0, 1) - , buggyZero; - // wrap for init collections from iterable - if(!require('./$.iter-detect')(function(iter){ new C(iter); })){ // eslint-disable-line no-new - C = wrapper(function(target, iterable){ - assertInstance(target, C, NAME); - var that = new Base; - if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that); - return that; - }); - C.prototype = proto; - proto.constructor = C; - } - IS_WEAK || inst.forEach(function(val, key){ - buggyZero = 1 / key === -Infinity; - }); - // fix converting -0 key to +0 - if(buggyZero){ - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - // + fix .add & .set for chaining - if(buggyZero || chain !== inst)fixMethod(ADDER); - } - - require('./$.cof').set(C, NAME); - - O[NAME] = C; - $def($def.G + $def.W + $def.F * (C != Base), O); - species(C); - species($.core[NAME]); // for wrapper - - if(!IS_WEAK)common.setIter(C, NAME, IS_MAP); - - return C; -}; -},{"./$":29,"./$.assert":10,"./$.cof":12,"./$.def":18,"./$.for-of":21,"./$.iter":28,"./$.iter-detect":27,"./$.mix":31,"./$.redef":34,"./$.species":39}],17:[function(require,module,exports){ -// Optional / simple context binding -var assertFunction = require('./$.assert').fn; -module.exports = function(fn, that, length){ - assertFunction(fn); - if(~length && that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } return function(/* ...args */){ - return fn.apply(that, arguments); - }; -}; -},{"./$.assert":10}],18:[function(require,module,exports){ +},{"./$":21,"./$.enum-keys":18}],17:[function(require,module,exports){ var $ = require('./$') , global = $.g , core = $.core - , isFunction = $.isFunction - , $redef = require('./$.redef'); + , isFunction = $.isFunction; function ctx(fn, that){ return function(){ return fn.apply(that, arguments); }; } -global.core = core; // type bitmap $def.F = 1; // forced $def.G = 2; // global @@ -664,29 +317,28 @@ function $def(type, name, source){ for(key in source){ // contains in native own = !(type & $def.F) && target && key in target; + if(own && key in exports)continue; // export native or passed - out = (own ? target : source)[key]; + out = own ? target[key] : source[key]; + // prevent global pollution for namespaces + if(isGlobal && !isFunction(target[key]))exp = source[key]; // bind timers to global for call from export context - if(type & $def.B && own)exp = ctx(out, global); + else if(type & $def.B && own)exp = ctx(out, global); + // wrap global constructors for prevent change them in library + else if(type & $def.W && target[key] == out)!function(C){ + exp = function(param){ + return this instanceof C ? new C(param) : C(param); + }; + exp.prototype = C.prototype; + }(out); else exp = isProto && isFunction(out) ? ctx(Function.call, out) : out; - // extend global - if(target && !own)$redef(target, key, out); // export - if(exports[key] != out)$.hide(exports, key, exp); + exports[key] = exp; if(isProto)(exports.prototype || (exports.prototype = {}))[key] = out; } } module.exports = $def; -},{"./$":29,"./$.redef":34}],19:[function(require,module,exports){ -var $ = require('./$') - , document = $.g.document - , isObject = $.isObject - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); -module.exports = function(it){ - return is ? document.createElement(it) : {}; -}; -},{"./$":29}],20:[function(require,module,exports){ +},{"./$":21}],18:[function(require,module,exports){ var $ = require('./$'); module.exports = function(it){ var keys = $.getKeys(it) @@ -697,27 +349,13 @@ module.exports = function(it){ }); return keys; }; -},{"./$":29}],21:[function(require,module,exports){ -var ctx = require('./$.ctx') - , get = require('./$.iter').get - , call = require('./$.iter-call'); -module.exports = function(iterable, entries, fn, that){ - var iterator = get(iterable) - , f = ctx(fn, that, entries ? 2 : 1) - , step; - while(!(step = iterator.next()).done){ - if(call(iterator, f, step.value, entries) === false){ - return call.close(iterator); - } - } -}; -},{"./$.ctx":17,"./$.iter":28,"./$.iter-call":25}],22:[function(require,module,exports){ +},{"./$":21}],19:[function(require,module,exports){ module.exports = function($){ - $.FW = true; - $.path = $.g; + $.FW = false; + $.path = $.core; return $; }; -},{}],23:[function(require,module,exports){ +},{}],20:[function(require,module,exports){ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var $ = require('./$') , toString = {}.toString @@ -738,164 +376,7 @@ module.exports.get = function getOwnPropertyNames(it){ if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it); return getNames($.toObject(it)); }; -},{"./$":29}],24:[function(require,module,exports){ -// Fast apply -// http://jsperf.lnkit.com/fast-apply/5 -module.exports = function(fn, args, that){ - var un = that === undefined; - switch(args.length){ - case 0: return un ? fn() - : fn.call(that); - case 1: return un ? fn(args[0]) - : fn.call(that, args[0]); - case 2: return un ? fn(args[0], args[1]) - : fn.call(that, args[0], args[1]); - case 3: return un ? fn(args[0], args[1], args[2]) - : fn.call(that, args[0], args[1], args[2]); - case 4: return un ? fn(args[0], args[1], args[2], args[3]) - : fn.call(that, args[0], args[1], args[2], args[3]); - case 5: return un ? fn(args[0], args[1], args[2], args[3], args[4]) - : fn.call(that, args[0], args[1], args[2], args[3], args[4]); - } return fn.apply(that, args); -}; -},{}],25:[function(require,module,exports){ -var assertObject = require('./$.assert').obj; -function close(iterator){ - var ret = iterator['return']; - if(ret !== undefined)assertObject(ret.call(iterator)); -} -function call(iterator, fn, value, entries){ - try { - return entries ? fn(assertObject(value)[0], value[1]) : fn(value); - } catch(e){ - close(iterator); - throw e; - } -} -call.close = close; -module.exports = call; -},{"./$.assert":10}],26:[function(require,module,exports){ -var $def = require('./$.def') - , $redef = require('./$.redef') - , $ = require('./$') - , cof = require('./$.cof') - , $iter = require('./$.iter') - , SYMBOL_ITERATOR = require('./$.wks')('iterator') - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values' - , Iterators = $iter.Iterators; -module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE){ - $iter.create(Constructor, NAME, next); - function createMethod(kind){ - function $$(that){ - return new Constructor(that, kind); - } - switch(kind){ - case KEYS: return function keys(){ return $$(this); }; - case VALUES: return function values(){ return $$(this); }; - } return function entries(){ return $$(this); }; - } - var TAG = NAME + ' Iterator' - , proto = Base.prototype - , _native = proto[SYMBOL_ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , _default = _native || createMethod(DEFAULT) - , methods, key; - // Fix native - if(_native){ - var IteratorPrototype = $.getProto(_default.call(new Base)); - // Set @@toStringTag to native iterators - cof.set(IteratorPrototype, TAG, true); - // FF fix - if($.FW && $.has(proto, FF_ITERATOR))$iter.set(IteratorPrototype, $.that); - } - // Define iterator - if($.FW || FORCE)$iter.set(proto, _default); - // Plug for library - Iterators[NAME] = _default; - Iterators[TAG] = $.that; - if(DEFAULT){ - methods = { - keys: IS_SET ? _default : createMethod(KEYS), - values: DEFAULT == VALUES ? _default : createMethod(VALUES), - entries: DEFAULT != VALUES ? _default : createMethod('entries') - }; - if(FORCE)for(key in methods){ - if(!(key in proto))$redef(proto, key, methods[key]); - } else $def($def.P + $def.F * $iter.BUGGY, NAME, methods); - } -}; -},{"./$":29,"./$.cof":12,"./$.def":18,"./$.iter":28,"./$.redef":34,"./$.wks":47}],27:[function(require,module,exports){ -var SYMBOL_ITERATOR = require('./$.wks')('iterator') - , SAFE_CLOSING = false; -try { - var riter = [7][SYMBOL_ITERATOR](); - riter['return'] = function(){ SAFE_CLOSING = true; }; - Array.from(riter, function(){ throw 2; }); -} catch(e){ /* empty */ } -module.exports = function(exec){ - if(!SAFE_CLOSING)return false; - var safe = false; - try { - var arr = [7] - , iter = arr[SYMBOL_ITERATOR](); - iter.next = function(){ safe = true; }; - arr[SYMBOL_ITERATOR] = function(){ return iter; }; - exec(arr); - } catch(e){ /* empty */ } - return safe; -}; -},{"./$.wks":47}],28:[function(require,module,exports){ -'use strict'; -var $ = require('./$') - , cof = require('./$.cof') - , classof = cof.classof - , assert = require('./$.assert') - , assertObject = assert.obj - , SYMBOL_ITERATOR = require('./$.wks')('iterator') - , FF_ITERATOR = '@@iterator' - , Iterators = require('./$.shared')('iterators') - , IteratorPrototype = {}; -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -setIterator(IteratorPrototype, $.that); -function setIterator(O, value){ - $.hide(O, SYMBOL_ITERATOR, value); - // Add iterator for FF iterator protocol - if(FF_ITERATOR in [])$.hide(O, FF_ITERATOR, value); -} - -module.exports = { - // Safari has buggy iterators w/o `next` - BUGGY: 'keys' in [] && !('next' in [].keys()), - Iterators: Iterators, - step: function(done, value){ - return {value: value, done: !!done}; - }, - is: function(it){ - var O = Object(it) - , Symbol = $.g.Symbol; - return (Symbol && Symbol.iterator || FF_ITERATOR) in O - || SYMBOL_ITERATOR in O - || $.has(Iterators, classof(O)); - }, - get: function(it){ - var Symbol = $.g.Symbol - , getIter; - if(it != undefined){ - getIter = it[Symbol && Symbol.iterator || FF_ITERATOR] - || it[SYMBOL_ITERATOR] - || Iterators[classof(it)]; - } - assert($.isFunction(getIter), it, ' is not iterable!'); - return assertObject(getIter.call(it)); - }, - set: setIterator, - create: function(Constructor, NAME, next, proto){ - Constructor.prototype = $.create(proto || IteratorPrototype, {next: $.desc(1, next)}); - cof.set(Constructor, NAME + ' Iterator'); - } -}; -},{"./$":29,"./$.assert":10,"./$.cof":12,"./$.shared":38,"./$.wks":47}],29:[function(require,module,exports){ +},{"./$":21}],21:[function(require,module,exports){ 'use strict'; var global = typeof self != 'undefined' ? self : Function('return this')() , core = {} @@ -992,1069 +473,11 @@ var $ = module.exports = require('./$.fw')({ /* eslint-disable no-undef */ if(typeof __e != 'undefined')__e = core; if(typeof __g != 'undefined')__g = global; -},{"./$.fw":22}],30:[function(require,module,exports){ -var $ = require('./$'); -module.exports = function(object, el){ - var O = $.toObject(object) - , keys = $.getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; -}; -},{"./$":29}],31:[function(require,module,exports){ -var $redef = require('./$.redef'); -module.exports = function(target, src){ - for(var key in src)$redef(target, key, src[key]); - return target; -}; -},{"./$.redef":34}],32:[function(require,module,exports){ -var $ = require('./$') - , assertObject = require('./$.assert').obj; -module.exports = function ownKeys(it){ - assertObject(it); - var keys = $.getNames(it) - , getSymbols = $.getSymbols; - return getSymbols ? keys.concat(getSymbols(it)) : keys; -}; -},{"./$":29,"./$.assert":10}],33:[function(require,module,exports){ -'use strict'; -var $ = require('./$') - , invoke = require('./$.invoke') - , assertFunction = require('./$.assert').fn; -module.exports = function(/* ...pargs */){ - var fn = assertFunction(this) - , length = arguments.length - , pargs = Array(length) - , i = 0 - , _ = $.path._ - , holder = false; - while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true; - return function(/* ...args */){ - var that = this - , _length = arguments.length - , j = 0, k = 0, args; - if(!holder && !_length)return invoke(fn, pargs, that); - args = pargs.slice(); - if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++]; - while(_length > k)args.push(arguments[k++]); - return invoke(fn, args, that); - }; -}; -},{"./$":29,"./$.assert":10,"./$.invoke":24}],34:[function(require,module,exports){ -var $ = require('./$') - , tpl = String({}.hasOwnProperty) - , SRC = require('./$.uid').safe('src') - , _toString = Function.toString; - -function $redef(O, key, val, safe){ - if($.isFunction(val)){ - var base = O[key]; - $.hide(val, SRC, base ? String(base) : tpl.replace(/hasOwnProperty/, String(key))); - if(!('name' in val))val.name = key; - } - if(O === $.g){ - O[key] = val; - } else { - if(!safe)delete O[key]; - $.hide(O, key, val); - } -} - -// add fake Function#toString for correct work wrapped methods / constructors -// with methods similar to LoDash isNative -$redef(Function.prototype, 'toString', function toString(){ - return $.has(this, SRC) ? this[SRC] : _toString.call(this); -}); - -$.core.inspectSource = function(it){ - return _toString.call(it); -}; - -module.exports = $redef; -},{"./$":29,"./$.uid":45}],35:[function(require,module,exports){ -'use strict'; -module.exports = function(regExp, replace, isStatic){ - var replacer = replace === Object(replace) ? function(part){ - return replace[part]; - } : replace; - return function(it){ - return String(isStatic ? it : this).replace(regExp, replacer); - }; -}; -},{}],36:[function(require,module,exports){ -module.exports = Object.is || function is(x, y){ - return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; -}; -},{}],37:[function(require,module,exports){ -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -var $ = require('./$') - , assert = require('./$.assert'); -function check(O, proto){ - assert.obj(O); - assert(proto === null || $.isObject(proto), proto, ": can't set as prototype!"); -} -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} // eslint-disable-line - ? function(buggy, set){ - try { - set = require('./$.ctx')(Function.call, $.getDesc(Object.prototype, '__proto__').set, 2); - set({}, []); - } catch(e){ buggy = true; } - return function setPrototypeOf(O, proto){ - check(O, proto); - if(buggy)O.__proto__ = proto; - else set(O, proto); - return O; - }; - }() - : undefined), - check: check -}; -},{"./$":29,"./$.assert":10,"./$.ctx":17}],38:[function(require,module,exports){ -var $ = require('./$') - , SHARED = '__core-js_shared__' - , store = $.g[SHARED] || ($.g[SHARED] = {}); -module.exports = function(key){ - return store[key] || (store[key] = {}); -}; -},{"./$":29}],39:[function(require,module,exports){ -var $ = require('./$') - , SPECIES = require('./$.wks')('species'); -module.exports = function(C){ - if($.DESC && !(SPECIES in C))$.setDesc(C, SPECIES, { - configurable: true, - get: $.that - }); -}; -},{"./$":29,"./$.wks":47}],40:[function(require,module,exports){ -// true -> String#at -// false -> String#codePointAt -var $ = require('./$'); -module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String($.assertDefined(that)) - , i = $.toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l - || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; -},{"./$":29}],41:[function(require,module,exports){ -// http://wiki.ecmascript.org/doku.php?id=strawman:string_padding -var $ = require('./$') - , repeat = require('./$.string-repeat'); - -module.exports = function(that, minLength, fillChar, left){ - // 1. Let O be CheckObjectCoercible(this value). - // 2. Let S be ToString(O). - var S = String($.assertDefined(that)); - // 4. If intMinLength is undefined, return S. - if(minLength === undefined)return S; - // 4. Let intMinLength be ToInteger(minLength). - var intMinLength = $.toInteger(minLength); - // 5. Let fillLen be the number of characters in S minus intMinLength. - var fillLen = intMinLength - S.length; - // 6. If fillLen < 0, then throw a RangeError exception. - // 7. If fillLen is +∞, then throw a RangeError exception. - if(fillLen < 0 || fillLen === Infinity){ - throw new RangeError('Cannot satisfy string length ' + minLength + ' for string: ' + S); - } - // 8. Let sFillStr be the string represented by fillStr. - // 9. If sFillStr is undefined, let sFillStr be a space character. - var sFillStr = fillChar === undefined ? ' ' : String(fillChar); - // 10. Let sFillVal be a String made of sFillStr, repeated until fillLen is met. - var sFillVal = repeat.call(sFillStr, Math.ceil(fillLen / sFillStr.length)); - // truncate if we overflowed - if(sFillVal.length > fillLen)sFillVal = left - ? sFillVal.slice(sFillVal.length - fillLen) - : sFillVal.slice(0, fillLen); - // 11. Return a string made from sFillVal, followed by S. - // 11. Return a String made from S, followed by sFillVal. - return left ? sFillVal.concat(S) : S.concat(sFillVal); -}; -},{"./$":29,"./$.string-repeat":42}],42:[function(require,module,exports){ -'use strict'; -var $ = require('./$'); - -module.exports = function repeat(count){ - var str = String($.assertDefined(this)) - , res = '' - , n = $.toInteger(count); - if(n < 0 || n == Infinity)throw RangeError("Count can't be negative"); - for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str; - return res; -}; -},{"./$":29}],43:[function(require,module,exports){ -'use strict'; -var $ = require('./$') - , ctx = require('./$.ctx') - , cof = require('./$.cof') - , invoke = require('./$.invoke') - , cel = require('./$.dom-create') - , global = $.g - , isFunction = $.isFunction - , html = $.html - , process = global.process - , setTask = global.setImmediate - , clearTask = global.clearImmediate - , MessageChannel = global.MessageChannel - , counter = 0 - , queue = {} - , ONREADYSTATECHANGE = 'onreadystatechange' - , defer, channel, port; -function run(){ - var id = +this; - if($.has(queue, id)){ - var fn = queue[id]; - delete queue[id]; - fn(); - } -} -function listner(event){ - run.call(event.data); -} -// Node.js 0.9+ & IE10+ has setImmediate, otherwise: -if(!isFunction(setTask) || !isFunction(clearTask)){ - setTask = function(fn){ - var args = [], i = 1; - while(arguments.length > i)args.push(arguments[i++]); - queue[++counter] = function(){ - invoke(isFunction(fn) ? fn : Function(fn), args); - }; - defer(counter); - return counter; - }; - clearTask = function(id){ - delete queue[id]; - }; - // Node.js 0.8- - if(cof(process) == 'process'){ - defer = function(id){ - process.nextTick(ctx(run, id, 1)); - }; - // Modern browsers, skip implementation for WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is object - } else if(global.addEventListener && isFunction(global.postMessage) && !global.importScripts){ - defer = function(id){ - global.postMessage(id, '*'); - }; - global.addEventListener('message', listner, false); - // WebWorkers - } else if(isFunction(MessageChannel)){ - channel = new MessageChannel; - port = channel.port2; - channel.port1.onmessage = listner; - defer = ctx(port.postMessage, port, 1); - // IE8- - } else if(ONREADYSTATECHANGE in cel('script')){ - defer = function(id){ - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){ - html.removeChild(this); - run.call(id); - }; - }; - // Rest old browsers - } else { - defer = function(id){ - setTimeout(ctx(run, id, 1), 0); - }; - } -} -module.exports = { - set: setTask, - clear: clearTask -}; -},{"./$":29,"./$.cof":12,"./$.ctx":17,"./$.dom-create":19,"./$.invoke":24}],44:[function(require,module,exports){ -module.exports = function(exec){ - try { - exec(); - return false; - } catch(e){ - return true; - } -}; -},{}],45:[function(require,module,exports){ -var sid = 0; -function uid(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++sid + Math.random()).toString(36)); -} -uid.safe = require('./$').g.Symbol || uid; -module.exports = uid; -},{"./$":29}],46:[function(require,module,exports){ -// 22.1.3.31 Array.prototype[@@unscopables] -var UNSCOPABLES = require('./$.wks')('unscopables'); -if(!(UNSCOPABLES in []))require('./$').hide(Array.prototype, UNSCOPABLES, {}); -module.exports = function(key){ - [][UNSCOPABLES][key] = true; -}; -},{"./$":29,"./$.wks":47}],47:[function(require,module,exports){ -var global = require('./$').g - , store = require('./$.shared')('wks'); -module.exports = function(name){ - return store[name] || (store[name] = - global.Symbol && global.Symbol[name] || require('./$.uid').safe('Symbol.' + name)); -}; -},{"./$":29,"./$.shared":38,"./$.uid":45}],48:[function(require,module,exports){ -var $ = require('./$') - , cel = require('./$.dom-create') - , cof = require('./$.cof') - , $def = require('./$.def') - , invoke = require('./$.invoke') - , arrayMethod = require('./$.array-methods') - , IE_PROTO = require('./$.uid').safe('__proto__') - , assert = require('./$.assert') - , assertObject = assert.obj - , ObjectProto = Object.prototype - , html = $.html - , A = [] - , _slice = A.slice - , _join = A.join - , classof = cof.classof - , has = $.has - , defineProperty = $.setDesc - , getOwnDescriptor = $.getDesc - , defineProperties = $.setDescs - , isFunction = $.isFunction - , isObject = $.isObject - , toObject = $.toObject - , toLength = $.toLength - , toIndex = $.toIndex - , IE8_DOM_DEFINE = false - , $indexOf = require('./$.array-includes')(false) - , $forEach = arrayMethod(0) - , $map = arrayMethod(1) - , $filter = arrayMethod(2) - , $some = arrayMethod(3) - , $every = arrayMethod(4); - -if(!$.DESC){ - try { - IE8_DOM_DEFINE = defineProperty(cel('div'), 'x', - {get: function(){ return 8; }} - ).x == 8; - } catch(e){ /* empty */ } - $.setDesc = function(O, P, Attributes){ - if(IE8_DOM_DEFINE)try { - return defineProperty(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)assertObject(O)[P] = Attributes.value; - return O; - }; - $.getDesc = function(O, P){ - if(IE8_DOM_DEFINE)try { - return getOwnDescriptor(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return $.desc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]); - }; - $.setDescs = defineProperties = function(O, Properties){ - assertObject(O); - var keys = $.getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)$.setDesc(O, P = keys[i++], Properties[P]); - return O; - }; -} -$def($def.S + $def.F * !$.DESC, 'Object', { - // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $.getDesc, - // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) - defineProperty: $.setDesc, - // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) - defineProperties: defineProperties -}); - - // IE 8- don't enum bug keys -var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' + - 'toLocaleString,toString,valueOf').split(',') - // Additional keys for getOwnPropertyNames - , keys2 = keys1.concat('length', 'prototype') - , keysLen1 = keys1.length; - -// Create object with `null` prototype: use iframe Object with cleared prototype -var createDict = function(){ - // Thrash, waste and sodomy: IE GC bug - var iframe = cel('iframe') - , i = keysLen1 - , gt = '>' - , iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(' + + + + + diff --git a/package.json b/package.json index 98d8fc6..a5e6223 100644 --- a/package.json +++ b/package.json @@ -12,10 +12,10 @@ "scripts": { "build": "npm run buildjs ; npm run buildcss", "buildcss": "rm -f dist/*.css && cat assets/fonts/icomoon-toolbar/style.css app/css/reset.css app/css/styles.css app/css/toolbar.css > dist/comicbook.css && cssmin dist/comicbook.css > dist/comicbook.min.css", - "buildjs": "rm -f dist/*.js && browserify --transform babelify --transform browserify-handlebars --require babelify/polyfill app/index.js --debug | exorcist dist/comicbook.js.map > dist/comicbook.js && uglifyjs --screw-ie8 --compress --mangle --source-map dist/comicbook.min.js.map --source-map-root ./ --output dist/comicbook.min.js -- dist/comicbook.js", + "buildjs": "rm -f dist/*.js && browserify --transform [ babelify --optional runtime ] --transform browserify-handlebars app/index.js --debug | exorcist dist/comicbook.js.map > dist/comicbook.js && uglifyjs --screw-ie8 --compress --mangle --source-map dist/comicbook.min.js.map --source-map-root ./ --output dist/comicbook.min.js -- dist/comicbook.js", "pretest": "standard", "test": "mochify --recursive --reporter spec --transform babelify --transform browserify-handlebars --require babelify/polyfill", - "test-watch": "mochify --watch --recursive --reporter min --transform babelify --transform browserify-handlebars --require babelify/polyfill", + "test-watch": "mochify --watch --recursive --reporter min --transform [ babelify --optional runtime ] --transform browserify-handlebars", "wrap": "rm -f npm-shrinkwrap ; npm prune && npm shrinkwrap" }, "repository": { @@ -45,12 +45,14 @@ }, "devDependencies": { "babel-eslint": "^3.1.23", + "babel-runtime": "^5.7.0", "babelify": "^6.1.3", "browserify": "^10.2.6", "browserify-handlebars": "^1.0.0", "cssmin": "^0.4.3", "exorcist": "^0.4.0", "handlebars": "^3.0.3", + "imagediff": "^1.0.8", "mochify": "^2.10.0", "phantomjs": "^1.9.17", "standard": "^4.5.3", diff --git a/test/comic-book.test.js b/test/comic-book.test.js index 8fb285a..22202f6 100644 --- a/test/comic-book.test.js +++ b/test/comic-book.test.js @@ -8,9 +8,9 @@ let srcs = [ 'data:image/gif;base64,R0lGODlhAQABAPAAAO7u7v///yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==' ] -describe('ComicBook', function () { +describe('ComicBook', () => { - describe('preload images', function () { + describe('preload images', () => { it('should preload all given image srcs and emit preload:image, preload:finish events', done => { let comic = new ComicBook(srcs) diff --git a/test/data/image.js b/test/data/image.js new file mode 100644 index 0000000..0e52af1 --- /dev/null +++ b/test/data/image.js @@ -0,0 +1,455 @@ +let makeImage = require('../../app/lib/make-image') + +let portrait1 = +`data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAAB +AAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAAB +AAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAA +ASygAwAEAAAAAQAAAbkAAAAA/+0AOFBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAAA +OEJJTQQlAAAAAAAQ1B2M2Y8AsgTpgAmY7PhCfv/iDFhJQ0NfUFJPRklMRQABAQAA +DEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElF +QyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl +c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdY +WVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1 +ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRl +Y2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRl +eHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55 +AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0Ig +SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAA +AAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZ +WiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVj +LmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklF +QyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAA +AAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0g +c1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug +Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVm +ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwAD +XJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAA +AAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU +ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCL +AJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEH +AQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGp +AbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6 +AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+ +A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2 +BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYn +BjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfS +B+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6 +Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh +C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5J +DmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1 +ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPl +FAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd +F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe +GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5q +HpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKC +Iq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtybo +JxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSud +K9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk +MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9 +Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuq +O+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGs +Qe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgF +SEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63 +TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXC +Vg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0n +XXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTp +ZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20I +bWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF +deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i +fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4ef +iASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/ +kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtC +m6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp +phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1 +sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7Lrun +vCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dB +x7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE +08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v +4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG +7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH ++lf65/t3/Af8mP0p/br+S/7c/23////AABEIAbkBLAMBEgACEQEDEQH/xAAfAAAB +BQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0B +AgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygp +KjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImK +kpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj +5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJ +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 +1/bC+L2seJ9C8NeHMWlnBcafb6tex2V150ckkoJiG7CnCgMdpA5KnmgD5u1zULvV +dWutRv7g3F3czPPcTEAeZK7FnbgAcsSelUaACigAooAKKACigAooAKKACigAooAK +KACigAooAKKAFAyQM496SgD1PxlLZN8APBKW2oWtzP8A2nqb3EMbfPas23ajg9yP +m9MGvLixIAJ4HSgBtFABRQAUUAf/1vjeigAooAKKACigAooAKKACigAooAKKACig +AooAKKACigAooAKKACigAooAf5jZBG1SOhVQD+lMoA0vC76VH4hsH1yOeTTVuEN0 +kJw7Rg/MARyCemRyM5HNZtAFrVZoLjUZ5raA28DyMYovNMnlpk7V3NyQFwMn0qrQ +AUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFKozn6E/pQAlbHjGxttN +8Q3VnaIUhjKhQWJIyinqfcmgDHooAKKACigD/9f43ooAKKACigAooAKKACigAooA +KKACigAooAKKACigAooAKKACigAooAKKACigAooAKKAHR7d67zhc802gDotc0zSn +0/TLnw9NdXmNMSbVsxsRa3HmOGXheE27CCeMk81X8H+Kde8Ja1HrHh/U7jT7yNWU +SQsMlSMFSCCrD2IIzz1oAx2Ur1wfcHIrqfEHidvGGprc+IIbGO+mZFm1G3txAWOQ +DJJHGMSEAHoATzQBylXtd09dL1SayS9tL5Yzhbi1k3xSDGdyt3H6g5B6UAUaKACi +gAooAKKACigAooAKKACigAooAKKAJry5nu52nuZXllfG52OSeAP5AVDQAUUAFFAB +RQB//9D43ooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKK +ACigAooAKKACigAooAKKAFJJJJ5J60lABRQAUUAFXtF0rUNYvPsemWkt1P5byeXG +MsVUZYgd8CgCjVi/s7mwupLW7hkgmjOHjkQo6n3VgCPxFAFeigAooAKKACigApyK +WYKOtADa1fEmg6joFxbW+pwiGW4tIbtULZYJKu5Nw/hOOx6UAZVFABRQAUUAFFAH +/9H43ooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACig +AooAKKACigAooAKKACigAooAKKAFU4PQH2IpKAOj8R+NfEniLTLbT9c1WfUo7Vi0 +T3SpJKpIx/rSvmEY7FiO+M81zlABRQAUUAFFABSqdpDDHHPNAHR/DZdKXxtpEuuo +H0qK7jlvVMe8NCh3upHTnaFOeze9Q+KdSup30+0ka0X7Bp8dkptU2gplnw5H32zI +ct0PHpQA/wCIvia58YeM9V8R3ShH1C7kuBGFAEak4RAB2VFRfwrnqACigAooAKKA +CigD/9L43ooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKK +ACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACig +AooAKKAP/9k=` + +module.exports = function makeImages (cb) { + let images = {} + makeImage(portrait1, (image) => { + images.portrait1 = image + cb(images) + }) +} + diff --git a/test/fixture/image.js b/test/fixture/image.js new file mode 100644 index 0000000..206eaf1 --- /dev/null +++ b/test/fixture/image.js @@ -0,0 +1,1826 @@ +let makeImage = require('../../app/lib/make-image') + +let singlePortrait = +`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAJsCAYAAAALLQSJAAAgAElEQVR4XuydeZRV +1Z22d770FDMoIjIJiCLIoGIUifOsiIhjFCOKI4hExAFRERVFREAUARXnARQnFEWN +oAEnFFFEBEFGAZlEcEon6e6k+1vPr/u9fayGqpIauLfqPWvVqqp7z9ln7+dc+OOp +d737Jz/96U//K/kwARMwgQIg8Pe///0nBTBNT9EETMAETMAETMAETMAETMAETMAE +TMAETOB/CPzEAtqfBRMwgUIhYAFdKE/K8zQBEzABEzABEzABEzABEzABEzABEzCB +/yZgAe1PggmYQMEQsIAumEfliZqACZiACZiACZiACZiACZiACZiACZiABbQ/AyZg +AoVFwAK6sJ6XZ2sCJmACJmACJmACJmACJmACJmACJmACTkD7M2ACJlAwBCygC+ZR +eaImYAImYAImYAImYAImYAImYAImYAImEAQsoP1BMAETKBgCFtAF86g8URMwARMw +ARMwARMwARMwARMwARMwAROwgPZnwARMoLAIWEAX1vPybE3ABEzABEzABEzABEzA +BEzABEzABEzACWh/BkzABAqGgAV0wTwqT9QETMAETMAETMAETMAETMAETMAETMAE +goAFdDl9EH7yk59sdKT/+q//itf5zjk6j9//8z//M/2///f/4iv7+z/8wz+kv/3t +b/H105/+NP3jP/5j+utf/5p+9rOfxTX/9m//Fq/9x3/8R/qnf/qnOI/rOZexOIev +Tc2pnJbsYUyg0glYQFc6ct/QBEzABEzABEzABEzABEzABEzABEzABMpEwAK6TPj+ +9+KNyV7JZ52l3yWd+Y5ElixGIP/973+P3/kZ4fyXv/wlXvv5z3+e/vVf/zWG4nXG +QjxzX87nYDwOfud9ie1yWqKHMYEtTsACeos/Ak/ABEzABEzABEzABEzABEzABEzA +BEzABH4UAQvoH4Xr/55cknhGAmdTz8jkbBoaWfzP//zPcc6///u/x3ukm5HLnMvP +fP+Xf/mXkNEknnntT3/6U0hqrsuOpyQ1M+V9yekyLtOXm0BeELCAzovH4EmYgAmY +gAmYgAmYgAmYgAmYgAmYgAmYQKkJWECXGtXGT8ymjIsmnrkCeczBeVlhzLl8IZ8R +y/pZqWh+RzYjpankoHYjW8eBkNZrkswS3VkpvbE5lXHJvtwEthgBC+gtht43NgET +MAETMAETMAETMAETMAETMAETMIHNImABvVnY/veibLo5O1RWBqsSg/clh7PJZGQy +tRrIaNLNCGclpxHYiGi+8/o333wTVRxcs27dunhNnc+Mr2sRz1zjHugyPmBfnlcE +LKDz6nF4MiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZQIgEL6BIRFX+ChDJnZaswJH4R +yYhgVW8oCa009LbbbhsJ6D//+c+Rdpakzkrr7Ax+9atfxYaEnFu3bt20fv36uG/R +8S2gy/hgfXleErCAzsvH4kmZgAmYgAmYgAmYgAmYgAmYgAmYgAmYwCYJWECX04dD +VReIZ76UYKYmg98RznzxOilnpZ1XrVoVGwwecMABqUOHDqlhw4bp66+/jnqNbbbZ +Jr4rAY103mqrrdKMGTPSAw88EOeRhGZc7s+Ghko9qxrEFRzl9IA9TF4QsIDOi8fg +SZiACZiACZiACZiACZiACZiACZiACZhAqQlYQJca1aZPzEreogKaxDICGUmMQGbz +QNLOJJyRxEcddVTq1KlT6tixYwhnJDLncyCTuU4SWhsVUrPxzjvvpK5du6Zly5bF ++bzHeaSjmY+qONRBXQ7L9BAmsMUJWEBv8UfgCZiACZiACZiACZiACZiACZiACZiA +CZjAjyJgAV0CLnUwI4sRyFnBzO+kl+lk5uA9upyVckY0a6NAxlH9BtKZ6g1Sz126 +dIk0NEJagpnfEckS0YytnmfOIUHNsWbNmnTjjTeme++9N2T1zjvvnP72t7/FfOiK +1gaHmjPXaPNDzZc5cSC+SVNLWCO+mQPffZhAvhCwgM6XJ+F5mIAJmIAJmIAJmIAJ +mIAJmIAJmIAJmEDpCFhAl8BJSWWJaGSuai5IGdPfjIQm6fyLX/wiEs5r165NNWrU +CKnbtm3bdNppp6XWrVtH8rlmzZpp++23j/focEbyMiZjSfYyJiL7u+++i3ElsTkH +gcw1ksXffvttWr58eZoyZUq64oor4n0E9dZbbx0r47zsUXRTQtYikY60Zr3ff/99 +yHLVeJTuo+SzTKDiCVhAVzxj38EETMAETMAETMAETMAETMAETMAETMAEypOABXQJ +NBHGX375ZchhZDC9y/Qw8zuSF8GL9F28ePEPRurbt2/63e9+l+rUqZN++ctfhhRG +9GZTzUV/RywjmSWaGZdzENDcC7mN5OZAYCsJze/I7fHjx4ccHzt2bJo2bVquE7q4 +Go7sJoqsi3FITnNfdUuX5wfOY5lAWQhYQJeFnq81ARMwARMwARMwARMwARMwARMw +ARMwgconYAFdAnPkLWlkvlNvIQFMOhlBq2R07969I+1MuhlpXb9+/RDEyGQEMkIX +Ec13UsZIXgQzPzMuQpkktSoxkM3acHD27Nnp3HPPzfVII7G5hvsjkEksZ69dunRp +dEMjx6njYGzO536q41ClB+cgq19//fVY5xtvvJE7VyK88j+WvqMJbJyABbQ/GSZg +AiZgAiZgAiZgAiZgAiZgAiZgAiZQWAQsoEt4XkhepLDSyUhcpPMJJ5yQ9t5779g4 +EOF85JFHRq+zKjqUHkYkI54RwIyjxDHjSWwjejmQwrxOhcfHH3+cbrvttjRs2LC0 +++67J6Qy8pp7I42R0IjlHXfcMWS2xiWhzTyKHozN3LNz4DVJdL5z7ZAhQ9LQoUNz +3dac48ME8oWABXS+PAnPwwRMwARMwARMwARMwARMwARMwARMwARKR8ACuhSckLsI +3z333DN179497bHHHnEV8pfksXqVV65cmZYsWZJ22223eB1BjGSWlKavOSuHEcpI +YQ7S0p988knIZ+o7Pvjgg9SuXbuQwc8991zq169fnKPNDBHadEvfc889kZRGLCOL +dQ4/q+5DSWvmoYS1ls17JKAXLlwY17/77rvp/vvvj+Q215Pe9mEC+ULAAjpfnoTn +YQImYAImYAImYAImYAImYAImYAImYAKlI2ABXQInhC6JY/qf2ewPoXzrrbemAw88 +MDYW5CCtjKx96qmn0g033JBmzpwZEppUsVLLSGIOhC+p6Pnz56d169al9u3bx+vT +p09PPXr0SB9++GHcj9Q08pdENGM0aNAgrV+/Pie8N2zYkObMmZNLQCOmOT97H17T +xobco+gGhFo6YnzUqFEhvjmQzwh0Xs9eX7qPlM8ygYojYAFdcWw9sgmYgAmYgAmY +gAmYgAmYgAmYgAmYgAlUBAEL6BKoImLpUSYdPHz48LTXXnulffbZJyQtchhZ/PDD +D6dzzjkn+p/ZsPCjjz6K2gwdpI7/8pe/hMzlZ6598sknQxh36tQpRDLjcuywww4J +uazOab4jo9XzTOp67ty56a677krnn39+jMXcOA9ZTuqa+2xKHCsNrbmpUmTq1Kmp +Q4cOaZdddom6D+amNHVFfPA8pglsDgEL6M2h5mtMwARMwARMwARMwARMwARMwARM +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 +awG9pZ+A728CJmACJmACJmACJmACJmACJmACJmACP45AwQvoostVR7EqN6idQJaS +Jka8UqPRqVOneA25q4oMRC0ilQoJ9SDz3qRJk9LRRx8dt0HKIqcR1lyPiC0p4cuY +kr+IZSpA6IJGOtM/TRqb10gQI7e/+eabuJcEMfPKJrqL1oxovZt67HofEaxajDp1 +6uQ2UiQBzZp4jWoSBLJSzDNnzgwJTS0I6W0O9WXrO1J/xowZsZ5PP/00bbfddjEe +64aNKzh+3D9In108AQtof0JMwARMwARMwARMwARMwARMwARMwARMoLAIVBkBrSQt +whVxjPxUjQSpYwT0K6+8ktq1axe1E6qyQKRKJiNeEcHjx48PAUzCefTo0enDDz9M +O+64Y5o3b148XdV68LMqOzb12CVhlVamuoMaDoTtypUr09ixY+M+jKMuZm36pw0C +JdO5h2R0SeJZ81F/dK1atdK6detCLouV3mNOyHFkPe8j2j/55JNIRF922WXp1FNP +DUashbnDE6mOgFfC++OPP04DBgxIEyZMiEoPzkdOexPCwvoPId9nawGd70/I8zMB +EzABEzABEzABEzABEzABEzABEzCBHxIoeAGtRHBWQCNK1eHcpEmTdMQRR0TSuGnT +plFDgXgloavN9ZC/iFLE8ldffRXS9emnnw4hrPEZDwlNhzTCWHK4pAQ099JcSBdz +H9LEpKCRtIhu7snB78yLL35mXkppMzfJZ75LoJdUYSFRzPmsHWnMz+q3VkWHJL1k +PClwkt4cffv2TVdeeWXMPTueRD/JcpiQ3h40aFAaPHhwXEfCmw0PiztKmr//wZpA +loAFtD8PJmACJmACJmACJmACJmACJmACJmACJlBYBPJeQCuliwimooKKDNVnqMMZ +eUqKN/s74rNPnz6pe/fukehFdJJ2RgYjeCV2GQ8JjFAmAcxBlcS9996bRo0alc44 +44zUoUOHNGfOnNS/f//YcI9OaOZC1QSidsOGDbk5aVzGYT7cLytZJW0lvEkeb8mj +qNjOJsh5j27s9evXx6aNSPysfFfvM1w1DjzfeeeddNFFF0XCm2oPKjzgwnnq2dZz +3ZJr970Lj4AFdOE9M8/YBEzABEzABEzABEzABEzABEzABEygehPIewGNwFWNA7I2 +K0AljJGeSvTyOEn6kh6m05jUMklexkFSI585+B3pfOutt0bdBElpajEQrojjRYsW +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 +R10K0n/NmjUxZL7Xm5T+KfnM8iJgAV1eJD2OCZiACZiACZiACZiACZiACZiACZiA +CVQOgbwX0BKstWrVCim83377pTFjxqTtt98+EtBK2K5duzYkaYcOHdIHH3yQ6tSp +k1asWJGjiGhFXktsqgYCAcpX586dQ2gvX748vfbaa6lu3bpp9erVMT5zQKKq8oPv +XK+N+irnUW38LtlkMvNBMCN3mR8yl7UxfzZjPOecc3KyXqMp6Qwb1k7FycMPPxws +YE4ymuslkPmZ9xhf3dglCWjOQ/wrMS12MOaedHUvW7YsHXPMMdHjjaTmWXO+6kG2 +JGPfO38IWEDnz7PwTEzABEzABEzABEzABEzABEzABEzABEygNATyXkCrqkFCctq0 +aWmfffaJtal645ZbbkmPPfZY2nHHHaP3GamJMEVwKrlLWpeUM8ln1UAgWFetWpUu +vPDCNGDAgJCfS5cuTS1btoxksOooEKiS3chXfmZe6okuDeiKOoe1KLXMGpHjSGfW +jcjdc889Q0RTSbL33nvnNmuEJ4fS0boGIU2CvHv37iHdYcpa6cjmi3uxflhxjTYs +3NT6JJHVJ82YSkTzRwIk/+jRo0M+n3766ZFuV10K93MKuqI+OYU5rgV0YT43z9oE +TMAETMAETMAETMAETMAETMAETKD6Esh7AY24REIiMqmAmDJlSjrkkENyFQ6vv/56 +OvLIIyNhixhFwtavXz+e6JIlS/7Pk2Uc5KzS0GxQeOCBB4akReZyPPnkkyFDda5E +N+9zH4RsvghopbDVUc38qSohCU0q/IEHHoi1MHde40AcI56ValavNXUl9C9//fXX +IfLvueeedO+998Z11HQgo0kqI+a/++67kNCkrYs7ENTMMdsBjWBmDtxX8z733HNj +I0LS68h/njX3kSivvv9EvfIsAQtofx5MwARMwARMwARMwARMwARMwARMwARMoLAI +5L2A1saCSjdvs802af78+al27dqRZn7rrbdCGCOpSe6q35nHgFhGVktykq5FYFPf +sWHDhnTeeeelO++8M54YopOxEa2Mgdhm076JEyfG70ho7seh2o98edTMR7UVyHXE +LTK+adOmUalx0EEHxdwRv0ow8zObDSKrkcl0PnNwHWMpqYyEnjdvXnAhZc55CGok +MdeVlFBWT7bui3TWpojcj/kqYS6enFva8fPlGXgelUPAArpyOPsuJmACJmACJmAC +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 +brvtFtUdzFsCne9KQlfPf7JLQFX5AAAgAElEQVTVe9UW0NX7+Xv1JmACJmACJmAC +JmACJmACJmACJmAChUegygtoHgkCGKmqKg5St7yGLKYmAjk8YMCASOaSiOY8bfJX +XBpY9ROIUzqMd91116izIIHMWIzNfdgYkHoLBDjj8x7CFhnLz2UR0FwrkctamZP6 +rnmP8ZVQ5ncS0kp/z507N2o6Xn755TRt2rSowKAug+RxtmKkNB9rxiYBjXRmTIR2 +165d0+23356T+shq5krdB5sfkgzndwn9Bx54IHqr33vvvZDSVHHwXoMGDULk81zo +7ybFLYlfmrn5nKpDwAK66jxLr8QETMAETMAETMAETMAETMAETMAETKB6EKjyAlqp +X3U7I36Rq3whZxHNiOLnnnsutWvXLmSwhC6CGFlbVMZmN+r74osv0q233hqb75Ek +RjDznRqJE044IQ0ePDjqKCSySVgjUoumlsvSAS3xzHy1uR+vId15TZUcrF291Jwn +gf7OO++k2bNnpw0bNqTDDz88BHR2fsX9UxAbdW2fdNJJsYkiR4cOHaIPWt3VnMMc +rr/++thk8Oyzzw5RDWOYc92JJ56Y7r///tSlS5f0/vvvp8mTJ6cbbrghNjbkOWmN +iGl+9iaF1eM/Kq3SArp6PW+v1gRMwARMwARMwARMwARMwARMwARMoPAJVHkBLemJ +AFbSGGmp35s0aZIWLVqURo4cmS644IIQmuoqVg1F0c3/spvn/fGPfwxpi1Cl1xjZ +S00E6d0nnngiNtJTmlqiuGjFRVkS0NkNCRlfvxeV5vpdncvauFDVGIjpn//85yGo ++a65lqZjGT4kq5Haxx9/fPRLI/PZWHDPPfeM8XQfxiVtzjxuvPHG3L8g6k/ojmYT +w9atW6dHH300tWzZMp5Tr1694vmo3gQ5zuuu4ij8/4B+7AosoH8sMZ9vAiZgAiZg +AiZgAiZgAiZgAiZgAiZgAluWQJUX0FmRqnoK0raIVSSo0sr0DrMpH3UPHAhTUrZI +6KKdz3pkJHBnzZoVG+c1bNgwNhSk1oLuYjqhqZnQWEhtBC3iFxmc7YEui4CWHNcc +uR/ja0zJ7qIiWRsqMq+iUlrrU0K6uI8o1zKG7k/VCB3QnTp1iv5n0t+Sz0hqxhw3 +blyaOHFipMbZkJG5MR/qPxDNbOS4bNmyNGXKlNS2bdtENQc1KVR2fP755yH5uS8C +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 +o0/Ec7z44oupS5cu6cEHH0yDBg2KaA7iOhCNBx98cHr55ZfTE088kW677bbItuY7 +LYLI+aqmFp/sYnfKus4uWlfe+deVMeGr2j01L6lgppJ94MCBMX48hKBSXwKZ45T7 +zfxgowKeLOhnnnkmqt6R0Mx7jmMu6Zyq1udc2mMBnQs9n2sCJmACJmACJmACJmAC +JmACJmACJmACFU8g7wU0yBBuyn9GziGVyX4mV3fKlCkh47ILunHsLbfcku65556I +sKhMAU0FNAKZKBGqlRHGqnJFQNI+vp8wYULk/XL8I488ki655JJUv379kMxISPpK +7vPNN98cVbBcJxu9QdW3YhuIH5kxY0ZkRVNty7HKkeYYVUBbQJf/D5IxYpwZ8wYN +GkQUx9ixY2MBSTZVPzNGipnRWGnBQV6Zz7feemssQknlOw9juG72gUL596b872AB +Xf6MfQcTMAETMAETMAETMAETMAETMAETMAETKEsCeS+gFVchaYqcIyOZmIqOHTum +SZMmhYRD8CpqgkgKcnNHjhxZ6REcVLgiH2k3chl5jBTWgoRUtBK/MX78+KJca6q6 +//SnP/1bBEfPnj2jWpbsZ+QjYhMxrYXoeKXfvE6bNi099NBD8ar7Izgl87MsC01g +luWPp6yuBXseNDAP4M2YP/vsszF/mQvMXeaH8p95zzl8pyxvfgd//OMf0/3331+U +B12IUSoW0GU163wdEzABEzABEzABEzABEzABEzABEzABE6gYAgUhoJG1quRFuiFy +kXhHHHFEmjp1atpll11CPlMFjIDlO+QzVaOVnQGt7GeqnDt37pyaNWuW7r333qja +prKV13322SetXr26SBAjG1X9St+o4D766KNj33vvvRd9VO4zVbD0HSHN9+zv0aNH ++vrrr9MXX3wRx6rq2gK6Yn502bvAngcGzGHeU6nPOPEA5bXXXkuHH354UfU+Aprv +GE+919znlcrnfv36pXnz5sWDBWWjV3yvyu+OFtDlx9ZXNgETMAETMAETMAETMAET +MAETMAETMIHyIJD3AprqUElWxDN5yXvssUfasGFDyLjRo0dHBSl/WoQQqUvO7l13 +3RW5uXzmPOR1duE3gJd3DAXSkeiF7777LvKbWYjukEMOiSpuZLHEObnNyGJVwm7Z +siWkMp+Rj4cddlhUPC9dujSOk8BW7AbHKROYVz4rY7o8JpavWToCGiNFoZxyyikh +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 +7otFLqmOJm+cqvuS8sGrIhML6Ko4Km6TCZiACZiACZiACZiACZiACZiACZiACfw6 +gbwX0Mg0KoAl5Kjw7NixY2QlI2ap9Pzb3/4WC/ohoHfeeef0448/FkURVLaAllRE +BiIL6QcCGnHOd+wntxqJyEZ/GzVqlFq3bp0effTRomxgCWyOyWZZuwI6v3/+W6uA +Zk4gphXfwrxhscoBAwbEHOIcHlxQJc1DFn4DCxYsSG3atImKeeJptHBlZc//7R0d +C+jtJebjTcAETMAETMAETMAETMAETMAETMAETKByCeS9gFbMANJNC62x8OCUKVOi +OhhZh4zr1atXevXVV0PAIaAReFm5V1nDQDuQxKrkRhbyHnHIpsgN+qaFFumPNs6V +ZFbWsxZPdAV0ZY1q2d2XMc1WQGdzu5k7ZDszL9asWZPefffd1LJly5DLks8S1cx5 +fgOzZ8+O43lok7122bW4fK9kAV2+fH11EzABEzABEzABEzABEzABEzABEzABEyhr +AnkvoJFzxAog05BuP/30U2rfvn167rnnotpZCwl269YtvfzyyyGlEbZUGBNXUFUq +QFXBTAV0dgFEKp5pK9Xc9E/RCQhpFlHkWDZFefCZa/FZedBlPWl8vYojoIckyvTW +Q4bswpI8VGGBwfPOOy/ynqmC1sKWvOc3wLx69tlnQ0I3btw4bdiwIR7MVJX5v61E +LaC3lZSPMwETMAETMAETMAETMAETMAETMAETMIGqQSDvBTSCjWphqjoRcYi1k046 +KT3//PNFebfsO+2009JXX30VYpbjFXFR2cOAWFTUht7zyh99o52q5GYf0hwpTawI +UpHvJZ/VF47LCsrK7qPvX3oCeoigXO/i48r3bPqfAIMHD07HHHNMOuigg+J/BPDQ +AgHN9zywuPjii9OkSZPiO6qiLaBLPzY+0wRMwARMwARMwARMwARMwARMwARMwARM +oGQCeS+glYNLV/fZZ5+IIujcuXORgP7HP/6RXnjhhagOrVmzZlRIqzqURduoLK7M +TdJZMRwIwayAZqE5xKEqWWkrld3sY1OUCO8lnhXTYBFdmSNbdveWdNa80JU1vsS2 +EKnBopvkO2vr0aNHCGeyn5lXzJW5c+cm/jcA1c88yEBC59PmCuh8Gi231QRMwARM +wARMwARMwARMwARMwARMwARSynsBTQQHkpaqZoQyYhYB/dRTT6WddtopKoHvu+++ +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 +VFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBQygfQYUUEABBRRQQAEFFFBAAQUUUEAB +BRRQQAEFahEwgK6F1UEVUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFDKB9BhRQQAEF +FFBAAQUUUEABBRRQQAEFFFBAAQVqETCAroXVQRVQQAEFFFBAAQUUUEABBRRQQAEF +FFBAAQUMoH0GFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBWoRMICuhdVBFVBAAQUU +UEABBRRQQAEFFFBAAQUUUEABBQygfQYUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEF +ahEwgK6F1UEVUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFDKB9BhRQQAEFFFBAAQUU +UEABBRRQQAEFFFBAAQVqETCAroXVQRVQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUM +oH0GFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBWoRMICuhdVBFVBAAQUUUEABBRRQ +QAEFFFBAAQUUUEABBQygfQYUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFahEwgK6F +1UEVUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFDKB9BhRQQAEFFFBAAQUUUEABBRRQ +QAEFFFBAAQVqETCAroXVQRVQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUMoH0GFFBA +AQUUUEABBRRQQAEFFFBAAQUUUEABBWoRMICuhdVBFVBAAQUUUEABBRRQQAEFFFBA +AQUUUEABBQygfQYUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFahEwgK6F1UEVUEAB +BRRQQAEFFFBAAQUUUEABBRRQQAEFDKB9BhRQQAEFFFBAAQUUUEABBRRQQAEFFFBA +AQVqETCAroXVQRVQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUMoH0GFFBAAQUUUEAB +BRRQQAEFFFBAAQUUUEABBWoRMICuhdVBFVBAAQUUUEABBRRQQAEFFFBAAQUUUEAB +BQygfQYUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFahEwgK6F1UEVUEABBRRQQAEF +FFBAAQUUUEABBRRQQAEFDKB9BhRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQVqETCA +roXVQRVQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUMoH0GFFBAAQUUUEABBRRQQAEF +FFBAAQUUUEABBWoRMICuhdVBFVBAAQUUUEABBRRQQAEFFFBAAQUUUEABBQygfQYU +UEABBRRQQAEFFFBAAQUUUEABBRRQQAEFahEwgK6F1UEVUEABBRRQQAEFFFBAAQUU +UEABBRRQQAEFDKB9BhRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQVqETCAroXVQRVQ +QAEFFFBAAQUUUEABBRRQQAEFFFBAAQUMoH0GFFBAAQUUUEABBRRQQAEFFFBAAQUU +UEABBWoRMICuhdVBFVBAAQUUUEABBRRQQAEFFFBAAQUUUEABBQygfQYUUEABBRRQ +QAEFFFBAAQUUUEABBRRQQAEFahEwgK6F1UEVUEABBRRQQAEFFFBAAQUUUEABBRRQ +QAEFDKB9BhRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQVqETCAroXVQRVQQAEFFFBA +AQUUUEABBRRQQAEFFFBAAQUMoH0GFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBWoR +MICuhdVBFVBAAQUUUEABBRRQQAEFFFBAAQUUUEABBQygfQYUUEABBRRQQAEFFFBA +AQUUUEABBRRQQAEFahEwgK6F1UEVUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFDKB9 +BhRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQVqETCAroXVQRVQQAEFFFBAAQUUUEAB +BRRQQAEFFFBAAQUMoH0GFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBWoRMICuhdVB +FVBAAQUUUEABBRRQQAEFFFBAAQUUUEABBQygfQYUUEABBRRQQAEFFFBAAQUUUEAB +BRRQQAEFahEwgK6F1UEVUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFDKB9BhRQQAEF +FFBAAQUUUEABBRRQQAEFFFBAAQVqETCAroXVQRVQQAEFFFBAAQUUUEABBRRQQAEF +FFBAAQUMoH0GFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBWoRMICuhdVBFVBAAQUU +UEABBRRQQAEFFFBAAQUUUEABBQygfQYUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEF +ahEwgK6F1UEVUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFDKB9BhRQQAEF/r927JAG +AACAYZh/11MxVgMHzdEIECBAgAABAgQIECBAgAABAgQWAQF6YTVKgAABAgQIECBA +gAABAgQIECBAgAABAgK0DxAgQIAAAQIECBAgQIAAAQIECBAgQIDAIiBAL6xGCRAg +QIAAAQIECBAgQIAAAQIECBAgQECA9gECBAgQIECAAAECBAgQIECAAAECBAgQWAQE +6IXVKAECBAgQIECAAAECBAgQIECAAAECBAgI0D5AgAABAgQIECBAgAABAgQIECBA +gAABAouAAL2wGiVAgAABAgQIECBAgAABAgQIECBAgAABAdoHCBAgQIAAAQIECBAg +QIAAAQIECBAgQGAREKAXVqMECBAgQIAAAQIECBAgQIAAAQIECBAgIED7AAECBAgQ +IECAAAECBAgQIECAAAECBAgsAgL0wmqUAAECBAgQIECAAAECBAgQIECAAAECBARo +HyBAgAABAgQIECBAgAABAgQIECBAgACBRUCAXliNEiBAgAABAgQIECBAgAABAgQI +ECBAgIAA7QMECBAgQIAAAQIECBAgQIAAAQIECBAgsAgI0AurUQIECBAgQIAAAQIE +CBAgQIAAAQIECBAQoH2AAAECBAgQIECAAAECBAgQIECAAAECBBYBAXphNUqAAAEC +BAgQIECAAAECBAgQIECAAAECArQPECBAgAABAgQIECBAgAABAgQIECBAgMAiIEAv +rEYJECBAgAABAgQIECBAgAABAgQIECBAQID2AQIECBAgQIAAAQIECBAgQIAAAQIE +CBBYBATohdUoAQIECBAgQIAAAQIECBAgQIAAAQIECAjQPkCAAAECBAgQIECAAAEC +BAgQIECAAAECi4AAvbAaJUCAAAECBAgQIECAAAECBAgQIECAAAEB2gcIECBAgAAB +AgQIECBAgAABAgQIECBAYBEQoBdWowQIECBAgAABAgQIECBAgAABAgQIECAgQPsA +AQIECBAgQIAAAQIECBAgQIAAAQIECCwCAvTCapQAAQIECBAgQIAAAQIECBAgQIAA +AQIEBGgfIECAAAECBAgQIECAAAECBAgQIECAAIFFQIBeWI0SIECAAAECBAgQIECA +AAECBAgQIECAgADtAwQIECBAgAABAgQIECBAgAABAgQIECCwCAjQC6tRAgQIECBA +gAABAgQIECBAgAABAgQIEBCgfYAAAQIECBAgQIAAAQIECBAgQIAAAQIEFgEBemE1 +SoAAAQIECBAgQIAAAQIECBAgQIAAAQICtA8QIECAAAECBAgQIECAAAECBAgQIECA +wCIgQC+sRgkQIECAAAECBAgQIECAAAECBAgQIEBAgPYBAgQIECBAgAABAgQIECBA +gAABAgQIEFgEBOiF1SgBAgQIECBAgAABAgQIECBAgAABAgQICNA+QIAAAQIECBAg +QIAAAQIECBAgQIAAAQKLgAC9sBolQIAAAQIECBAgQIAAAQIECBAgQIAAAQHaBwgQ +IECAAAECBAgQIECAAAECBAgQIEBgERCgF1ajBAgQIECAAAECBAgQIECAAAECBAgQ +ICBA+wABAgQIECBAgAABAgQIECBAgAABAgQILAIC9MJqlAABAgQIECBAgAABAgQI +ECBAgAABAgQEaB8gQIAAAQIECBAgQIAAAQIECBAgQIAAgUVAgF5YjRIgQIAAAQIE +CBAgQIAAAQIECBAgQICAAO0DBAgQIECAAAECBAgQIECAAAECBAgQILAICNALq1EC +BAgQIECAAAECBAgQIECAAAECBAgQEKB9gAABAgQIECBAgAABAgQIECBAgAABAgQW +AQF6YTVKgAABAgQIECBAgAABAgQIECBAgAABAgK0DxAgQIAAAQIECBAgQIAAAQIE +CBAgQIDAIiBAL6xGCRAgQIAAAQIECBAgQIAAAQIECBAgQECA9gECBAgQIECAAAEC +BAgQIECAAAECBAgQWAQE6IXVKAECBAgQIECAAAECBAgQIECAAAECBAgI0D5AgAAB +AgQIECBAgAABAgQIECBAgAABAouAAL2wGiVAgAABAgQIECBAgAABAgQIECBAgAAB +AdoHCBAgQIAAAQIECBAgQIAAAQIECBAgQGAREKAXVqMECBAgQIAAAQIECBAgQIAA +AQIECBAgIED7AAECBAgQIECAAAECBAgQIECAAAECBAgsAgL0wmqUAAECBAgQIECA +AAECBAgQIECAAAECBARoHyBAgAABAgQIECBAgAABAgQIECBAgACBRUCAXliNEiBA +gAABAgQIECBAgAABAgQIECBAgIAA7QMECBAgQIAAAQIECBAgQIAAAQIECBAgsAgI +0AurUQIECBAgQIAAAQIECBAgQIAAAQIECBAQoH2AAAECBAgQIECAAAECBAgQIECA +AAECBBYBAXphNUqAAAECBAgQIECAAAECBAgQIECAAAECArQPECBAgAABAgQIECBA +gAABAgQIECBAgMAiIEAvrEYJECBAgAABAgQIECBAgAABAgQIECBAQID2AQIECBAg +QIAAAQIECBAgQIAAAQIECBBYBATohdUoAQIECBAgQIAAAQIECBAgQIAAAQIECAjQ +PkCAAAECBAgQIECAAAECBAgQIECAAAECi4AAvbAaJUCAAAECBAgQIECAAAECBAgQ +IECAAAEB2gcIECBAgAABAgQIECBAgAABAgQIECBAYBEQoBdWowQIECBAgAABAgQI +ECBAgAABAgQIECAgQPsAAQIECBAgQIAAAQIECBAgQIAAAQIECCwCAvTCapQAAQIE +CBAgQIAAAQIECBAgQIAAAQIEBGgfIECAAAECBAgQIECAAAECBAgQIECAAIFFQIBe +WI0SIECAAAECBAgQIECAAAECBAgQIECAgADtAwQIECBAgAABAgQIECBAgAABAgQI +ECCwCAjQC6tRAgQIECBAgAABAgQIECBAgAABAgQIEBCgfYAAAQIECBAgQIAAAQIE +CBAgQIAAAQIEFgEBemE1SoAAAQIECBAgQIAAAQIECBAgQIAAAQICtA8QIECAAAEC +BAgQIECAAAECBAgQIECAwCIgQC+sRgkQIECAAAECBAgQIECAAAECBAgQIEBAgPYB +AgQIECBAgAABAgQIECBAgAABAgQIEFgEBOiF1SgBAgQIECBAgAABAgQIECBAgAAB +AgQICNA+QIAAAQIECBAgQIAAAQIECBAgQIAAAQKLgAC9sBolQIAAAQIECBAgQIAA +AQIECBAgQIAAAQHaBwgQIECAAAECBAgQIECAAAECBAgQIEBgERCgF1ajBAgQIECA +AAECBAgQIECAAAECBAgQICBA+wABAgQIECBAgAABAgQIECBAgAABAgQILAIC9MJq +lAABAgQIECBAgAABAgQIECBAgAABAgQEaB8gQIAAAQIECBAgQIAAAQIECBAgQIAA +gUVAgF5YjRIgQIAAAQIECBAgQIAAAQIECBAgQICAAO0DBAgQIECAAAECBAgQIECA +AAECBAgQILAICNALq1ECBAgQIECAAAECBAgQIECAAAECBAgQEKB9gAABAgQIECBA +gAABAgQIECBAgAABAgQWAQF6YTVKgAABAgQIECBAgAABAgQIECBAgAABAgK0DxAg +QIAAAQIECBAgQIAAAQIECBAgQIDAIiBAL6xGCRAgQIAAAQIECBAgQIAAAQIECBAg +QECA9gECBAgQIECAAAECBAgQIECAAAECBAgQWAQE6IXVKAECBAgQIECAAAECBAgQ +IECAAAECBAgI0D5AgAABAgQIECBAgAABAgQIECBAgAABAouAAL2wGiVAgAABAgQI +ECBAgAABAgQIECBAgAABAdoHCBAgQIAAAQIECBAgQIAAAQIECBAgQGAREKAXVqME +CBAgQIAAAQIECBAgQIAAAQIECBAgIED7AAECBAgQIECAAAECBAgQIECAAAECBAgs +AgL0wmqUAAECBAgQIECAAAECBAgQIECAAAECBARoHyBAgAABAgQIECBAgAABAgQI +ECBAgACBRUCAXliNEiBAgAABAgQIECBAgAABAgQIECBAgIAA7QMECBAgQIAAAQIE +CBAgQIAAAQIECBAgsAgI0AurUQIECBAgQIAAAQIECBAgQIAAAQIECBAQoH2AAAEC +BAgQIECAAAECBAgQIECAAAECBBYBAXphNUqAAAECBAgQIECAAAECBAgQIECAAAEC +ArQPECBAgAABAgQIECBAgAABAgQIECBAgMAiIEAvrEYJECBAgAABAgQIECBAgAAB +AgQIECBAIBsqBCbsggzYAAAAAElFTkSuQmCC` + +module.exports = function makeImages (cb) { + let images = {} + makeImage(singlePortrait, (image) => { + images.singlePortrait = image + cb(images) + }) +} + diff --git a/test/view/canvas.test.js b/test/view/canvas.test.js index 8dc83e3..14d4240 100644 --- a/test/view/canvas.test.js +++ b/test/view/canvas.test.js @@ -1,18 +1,34 @@ let assert = require('assert') +let imagediff = require('imagediff') let Canvas = require('../../app/view/canvas') +let makeTestImages = require('../data/image') +let makeImageFixtures = require('../fixture/image') describe('Canvas', function () { - it('should draw only Image objects', function () { + it('should draw only Image objects', () => { let canvas = new Canvas() let image = new window.Image() - assert.throws(canvas.draw, 'Invalid image') - assert.throws(canvas.draw.bind(canvas, image, true), 'Invalid image') - assert.doesNotThrow(canvas.draw.bind(canvas, image, true, image), 'Invalid image') + assert.throws(canvas.drawImage, 'Invalid image') + + canvas.options.doublePage = true + + assert.throws(canvas.drawImage.bind(canvas, image), 'Invalid image') + assert.doesNotThrow(canvas.drawImage.bind(canvas, image, image), 'Invalid image') }) - it('should draw a single page') + it('should draw a single page', () => { + let canvas = new Canvas() + // TODO refactor how images are generated (do one at a time) + // TODO update fixture once centering is working again + makeTestImages((testImages) => { + makeImageFixtures((fixtureImages) => { + canvas.drawImage(testImages.portrait1) + assert(imagediff.equal(canvas.canvas, fixtureImages.singlePortrait)) + }) + }) + }) it('should draw a double page') @@ -28,5 +44,9 @@ describe('Canvas', function () { it('should manual zoom') + it('should always display the canvas 100% of window width, even when drawing smaller images') + it('should always center pages') + + it('should prevent smaller images from being drawn on top of bigger ones') })