(() => { const { EventManager, utils, constants } = ShopbySkin; const slideMenuEL = document.querySelector('slide-menu'); const slideMenuClickActionMap = { CLOSE_SLIDE_MENU: () => { EventManager.fire('TOGGLE_HEADER_SLIDE_MENU', { type: 'close' }); }, TOGGLE_SLIDE_MENU_CHILD_CATEGORY: (e) => { const categoryWrapEl = e?.target?.closest('[shopby-category-no]'); EventManager.fire('TOGGLE_SLIDE_MENU_CHILD_CATEGORY', { wrapEl: categoryWrapEl, }); }, SIGN_OUT: () => { slideMenuClickActionMap.CLOSE_SLIDE_MENU(); EventManager.fire('SIGN_OUT'); }, GO_MY_MENU: (e) => { if (!utils.isSignedIn()) { e.preventDefault(); slideMenuClickActionMap.CLOSE_SLIDE_MENU(); const from = e.target.href; const nextUrl = `${location.origin}${constants.PAGE.SIGN_IN}`; utils.moveTo({ url: `${nextUrl}?from=${encodeURIComponent(from)}` }); } else { if (!e.target.href) { return; } slideMenuClickActionMap.CLOSE_SLIDE_MENU(); utils.moveTo({ url: e.target.href }); } }, GO_NEXT: (event) => { event.preventDefault(); const { target } = event; const href = target?.href ?? target.closest('[shopby-action="GO_NEXT"]')?.href; if (!href) { return; } slideMenuClickActionMap.CLOSE_SLIDE_MENU(); utils.moveTo({ url: href }); }, }; const clickEventListener = (e) => { const action = e?.target?.closest('[shopby-action]')?.getAttribute('shopby-action'); slideMenuClickActionMap[action]?.(e); }; slideMenuEL?.addEventListener('click', clickEventListener); ShopbySkin.utils.myappProxyRegistry.applyToSlideMenu = (proxyFn) => { if (typeof proxyFn === 'function') { slideMenuEL?.removeEventListener('click', clickEventListener); slideMenuEL?.addEventListener('click', proxyFn(clickEventListener)); } }; ShopbySkin.utils.myappProxyRegistry.applyToSlideMenu.proxyFnKey = 'slideMenuProxy'; EventManager.fire('INIT_MYAPP'); })();