123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- 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
|