UNPKG

@dank-inc/sketchy

Version:

A Super-dank sketching library built with ♥ and typescript!

64 lines (63 loc) 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createParams = exports.createCanvas = void 0; var maff_1 = require("./maff"); var color_1 = require("./helpers/color"); var draw_1 = require("./helpers/draw"); var createCanvas = function (el, dimensions) { var canvas = document.querySelector('canvas') || document.createElement('canvas'); el.appendChild(canvas); if (dimensions) { var x = dimensions[0], y = dimensions[1]; canvas.width = x; canvas.height = y; } else { canvas.width = el.clientWidth; canvas.height = el.clientHeight; } return canvas; }; exports.createCanvas = createCanvas; var createParams = function (config) { var _a; var id = config.containerId || ((_a = config.element) === null || _a === void 0 ? void 0 : _a.id) || 'sketchy'; var rootElement = config.element || document.getElementById(id); if (!rootElement) throw new Error("No Root Element Found at ".concat(id)); var canvas = (0, exports.createCanvas)(rootElement, config.dimensions); var context = canvas.getContext('2d'); if (!context) throw new Error("cannot initialize canvas"); var params = { data: config.data || {}, requestId: null, time: config.timeOffset || 0, dt: 0, startTime: +new Date(), width: canvas.width, height: canvas.height, animated: config.animate, context: context, setFilter: function (val) { return (context.filter = val); }, setFillStyle: function (val) { return (context.fillStyle = val); }, setStrokeStyle: function (val) { return (context.strokeStyle = val); }, setBlendMode: function (val) { return (context.globalCompositeOperation = val); }, saver: function (body) { return (0, draw_1.saver)(context, body); }, circle: function (x, y, r, options) { return (0, draw_1.arc)(context, x, y, r, options); }, shape: function (points, options) { return (0, draw_1.drawShape)(context, points, options); }, createGradient: function (c1, c2, x1, y1, x2, y2) { return (0, color_1.createLinearGradient)(context, c1, c2, x1, y1, x2, y2); }, TAU: Math.PI * 2, PI: Math.PI, abs: Math.abs, sin: maff_1.sin, cos: maff_1.cos, t: function () { return 0; }, r: maff_1.r, n: maff_1.n, lerp: maff_1.lerp, stop: function () { return false; }, }; return params; }; exports.createParams = createParams;