Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@exercism/active-background

Package Overview
Dependencies
Maintainers
3
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@exercism/active-background - npm Package Compare versions

Comparing version 0.2.0 to 0.3.0

LICENSE

20

dist/ActiveBackground.d.ts

@@ -1,3 +0,17 @@

import * as React from 'react';
import { IActiveBackground } from './index';
export declare const ActiveBackground: React.FC<IActiveBackground>;
import type { ReactNode } from 'react';
export declare type PatternOptions = Record<string, unknown>;
export interface PatternConstructor<TOptions> {
new (canvas: HTMLCanvasElement, options?: TOptions): ActiveBackgroundPattern;
}
export interface ActiveBackgroundPattern {
render(): void;
start(): void;
stop(): void;
}
export interface ActiveBackgroundProps<TPatternOptions = PatternOptions> {
Pattern: PatternConstructor<TPatternOptions>;
patternOptions?: TPatternOptions;
className?: string;
children: ReactNode;
}
export declare function ActiveBackground({ Pattern, patternOptions, className, children }: ActiveBackgroundProps): JSX.Element;

49

dist/ActiveBackground.js

@@ -8,5 +8,5 @@ "use strict";

});
exports.ActiveBackground = void 0;
exports.ActiveBackground = ActiveBackground;
var React = _interopRequireWildcard(require("react"));
var _react = _interopRequireWildcard(require("react"));

@@ -31,24 +31,23 @@ var _useResizeObserver = require("./hooks/useResizeObserver");

