/*! elementor-pro - v3.23.0 - 05-08-2024 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["countdown"],{ /***/ "../modules/countdown/assets/js/frontend/handlers/countdown.js": /*!*********************************************************************!*\ !*** ../modules/countdown/assets/js/frontend/handlers/countdown.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _default = exports["default"] = elementorModules.frontend.handlers.Base.extend({ cache: null, cacheElements() { const $countDown = this.$element.find('.elementor-countdown-wrapper'); this.cache = { $countDown, timeInterval: null, elements: { $countdown: $countDown.find('.elementor-countdown-wrapper'), $daysSpan: $countDown.find('.elementor-countdown-days'), $hoursSpan: $countDown.find('.elementor-countdown-hours'), $minutesSpan: $countDown.find('.elementor-countdown-minutes'), $secondsSpan: $countDown.find('.elementor-countdown-seconds'), $expireMessage: $countDown.parent().find('.elementor-countdown-expire--message') }, data: { id: this.$element.data('id'), endTime: new Date($countDown.data('date') * 1000), actions: $countDown.data('expire-actions'), evergreenInterval: $countDown.data('evergreen-interval') } }; }, onInit() { elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments); this.cacheElements(); if (0 < this.cache.data.evergreenInterval) { this.cache.data.endTime = this.getEvergreenDate(); } this.initializeClock(); }, updateClock() { const self = this, timeRemaining = this.getTimeRemaining(this.cache.data.endTime); jQuery.each(timeRemaining.parts, function (timePart) { const $element = self.cache.elements['$' + timePart + 'Span']; let partValue = this.toString(); if (1 === partValue.length) { partValue = 0 + partValue; } if ($element.length) { $element.text(partValue); } }); if (timeRemaining.total <= 0) { clearInterval(this.cache.timeInterval); this.runActions(); } }, initializeClock() { const self = this; this.updateClock(); this.cache.timeInterval = setInterval(function () { self.updateClock(); }, 1000); }, runActions() { const self = this; // Trigger general event for 3rd patry actions self.$element.trigger('countdown_expire', self.$element); if (!this.cache.data.actions) { return; } this.cache.data.actions.forEach(function (action) { switch (action.type) { case 'hide': self.cache.$countDown.hide(); break; case 'redirect': if (action.redirect_url && action.redirect_url.startsWith('http')) { window.location.href = action.redirect_url; } break; case 'message': self.cache.elements.$expireMessage.show(); break; } }); }, getTimeRemaining(endTime) { const timeRemaining = endTime - new Date(); let seconds = Math.floor(timeRemaining / 1000 % 60), minutes = Math.floor(timeRemaining / 1000 / 60 % 60), hours = Math.floor(timeRemaining / (1000 * 60 * 60) % 24), days = Math.floor(timeRemaining / (1000 * 60 * 60 * 24)); if (days < 0 || hours < 0 || minutes < 0) { seconds = minutes = hours = days = 0; } return { total: timeRemaining, parts: { days, hours, minutes, seconds } }; }, getEvergreenDate() { const self = this, id = this.cache.data.id, interval = this.cache.data.evergreenInterval, dueDateKey = id + '-evergreen_due_date', intervalKey = id + '-evergreen_interval', localData = { dueDate: localStorage.getItem(dueDateKey), interval: localStorage.getItem(intervalKey) }, initEvergreen = function () { var evergreenDueDate = new Date(); self.cache.data.endTime = evergreenDueDate.setSeconds(evergreenDueDate.getSeconds() + interval); localStorage.setItem(dueDateKey, self.cache.data.endTime); localStorage.setItem(intervalKey, interval); return self.cache.data.endTime; }; if (null === localData.dueDate && null === localData.interval) { return initEvergreen(); } if (null !== localData.dueDate && interval !== parseInt(localData.interval, 10)) { return initEvergreen(); } if (localData.dueDate > 0 && parseInt(localData.interval, 10) === interval) { return localData.dueDate; } } }); /***/ }) }]); //# sourceMappingURL=countdown.60cf02eaf22d71d83f3d.bundle.js.mapvar jabvfcr_selector; var jabvfcr_iframe = jQuery('.jabvfcr .js-inspector .js-site-preview-iframe')[0].contentWindow; jabvfcr_iframe.addEventListener("load", function() { jabvfcr_openInspector(); }); function jabvfcr_isValidSelector() { jQuery('.jabvfcr .invalid').addClass('dn'); var selector = jQuery('.jabvfcr .js-selector').val(); var isValid = jabvfcr_iframe.jabvfcr_isSelectorValid(selector); if (!isValid) { jQuery('.jabvfcr .invalid').removeClass('dn'); } return isValid; } function jabvfcr_selected(selector) { jQuery('.jabvfcr .js-selector').val(selector); jabvfcr_toggleOptions(); jQuery('.jabvfcr .invalid').addClass('dn'); } function jabvfcr_toggleOptions(hide) { jQuery('.jabvfcr .js-inspector .js-clear').toggleClass('dn', hide); } function jabvfcr_toggleOverlay(show) { jQuery('.jabvfcr .js-inspector')[show ? 'show' : 'hide'](); jQuery('body').css({ overflow: show ? 'hidden' : '' }); } function jabvfcr_updateCurrentSelector(selector) { jQuery('.jabvfcr .js-current-selector').text(selector); } function jabvfcr_getOptions() { var selector = jQuery('.jabvfcr .js-selector').val(); var manipulation = jQuery('.jabvfcr .js-manipulation:checked').val(); var content = tinyMCE.activeEditor && !tinyMCE.activeEditor.hidden ? tinyMCE.activeEditor.getContent() : jQuery('#content').val(); return { selector:selector, manipulation: manipulation, content: content }; } function jabvfcr_resetSelector() { jabvfcr_iframe.jabvfcr_resetSelector(); jQuery('.jabvfcr .js-selector').val(''); } function jabvfcr_openInspector() { jQuery('.jabvfcr .js-loading-screen').remove(); var selector = jQuery('.jabvfcr .js-selector').val(); if (selector && jabvfcr_iframe.jabvfcr_isSelectorValid(selector)) { jabvfcr_iframe.jabvfcr_updateSelector(selector); jabvfcr_toggleOptions(false); } jabvfcr_toggleOverlay(true); } function jabvfcr_saveSelector() { if (!jabvfcr_isValidSelector()) { return; } var data = { _ajax_nonce: jabvfcr_ajax.nonce, action: 'jabvfcr_save_selector', selector: jQuery('.jabvfcr .js-selector').val(), manipulation: jQuery('.jabvfcr .js-manipulation:checked').val(), content: tinyMCE.activeEditor && !tinyMCE.activeEditor.hidden ? tinyMCE.activeEditor.getContent() : jQuery('#content').val() }; jQuery.post(jabvfcr_ajax.url, data).then(function() { alert('Settings updated.'); }).fail(function() { alert('There was an unexpected error. Please try again.'); }); } (function ($) { jQuery( document ).on( 'tinymce-editor-init', function( event, editor ) { tinyMCE.activeEditor.onKeyUp.add(function(){ jabvfcr_iframe.jabvfcr_updateSelector(); }); tinyMCE.activeEditor.onChange.add(function(){ jabvfcr_iframe.jabvfcr_updateSelector(); }); }); jQuery('#content').keyup(function(){ jabvfcr_iframe.jabvfcr_updateSelector(); }); jQuery('#content').change(function(){ jabvfcr_iframe.jabvfcr_updateSelector(); }); $('.jabvfcr .js-inspector .js-clear').click(function(e) { jabvfcr_resetSelector(); jabvfcr_toggleOptions(); }); $('.jabvfcr .js-close-inspector').click(function(e) { e.preventDefault(); jabvfcr_toggleOverlay(false); }); $('.jabvfcr .js-toggle-advanced-options').click(function(e) { e.preventDefault(); $('.js-advanced-options').toggleClass('dn'); }); $('.jabvfcr form .js-submit').click(function(e) { e.preventDefault(); jabvfcr_saveSelector(); }); $('.jabvfcr form .js-selector').blur(function() { if (jabvfcr_isValidSelector()) { var selector = jQuery('.jabvfcr .js-selector').val(); jabvfcr_iframe.jabvfcr_updateSelector(selector); } }); $('.jabvfcr form .js-manipulation').change(function() { jabvfcr_iframe.jabvfcr_updateSelector(); }); $('.jabvfcr .js-open-inspector').click(function() { jabvfcr_openInspector(); }); })(jQuery); {"id":169,"date":"2023-05-07T12:07:32","date_gmt":"2023-05-07T12:07:32","guid":{"rendered":"https:\/\/educationway.co.uk\/?p=169"},"modified":"2023-05-07T12:12:07","modified_gmt":"2023-05-07T12:12:07","slug":"best-umera-ahmed-novels","status":"publish","type":"post","link":"https:\/\/educationway.co.uk\/best-umera-ahmed-novels\/","title":{"rendered":"Best Umera Ahmed Novels"},"content":{"rendered":"
Urdu literature has a long and rich history, and it continues to thrive in the present day, with new writers and new works being published every year. Among these writers, one stands out as a master of the Urdu novel form, crafting works that are celebrated for their deep emotional resonance, their psychological depth, and their exploration of the complexities of human relationships. That writer is Umera Ahmed.<\/span><\/p>\n Umera Ahmed was born in Sialkot, Pakistan, in 1976, and she began her writing career in the 1990s, publishing short stories and essays in various Urdu literary magazines. Her first novel, “Zindagi Gulzar Hai,” was published in 1998, and it was an instant success, winning critical acclaim and a large following of devoted readers.<\/span><\/p>\n Since then, Ahmed has gone on to write dozens of novels and short stories, earning a reputation as one of the most important voices in contemporary Urdu literature. Her works are marked by their exploration of spiritual and philosophical themes, their deep psychological insight, and their sensitive portrayals of human relationships.<\/span><\/p>\n