UNPKG

custom-roulette

Version:
879 lines (740 loc) 87.5 kB
(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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