var ActiveBackground = function ActiveBackground(_ref) {
var pattern = _ref.pattern,
_ref$patternOptions = _ref.patternOptions,
patternOptions = _ref$patternOptions === void 0 ? {} : _ref$patternOptions,
function ActiveBackground(_ref) {
var Pattern = _ref.Pattern,
patternOptions = _ref.patternOptions,
className = _ref.className,
children = _ref.children;
var _React$useState = React.useState(null),
_React$useState2 = _slicedToArray(_React$useState, 2),
canvasRef = _React$useState2[0],
setRef = _React$useState2[1];
var _useState = (0, _react.useState)(null),
_useState2 = _slicedToArray(_useState, 2),
canvasRef = _useState2[0],
setRef = _useState2[1];
var onRefSet = React.useCallback(function (ref) {
var onRefSet = (0, _react.useCallback)(function (ref) {
return setRef(ref);
}, [setRef]);
var _React$useState3 = React.useState({}),
_React$useState4 = _slicedToArray(_React$useState3, 2),
update = _React$useState4[0],
setUpdate = _React$useState4[1];
var _useState3 = (0, _react.useState)({}),
_useState4 = _slicedToArray(_useState3, 2),
update = _useState4[0],
setUpdate = _useState4[1];
var updateCanvasSizeAndPosition = React.useCallback(function () {
var updateCanvasSizeAndPosition = (0, _react.useCallback)(function () {
var _canvasRef$parentElem, _canvasRef$parentElem2, _canvasRef$parentElem3, _canvasRef$parentElem4, _canvasRef$parentElem5, _canvasRef$parentElem6, _canvasRef$parentElem7, _canvasRef$parentElem8;

@@ -69,3 +68,3 @@

React.useEffect(updateCanvasSizeAndPosition, [updateCanvasSizeAndPosition]);
(0, _react.useEffect)(updateCanvasSizeAndPosition, [updateCanvasSizeAndPosition]);
(0, _useResizeObserver.useResizeObserver)({

@@ -75,3 +74,3 @@ target: canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.parentElement,

});
React.useEffect(function () {
(0, _react.useEffect)(function () {
if (!canvasRef) {

@@ -81,3 +80,3 @@ return;

var background = new pattern(canvasRef, patternOptions);
var background = new Pattern(canvasRef, patternOptions);
background.start();

@@ -87,6 +86,6 @@ return function () {

};
}, [canvasRef, pattern, patternOptions, update]);
}, [canvasRef, Pattern, patternOptions, update]);
var selfClassName = 'active-background-canvas';
className = className ? "".concat(className, " ").concat(selfClassName) : selfClassName;
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("canvas", {
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("canvas", {
style: {

@@ -97,3 +96,3 @@ position: 'absolute'

ref: onRefSet
}), /*#__PURE__*/React.createElement("div", {
}), /*#__PURE__*/_react["default"].createElement("div", {
style: {

@@ -103,5 +102,3 @@ position: 'relative'

}, children));
};
exports.ActiveBackground = ActiveBackground;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kLnRzeCJdLCJuYW1lcyI6WyJBY3RpdmVCYWNrZ3JvdW5kIiwicGF0dGVybiIsInBhdHRlcm5PcHRpb25zIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJSZWFjdCIsInVzZVN0YXRlIiwiY2FudmFzUmVmIiwic2V0UmVmIiwib25SZWZTZXQiLCJ1c2VDYWxsYmFjayIsInJlZiIsInVwZGF0ZSIsInNldFVwZGF0ZSIsInVwZGF0ZUNhbnZhc1NpemVBbmRQb3NpdGlvbiIsInN0eWxlIiwiaGVpZ2h0IiwicGFyZW50RWxlbWVudCIsIm9mZnNldEhlaWdodCIsIndpZHRoIiwib2Zmc2V0V2lkdGgiLCJ0b3AiLCJvZmZzZXRUb3AiLCJsZWZ0Iiwib2Zmc2V0TGVmdCIsIndpbmRvdyIsImRldmljZVBpeGVsUmF0aW8iLCJ1c2VFZmZlY3QiLCJ0YXJnZXQiLCJjYWxsYmFjayIsImJhY2tncm91bmQiLCJzdGFydCIsInN0b3AiLCJzZWxmQ2xhc3NOYW1lIiwicG9zaXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHTyxJQUFNQSxnQkFBNkMsR0FBRyxTQUFoREEsZ0JBQWdELE9BS3ZEO0FBQUEsTUFKSkMsT0FJSSxRQUpKQSxPQUlJO0FBQUEsaUNBSEpDLGNBR0k7QUFBQSxNQUhKQSxjQUdJLG9DQUhhLEVBR2I7QUFBQSxNQUZKQyxTQUVJLFFBRkpBLFNBRUk7QUFBQSxNQURKQyxRQUNJLFFBREpBLFFBQ0k7O0FBQUEsd0JBQ3dCQyxLQUFLLENBQUNDLFFBQU4sQ0FBeUMsSUFBekMsQ0FEeEI7QUFBQTtBQUFBLE1BQ0dDLFNBREg7QUFBQSxNQUNjQyxNQURkOztBQUVKLE1BQU1DLFFBQVEsR0FBR0osS0FBSyxDQUFDSyxXQUFOLENBQWtCLFVBQUNDLEdBQUQ7QUFBQSxXQUFTSCxNQUFNLENBQUNHLEdBQUQsQ0FBZjtBQUFBLEdBQWxCLEVBQXdDLENBQUNILE1BQUQsQ0FBeEMsQ0FBakI7O0FBRkkseUJBR3dCSCxLQUFLLENBQUNDLFFBQU4sQ0FBZSxFQUFmLENBSHhCO0FBQUE7QUFBQSxNQUdHTSxNQUhIO0FBQUEsTUFHV0MsU0FIWDs7QUFLSixNQUFNQywyQkFBMkIsR0FBR1QsS0FBSyxDQUFDSyxXQUFOLENBQWtCLFlBQU07QUFBQTs7QUFDMUQsUUFBSSxDQUFDSCxTQUFMLEVBQWdCO0FBQ2Q7QUFDRDs7QUFFREEsSUFBQUEsU0FBUyxDQUFDUSxLQUFWLENBQWdCQyxNQUFoQixzQ0FBNEJULFNBQVMsQ0FBQ1UsYUFBdEMsMERBQTRCLHNCQUF5QkMsWUFBckQ7QUFDQVgsSUFBQUEsU0FBUyxDQUFDUSxLQUFWLENBQWdCSSxLQUFoQix1Q0FBMkJaLFNBQVMsQ0FBQ1UsYUFBckMsMkRBQTJCLHVCQUF5QkcsV0FBcEQ7QUFDQWIsSUFBQUEsU0FBUyxDQUFDUSxLQUFWLENBQWdCTSxHQUFoQix1Q0FBeUJkLFNBQVMsQ0FBQ1UsYUFBbkMsMkRBQXlCLHVCQUF5QkssU0FBbEQ7QUFDQWYsSUFBQUEsU0FBUyxDQUFDUSxLQUFWLENBQWdCUSxJQUFoQix1Q0FBMEJoQixTQUFTLENBQUNVLGFBQXBDLDJEQUEwQix1QkFBeUJPLFVBQW5EO0FBQ0FqQixJQUFBQSxTQUFTLENBQUNTLE1BQVYsdURBQ0VULFNBQVMsQ0FBQ1UsYUFEWiwyREFDRSx1QkFBeUJDLFlBRDNCLDJFQUMyQyxJQUFJTyxNQUFNLENBQUNDLGdCQUR0RDtBQUVBbkIsSUFBQUEsU0FBUyxDQUFDWSxLQUFWLHVEQUNFWixTQUFTLENBQUNVLGFBRFosMkRBQ0UsdUJBQXlCRyxXQUQzQiwyRUFDMEMsSUFBSUssTUFBTSxDQUFDQyxnQkFEckQ7QUFHQWIsSUFBQUEsU0FBUyxDQUFDLEVBQUQsQ0FBVDtBQUNELEdBZm1DLEVBZWpDLENBQUNOLFNBQUQsRUFBWU0sU0FBWixDQWZpQyxDQUFwQyxDQUxJLENBc0JKOztBQUNBUixFQUFBQSxLQUFLLENBQUNzQixTQUFOLENBQWdCYiwyQkFBaEIsRUFBNkMsQ0FBQ0EsMkJBQUQsQ0FBN0M7QUFFQSw0Q0FBa0I7QUFDaEJjLElBQUFBLE1BQU0sRUFBRXJCLFNBQUYsYUFBRUEsU0FBRix1QkFBRUEsU0FBUyxDQUFFVSxhQURIO0FBRWhCWSxJQUFBQSxRQUFRLEVBQUVmO0FBRk0sR0FBbEI7QUFLQVQsRUFBQUEsS0FBSyxDQUFDc0IsU0FBTixDQUFnQixZQUFNO0FBQ3BCLFFBQUksQ0FBQ3BCLFNBQUwsRUFBZ0I7QUFDZDtBQUNEOztBQUVELFFBQU11QixVQUFvQyxHQUFHLElBQUk3QixPQUFKLENBQzNDTSxTQUQyQyxFQUUzQ0wsY0FGMkMsQ0FBN0M7QUFLQTRCLElBQUFBLFVBQVUsQ0FBQ0MsS0FBWDtBQUVBLFdBQU8sWUFBTTtBQUNYRCxNQUFBQSxVQUFVLENBQUNFLElBQVg7QUFDRCxLQUZEO0FBR0QsR0FmRCxFQWVHLENBQUN6QixTQUFELEVBQVlOLE9BQVosRUFBcUJDLGNBQXJCLEVBQXFDVSxNQUFyQyxDQWZIO0FBaUJBLE1BQU1xQixhQUFhLEdBQUcsMEJBQXRCO0FBQ0E5QixFQUFBQSxTQUFTLEdBQUdBLFNBQVMsYUFBTUEsU0FBTixjQUFtQjhCLGFBQW5CLElBQXFDQSxhQUExRDtBQUNBLHNCQUNFLHVEQUNFO0FBQ0UsSUFBQSxLQUFLLEVBQUU7QUFBRUMsTUFBQUEsUUFBUSxFQUFFO0FBQVosS0FEVDtBQUVFLElBQUEsU0FBUyxFQUFFL0IsU0FGYjtBQUdFLElBQUEsR0FBRyxFQUFFTTtBQUhQLElBREYsZUFNRTtBQUFLLElBQUEsS0FBSyxFQUFFO0FBQUV5QixNQUFBQSxRQUFRLEVBQUU7QUFBWjtBQUFaLEtBQXVDOUIsUUFBdkMsQ0FORixDQURGO0FBVUQsQ0FoRU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnLi9ob29rcy91c2VSZXNpemVPYnNlcnZlcidcbmltcG9ydCB7IElBY3RpdmVCYWNrZ3JvdW5kLCBJQWN0aXZlQmFja2dyb3VuZFBhdHRlcm4gfSBmcm9tICcuL2luZGV4J1xuXG5leHBvcnQgY29uc3QgQWN0aXZlQmFja2dyb3VuZDogUmVhY3QuRkM8SUFjdGl2ZUJhY2tncm91bmQ+ID0gKHtcbiAgcGF0dGVybixcbiAgcGF0dGVybk9wdGlvbnMgPSB7fSxcbiAgY2xhc3NOYW1lLFxuICBjaGlsZHJlbixcbn0pID0+IHtcbiAgY29uc3QgW2NhbnZhc1JlZiwgc2V0UmVmXSA9IFJlYWN0LnVzZVN0YXRlPEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3Qgb25SZWZTZXQgPSBSZWFjdC51c2VDYWxsYmFjaygocmVmKSA9PiBzZXRSZWYocmVmKSwgW3NldFJlZl0pXG4gIGNvbnN0IFt1cGRhdGUsIHNldFVwZGF0ZV0gPSBSZWFjdC51c2VTdGF0ZSh7fSlcblxuICBjb25zdCB1cGRhdGVDYW52YXNTaXplQW5kUG9zaXRpb24gPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFjYW52YXNSZWYpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNhbnZhc1JlZi5zdHlsZS5oZWlnaHQgPSBgJHtjYW52YXNSZWYucGFyZW50RWxlbWVudD8ub2Zmc2V0SGVpZ2h0fXB4YFxuICAgIGNhbnZhc1JlZi5zdHlsZS53aWR0aCA9IGAke2NhbnZhc1JlZi5wYXJlbnRFbGVtZW50Py5vZmZzZXRXaWR0aH1weGBcbiAgICBjYW52YXNSZWYuc3R5bGUudG9wID0gYCR7Y2FudmFzUmVmLnBhcmVudEVsZW1lbnQ/Lm9mZnNldFRvcH1weGBcbiAgICBjYW52YXNSZWYuc3R5bGUubGVmdCA9IGAke2NhbnZhc1JlZi5wYXJlbnRFbGVtZW50Py5vZmZzZXRMZWZ0fXB4YFxuICAgIGNhbnZhc1JlZi5oZWlnaHQgPVxuICAgICAgY2FudmFzUmVmLnBhcmVudEVsZW1lbnQ/Lm9mZnNldEhlaWdodCA/PyAwICogd2luZG93LmRldmljZVBpeGVsUmF0aW9cbiAgICBjYW52YXNSZWYud2lkdGggPVxuICAgICAgY2FudmFzUmVmLnBhcmVudEVsZW1lbnQ/Lm9mZnNldFdpZHRoID8/IDAgKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb1xuXG4gICAgc2V0VXBkYXRlKHt9KVxuICB9LCBbY2FudmFzUmVmLCBzZXRVcGRhdGVdKVxuXG4gIC8vIFNldCBjYW52YXMgdG8gc2l6ZSBhbmQgcG9zaXRpb24gb2YgcGFyZW50IGVsZW1lbnRcbiAgUmVhY3QudXNlRWZmZWN0KHVwZGF0ZUNhbnZhc1NpemVBbmRQb3NpdGlvbiwgW3VwZGF0ZUNhbnZhc1NpemVBbmRQb3NpdGlvbl0pXG5cbiAgdXNlUmVzaXplT2JzZXJ2ZXIoe1xuICAgIHRhcmdldDogY2FudmFzUmVmPy5wYXJlbnRFbGVtZW50LFxuICAgIGNhbGxiYWNrOiB1cGRhdGVDYW52YXNTaXplQW5kUG9zaXRpb24sXG4gIH0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWNhbnZhc1JlZikge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYmFja2dyb3VuZDogSUFjdGl2ZUJhY2tncm91bmRQYXR0ZXJuID0gbmV3IHBhdHRlcm4oXG4gICAgICBjYW52YXNSZWYsXG4gICAgICBwYXR0ZXJuT3B0aW9uc1xuICAgIClcblxuICAgIGJhY2tncm91bmQuc3RhcnQoKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGJhY2tncm91bmQuc3RvcCgpXG4gICAgfVxuICB9LCBbY2FudmFzUmVmLCBwYXR0ZXJuLCBwYXR0ZXJuT3B0aW9ucywgdXBkYXRlXSlcblxuICBjb25zdCBzZWxmQ2xhc3NOYW1lID0gJ2FjdGl2ZS1iYWNrZ3JvdW5kLWNhbnZhcydcbiAgY2xhc3NOYW1lID0gY2xhc3NOYW1lID8gYCR7Y2xhc3NOYW1lfSAke3NlbGZDbGFzc05hbWV9YCA6IHNlbGZDbGFzc05hbWVcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGNhbnZhc1xuICAgICAgICBzdHlsZT17eyBwb3NpdGlvbjogJ2Fic29sdXRlJyB9fVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgcmVmPXtvblJlZlNldH1cbiAgICAgIC8+XG4gICAgICA8ZGl2IHN0eWxlPXt7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH19PntjaGlsZHJlbn08L2Rpdj5cbiAgICA8Lz5cbiAgKVxufVxuIl19
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kLnRzeCJdLCJuYW1lcyI6WyJBY3RpdmVCYWNrZ3JvdW5kIiwiUGF0dGVybiIsInBhdHRlcm5PcHRpb25zIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJjYW52YXNSZWYiLCJzZXRSZWYiLCJvblJlZlNldCIsInJlZiIsInVwZGF0ZSIsInNldFVwZGF0ZSIsInVwZGF0ZUNhbnZhc1NpemVBbmRQb3NpdGlvbiIsInN0eWxlIiwiaGVpZ2h0IiwicGFyZW50RWxlbWVudCIsIm9mZnNldEhlaWdodCIsIndpZHRoIiwib2Zmc2V0V2lkdGgiLCJ0b3AiLCJvZmZzZXRUb3AiLCJsZWZ0Iiwib2Zmc2V0TGVmdCIsIndpbmRvdyIsImRldmljZVBpeGVsUmF0aW8iLCJ0YXJnZXQiLCJjYWxsYmFjayIsImJhY2tncm91bmQiLCJzdGFydCIsInN0b3AiLCJzZWxmQ2xhc3NOYW1lIiwicG9zaXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Qk8sU0FBU0EsZ0JBQVQsT0FBZ0g7QUFBQSxNQUFwRkMsT0FBb0YsUUFBcEZBLE9BQW9GO0FBQUEsTUFBM0VDLGNBQTJFLFFBQTNFQSxjQUEyRTtBQUFBLE1BQTNEQyxTQUEyRCxRQUEzREEsU0FBMkQ7QUFBQSxNQUFoREMsUUFBZ0QsUUFBaERBLFFBQWdEOztBQUFBLGtCQUN6RixxQkFBbUMsSUFBbkMsQ0FEeUY7QUFBQTtBQUFBLE1BQzlHQyxTQUQ4RztBQUFBLE1BQ25HQyxNQURtRzs7QUFFckgsTUFBTUMsUUFBUSxHQUFHLHdCQUFZLFVBQUNDLEdBQUQ7QUFBQSxXQUFTRixNQUFNLENBQUNFLEdBQUQsQ0FBZjtBQUFBLEdBQVosRUFBa0MsQ0FBQ0YsTUFBRCxDQUFsQyxDQUFqQjs7QUFGcUgsbUJBR3pGLHFCQUFTLEVBQVQsQ0FIeUY7QUFBQTtBQUFBLE1BRzlHRyxNQUg4RztBQUFBLE1BR3RHQyxTQUhzRzs7QUFLckgsTUFBTUMsMkJBQTJCLEdBQUcsd0JBQVksWUFBTTtBQUFBOztBQUNwRCxRQUFJLENBQUNOLFNBQUwsRUFBZ0I7QUFDZDtBQUNEOztBQUVEQSxJQUFBQSxTQUFTLENBQUNPLEtBQVYsQ0FBZ0JDLE1BQWhCLHNDQUE0QlIsU0FBUyxDQUFDUyxhQUF0QywwREFBNEIsc0JBQXlCQyxZQUFyRDtBQUNBVixJQUFBQSxTQUFTLENBQUNPLEtBQVYsQ0FBZ0JJLEtBQWhCLHVDQUEyQlgsU0FBUyxDQUFDUyxhQUFyQywyREFBMkIsdUJBQXlCRyxXQUFwRDtBQUNBWixJQUFBQSxTQUFTLENBQUNPLEtBQVYsQ0FBZ0JNLEdBQWhCLHVDQUF5QmIsU0FBUyxDQUFDUyxhQUFuQywyREFBeUIsdUJBQXlCSyxTQUFsRDtBQUNBZCxJQUFBQSxTQUFTLENBQUNPLEtBQVYsQ0FBZ0JRLElBQWhCLHVDQUEwQmYsU0FBUyxDQUFDUyxhQUFwQywyREFBMEIsdUJBQXlCTyxVQUFuRDtBQUNBaEIsSUFBQUEsU0FBUyxDQUFDUSxNQUFWLHVEQUNFUixTQUFTLENBQUNTLGFBRFosMkRBQ0UsdUJBQXlCQyxZQUQzQiwyRUFDMkMsSUFBSU8sTUFBTSxDQUFDQyxnQkFEdEQ7QUFFQWxCLElBQUFBLFNBQVMsQ0FBQ1csS0FBVix1REFDRVgsU0FBUyxDQUFDUyxhQURaLDJEQUNFLHVCQUF5QkcsV0FEM0IsMkVBQzBDLElBQUlLLE1BQU0sQ0FBQ0MsZ0JBRHJEO0FBR0FiLElBQUFBLFNBQVMsQ0FBQyxFQUFELENBQVQ7QUFDRCxHQWZtQyxFQWVqQyxDQUFDTCxTQUFELEVBQVlLLFNBQVosQ0FmaUMsQ0FBcEMsQ0FMcUgsQ0FzQnJIOztBQUNBLHdCQUFVQywyQkFBVixFQUF1QyxDQUFDQSwyQkFBRCxDQUF2QztBQUVBLDRDQUFrQjtBQUNoQmEsSUFBQUEsTUFBTSxFQUFFbkIsU0FBRixhQUFFQSxTQUFGLHVCQUFFQSxTQUFTLENBQUVTLGFBREg7QUFFaEJXLElBQUFBLFFBQVEsRUFBRWQ7QUFGTSxHQUFsQjtBQUtBLHdCQUFVLFlBQU07QUFDZCxRQUFJLENBQUNOLFNBQUwsRUFBZ0I7QUFDZDtBQUNEOztBQUVELFFBQU1xQixVQUFVLEdBQUcsSUFBSXpCLE9BQUosQ0FDakJJLFNBRGlCLEVBRWpCSCxjQUZpQixDQUFuQjtBQUtBd0IsSUFBQUEsVUFBVSxDQUFDQyxLQUFYO0FBRUEsV0FBTyxZQUFNO0FBQ1hELE1BQUFBLFVBQVUsQ0FBQ0UsSUFBWDtBQUNELEtBRkQ7QUFHRCxHQWZELEVBZUcsQ0FBQ3ZCLFNBQUQsRUFBWUosT0FBWixFQUFxQkMsY0FBckIsRUFBcUNPLE1BQXJDLENBZkg7QUFpQkEsTUFBTW9CLGFBQWEsR0FBRywwQkFBdEI7QUFDQTFCLEVBQUFBLFNBQVMsR0FBR0EsU0FBUyxhQUFNQSxTQUFOLGNBQW1CMEIsYUFBbkIsSUFBcUNBLGFBQTFEO0FBQ0Esc0JBQ0UsK0VBQ0U7QUFDRSxJQUFBLEtBQUssRUFBRTtBQUFFQyxNQUFBQSxRQUFRLEVBQUU7QUFBWixLQURUO0FBRUUsSUFBQSxTQUFTLEVBQUUzQixTQUZiO0FBR0UsSUFBQSxHQUFHLEVBQUVJO0FBSFAsSUFERixlQU1FO0FBQUssSUFBQSxLQUFLLEVBQUU7QUFBRXVCLE1BQUFBLFFBQVEsRUFBRTtBQUFaO0FBQVosS0FBdUMxQixRQUF2QyxDQU5GLENBREY7QUFVRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnLi9ob29rcy91c2VSZXNpemVPYnNlcnZlcidcblxuZXhwb3J0IHR5cGUgUGF0dGVybk9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuQ29uc3RydWN0b3I8VE9wdGlvbnM+IHtcbiAgbmV3IChcbiAgICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50LFxuICAgIG9wdGlvbnM/OiBUT3B0aW9uc1xuICApOiBBY3RpdmVCYWNrZ3JvdW5kUGF0dGVyblxufVxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmVCYWNrZ3JvdW5kUGF0dGVybiB7XG4gIHJlbmRlcigpOiB2b2lkXG4gIHN0YXJ0KCk6IHZvaWRcbiAgc3RvcCgpOiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlQmFja2dyb3VuZFByb3BzPFRQYXR0ZXJuT3B0aW9ucyA9IFBhdHRlcm5PcHRpb25zPiB7XG4gIFBhdHRlcm46IFBhdHRlcm5Db25zdHJ1Y3RvcjxUUGF0dGVybk9wdGlvbnM+XG4gIHBhdHRlcm5PcHRpb25zPzogVFBhdHRlcm5PcHRpb25zXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBjaGlsZHJlbjogUmVhY3ROb2RlXG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIEFjdGl2ZUJhY2tncm91bmQoeyBQYXR0ZXJuLCBwYXR0ZXJuT3B0aW9ucywgY2xhc3NOYW1lLCBjaGlsZHJlbiB9OiBBY3RpdmVCYWNrZ3JvdW5kUHJvcHMpOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtjYW52YXNSZWYsIHNldFJlZl0gPSB1c2VTdGF0ZTxIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IG9uUmVmU2V0ID0gdXNlQ2FsbGJhY2soKHJlZikgPT4gc2V0UmVmKHJlZiksIFtzZXRSZWZdKVxuICBjb25zdCBbdXBkYXRlLCBzZXRVcGRhdGVdID0gdXNlU3RhdGUoe30pXG5cbiAgY29uc3QgdXBkYXRlQ2FudmFzU2l6ZUFuZFBvc2l0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghY2FudmFzUmVmKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjYW52YXNSZWYuc3R5bGUuaGVpZ2h0ID0gYCR7Y2FudmFzUmVmLnBhcmVudEVsZW1lbnQ/Lm9mZnNldEhlaWdodH1weGBcbiAgICBjYW52YXNSZWYuc3R5bGUud2lkdGggPSBgJHtjYW52YXNSZWYucGFyZW50RWxlbWVudD8ub2Zmc2V0V2lkdGh9cHhgXG4gICAgY2FudmFzUmVmLnN0eWxlLnRvcCA9IGAke2NhbnZhc1JlZi5wYXJlbnRFbGVtZW50Py5vZmZzZXRUb3B9cHhgXG4gICAgY2FudmFzUmVmLnN0eWxlLmxlZnQgPSBgJHtjYW52YXNSZWYucGFyZW50RWxlbWVudD8ub2Zmc2V0TGVmdH1weGBcbiAgICBjYW52YXNSZWYuaGVpZ2h0ID1cbiAgICAgIGNhbnZhc1JlZi5wYXJlbnRFbGVtZW50Py5vZmZzZXRIZWlnaHQgPz8gMCAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvXG4gICAgY2FudmFzUmVmLndpZHRoID1cbiAgICAgIGNhbnZhc1JlZi5wYXJlbnRFbGVtZW50Py5vZmZzZXRXaWR0aCA/PyAwICogd2luZG93LmRldmljZVBpeGVsUmF0aW9cblxuICAgIHNldFVwZGF0ZSh7fSlcbiAgfSwgW2NhbnZhc1JlZiwgc2V0VXBkYXRlXSlcblxuICAvLyBTZXQgY2FudmFzIHRvIHNpemUgYW5kIHBvc2l0aW9uIG9mIHBhcmVudCBlbGVtZW50XG4gIHVzZUVmZmVjdCh1cGRhdGVDYW52YXNTaXplQW5kUG9zaXRpb24sIFt1cGRhdGVDYW52YXNTaXplQW5kUG9zaXRpb25dKVxuXG4gIHVzZVJlc2l6ZU9ic2VydmVyKHtcbiAgICB0YXJnZXQ6IGNhbnZhc1JlZj8ucGFyZW50RWxlbWVudCxcbiAgICBjYWxsYmFjazogdXBkYXRlQ2FudmFzU2l6ZUFuZFBvc2l0aW9uLFxuICB9KVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjYW52YXNSZWYpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGJhY2tncm91bmQgPSBuZXcgUGF0dGVybihcbiAgICAgIGNhbnZhc1JlZixcbiAgICAgIHBhdHRlcm5PcHRpb25zXG4gICAgKVxuXG4gICAgYmFja2dyb3VuZC5zdGFydCgpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgYmFja2dyb3VuZC5zdG9wKClcbiAgICB9XG4gIH0sIFtjYW52YXNSZWYsIFBhdHRlcm4sIHBhdHRlcm5PcHRpb25zLCB1cGRhdGVdKVxuXG4gIGNvbnN0IHNlbGZDbGFzc05hbWUgPSAnYWN0aXZlLWJhY2tncm91bmQtY2FudmFzJ1xuICBjbGFzc05hbWUgPSBjbGFzc05hbWUgPyBgJHtjbGFzc05hbWV9ICR7c2VsZkNsYXNzTmFtZX1gIDogc2VsZkNsYXNzTmFtZVxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Y2FudmFzXG4gICAgICAgIHN0eWxlPXt7IHBvc2l0aW9uOiAnYWJzb2x1dGUnIH19XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICByZWY9e29uUmVmU2V0fVxuICAgICAgLz5cbiAgICAgIDxkaXYgc3R5bGU9e3sgcG9zaXRpb246ICdyZWxhdGl2ZScgfX0+e2NoaWxkcmVufTwvZGl2PlxuICAgIDwvPlxuICApXG59XG4iXX0=

@@ -1,5 +0,3 @@

import { IActiveBackgroundPattern, ActiveBackgroundPatternOptions } from '../index';
import { ConfettiPaper } from './Confetti/ConfettiPaper';
import { ConfettiRibbon } from './Confetti/ConfettiRibbon';
interface ConfettiOptions extends ActiveBackgroundPatternOptions {
import type { ActiveBackgroundPattern, PatternOptions } from '../ActiveBackground';
export interface ConfettiOptions extends PatternOptions {
speed?: number;

@@ -11,13 +9,13 @@ duration?: number;

}
declare class Confetti implements IActiveBackgroundPattern {
canvas: HTMLCanvasElement;
context: CanvasRenderingContext2D | null;
ratio: number;
width: number;
height: number;
speed: number;
duration: number;
confettiPapers: ConfettiPaper[];
confettiRibbons: ConfettiRibbon[];
animationFrameRequestId: number | null;
export declare class Confetti implements ActiveBackgroundPattern {
private readonly canvas;
private readonly context;
private readonly ratio;
readonly width: number;
readonly height: number;
private readonly speed;
private readonly duration;
private readonly confettiPapers;
private readonly confettiRibbons;
private animationFrameRequestId;
constructor(canvas: HTMLCanvasElement, options?: ConfettiOptions);

@@ -28,2 +26,1 @@ start(): void;

}
export { Confetti };

@@ -67,3 +67,3 @@ "use strict";

parent: _this,
fetchColors: fetchRandomColor
fetchColors: getRandomColors
});

@@ -75,3 +75,3 @@ });

parent: _this,
fetchColors: fetchRandomColor
fetchColors: getRandomColors
});

@@ -142,10 +142,7 @@ });

function getRandomColors(colors) {
function getRandomColors() {
var colors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : COLORS;
var randomIndex = Math.round(Math.random() * (colors.length - 1));
return colors[randomIndex];
}
function fetchRandomColor() {
return getRandomColors(COLORS);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpLnRzIl0sIm5hbWVzIjpbIlNQRUVEIiwiREVGQVVMVF9DT05GRVRUSV9QQVBFUlMiLCJERUZBVUxUX0NPTkZFVFRJX1JJQkJPTlMiLCJERUZBVUxUX1NDQUxFX0NPTkZFVFRJX0NPVU5UIiwiQ09MT1JTIiwiQ29uZmV0dGkiLCJjYW52YXMiLCJvcHRpb25zIiwiY29udGV4dCIsImdldENvbnRleHQiLCJzcGVlZCIsImR1cmF0aW9uIiwicmF0aW8iLCJ3aW5kb3ciLCJkZXZpY2VQaXhlbFJhdGlvIiwid2lkdGgiLCJvZmZzZXRXaWR0aCIsImhlaWdodCIsIm9mZnNldEhlaWdodCIsImNvbmZldHRpUGFwZXJDb3VudCIsInNjYWxlQ29uZmV0dGlDb3VudCIsIk1hdGgiLCJyb3VuZCIsImNvbmZldHRpUGFwZXJzIiwiQXJyYXkiLCJtYXAiLCJDb25mZXR0aVBhcGVyIiwicGFyZW50IiwiZmV0Y2hDb2xvcnMiLCJmZXRjaFJhbmRvbUNvbG9yIiwiY29uZmV0dGlSaWJib25Db3VudCIsImNvbmZldHRpUmliYm9ucyIsIkNvbmZldHRpUmliYm9uIiwiYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJyZW5kZXIiLCJiaW5kIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJjbGVhclJlY3QiLCJjb25mZXR0aVBhcGVyIiwidXBkYXRlIiwiZHJhdyIsImNvbmZldHRpUmliYm9uIiwiZ2V0UmFuZG9tQ29sb3JzIiwiY29sb3JzIiwicmFuZG9tSW5kZXgiLCJyYW5kb20iLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVVBLElBQU1BLEtBQUssR0FBRyxFQUFkO0FBQ0EsSUFBTUMsdUJBQXVCLEdBQUcsRUFBaEM7QUFDQSxJQUFNQyx3QkFBd0IsR0FBRyxFQUFqQztBQUNBLElBQU1DLDRCQUE0QixHQUFH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QUFBQTs7QUFBQTtBQU9QLDREQUFpRDtBQUFBLGNBQXRDZ0IsYUFBc0M7QUFDL0NBLFVBQUFBLGFBQWEsQ0FBQ0MsTUFBZCxDQUFxQixLQUFLN0IsUUFBMUI7QUFDQTRCLFVBQUFBLGFBQWEsQ0FBQ0UsSUFBZCxDQUFtQixLQUFLakMsT0FBeEI7QUFDRDtBQVZNO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUEsa0RBWXNCLEtBQUt1QixlQVozQjtBQUFBOztBQUFBO0FBWVAsK0RBQW1EO0FBQUEsY0FBeENXLGNBQXdDO0FBQ2pEQSxVQUFBQSxjQUFjLENBQUNGLE1BQWYsQ0FBc0IsS0FBSzdCLFFBQTNCO0FBQ0ErQixVQUFBQSxjQUFjLENBQUNELElBQWYsQ0FBb0IsS0FBS2pDLE9BQXpCO0FBQ0Q7QUFmTTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQWlCUCxXQUFLeUIsdUJBQUwsR0FBK0JDLHFCQUFxQixDQUFDLEtBQUtDLE1BQUwsQ0FBWUMsSUFBWixDQUFpQixJQUFqQixDQUFELENBQXBEO0FBQ0Q7Ozs7Ozs7O0FBR0gsU0FBU08sZUFBVCxDQUF5QkMsTUFBekIsRUFBNkM7QUFDM0MsTUFBTUMsV0FBVyxHQUFHeEIsSUFBSSxDQUFDQyxLQUFMLENBQVdELElBQUksQ0FBQ3lCLE1BQUwsTUFBaUJGLE1BQU0sQ0FBQ0csTUFBUCxHQUFnQixDQUFqQyxDQUFYLENBQXBCO0FBQ0EsU0FBT0gsTUFBTSxDQUFDQyxXQUFELENBQWI7QUFDRDs7QUFFRCxTQUFTaEIsZ0JBQVQsR0FBNEI7QUFDMUIsU0FBT2MsZUFBZSxDQUFDdkMsTUFBRCxDQUF0QjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUFjdGl2ZUJhY2tncm91bmRQYXR0ZXJuLFxuICBBY3RpdmVCYWNrZ3JvdW5kUGF0dGVybk9wdGlvbnMsXG59IGZyb20gJy4uL2luZGV4J1xuaW1wb3J0IHsgQ29uZmV0dGlQYXBlciB9IGZyb20gJy4vQ29uZmV0dGkvQ29uZmV0dGlQYXBlcidcbmltcG9ydCB7IENvbmZldHRpUmliYm9uIH0gZnJvbSAnLi9Db25mZXR0aS9Db25mZXR0aVJpYmJvbidcblxuaW50ZXJmYWNlIENvbmZldHRpT3B0aW9ucyBleHRlbmRzIEFjdGl2ZUJhY2tncm91bmRQYXR0ZXJuT3B0aW9ucyB7XG4gIHNwZWVkPzogbnVtYmVyXG4gIGR1cmF0aW9uPzogbnVtYmVyXG4gIGNvbmZldHRpUGFwZXJDb3VudD86IG51bWJlclxuICBzY2FsZUNvbmZldHRpQ291bnQ/OiBib29sZWFuXG4gIGNvbmZldHRpUmliYm9uQ291bnQ/OiBudW1iZXJcbn1cblxuY29uc3QgU1BFRUQgPSA1MFxuY29uc3QgREVGQVVMVF9DT05GRVRUSV9QQVBFUlMgPSA1MFxuY29uc3QgREVGQVVMVF9DT05GRVRUSV9SSUJCT05TID0gMTBcbmNvbnN0IERFRkFVTFRfU0NBTEVfQ09ORkVUVElfQ09VTlQgPSB0cnVlXG5cbmNvbnN0IENPTE9SUyA9IFtcbiAgWycjZGYwMDQ5JywgJyM2NjA2NzEnXSxcbiAgWycjMDBlODU3JywgJyMwMDUyOTEnXSxcbiAgWycjMmJlYmJjJywgJyMwNTc5OGEnXSxcbiAgWycjZmZkMjAwJywgJyNiMDZjMDAnXSxcbl1cblxuY2xhc3MgQ29uZmV0dGkgaW1wbGVtZW50cyBJQWN0aXZlQmFja2dyb3VuZFBhdHRlcm4ge1xuICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50XG4gIGNvbnRleHQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGxcblxuICByYXRpbzogbnVtYmVyXG4gIHdpZHRoOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcblxuICBzcGVlZDogbnVtYmVyXG4gIGR1cmF0aW9uOiBudW1iZXJcbiAgY29uZmV0dGlQYXBlcnM6IENvbmZldHRpUGFwZXJbXVxuICBjb25mZXR0aVJpYmJvbnM6IENvbmZldHRpUmliYm9uW11cblxuICBhbmltYXRpb25GcmFtZVJlcXVlc3RJZDogbnVtYmVyIHwgbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIG9wdGlvbnM6IENvbmZldHRpT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5jYW52YXMgPSBjYW52YXNcbiAgICB0aGlzLmNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxuXG4gICAgdGhpcy5zcGVlZCA9IG9wdGlvbnM/LnNwZWVkID8/IFNQRUVEXG4gICAgdGhpcy5kdXJhdGlvbiA9IG9wdGlvbnM/LmR1cmF0aW9uID8/IDEuMCAvIHRoaXMuc3BlZWRcblxuICAgIHRoaXMucmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb1xuICAgIHRoaXMud2lkdGggPSBjYW52YXMub2Zmc2V0V2lkdGggKiB0aGlzLnJhdGlvXG4gICAgdGhpcy5oZWlnaHQgPSBjYW52YXMub2Zmc2V0SGVpZ2h0ICogdGhpcy5yYXRpb1xuXG4gICAgbGV0IGNvbmZldHRpUGFwZXJDb3VudCA9XG4gICAgICBvcHRpb25zPy5jb25mZXR0aVBhcGVyQ291bnQgPz8gREVGQVVMVF9DT05GRVRUSV9QQVBFUlNcblxuICAgIGlmIChvcHRpb25zPy5zY2FsZUNvbmZldHRpQ291bnQgPz8gREVGQVVMVF9TQ0FMRV9DT05GRVRUSV9DT1VOVCkge1xuICAgICAgY29uZmV0dGlQYXBlckNvdW50ID0gTWF0aC5yb3VuZChjb25mZXR0aVBhcGVyQ291bnQgLyB0aGlzLnJhdGlvKVxuICAgIH1cblxuICAgIHRoaXMuY29uZmV0dGlQYXBlcnMgPSBbLi4ubmV3IEFycmF5KGNvbmZldHRpUGFwZXJDb3VudCldLm1hcCgoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IENvbmZldHRpUGFwZXIoe1xuICAgICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICAgIGZldGNoQ29sb3JzOiBmZXRjaFJhbmRvbUNvbG9yLFxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgbGV0IGNvbmZldHRpUmliYm9uQ291bnQgPVxuICAgICAgb3B0aW9ucz8uY29uZmV0dGlSaWJib25Db3VudCA/PyBERUZBVUxUX0NPTkZFVFRJX1JJQkJPTlNcblxuICAgIHRoaXMuY29uZmV0dGlSaWJib25zID0gWy4uLm5ldyBBcnJheShjb25mZXR0aVJpYmJvbkNvdW50KV0ubWFwKCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmV0dGlSaWJib24oe1xuICAgICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICAgIGZldGNoQ29sb3JzOiBmZXRjaFJhbmRvbUNvbG9yLFxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgdGhpcy5hbmltYXRpb25GcmFtZVJlcXVlc3RJZCA9IG51bGxcbiAgfVxuXG4gIHN0YXJ0KCkge1xuICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5yZW5kZXIuYmluZCh0aGlzKSlcbiAgfVxuXG4gIHN0b3AoKSB7XG4gICAgaWYgKHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQpXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICghdGhpcy5jb250ZXh0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIHRoaXMuY2FudmFzLndpZHRoLCB0aGlzLmNhbnZhcy5oZWlnaHQpXG5cbiAgICBmb3IgKGNvbnN0IGNvbmZldHRpUGFwZXIgb2YgdGhpcy5jb25mZXR0aVBhcGVycykge1xuICAgICAgY29uZmV0dGlQYXBlci51cGRhdGUodGhpcy5kdXJhdGlvbilcbiAgICAgIGNvbmZldHRpUGFwZXIuZHJhdyh0aGlzLmNvbnRleHQpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjb25mZXR0aVJpYmJvbiBvZiB0aGlzLmNvbmZldHRpUmliYm9ucykge1xuICAgICAgY29uZmV0dGlSaWJib24udXBkYXRlKHRoaXMuZHVyYXRpb24pXG4gICAgICBjb25mZXR0aVJpYmJvbi5kcmF3KHRoaXMuY29udGV4dClcbiAgICB9XG5cbiAgICB0aGlzLmFuaW1hdGlvbkZyYW1lUmVxdWVzdElkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmVuZGVyLmJpbmQodGhpcykpXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UmFuZG9tQ29sb3JzKGNvbG9yczogc3RyaW5nW11bXSkge1xuICBjb25zdCByYW5kb21JbmRleCA9IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIChjb2xvcnMubGVuZ3RoIC0gMSkpXG4gIHJldHVybiBjb2xvcnNbcmFuZG9tSW5kZXhdXG59XG5cbmZ1bmN0aW9uIGZldGNoUmFuZG9tQ29sb3IoKSB7XG4gIHJldHVybiBnZXRSYW5kb21Db2xvcnMoQ09MT1JTKVxufVxuXG5leHBvcnQgeyBDb25mZXR0aSB9XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpLnRzIl0sIm5hbWVzIjpbIlNQRUVEIiwiREVGQVVMVF9DT05GRVRUSV9QQVBFUlMiLCJERUZBVUxUX0NPTkZFVFRJX1JJQkJPTlMiLCJERUZBVUxUX1NDQUxFX0NPTkZFVFRJX0NPVU5UIiwiQ09MT1JTIiwiQ29uZmV0dGkiLCJjYW52YXMiLCJvcHRpb25zIiwiY29udGV4dCIsImdldENvbnRleHQiLCJzcGVlZCIsImR1cmF0aW9uIiwicmF0aW8iLCJ3aW5kb3ciLCJkZXZpY2VQaXhlbFJhdGlvIiwid2lkdGgiLCJvZmZzZXRXaWR0aCIsImhlaWdodCIsIm9mZnNldEhlaWdodCIsImNvbmZldHRpUGFwZXJDb3VudCIsInNjYWxlQ29uZmV0dGlDb3VudCIsIk1hdGgiLCJyb3VuZCIsImNvbmZldHRpUGFwZXJzIiwiQXJyYXkiLCJtYXAiLCJDb25mZXR0aVBhcGVyIiwicGFyZW50IiwiZmV0Y2hDb2xvcnMiLCJnZXRSYW5kb21Db2xvcnMiLCJjb25mZXR0aVJpYmJvbkNvdW50IiwiY29uZmV0dGlSaWJib25zIiwiQ29uZmV0dGlSaWJib24iLCJhbmltYXRpb25GcmFtZVJlcXVlc3RJZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInJlbmRlciIsImJpbmQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImNsZWFyUmVjdCIsImNvbmZldHRpUGFwZXIiLCJ1cGRhdGUiLCJkcmF3IiwiY29uZmV0dGlSaWJib24iLCJjb2xvcnMiLCJyYW5kb21JbmRleCIsInJhbmRvbSIsImxlbmd0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsSUFBTUEsS0FBSyxHQUFHLEVBQWQ7QUFDQSxJQUFNQyx1QkFBdUIsR0FBRyxFQUFoQztBQUNBLElBQU1DLHdCQUF3QixHQUFHLEVBQWpDO0FBQ0EsSUFBTUMsNEJBQTRCLEdBQUcsSUFBckM7QUFFQSxJQUFNQyxN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cEIsNERBQWlEO0FBQUEsY0FBdENnQixhQUFzQztBQUMvQ0EsVUFBQUEsYUFBYSxDQUFDQyxNQUFkLENBQXFCLEtBQUs3QixRQUExQjtBQUNBNEIsVUFBQUEsYUFBYSxDQUFDRSxJQUFkLENBQW1CLEtBQUtqQyxPQUF4QjtBQUNEO0FBVm1CO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUEsa0RBWVMsS0FBS3VCLGVBWmQ7QUFBQTs7QUFBQTtBQVlwQiwrREFBbUQ7QUFBQSxjQUF4Q1csY0FBd0M7QUFDakRBLFVBQUFBLGNBQWMsQ0FBQ0YsTUFBZixDQUFzQixLQUFLN0IsUUFBM0I7QUFDQStCLFVBQUFBLGNBQWMsQ0FBQ0QsSUFBZixDQUFvQixLQUFLakMsT0FBekI7QUFDRDtBQWZtQjtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQWlCcEIsV0FBS3lCLHVCQUFMLEdBQStCQyxxQkFBcUIsQ0FBQyxLQUFLQyxNQUFMLENBQVlDLElBQVosQ0FBaUIsSUFBakIsQ0FBRCxDQUFwRDtBQUNEOzs7Ozs7OztBQUdILFNBQVNQLGVBQVQsR0FBZ0U7QUFBQSxNQUF2Q2MsTUFBdUMsdUVBQWxCdkMsTUFBa0I7QUFDOUQsTUFBTXdDLFdBQVcsR0FBR3ZCLElBQUksQ0FBQ0MsS0FBTCxDQUFXRCxJQUFJLENBQUN3QixNQUFMLE1BQWlCRixNQUFNLENBQUNHLE1BQVAsR0FBZ0IsQ0FBakMsQ0FBWCxDQUFwQjtBQUNBLFNBQU9ILE1BQU0sQ0FBQ0MsV0FBRCxDQUFiO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGl2ZUJhY2tncm91bmRQYXR0ZXJuLCBQYXR0ZXJuT3B0aW9ucyB9IGZyb20gJy4uL0FjdGl2ZUJhY2tncm91bmQnXG5pbXBvcnQgeyBDb25mZXR0aVBhcGVyIH0gZnJvbSAnLi9Db25mZXR0aS9Db25mZXR0aVBhcGVyJ1xuaW1wb3J0IHsgQ29uZmV0dGlSaWJib24gfSBmcm9tICcuL0NvbmZldHRpL0NvbmZldHRpUmliYm9uJ1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZldHRpT3B0aW9ucyBleHRlbmRzIFBhdHRlcm5PcHRpb25zIHtcbiAgc3BlZWQ/OiBudW1iZXJcbiAgZHVyYXRpb24/OiBudW1iZXJcbiAgY29uZmV0dGlQYXBlckNvdW50PzogbnVtYmVyXG4gIHNjYWxlQ29uZmV0dGlDb3VudD86IGJvb2xlYW5cbiAgY29uZmV0dGlSaWJib25Db3VudD86IG51bWJlclxufVxuXG5jb25zdCBTUEVFRCA9IDUwXG5jb25zdCBERUZBVUxUX0NPTkZFVFRJX1BBUEVSUyA9IDUwXG5jb25zdCBERUZBVUxUX0NPTkZFVFRJX1JJQkJPTlMgPSAxMFxuY29uc3QgREVGQVVMVF9TQ0FMRV9DT05GRVRUSV9DT1VOVCA9IHRydWVcblxuY29uc3QgQ09MT1JTID0gW1xuICBbJyNkZjAwNDknLCAnIzY2MDY3MSddLFxuICBbJyMwMGU4NTcnLCAnIzAwNTI5MSddLFxuICBbJyMyYmViYmMnLCAnIzA1Nzk4YSddLFxuICBbJyNmZmQyMDAnLCAnI2IwNmMwMCddLFxuXVxuXG5leHBvcnQgY2xhc3MgQ29uZmV0dGkgaW1wbGVtZW50cyBBY3RpdmVCYWNrZ3JvdW5kUGF0dGVybiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudFxuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGxcblxuICBwcml2YXRlIHJlYWRvbmx5IHJhdGlvOiBudW1iZXJcbiAgcHVibGljIHJlYWRvbmx5IHdpZHRoOiBudW1iZXJcbiAgcHVibGljIHJlYWRvbmx5IGhlaWdodDogbnVtYmVyXG5cbiAgcHJpdmF0ZSByZWFkb25seSBzcGVlZDogbnVtYmVyXG4gIHByaXZhdGUgcmVhZG9ubHkgZHVyYXRpb246IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZldHRpUGFwZXJzOiBDb25mZXR0aVBhcGVyW11cbiAgcHJpdmF0ZSByZWFkb25seSBjb25mZXR0aVJpYmJvbnM6IENvbmZldHRpUmliYm9uW11cblxuICBwcml2YXRlIGFuaW1hdGlvbkZyYW1lUmVxdWVzdElkOiBudW1iZXIgfCBudWxsXG5cbiAgY29uc3RydWN0b3IoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgb3B0aW9uczogQ29uZmV0dGlPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhc1xuICAgIHRoaXMuY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpXG5cbiAgICB0aGlzLnNwZWVkID0gb3B0aW9ucz8uc3BlZWQgPz8gU1BFRURcbiAgICB0aGlzLmR1cmF0aW9uID0gb3B0aW9ucz8uZHVyYXRpb24gPz8gMS4wIC8gdGhpcy5zcGVlZFxuXG4gICAgdGhpcy5yYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvXG4gICAgdGhpcy53aWR0aCA9IGNhbnZhcy5vZmZzZXRXaWR0aCAqIHRoaXMucmF0aW9cbiAgICB0aGlzLmhlaWdodCA9IGNhbnZhcy5vZmZzZXRIZWlnaHQgKiB0aGlzLnJhdGlvXG5cbiAgICBsZXQgY29uZmV0dGlQYXBlckNvdW50ID1cbiAgICAgIG9wdGlvbnM/LmNvbmZldHRpUGFwZXJDb3VudCA/PyBERUZBVUxUX0NPTkZFVFRJX1BBUEVSU1xuXG4gICAgaWYgKG9wdGlvbnM/LnNjYWxlQ29uZmV0dGlDb3VudCA/PyBERUZBVUxUX1NDQUxFX0NPTkZFVFRJX0NPVU5UKSB7XG4gICAgICBjb25mZXR0aVBhcGVyQ291bnQgPSBNYXRoLnJvdW5kKGNvbmZldHRpUGFwZXJDb3VudCAvIHRoaXMucmF0aW8pXG4gICAgfVxuXG4gICAgdGhpcy5jb25mZXR0aVBhcGVycyA9IFsuLi5uZXcgQXJyYXkoY29uZmV0dGlQYXBlckNvdW50KV0ubWFwKCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmV0dGlQYXBlcih7XG4gICAgICAgIHBhcmVudDogdGhpcyxcbiAgICAgICAgZmV0Y2hDb2xvcnM6IGdldFJhbmRvbUNvbG9ycyxcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIGxldCBjb25mZXR0aVJpYmJvbkNvdW50ID1cbiAgICAgIG9wdGlvbnM/LmNvbmZldHRpUmliYm9uQ291bnQgPz8gREVGQVVMVF9DT05GRVRUSV9SSUJCT05TXG5cbiAgICB0aGlzLmNvbmZldHRpUmliYm9ucyA9IFsuLi5uZXcgQXJyYXkoY29uZmV0dGlSaWJib25Db3VudCldLm1hcCgoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IENvbmZldHRpUmliYm9uKHtcbiAgICAgICAgcGFyZW50OiB0aGlzLFxuICAgICAgICBmZXRjaENvbG9yczogZ2V0UmFuZG9tQ29sb3JzLFxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgdGhpcy5hbmltYXRpb25GcmFtZVJlcXVlc3RJZCA9IG51bGxcbiAgfVxuXG4gIHB1YmxpYyBzdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuaW1hdGlvbkZyYW1lUmVxdWVzdElkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmVuZGVyLmJpbmQodGhpcykpXG4gIH1cblxuICBwdWJsaWMgc3RvcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmltYXRpb25GcmFtZVJlcXVlc3RJZCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5hbmltYXRpb25GcmFtZVJlcXVlc3RJZClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250ZXh0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIHRoaXMuY2FudmFzLndpZHRoLCB0aGlzLmNhbnZhcy5oZWlnaHQpXG5cbiAgICBmb3IgKGNvbnN0IGNvbmZldHRpUGFwZXIgb2YgdGhpcy5jb25mZXR0aVBhcGVycykge1xuICAgICAgY29uZmV0dGlQYXBlci51cGRhdGUodGhpcy5kdXJhdGlvbilcbiAgICAgIGNvbmZldHRpUGFwZXIuZHJhdyh0aGlzLmNvbnRleHQpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjb25mZXR0aVJpYmJvbiBvZiB0aGlzLmNvbmZldHRpUmliYm9ucykge1xuICAgICAgY29uZmV0dGlSaWJib24udXBkYXRlKHRoaXMuZHVyYXRpb24pXG4gICAgICBjb25mZXR0aVJpYmJvbi5kcmF3KHRoaXMuY29udGV4dClcbiAgICB9XG5cbiAgICB0aGlzLmFuaW1hdGlvbkZyYW1lUmVxdWVzdElkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmVuZGVyLmJpbmQodGhpcykpXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UmFuZG9tQ29sb3JzKGNvbG9yczogc3RyaW5nW11bXSA9IENPTE9SUyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAoY29sb3JzLmxlbmd0aCAtIDEpKVxuICByZXR1cm4gY29sb3JzW3JhbmRvbUluZGV4XVxufVxuIl19
import { Confetti } from '../Confetti';
import { Vector2D } from './Vector';
declare type ConfettiPaperConfig = {

@@ -7,26 +6,23 @@ parent: Confetti;

};
declare class ConfettiPaper {
position: Vector2D;
rotationSpeed: number;
angle: number;
cosRotation: number;
rotation: number;
size: number;
oscillationSpeed: number;
xVelocity: number;
yVelocity: number;
corners: Vector2D[];
time: number;
frontColor: string;
backColor: string;
parent: Confetti;
fetchColors: () => string[];
export declare class ConfettiPaper {
private readonly position;
private readonly rotationSpeed;
private readonly angle;
private cosRotation;
private rotation;
private readonly size;
private readonly oscillationSpeed;
private readonly xVelocity;
private readonly yVelocity;
private readonly corners;
private time;
private readonly frontColor;
private readonly backColor;
private readonly parent;
private readonly fetchColors;
constructor(config: ConfettiPaperConfig);
update(dt: number): void;
draw(context: CanvasRenderingContext2D): void;
computeCornerDrawPositions(): {
x: number;
y: number;
}[];
private computeCornerDrawPositions;
}
export { ConfettiPaper };
export {};

@@ -138,2 +138,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpL0NvbmZldHRpUGFwZXIudHMiXSwibmFtZXMiOlsiREVHXzM2MF9JTl9SQUQiLCJNYXRoIiwiUEkiLCJERUdfOTBfSU5fUkFEIiwiREVHXzQ1X0lOX1JBRCIsIlJPVEFUSU9OX1NQRUVEX1ZBUklBTkNFIiwiUk9UQVRJT05fU1BFRURfTUlOSU1VTSIsIk9TQ0lMTEFUSU9OX1NQRUVEX1ZBUklBTkNFIiwiT1NDSUxMQVRJT05fU1BFRURfTUlOSU1VTSIsIlhfVkVMT0NJVFkiLCJZX1ZFTE9DSVRZX1ZBUklBTkNFIiwiWV9WRUxPQ0lUWV9NSU5JTVVNIiwiQ29uZmV0dGlQYXBlciIsImNvbmZpZyIsInBhcmVudCIsImZldGNoQ29sb3JzIiwicG9zaXRpb24iLCJWZWN0b3IyRCIsInJhbmRvbSIsIndpZHRoIiwiaGVpZ2h0IiwiY29zUm90YXRpb24iLCJhbmdsZSIsInJvdGF0aW9uIiwicm90YXRpb25TcGVlZCIsIm9zY2lsbGF0aW9uU3BlZWQiLCJ4VmVsb2NpdHkiLCJ5VmVsb2NpdHkiLCJ0aW1lIiwiY29ybmVycyIsImNvbXB1dGVDb3JuZXJzIiwiZnJvbnRDb2xvciIsImJhY2tDb2xvciIsInNpemUiLCJkdCIsImNvcyIsIngiLCJ5IiwiY29udGV4dCIsImZpbGxTdHlsZSIsImNvbXB1dGVDb3JuZXJEcmF3UG9zaXRpb25zIiwiZmlyc3RDb3JuZXIiLCJyZW1haW5pbmdDb3JuZXJzIiwiYmVnaW5QYXRoIiwibW92ZVRvIiwiZm9yRWFjaCIsImxpbmVUbyIsImNsb3NlUGF0aCIsImZpbGwiLCJtYXAiLCJpIiwiZHgiLCJkeSIsInNpbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxJQUFNQSxjQUFjLEdBQUcsSUFBSUMsSUFBSSxDQUFDQyxFQUFoQztBQUNBLElBQU1DLGFBQWEsR0FBR0YsSUFBSSxDQUFDQyxFQUFMLEdBQVUsQ0FBaEM7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QyxFQUFEQTtBQUFMLFNBQVA7QUFDRCxPQUxNLENBQVA7QUFNRDs7Ozs7Ozs7QUFHSCxTQUFTUCxjQUFULENBQXdCUixLQUF4QixFQUF1QztBQUNyQyxTQUFPLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhMkIsR0FBYixDQUFpQixVQUFDQyxDQUFELEVBQU87QUFDN0IsUUFBTUMsRUFBRSxHQUFHbEQsSUFBSSxDQUFDa0MsR0FBTCxDQUFTYixLQUFLLElBQUk0QixDQUFDLEdBQUcvQyxhQUFKLEdBQW9CQyxhQUF4QixDQUFkLENBQVg7QUFDQSxRQUFNZ0QsRUFBRSxHQUFHbkQsSUFBSSxDQUFDb0QsR0FBTCxDQUFTL0IsS0FBSyxJQUFJNEIsQ0FBQyxHQUFHL0MsYUFBSixHQUFvQkMsYUFBeEIsQ0FBZCxDQUFYO0FBQ0EsV0FBTyxJQUFJYSxnQkFBSixDQUFha0MsRUFBYixFQUFpQkMsRUFBakIsQ0FBUDtBQUNELEdBSk0sQ0FBUDtBQUtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmV0dGkgfSBmcm9tICcuLi9Db25mZXR0aSdcbmltcG9ydCB7IFZlY3RvcjJEIH0gZnJvbSAnLi9WZWN0b3InXG5cbnR5cGUgQ29uZmV0dGlQYXBlckNvbmZpZyA9IHtcbiAgcGFyZW50OiBDb25mZXR0aVxuICBmZXRjaENvbG9yczogKCkgPT4gc3RyaW5nW11cbn1cblxuY29uc3QgREVHXzM2MF9JTl9SQUQgPSAyICogTWF0aC5QSVxuY29uc3QgREVHXzkwX0lOX1JBRCA9IE1hdGguUEkgLyAyXG5jb25zdCBERUdfNDVfSU5fUkFEID0gTWF0aC5QSSAvIDRcblxuY29uc3QgUk9UQVRJT05fU1BFRURfVkFSSUFOQ0UgPSA2MDBcbmNvbnN0IFJPVEFUSU9OX1NQRUVEX01JTklNVU0gPSA4MDBcbmNvbnN0IE9TQ0lMTEFUSU9OX1NQRUVEX1ZBUklBTkNFID0gMS41XG5jb25zdCBPU0NJTExBVElPTl9TUEVFRF9NSU5JTVVNID0gMC41XG5jb25zdCBYX1ZFTE9DSVRZID0gNDBcbmNvbnN0IFlfVkVMT0NJVFlfVkFSSUFOQ0UgPSA2MFxuY29uc3QgWV9WRUxPQ0lUWV9NSU5JTVVNID0gNTBcblxuY2xhc3MgQ29uZmV0dGlQYXBlciB7XG4gIHBvc2l0aW9uOiBWZWN0b3IyRFxuICByb3RhdGlvblNwZWVkOiBudW1iZXJcbiAgYW5nbGU6IG51bWJlclxuICBjb3NSb3RhdGlvbjogbnVtYmVyXG4gIHJvdGF0aW9uOiBudW1iZXJcbiAgc2l6ZTogbnVtYmVyXG4gIG9zY2lsbGF0aW9uU3BlZWQ6IG51bWJlclxuICB4VmVsb2NpdHk6IG51bWJlclxuICB5VmVsb2NpdHk6IG51bWJlclxuICBjb3JuZXJzOiBWZWN0b3IyRFtdXG4gIHRpbWU6IG51bWJlclxuICBmcm9udENvbG9yOiBzdHJpbmdcbiAgYmFja0NvbG9yOiBzdHJpbmdcblxuICBwYXJlbnQ6IENvbmZldHRpXG4gIGZldGNoQ29sb3JzOiAoKSA9PiBzdHJpbmdbXVxuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQ29uZmV0dGlQYXBlckNvbmZpZykge1xuICAgIHRoaXMucGFyZW50ID0gY29uZmlnLnBhcmVudFxuICAgIHRoaXMuZmV0Y2hDb2xvcnMgPSBjb25maWcuZmV0Y2hDb2xvcnNcblxuICAgIHRoaXMucG9zaXRpb24gPSBuZXcgVmVjdG9yMkQoXG4gICAgICBNYXRoLnJhbmRvbSgpICogdGhpcy5wYXJlbnQud2lkdGgsXG4gICAgICBNYXRoLnJhbmRvbSgpICogdGhpcy5wYXJlbnQuaGVpZ2h0XG4gICAgKVxuXG4gICAgdGhpcy5jb3NSb3RhdGlvbiA9IDEuMFxuICAgIHRoaXMuYW5nbGUgPSBNYXRoLnJhbmRvbSgpICogREVHXzM2MF9JTl9SQURcbiAgICB0aGlzLnJvdGF0aW9uID0gTWF0aC5yYW5kb20oKSAqIERFR18zNjBfSU5fUkFEXG4gICAgdGhpcy5yb3RhdGlvblNwZWVkID1cbiAgICAgIE1hdGgucmFuZG9tKCkgKiBST1RBVElPTl9TUEVFRF9WQVJJQU5DRSArIFJPVEFUSU9OX1NQRUVEX01JTklNVU1cblxuICAgIHRoaXMub3NjaWxsYXRpb25TcGVlZCA9XG4gICAgICBNYXRoLnJhbmRvbSgpICogT1NDSUxMQVRJT05fU1BFRURfVkFSSUFOQ0UgKyBPU0NJTExBVElPTl9TUEVFRF9NSU5JTVVNXG5cbiAgICB0aGlzLnhWZWxvY2l0eSA9IFhfVkVMT0NJVFlcbiAgICB0aGlzLnlWZWxvY2l0eSA9IE1hdGgucmFuZG9tKCkgKiBZX1ZFTE9DSVRZX1ZBUklBTkNFICsgWV9WRUxPQ0lUWV9NSU5JTVVNXG4gICAgdGhpcy50aW1lID0gTWF0aC5yYW5kb20oKVxuXG4gICAgdGhpcy5jb3JuZXJzID0gY29tcHV0ZUNvcm5lcnModGhpcy5hbmdsZSlcblxuICAgIGNvbnN0IFtmcm9udENvbG9yLCBiYWNrQ29sb3JdID0gdGhpcy5mZXRjaENvbG9ycygpXG4gICAgdGhpcy5mcm9udENvbG9yID0gZnJvbnRDb2xvclxuICAgIHRoaXMuYmFja0NvbG9yID0gYmFja0NvbG9yXG4gICAgdGhpcy5zaXplID0gNS4wXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMudGltZSArPSBkdFxuICAgIHRoaXMucm90YXRpb24gKz0gdGhpcy5yb3RhdGlvblNwZWVkICogZHRcbiAgICB0aGlzLmNvc1JvdGF0aW9uID0gTWF0aC5jb3MoKHRoaXMucm90YXRpb24gKiBNYXRoLlBJKSAvIDE4MClcblxuICAgIHRoaXMucG9zaXRpb24ueCArPVxuICAgICAgTWF0aC5jb3ModGhpcy50aW1lICogdGhpcy5vc2NpbGxhdGlvblNwZWVkKSAqIHRoaXMueFZlbG9jaXR5ICogZHRcbiAgICB0aGlzLnBvc2l0aW9uLnkgKz0gdGhpcy55VmVsb2NpdHkgKiBkdFxuXG4gICAgLy8gUmVzZXQgcGFwZXIgdG8gdGhlIHRvcCBvZiB0aGUgc2NyZWVuXG4gICAgaWYgKHRoaXMucG9zaXRpb24ueSA+IHRoaXMucGFyZW50LmhlaWdodCkge1xuICAgICAgdGhpcy5wb3NpdGlvbi54ID0gTWF0aC5yYW5kb20oKSAqIHRoaXMucGFyZW50LndpZHRoXG4gICAgICB0aGlzLnBvc2l0aW9uLnkgPSAwXG4gICAgfVxuICB9XG5cbiAgZHJhdyhjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpIHtcbiAgICBpZiAodGhpcy5jb3NSb3RhdGlvbiA+IDApIHtcbiAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gdGhpcy5mcm9udENvbG9yXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gdGhpcy5iYWNrQ29sb3JcbiAgICB9XG5cbiAgICBjb25zdCBbZmlyc3RDb3JuZXIsIC4uLnJlbWFpbmluZ0Nvcm5lcnNdID0gdGhpcy5jb21wdXRlQ29ybmVyRHJhd1Bvc2l0aW9ucygpXG4gICAgY29udGV4dC5iZWdpblBhdGgoKVxuICAgIGNvbnRleHQubW92ZVRvKGZpcnN0Q29ybmVyLngsIGZpcnN0Q29ybmVyLnkpXG4gICAgcmVtYWluaW5nQ29ybmVycy5mb3JFYWNoKCh7IHgsIHkgfSkgPT4gY29udGV4dC5saW5lVG8oeCwgeSkpXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKVxuICAgIGNvbnRleHQuZmlsbCgpXG4gIH1cblxuICBjb21wdXRlQ29ybmVyRHJhd1Bvc2l0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5jb3JuZXJzLm1hcCgoeyB4LCB5IH0sIGkpID0+IHtcbiAgICAgIHggPSB0aGlzLnBvc2l0aW9uLnggKyB4ICogdGhpcy5zaXplXG4gICAgICB5ID0gdGhpcy5wb3NpdGlvbi55ICsgeSAqIHRoaXMuc2l6ZSAqIHRoaXMuY29zUm90YXRpb25cblxuICAgICAgcmV0dXJuIHsgeCwgeSB9XG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wdXRlQ29ybmVycyhhbmdsZTogbnVtYmVyKSB7XG4gIHJldHVybiBbMCwgMSwgMiwgM10ubWFwKChpKSA9PiB7XG4gICAgY29uc3QgZHggPSBNYXRoLmNvcyhhbmdsZSArIChpICogREVHXzkwX0lOX1JBRCArIERFR180NV9JTl9SQUQpKVxuICAgIGNvbnN0IGR5ID0gTWF0aC5zaW4oYW5nbGUgKyAoaSAqIERFR185MF9JTl9SQUQgKyBERUdfNDVfSU5fUkFEKSlcbiAgICByZXR1cm4gbmV3IFZlY3RvcjJEKGR4LCBkeSlcbiAgfSlcbn1cblxuZXhwb3J0IHsgQ29uZmV0dGlQYXBlciB9XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpL0NvbmZldHRpUGFwZXIudHMiXSwibmFtZXMiOlsiREVHXzM2MF9JTl9SQUQiLCJNYXRoIiwiUEkiLCJERUdfOTBfSU5fUkFEIiwiREVHXzQ1X0lOX1JBRCIsIlJPVEFUSU9OX1NQRUVEX1ZBUklBTkNFIiwiUk9UQVRJT05fU1BFRURfTUlOSU1VTSIsIk9TQ0lMTEFUSU9OX1NQRUVEX1ZBUklBTkNFIiwiT1NDSUxMQVRJT05fU1BFRURfTUlOSU1VTSIsIlhfVkVMT0NJVFkiLCJZX1ZFTE9DSVRZX1ZBUklBTkNFIiwiWV9WRUxPQ0lUWV9NSU5JTVVNIiwiQ29uZmV0dGlQYXBlciIsImNvbmZpZyIsInBhcmVudCIsImZldGNoQ29sb3JzIiwicG9zaXRpb24iLCJWZWN0b3IyRCIsInJhbmRvbSIsIndpZHRoIiwiaGVpZ2h0IiwiY29zUm90YXRpb24iLCJhbmdsZSIsInJvdGF0aW9uIiwicm90YXRpb25TcGVlZCIsIm9zY2lsbGF0aW9uU3BlZWQiLCJ4VmVsb2NpdHkiLCJ5VmVsb2NpdHkiLCJ0aW1lIiwiY29ybmVycyIsImNvbXB1dGVDb3JuZXJzIiwiZnJvbnRDb2xvciIsImJhY2tDb2xvciIsInNpemUiLCJkdCIsImNvcyIsIngiLCJ5IiwiY29udGV4dCIsImZpbGxTdHlsZSIsImNvbXB1dGVDb3JuZXJEcmF3UG9zaXRpb25zIiwiZmlyc3RDb3JuZXIiLCJyZW1haW5pbmdDb3JuZXJzIiwiYmVnaW5QYXRoIiwibW92ZVRvIiwiZm9yRWFjaCIsImxpbmVUbyIsImNsb3NlUGF0aCIsImZpbGwiLCJtYXAiLCJpIiwiZHgiLCJkeSIsInNpbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxJQUFNQSxjQUFjLEdBQUcsSUFBSUMsSUFBSSxDQUFDQyxFQUFoQztBQUNBLElBQU1DLGFBQWEsR0FBR0YsSUFBSSxDQUFDQyxFQUFMLEdBQVUsQ0FBaEM7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QUFDLEVBQURBO0FBQUwsU0FBUDtBQUNELE9BTE0sQ0FBUDtBQU1EOzs7Ozs7OztBQUdILFNBQVNQLGNBQVQsQ0FBd0JSLEtBQXhCLEVBQXVDO0FBQ3JDLFNBQU8sQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLEVBQWEyQixHQUFiLENBQWlCLFVBQUNDLENBQUQsRUFBTztBQUM3QixRQUFNQyxFQUFFLEdBQUdsRCxJQUFJLENBQUNrQyxHQUFMLENBQVNiLEtBQUssSUFBSTRCLENBQUMsR0FBRy9DLGFBQUosR0FBb0JDLGFBQXhCLENBQWQsQ0FBWDtBQUNBLFFBQU1nRCxFQUFFLEdBQUduRCxJQUFJLENBQUNvRCxHQUFMLENBQVMvQixLQUFLLElBQUk0QixDQUFDLEdBQUcvQyxhQUFKLEdBQW9CQyxhQUF4QixDQUFkLENBQVg7QUFDQSxXQUFPLElBQUlhLGdCQUFKLENBQWFrQyxFQUFiLEVBQWlCQyxFQUFqQixDQUFQO0FBQ0QsR0FKTSxDQUFQO0FBS0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25mZXR0aSB9IGZyb20gJy4uL0NvbmZldHRpJ1xuaW1wb3J0IHsgVmVjdG9yMkQgfSBmcm9tICcuL1ZlY3RvcidcblxudHlwZSBDb25mZXR0aVBhcGVyQ29uZmlnID0ge1xuICBwYXJlbnQ6IENvbmZldHRpXG4gIGZldGNoQ29sb3JzOiAoKSA9PiBzdHJpbmdbXVxufVxuXG5jb25zdCBERUdfMzYwX0lOX1JBRCA9IDIgKiBNYXRoLlBJXG5jb25zdCBERUdfOTBfSU5fUkFEID0gTWF0aC5QSSAvIDJcbmNvbnN0IERFR180NV9JTl9SQUQgPSBNYXRoLlBJIC8gNFxuXG5jb25zdCBST1RBVElPTl9TUEVFRF9WQVJJQU5DRSA9IDYwMFxuY29uc3QgUk9UQVRJT05fU1BFRURfTUlOSU1VTSA9IDgwMFxuY29uc3QgT1NDSUxMQVRJT05fU1BFRURfVkFSSUFOQ0UgPSAxLjVcbmNvbnN0IE9TQ0lMTEFUSU9OX1NQRUVEX01JTklNVU0gPSAwLjVcbmNvbnN0IFhfVkVMT0NJVFkgPSA0MFxuY29uc3QgWV9WRUxPQ0lUWV9WQVJJQU5DRSA9IDYwXG5jb25zdCBZX1ZFTE9DSVRZX01JTklNVU0gPSA1MFxuXG50eXBlIFBvc2l0aW9uID0geyB4OiBudW1iZXIsIHk6IG51bWJlciB9XG50eXBlIFBvc2l0aW9ucyA9IHJlYWRvbmx5IFBvc2l0aW9uW11cblxuZXhwb3J0IGNsYXNzIENvbmZldHRpUGFwZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHBvc2l0aW9uOiBWZWN0b3IyRFxuICBwcml2YXRlIHJlYWRvbmx5IHJvdGF0aW9uU3BlZWQ6IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IGFuZ2xlOiBudW1iZXJcbiAgcHJpdmF0ZSBjb3NSb3RhdGlvbjogbnVtYmVyXG4gIHByaXZhdGUgcm90YXRpb246IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IHNpemU6IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IG9zY2lsbGF0aW9uU3BlZWQ6IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IHhWZWxvY2l0eTogbnVtYmVyXG4gIHByaXZhdGUgcmVhZG9ubHkgeVZlbG9jaXR5OiBudW1iZXJcbiAgcHJpdmF0ZSByZWFkb25seSBjb3JuZXJzOiBWZWN0b3IyRFtdXG4gIHByaXZhdGUgdGltZTogbnVtYmVyXG4gIHByaXZhdGUgcmVhZG9ubHkgZnJvbnRDb2xvcjogc3RyaW5nXG4gIHByaXZhdGUgcmVhZG9ubHkgYmFja0NvbG9yOiBzdHJpbmdcblxuICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudDogQ29uZmV0dGlcbiAgcHJpdmF0ZSByZWFkb25seSBmZXRjaENvbG9yczogKCkgPT4gc3RyaW5nW11cblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IENvbmZldHRpUGFwZXJDb25maWcpIHtcbiAgICB0aGlzLnBhcmVudCA9IGNvbmZpZy5wYXJlbnRcbiAgICB0aGlzLmZldGNoQ29sb3JzID0gY29uZmlnLmZldGNoQ29sb3JzXG5cbiAgICB0aGlzLnBvc2l0aW9uID0gbmV3IFZlY3RvcjJEKFxuICAgICAgTWF0aC5yYW5kb20oKSAqIHRoaXMucGFyZW50LndpZHRoLFxuICAgICAgTWF0aC5yYW5kb20oKSAqIHRoaXMucGFyZW50LmhlaWdodFxuICAgIClcblxuICAgIHRoaXMuY29zUm90YXRpb24gPSAxLjBcbiAgICB0aGlzLmFuZ2xlID0gTWF0aC5yYW5kb20oKSAqIERFR18zNjBfSU5fUkFEXG4gICAgdGhpcy5yb3RhdGlvbiA9IE1hdGgucmFuZG9tKCkgKiBERUdfMzYwX0lOX1JBRFxuICAgIHRoaXMucm90YXRpb25TcGVlZCA9XG4gICAgICBNYXRoLnJhbmRvbSgpICogUk9UQVRJT05fU1BFRURfVkFSSUFOQ0UgKyBST1RBVElPTl9TUEVFRF9NSU5JTVVNXG5cbiAgICB0aGlzLm9zY2lsbGF0aW9uU3BlZWQgPVxuICAgICAgTWF0aC5yYW5kb20oKSAqIE9TQ0lMTEFUSU9OX1NQRUVEX1ZBUklBTkNFICsgT1NDSUxMQVRJT05fU1BFRURfTUlOSU1VTVxuXG4gICAgdGhpcy54VmVsb2NpdHkgPSBYX1ZFTE9DSVRZXG4gICAgdGhpcy55VmVsb2NpdHkgPSBNYXRoLnJhbmRvbSgpICogWV9WRUxPQ0lUWV9WQVJJQU5DRSArIFlfVkVMT0NJVFlfTUlOSU1VTVxuICAgIHRoaXMudGltZSA9IE1hdGgucmFuZG9tKClcblxuICAgIHRoaXMuY29ybmVycyA9IGNvbXB1dGVDb3JuZXJzKHRoaXMuYW5nbGUpXG5cbiAgICBjb25zdCBbZnJvbnRDb2xvciwgYmFja0NvbG9yXSA9IHRoaXMuZmV0Y2hDb2xvcnMoKVxuICAgIHRoaXMuZnJvbnRDb2xvciA9IGZyb250Q29sb3JcbiAgICB0aGlzLmJhY2tDb2xvciA9IGJhY2tDb2xvclxuICAgIHRoaXMuc2l6ZSA9IDUuMFxuICB9XG5cbiAgcHVibGljIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50aW1lICs9IGR0XG4gICAgdGhpcy5yb3RhdGlvbiArPSB0aGlzLnJvdGF0aW9uU3BlZWQgKiBkdFxuICAgIHRoaXMuY29zUm90YXRpb24gPSBNYXRoLmNvcygodGhpcy5yb3RhdGlvbiAqIE1hdGguUEkpIC8gMTgwKVxuXG4gICAgdGhpcy5wb3NpdGlvbi54ICs9XG4gICAgICBNYXRoLmNvcyh0aGlzLnRpbWUgKiB0aGlzLm9zY2lsbGF0aW9uU3BlZWQpICogdGhpcy54VmVsb2NpdHkgKiBkdFxuICAgIHRoaXMucG9zaXRpb24ueSArPSB0aGlzLnlWZWxvY2l0eSAqIGR0XG5cbiAgICAvLyBSZXNldCBwYXBlciB0byB0aGUgdG9wIG9mIHRoZSBzY3JlZW5cbiAgICBpZiAodGhpcy5wb3NpdGlvbi55ID4gdGhpcy5wYXJlbnQuaGVpZ2h0KSB7XG4gICAgICB0aGlzLnBvc2l0aW9uLnggPSBNYXRoLnJhbmRvbSgpICogdGhpcy5wYXJlbnQud2lkdGhcbiAgICAgIHRoaXMucG9zaXRpb24ueSA9IDBcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZHJhdyhjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb3NSb3RhdGlvbiA+IDApIHtcbiAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gdGhpcy5mcm9udENvbG9yXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gdGhpcy5iYWNrQ29sb3JcbiAgICB9XG5cbiAgICBjb25zdCBbZmlyc3RDb3JuZXIsIC4uLnJlbWFpbmluZ0Nvcm5lcnNdID0gdGhpcy5jb21wdXRlQ29ybmVyRHJhd1Bvc2l0aW9ucygpXG4gICAgY29udGV4dC5iZWdpblBhdGgoKVxuICAgIGNvbnRleHQubW92ZVRvKGZpcnN0Q29ybmVyLngsIGZpcnN0Q29ybmVyLnkpXG4gICAgcmVtYWluaW5nQ29ybmVycy5mb3JFYWNoKCh7IHgsIHkgfSkgPT4gY29udGV4dC5saW5lVG8oeCwgeSkpXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKVxuICAgIGNvbnRleHQuZmlsbCgpXG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVDb3JuZXJEcmF3UG9zaXRpb25zKCk6IFBvc2l0aW9ucyB7XG4gICAgcmV0dXJuIHRoaXMuY29ybmVycy5tYXAoKHsgeCwgeSB9LCBpKSA9PiB7XG4gICAgICB4ID0gdGhpcy5wb3NpdGlvbi54ICsgeCAqIHRoaXMuc2l6ZVxuICAgICAgeSA9IHRoaXMucG9zaXRpb24ueSArIHkgKiB0aGlzLnNpemUgKiB0aGlzLmNvc1JvdGF0aW9uXG5cbiAgICAgIHJldHVybiB7IHgsIHkgfVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcHV0ZUNvcm5lcnMoYW5nbGU6IG51bWJlcikge1xuICByZXR1cm4gWzAsIDEsIDIsIDNdLm1hcCgoaSkgPT4ge1xuICAgIGNvbnN0IGR4ID0gTWF0aC5jb3MoYW5nbGUgKyAoaSAqIERFR185MF9JTl9SQUQgKyBERUdfNDVfSU5fUkFEKSlcbiAgICBjb25zdCBkeSA9IE1hdGguc2luKGFuZ2xlICsgKGkgKiBERUdfOTBfSU5fUkFEICsgREVHXzQ1X0lOX1JBRCkpXG4gICAgcmV0dXJuIG5ldyBWZWN0b3IyRChkeCwgZHkpXG4gIH0pXG59XG5cbiJdfQ==
import { Confetti } from '../Confetti';
import { EulerMass } from './EulerMass';
import { Vector2D } from './Vector';
declare type ConfettiRibbonConfig = {

@@ -14,31 +12,31 @@ particleCount?: number;

};
declare class ConfettiRibbon {
parent: Confetti;
fetchColors: () => string[];
currPosition: Vector2D;
prevPosition: Vector2D;
particleCount: number;
particleMass: number;
particleDrag: number;
particleDistance: number;
thickness: number;
angle: number;
xOff: number;
yOff: number;
frontColor: string;
backColor: string;
time: number;
velocityInherit: number;
oscillationSpeed: number;
oscillationDistance: number;
yVelocity: number;
particles: EulerMass[];
export declare class ConfettiRibbon {
private readonly parent;
private readonly fetchColors;
private currPosition;
private prevPosition;
private readonly particleCount;
private readonly particleMass;
private readonly particleDrag;
private readonly particleDistance;
private readonly thickness;
private readonly angle;
private readonly xOff;
private readonly yOff;
private frontColor;
private backColor;
private time;
private velocityInherit;
private oscillationSpeed;
private oscillationDistance;
private yVelocity;
private particles;
constructor({ particleCount, particleMass, particleDrag, particleDistance, thickness, angle, parent, fetchColors, }: ConfettiRibbonConfig);
reset(): void;
private reset;
update(dt: number): void;
draw(context: CanvasRenderingContext2D): void;
drawFirstParticle(context: CanvasRenderingContext2D, particle: EulerMass, nextParticle: EulerMass, p0: Vector2D, p1: Vector2D): void;
drawMiddleParticle(context: CanvasRenderingContext2D, particle: EulerMass, nextParticle: EulerMass, p0: Vector2D, p1: Vector2D): void;
drawLastParticle(context: CanvasRenderingContext2D, particle: EulerMass, nextParticle: EulerMass, p0: Vector2D, p1: Vector2D): void;
private drawFirstParticle;
private drawMiddleParticle;
private drawLastParticle;
}
export { ConfettiRibbon };
export {};

@@ -233,2 +233,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpL0NvbmZldHRpUmliYm9uLnRzIl0sIm5hbWVzIjpbIlZFTE9DSVRZX0lOSEVSSVRfSU5JVElBTF9NQVgiLCJUSU1FX0lOSVRJQUxfTUFYIiwiT1NDSUxMQVRJT05fU1BFRURfVkFSSUFOQ0UiLCJPU0NJTExBVElPTl9TUEVFRF9NSU5JTVVNIiwiT1NDSUxMQVRJT05fRElTVEFOQ0VfVkFSSUFOQ0UiLCJPU0NJTExBVElPTl9ESVNUQU5DRV9NSU5JTVVNIiwiWV9WRUxPQ0lUWV9WQVJJQU5DRSIsIllfVkVMT0NJVFlfTUlOSU1VTSIsIkNvbmZldHRpUmliYm9uIiwicGFydGljbGVDb3VudCIsInBhcnRpY2xlTWFzcyIsInBhcnRpY2xlRHJhZyIsInBhcnRpY2xlRGlzdGFuY2UiLCJ0aGlja25lc3MiLCJhbmdsZSIsIk1hdGgiLCJQSSIsInBhcmVudCIsImZldGNoQ29sb3JzIiwieE9mZiIsImNvcyIsInlPZmYiLCJzaW4iLCJyZXNldCIsIngiLCJyYW5kb20iLCJ3aWR0aCIsInkiLCJoZWlnaHQiLCJjdXJyUG9zaXRpb24iLCJWZWN0b3IyRCIsInByZXZQb3NpdGlvbiIsImNsb25lIiwiZnJvbnRDb2xvciIsImJhY2tDb2xvciIsInRpbWUiLCJvc2NpbGxhdGlvblNwZWVkIiwib3NjaWxsYXRpb25EaXN0YW5jZSIsInZlbG9jaXR5SW5oZXJpdCIsInlWZWxvY2l0eSIsInBhcnRpY2xlcyIsIkFycmF5IiwibWFwIiwiXyIsImkiLCJFdWxlck1hc3MiLCJkdCIsImR4IiwiZHkiLCJkRGlzdGFuY2UiLCJzcXJ0IiwicG9zaXRpb24iLCJpbmRleCIsImxlbmd0aCIsImRpcmVjdGlvbkZvcmNlIiwic3ViIiwibm9ybWFsaXplIiwibXVsdGlwbHkiLCJhZGRGb3JjZSIsImludGVncmF0ZSIsInJwMiIsInN1YnRyYWN0IiwiYWRkIiwiY29udGV4dCIsInBhcnRpY2xlIiwibmV4dFBhcnRpY2xlIiwib2Zmc2V0VmVjdG9yIiwicDAiLCJwMSIsInNpZGVGYWNpbmciLCJmaWxsU3R5bGUiLCJzdHJva2VTdHlsZSIsImRyYXdGaXJzdFBhcnRpY2xlIiwiZHJhd01pZGRsZVBhcnRpY2xlIiwiZHJhd0xhc3RQYXJ0aWNsZSIsImJlZ2luUGF0aCIsIm1vdmVUbyIsImxpbmVUbyIsImNsb3NlUGF0aCIsInN0cm9rZSIsImZpbGwiLCJ4MSIsInkxIiwieDIiLCJ5MiIsIngzIiwieTMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLElBQU1BLDRCQUE0QixHQUFHLENBQXJDO0FBQ0EsSUFBTUMsZ0JBQWdCLEdBQUcsRUFBekI7QUFDQSxJQUFNQywwQkFBMEIsR0FBRyxDQUFuQztBQUNBLElBQU1DLHlCQUF5QixHQUFHLEdBQWxDO0FBQ0EsSUFBTUMsNkJBQTZCLEdBQUcsRUFBdEM7QUFDQSxJQUFNQyw0QkFBNEIsR0FBRyxFQUFyQztBQUNBLElBQU1DLG1CQUFtQixHQUFHLEVBQTVCO0FBQ0EsSUFBTUMsa0JBQWtCLEdBQUcsRUFBM0I7O0lBRU1DLGM7QUE0QkosZ0NBU3lCO0FBQUEsa0NBUnZCQyxhQVF1QjtBQUFBLFFBUnZCQSxhQVF1QixtQ0FSUCxFQVFPO0FBQUEsaUNBUHZCQyxZQU91QjtBQUFBLFFBUHZCQSxZQU91QixrQ0FQUixDQU9RO0FBQUEsaUNBTnZCQyxZQU11QjtBQUFBLFFBTnZCQSxZQU11QixrQ0FOUixJQU1RO0FBQUEscUNBTHZCQyxnQkFLdUI7QUFBQSxRQUx2QkEsZ0JBS3VCLHNDQUxKLEdBS0k7QUFBQSw4QkFKdkJDLFNBSXVCO0FBQUEsUUFKdkJBLFNBSXVCLCtCQUpYLEdBSVc7QUFBQSwwQkFIdkJDLEtBR3VCO0FBQUEsUUFIdkJBLEtBR3VCLDJCQUhmQyxJQUFJLENBQUNDLEVBQUwsR0FBVSxDQUdLO0FBQUEsUUFGdkJDLE1BRXVCLFFBRnZCQSxNQUV1QjtBQUFBLFFBRHZCQyxXQUN1QixRQUR2QkEsV0FDdUI7O0FB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R0FBR0YsRUFBbEIsQ0FBL0I7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZldHRpIH0gZnJvbSAnLi4vQ29uZmV0dGknXG5pbXBvcnQgeyBFdWxlck1hc3MgfSBmcm9tICcuL0V1bGVyTWFzcydcbmltcG9ydCB7IFZlY3RvcjJEIH0gZnJvbSAnLi9WZWN0b3InXG5cbnR5cGUgQ29uZmV0dGlSaWJib25Db25maWcgPSB7XG4gIHBhcnRpY2xlQ291bnQ/OiBudW1iZXJcbiAgcGFydGljbGVNYXNzPzogbnVtYmVyXG4gIHBhcnRpY2xlRHJhZz86IG51bWJlclxuICBwYXJ0aWNsZURpc3RhbmNlPzogbnVtYmVyXG4gIHRoaWNrbmVzcz86IG51bWJlclxuICBhbmdsZT86IG51bWJlclxuICBwYXJlbnQ6IENvbmZldHRpXG4gIGZldGNoQ29sb3JzOiAoKSA9PiBzdHJpbmdbXVxufVxuXG5jb25zdCBWRUxPQ0lUWV9JTkhFUklUX0lOSVRJQUxfTUFYID0gMlxuY29uc3QgVElNRV9JTklUSUFMX01BWCA9IDEwXG5jb25zdCBPU0NJTExBVElPTl9TUEVFRF9WQVJJQU5DRSA9IDJcbmNvbnN0IE9TQ0lMTEFUSU9OX1NQRUVEX01JTklNVU0gPSAxLjVcbmNvbnN0IE9TQ0lMTEFUSU9OX0RJU1RBTkNFX1ZBUklBTkNFID0gNDBcbmNvbnN0IE9TQ0lMTEFUSU9OX0RJU1RBTkNFX01JTklNVU0gPSA0MFxuY29uc3QgWV9WRUxPQ0lUWV9WQVJJQU5DRSA9IDQwXG5jb25zdCBZX1ZFTE9DSVRZX01JTklNVU0gPSA4MFxuXG5jbGFzcyBDb25mZXR0aVJpYmJvbiB7XG4gIHBhcmVudDogQ29uZmV0dGlcbiAgZmV0Y2hDb2xvcnM6ICgpID0+IHN0cmluZ1tdXG5cbiAgY3VyclBvc2l0aW9uITogVmVjdG9yMkRcbiAgcHJldlBvc2l0aW9uITogVmVjdG9yMkRcblxuICBwYXJ0aWNsZUNvdW50OiBudW1iZXJcbiAgcGFydGljbGVNYXNzOiBudW1iZXJcbiAgcGFydGljbGVEcmFnOiBudW1iZXJcbiAgcGFydGljbGVEaXN0YW5jZTogbnVtYmVyXG4gIHRoaWNrbmVzczogbnVtYmVyXG4gIGFuZ2xlOiBudW1iZXJcblxuICB4T2ZmOiBudW1iZXJcbiAgeU9mZjogbnVtYmVyXG5cbiAgZnJvbnRDb2xvciE6IHN0cmluZ1xuICBiYWNrQ29sb3IhOiBzdHJpbmdcblxuICB0aW1lITogbnVtYmVyXG4gIHZlbG9jaXR5SW5oZXJpdCE6IG51bWJlclxuICBvc2NpbGxhdGlvblNwZWVkITogbnVtYmVyXG4gIG9zY2lsbGF0aW9uRGlzdGFuY2UhOiBudW1iZXJcbiAgeVZlbG9jaXR5ITogbnVtYmVyXG5cbiAgcGFydGljbGVzITogRXVsZXJNYXNzW11cblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgcGFydGljbGVDb3VudCA9IDMwLFxuICAgIHBhcnRpY2xlTWFzcyA9IDEsXG4gICAgcGFydGljbGVEcmFnID0gMC4wNSxcbiAgICBwYXJ0aWNsZURpc3RhbmNlID0gOC4wLFxuICAgIHRoaWNrbmVzcyA9IDguMCxcbiAgICBhbmdsZSA9IE1hdGguUEkgLyA0LFxuICAgIHBhcmVudCxcbiAgICBmZXRjaENvbG9ycyxcbiAgfTogQ29uZmV0dGlSaWJib25Db25maWcpIHtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudFxuICAgIHRoaXMuZmV0Y2hDb2xvcnMgPSBmZXRjaENvbG9yc1xuXG4gICAgdGhpcy5wYXJ0aWNsZUNvdW50ID0gcGFydGljbGVDb3VudFxuICAgIHRoaXMucGFydGljbGVNYXNzID0gcGFydGljbGVNYXNzXG4gICAgdGhpcy5wYXJ0aWNsZURyYWcgPSBwYXJ0aWNsZURyYWdcbiAgICB0aGlzLnBhcnRpY2xlRGlzdGFuY2UgPSBwYXJ0aWNsZURpc3RhbmNlXG4gICAgdGhpcy50aGlja25lc3MgPSB0aGlja25lc3NcbiAgICB0aGlzLmFuZ2xlID0gYW5nbGVcblxuICAgIHRoaXMueE9mZiA9IE1hdGguY29zKHRoaXMuYW5nbGUpICogdGhpcy50aGlja25lc3NcbiAgICB0aGlzLnlPZmYgPSBNYXRoLnNpbih0aGlzLmFuZ2xlKSAqIHRoaXMudGhpY2tuZXNzXG5cbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIGNvbnN0IHggPSBNYXRoLnJhbmRvbSgpICogdGhpcy5wYXJlbnQud2lkdGhcbiAgICBjb25zdCB5ID0gLTEgKiBNYXRoLnJhbmRvbSgpICogdGhpcy5wYXJlbnQuaGVpZ2h0ICogMlxuXG4gICAgdGhpcy5jdXJyUG9zaXRpb24gPSBuZXcgVmVjdG9yMkQoeCwgeSlcbiAgICB0aGlzLnByZXZQb3NpdGlvbiA9IHRoaXMuY3VyclBvc2l0aW9uLmNsb25lKClcblxuICAgIGNvbnN0IFtmcm9udENvbG9yLCBiYWNrQ29sb3JdID0gdGhpcy5mZXRjaENvbG9ycygpXG4gICAgdGhpcy5mcm9udENvbG9yID0gZnJvbnRDb2xvclxuICAgIHRoaXMuYmFja0NvbG9yID0gYmFja0NvbG9yXG5cbiAgICB0aGlzLnRpbWUgPSBNYXRoLnJhbmRvbSgpICogVElNRV9JTklUSUFMX01BWFxuXG4gICAgdGhpcy5vc2NpbGxhdGlvblNwZWVkID1cbiAgICAgIE1hdGgucmFuZG9tKCkgKiBPU0NJTExBVElPTl9TUEVFRF9WQVJJQU5DRSArIE9TQ0lMTEFUSU9OX1NQRUVEX01JTklNVU1cbiAgICB0aGlzLm9zY2lsbGF0aW9uRGlzdGFuY2UgPVxuICAgICAgTWF0aC5yYW5kb20oKSAqIE9TQ0lMTEFUSU9OX0RJU1RBTkNFX1ZBUklBTkNFICtcbiAgICAgIE9TQ0lMTEFUSU9OX0RJU1RBTkNFX01JTklNVU1cblxuICAgIHRoaXMudmVsb2NpdHlJbmhlcml0ID0gTWF0aC5yYW5kb20oKSAqIFZFTE9DSVRZX0lOSEVSSVRfSU5JVElBTF9NQVhcbiAgICB0aGlzLnlWZWxvY2l0eSA9IE1hdGgucmFuZG9tKCkgKiBZX1ZFTE9DSVRZX1ZBUklBTkNFICsgWV9WRUxPQ0lUWV9NSU5JTVVNXG5cbiAgICB0aGlzLnBhcnRpY2xlcyA9IFsuLi5uZXcgQXJyYXkodGhpcy5wYXJ0aWNsZUNvdW50KV0ubWFwKFxuICAgICAgKF8sIGkpID0+XG4gICAgICAgIG5ldyBFdWxlck1hc3MoXG4gICAgICAgICAgeCxcbiAgICAgICAgICB5IC0gaSAqIHRoaXMucGFydGljbGVEaXN0YW5jZSxcbiAgICAgICAgICB0aGlzLnBhcnRpY2xlTWFzcyxcbiAgICAgICAgICB0aGlzLnBhcnRpY2xlRHJhZ1xuICAgICAgICApXG4gICAgKVxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcbiAgICB0aGlzLnRpbWUgKz0gZHQgKiB0aGlzLm9zY2lsbGF0aW9uU3BlZWRcbiAgICB0aGlzLmN1cnJQb3NpdGlvbi54ICs9IE1hdGguY29zKHRoaXMudGltZSkgKiB0aGlzLm9zY2lsbGF0aW9uRGlzdGFuY2UgKiBkdFxuICAgIHRoaXMuY3VyclBvc2l0aW9uLnkgKz0gdGhpcy55VmVsb2NpdHkgKiBkdFxuXG4gICAgY29uc3QgZHggPSB0aGlzLnByZXZQb3NpdGlvbi54IC0gdGhpcy5jdXJyUG9zaXRpb24ueFxuICAgIGNvbnN0IGR5ID0gdGhpcy5wcmV2UG9zaXRpb24ueSAtIHRoaXMuY3VyclBvc2l0aW9uLnlcbiAgICBjb25zdCBkRGlzdGFuY2UgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpXG5cbiAgICB0aGlzLnByZXZQb3NpdGlvbiA9IHRoaXMuY3VyclBvc2l0aW9uLmNsb25lKClcblxuICAgIC8vIFVwZGF0ZSBlYWNoIHBhcnRpY2xlJ3MgcG9zaXRpb25cbiAgICB0aGlzLnBhcnRpY2xlc1swXS5wb3NpdGlvbiA9IHRoaXMuY3VyclBvc2l0aW9uXG4gICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHRoaXMucGFydGljbGVzLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgY29uc3QgZGlyZWN0aW9uRm9yY2UgPSBWZWN0b3IyRC5zdWIoXG4gICAgICAgIHRoaXMucGFydGljbGVzW2luZGV4IC0gMV0ucG9zaXRpb24sXG4gICAgICAgIHRoaXMucGFydGljbGVzW2luZGV4XS5wb3NpdGlvblxuICAgICAgKVxuICAgICAgICAubm9ybWFsaXplKClcbiAgICAgICAgLm11bHRpcGx5KChkRGlzdGFuY2UgLyBkdCkgKiB0aGlzLnZlbG9jaXR5SW5oZXJpdClcblxuICAgICAgdGhpcy5wYXJ0aWNsZXNbaW5kZXhdLmFkZEZvcmNlKGRpcmVjdGlvbkZvcmNlKVxuICAgIH1cblxuICAgIC8vIGludGVncmF0ZSB0aGUgZm9yY2VzXG4gICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHRoaXMucGFydGljbGVzLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgdGhpcy5wYXJ0aWNsZXNbaW5kZXhdLmludGVncmF0ZShkdClcbiAgICB9XG5cbiAgICAvLyBjYWxjdWxhdGUgZmluYWwgcG9zaXRpb25cbiAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgdGhpcy5wYXJ0aWNsZXMubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICBjb25zdCBycDIgPSB0aGlzLnBhcnRpY2xlc1tpbmRleF0ucG9zaXRpb25cbiAgICAgICAgLnN1YnRyYWN0KHRoaXMucGFydGljbGVzW2luZGV4IC0gMV0ucG9zaXRpb24pXG4gICAgICAgIC5ub3JtYWxpemUoKVxuICAgICAgICAubXVsdGlwbHkodGhpcy5wYXJ0aWNsZURpc3RhbmNlKVxuICAgICAgICAuYWRkKHRoaXMucGFydGljbGVzW2luZGV4IC0gMV0ucG9zaXRpb24pXG4gICAgICB0aGlzLnBhcnRpY2xlc1tpbmRleF0ucG9zaXRpb24gPSBycDJcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmN1cnJQb3NpdGlvbi55ID5cbiAgICAgIHRoaXMucGFyZW50LmhlaWdodCArIHRoaXMucGFydGljbGVEaXN0YW5jZSAqIHRoaXMucGFydGljbGVDb3VudFxuICAgICkge1xuICAgICAgdGhpcy5yZXNldCgpXG4gICAgfVxuICB9XG5cbiAgZHJhdyhjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpIHtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5wYXJ0aWNsZXMubGVuZ3RoIC0gMTsgaW5kZXggKz0gMSkge1xuICAgICAgY29uc3QgcGFydGljbGUgPSB0aGlzLnBhcnRpY2xlc1tpbmRleF1cbiAgICAgIGNvbnN0IG5leHRQYXJ0aWNsZSA9IHRoaXMucGFydGljbGVzW2luZGV4ICsgMV1cblxuICAgICAgY29uc3Qgb2Zmc2V0VmVjdG9yID0gbmV3IFZlY3RvcjJEKHRoaXMueE9mZiwgdGhpcy55T2ZmKVxuICAgICAgY29uc3QgcDAgPSBwYXJ0aWNsZS5wb3NpdGlvbi5hZGQob2Zmc2V0VmVjdG9yKVxuICAgICAgY29uc3QgcDEgPSBuZXh0UGFydGljbGUucG9zaXRpb24uYWRkKG9mZnNldFZlY3RvcilcblxuICAgICAgaWYgKHNpZGVGYWNpbmcocGFydGljbGUsIG5leHRQYXJ0aWNsZSwgcDEpIDwgMCkge1xuICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IHRoaXMuZnJvbnRDb2xvclxuICAgICAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gdGhpcy5mcm9udENvbG9yXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IHRoaXMuYmFja0NvbG9yXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSB0aGlzLmJhY2tDb2xvclxuICAgICAgfVxuXG4gICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgdGhpcy5kcmF3Rmlyc3RQYXJ0aWNsZShjb250ZXh0LCBwYXJ0aWNsZSwgbmV4dFBhcnRpY2xlLCBwMCwgcDEpXG4gICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSB0aGlzLnBhcnRpY2xlcy5sZW5ndGggLSAyKSB7XG4gICAgICAgIHRoaXMuZHJhd01pZGRsZVBhcnRpY2xlKGNvbnRleHQsIHBhcnRpY2xlLCBuZXh0UGFydGljbGUsIHAwLCBwMSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZHJhd0xhc3RQYXJ0aWNsZShjb250ZXh0LCBwYXJ0aWNsZSwgbmV4dFBhcnRpY2xlLCBwMCwgcDEpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZHJhd0ZpcnN0UGFydGljbGUoXG4gICAgY29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELFxuICAgIHBhcnRpY2xlOiBFdWxlck1hc3MsXG4gICAgbmV4dFBhcnRpY2xlOiBFdWxlck1hc3MsXG4gICAgcDA6IFZlY3RvcjJELFxuICAgIHAxOiBWZWN0b3IyRFxuICApIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpXG4gICAgY29udGV4dC5tb3ZlVG8ocGFydGljbGUucG9zaXRpb24ueCwgcGFydGljbGUucG9zaXRpb24ueSlcbiAgICBjb250ZXh0LmxpbmVUbyhuZXh0UGFydGljbGUucG9zaXRpb24ueCwgbmV4dFBhcnRpY2xlLnBvc2l0aW9uLnkpXG4gICAgY29udGV4dC5saW5lVG8oXG4gICAgICAobmV4dFBhcnRpY2xlLnBvc2l0aW9uLnggKyBwMS54KSAqIDAuNSxcbiAgICAgIChuZXh0UGFydGljbGUucG9zaXRpb24ueSArIHAxLnkpICogMC41XG4gICAgKVxuICAgIGNvbnRleHQuY2xvc2VQYXRoKClcbiAgICBjb250ZXh0LnN0cm9rZSgpXG4gICAgY29udGV4dC5maWxsKClcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpXG4gICAgY29udGV4dC5tb3ZlVG8ocDEueCwgcDEueSlcbiAgICBjb250ZXh0LmxpbmVUbyhwMC54LCBwMC55KVxuICAgIGNvbnRleHQubGluZVRvKFxuICAgICAgKG5leHRQYXJ0aWNsZS5wb3NpdGlvbi54ICsgcDEueCkgKiAwLjUsXG4gICAgICAobmV4dFBhcnRpY2xlLnBvc2l0aW9uLnkgKyBwMS55KSAqIDAuNVxuICAgIClcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpXG4gICAgY29udGV4dC5zdHJva2UoKVxuICAgIGNvbnRleHQuZmlsbCgpXG4gIH1cblxuICBkcmF3TWlkZGxlUGFydGljbGUoXG4gICAgY29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELFxuICAgIHBhcnRpY2xlOiBFdWxlck1hc3MsXG4gICAgbmV4dFBhcnRpY2xlOiBFdWxlck1hc3MsXG4gICAgcDA6IFZlY3RvcjJELFxuICAgIHAxOiBWZWN0b3IyRFxuICApIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpXG4gICAgY29udGV4dC5tb3ZlVG8ocGFydGljbGUucG9zaXRpb24ueCwgcGFydGljbGUucG9zaXRpb24ueSlcbiAgICBjb250ZXh0LmxpbmVUbyhuZXh0UGFydGljbGUucG9zaXRpb24ueCwgbmV4dFBhcnRpY2xlLnBvc2l0aW9uLnkpXG4gICAgY29udGV4dC5saW5lVG8oXG4gICAgICAocGFydGljbGUucG9zaXRpb24ueCArIHAwLngpICogMC41LFxuICAgICAgKHBhcnRpY2xlLnBvc2l0aW9uLnkgKyBwMC55KSAqIDAuNVxuICAgIClcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpXG4gICAgY29udGV4dC5zdHJva2UoKVxuICAgIGNvbnRleHQuZmlsbCgpXG4gICAgY29udGV4dC5iZWdpblBhdGgoKVxuICAgIGNvbnRleHQubW92ZVRvKHAxLngsIHAxLnkpXG4gICAgY29udGV4dC5saW5lVG8ocDAueCwgcDAueSlcbiAgICBjb250ZXh0LmxpbmVUbyhcbiAgICAgIChwYXJ0aWNsZS5wb3NpdGlvbi54ICsgcDAueCkgKiAwLjUsXG4gICAgICAocGFydGljbGUucG9zaXRpb24ueSArIHAwLnkpICogMC41XG4gICAgKVxuICAgIGNvbnRleHQuY2xvc2VQYXRoKClcbiAgICBjb250ZXh0LnN0cm9rZSgpXG4gICAgY29udGV4dC5maWxsKClcbiAgfVxuXG4gIGRyYXdMYXN0UGFydGljbGUoXG4gICAgY29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELFxuICAgIHBhcnRpY2xlOiBFdWxlck1hc3MsXG4gICAgbmV4dFBhcnRpY2xlOiBFdWxlck1hc3MsXG4gICAgcDA6IFZlY3RvcjJELFxuICAgIHAxOiBWZWN0b3IyRFxuICApIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpXG4gICAgY29udGV4dC5tb3ZlVG8ocGFydGljbGUucG9zaXRpb24ueCwgcGFydGljbGUucG9zaXRpb24ueSlcbiAgICBjb250ZXh0LmxpbmVUbyhuZXh0UGFydGljbGUucG9zaXRpb24ueCwgbmV4dFBhcnRpY2xlLnBvc2l0aW9uLnkpXG4gICAgY29udGV4dC5saW5lVG8ocDEueCwgcDEueSlcbiAgICBjb250ZXh0LmxpbmVUbyhwMC54LCBwMC55KVxuICAgIGNvbnRleHQuY2xvc2VQYXRoKClcbiAgICBjb250ZXh0LnN0cm9rZSgpXG4gICAgY29udGV4dC5maWxsKClcbiAgfVxufVxuXG5mdW5jdGlvbiBzaWRlRmFjaW5nKFxuICB7IHBvc2l0aW9uOiB7IHg6IHgxLCB5OiB5MSB9IH06IEV1bGVyTWFzcyxcbiAgeyBwb3NpdGlvbjogeyB4OiB4MiwgeTogeTIgfSB9OiBFdWxlck1hc3MsXG4gIHsgeDogeDMsIHk6IHkzIH06IFZlY3RvcjJEXG4pIHtcbiAgcmV0dXJuICh4MSAtIHgyKSAqICh5MyAtIHkyKSAtICh5MSAtIHkyKSAqICh4MyAtIHgyKVxufVxuXG5leHBvcnQgeyBDb25mZXR0aVJpYmJvbiB9XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpL0NvbmZldHRpUmliYm9uLnRzIl0sIm5hbWVzIjpbIlZFTE9DSVRZX0lOSEVSSVRfSU5JVElBTF9NQVgiLCJUSU1FX0lOSVRJQUxfTUFYIiwiT1NDSUxMQVRJT05fU1BFRURfVkFSSUFOQ0UiLCJPU0NJTExBVElPTl9TUEVFRF9NSU5JTVVNIiwiT1NDSUxMQVRJT05fRElTVEFOQ0VfVkFSSUFOQ0UiLCJPU0NJTExBVElPTl9ESVNUQU5DRV9NSU5JTVVNIiwiWV9WRUxPQ0lUWV9WQVJJQU5DRSIsIllfVkVMT0NJVFlfTUlOSU1VTSIsIkNvbmZldHRpUmliYm9uIiwicGFydGljbGVDb3VudCIsInBhcnRpY2xlTWFzcyIsInBhcnRpY2xlRHJhZyIsInBhcnRpY2xlRGlzdGFuY2UiLCJ0aGlja25lc3MiLCJhbmdsZSIsIk1hdGgiLCJQSSIsInBhcmVudCIsImZldGNoQ29sb3JzIiwieE9mZiIsImNvcyIsInlPZmYiLCJzaW4iLCJyZXNldCIsIngiLCJyYW5kb20iLCJ3aWR0aCIsInkiLCJoZWlnaHQiLCJjdXJyUG9zaXRpb24iLCJWZWN0b3IyRCIsInByZXZQb3NpdGlvbiIsImNsb25lIiwiZnJvbnRDb2xvciIsImJhY2tDb2xvciIsInRpbWUiLCJvc2NpbGxhdGlvblNwZWVkIiwib3NjaWxsYXRpb25EaXN0YW5jZSIsInZlbG9jaXR5SW5oZXJpdCIsInlWZWxvY2l0eSIsInBhcnRpY2xlcyIsIkFycmF5IiwibWFwIiwiXyIsImkiLCJFdWxlck1hc3MiLCJkdCIsImR4IiwiZHkiLCJkRGlzdGFuY2UiLCJzcXJ0IiwicG9zaXRpb24iLCJpbmRleCIsImxlbmd0aCIsImRpcmVjdGlvbkZvcmNlIiwic3ViIiwibm9ybWFsaXplIiwibXVsdGlwbHkiLCJhZGRGb3JjZSIsImludGVncmF0ZSIsInJwMiIsInN1YnRyYWN0IiwiYWRkIiwiY29udGV4dCIsInBhcnRpY2xlIiwibmV4dFBhcnRpY2xlIiwib2Zmc2V0VmVjdG9yIiwicDAiLCJwMSIsInNpZGVGYWNpbmciLCJmaWxsU3R5bGUiLCJzdHJva2VTdHlsZSIsImRyYXdGaXJzdFBhcnRpY2xlIiwiZHJhd01pZGRsZVBhcnRpY2xlIiwiZHJhd0xhc3RQYXJ0aWNsZSIsImJlZ2luUGF0aCIsIm1vdmVUbyIsImxpbmVUbyIsImNsb3NlUGF0aCIsInN0cm9rZSIsImZpbGwiLCJ4MSIsInkxIiwieDIiLCJ5MiIsIngzIiwieTMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLElBQU1BLDRCQUE0QixHQUFHLENBQXJDO0FBQ0EsSUFBTUMsZ0JBQWdCLEdBQUcsRUFBekI7QUFDQSxJQUFNQywwQkFBMEIsR0FBRyxDQUFuQztBQUNBLElBQU1DLHlCQUF5QixHQUFHLEdBQWxDO0FBQ0EsSUFBTUMsNkJBQTZCLEdBQUcsRUFBdEM7QUFDQSxJQUFNQyw0QkFBNEIsR0FBRyxFQUFyQztBQUNBLElBQU1DLG1CQUFtQixHQUFHLEVBQTVCO0FBQ0EsSUFBTUMsa0JBQWtCLEdBQUcsRUFBM0I7O0lBRWFDLGM7QUE0QlgsZ0NBU3lCO0FBQUEsa0NBUnZCQyxhQVF1QjtBQUFBLFFBUnZCQSxhQVF1QixtQ0FSUCxFQVFPO0FBQUEsaUNBUHZCQyxZQU91QjtBQUFBLFFBUHZCQSxZQU91QixrQ0FQUixDQU9RO0FBQUEsaUNBTnZCQyxZQU11QjtBQUFBLFFBTnZCQSxZQU11QixrQ0FOUixJQU1RO0FBQUEscUNBTHZCQyxnQkFLdUI7QUFBQSxRQUx2QkEsZ0JBS3VCLHNDQUxKLEdBS0k7QUFBQSw4QkFKdkJDLFNBSXVCO0FBQUEsUUFKdkJBLFNBSXVCLCtCQUpYLEdBSVc7QUFBQSwwQkFIdkJDLEtBR3VCO0FBQUEsUUFIdkJBLEtBR3VCLDJCQUhmQyxJQUFJLENBQUNDLEVBQUwsR0FBVSxDQUdLO0FBQUEsUUFGdkJDLE1BRXVCLFFBRnZCQSxNQUV1QjtBQUFBLFFBRHZCQyxXQUN1QixRQUR2QkEsV0FDdUI7O0FB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RSxHQUFHRixFQUFsQixDQUEvQjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmV0dGkgfSBmcm9tICcuLi9Db25mZXR0aSdcbmltcG9ydCB7IEV1bGVyTWFzcyB9IGZyb20gJy4vRXVsZXJNYXNzJ1xuaW1wb3J0IHsgVmVjdG9yMkQgfSBmcm9tICcuL1ZlY3RvcidcblxudHlwZSBDb25mZXR0aVJpYmJvbkNvbmZpZyA9IHtcbiAgcGFydGljbGVDb3VudD86IG51bWJlclxuICBwYXJ0aWNsZU1hc3M/OiBudW1iZXJcbiAgcGFydGljbGVEcmFnPzogbnVtYmVyXG4gIHBhcnRpY2xlRGlzdGFuY2U/OiBudW1iZXJcbiAgdGhpY2tuZXNzPzogbnVtYmVyXG4gIGFuZ2xlPzogbnVtYmVyXG4gIHBhcmVudDogQ29uZmV0dGlcbiAgZmV0Y2hDb2xvcnM6ICgpID0+IHN0cmluZ1tdXG59XG5cbmNvbnN0IFZFTE9DSVRZX0lOSEVSSVRfSU5JVElBTF9NQVggPSAyXG5jb25zdCBUSU1FX0lOSVRJQUxfTUFYID0gMTBcbmNvbnN0IE9TQ0lMTEFUSU9OX1NQRUVEX1ZBUklBTkNFID0gMlxuY29uc3QgT1NDSUxMQVRJT05fU1BFRURfTUlOSU1VTSA9IDEuNVxuY29uc3QgT1NDSUxMQVRJT05fRElTVEFOQ0VfVkFSSUFOQ0UgPSA0MFxuY29uc3QgT1NDSUxMQVRJT05fRElTVEFOQ0VfTUlOSU1VTSA9IDQwXG5jb25zdCBZX1ZFTE9DSVRZX1ZBUklBTkNFID0gNDBcbmNvbnN0IFlfVkVMT0NJVFlfTUlOSU1VTSA9IDgwXG5cbmV4cG9ydCBjbGFzcyBDb25mZXR0aVJpYmJvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50OiBDb25mZXR0aVxuICBwcml2YXRlIHJlYWRvbmx5IGZldGNoQ29sb3JzOiAoKSA9PiBzdHJpbmdbXVxuXG4gIHByaXZhdGUgY3VyclBvc2l0aW9uITogVmVjdG9yMkRcbiAgcHJpdmF0ZSBwcmV2UG9zaXRpb24hOiBWZWN0b3IyRFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFydGljbGVDb3VudDogbnVtYmVyXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFydGljbGVNYXNzOiBudW1iZXJcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJ0aWNsZURyYWc6IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IHBhcnRpY2xlRGlzdGFuY2U6IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IHRoaWNrbmVzczogbnVtYmVyXG4gIHByaXZhdGUgcmVhZG9ubHkgYW5nbGU6IG51bWJlclxuXG4gIHByaXZhdGUgcmVhZG9ubHkgeE9mZjogbnVtYmVyXG4gIHByaXZhdGUgcmVhZG9ubHkgeU9mZjogbnVtYmVyXG5cbiAgcHJpdmF0ZSBmcm9udENvbG9yITogc3RyaW5nXG4gIHByaXZhdGUgYmFja0NvbG9yITogc3RyaW5nXG5cbiAgcHJpdmF0ZSB0aW1lITogbnVtYmVyXG4gIHByaXZhdGUgdmVsb2NpdHlJbmhlcml0ITogbnVtYmVyXG4gIHByaXZhdGUgb3NjaWxsYXRpb25TcGVlZCE6IG51bWJlclxuICBwcml2YXRlIG9zY2lsbGF0aW9uRGlzdGFuY2UhOiBudW1iZXJcbiAgcHJpdmF0ZSB5VmVsb2NpdHkhOiBudW1iZXJcblxuICBwcml2YXRlIHBhcnRpY2xlcyE6IEV1bGVyTWFzc1tdXG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIHBhcnRpY2xlQ291bnQgPSAzMCxcbiAgICBwYXJ0aWNsZU1hc3MgPSAxLFxuICAgIHBhcnRpY2xlRHJhZyA9IDAuMDUsXG4gICAgcGFydGljbGVEaXN0YW5jZSA9IDguMCxcbiAgICB0aGlja25lc3MgPSA4LjAsXG4gICAgYW5nbGUgPSBNYXRoLlBJIC8gNCxcbiAgICBwYXJlbnQsXG4gICAgZmV0Y2hDb2xvcnMsXG4gIH06IENvbmZldHRpUmliYm9uQ29uZmlnKSB7XG4gICAgdGhpcy5wYXJlbnQgPSBwYXJlbnRcbiAgICB0aGlzLmZldGNoQ29sb3JzID0gZmV0Y2hDb2xvcnNcblxuICAgIHRoaXMucGFydGljbGVDb3VudCA9IHBhcnRpY2xlQ291bnRcbiAgICB0aGlzLnBhcnRpY2xlTWFzcyA9IHBhcnRpY2xlTWFzc1xuICAgIHRoaXMucGFydGljbGVEcmFnID0gcGFydGljbGVEcmFnXG4gICAgdGhpcy5wYXJ0aWNsZURpc3RhbmNlID0gcGFydGljbGVEaXN0YW5jZVxuICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzXG4gICAgdGhpcy5hbmdsZSA9IGFuZ2xlXG5cbiAgICB0aGlzLnhPZmYgPSBNYXRoLmNvcyh0aGlzLmFuZ2xlKSAqIHRoaXMudGhpY2tuZXNzXG4gICAgdGhpcy55T2ZmID0gTWF0aC5zaW4odGhpcy5hbmdsZSkgKiB0aGlzLnRoaWNrbmVzc1xuXG4gICAgdGhpcy5yZXNldCgpXG4gIH1cblxuICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xuICAgIGNvbnN0IHggPSBNYXRoLnJhbmRvbSgpICogdGhpcy5wYXJlbnQud2lkdGhcbiAgICBjb25zdCB5ID0gLTEgKiBNYXRoLnJhbmRvbSgpICogdGhpcy5wYXJlbnQuaGVpZ2h0ICogMlxuXG4gICAgdGhpcy5jdXJyUG9zaXRpb24gPSBuZXcgVmVjdG9yMkQoeCwgeSlcbiAgICB0aGlzLnByZXZQb3NpdGlvbiA9IHRoaXMuY3VyclBvc2l0aW9uLmNsb25lKClcblxuICAgIGNvbnN0IFtmcm9udENvbG9yLCBiYWNrQ29sb3JdID0gdGhpcy5mZXRjaENvbG9ycygpXG4gICAgdGhpcy5mcm9udENvbG9yID0gZnJvbnRDb2xvclxuICAgIHRoaXMuYmFja0NvbG9yID0gYmFja0NvbG9yXG5cbiAgICB0aGlzLnRpbWUgPSBNYXRoLnJhbmRvbSgpICogVElNRV9JTklUSUFMX01BWFxuXG4gICAgdGhpcy5vc2NpbGxhdGlvblNwZWVkID1cbiAgICAgIE1hdGgucmFuZG9tKCkgKiBPU0NJTExBVElPTl9TUEVFRF9WQVJJQU5DRSArIE9TQ0lMTEFUSU9OX1NQRUVEX01JTklNVU1cbiAgICB0aGlzLm9zY2lsbGF0aW9uRGlzdGFuY2UgPVxuICAgICAgTWF0aC5yYW5kb20oKSAqIE9TQ0lMTEFUSU9OX0RJU1RBTkNFX1ZBUklBTkNFICtcbiAgICAgIE9TQ0lMTEFUSU9OX0RJU1RBTkNFX01JTklNVU1cblxuICAgIHRoaXMudmVsb2NpdHlJbmhlcml0ID0gTWF0aC5yYW5kb20oKSAqIFZFTE9DSVRZX0lOSEVSSVRfSU5JVElBTF9NQVhcbiAgICB0aGlzLnlWZWxvY2l0eSA9IE1hdGgucmFuZG9tKCkgKiBZX1ZFTE9DSVRZX1ZBUklBTkNFICsgWV9WRUxPQ0lUWV9NSU5JTVVNXG5cbiAgICB0aGlzLnBhcnRpY2xlcyA9IFsuLi5uZXcgQXJyYXkodGhpcy5wYXJ0aWNsZUNvdW50KV0ubWFwKFxuICAgICAgKF8sIGkpID0+XG4gICAgICAgIG5ldyBFdWxlck1hc3MoXG4gICAgICAgICAgeCxcbiAgICAgICAgICB5IC0gaSAqIHRoaXMucGFydGljbGVEaXN0YW5jZSxcbiAgICAgICAgICB0aGlzLnBhcnRpY2xlTWFzcyxcbiAgICAgICAgICB0aGlzLnBhcnRpY2xlRHJhZ1xuICAgICAgICApXG4gICAgKVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50aW1lICs9IGR0ICogdGhpcy5vc2NpbGxhdGlvblNwZWVkXG4gICAgdGhpcy5jdXJyUG9zaXRpb24ueCArPSBNYXRoLmNvcyh0aGlzLnRpbWUpICogdGhpcy5vc2NpbGxhdGlvbkRpc3RhbmNlICogZHRcbiAgICB0aGlzLmN1cnJQb3NpdGlvbi55ICs9IHRoaXMueVZlbG9jaXR5ICogZHRcblxuICAgIGNvbnN0IGR4ID0gdGhpcy5wcmV2UG9zaXRpb24ueCAtIHRoaXMuY3VyclBvc2l0aW9uLnhcbiAgICBjb25zdCBkeSA9IHRoaXMucHJldlBvc2l0aW9uLnkgLSB0aGlzLmN1cnJQb3NpdGlvbi55XG4gICAgY29uc3QgZERpc3RhbmNlID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KVxuXG4gICAgdGhpcy5wcmV2UG9zaXRpb24gPSB0aGlzLmN1cnJQb3NpdGlvbi5jbG9uZSgpXG5cbiAgICAvLyBVcGRhdGUgZWFjaCBwYXJ0aWNsZSdzIHBvc2l0aW9uXG4gICAgdGhpcy5wYXJ0aWNsZXNbMF0ucG9zaXRpb24gPSB0aGlzLmN1cnJQb3NpdGlvblxuICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCB0aGlzLnBhcnRpY2xlcy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvbkZvcmNlID0gVmVjdG9yMkQuc3ViKFxuICAgICAgICB0aGlzLnBhcnRpY2xlc1tpbmRleCAtIDFdLnBvc2l0aW9uLFxuICAgICAgICB0aGlzLnBhcnRpY2xlc1tpbmRleF0ucG9zaXRpb25cbiAgICAgIClcbiAgICAgICAgLm5vcm1hbGl6ZSgpXG4gICAgICAgIC5tdWx0aXBseSgoZERpc3RhbmNlIC8gZHQpICogdGhpcy52ZWxvY2l0eUluaGVyaXQpXG5cbiAgICAgIHRoaXMucGFydGljbGVzW2luZGV4XS5hZGRGb3JjZShkaXJlY3Rpb25Gb3JjZSlcbiAgICB9XG5cbiAgICAvLyBpbnRlZ3JhdGUgdGhlIGZvcmNlc1xuICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCB0aGlzLnBhcnRpY2xlcy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgIHRoaXMucGFydGljbGVzW2luZGV4XS5pbnRlZ3JhdGUoZHQpXG4gICAgfVxuXG4gICAgLy8gY2FsY3VsYXRlIGZpbmFsIHBvc2l0aW9uXG4gICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHRoaXMucGFydGljbGVzLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgY29uc3QgcnAyID0gdGhpcy5wYXJ0aWNsZXNbaW5kZXhdLnBvc2l0aW9uXG4gICAgICAgIC5zdWJ0cmFjdCh0aGlzLnBhcnRpY2xlc1tpbmRleCAtIDFdLnBvc2l0aW9uKVxuICAgICAgICAubm9ybWFsaXplKClcbiAgICAgICAgLm11bHRpcGx5KHRoaXMucGFydGljbGVEaXN0YW5jZSlcbiAgICAgICAgLmFkZCh0aGlzLnBhcnRpY2xlc1tpbmRleCAtIDFdLnBvc2l0aW9uKVxuICAgICAgdGhpcy5wYXJ0aWNsZXNbaW5kZXhdLnBvc2l0aW9uID0gcnAyXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5jdXJyUG9zaXRpb24ueSA+XG4gICAgICB0aGlzLnBhcmVudC5oZWlnaHQgKyB0aGlzLnBhcnRpY2xlRGlzdGFuY2UgKiB0aGlzLnBhcnRpY2xlQ291bnRcbiAgICApIHtcbiAgICAgIHRoaXMucmVzZXQoKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkcmF3KGNvbnRleHQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk6IHZvaWQge1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnBhcnRpY2xlcy5sZW5ndGggLSAxOyBpbmRleCArPSAxKSB7XG4gICAgICBjb25zdCBwYXJ0aWNsZSA9IHRoaXMucGFydGljbGVzW2luZGV4XVxuICAgICAgY29uc3QgbmV4dFBhcnRpY2xlID0gdGhpcy5wYXJ0aWNsZXNbaW5kZXggKyAxXVxuXG4gICAgICBjb25zdCBvZmZzZXRWZWN0b3IgPSBuZXcgVmVjdG9yMkQodGhpcy54T2ZmLCB0aGlzLnlPZmYpXG4gICAgICBjb25zdCBwMCA9IHBhcnRpY2xlLnBvc2l0aW9uLmFkZChvZmZzZXRWZWN0b3IpXG4gICAgICBjb25zdCBwMSA9IG5leHRQYXJ0aWNsZS5wb3NpdGlvbi5hZGQob2Zmc2V0VmVjdG9yKVxuXG4gICAgICBpZiAoc2lkZUZhY2luZyhwYXJ0aWNsZSwgbmV4dFBhcnRpY2xlLCBwMSkgPCAwKSB7XG4gICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gdGhpcy5mcm9udENvbG9yXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSB0aGlzLmZyb250Q29sb3JcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gdGhpcy5iYWNrQ29sb3JcbiAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IHRoaXMuYmFja0NvbG9yXG4gICAgICB9XG5cbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICB0aGlzLmRyYXdGaXJzdFBhcnRpY2xlKGNvbnRleHQsIHBhcnRpY2xlLCBuZXh0UGFydGljbGUsIHAwLCBwMSlcbiAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IHRoaXMucGFydGljbGVzLmxlbmd0aCAtIDIpIHtcbiAgICAgICAgdGhpcy5kcmF3TWlkZGxlUGFydGljbGUoY29udGV4dCwgcGFydGljbGUsIG5leHRQYXJ0aWNsZSwgcDAsIHAxKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kcmF3TGFzdFBhcnRpY2xlKGNvbnRleHQsIHBhcnRpY2xlLCBuZXh0UGFydGljbGUsIHAwLCBwMSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRyYXdGaXJzdFBhcnRpY2xlKFxuICAgIGNvbnRleHQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCxcbiAgICBwYXJ0aWNsZTogRXVsZXJNYXNzLFxuICAgIG5leHRQYXJ0aWNsZTogRXVsZXJNYXNzLFxuICAgIHAwOiBWZWN0b3IyRCxcbiAgICBwMTogVmVjdG9yMkRcbiAgKTogdm9pZCB7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKVxuICAgIGNvbnRleHQubW92ZVRvKHBhcnRpY2xlLnBvc2l0aW9uLngsIHBhcnRpY2xlLnBvc2l0aW9uLnkpXG4gICAgY29udGV4dC5saW5lVG8obmV4dFBhcnRpY2xlLnBvc2l0aW9uLngsIG5leHRQYXJ0aWNsZS5wb3NpdGlvbi55KVxuICAgIGNvbnRleHQubGluZVRvKFxuICAgICAgKG5leHRQYXJ0aWNsZS5wb3NpdGlvbi54ICsgcDEueCkgKiAwLjUsXG4gICAgICAobmV4dFBhcnRpY2xlLnBvc2l0aW9uLnkgKyBwMS55KSAqIDAuNVxuICAgIClcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpXG4gICAgY29udGV4dC5zdHJva2UoKVxuICAgIGNvbnRleHQuZmlsbCgpXG4gICAgY29udGV4dC5iZWdpblBhdGgoKVxuICAgIGNvbnRleHQubW92ZVRvKHAxLngsIHAxLnkpXG4gICAgY29udGV4dC5saW5lVG8ocDAueCwgcDAueSlcbiAgICBjb250ZXh0LmxpbmVUbyhcbiAgICAgIChuZXh0UGFydGljbGUucG9zaXRpb24ueCArIHAxLngpICogMC41LFxuICAgICAgKG5leHRQYXJ0aWNsZS5wb3NpdGlvbi55ICsgcDEueSkgKiAwLjVcbiAgICApXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKVxuICAgIGNvbnRleHQuc3Ryb2tlKClcbiAgICBjb250ZXh0LmZpbGwoKVxuICB9XG5cbiAgcHJpdmF0ZSBkcmF3TWlkZGxlUGFydGljbGUoXG4gICAgY29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELFxuICAgIHBhcnRpY2xlOiBFdWxlck1hc3MsXG4gICAgbmV4dFBhcnRpY2xlOiBFdWxlck1hc3MsXG4gICAgcDA6IFZlY3RvcjJELFxuICAgIHAxOiBWZWN0b3IyRFxuICApOiB2b2lkIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpXG4gICAgY29udGV4dC5tb3ZlVG8ocGFydGljbGUucG9zaXRpb24ueCwgcGFydGljbGUucG9zaXRpb24ueSlcbiAgICBjb250ZXh0LmxpbmVUbyhuZXh0UGFydGljbGUucG9zaXRpb24ueCwgbmV4dFBhcnRpY2xlLnBvc2l0aW9uLnkpXG4gICAgY29udGV4dC5saW5lVG8oXG4gICAgICAocGFydGljbGUucG9zaXRpb24ueCArIHAwLngpICogMC41LFxuICAgICAgKHBhcnRpY2xlLnBvc2l0aW9uLnkgKyBwMC55KSAqIDAuNVxuICAgIClcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpXG4gICAgY29udGV4dC5zdHJva2UoKVxuICAgIGNvbnRleHQuZmlsbCgpXG4gICAgY29udGV4dC5iZWdpblBhdGgoKVxuICAgIGNvbnRleHQubW92ZVRvKHAxLngsIHAxLnkpXG4gICAgY29udGV4dC5saW5lVG8ocDAueCwgcDAueSlcbiAgICBjb250ZXh0LmxpbmVUbyhcbiAgICAgIChwYXJ0aWNsZS5wb3NpdGlvbi54ICsgcDAueCkgKiAwLjUsXG4gICAgICAocGFydGljbGUucG9zaXRpb24ueSArIHAwLnkpICogMC41XG4gICAgKVxuICAgIGNvbnRleHQuY2xvc2VQYXRoKClcbiAgICBjb250ZXh0LnN0cm9rZSgpXG4gICAgY29udGV4dC5maWxsKClcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0xhc3RQYXJ0aWNsZShcbiAgICBjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgcGFydGljbGU6IEV1bGVyTWFzcyxcbiAgICBuZXh0UGFydGljbGU6IEV1bGVyTWFzcyxcbiAgICBwMDogVmVjdG9yMkQsXG4gICAgcDE6IFZlY3RvcjJEXG4gICk6IHZvaWQge1xuICAgIGNvbnRleHQuYmVnaW5QYXRoKClcbiAgICBjb250ZXh0Lm1vdmVUbyhwYXJ0aWNsZS5wb3NpdGlvbi54LCBwYXJ0aWNsZS5wb3NpdGlvbi55KVxuICAgIGNvbnRleHQubGluZVRvKG5leHRQYXJ0aWNsZS5wb3NpdGlvbi54LCBuZXh0UGFydGljbGUucG9zaXRpb24ueSlcbiAgICBjb250ZXh0LmxpbmVUbyhwMS54LCBwMS55KVxuICAgIGNvbnRleHQubGluZVRvKHAwLngsIHAwLnkpXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKVxuICAgIGNvbnRleHQuc3Ryb2tlKClcbiAgICBjb250ZXh0LmZpbGwoKVxuICB9XG59XG5cbmZ1bmN0aW9uIHNpZGVGYWNpbmcoXG4gIHsgcG9zaXRpb246IHsgeDogeDEsIHk6IHkxIH0gfTogRXVsZXJNYXNzLFxuICB7IHBvc2l0aW9uOiB7IHg6IHgyLCB5OiB5MiB9IH06IEV1bGVyTWFzcyxcbiAgeyB4OiB4MywgeTogeTMgfTogVmVjdG9yMkRcbikge1xuICByZXR1cm4gKHgxIC0geDIpICogKHkzIC0geTIpIC0gKHkxIC0geTIpICogKHgzIC0geDIpXG59XG4iXX0=
import { Vector2D } from './Vector';
declare class EulerMass {
export declare class EulerMass {
private readonly mass;
private readonly drag;
position: Vector2D;
mass: number;
drag: number;
force: Vector2D;
velocity: Vector2D;
private force;
private velocity;
constructor(x: number, y: number, mass: number, drag: number);
get currentForce(): Vector2D;
addForce(v: Vector2D): void;
currentForce(): Vector2D;
integrate(dt: number): void;
}
export { EulerMass };

@@ -20,5 +20,5 @@ "use strict";

this.position = new _Vector.Vector2D(x, y);
this.mass = mass;
this.drag = drag;
this.position = new _Vector.Vector2D(x, y);
this.force = new _Vector.Vector2D(0, 0);

@@ -29,9 +29,4 @@ this.velocity = new _Vector.Vector2D(0, 0);

_createClass(EulerMass, [{
key: "addForce",
value: function addForce(v) {
this.force = this.force.add(v);
}
}, {
key: "currentForce",
value: function currentForce() {
get: function get() {
var speed = this.velocity.length;

@@ -42,5 +37,10 @@ var dragVelocity = this.velocity.multiply(this.drag * this.mass * speed);

}, {
key: "addForce",
value: function addForce(v) {
this.force = this.force.add(v);
}
}, {
key: "integrate",
value: function integrate(dt) {
var acceleration = this.currentForce().divide(this.mass).multiply(dt);
var acceleration = this.currentForce.divide(this.mass).multiply(dt);
var deltaPosition = this.velocity.multiply(dt);

@@ -57,2 +57,2 @@ this.position = this.position.add(deltaPosition);

exports.EulerMass = EulerMass;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpL0V1bGVyTWFzcy50cyJdLCJuYW1lcyI6WyJFdWxlck1hc3MiLCJ4IiwieSIsIm1hc3MiLCJkcmFnIiwicG9zaXRpb24iLCJWZWN0b3IyRCIsImZvcmNlIiwidmVsb2NpdHkiLCJ2IiwiYWRkIiwic3BlZWQiLCJsZW5ndGgiLCJkcmFnVmVsb2NpdHkiLCJtdWx0aXBseSIsInN1YnRyYWN0IiwiZHQiLCJhY2NlbGVyYXRpb24iLCJjdXJyZW50Rm9yY2UiLCJkaXZpZGUiLCJkZWx0YVBvc2l0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7O0lBRU1BLFM7QUFPSixxQkFBWUMsQ0FBWixFQUF1QkMsQ0FBdkIsRUFBa0NDLElBQWxDLEVBQWdEQyxJQUFoRCxFQUE4RDtBQUFBOztBQUM1RCxTQUFLQyxRQUFMLEdBQWdCLElBQUlDLGdCQUFKLENBQWFMLENBQWIsRUFBZ0JDLENBQWhCLENBQWhCO0FBQ0EsU0FBS0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0csS0FBTCxHQUFhLElBQUlELGdCQUFKLENBQWEsQ0FBYixFQUFnQixDQUFoQixDQUFiO0FBQ0EsU0FBS0UsUUFBTCxHQUFnQixJQUFJRixnQkFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsQ0FBaEI7QUFDRDs7OztXQUVELGtCQUFTRyxDQUFULEVBQXNCO0FBQ3BCLFdBQUtGLEtBQUwsR0FBYSxLQUFLQSxLQUFMLENBQVdHLEdBQVgsQ0FBZUQsQ0FBZixDQUFiO0FBQ0Q7OztXQUVELHdCQUFlO0FBQ2IsVUFBTUUsS0FBSyxHQUFHLEtBQUtILFFBQUwsQ0FBY0ksTUFBNUI7QUFDQSxVQUFNQyxZQUFZLEdBQUcsS0FBS0wsUUFBTCxDQUFjTSxRQUFkLENBQXVCLEtBQUtWLElBQUwsR0FBWSxLQUFLRCxJQUFqQixHQUF3QlEsS0FBL0MsQ0FBckI7QUFDQSxhQUFPLEtBQUtKLEtBQUwsQ0FBV1EsUUFBWCxDQUFvQkYsWUFBcEIsQ0FBUDtBQUNEOzs7V0FFRCxtQkFBVUcsRUFBVixFQUFzQjtBQUNwQixVQUFNQyxZQUFZLEdBQUcsS0FBS0MsWUFBTCxHQUFvQkMsTUFBcEIsQ0FBMkIsS0FBS2hCLElBQWhDLEVBQXNDVyxRQUF0QyxDQUErQ0UsRUFBL0MsQ0FBckI7QUFDQSxVQUFNSSxhQUFhLEdBQUcsS0FBS1osUUFBTCxDQUFjTSxRQUFkLENBQXVCRSxFQUF2QixDQUF0QjtBQUNBLFdBQUtYLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjSyxHQUFkLENBQWtCVSxhQUFsQixDQUFoQjtBQUNBLFdBQUtaLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjRSxHQUFkLENBQWtCTyxZQUFsQixDQUFoQjtBQUNBLFdBQUtWLEtBQUwsR0FBYSxJQUFJRCxnQkFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsQ0FBYjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVjdG9yMkQgfSBmcm9tICcuL1ZlY3RvcidcblxuY2xhc3MgRXVsZXJNYXNzIHtcbiAgcG9zaXRpb246IFZlY3RvcjJEXG4gIG1hc3M6IG51bWJlclxuICBkcmFnOiBudW1iZXJcbiAgZm9yY2U6IFZlY3RvcjJEXG4gIHZlbG9jaXR5OiBWZWN0b3IyRFxuXG4gIGNvbnN0cnVjdG9yKHg6IG51bWJlciwgeTogbnVtYmVyLCBtYXNzOiBudW1iZXIsIGRyYWc6IG51bWJlcikge1xuICAgIHRoaXMucG9zaXRpb24gPSBuZXcgVmVjdG9yMkQoeCwgeSlcbiAgICB0aGlzLm1hc3MgPSBtYXNzXG4gICAgdGhpcy5kcmFnID0gZHJhZ1xuICAgIHRoaXMuZm9yY2UgPSBuZXcgVmVjdG9yMkQoMCwgMClcbiAgICB0aGlzLnZlbG9jaXR5ID0gbmV3IFZlY3RvcjJEKDAsIDApXG4gIH1cblxuICBhZGRGb3JjZSh2OiBWZWN0b3IyRCkge1xuICAgIHRoaXMuZm9yY2UgPSB0aGlzLmZvcmNlLmFkZCh2KVxuICB9XG5cbiAgY3VycmVudEZvcmNlKCkge1xuICAgIGNvbnN0IHNwZWVkID0gdGhpcy52ZWxvY2l0eS5sZW5ndGhcbiAgICBjb25zdCBkcmFnVmVsb2NpdHkgPSB0aGlzLnZlbG9jaXR5Lm11bHRpcGx5KHRoaXMuZHJhZyAqIHRoaXMubWFzcyAqIHNwZWVkKVxuICAgIHJldHVybiB0aGlzLmZvcmNlLnN1YnRyYWN0KGRyYWdWZWxvY2l0eSlcbiAgfVxuXG4gIGludGVncmF0ZShkdDogbnVtYmVyKSB7XG4gICAgY29uc3QgYWNjZWxlcmF0aW9uID0gdGhpcy5jdXJyZW50Rm9yY2UoKS5kaXZpZGUodGhpcy5tYXNzKS5tdWx0aXBseShkdClcbiAgICBjb25zdCBkZWx0YVBvc2l0aW9uID0gdGhpcy52ZWxvY2l0eS5tdWx0aXBseShkdClcbiAgICB0aGlzLnBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbi5hZGQoZGVsdGFQb3NpdGlvbilcbiAgICB0aGlzLnZlbG9jaXR5ID0gdGhpcy52ZWxvY2l0eS5hZGQoYWNjZWxlcmF0aW9uKVxuICAgIHRoaXMuZm9yY2UgPSBuZXcgVmVjdG9yMkQoMCwgMClcbiAgfVxufVxuXG5leHBvcnQgeyBFdWxlck1hc3MgfVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpL0V1bGVyTWFzcy50cyJdLCJuYW1lcyI6WyJFdWxlck1hc3MiLCJ4IiwieSIsIm1hc3MiLCJkcmFnIiwicG9zaXRpb24iLCJWZWN0b3IyRCIsImZvcmNlIiwidmVsb2NpdHkiLCJzcGVlZCIsImxlbmd0aCIsImRyYWdWZWxvY2l0eSIsIm11bHRpcGx5Iiwic3VidHJhY3QiLCJ2IiwiYWRkIiwiZHQiLCJhY2NlbGVyYXRpb24iLCJjdXJyZW50Rm9yY2UiLCJkaXZpZGUiLCJkZWx0YVBvc2l0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7O0lBRWFBLFM7QUFLWCxxQkFBWUMsQ0FBWixFQUF1QkMsQ0FBdkIsRUFBbURDLElBQW5ELEVBQW1GQyxJQUFuRixFQUFpRztBQUFBOztBQUFBLFNBQTlDRCxJQUE4QyxHQUE5Q0EsSUFBOEM7QUFBQSxTQUFkQyxJQUFjLEdBQWRBLElBQWM7QUFDL0YsU0FBS0MsUUFBTCxHQUFnQixJQUFJQyxnQkFBSixDQUFhTCxDQUFiLEVBQWdCQyxDQUFoQixDQUFoQjtBQUNBLFNBQUtLLEtBQUwsR0FBYSxJQUFJRCxnQkFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsQ0FBYjtBQUNBLFNBQUtFLFFBQUwsR0FBZ0IsSUFBSUYsZ0JBQUosQ0FBYSxDQUFiLEVBQWdCLENBQWhCLENBQWhCO0FBQ0Q7Ozs7U0FFRCxlQUFtQjtBQUNqQixVQUFNRyxLQUFLLEdBQUcsS0FBS0QsUUFBTCxDQUFjRSxNQUE1QjtBQUNBLFVBQU1DLFlBQVksR0FBRyxLQUFLSCxRQUFMLENBQWNJLFFBQWQsQ0FBdUIsS0FBS1IsSUFBTCxHQUFZLEtBQUtELElBQWpCLEdBQXdCTSxLQUEvQyxDQUFyQjtBQUNBLGFBQU8sS0FBS0YsS0FBTCxDQUFXTSxRQUFYLENBQW9CRixZQUFwQixDQUFQO0FBQ0Q7OztXQUVELGtCQUFnQkcsQ0FBaEIsRUFBbUM7QUFDakMsV0FBS1AsS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV1EsR0FBWCxDQUFlRCxDQUFmLENBQWI7QUFDRDs7O1dBRUQsbUJBQWlCRSxFQUFqQixFQUFtQztBQUNqQyxVQUFNQyxZQUFZLEdBQUcsS0FBS0MsWUFBTCxDQUFrQkMsTUFBbEIsQ0FBeUIsS0FBS2hCLElBQTlCLEVBQW9DUyxRQUFwQyxDQUE2Q0ksRUFBN0MsQ0FBckI7QUFDQSxVQUFNSSxhQUFhLEdBQUcsS0FBS1osUUFBTCxDQUFjSSxRQUFkLENBQXVCSSxFQUF2QixDQUF0QjtBQUNBLFdBQUtYLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjVSxHQUFkLENBQWtCSyxhQUFsQixDQUFoQjtBQUNBLFdBQUtaLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjTyxHQUFkLENBQWtCRSxZQUFsQixDQUFoQjtBQUNBLFdBQUtWLEtBQUwsR0FBYSxJQUFJRCxnQkFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsQ0FBYjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVjdG9yMkQgfSBmcm9tICcuL1ZlY3RvcidcblxuZXhwb3J0IGNsYXNzIEV1bGVyTWFzcyB7XG4gIHB1YmxpYyBwb3NpdGlvbjogVmVjdG9yMkRcbiAgcHJpdmF0ZSBmb3JjZTogVmVjdG9yMkRcbiAgcHJpdmF0ZSB2ZWxvY2l0eTogVmVjdG9yMkRcblxuICBjb25zdHJ1Y3Rvcih4OiBudW1iZXIsIHk6IG51bWJlciwgcHJpdmF0ZSByZWFkb25seSBtYXNzOiBudW1iZXIsIHByaXZhdGUgcmVhZG9ubHkgIGRyYWc6IG51bWJlcikge1xuICAgIHRoaXMucG9zaXRpb24gPSBuZXcgVmVjdG9yMkQoeCwgeSlcbiAgICB0aGlzLmZvcmNlID0gbmV3IFZlY3RvcjJEKDAsIDApXG4gICAgdGhpcy52ZWxvY2l0eSA9IG5ldyBWZWN0b3IyRCgwLCAwKVxuICB9XG5cbiAgZ2V0IGN1cnJlbnRGb3JjZSgpIHtcbiAgICBjb25zdCBzcGVlZCA9IHRoaXMudmVsb2NpdHkubGVuZ3RoXG4gICAgY29uc3QgZHJhZ1ZlbG9jaXR5ID0gdGhpcy52ZWxvY2l0eS5tdWx0aXBseSh0aGlzLmRyYWcgKiB0aGlzLm1hc3MgKiBzcGVlZClcbiAgICByZXR1cm4gdGhpcy5mb3JjZS5zdWJ0cmFjdChkcmFnVmVsb2NpdHkpXG4gIH1cblxuICBwdWJsaWMgYWRkRm9yY2UodjogVmVjdG9yMkQpOiB2b2lkIHtcbiAgICB0aGlzLmZvcmNlID0gdGhpcy5mb3JjZS5hZGQodilcbiAgfVxuXG4gIHB1YmxpYyBpbnRlZ3JhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGFjY2VsZXJhdGlvbiA9IHRoaXMuY3VycmVudEZvcmNlLmRpdmlkZSh0aGlzLm1hc3MpLm11bHRpcGx5KGR0KVxuICAgIGNvbnN0IGRlbHRhUG9zaXRpb24gPSB0aGlzLnZlbG9jaXR5Lm11bHRpcGx5KGR0KVxuICAgIHRoaXMucG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uLmFkZChkZWx0YVBvc2l0aW9uKVxuICAgIHRoaXMudmVsb2NpdHkgPSB0aGlzLnZlbG9jaXR5LmFkZChhY2NlbGVyYXRpb24pXG4gICAgdGhpcy5mb3JjZSA9IG5ldyBWZWN0b3IyRCgwLCAwKVxuICB9XG59XG4iXX0=

@@ -1,2 +0,2 @@

declare class Vector2D {
export declare class Vector2D {
x: number;

@@ -11,8 +11,5 @@ y: number;

static sub(v0: Vector2D, v1: Vector2D): Vector2D;
/**
* Instance methods
*/
clone(): Vector2D;
get length(): number;
get squareLength(): number;
clone(): Vector2D;
add(vector: Vector2D): Vector2D;

@@ -24,2 +21,1 @@ subtract(vector: Vector2D): Vector2D;

}
export { Vector2D };

@@ -27,11 +27,2 @@ "use strict";

_createClass(Vector2D, [{
key: "clone",
value:
/**
* Instance methods
*/
function clone() {
return new Vector2D(this.x, this.y);
}
}, {
key: "length",

@@ -47,8 +38,10 @@ get: function get() {

}, {
key: "clone",
value: function clone() {
return new Vector2D(this.x, this.y);
}
}, {
key: "add",
value: function add(vector) {
var clone = this.clone();
clone.x += vector.x;
clone.y += vector.y;
return clone;
return new Vector2D(this.x + vector.x, this.y + vector.y);
}

@@ -58,6 +51,3 @@ }, {

value: function subtract(vector) {
var clone = this.clone();
clone.x -= vector.x;
clone.y -= vector.y;
return clone;
return new Vector2D(this.x - vector.x, this.y - vector.y);
}

@@ -67,6 +57,3 @@ }, {

value: function multiply(factor) {
var clone = this.clone();
clone.x *= factor;
clone.y *= factor;
return clone;
return new Vector2D(this.x * factor, this.y * factor);
}

@@ -76,6 +63,3 @@ }, {

value: function divide(factor) {
var clone = this.clone();
clone.x /= factor;
clone.y /= factor;
return clone;
return new Vector2D(this.x / factor, this.y / factor);
}

@@ -85,11 +69,8 @@ }, {

value: function normalize() {
var clone = this.clone();
var squareLength = clone.squareLength;
if (squareLength === 0) {
return clone;
if (this.squareLength === 0) {
return this.clone();
}
var factor = 1.0 / Math.sqrt(squareLength);
return clone.multiply(factor);
var factor = 1.0 / Math.sqrt(this.squareLength);
return this.multiply(factor);
}

@@ -119,2 +100,2 @@ }], [{

exports.Vector2D = Vector2D;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpL1ZlY3Rvci50cyJdLCJuYW1lcyI6WyJWZWN0b3IyRCIsIngiLCJ5IiwiTWF0aCIsInNxcnQiLCJzcXVhcmVMZW5ndGgiLCJ2ZWN0b3IiLCJjbG9uZSIsImZhY3RvciIsIm11bHRpcGx5IiwidjAiLCJ2MSIsInNxdWFyZURpc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBQU1BLFE7QUFJSixvQkFBWUMsQ0FBWixFQUF1QkMsQ0FBdkIsRUFBa0M7QUFBQTs7QUFDaEMsU0FBS0QsQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTQSxDQUFUO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7Ozs7OztBQWdCRTtBQUNGO0FBQ0E7QUFFRSxxQkFBUTtBQUNOLGFBQU8sSUFBSUYsUUFBSixDQUFhLEtBQUtDLENBQWxCLEVBQXFCLEtBQUtDLENBQTFCLENBQVA7QUFDRDs7O1NBRUQsZUFBYTtBQUNYLGFBQU9DLElBQUksQ0FBQ0MsSUFBTCxDQUFVLEtBQUtDLFlBQWYsQ0FBUDtBQUNEOzs7U0FFRCxlQUFtQjtBQUNqQixhQUFPLEtBQUtKLENBQUwsR0FBUyxLQUFLQSxDQUFkLEdBQWtCLEtBQUtDLENBQUwsR0FBUyxLQUFLQSxDQUF2QztBQUNEOzs7V0FFRCxhQUFJSSxNQUFKLEVBQXNCO0FBQ3BCLFVBQU1DLEtBQUssR0FBRyxLQUFLQSxLQUFMLEVBQWQ7QUFDQUEsTUFBQUEsS0FBSyxDQUFDTixDQUFOLElBQVdLLE1BQU0sQ0FBQ0wsQ0FBbEI7QUFDQU0sTUFBQUEsS0FBSyxDQUFDTCxDQUFOLElBQVdJLE1BQU0sQ0FBQ0osQ0FBbEI7QUFFQSxhQUFPSyxLQUFQO0FBQ0Q7OztXQUVELGtCQUFTRCxNQUFULEVBQTJCO0FBQ3pCLFVBQU1DLEtBQUssR0FBRyxLQUFLQSxLQUFMLEVBQWQ7QUFDQUEsTUFBQUEsS0FBSyxDQUFDTixDQUFOLElBQVdLLE1BQU0sQ0FBQ0wsQ0FBbEI7QUFDQU0sTUFBQUEsS0FBSyxDQUFDTCxDQUFOLElBQVdJLE1BQU0sQ0FBQ0osQ0FBbEI7QUFFQSxhQUFPSyxLQUFQO0FBQ0Q7OztXQUVELGtCQUFTQyxNQUFULEVBQXlCO0FBQ3ZCLFVBQU1ELEtBQUssR0FBRyxLQUFLQSxLQUFMLEVBQWQ7QUFDQUEsTUFBQUEsS0FBSyxDQUFDTixDQUFOLElBQVdPLE1BQVg7QUFDQUQsTUFBQUEsS0FBSyxDQUFDTCxDQUFOLElBQVdNLE1BQVg7QUFFQSxhQUFPRCxLQUFQO0FBQ0Q7OztXQUVELGdCQUFPQyxNQUFQLEVBQXVCO0FBQ3JCLFVBQU1ELEtBQUssR0FBRyxLQUFLQSxLQUFMLEVBQWQ7QUFDQUEsTUFBQUEsS0FBSyxDQUFDTixDQUFOLElBQVdPLE1BQVg7QUFDQUQsTUFBQUEsS0FBSyxDQUFDTCxDQUFOLElBQVdNLE1BQVg7QUFFQSxhQUFPRCxLQUFQO0FBQ0Q7OztXQUVELHFCQUFZO0FBQ1YsVUFBTUEsS0FBSyxHQUFHLEtBQUtBLEtBQUwsRUFBZDtBQUNBLFVBQU1GLFlBQVksR0FBR0UsS0FBSyxDQUFDRixZQUEzQjs7QUFFQSxVQUFJQSxZQUFZLEtBQUssQ0FBckIsRUFBd0I7QUFDdEIsZUFBT0UsS0FBUDtBQUNEOztBQUVELFVBQU1DLE1BQU0sR0FBRyxNQUFNTCxJQUFJLENBQUNDLElBQUwsQ0FBVUMsWUFBVixDQUFyQjtBQUNBLGFBQU9FLEtBQUssQ0FBQ0UsUUFBTixDQUFlRCxNQUFmLENBQVA7QUFDRDs7O1dBeEVELGtCQUFnQkUsRUFBaEIsRUFBOEJDLEVBQTlCLEVBQTRDO0FBQzFDLGFBQU9SLElBQUksQ0FBQ0MsSUFBTCxDQUFVSixRQUFRLENBQUNZLGNBQVQsQ0FBd0JGLEVBQXhCLEVBQTRCQyxFQUE1QixDQUFWLENBQVA7QUFDRDs7O1dBRUQsd0JBQXNCRCxFQUF0QixFQUFvQ0MsRUFBcEMsRUFBa0Q7QUFDaEQsVUFBTVYsQ0FBQyxHQUFHUyxFQUFFLENBQUNULENBQUgsR0FBT1UsRUFBRSxDQUFDVixDQUFwQjtBQUNBLFVBQU1DLENBQUMsR0FBR1EsRUFBRSxDQUFDUixDQUFILEdBQU9TLEVBQUUsQ0FBQ1QsQ0FBcEI7QUFDQSxhQUFPRCxDQUFDLEdBQUdBLENBQUosR0FBUUMsQ0FBQyxHQUFHQSxDQUFuQjtBQUNEOzs7V0FFRCxhQUFXUSxFQUFYLEVBQXlCQyxFQUF6QixFQUF1QztBQUNyQyxhQUFPLElBQUlYLFFBQUosQ0FBYVUsRUFBRSxDQUFDVCxDQUFILEdBQU9VLEVBQUUsQ0FBQ1YsQ0FBdkIsRUFBMEJTLEVBQUUsQ0FBQ1IsQ0FBSCxHQUFPUyxFQUFFLENBQUNULENBQXBDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFZlY3RvcjJEIHtcbiAgeDogbnVtYmVyXG4gIHk6IG51bWJlclxuXG4gIGNvbnN0cnVjdG9yKHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgdGhpcy54ID0geFxuICAgIHRoaXMueSA9IHlcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kc1xuICAgKi9cblxuICBzdGF0aWMgZGlzdGFuY2UodjA6IFZlY3RvcjJELCB2MTogVmVjdG9yMkQpIHtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KFZlY3RvcjJELnNxdWFyZURpc3RhbmNlKHYwLCB2MSkpXG4gIH1cblxuICBzdGF0aWMgc3F1YXJlRGlzdGFuY2UodjA6IFZlY3RvcjJELCB2MTogVmVjdG9yMkQpIHtcbiAgICBjb25zdCB4ID0gdjAueCAtIHYxLnhcbiAgICBjb25zdCB5ID0gdjAueSAtIHYxLnlcbiAgICByZXR1cm4geCAqIHggKyB5ICogeVxuICB9XG5cbiAgc3RhdGljIHN1Yih2MDogVmVjdG9yMkQsIHYxOiBWZWN0b3IyRCkge1xuICAgIHJldHVybiBuZXcgVmVjdG9yMkQodjAueCAtIHYxLngsIHYwLnkgLSB2MS55KVxuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIG1ldGhvZHNcbiAgICovXG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3IyRCh0aGlzLngsIHRoaXMueSlcbiAgfVxuXG4gIGdldCBsZW5ndGgoKSB7XG4gICAgcmV0dXJuIE1hdGguc3FydCh0aGlzLnNxdWFyZUxlbmd0aClcbiAgfVxuXG4gIGdldCBzcXVhcmVMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMueCAqIHRoaXMueCArIHRoaXMueSAqIHRoaXMueVxuICB9XG5cbiAgYWRkKHZlY3RvcjogVmVjdG9yMkQpIHtcbiAgICBjb25zdCBjbG9uZSA9IHRoaXMuY2xvbmUoKVxuICAgIGNsb25lLnggKz0gdmVjdG9yLnhcbiAgICBjbG9uZS55ICs9IHZlY3Rvci55XG5cbiAgICByZXR1cm4gY2xvbmVcbiAgfVxuXG4gIHN1YnRyYWN0KHZlY3RvcjogVmVjdG9yMkQpIHtcbiAgICBjb25zdCBjbG9uZSA9IHRoaXMuY2xvbmUoKVxuICAgIGNsb25lLnggLT0gdmVjdG9yLnhcbiAgICBjbG9uZS55IC09IHZlY3Rvci55XG5cbiAgICByZXR1cm4gY2xvbmVcbiAgfVxuXG4gIG11bHRpcGx5KGZhY3RvcjogbnVtYmVyKSB7XG4gICAgY29uc3QgY2xvbmUgPSB0aGlzLmNsb25lKClcbiAgICBjbG9uZS54ICo9IGZhY3RvclxuICAgIGNsb25lLnkgKj0gZmFjdG9yXG5cbiAgICByZXR1cm4gY2xvbmVcbiAgfVxuXG4gIGRpdmlkZShmYWN0b3I6IG51bWJlcikge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpXG4gICAgY2xvbmUueCAvPSBmYWN0b3JcbiAgICBjbG9uZS55IC89IGZhY3RvclxuXG4gICAgcmV0dXJuIGNsb25lXG4gIH1cblxuICBub3JtYWxpemUoKSB7XG4gICAgY29uc3QgY2xvbmUgPSB0aGlzLmNsb25lKClcbiAgICBjb25zdCBzcXVhcmVMZW5ndGggPSBjbG9uZS5zcXVhcmVMZW5ndGhcblxuICAgIGlmIChzcXVhcmVMZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBjbG9uZVxuICAgIH1cblxuICAgIGNvbnN0IGZhY3RvciA9IDEuMCAvIE1hdGguc3FydChzcXVhcmVMZW5ndGgpXG4gICAgcmV0dXJuIGNsb25lLm11bHRpcGx5KGZhY3RvcilcbiAgfVxufVxuXG5leHBvcnQgeyBWZWN0b3IyRCB9XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL0NvbmZldHRpL1ZlY3Rvci50cyJdLCJuYW1lcyI6WyJWZWN0b3IyRCIsIngiLCJ5IiwiTWF0aCIsInNxcnQiLCJzcXVhcmVMZW5ndGgiLCJ2ZWN0b3IiLCJmYWN0b3IiLCJjbG9uZSIsIm11bHRpcGx5IiwidjAiLCJ2MSIsInNxdWFyZURpc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBQWFBLFE7QUFFWCxvQkFBbUJDLENBQW5CLEVBQXFDQyxDQUFyQyxFQUFnRDtBQUFBOztBQUFBLFNBQTdCRCxDQUE2QixHQUE3QkEsQ0FBNkI7QUFBQSxTQUFYQyxDQUFXLEdBQVhBLENBQVc7QUFDL0M7QUFFRDtBQUNGO0FBQ0E7Ozs7O1NBZ0JFLGVBQTRCO0FBQzFCLGFBQU9DLElBQUksQ0FBQ0MsSUFBTCxDQUFVLEtBQUtDLFlBQWYsQ0FBUDtBQUNEOzs7U0FFRCxlQUFrQztBQUNoQyxhQUFPLEtBQUtKLENBQUwsR0FBUyxLQUFLQSxDQUFkLEdBQWtCLEtBQUtDLENBQUwsR0FBUyxLQUFLQSxDQUF2QztBQUNEOzs7V0FFRCxpQkFBeUI7QUFDdkIsYUFBTyxJQUFJRixRQUFKLENBQWEsS0FBS0MsQ0FBbEIsRUFBcUIsS0FBS0MsQ0FBMUIsQ0FBUDtBQUNEOzs7V0FFRCxhQUFXSSxNQUFYLEVBQXVDO0FBQ3JDLGFBQU8sSUFBSU4sUUFBSixDQUFhLEtBQUtDLENBQUwsR0FBU0ssTUFBTSxDQUFDTCxDQUE3QixFQUFnQyxLQUFLQyxDQUFMLEdBQVNJLE1BQU0sQ0FBQ0osQ0FBaEQsQ0FBUDtBQUNEOzs7V0FFRCxrQkFBZ0JJLE1BQWhCLEVBQTRDO0FBQzFDLGFBQU8sSUFBSU4sUUFBSixDQUFhLEtBQUtDLENBQUwsR0FBU0ssTUFBTSxDQUFDTCxDQUE3QixFQUFnQyxLQUFLQyxDQUFMLEdBQVFJLE1BQU0sQ0FBQ0osQ0FBL0MsQ0FBUDtBQUNEOzs7V0FFRCxrQkFBZ0JLLE1BQWhCLEVBQTBDO0FBQ3hDLGFBQU8sSUFBSVAsUUFBSixDQUFhLEtBQUtDLENBQUwsR0FBU00sTUFBdEIsRUFBOEIsS0FBS0wsQ0FBTCxHQUFTSyxNQUF2QyxDQUFQO0FBQ0Q7OztXQUVELGdCQUFjQSxNQUFkLEVBQXdDO0FBQ3RDLGFBQU8sSUFBSVAsUUFBSixDQUFhLEtBQUtDLENBQUwsR0FBU00sTUFBdEIsRUFBOEIsS0FBS0wsQ0FBTCxHQUFTSyxNQUF2QyxDQUFQO0FBQ0Q7OztXQUVELHFCQUE2QjtBQUMzQixVQUFJLEtBQUtGLFlBQUwsS0FBc0IsQ0FBMUIsRUFBNkI7QUFDM0IsZUFBTyxLQUFLRyxLQUFMLEVBQVA7QUFDRDs7QUFFRCxVQUFNRCxNQUFNLEdBQUcsTUFBTUosSUFBSSxDQUFDQyxJQUFMLENBQVUsS0FBS0MsWUFBZixDQUFyQjtBQUNBLGFBQU8sS0FBS0ksUUFBTCxDQUFjRixNQUFkLENBQVA7QUFDRDs7O1dBakRELGtCQUFnQkcsRUFBaEIsRUFBOEJDLEVBQTlCLEVBQTRDO0FBQzFDLGFBQU9SLElBQUksQ0FBQ0MsSUFBTCxDQUFVSixRQUFRLENBQUNZLGNBQVQsQ0FBd0JGLEVBQXhCLEVBQTRCQyxFQUE1QixDQUFWLENBQVA7QUFDRDs7O1dBRUQsd0JBQXNCRCxFQUF0QixFQUFvQ0MsRUFBcEMsRUFBa0Q7QUFDaEQsVUFBTVYsQ0FBQyxHQUFHUyxFQUFFLENBQUNULENBQUgsR0FBT1UsRUFBRSxDQUFDVixDQUFwQjtBQUNBLFVBQU1DLENBQUMsR0FBR1EsRUFBRSxDQUFDUixDQUFILEdBQU9TLEVBQUUsQ0FBQ1QsQ0FBcEI7QUFDQSxhQUFPRCxDQUFDLEdBQUdBLENBQUosR0FBUUMsQ0FBQyxHQUFHQSxDQUFuQjtBQUNEOzs7V0FFRCxhQUFXUSxFQUFYLEVBQXlCQyxFQUF6QixFQUF1QztBQUNyQyxhQUFPLElBQUlYLFFBQUosQ0FBYVUsRUFBRSxDQUFDVCxDQUFILEdBQU9VLEVBQUUsQ0FBQ1YsQ0FBdkIsRUFBMEJTLEVBQUUsQ0FBQ1IsQ0FBSCxHQUFPUyxFQUFFLENBQUNULENBQXBDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBWZWN0b3IyRCB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHg6IG51bWJlciwgcHVibGljIHk6IG51bWJlcikge1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2RzXG4gICAqL1xuXG4gIHN0YXRpYyBkaXN0YW5jZSh2MDogVmVjdG9yMkQsIHYxOiBWZWN0b3IyRCkge1xuICAgIHJldHVybiBNYXRoLnNxcnQoVmVjdG9yMkQuc3F1YXJlRGlzdGFuY2UodjAsIHYxKSlcbiAgfVxuXG4gIHN0YXRpYyBzcXVhcmVEaXN0YW5jZSh2MDogVmVjdG9yMkQsIHYxOiBWZWN0b3IyRCkge1xuICAgIGNvbnN0IHggPSB2MC54IC0gdjEueFxuICAgIGNvbnN0IHkgPSB2MC55IC0gdjEueVxuICAgIHJldHVybiB4ICogeCArIHkgKiB5XG4gIH1cblxuICBzdGF0aWMgc3ViKHYwOiBWZWN0b3IyRCwgdjE6IFZlY3RvcjJEKSB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3IyRCh2MC54IC0gdjEueCwgdjAueSAtIHYxLnkpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLnNxcnQodGhpcy5zcXVhcmVMZW5ndGgpXG4gIH1cblxuICBwdWJsaWMgZ2V0IHNxdWFyZUxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnggKiB0aGlzLnggKyB0aGlzLnkgKiB0aGlzLnlcbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSgpOiBWZWN0b3IyRCB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3IyRCh0aGlzLngsIHRoaXMueSlcbiAgfVxuXG4gIHB1YmxpYyBhZGQodmVjdG9yOiBWZWN0b3IyRCk6IFZlY3RvcjJEIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvcjJEKHRoaXMueCArIHZlY3Rvci54LCB0aGlzLnkgKyB2ZWN0b3IueSlcbiAgfVxuXG4gIHB1YmxpYyBzdWJ0cmFjdCh2ZWN0b3I6IFZlY3RvcjJEKTogVmVjdG9yMkQge1xuICAgIHJldHVybiBuZXcgVmVjdG9yMkQodGhpcy54IC0gdmVjdG9yLngsIHRoaXMueS0gdmVjdG9yLnkpXG4gIH1cblxuICBwdWJsaWMgbXVsdGlwbHkoZmFjdG9yOiBudW1iZXIpOiBWZWN0b3IyRCB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3IyRCh0aGlzLnggKiBmYWN0b3IsIHRoaXMueSAqIGZhY3RvcilcbiAgfVxuXG4gIHB1YmxpYyBkaXZpZGUoZmFjdG9yOiBudW1iZXIpOiBWZWN0b3IyRCB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3IyRCh0aGlzLnggLyBmYWN0b3IsIHRoaXMueSAvIGZhY3RvcilcbiAgfVxuXG4gIHB1YmxpYyBub3JtYWxpemUoKTogVmVjdG9yMkQge1xuICAgIGlmICh0aGlzLnNxdWFyZUxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKVxuICAgIH1cblxuICAgIGNvbnN0IGZhY3RvciA9IDEuMCAvIE1hdGguc3FydCh0aGlzLnNxdWFyZUxlbmd0aClcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBseShmYWN0b3IpXG4gIH1cbn1cbiJdfQ==

@@ -1,9 +0,9 @@

declare class ZoomCircle {
canvas: HTMLCanvasElement;
context: CanvasRenderingContext2D | null;
ratio: number;
width: number;
height: number;
time: number;
animationFrameRequestId: number | null;
export declare class ZoomCircle {
private readonly canvas;
private readonly context;
private readonly ratio;
private readonly width;
private readonly height;
private time;
private animationFrameRequestId;
constructor(canvas: HTMLCanvasElement);

@@ -14,2 +14,1 @@ start(): void;

}
export { ZoomCircle };

@@ -59,2 +59,2 @@ "use strict";

exports.ZoomCircle = ZoomCircle;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL1pvb21DaXJjbGUudHMiXSwibmFtZXMiOlsiWm9vbUNpcmNsZSIsImNhbnZhcyIsImNvbnRleHQiLCJnZXRDb250ZXh0IiwicmF0aW8iLCJ3aW5kb3ciLCJkZXZpY2VQaXhlbFJhdGlvIiwid2lkdGgiLCJvZmZzZXRXaWR0aCIsImhlaWdodCIsIm9mZnNldEhlaWdodCIsInRpbWUiLCJhbmltYXRpb25GcmFtZVJlcXVlc3RJZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInJlbmRlciIsImJpbmQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImNsZWFyUmVjdCIsImJlZ2luUGF0aCIsImFyYyIsIk1hdGgiLCJhYnMiLCJjb3MiLCJQSSIsImZpbGwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFBTUEsVTtBQVlKLHNCQUFZQyxNQUFaLEVBQXVDO0FBQUE7O0FBQ3JDLFNBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtDLE9BQUwsR0FBZUQsTUFBTSxDQUFDRSxVQUFQLENBQWtCLElBQWxCLENBQWY7QUFFQSxTQUFLQyxLQUFMLEdBQWFDLE1BQU0sQ0FBQ0MsZ0JBQXBCO0FBQ0EsU0FBS0MsS0FBTCxHQUFhTixNQUFNLENBQUNPLFdBQXBCO0FBQ0EsU0FBS0MsTUFBTCxHQUFjUixNQUFNLENBQUNTLFlBQXJCO0FBRUEsU0FBS0MsSUFBTCxHQUFZLENBQVo7QUFFQSxTQUFLQyx1QkFBTCxHQUErQixJQUEvQjtBQUNEOzs7O1dBRUQsaUJBQVE7QUFDTixXQUFLQSx1QkFBTCxHQUErQkMscUJBQXFCLENBQUMsS0FBS0MsTUFBTCxDQUFZQyxJQUFaLENBQWlCLElBQWpCLENBQUQsQ0FBcEQ7QUFDRDs7O1dBRUQsZ0JBQU87QUFDTCxVQUFJLEtBQUtILHVCQUFULEVBQWtDO0FBQ2hDSSxRQUFBQSxvQkFBb0IsQ0FBQyxLQUFLSix1QkFBTixDQUFwQjtBQUNEO0FBQ0Y7OztXQUVELGtCQUFTO0FBQ1AsVUFBSSxDQUFDLEtBQUtWLE9BQVYsRUFBbUI7QUFDakI7QUFDRDs7QUFFRCxXQUFLQSxPQUFMLENBQWFlLFNBQWIsQ0FBdUIsQ0FBdkIsRUFBMEIsQ0FBMUIsRUFBNkIsS0FBS2hCLE1BQUwsQ0FBWU0sS0FBekMsRUFBZ0QsS0FBS04sTUFBTCxDQUFZUSxNQUE1RDtBQUNBLFdBQUtQLE9BQUwsQ0FBYWdCLFNBQWI7QUFDQSxXQUFLaEIsT0FBTCxDQUFhaUIsR0FBYixDQUNFLEtBQUtsQixNQUFMLENBQVlNLEtBQVosR0FBb0IsQ0FEdEIsRUFFRSxLQUFLTixNQUFMLENBQVlRLE1BQVosR0FBcUIsQ0FGdkIsRUFHRyxLQUFLUixNQUFMLENBQVlNLEtBQVosR0FBb0IsQ0FBckIsR0FBMEJhLElBQUksQ0FBQ0MsR0FBTCxDQUFTRCxJQUFJLENBQUNFLEdBQUwsQ0FBUyxLQUFLWCxJQUFkLENBQVQsQ0FINUIsRUFJRSxDQUpGLEVBS0UsSUFBSVMsSUFBSSxDQUFDRyxFQUxYO0FBT0EsV0FBS3JCLE9BQUwsQ0FBYXNCLElBQWI7QUFDQSxXQUFLYixJQUFMLElBQWEsSUFBYjtBQUVBLFdBQUtDLHVCQUFMLEdBQStCQyxxQkFBcUIsQ0FBQyxLQUFLQyxNQUFMLENBQVlDLElBQVosQ0FBaUIsSUFBakIsQ0FBRCxDQUFwRDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgWm9vbUNpcmNsZSB7XG4gIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnRcbiAgY29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbFxuXG4gIHJhdGlvOiBudW1iZXJcbiAgd2lkdGg6IG51bWJlclxuICBoZWlnaHQ6IG51bWJlclxuXG4gIHRpbWU6IG51bWJlclxuXG4gIGFuaW1hdGlvbkZyYW1lUmVxdWVzdElkOiBudW1iZXIgfCBudWxsXG5cbiAgY29uc3RydWN0b3IoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCkge1xuICAgIHRoaXMuY2FudmFzID0gY2FudmFzXG4gICAgdGhpcy5jb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcblxuICAgIHRoaXMucmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb1xuICAgIHRoaXMud2lkdGggPSBjYW52YXMub2Zmc2V0V2lkdGhcbiAgICB0aGlzLmhlaWdodCA9IGNhbnZhcy5vZmZzZXRIZWlnaHRcblxuICAgIHRoaXMudGltZSA9IDBcblxuICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQgPSBudWxsXG4gIH1cblxuICBzdGFydCgpIHtcbiAgICB0aGlzLmFuaW1hdGlvbkZyYW1lUmVxdWVzdElkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmVuZGVyLmJpbmQodGhpcykpXG4gIH1cblxuICBzdG9wKCkge1xuICAgIGlmICh0aGlzLmFuaW1hdGlvbkZyYW1lUmVxdWVzdElkKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbkZyYW1lUmVxdWVzdElkKVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAoIXRoaXMuY29udGV4dCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5jb250ZXh0LmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KVxuICAgIHRoaXMuY29udGV4dC5iZWdpblBhdGgoKVxuICAgIHRoaXMuY29udGV4dC5hcmMoXG4gICAgICB0aGlzLmNhbnZhcy53aWR0aCAvIDIsXG4gICAgICB0aGlzLmNhbnZhcy5oZWlnaHQgLyAyLFxuICAgICAgKHRoaXMuY2FudmFzLndpZHRoIC8gMikgKiBNYXRoLmFicyhNYXRoLmNvcyh0aGlzLnRpbWUpKSxcbiAgICAgIDAsXG4gICAgICAyICogTWF0aC5QSVxuICAgIClcbiAgICB0aGlzLmNvbnRleHQuZmlsbCgpXG4gICAgdGhpcy50aW1lICs9IDAuMDVcblxuICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5yZW5kZXIuYmluZCh0aGlzKSlcbiAgfVxufVxuXG5leHBvcnQgeyBab29tQ2lyY2xlIH1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3RpdmVCYWNrZ3JvdW5kL1pvb21DaXJjbGUudHMiXSwibmFtZXMiOlsiWm9vbUNpcmNsZSIsImNhbnZhcyIsImNvbnRleHQiLCJnZXRDb250ZXh0IiwicmF0aW8iLCJ3aW5kb3ciLCJkZXZpY2VQaXhlbFJhdGlvIiwid2lkdGgiLCJvZmZzZXRXaWR0aCIsImhlaWdodCIsIm9mZnNldEhlaWdodCIsInRpbWUiLCJhbmltYXRpb25GcmFtZVJlcXVlc3RJZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInJlbmRlciIsImJpbmQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImNsZWFyUmVjdCIsImJlZ2luUGF0aCIsImFyYyIsIk1hdGgiLCJhYnMiLCJjb3MiLCJQSSIsImZpbGwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFBYUEsVTtBQVlYLHNCQUFZQyxNQUFaLEVBQXVDO0FBQUE7O0FBQ3JDLFNBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtDLE9BQUwsR0FBZUQsTUFBTSxDQUFDRSxVQUFQLENBQWtCLElBQWxCLENBQWY7QUFFQSxTQUFLQyxLQUFMLEdBQWFDLE1BQU0sQ0FBQ0MsZ0JBQXBCO0FBQ0EsU0FBS0MsS0FBTCxHQUFhTixNQUFNLENBQUNPLFdBQXBCO0FBQ0EsU0FBS0MsTUFBTCxHQUFjUixNQUFNLENBQUNTLFlBQXJCO0FBRUEsU0FBS0MsSUFBTCxHQUFZLENBQVo7QUFFQSxTQUFLQyx1QkFBTCxHQUErQixJQUEvQjtBQUNEOzs7O1dBRUQsaUJBQXFCO0FBQ25CLFdBQUtBLHVCQUFMLEdBQStCQyxxQkFBcUIsQ0FBQyxLQUFLQyxNQUFMLENBQVlDLElBQVosQ0FBaUIsSUFBakIsQ0FBRCxDQUFwRDtBQUNEOzs7V0FFRCxnQkFBb0I7QUFDbEIsVUFBSSxLQUFLSCx1QkFBVCxFQUFrQztBQUNoQ0ksUUFBQUEsb0JBQW9CLENBQUMsS0FBS0osdUJBQU4sQ0FBcEI7QUFDRDtBQUNGOzs7V0FFRCxrQkFBc0I7QUFDcEIsVUFBSSxDQUFDLEtBQUtWLE9BQVYsRUFBbUI7QUFDakI7QUFDRDs7QUFFRCxXQUFLQSxPQUFMLENBQWFlLFNBQWIsQ0FBdUIsQ0FBdkIsRUFBMEIsQ0FBMUIsRUFBNkIsS0FBS2hCLE1BQUwsQ0FBWU0sS0FBekMsRUFBZ0QsS0FBS04sTUFBTCxDQUFZUSxNQUE1RDtBQUNBLFdBQUtQLE9BQUwsQ0FBYWdCLFNBQWI7QUFDQSxXQUFLaEIsT0FBTCxDQUFhaUIsR0FBYixDQUNFLEtBQUtsQixNQUFMLENBQVlNLEtBQVosR0FBb0IsQ0FEdEIsRUFFRSxLQUFLTixNQUFMLENBQVlRLE1BQVosR0FBcUIsQ0FGdkIsRUFHRyxLQUFLUixNQUFMLENBQVlNLEtBQVosR0FBb0IsQ0FBckIsR0FBMEJhLElBQUksQ0FBQ0MsR0FBTCxDQUFTRCxJQUFJLENBQUNFLEdBQUwsQ0FBUyxLQUFLWCxJQUFkLENBQVQsQ0FINUIsRUFJRSxDQUpGLEVBS0UsSUFBSVMsSUFBSSxDQUFDRyxFQUxYO0FBT0EsV0FBS3JCLE9BQUwsQ0FBYXNCLElBQWI7QUFDQSxXQUFLYixJQUFMLElBQWEsSUFBYjtBQUVBLFdBQUtDLHVCQUFMLEdBQStCQyxxQkFBcUIsQ0FBQyxLQUFLQyxNQUFMLENBQVlDLElBQVosQ0FBaUIsSUFBakIsQ0FBRCxDQUFwRDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFpvb21DaXJjbGUge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnRcbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBudWxsXG5cbiAgcHJpdmF0ZSByZWFkb25seSByYXRpbzogbnVtYmVyXG4gIHByaXZhdGUgcmVhZG9ubHkgd2lkdGg6IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IGhlaWdodDogbnVtYmVyXG5cbiAgcHJpdmF0ZSB0aW1lOiBudW1iZXJcblxuICBwcml2YXRlIGFuaW1hdGlvbkZyYW1lUmVxdWVzdElkOiBudW1iZXIgfCBudWxsXG5cbiAgY29uc3RydWN0b3IoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCkge1xuICAgIHRoaXMuY2FudmFzID0gY2FudmFzXG4gICAgdGhpcy5jb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcblxuICAgIHRoaXMucmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb1xuICAgIHRoaXMud2lkdGggPSBjYW52YXMub2Zmc2V0V2lkdGhcbiAgICB0aGlzLmhlaWdodCA9IGNhbnZhcy5vZmZzZXRIZWlnaHRcblxuICAgIHRoaXMudGltZSA9IDBcblxuICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQgPSBudWxsXG4gIH1cblxuICBwdWJsaWMgc3RhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmltYXRpb25GcmFtZVJlcXVlc3RJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJlbmRlci5iaW5kKHRoaXMpKVxuICB9XG5cbiAgcHVibGljIHN0b3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbmRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udGV4dCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5jb250ZXh0LmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KVxuICAgIHRoaXMuY29udGV4dC5iZWdpblBhdGgoKVxuICAgIHRoaXMuY29udGV4dC5hcmMoXG4gICAgICB0aGlzLmNhbnZhcy53aWR0aCAvIDIsXG4gICAgICB0aGlzLmNhbnZhcy5oZWlnaHQgLyAyLFxuICAgICAgKHRoaXMuY2FudmFzLndpZHRoIC8gMikgKiBNYXRoLmFicyhNYXRoLmNvcyh0aGlzLnRpbWUpKSxcbiAgICAgIDAsXG4gICAgICAyICogTWF0aC5QSVxuICAgIClcbiAgICB0aGlzLmNvbnRleHQuZmlsbCgpXG4gICAgdGhpcy50aW1lICs9IDAuMDVcblxuICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0SWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5yZW5kZXIuYmluZCh0aGlzKSlcbiAgfVxufVxuIl19
export { ActiveBackground } from './ActiveBackground';
export { Confetti } from './ActiveBackground/Confetti';
export { ZoomCircle } from './ActiveBackground/ZoomCircle';
export declare type ActiveBackgroundPatternOptions = Record<string, any>;
export interface IActiveBackgroundPatternConstructor {
new (canvas: HTMLCanvasElement, options: ActiveBackgroundPatternOptions): IActiveBackgroundPattern;
}
export interface IActiveBackgroundPattern {
render(): void;
start(): void;
stop(): void;
}
export interface IActiveBackground {
pattern: IActiveBackgroundPatternConstructor;
patternOptions?: {
[key: string]: any;
};
className?: string;
}
export type { PatternConstructor, PatternOptions, ActiveBackgroundProps } from './ActiveBackground';

@@ -30,2 +30,2 @@ "use strict";

var _ZoomCircle = require("./ActiveBackground/ZoomCircle");
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFjdGl2ZUJhY2tncm91bmQgfSBmcm9tICcuL0FjdGl2ZUJhY2tncm91bmQnXG5leHBvcnQgeyBDb25mZXR0aSB9IGZyb20gJy4vQWN0aXZlQmFja2dyb3VuZC9Db25mZXR0aSdcbmV4cG9ydCB7IFpvb21DaXJjbGUgfSBmcm9tICcuL0FjdGl2ZUJhY2tncm91bmQvWm9vbUNpcmNsZSdcblxuZXhwb3J0IHR5cGUgQWN0aXZlQmFja2dyb3VuZFBhdHRlcm5PcHRpb25zID0gUmVjb3JkPHN0cmluZywgYW55PlxuXG5leHBvcnQgaW50ZXJmYWNlIElBY3RpdmVCYWNrZ3JvdW5kUGF0dGVybkNvbnN0cnVjdG9yIHtcbiAgbmV3IChcbiAgICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50LFxuICAgIG9wdGlvbnM6IEFjdGl2ZUJhY2tncm91bmRQYXR0ZXJuT3B0aW9uc1xuICApOiBJQWN0aXZlQmFja2dyb3VuZFBhdHRlcm5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWN0aXZlQmFja2dyb3VuZFBhdHRlcm4ge1xuICByZW5kZXIoKTogdm9pZFxuICBzdGFydCgpOiB2b2lkXG4gIHN0b3AoKTogdm9pZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBY3RpdmVCYWNrZ3JvdW5kIHtcbiAgcGF0dGVybjogSUFjdGl2ZUJhY2tncm91bmRQYXR0ZXJuQ29uc3RydWN0b3JcbiAgcGF0dGVybk9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFjdGl2ZUJhY2tncm91bmQgfSBmcm9tICcuL0FjdGl2ZUJhY2tncm91bmQnXG5leHBvcnQgeyBDb25mZXR0aSB9IGZyb20gJy4vQWN0aXZlQmFja2dyb3VuZC9Db25mZXR0aSdcbmV4cG9ydCB7IFpvb21DaXJjbGUgfSBmcm9tICcuL0FjdGl2ZUJhY2tncm91bmQvWm9vbUNpcmNsZSdcblxuZXhwb3J0IHR5cGUgeyBQYXR0ZXJuQ29uc3RydWN0b3IsIFBhdHRlcm5PcHRpb25zLCBBY3RpdmVCYWNrZ3JvdW5kUHJvcHMgfSBmcm9tICcuL0FjdGl2ZUJhY2tncm91bmQnIl19
{
"name": "@exercism/active-background",
"version": "0.2.0",
"version": "0.3.0",
"description": "Give your elements an animated canvas background!",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
"prepare": "npm run build",
"type-check": "tsc --noEmit",
"type-check:watch": "npm run type-check -- --watch",
"build": "npm run build:js && npm run build:types",
"clean": "rimraf dist",
"build": "npm run clean && npm run build:js && npm run build:types",
"build:types": "tsc --emitDeclarationOnly",
"build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps inline"
"build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps inline",
"prepare": "npm run build",
"prepublishOnly": "npm run type-check"
},

@@ -19,3 +22,6 @@ "keywords": [

],
"author": "Tim Austin",
"author": "Tim Austin <tim@neenjaw.com> (https://neenjaw.com)",
"contributors": [
"Derk-Jan Karrenbeld <derk-jan+git@karrenbeld.info> (https://derk-jan.com)"
],
"license": "MIT",

@@ -30,4 +36,8 @@ "devDependencies": {

"@types/react-dom": "^17.0.3",
"rimraf": "^3.0.2",
"typescript": "^4.2.4"
},
"files": [
"dist"
],
"peerDependencies": {

@@ -34,0 +44,0 @@ "react": ">=16.13.1",

@@ -17,3 +17,3 @@ # react-active-background

import { ActiveBackground, Confetti } from '@exercism/react-active-background'
import { ActiveBackground, Confetti } from '@exercism/active-background'

@@ -24,18 +24,16 @@ function App() {

<header className="App-header">
/*
* Active Background must be the first child in a react container component
*/
<ActiveBackground pattern={Confetti} />
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.tsx</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
<ActiveBackground pattern={Confetti}>
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.tsx</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</ActiveBackground>
</header>

@@ -67,1 +65,5 @@ </div>

```
## Authors
This library was originally created by @neenjaw. It is maintained by @neenjaw, @sleeplessbyte and the Exercism team. See the [GitHub contributors graph](https://github.com/exercism/react-active-background/graphs/contributors) for a full list of contributors.
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc