prototypo-library
Version:
This is prototypo parametric font library
1,712 lines (1,378 loc) • 711 kB
JavaScript
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 117);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
if (true) {
module.exports = __webpack_require__(118);
} else {
module.exports = require('./dist/react-hot-loader.development.js');
}
/***/ }),
/* 1 */
/***/ (function(module, exports) {
module.exports = function(module) {
if(!module.webpackPolyfill) {
module.deprecate = function() {};
module.paths = [];
// module.parent = undefined by default
if(!module.children) module.children = [];
Object.defineProperty(module, "loaded", {
enumerable: true,
get: function() {
return module.l;
}
});
Object.defineProperty(module, "id", {
enumerable: true,
get: function() {
return module.i;
}
});
module.webpackPolyfill = 1;
}
return module;
};
/***/ }),
/* 2 */
/***/ (function(module, exports) {
module.exports = function(originalModule) {
if(!originalModule.webpackPolyfill) {
var module = Object.create(originalModule);
// module.parent = undefined by default
if(!module.children) module.children = [];
Object.defineProperty(module, "loaded", {
enumerable: true,
get: function() {
return module.l;
}
});
Object.defineProperty(module, "id", {
enumerable: true,
get: function() {
return module.i;
}
});
Object.defineProperty(module, "exports", {
enumerable: true,
});
module.webpackPolyfill = 1;
}
return module;
};
/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
/**
* Checks if `value` is classified as an `Array` object.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an array, else `false`.
* @example
*
* _.isArray([1, 2, 3]);
* // => true
*
* _.isArray(document.body.children);
* // => false
*
* _.isArray('abc');
* // => false
*
* _.isArray(_.noop);
* // => false
*/
var isArray = Array.isArray;
module.exports = isArray;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(isArray, "isArray", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/isArray.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
var freeGlobal = __webpack_require__(71);
/** Detect free variable `self`. */
var freeSelf = (typeof self === "undefined" ? "undefined" : _typeof(self)) == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();
module.exports = root;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(freeSelf, "freeSelf", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_root.js");
reactHotLoader.register(root, "root", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_root.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
var freeGlobal = __webpack_require__(100);
/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();
module.exports = root;
/***/ }),
/* 6 */
/***/ (function(module, exports) {
/**
* Checks if `value` is classified as an `Array` object.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an array, else `false`.
* @example
*
* _.isArray([1, 2, 3]);
* // => true
*
* _.isArray(document.body.children);
* // => false
*
* _.isArray('abc');
* // => false
*
* _.isArray(_.noop);
* // => false
*/
var isArray = Array.isArray;
module.exports = isArray;
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var baseIsNative = __webpack_require__(125),
getValue = __webpack_require__(130);
/**
* Gets the native function at `key` of `object`.
*
* @private
* @param {Object} object The object to query.
* @param {string} key The key of the method to get.
* @returns {*} Returns the function if it's native, else `undefined`.
*/
function getNative(object, key) {
var value = getValue(object, key);
return baseIsNative(value) ? value : undefined;
}
module.exports = getNative;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(getNative, "getNative", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_getNative.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
/**
* Checks if `value` is the
* [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an object, else `false`.
* @example
*
* _.isObject({});
* // => true
*
* _.isObject([1, 2, 3]);
* // => true
*
* _.isObject(_.noop);
* // => true
*
* _.isObject(null);
* // => false
*/
function isObject(value) {
var type = _typeof(value);
return value != null && (type == 'object' || type == 'function');
}
module.exports = isObject;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(isObject, "isObject", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/isObject.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
/**
* Checks if `value` is object-like. A value is object-like if it's not `null`
* and has a `typeof` result of "object".
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
* @example
*
* _.isObjectLike({});
* // => true
*
* _.isObjectLike([1, 2, 3]);
* // => true
*
* _.isObjectLike(_.noop);
* // => false
*
* _.isObjectLike(null);
* // => false
*/
function isObjectLike(value) {
return value != null && _typeof(value) == 'object';
}
module.exports = isObjectLike;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(isObjectLike, "isObjectLike", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/isObjectLike.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var isFunction = __webpack_require__(70),
isLength = __webpack_require__(43);
/**
* Checks if `value` is array-like. A value is considered array-like if it's
* not a function and has a `value.length` that's an integer greater than or
* equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is array-like, else `false`.
* @example
*
* _.isArrayLike([1, 2, 3]);
* // => true
*
* _.isArrayLike(document.body.children);
* // => true
*
* _.isArrayLike('abc');
* // => true
*
* _.isArrayLike(_.noop);
* // => false
*/
function isArrayLike(value) {
return value != null && isLength(value.length) && !isFunction(value);
}
module.exports = isArrayLike;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(isArrayLike, "isArrayLike", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/isArrayLike.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 11 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (immutable) */ __webpack_exports__["a"] = constantOrFormula;
/* harmony export (immutable) */ __webpack_exports__["b"] = createContour;
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return memoizeSplit; });
/* unused harmony export transformByName */
/* unused harmony export changeTransformOrigin */
/* unused harmony export transformNode */
/* harmony export (immutable) */ __webpack_exports__["d"] = transformGlyph;
/* unused harmony export glyphBoundingBox */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__linear__ = __webpack_require__(29);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__precursor_Path__ = __webpack_require__(85);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__precursor_Formula__ = __webpack_require__(96);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__precursor_Constant__ = __webpack_require__(224);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_memoize_immutable__ = __webpack_require__(58);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_memoize_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_memoize_immutable__);
(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return _sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function constantOrFormula(source, cursor) {
if (_typeof(source) === 'object' && source !== null && source._operation) {
// eslint-disable-line no-underscore-dangle, max-len
return new __WEBPACK_IMPORTED_MODULE_2__precursor_Formula__["a" /* default */](source, cursor);
}
return new __WEBPACK_IMPORTED_MODULE_3__precursor_Constant__["a" /* default */](source, cursor);
}
function createContour(source, i) {
if (source.skeleton && source.closed) {
return new __WEBPACK_IMPORTED_MODULE_1__precursor_Path__["a" /* ClosedSkeletonPath */](source, i);
} else if (source.skeleton) {
return new __WEBPACK_IMPORTED_MODULE_1__precursor_Path__["c" /* SkeletonPath */](source, i);
}
return new __WEBPACK_IMPORTED_MODULE_1__precursor_Path__["b" /* SimplePath */](source, i);
}
function fastSplit(string) {
return string.split('.');
}
var memoizeSplit = __WEBPACK_IMPORTED_MODULE_4_memoize_immutable___default()(fastSplit, {
cache: new Map()
});
var transformByName = {
skewX: function skewX(node, deg) {
var center = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
x: 0,
y: 0
};
var theta = deg;
var skew = [1, Math.tan(theta), 0, 1, 0, 0];
var matrix = changeTransformOrigin(center, skew);
return Object(__WEBPACK_IMPORTED_MODULE_0__linear__["h" /* transform2D */])(matrix, node);
},
skewY: function skewY(node, deg) {
var center = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
x: 0,
y: 0
};
var theta = deg;
var skew = [1, 0, Math.tan(theta), 1, 0, 0];
var matrix = changeTransformOrigin(center, skew);
return Object(__WEBPACK_IMPORTED_MODULE_0__linear__["h" /* transform2D */])(matrix, node);
},
rotate: function rotate(node, deg) {
var center = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
x: 0,
y: 0
};
var theta = deg;
var rotate = [Math.cos(theta), -Math.sin(theta), Math.sin(theta), Math.cos(theta), 0, 0];
var matrix = changeTransformOrigin(center, rotate);
return Object(__WEBPACK_IMPORTED_MODULE_0__linear__["h" /* transform2D */])(matrix, node);
},
translateX: function translateX(node, offset) {
var translate = [1, 0, 0, 1, offset, 0];
return Object(__WEBPACK_IMPORTED_MODULE_0__linear__["h" /* transform2D */])(translate, node);
},
translateY: function translateY(node, offset) {
var translate = [1, 0, 0, 1, 0, offset];
return Object(__WEBPACK_IMPORTED_MODULE_0__linear__["h" /* transform2D */])(translate, node);
},
scaleX: function scaleX(node, scale) {
var center = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
x: 0,
y: 0
};
var scaleMatrix = [scale, 0, 0, 1, 0, 0];
var matrix = changeTransformOrigin(center, scaleMatrix);
return Object(__WEBPACK_IMPORTED_MODULE_0__linear__["h" /* transform2D */])(matrix, node);
},
scaleY: function scaleY(node, scale) {
var center = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
x: 0,
y: 0
};
var scaleMatrix = [1, 0, 0, scale, 0, 0];
var matrix = changeTransformOrigin(center, scaleMatrix);
return Object(__WEBPACK_IMPORTED_MODULE_0__linear__["h" /* transform2D */])(matrix, node);
}
};
function changeTransformOrigin(origin, transform) {
var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
var preTransform = [z, 0, 0, z, -origin.x, -origin.y];
var postTransform = [z, 0, 0, z, origin.x, origin.y];
return Object(__WEBPACK_IMPORTED_MODULE_0__linear__["d" /* matrixMul */])(Object(__WEBPACK_IMPORTED_MODULE_0__linear__["d" /* matrixMul */])(preTransform, transform), postTransform);
}
/* eslint-disable */
function transformNode(node, transforms, origin) {
for (var i = 0; i < transforms.length; i++) {
var _transforms$i = _slicedToArray(transforms[i], 2),
name = _transforms$i[0],
param = _transforms$i[1];
exeTransformOnNode(name, node, param, origin);
node.addedTransform.push({
name: name,
param: param
});
if (node.handleIn) {
exeTransformOnNode(name, node.handleIn, param, origin);
}
if (node.handleOut) {
exeTransformOnNode(name, node.handleOut, param, origin);
}
}
}
function transformGlyph(opDone, transformTuples) {
for (var i = 0; i < opDone.contours.length; i++) {
var contour = opDone.contours[i];
for (var j = 0; j < contour.nodes.length; j++) {
var node = contour.nodes[j];
node.addedTransform = []; // eslint-disable-line no-param-reassign
if (node.expandedTo) {
node.expandedTo[0].addedTransform = []; // eslint-disable-line no-param-reassign
node.expandedTo[1].addedTransform = []; // eslint-disable-line no-param-reassign
}
var transforms = _toConsumableArray(transformTuples).concat([[contour.transforms || [], contour.transformOrigin]]);
for (var k = 0; k < transforms.length; k++) {
var _transforms$k = _slicedToArray(transforms[k], 2),
transform = _transforms$k[0],
origin = _transforms$k[1];
if (node.expandedTo) {
transformNode(node.expandedTo[0], transform, origin);
transformNode(node.expandedTo[1], transform, origin);
transformNode(node, transform, origin);
} else {
transformNode(node, transform, origin);
}
}
}
}
}
/* eslint-enable */
function exeTransformOnNode(name, node, param, origin) {
var _transformByName$name = transformByName[name](node, param, origin),
x = _transformByName$name.x,
y = _transformByName$name.y;
var _transformByName$name2 = transformByName[name]({
x: node.xBase,
y: node.yBase
}, param, origin),
xBase = _transformByName$name2.x,
yBase = _transformByName$name2.y;
node.x = Math.round(x); // eslint-disable-line no-param-reassign
node.y = Math.round(y); // eslint-disable-line no-param-reassign
node.xBase = Math.round(xBase); // eslint-disable-line no-param-reassign
node.yBase = Math.round(yBase); // eslint-disable-line no-param-reassign
}
function glyphBoundingBox(glyph) {
var minX = Infinity;
var maxX = -Infinity;
var minY = Infinity;
var maxY = -Infinity;
glyph.otContours.forEach(function (contour) {
contour.forEach(function (bezier) {
bezier.forEach(function (node) {
minX = Math.min(node.x, minX);
maxX = Math.max(node.x, maxX);
minY = Math.min(node.y, minY);
maxY = Math.max(node.y, maxY);
});
});
});
return [{
x: minX,
y: minY
}, {
x: maxX,
y: maxY
}];
}
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(constantOrFormula, "constantOrFormula", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
reactHotLoader.register(createContour, "createContour", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
reactHotLoader.register(fastSplit, "fastSplit", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
reactHotLoader.register(memoizeSplit, "memoizeSplit", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
reactHotLoader.register(transformByName, "transformByName", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
reactHotLoader.register(changeTransformOrigin, "changeTransformOrigin", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
reactHotLoader.register(transformNode, "transformNode", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
reactHotLoader.register(transformGlyph, "transformGlyph", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
reactHotLoader.register(exeTransformOnNode, "exeTransformOnNode", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
reactHotLoader.register(glyphBoundingBox, "glyphBoundingBox", "/home/franzp/prototypo/app/scripts/prototypo.js/utils/generic.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(2)(module)))
/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
var baseIsNative = __webpack_require__(266),
getValue = __webpack_require__(269);
/**
* Gets the native function at `key` of `object`.
*
* @private
* @param {Object} object The object to query.
* @param {string} key The key of the method to get.
* @returns {*} Returns the function if it's native, else `undefined`.
*/
function getNative(object, key) {
var value = getValue(object, key);
return baseIsNative(value) ? value : undefined;
}
module.exports = getNative;
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var _Symbol = __webpack_require__(14),
getRawTag = __webpack_require__(126),
objectToString = __webpack_require__(127);
/** `Object#toString` result references. */
var nullTag = '[object Null]',
undefinedTag = '[object Undefined]';
/** Built-in value references. */
var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;
/**
* The base implementation of `getTag` without fallbacks for buggy environments.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the `toStringTag`.
*/
function baseGetTag(value) {
if (value == null) {
return value === undefined ? undefinedTag : nullTag;
}
return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
}
module.exports = baseGetTag;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(nullTag, "nullTag", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_baseGetTag.js");
reactHotLoader.register(undefinedTag, "undefinedTag", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_baseGetTag.js");
reactHotLoader.register(symToStringTag, "symToStringTag", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_baseGetTag.js");
reactHotLoader.register(baseGetTag, "baseGetTag", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_baseGetTag.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var root = __webpack_require__(4);
/** Built-in value references. */
var _Symbol = root.Symbol;
module.exports = _Symbol;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(_Symbol, "Symbol", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_Symbol.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var arrayLikeKeys = __webpack_require__(133),
baseKeys = __webpack_require__(139),
isArrayLike = __webpack_require__(10);
/**
* Creates an array of the own enumerable property names of `object`.
*
* **Note:** Non-object values are coerced to objects. See the
* [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
* for more details.
*
* @static
* @since 0.1.0
* @memberOf _
* @category Object
* @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
* @example
*
* function Foo() {
* this.a = 1;
* this.b = 2;
* }
*
* Foo.prototype.c = 3;
*
* _.keys(new Foo);
* // => ['a', 'b'] (iteration order is not guaranteed)
*
* _.keys('hi');
* // => ['0', '1']
*/
function keys(object) {
return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}
module.exports = keys;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(keys, "keys", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/keys.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
var baseMatches = __webpack_require__(143),
baseMatchesProperty = __webpack_require__(185),
identity = __webpack_require__(28),
isArray = __webpack_require__(3),
property = __webpack_require__(194);
/**
* The base implementation of `_.iteratee`.
*
* @private
* @param {*} [value=_.identity] The value to convert to an iteratee.
* @returns {Function} Returns the iteratee.
*/
function baseIteratee(value) {
// Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
// See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
if (typeof value == 'function') {
return value;
}
if (value == null) {
return identity;
}
if (_typeof(value) == 'object') {
return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
}
return property(value);
}
module.exports = baseIteratee;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(baseIteratee, "baseIteratee", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_baseIteratee.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var isSymbol = __webpack_require__(27);
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0;
/**
* Converts `value` to a string key if it's not a string or symbol.
*
* @private
* @param {*} value The value to inspect.
* @returns {string|symbol} Returns the key.
*/
function toKey(value) {
if (typeof value == 'string' || isSymbol(value)) {
return value;
}
var result = value + '';
return result == '0' && 1 / value == -INFINITY ? '-0' : result;
}
module.exports = toKey;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(INFINITY, "INFINITY", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_toKey.js");
reactHotLoader.register(toKey, "toKey", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_toKey.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
var Symbol = __webpack_require__(31),
getRawTag = __webpack_require__(243),
objectToString = __webpack_require__(244);
/** `Object#toString` result references. */
var nullTag = '[object Null]',
undefinedTag = '[object Undefined]';
/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
/**
* The base implementation of `getTag` without fallbacks for buggy environments.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the `toStringTag`.
*/
function baseGetTag(value) {
if (value == null) {
return value === undefined ? undefinedTag : nullTag;
}
return (symToStringTag && symToStringTag in Object(value))
? getRawTag(value)
: objectToString(value);
}
module.exports = baseGetTag;
/***/ }),
/* 19 */
/***/ (function(module, exports) {
/**
* Checks if `value` is object-like. A value is object-like if it's not `null`
* and has a `typeof` result of "object".
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
* @example
*
* _.isObjectLike({});
* // => true
*
* _.isObjectLike([1, 2, 3]);
* // => true
*
* _.isObjectLike(_.noop);
* // => false
*
* _.isObjectLike(null);
* // => false
*/
function isObjectLike(value) {
return value != null && typeof value == 'object';
}
module.exports = isObjectLike;
/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var baseAssignValue = __webpack_require__(68),
baseForOwn = __webpack_require__(41),
baseIteratee = __webpack_require__(16);
/**
* Creates an object with the same keys as `object` and values generated
* by running each own enumerable string keyed property of `object` thru
* `iteratee`. The iteratee is invoked with three arguments:
* (value, key, object).
*
* @static
* @memberOf _
* @since 2.4.0
* @category Object
* @param {Object} object The object to iterate over.
* @param {Function} [iteratee=_.identity] The function invoked per iteration.
* @returns {Object} Returns the new mapped object.
* @see _.mapKeys
* @example
*
* var users = {
* 'fred': { 'user': 'fred', 'age': 40 },
* 'pebbles': { 'user': 'pebbles', 'age': 1 }
* };
*
* _.mapValues(users, function(o) { return o.age; });
* // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
*
* // The `_.property` iteratee shorthand.
* _.mapValues(users, 'age');
* // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
*/
function mapValues(object, iteratee) {
var result = {};
iteratee = baseIteratee(iteratee, 3);
baseForOwn(object, function (value, key, object) {
baseAssignValue(result, key, iteratee(value, key, object));
});
return result;
}
module.exports = mapValues;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(mapValues, "mapValues", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/mapValues.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;
/** Used to detect unsigned integer values. */
var reIsUint = /^(?:0|[1-9]\d*)$/;
/**
* Checks if `value` is a valid array-like index.
*
* @private
* @param {*} value The value to check.
* @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
*/
function isIndex(value, length) {
var type = _typeof(value);
length = length == null ? MAX_SAFE_INTEGER : length;
return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
}
module.exports = isIndex;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(MAX_SAFE_INTEGER, "MAX_SAFE_INTEGER", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_isIndex.js");
reactHotLoader.register(reIsUint, "reIsUint", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_isIndex.js");
reactHotLoader.register(isIndex, "isIndex", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_isIndex.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var listCacheClear = __webpack_require__(145),
listCacheDelete = __webpack_require__(146),
listCacheGet = __webpack_require__(147),
listCacheHas = __webpack_require__(148),
listCacheSet = __webpack_require__(149);
/**
* Creates an list cache object.
*
* @private
* @constructor
* @param {Array} [entries] The key-value pairs to cache.
*/
function ListCache(entries) {
var index = -1,
length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
} // Add methods to `ListCache`.
ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
module.exports = ListCache;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(ListCache, "ListCache", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_ListCache.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var eq = __webpack_require__(24);
/**
* Gets the index at which the `key` is found in `array` of key-value pairs.
*
* @private
* @param {Array} array The array to inspect.
* @param {*} key The key to search for.
* @returns {number} Returns the index of the matched value, else `-1`.
*/
function assocIndexOf(array, key) {
var length = array.length;
while (length--) {
if (eq(array[length][0], key)) {
return length;
}
}
return -1;
}
module.exports = assocIndexOf;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(assocIndexOf, "assocIndexOf", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_assocIndexOf.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
/**
* Performs a
* [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* comparison between two values to determine if they are equivalent.
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
* @example
*
* var object = { 'a': 1 };
* var other = { 'a': 1 };
*
* _.eq(object, object);
* // => true
*
* _.eq(object, other);
* // => false
*
* _.eq('a', 'a');
* // => true
*
* _.eq('a', Object('a'));
* // => false
*
* _.eq(NaN, NaN);
* // => true
*/
function eq(value, other) {
return value === other || value !== value && other !== other;
}
module.exports = eq;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(eq, "eq", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/eq.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var getNative = __webpack_require__(7);
/* Built-in method references that are verified to be native. */
var nativeCreate = getNative(Object, 'create');
module.exports = nativeCreate;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(nativeCreate, "nativeCreate", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_nativeCreate.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 26 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
var isKeyable = __webpack_require__(163);
/**
* Gets the data for `map`.
*
* @private
* @param {Object} map The map to query.
* @param {string} key The reference key.
* @returns {*} Returns the map data.
*/
function getMapData(map, key) {
var data = map.__data__;
return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;
}
module.exports = getMapData;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(getMapData, "getMapData", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/_getMapData.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 27 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
var baseGetTag = __webpack_require__(13),
isObjectLike = __webpack_require__(9);
/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';
/**
* Checks if `value` is classified as a `Symbol` primitive or object.
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
* @example
*
* _.isSymbol(Symbol.iterator);
* // => true
*
* _.isSymbol('abc');
* // => false
*/
function isSymbol(value) {
return _typeof(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;
}
module.exports = isSymbol;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(symbolTag, "symbolTag", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/isSymbol.js");
reactHotLoader.register(isSymbol, "isSymbol", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/isSymbol.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 28 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
/**
* This method returns the first argument it receives.
*
* @static
* @since 0.1.0
* @memberOf _
* @category Util
* @param {*} value Any value.
* @returns {*} Returns `value`.
* @example
*
* var object = { 'a': 1 };
*
* console.log(_.identity(object) === object);
* // => true
*/
function identity(value) {
return value;
}
module.exports = identity;
;
(function () {
var reactHotLoader = __webpack_require__(0).default;
var leaveModule = __webpack_require__(0).leaveModule;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(identity, "identity", "/home/franzp/prototypo/app/scripts/prototypo.js/precursor/node_modules/lodash/identity.js");
leaveModule(module);
})();
;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))
/***/ }),
/* 29 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (immutable) */ __webpack_exports__["h"] = transform2D;
/* harmony export (immutable) */ __webpack_exports__["d"] = matrixMul;
/* harmony export (immutable) */ __webpack_exports__["c"] = dot2D;
/* harmony export (immutable) */ __webpack_exports__["a"] = add2D;
/* harmony export (immutable) */ __webpack_exports__["g"] = subtract2D;
/* harmony export (immutable) */ __webpack_exports__["e"] = mulScalar2D;
/* unused harmony export arcToCubicBezier */
/* harmony export (immutable) */ __webpack_exports__["f"] = round2D;
/* harmony export (immutable) */ __webpack_exports__["b"] = distance2D;
/* unused harmony export normalize2D */
(function () {
var enterModule = __webpack_require__(0).enterModule;
enterModule && enterModule(module);
})();
function _sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return _sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }
function transform2D(viewMatrix, p) {
var _viewMatrix = _slicedToArray(viewMatrix, 6),
a = _viewMatrix[0],
b = _viewMatrix[1],
c = _viewMatrix[2],
d = _viewMatrix[3],
tx = _viewMatrix[4],
ty = _viewMatrix[5];
return {
x: a * p.x + b * p.y + tx,
y: c * p.x + d * p.y + ty
};
}
function matrixMul(b, a) {
var _a = _slicedToArray(a, 6),
aa = _a[0],
ab = _a[1],
ac = _a[2],
ad = _a[3],
atx = _a[4],
aty = _a[5];
var _b = _slicedToArray(b, 6),
ba = _b[0],
bb = _b[1],
bc = _b[2],
bd = _b[3],
btx = _b[4],
bty = _b[5];
return [aa * ba + ab * bc, aa * bb + ab * bd, ac * ba + ad * bc, ac * bb + ad * bd, aa * btx + ab * bty + atx, ac * btx + ad * bty + aty];
}
function dot2D(v1, v2) {
return v1.x * v2.x + v1.y * v2.y;
}
function add2D(v1, v2) {
return {
x: v1.x + v2.x,
y: v1.y + v2.y
};
}
function subtract2D(v1, v2) {
return {
x: v1.x - v2.x,
y: v1.y - v2.y
};
}
function mulScalar2D(scalar, v) {
return {
x: scalar * v.x,
y: scalar * v.y
};
}
function parametricAngle(lambda, a, b) {
return Math.atan2(Math.sin(lambda) / b, Math.cos(lambda) / a);
}
function arcToCubicBezier(a, b, t1, t2) {
var major = a > b ? a : b;
var minor = a > b ? b : a;
var firstAngle = Math.PI * 2 * t1;
var secondAngle = Math.PI * 2 * t2;
var firstPoint = {
x: major * Math.cos(firstAngle),
y: minor * Math.sin(firstAngle)
};
var secondPoint = {
x: maj