/*! elementor-pro - v4.0.0 - 28-04-2026 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["search"],{ /***/ "../modules/search/assets/js/frontend/handlers/search-keyboard-handler.js" /*!********************************************************************************!*\ !*** ../modules/search/assets/js/frontend/handlers/search-keyboard-handler.js ***! \********************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _focusableElementSelectors = __webpack_require__(/*! elementor-pro/frontend/utils/focusable-element-selectors */ "../assets/dev/js/frontend/utils/focusable-element-selectors.js"); class SearchKeyboardHandler extends elementorModules.frontend.handlers.Base { focusableResultElements; currentResultFocusedIndex = -1; __construct(...args) { super.__construct(...args); elementorFrontend.hooks.addAction('search:results-updated', this.loadResultElementsEvents.bind(this)); } getDefaultSettings() { return { selectors: { searchWrapper: '.e-search', searchField: '.e-search-input', resultsContainer: '.e-search-results-container', loopItem: '.e-loop-item', clearIcon: '.e-search-input-wrapper > svg, .e-search-input-wrapper > i' } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { resultsContainer: this.$element[0].querySelector(selectors.resultsContainer), searchField: this.$element[0].querySelector(selectors.searchField), clearIcon: this.$element[0].querySelector(selectors.clearIcon) }; } setFocusableElements(elementContainer) { const focusableSelectors = (0, _focusableElementSelectors.focusableElementSelectors)(); const focusableElements = elementContainer.querySelectorAll(focusableSelectors); this.focusableResultElements = Array.from(focusableElements).filter(element => !element.disabled && !element.inert && element.tabIndex !== -1); } isSearchInputFocused() { return this.elements.searchField === elementorFrontend.elements.window.document.activeElement; } bindEvents() { this.boundHandleKeyboardNavigation = this.handleKeyboardNavigation.bind(this); this.boundHandleEscapeKey = this.handleEscapeKey.bind(this); this.elements.searchField.addEventListener('keydown', this.boundHandleKeyboardNavigation); elementorFrontend.elements.window.document.addEventListener('keydown', this.boundHandleEscapeKey); this.elements.searchField.addEventListener('focus', this.openResults.bind(this)); } loadResultElementsEvents() { this.setFocusableElements(this.$element[0].querySelector(this.getSettings('selectors.resultsContainer'))); this.focusableResultElements?.forEach(element => { element.addEventListener('keydown', this.handleKeyboardNavigation.bind(this)); }); } unbindEvents() { if (this.boundHandleKeyboardNavigation) { this.elements.searchField.removeEventListener('keydown', this.boundHandleKeyboardNavigation); } elementorFrontend.elements.window.document.removeEventListener('keydown', this.boundHandleEscapeKey); this.elements.searchField.removeEventListener('focus', this.openResults.bind(this)); } handleKeyboardNavigation(event) { switch (event.key) { case 'ArrowDown': this.focusNextElement(); break; case 'ArrowUp': this.focusPreviousElement(); break; case 'Enter': this.handleEnterKey(); break; } } areResultsClosed() { const existingResults = this.elements.resultsContainer.querySelectorAll(this.getSettings('selectors.loopItem')); return 0 === existingResults.length || this.elements.resultsContainer.classList.contains('hidden'); } openResults() { if (this.areResultsClosed()) { this.elements.resultsContainer.classList.remove('hidden'); elementorFrontend.hooks.doAction('search:results-displayed', this.getID()); } } handleEnterKey() { this.closeResults(); } handleEscapeKey(event) { if ('Escape' !== event.key) { return; } const activeElement = elementorFrontend.elements.window.document.activeElement, isSearchResultsFocused = this.elements.resultsContainer.contains(activeElement) || false; if (isSearchResultsFocused) { this.elements.searchField.focus(); } this.closeResults(); } focusNextElement() { if (this.isSearchInputFocused()) { this.currentResultFocusedIndex = 0; } else { this.currentResultFocusedIndex++; this.checkFocusIndexBounds(); } this.updateFocus(); } focusPreviousElement() { if (this.isSearchInputFocused()) { this.currentResultFocusedIndex = this.focusableResultElements.length - 1; } else { this.currentResultFocusedIndex--; this.checkFocusIndexBounds(); } this.updateFocus(); } checkFocusIndexBounds() { if (this.currentResultFocusedIndex >= this.focusableResultElements.length) { this.currentResultFocusedIndex = -1; } else if (this.currentResultFocusedIndex < -1) { this.currentResultFocusedIndex = this.focusableResultElements.length - 1; } } updateFocus() { if (-1 === this.currentResultFocusedIndex) { this.focusSearchAndMoveCursorToEnd(); } else { this.setFocusToElement(this.focusableResultElements[this.currentResultFocusedIndex]); } } closeResults() { this.elements.resultsContainer.classList.add('hidden'); this.updateAriaExpanded(false); } updateAriaExpanded(expanded) { this.elements.searchField.setAttribute('aria-expanded', expanded); } focusSearchAndMoveCursorToEnd() { const searchField = this.elements.searchField; const length = searchField.value.length; this.setFocusToElement(this.elements.searchField); searchField.setSelectionRange(length, length); } setFocusToElement(element) { element.focus(); } } exports["default"] = SearchKeyboardHandler; /***/ }, /***/ "../modules/search/assets/js/frontend/handlers/search.js" /*!***************************************************************!*\ !*** ../modules/search/assets/js/frontend/handlers/search.js ***! \***************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _runElementHandlers = _interopRequireDefault(__webpack_require__(/*! elementor-pro/frontend/utils/run-element-handlers */ "../assets/dev/js/frontend/utils/run-element-handlers.js")); class Search extends elementorModules.frontend.handlers.Base { debounceTimeoutId; page_number; __construct(...args) { super.__construct(...args); elementorFrontend.hooks.addAction('search:results-displayed', this.hideOtherResults.bind(this)); } getDefaultSettings() { return { selectors: { searchWrapper: '.e-search', searchField: '.e-search-input', submitButton: '.e-search-submit', clearIcon: '.e-search-input-wrapper > svg, .e-search-input-wrapper > i', searchIcon: '.e-search-label > svg, .e-search-label > i', resultsContainer: '.e-search-results-container', results: '.e-search-results', links: 'a.page-numbers:not(.current)' }, classes: { searchResultsListWrapper: 'e-search-results-list', searchResultsPagination: 'elementor-pagination' } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { searchWidget: this.$element[0], searchWrapper: this.$element[0].querySelector(selectors.searchWrapper), searchField: this.$element[0].querySelector(selectors.searchField), submitButton: this.$element[0].querySelector(selectors.submitButton), clearIcon: this.$element[0].querySelector(selectors.clearIcon), searchIcon: this.$element[0].querySelector(selectors.searchIcon), resultsContainer: this.$element[0].querySelector(selectors.resultsContainer), results: this.$element[0].querySelector(selectors.results), links: this.$element[0].querySelectorAll(selectors.links) }; } onInit() { super.onInit(); this.changeClearIconVisibility(true); this.updateInputStyle(); this.toggleSearchResultsVisibility = this.toggleSearchResultsVisibility.bind(this); document.addEventListener('click', this.toggleSearchResultsVisibility); document.fonts.ready.then(() => this.updateInputStyle()); } onDestroy() { document.removeEventListener('click', this.toggleSearchResultsVisibility); } bindEvents() { this.elements.submitButton.addEventListener('click', this.onSubmit.bind(this)); this.elements.searchField.addEventListener('input', event => { this.changeClearIconVisibility(!event.target.value.length); this.debounce(this.onType)(event); }); this.elements.searchField.addEventListener('keydown', this.onSearchFieldKeydown.bind(this)); this.elements.searchWidget.addEventListener('click', this.onClick.bind(this)); ['focusin', 'focusout'].forEach(eventType => { this.elements.searchField.addEventListener(eventType, this.toggleWidgetFocusClass.bind(this)); }); this.elements.clearIcon?.addEventListener('click', this.onClear.bind(this)); this.linksEventListeners(); } linksEventListeners() { if (!this.elements.links.length) { return; } this.elements.links.forEach(link => { link.addEventListener('click', event => { this.handleLinkClick(event); }); }); } handleLinkClick(event) { event.preventDefault(); const nextPageUrl = event?.target.getAttribute('href'), urlParams = new URLSearchParams(new URL(nextPageUrl).search), pageNumber = urlParams.get('e-search-page'); this.page_number = pageNumber ? parseInt(pageNumber, 10) : 1; this.removeLinksListeners(); this.renderLiveResults(); } removeLinksListeners() { if (!this.elements.links.length) { return; } this.elements.links.forEach(link => { link.removeEventListener('click', this.handleLinkClick); }); } reInitLinks() { this.elements.links = document.querySelectorAll(`[data-id="${this.getID()}"] a.page-numbers:not(.current)`); this.linksEventListeners(); } onClick() { this.elements.resultsContainer.classList.add('hide-loader'); } onType(event) { event.preventDefault(); this.updateAriaLabel(this.elements.searchField.value); if (!this.elements.searchField.value.length) { this.clearResultsMarkup(); return; } const minimumSearchLength = this.getMinimumSearchLength(); const shouldShowLiveResults = this.shouldShowLiveResults(); if (shouldShowLiveResults && this.elements.searchField.value.length >= minimumSearchLength) { this.page_number = 1; this.renderLiveResults(); } } toggleWidgetFocusClass(event) { const isFocusIn = 'focusin' === event.type; this.$element[0].classList.toggle('e-focus', isFocusIn); } onSubmit(event) { if (elementorFrontend.isEditMode()) { event.preventDefault(); } } onClear(event) { event.preventDefault(); this.elements.searchField.value = ''; this.clearResultsMarkup(); this.elements.searchField.focus(); this.changeClearIconVisibility(true); } onSearchFieldKeydown(event) { if ('Enter' === event.code) { this.clearResultsMarkup(); this.onSubmit(event); } } fetchUpdatedSearchWidgetMarkup() { return fetch(`${elementorProFrontend.config.urls.rest}elementor-pro/v1/refresh-search`, this.getFetchArgumentsForSearchUpdate()); } getMinimumSearchLength() { return this.getElementSettings().minimum_search_characters || 3; } shouldShowLiveResults() { return this.getElementSettings().live_results && this.getElementSettings().template_id; } renderLiveResults() { const widget = document.querySelector(`.elementor-element-${this.getID()}`); if (!widget) { return; } if (!this.elements.searchField.value) { this.clearResultsMarkup(); return; } this.elements.resultsContainer.classList.remove('hide-loader'); this.elements.resultsContainer.classList.remove('hidden'); return this.fetchUpdatedSearchWidgetMarkup().then(response => { if (!(response instanceof Response) || !response?.ok || 400 <= response?.status) { return {}; } return response.json(); }).catch(() => { return {}; }).then(response => { if (!response?.data) { this.updateAriaExpanded(false); return; } const resultNode = this.createResultNode(response); this.elements.results.replaceChildren(resultNode.resultContentNode); this.elements.results.append(resultNode.paginationNode); this.elements.resultsContainer.classList.add('hide-loader'); this.maybeHandleNoResults(resultNode.resultContentNode); elementorFrontend.hooks.doAction('search:results-updated'); }).finally(() => { const resultsElements = document.querySelectorAll(`[data-id="${this.getID()}"] .e-loop-item`); (0, _runElementHandlers.default)(resultsElements); this.reInitLinks(); if (ElementorProFrontendConfig.settings.lazy_load_background_images) { document.dispatchEvent(new Event('elementor/lazyload/observe')); } }); } maybeHandleNoResults(resultsNode) { const isNoResultsMessage = !!resultsNode.querySelector('.e-search-nothing-found-message'); this.elements.results.classList[isNoResultsMessage ? 'add' : 'remove']('no-results'); if (!isNoResultsMessage) { this.hideOtherResults(); } } hideOtherResults(id = null) { if (id && id !== this.getID()) { return; } const visibleResultsContainers = document.querySelectorAll(`${this.getSettings('selectors').resultsContainer}:not(.hidden)`); Array.from(visibleResultsContainers).filter(resultsContainer => !resultsContainer.closest(`.elementor-element-${this.getID()}`)).forEach(resultsContainer => resultsContainer.classList.add('hidden')); } createResultNode(responseData) { const resultContentNode = document.createElement('div'); const searchResultsList = this.getSettings('classes.searchResultsListWrapper'); const paginationNode = document.createElement('nav'); const searchResultPagination = this.getSettings('classes.searchResultsPagination'); const searchResultPaginationAriaLabel = 'Pagination'; paginationNode.setAttribute('class', searchResultPagination); paginationNode.setAttribute('aria-label', searchResultPaginationAriaLabel); resultContentNode.setAttribute('class', searchResultsList); paginationNode.innerHTML = responseData.pagination; resultContentNode.innerHTML = responseData.data; const loopItems = resultContentNode.querySelectorAll('.e-loop-item'), hasResults = loopItems.length > 0; this.updateAriaExpanded(hasResults); return { resultContentNode, paginationNode }; } updateAriaExpanded(expanded) { this.elements.searchField.setAttribute('aria-expanded', expanded ? 'true' : 'false'); } updateAriaLabel(searchTerms) { if (searchTerms) { this.elements.resultsContainer.setAttribute('aria-label', `Results for ${searchTerms}`); } else { this.elements.resultsContainer.removeAttribute('aria-label'); } } clearResultsMarkup() { this.elements.results.innerHTML = ''; this.updateAriaExpanded(false); } getFetchArgumentsForSearchUpdate() { const data = this.prepareSearchUpdateRequestData(); const args = { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }; if (elementorFrontend.isEditMode() && !!elementorPro.config.eSearch?.nonce) { args.headers['X-WP-Nonce'] = elementorPro.config.eSearch?.nonce; } return args; } prepareSearchUpdateRequestData() { const widgetId = '' + this.getID(), data = { post_id: this.getClosestDataElementorId(this.$element[0]), widget_id: widgetId, search_term: this.elements.searchField.value || '', page_number: this.page_number }; if (elementorFrontend.isEditMode()) { // In the editor, we have to support Search widgets that have been created but not saved to the database yet. const widgetContainer = window.top.$e.components.get('document').utils.findContainerById(widgetId); data.widget_model = widgetContainer.model.toJSON({ remove: ['default', 'editSettings', 'defaultEditSettings'] }); data.is_edit_mode = true; } return data; } getClosestDataElementorId(element) { const closestParent = element.closest('[data-elementor-id]'); return closestParent ? closestParent.getAttribute('data-elementor-id') : 0; } debounce(callback, timeout = 300) { return (...args) => { clearTimeout(this.debounceTimeoutId); this.debounceTimeoutId = setTimeout(() => callback.apply(this, args), timeout); }; } updateInputStyle(iconSlugs = ['searchIcon', 'clearIcon']) { const cssVariableNamesMap = { searchIcon: 'icon-label', clearIcon: 'icon-clear' }, widgetStyle = this.$element[0].style, hiddenRoots = this.getAllDisplayNoneParents(this.$element[0].parentNode); this.setElementsDisplay(hiddenRoots, 'block'); for (const iconSlug of iconSlugs) { const { width } = this.elements[iconSlug]?.getBoundingClientRect() || { width: 0 }, cssVariableSlug = cssVariableNamesMap[iconSlug]; widgetStyle.setProperty(`--e-search-${cssVariableSlug}-absolute-width`, width + 'px'); this.elements.searchField.classList[width ? 'remove' : 'add'](`no-${cssVariableSlug}`); } this.setElementsDisplay(hiddenRoots, ''); this.elements.searchWrapper.classList.remove('hidden'); } /** * Sets the clear icon visibility. * @param { boolean } shouldHide true to hide or false to show. * @return { void } the width. */ changeClearIconVisibility(shouldHide) { this.elements.clearIcon?.classList[shouldHide ? 'add' : 'remove']('hidden'); } toggleSearchResultsVisibility(event) { const selectors = this.getSettings('selectors'), widgetWrapper = `.elementor-element-${this.getID()}`, { target } = event, isTargetPartOfResults = !!target?.closest(`${widgetWrapper} ${selectors.resultsContainer}`) || target?.classList?.contains(selectors.resultsContainer) && !!target?.closest(widgetWrapper), isSearchContainerClicked = !!target?.closest(`${widgetWrapper} ${selectors.searchWrapper}`), isSearchInputClicked = target?.classList?.contains(selectors.searchField.replace('.', '')), isSearchResultsPresent = this.elements.resultsContainer?.children?.length; if (isTargetPartOfResults) { this.hideOtherResults(); } if (!isSearchResultsPresent || isTargetPartOfResults) { return; } if (!isSearchInputClicked || !isSearchContainerClicked) { this.elements.resultsContainer.classList.add('hidden'); } } getAllDisplayNoneParents(elementNode, foundElements = []) { if (!elementNode || elementNode === document.body) { return foundElements; } const style = window.getComputedStyle(elementNode), isNotDisplayed = 'none' === style.display; if (isNotDisplayed) { foundElements.push(elementNode); } return this.getAllDisplayNoneParents(elementNode.parentNode, foundElements); } setElementsDisplay(elements, displayValue) { elements.forEach(element => { element.style.display = displayValue; }); } onElementChange(propertyName) { const propertyNameCallbackMap = { search_field_icon_label_size: () => this.updateInputStyle(['searchIcon']), icon_clear_size: () => this.updateInputStyle(['clearIcon']) }; if (propertyNameCallbackMap[propertyName]) { propertyNameCallbackMap[propertyName](); } } } exports["default"] = Search; /***/ } }]); //# sourceMappingURL=search.eb99cbb2b336e50a443a.bundle.js.map/** * Frontend hardcoded overrides for theme compatibility. */ .sfb-anchor { position: fixed !important; left: 0 !important; top: 0 !important; width: 0 !important; height: 0 !important; overflow: hidden !important; pointer-events: none !important; z-index: -9999 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; } .sfb-anchor .sfb-block { pointer-events: none !important; } .sfb-block { display: block !important; box-sizing: border-box !important; } .sfb-block__inner { display: block !important; box-sizing: border-box !important; } .sfb-block__inner p { margin: 0 0 0.5em !important; } .sfb-block__inner p:last-child { margin-bottom: 0 !important; } .sfb-block--visible.sfb-block--top_left, .sfb-block--visible.sfb-block--top_right, .sfb-block--visible.sfb-block--bottom_left, .sfb-block--visible.sfb-block--bottom_right { max-width: 320px !important; } .sfb-block--offset .sfb-block__inner, .sfb-block--clip .sfb-block__inner { display: block !important; } Home – Ijesha Digital Hub

Home

Unleashing Digital Potential, Empowering Ijesha Youth

Our mission is clear: to be the leading incubation center for empowering young Ijesha people with digital and technological skills, ultimately driving economic empowerment within the community. We believe that by equipping the youth with the necessary tools and knowledge, we can unlock their potential and pave the way for a brighter future.

Values that lead us

01

Holistic Approach to Digital Skills

Wide range of fields such as web development, graphic design, data analysis, digital marketing, and more. Our programs are designed to prepare youths for the ever-evolving digital landscape.

02

State-of-the-Art Facilities

Environment that fosters creativity and innovation. From high-speed internet to advanced software and hardware, we have everything needed to support our students' learning journey.

03

Networking Opportunities

Through networking events, workshops, and industry partnerships, we provide our students with opportunities to connect with like-minded individuals, potential employers, and mentors.

04

Entrepreneurship & Start-up Support:

Our goal is to cultivate a culture of innovation and empower young Ijesha people to become job creators, driving economic growth and prosperity within their community.

Our team of Big Thinkers

Prince Abimbola Olashore

Chairman, Lead Asset Management Limited

Sir Demola Aladekomo

Chairman, CHAMS Plc

Dr Adewale Alonge

CEO - ADF Global Corporation

Alhaji Lateef Bakare

Chairman for Afromedia Plc.

Join the Digital Revolution with Ijesha Digital Hub

Whether you are a fresh graduate, a young professional looking to upskill, or an aspiring entrepreneur, Ijesha Digital Hub is here to help you embark on an exciting journey in the digital world. We are committed to equipping you with the necessary skills, knowledge, and resources to thrive in today’s digital economy.

Take the first step towards transforming your future. Explore our programs, connect with our community, and embrace the endless possibilities that digital skills can offer. Together, let’s shape a brighter tomorrow for Ijesha.

Brands We Partner With

Join the movement

Contact us today to learn more about how Ijesha Digital Hub can empower you on your digital journey.

© 2026 All Rights Reserved.

Scroll to Top