custom-roulette
Version:
The best React roulette
879 lines (740 loc) • 87.5 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("react"));
else if(typeof define === 'function' && define.amd)
define(["react"], factory);
else if(typeof exports === 'object')
exports["ReactRoulettePro"] = factory(require("react"));
else
root["ReactRoulettePro"] = factory(root["React"]);
})(this, function(__WEBPACK_EXTERNAL_MODULE_react__) {
return /******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./src/components/PrizesWrapper/PrizesWrapper.css":
/*!********************************************************!*\
!*** ./src/components/PrizesWrapper/PrizesWrapper.css ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "./src/components/Wrapper/Wrapper.css":
/*!********************************************!*\
!*** ./src/components/Wrapper/Wrapper.css ***!
\********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "./src/designs/Regular/Regular.css":
/*!*****************************************!*\
!*** ./src/designs/Regular/Regular.css ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "./src/components/PrizesWrapper/PrizesWrapper.tsx":
/*!********************************************************!*\
!*** ./src/components/PrizesWrapper/PrizesWrapper.tsx ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _context_RouletteContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/RouletteContext */ "./src/context/RouletteContext.tsx");
/* harmony import */ var _utills__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utills */ "./src/utills/index.ts");
/* harmony import */ var _PrizesWrapper_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PrizesWrapper.css */ "./src/components/PrizesWrapper/PrizesWrapper.css");
var PrizesWrapper = function (_a) {
var children = _a.children, className = _a.className, _b = _a.tagName, Tag = _b === void 0 ? 'div' : _b, style = _a.style;
var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_RouletteContext__WEBPACK_IMPORTED_MODULE_1__["default"]), type = _c.type, options = _c.options, start = _c.start, prizeListClassName = _c.prizeListClassName;
var isWithAnimation = options.withoutAnimation !== true && start !== true;
var wrapperClassName = (0,_utills__WEBPACK_IMPORTED_MODULE_2__.classNames)('roulette-pro-prize-list', {
'with-animation': isWithAnimation,
}, [type], prizeListClassName, className);
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Tag, { className: wrapperClassName, style: style }, children));
};
PrizesWrapper.defaultProps = {
className: null,
tagName: 'div',
style: null,
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PrizesWrapper);
/***/ }),
/***/ "./src/components/PrizesWrapper/index.ts":
/*!***********************************************!*\
!*** ./src/components/PrizesWrapper/index.ts ***!
\***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _PrizesWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PrizesWrapper */ "./src/components/PrizesWrapper/PrizesWrapper.tsx");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_PrizesWrapper__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/components/Roulette/Roulette.tsx":
/*!**********************************************!*\
!*** ./src/components/Roulette/Roulette.tsx ***!
\**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _designs_Regular__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../designs/Regular */ "./src/designs/Regular/index.ts");
/* harmony import */ var _context_RouletteContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/RouletteContext */ "./src/context/RouletteContext.tsx");
/* harmony import */ var _Wrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Wrapper */ "./src/components/Wrapper/index.ts");
/* harmony import */ var _PrizesWrapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../PrizesWrapper */ "./src/components/PrizesWrapper/index.ts");
/* harmony import */ var _utills__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utills */ "./src/utills/index.ts");
/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../hooks */ "./src/hooks/index.ts");
// Default design
var Roulette = function (_a) {
var _b, _c, _d;
var topChildren = _a.topChildren, bottomChildren = _a.bottomChildren, designPlugin = _a.designPlugin, prizeItemRenderFunction = _a.prizeItemRenderFunction, prizes = _a.prizes, _e = _a.defaultDesignOptions, defaultDesignOptions = _e === void 0 ? {} : _e, start = _a.start, prizeIndex = _a.prizeIndex, _f = _a.spinningTime, spinningTime = _f === void 0 ? 10 : _f, _g = _a.transitionFunction, transitionFunction = _g === void 0 ? 'cubic-bezier(0.0125, 0.1, 0.1, 1)' : _g, _h = _a.onPrizeDefined, onPrizeDefined = _h === void 0 ? function () { } : _h, classes = _a.classes, soundWhileSpinning = _a.soundWhileSpinning, _j = _a.options, options = _j === void 0 ? {} : _j, _k = _a.type, type = _k === void 0 ? 'horizontal' : _k;
var _l = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), wrapperSize = _l[0], setWrapperSize = _l[1];
var wrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
var _m = (0,_hooks__WEBPACK_IMPORTED_MODULE_6__.useAudio)(soundWhileSpinning !== null && soundWhileSpinning !== void 0 ? soundWhileSpinning : ''), startSound = _m.start, stopSound = _m.stop;
var stopInCenter = options.stopInCenter;
var defaultDesign = (0,_designs_Regular__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultDesignOptions)({ type: type });
var design = typeof designPlugin !== 'function' ? defaultDesign : designPlugin({ type: type });
var prizeItemWidth = design.prizeItemWidth, prizeItemHeight = design.prizeItemHeight;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!wrapperRef) {
return;
}
var setCurrentWrapperWidth = function () {
var _a = wrapperRef.current.getBoundingClientRect(), width = _a.width, height = _a.height;
switch (type) {
case 'horizontal':
return setWrapperSize(width);
case 'vertical':
return setWrapperSize(height);
default:
console.error("Unknown roulette type ".concat(type));
}
};
setCurrentWrapperWidth();
window.addEventListener('resize', setCurrentWrapperWidth);
return function () {
window.removeEventListener('resize', setCurrentWrapperWidth);
};
}, [wrapperRef, type]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!start) {
return;
}
if (soundWhileSpinning) {
startSound();
}
var timeout = setTimeout(function () {
onPrizeDefined();
if (soundWhileSpinning) {
stopSound();
}
}, spinningTime * 1000);
return function () {
clearTimeout(timeout);
if (soundWhileSpinning) {
stopSound();
}
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [start, spinningTime]);
var prizeIndexOffset = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {
var prizeItemSize = type === 'horizontal' ? prizeItemWidth : prizeItemHeight;
var prizeOffset = (0,_utills__WEBPACK_IMPORTED_MODULE_5__.getPrizeOffset)(prizeItemSize, prizeIndex, wrapperSize / 2);
var additionalOffset = stopInCenter === false ? (0,_utills__WEBPACK_IMPORTED_MODULE_5__.getPrizeAdditionalOffset)(prizeItemSize) : 0;
return prizeOffset + additionalOffset;
}, [
type,
prizeIndex,
prizeItemWidth,
prizeItemHeight,
wrapperSize,
stopInCenter,
]);
var getInlineStyles = function () {
var _a, _b;
var getAnimationProperty = function () {
switch (type) {
case 'horizontal':
return 'left';
case 'vertical':
return 'top';
default:
throw new Error('Type is unknown');
}
};
var animationProperty = getAnimationProperty();
if (start === false) {
return _a = {},
_a[animationProperty] = '0',
_a.willChange = animationProperty,
_a;
}
return _b = {
transition: "all ".concat(spinningTime, "s ").concat(transitionFunction, " 0s")
},
_b[animationProperty] = "-".concat(prizeIndexOffset, "px"),
_b;
};
var inlineStyles = getInlineStyles();
var getRenderFunction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {
if (typeof prizeItemRenderFunction === 'function') {
return prizeItemRenderFunction;
}
if (typeof design.prizeItemRenderFunction === 'function') {
return design.prizeItemRenderFunction;
}
return defaultDesign.prizeItemRenderFunction;
}, [
defaultDesign.prizeItemRenderFunction,
design.prizeItemRenderFunction,
prizeItemRenderFunction,
]);
var prizesElement = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {
var _a;
var renderFunction = getRenderFunction();
var className = (0,_utills__WEBPACK_IMPORTED_MODULE_5__.classNames)(classes === null || classes === void 0 ? void 0 : classes.prizeItem, (_a = design.classes) === null || _a === void 0 ? void 0 : _a.prizeItem);
return prizes.map(function (item) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", { key: item.id, className: className }, renderFunction(item))); });
}, [
prizes,
getRenderFunction,
classes === null || classes === void 0 ? void 0 : classes.prizeItem,
(_b = design.classes) === null || _b === void 0 ? void 0 : _b.prizeItem,
]);
var wrapperClassName = (0,_utills__WEBPACK_IMPORTED_MODULE_5__.classNames)(classes === null || classes === void 0 ? void 0 : classes.wrapper, (_c = design.classes) === null || _c === void 0 ? void 0 : _c.wrapper);
var prizeListClassName = (0,_utills__WEBPACK_IMPORTED_MODULE_5__.classNames)(classes === null || classes === void 0 ? void 0 : classes.prizeListWrapper, (_d = design.classes) === null || _d === void 0 ? void 0 : _d.prizeListWrapper);
var contextValue = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () { return ({
options: options,
start: start,
wrapperClassName: wrapperClassName,
prizeListClassName: prizeListClassName,
type: type,
}); }, [options, start, type, prizeListClassName, wrapperClassName]);
var topChildrenElement = (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,
design.topChildren,
topChildren));
var bottomChildrenElement = (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,
design.bottomChildren,
bottomChildren));
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_context_RouletteContext__WEBPACK_IMPORTED_MODULE_2__["default"].Provider, { value: contextValue },
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Wrapper__WEBPACK_IMPORTED_MODULE_3__["default"], { ref: wrapperRef },
topChildrenElement,
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PrizesWrapper__WEBPACK_IMPORTED_MODULE_4__["default"], { tagName: "ul", style: inlineStyles }, prizesElement),
bottomChildrenElement)));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Roulette);
/***/ }),
/***/ "./src/components/Roulette/index.ts":
/*!******************************************!*\
!*** ./src/components/Roulette/index.ts ***!
\******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _Roulette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Roulette */ "./src/components/Roulette/Roulette.tsx");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_Roulette__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/components/Wrapper/Wrapper.tsx":
/*!********************************************!*\
!*** ./src/components/Wrapper/Wrapper.tsx ***!
\********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _utills__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utills */ "./src/utills/index.ts");
/* harmony import */ var _context_RouletteContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/RouletteContext */ "./src/context/RouletteContext.tsx");
/* harmony import */ var _Wrapper_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Wrapper.css */ "./src/components/Wrapper/Wrapper.css");
var Wrapper = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (_a, ref) {
var children = _a.children, className = _a.className;
var rouletteContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_RouletteContext__WEBPACK_IMPORTED_MODULE_2__["default"]);
var wrapperClassName = (0,_utills__WEBPACK_IMPORTED_MODULE_1__.classNames)('roulette-pro-wrapper', rouletteContext.wrapperClassName, className);
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: wrapperClassName, ref: ref }, children));
});
Wrapper.defaultProps = {
className: undefined,
};
Wrapper.displayName = 'Wrapper';
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Wrapper);
/***/ }),
/***/ "./src/components/Wrapper/index.ts":
/*!*****************************************!*\
!*** ./src/components/Wrapper/index.ts ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _Wrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Wrapper */ "./src/components/Wrapper/Wrapper.tsx");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_Wrapper__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/context/RouletteContext.tsx":
/*!*****************************************!*\
!*** ./src/context/RouletteContext.tsx ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
var RouletteContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RouletteContext);
/***/ }),
/***/ "./src/designs/Regular/Regular.tsx":
/*!*****************************************!*\
!*** ./src/designs/Regular/Regular.tsx ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Regular_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Regular.css */ "./src/designs/Regular/Regular.css");
var TopChildren = function (_a) {
var type = _a.type, hideCenterDelimiter = _a.hideCenterDelimiter;
return hideCenterDelimiter !== true ? (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-testid": "design-top", className: "roulette-pro-regular-design-top ".concat(type) })) : null;
};
var regularDesign = function (_a) {
var prizesWithText = _a.prizesWithText, hideCenterDelimiter = _a.hideCenterDelimiter;
return function (_a) {
var type = _a.type;
var prizeItemWidth = 205;
var prizeItemHeightWithoutText = type === 'vertical' ? 172 : 174;
var prizeItemHeight = prizesWithText === true ? 234 : prizeItemHeightWithoutText;
var prizeItemClassName = "roulette-pro-regular-design-prize-item-".concat(type);
return {
topChildren: (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(TopChildren, { type: type, hideCenterDelimiter: hideCenterDelimiter })),
bottomChildren: null,
prizeItemWidth: prizeItemWidth,
prizeItemHeight: prizeItemHeight,
prizeItemRenderFunction: function (_a) {
var image = _a.image, text = _a.text;
var withText = prizesWithText === true && text !== undefined;
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "roulette-pro-regular-prize-item", style: { width: prizeItemWidth, height: prizeItemHeight } },
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: withText === true
? 'roulette-pro-regular-prize-item-wrapper'
: 'roulette-pro-regular-prize-item-wrapper center' },
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "roulette-pro-regular-image-wrapper", style: { paddingTop: "33px" } },
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h1", null, image)),
withText === true && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { className: "roulette-pro-regular-prize-item-text" }, text)))));
},
classes: {
prizeItem: prizeItemClassName,
},
};
};
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (regularDesign);
/***/ }),
/***/ "./src/designs/Regular/index.ts":
/*!**************************************!*\
!*** ./src/designs/Regular/index.ts ***!
\**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _Regular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Regular */ "./src/designs/Regular/Regular.tsx");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_Regular__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/hooks/index.ts":
/*!****************************!*\
!*** ./src/hooks/index.ts ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "useAudio": () => (/* reexport safe */ _useAudio__WEBPACK_IMPORTED_MODULE_0__["default"])
/* harmony export */ });
/* harmony import */ var _useAudio__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useAudio */ "./src/hooks/useAudio/index.ts");
/***/ }),
/***/ "./src/hooks/useAudio/index.ts":
/*!*************************************!*\
!*** ./src/hooks/useAudio/index.ts ***!
\*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _useAudio__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useAudio */ "./src/hooks/useAudio/useAudio.ts");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_useAudio__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/hooks/useAudio/useAudio.ts":
/*!****************************************!*\
!*** ./src/hooks/useAudio/useAudio.ts ***!
\****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
var useAudio = function (url) {
var _a = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null), audio = _a[0], setAudio = _a[1];
var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isPlaying = _b[0], setIsPlaying = _b[1];
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (typeof window === 'undefined' || typeof Audio === 'undefined' || !url) {
return;
}
setAudio(new Audio(url));
}, [url]);
var start = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {
if (!audio) {
return;
}
audio.play();
setIsPlaying(true);
}, [audio]);
var stop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {
if (!audio) {
return;
}
audio.pause();
audio.currentTime = 0;
setIsPlaying(false);
}, [audio]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
return function () {
setIsPlaying(false);
};
}, []);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!audio) {
return;
}
var listener = function () {
stop();
};
audio.addEventListener('ended', listener);
return function () {
audio.removeEventListener('ended', listener);
};
}, [audio, stop]);
return { isPlaying: isPlaying, start: start, stop: stop };
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useAudio);
/***/ }),
/***/ "./src/utills/classNames/classNames.ts":
/*!*********************************************!*\
!*** ./src/utills/classNames/classNames.ts ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
var isArray = function (item) { return Array.isArray(item); };
var isObject = function (item) {
return item !== null && isArray(item) === false && typeof item === 'object';
};
var isFunction = function (item) { return typeof item === 'function'; };
var isBoolean = function (item) { return typeof item === 'boolean'; };
var hasOwnPrototypeOfToString = function (object) {
return object.toString !== Object.prototype.toString;
};
var classNames = function () {
var classes = [];
for (var _i = 0; _i < arguments.length; _i++) {
classes[_i] = arguments[_i];
}
var resultClassName = '';
var handlePrimitive = function (item, asKey) {
var isItemBoolean = isBoolean(item);
if (!item || isItemBoolean === true) {
return;
}
resultClassName += "".concat(asKey !== undefined ? asKey : item, " ");
};
var handleObject = function (object) {
var entries = Object.entries(object);
/* maybe throw it out */
var hasObjectOwnPrototypeOfToString = hasOwnPrototypeOfToString(object);
/**/
entries.forEach(function (_a) {
var key = _a[0], value = _a[1];
if (!value) {
return;
}
var isValueFunction = isFunction(value);
var isToString = key === 'toString';
if (isValueFunction === true && isToString === false) {
var functionResult = value();
handlePrimitive(functionResult, key);
return;
}
if (isToString === false) {
resultClassName += "".concat(key, " ");
}
});
/* maybe throw it out */
if (hasObjectOwnPrototypeOfToString === true) {
var toStringValue = object.toString();
handlePrimitive(toStringValue);
}
/**/
};
var handleArray = function (array) {
array.forEach(function (item) {
if (!item || typeof item === 'boolean') {
return;
}
var isItemArray = isArray(item);
var isItemObject = isObject(item);
if (isItemArray === true) {
return handleArray(item);
}
if (isItemObject === true) {
return handleObject(item);
}
resultClassName += "".concat(item, " ");
});
};
for (var i = 0; i < classes.length; i += 1) {
var classNameItem = classes[i];
var isItemObject = isObject(classNameItem);
var isItemArray = isArray(classNameItem);
if (isItemObject === true) {
handleObject(classNameItem);
continue;
}
if (isItemArray === true) {
handleArray(classNameItem);
continue;
}
handlePrimitive(classNameItem);
}
return resultClassName.trim();
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (classNames);
/***/ }),
/***/ "./src/utills/classNames/index.ts":
/*!****************************************!*\
!*** ./src/utills/classNames/index.ts ***!
\****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _classNames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classNames */ "./src/utills/classNames/classNames.ts");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_classNames__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/utills/getPrizeAdditionalOffset/getPrizeAdditionalOffset.ts":
/*!*************************************************************************!*\
!*** ./src/utills/getPrizeAdditionalOffset/getPrizeAdditionalOffset.ts ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _getRandomIntInRange__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../getRandomIntInRange */ "./src/utills/getRandomIntInRange/index.ts");
var getPrizeAdditionalOffset = function (itemSize) {
var center = itemSize / 2;
var randomOffset = (0,_getRandomIntInRange__WEBPACK_IMPORTED_MODULE_0__["default"])(-center + 1, center - 1);
return randomOffset;
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getPrizeAdditionalOffset);
/***/ }),
/***/ "./src/utills/getPrizeAdditionalOffset/index.ts":
/*!******************************************************!*\
!*** ./src/utills/getPrizeAdditionalOffset/index.ts ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _getPrizeAdditionalOffset__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrizeAdditionalOffset */ "./src/utills/getPrizeAdditionalOffset/getPrizeAdditionalOffset.ts");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_getPrizeAdditionalOffset__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/utills/getPrizeOffset/getPrizeOffset.ts":
/*!*****************************************************!*\
!*** ./src/utills/getPrizeOffset/getPrizeOffset.ts ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/**
* This function gets an offset from container start to container center
*/
var getPrizeOffset = function (itemSize, prizeIndex, containerCenter) { return itemSize * prizeIndex - (containerCenter - itemSize / 2); };
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getPrizeOffset);
/***/ }),
/***/ "./src/utills/getPrizeOffset/index.ts":
/*!********************************************!*\
!*** ./src/utills/getPrizeOffset/index.ts ***!
\********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _getPrizeOffset__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrizeOffset */ "./src/utills/getPrizeOffset/getPrizeOffset.ts");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_getPrizeOffset__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/utills/getRandomIntInRange/getRandomIntInRange.ts":
/*!***************************************************************!*\
!*** ./src/utills/getRandomIntInRange/getRandomIntInRange.ts ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/**
* This function gets a random integer between two values, inclusive
*/
var getRandomIntInRange = function (min, max) {
var minNumber = Math.ceil(min);
var maxNumber = Math.floor(max);
return Math.floor(Math.random() * (maxNumber - minNumber + 1) + minNumber);
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getRandomIntInRange);
/***/ }),
/***/ "./src/utills/getRandomIntInRange/index.ts":
/*!*************************************************!*\
!*** ./src/utills/getRandomIntInRange/index.ts ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _getRandomIntInRange__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getRandomIntInRange */ "./src/utills/getRandomIntInRange/getRandomIntInRange.ts");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_getRandomIntInRange__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/utills/index.ts":
/*!*****************************!*\
!*** ./src/utills/index.ts ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "getPrizeOffset": () => (/* reexport safe */ _getPrizeOffset__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */ "getRandomIntInRange": () => (/* reexport safe */ _getRandomIntInRange__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */ "getPrizeAdditionalOffset": () => (/* reexport safe */ _getPrizeAdditionalOffset__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */ "classNames": () => (/* reexport safe */ _classNames__WEBPACK_IMPORTED_MODULE_3__["default"])
/* harmony export */ });
/* harmony import */ var _getPrizeOffset__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrizeOffset */ "./src/utills/getPrizeOffset/index.ts");
/* harmony import */ var _getRandomIntInRange__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getRandomIntInRange */ "./src/utills/getRandomIntInRange/index.ts");
/* harmony import */ var _getPrizeAdditionalOffset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getPrizeAdditionalOffset */ "./src/utills/getPrizeAdditionalOffset/index.ts");
/* harmony import */ var _classNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./classNames */ "./src/utills/classNames/index.ts");
/***/ }),
/***/ "react":
/*!**************************************************************************************!*\
!*** external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"} ***!
\**************************************************************************************/
/***/ ((module) => {
module.exports = __WEBPACK_EXTERNAL_MODULE_react__;
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
(() => {
/*!**********************!*\
!*** ./src/index.ts ***!
\**********************/
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _components_Roulette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/Roulette */ "./src/components/Roulette/index.ts");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_components_Roulette__WEBPACK_IMPORTED_MODULE_0__["default"]);
})();
/******/ return __webpack_exports__;
/******/ })()
;
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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