exports.id = 4075; exports.ids = [4075]; exports.modules = { /***/ 82184: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); var _path; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } var SvgDownload = function SvgDownload(props) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({ width: 15, height: 15, viewBox: "0 0 15 15", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { d: "M7.5 1.05a.45.45 0 0 1 .45.45v6.914l2.232-2.232a.45.45 0 1 1 .636.636l-3 3a.45.45 0 0 1-.636 0l-3-3a.45.45 0 1 1 .636-.636L7.05 8.414V1.5a.45.45 0 0 1 .45-.45ZM2.5 10a.5.5 0 0 1 .5.5V12c0 .554.446 1 .996 1h7.005A.999.999 0 0 0 12 12v-1.5a.5.5 0 0 1 1 0V12c0 1.104-.894 2-1.999 2H3.996A1.997 1.997 0 0 1 2 12v-1.5a.5.5 0 0 1 .5-.5Z", fill: "currentColor", fillRule: "evenodd", clipRule: "evenodd" }))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgDownload); /***/ }), /***/ 23848: /***/ ((module) => { // Exports module.exports = { "pageContainer": "index_pageContainer__Pxtn3", "loadingContainer": "index_loadingContainer__WEZFc", "flow": "index_flow__rCTR5", "flowItem": "index_flowItem__GnXWz", "additionalVerticalGap": "index_additionalVerticalGap__nzYz6", "fullWidth": "index_fullWidth__1n4ux" }; /***/ }), /***/ 64881: /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "L": () => (/* binding */ download) /* harmony export */ }); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59456); /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_xstate_react__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866); /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _dls_PopoverMenu_PopoverMenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(99163); /* harmony import */ var _dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7190); /* harmony import */ var _icons_download_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(82184); /* harmony import */ var _redux_slices_AudioPlayer_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(53800); /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(55943); /* harmony import */ var src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(64564); var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_PopoverMenu_PopoverMenu__WEBPACK_IMPORTED_MODULE_5__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_9__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_10__]); ([_dls_PopoverMenu_PopoverMenu__WEBPACK_IMPORTED_MODULE_5__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_9__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_10__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); const download = (url, onDone)=>{ const splits = url.substring(url.lastIndexOf("/") + 1).split("?"); const [filename] = splits; const xhr = new XMLHttpRequest(); xhr.responseType = "blob"; xhr.onload = ()=>{ const a = document.createElement("a"); a.href = window.URL.createObjectURL(xhr.response); a.download = filename; a.style.display = "none"; document.body.appendChild(a); a.click(); onDone(); }; xhr.open("GET", url); xhr.send(); }; const DownloadAudioButton = ()=>{ const { t } = useTranslation("common"); const audioService = useContext(AudioPlayerMachineContext); const audioDataUrl = useXstateSelector(audioService, (state)=>state.context.audioData.audioUrl); const loading = useSelector(selectIsDownloadingAudio); const dispatch = useDispatch(); const onClick = ()=>{ logButtonClick("audio_player_download"); dispatch(setIsDownloadingAudio(true)); download(audioDataUrl, ()=>{ dispatch(setIsDownloadingAudio(false)); }); }; return /*#__PURE__*/ _jsx(PopoverMenu.Item, { onClick: onClick, icon: loading ? /*#__PURE__*/ _jsx(Spinner, { size: SpinnerSize.Large }) : /*#__PURE__*/ _jsx(DownloadIcon, {}), children: t("audio.player.download") }); }; /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (DownloadAudioButton))); __webpack_async_result__(); } catch(e) { __webpack_async_result__(e); } }); /***/ }), /***/ 53800: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Mj": () => (/* binding */ selectEnableAutoScrolling), /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__), /* harmony export */ "ow": () => (/* binding */ selectShowTooltipWhenPlayingAudio) /* harmony export */ }); /* unused harmony exports selectAudioPlayerState, selectIsDownloadingAudio, audioPlayerStateSlice, setEnableAutoScrolling, setIsDownloadingAudio, setShowTooltipWhenPlayingAudio */ /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184); /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var redux_persist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14161); /* harmony import */ var redux_persist__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(redux_persist__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _redux_actions_reset_settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78733); /* harmony import */ var _redux_actions_sync_user_preferences__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91767); /* harmony import */ var _redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17241); /* harmony import */ var _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61243); /* harmony import */ var types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(13591); const selectAudioPlayerState = (state)=>state.audioPlayerState; const selectEnableAutoScrolling = (state)=>state.audioPlayerState.enableAutoScrolling; const selectIsDownloadingAudio = (state)=>state.audioPlayerState.isDownloadingAudio; const selectShowTooltipWhenPlayingAudio = (state)=>state.audioPlayerState.showTooltipWhenPlayingAudio; const audioPlayerStateSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({ name: _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_5__/* ["default"].AUDIO_PLAYER_STATE */ .Z.AUDIO_PLAYER_STATE, initialState: (0,_redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_4__/* .getAudioPlayerStateInitialState */ .aq)(), reducers: { setEnableAutoScrolling: (state, action)=>({ ...state, enableAutoScrolling: action.payload }), setIsDownloadingAudio: (state, action)=>({ ...state, isDownloadingAudio: action.payload }), setShowTooltipWhenPlayingAudio: (state, action)=>({ ...state, showTooltipWhenPlayingAudio: action.payload }) }, // reset reciter to the default based on the locale // WHEN `reset` action is dispatched extraReducers: (builder)=>{ builder.addCase(_redux_actions_reset_settings__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, (state, action)=>({ ...state, ...(0,_redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_4__/* .getAudioPlayerStateInitialState */ .aq)(action.payload.locale) })); builder.addCase(_redux_actions_sync_user_preferences__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, (state, action)=>{ const { payload: { userPreferences } , } = action; const remotePreferences = userPreferences[types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_6__/* ["default"].AUDIO */ .Z.AUDIO]; if (remotePreferences) { return { ...state, ...remotePreferences }; } return state; }); // listen to redux-persist's REHYDRATE event builder.addCase(redux_persist__WEBPACK_IMPORTED_MODULE_1__.REHYDRATE, (state, action)=>{ // @ts-ignore const { key , payload } = action; /** * There is an issue with redux-persists (https://github.com/rt2zz/redux-persist/issues/290) * that converts Infinite to null which affects when the user chooses to * repeat a verse(s) infinitely and leads to repeatRange being persisted * as null which is an invalid value so we need to convert it back to Infinity. */ if (key === _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_5__/* ["default"].AUDIO_PLAYER_STATE */ .Z.AUDIO_PLAYER_STATE && payload?.repeatSettings?.repeatRange === null) { return { ...state, ...payload }; } return { ...state, ...payload }; }); } }); const { setEnableAutoScrolling , setIsDownloadingAudio , setShowTooltipWhenPlayingAudio } = audioPlayerStateSlice.actions; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (audioPlayerStateSlice.reducer); /***/ }), /***/ 17339: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Kr": () => (/* binding */ makeCDNUrl) /* harmony export */ }); /* unused harmony exports CDN_HOST, CDN_ASSETS_VERSION */ const CDN_HOST = "https://static.qurancdn.com"; const CDN_ASSETS_VERSION = "1"; /** * Generate versioned URL of static asset * * @param {string} path the path of static asset * @returns {string} */ const makeCDNUrl = (path)=>{ return `${CDN_HOST}/${path}?v=${CDN_ASSETS_VERSION}`; }; /***/ }) }; ; //# sourceMappingURL=4075.js.map