{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://ijalfauzi/./src/js/custom.js","webpack://ijalfauzi/webpack/bootstrap","webpack://ijalfauzi/webpack/runtime/compat get default export","webpack://ijalfauzi/webpack/runtime/define property getters","webpack://ijalfauzi/webpack/runtime/hasOwnProperty shorthand","webpack://ijalfauzi/./src/js/main.js"],"sourcesContent":["document.addEventListener('DOMContentLoaded', function() {\r\n // Mobile Navigation\r\n const navToggle = document.querySelector('[data-toggle-nav]');\r\n const mobileNav = document.querySelector('[data-mobile-nav]');\r\n let isMenuOpen = false;\r\n\r\n if (navToggle && mobileNav) {\r\n const toggleMenu = (event) => {\r\n if (event) {\r\n event.stopPropagation();\r\n }\r\n \r\n isMenuOpen = !isMenuOpen;\r\n mobileNav.classList.toggle('hidden');\r\n \r\n // Update icon\r\n navToggle.innerHTML = isMenuOpen \r\n ? ''\r\n : '';\r\n\r\n // Close search panel if open when opening mobile nav\r\n if (isMenuOpen && searchPanel && !searchPanel.classList.contains('hidden')) {\r\n searchPanel.classList.add('hidden');\r\n isSearchOpen = false;\r\n }\r\n };\r\n\r\n navToggle.addEventListener('click', toggleMenu);\r\n\r\n // Close mobile nav when clicking outside\r\n document.addEventListener('click', (e) => {\r\n if (isMenuOpen && \r\n !mobileNav.contains(e.target) && \r\n !navToggle.contains(e.target)) {\r\n toggleMenu();\r\n }\r\n });\r\n\r\n // Prevent clicks inside mobile nav from closing it\r\n mobileNav.addEventListener('click', (e) => {\r\n e.stopPropagation();\r\n });\r\n }\r\n\r\n // Search Functionality\r\n const searchToggle = document.querySelector('[data-search-toggle]');\r\n const searchPanel = document.querySelector('[data-search-panel]');\r\n const searchInput = document.querySelector('[data-search-input]');\r\n let isSearchOpen = false;\r\n \r\n if (searchToggle && searchPanel) {\r\n const toggleSearch = (event) => {\r\n if (event) {\r\n event.stopPropagation();\r\n }\r\n\r\n isSearchOpen = !isSearchOpen;\r\n searchPanel.classList.toggle('hidden');\r\n \r\n // Close mobile nav if open when opening search\r\n if (isSearchOpen && mobileNav && !mobileNav.classList.contains('hidden')) {\r\n isMenuOpen = false;\r\n mobileNav.classList.add('hidden');\r\n navToggle.innerHTML = '';\r\n }\r\n \r\n // Focus input when opening\r\n if (isSearchOpen && searchInput) {\r\n setTimeout(() => searchInput.focus(), 100);\r\n }\r\n };\r\n\r\n searchToggle.addEventListener('click', toggleSearch);\r\n\r\n // Close search panel when clicking outside\r\n document.addEventListener('click', (e) => {\r\n if (isSearchOpen && \r\n !searchPanel.contains(e.target) && \r\n !searchToggle.contains(e.target)) {\r\n toggleSearch();\r\n }\r\n });\r\n\r\n // Prevent clicks inside search panel from closing it\r\n searchPanel.addEventListener('click', (e) => {\r\n e.stopPropagation();\r\n });\r\n }\r\n\r\n // Initialize search forms\r\n const initSearchForms = () => {\r\n document.querySelectorAll('.search-form').forEach(form => {\r\n const searchInput = form.querySelector('[data-search-input]');\r\n const clearButton = form.querySelector('[data-clear-search]');\r\n const resultsContainer = form.querySelector('[data-search-results]');\r\n let searchTimeout;\r\n \r\n if (searchInput && resultsContainer) {\r\n searchInput.addEventListener('input', (e) => {\r\n const searchTerm = e.target.value.trim();\r\n \r\n if (clearButton) {\r\n clearButton.classList.toggle('hidden', !searchTerm);\r\n }\r\n \r\n clearTimeout(searchTimeout);\r\n \r\n if (!searchTerm) {\r\n resultsContainer.classList.add('hidden');\r\n return;\r\n }\r\n \r\n searchTimeout = setTimeout(() => {\r\n performSearch(searchTerm, resultsContainer);\r\n }, 300);\r\n });\r\n\r\n if (clearButton) {\r\n clearButton.addEventListener('click', () => {\r\n searchInput.value = '';\r\n searchInput.focus();\r\n resultsContainer.classList.add('hidden');\r\n clearButton.classList.add('hidden');\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n const performSearch = async (searchTerm, resultsContainer) => {\r\n try {\r\n resultsContainer.innerHTML = `\r\n
\r\n \r\n \r\n \r\n \r\n Searching...\r\n
\r\n `;\r\n resultsContainer.classList.remove('hidden');\r\n \r\n const formData = new FormData();\r\n formData.append('action', 'ijalfauzi_live_search');\r\n formData.append('nonce', liveSearchData.nonce);\r\n formData.append('search', searchTerm);\r\n \r\n const response = await fetch(liveSearchData.ajaxurl, {\r\n method: 'POST',\r\n body: formData\r\n });\r\n \r\n const data = await response.json();\r\n \r\n if (data.success) {\r\n displayResults(data.data.results, resultsContainer, {\r\n displayed: data.data.results.length,\r\n total: data.data.total_count\r\n });\r\n } else {\r\n throw new Error(data.data.message);\r\n }\r\n \r\n } catch (error) {\r\n console.error('Search error:', error);\r\n resultsContainer.innerHTML = `\r\n
\r\n An error occurred while searching. Please try again.\r\n
\r\n `;\r\n }\r\n };\r\n \r\n const displayResults = (results, container, counts) => {\r\n if (!Array.isArray(results) || results.length === 0) {\r\n container.innerHTML = `\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

No results found

\r\n

Try different keywords or check your spelling

\r\n
\r\n
\r\n `;\r\n return;\r\n }\r\n \r\n // Group results by post type\r\n const groupedResults = {\r\n post: results.filter(r => r.post_type === 'post'),\r\n work: results.filter(r => r.post_type === 'work'),\r\n gallery: results.filter(r => r.post_type === 'gallery')\r\n };\r\n \r\n container.innerHTML = `\r\n
\r\n \r\n
\r\n ${Object.entries(groupedResults).map(([type, typeResults]) => \r\n typeResults.length ? `\r\n ${typeResults.map((result, index) => `\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n ${result.type_label}\r\n \r\n ${result.date}\r\n
\r\n \r\n

\r\n ${result.title}\r\n

\r\n \r\n ${result.excerpt ? `\r\n

\r\n ${result.excerpt}\r\n

\r\n ` : ''}\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n `).join('')}\r\n ` : ''\r\n ).join('')}\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Press\r\n Enter\r\n to see all results\r\n
\r\n \r\n ${counts.displayed} of ${counts.total} results\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n `;\r\n };\r\n\r\n // Handle keyboard shortcuts\r\n document.addEventListener('keydown', (e) => {\r\n // Close on escape\r\n if (e.key === 'Escape') {\r\n if (isSearchOpen) {\r\n const searchToggle = document.querySelector('[data-search-toggle]');\r\n if (searchToggle) {\r\n searchToggle.click();\r\n }\r\n } else if (isMenuOpen) {\r\n const navToggle = document.querySelector('[data-toggle-nav]');\r\n if (navToggle) {\r\n navToggle.click();\r\n }\r\n }\r\n }\r\n \r\n // Open search on Cmd/Ctrl + K\r\n if ((e.metaKey || e.ctrlKey) && e.key === 'k') {\r\n e.preventDefault();\r\n if (!isSearchOpen) {\r\n const searchToggle = document.querySelector('[data-search-toggle]');\r\n if (searchToggle) {\r\n searchToggle.click();\r\n }\r\n }\r\n }\r\n });\r\n // Initialize search\r\n initSearchForms();\r\n\r\n // Initialize Swiper if it exists\r\n if (typeof Swiper !== 'undefined') {\r\n const featuredWorkSwiper = new Swiper('.featured-work-swiper', {\r\n slidesPerView: 1,\r\n spaceBetween: 16,\r\n centeredSlides: false,\r\n autoplay: {\r\n delay: 1750,\r\n disableOnInteraction: false,\r\n pauseOnMouseEnter: true\r\n },\r\n pagination: {\r\n el: '.swiper-pagination',\r\n clickable: true,\r\n },\r\n breakpoints: {\r\n 640: {\r\n slidesPerView: 2,\r\n spaceBetween: 24,\r\n centeredSlides: false,\r\n }\r\n }\r\n });\r\n \r\n const swiperContainer = document.querySelector('.featured-work-swiper');\r\n if (swiperContainer) {\r\n swiperContainer.addEventListener('mouseenter', () => {\r\n featuredWorkSwiper.autoplay.stop();\r\n });\r\n swiperContainer.addEventListener('mouseleave', () => {\r\n featuredWorkSwiper.autoplay.start();\r\n });\r\n }\r\n }\r\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import '../tailwind.css';\r\nimport './custom.js'\r\n\r\n// You can add any other JavaScript you want here\r\nconsole.log('ijalfauzi theme loaded');"],"names":["document","addEventListener","navToggle","querySelector","mobileNav","isMenuOpen","toggleMenu","event","stopPropagation","classList","toggle","innerHTML","searchPanel","contains","add","isSearchOpen","e","target","searchToggle","searchInput","toggleSearch","setTimeout","focus","displayResults","results","container","counts","Array","isArray","length","groupedResults","post","filter","r","post_type","work","gallery","Object","entries","map","type","typeResults","result","index","link","type_label","date","title","excerpt","join","displayed","total","key","click","metaKey","ctrlKey","preventDefault","querySelectorAll","forEach","form","clearButton","resultsContainer","searchTimeout","searchTerm","value","trim","clearTimeout","async","remove","formData","FormData","append","liveSearchData","nonce","response","fetch","ajaxurl","method","body","data","json","success","Error","message","total_count","error","console","performSearch","Swiper","featuredWorkSwiper","slidesPerView","spaceBetween","centeredSlides","autoplay","delay","disableOnInteraction","pauseOnMouseEnter","pagination","el","clickable","breakpoints","swiperContainer","stop","start","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","log"],"sourceRoot":""}