(function (root, factory) { var api = factory() if (typeof module === 'object' && module.exports) module.exports = api else root.WelcomePageNavigation = api }(typeof self !== 'undefined' ? self : this, function () { function navigateToMiniProgramHome(miniProgram, onFailure) { var fail = typeof onFailure === 'function' ? onFailure : function () {} if (!miniProgram || typeof miniProgram.reLaunch !== 'function') { fail() return false } try { miniProgram.reLaunch({ url: '/pages/home', fail: fail }) return true } catch (error) { fail(error) return false } } function bindWelcomeButton(button, getMiniProgram, onFailure) { if (!button || typeof button.addEventListener !== 'function') return var navigating = false function unlockAndReport(error) { navigating = false button.removeAttribute('aria-busy') if (typeof onFailure === 'function') onFailure(error) } button.addEventListener('click', function (event) { if (event && typeof event.preventDefault === 'function') event.preventDefault() if (navigating) return navigating = true button.setAttribute('aria-busy', 'true') var miniProgram = typeof getMiniProgram === 'function' ? getMiniProgram() : null navigateToMiniProgramHome(miniProgram, unlockAndReport) }) } return { bindWelcomeButton: bindWelcomeButton, navigateToMiniProgramHome: navigateToMiniProgramHome } }))