優待株から探す 口コミから探す
[km_reviews_ui]
磯丸水産
きづなすし
ミスタードーナツ
モスバーガー&カフェ
バーミヤン
つるまる
ロイヤルホスト
ガスト
ラパウザ
ラパウザ
(function(){ function $(s,root){return (root||document).querySelector(s);} function $$(s,root){return Array.prototype.slice.call((root||document).querySelectorAll(s));} function kill(e){ if(!e) return; e.preventDefault(); e.stopPropagation(); if(e.stopImmediatePropagation) e.stopImmediatePropagation(); } function isReviewsPage(){ return /^\/reviews(?:\/|$)/.test(location.pathname); } function firstModal(){ return $(".km-reviews-ui .km-modal.-open") || $(".km-reviews-ui #kmRvModal") || $(".km-reviews-ui .km-modal"); } function openModal(m){ m = m || firstModal(); if(!m) return; m.classList.add("-open"); m.setAttribute("aria-hidden","false"); } function closeModal(m){ m = m || firstModal(); if(!m) return; m.classList.remove("-open"); m.setAttribute("aria-hidden","true"); } function clearAll(m){ m = m || firstModal(); if(!m) return; $$(".km-chip.-on",m).forEach(function(a){ a.classList.remove("-on"); }); } function dedupeReviewUi(){ var uis=$$(".km-reviews-ui"); if(!isReviewsPage()){ uis.forEach(function(el){ el.parentNode && el.parentNode.removeChild(el); }); return; } uis.slice(1).forEach(function(el){ el.parentNode && el.parentNode.removeChild(el); }); } // 現在のクエリを元にパラメータを構築 function buildParams(fromSortOnly, modal){ var qs = new URLSearchParams(location.search); qs.delete("paged"); qs.delete("page"); var m = modal || firstModal(); var chips = m ? $$(".km-chip.-on", m) : []; if (chips.length > 0 || !fromSortOnly){ qs.delete("store_genre"); qs.delete("store_genre[]"); // 念のため両方削除 chips.forEach(function(a){ var v = a.getAttribute("data-val") || ""; try{ v = decodeURIComponent(v); }catch(e){} if (v) qs.append("store_genre[]", v); }); } var sortSel = $("#kmRvSort"); if (sortSel){ if (sortSel.value === "date"){ qs.delete("sort"); } else { qs.set("sort", sortSel.value); } } return qs; } window.KMRV_buildURL = function(fromSortOnly){ var qs = buildParams(!!fromSortOnly, firstModal()); var url = location.pathname + (qs.toString() ? ("?"+qs.toString()) : ""); return url; }; function submitParams(qs){ var f = document.createElement("form"); f.method = "GET"; f.action = location.pathname; qs.forEach(function(v,k){ var i = document.createElement("input"); i.type = "hidden"; i.name = k; i.value = v; f.appendChild(i); }); document.body.appendChild(f); f.submit(); } // 初期:モーダル閉じ&ハッシュ除去 try{ dedupeReviewUi(); var m=firstModal(); var qs = new URLSearchParams(location.search); if(m && isReviewsPage() && qs.get("km_tag_modal") === "1"){ openModal(m); } else if(m){ m.classList.remove("-open"); m.setAttribute("aria-hidden","true"); } if(location.hash){ history.replaceState(null,"",location.pathname+location.search); } }catch(e){} // クリック系は全部デリゲート document.addEventListener("click", function(e){ var t=e.target; var opener = t.closest(".km-reviews-ui #kmRvOpen,.km-reviews-ui [data-km-open]"); if (opener){ kill(e); var wrap = opener.closest(".km-reviews-ui"); openModal(wrap ? $(".km-modal", wrap) : null); return; } if (t.closest(".km-reviews-ui [data-km-close], .km-reviews-ui .km-modal .ov")){ kill(e); closeModal(t.closest(".km-modal")); return; } if (t.closest(".km-reviews-ui #kmRvClear")){ kill(e); clearAll(t.closest(".km-modal")); return; } if (t.closest(".km-reviews-ui #kmRvApply")){ kill(e); submitParams(buildParams(false, t.closest(".km-modal"))); return; } var chip = t.closest(".km-reviews-ui .km-modal .km-chips .km-chip"); if (chip){ kill(e); chip.classList.toggle("-on"); return; } if (t.closest(".km-reviews-ui #kmRvReset")){ kill(e); window.location.href = "/reviews/"; return; } }, true); // 並び替えは change 即送信 document.addEventListener("change", function(e){ var t = e.target; if (t && t.id === "kmRvSort"){ submitParams(buildParams(true, firstModal())); } }, true); // Esc で閉じる document.addEventListener("keydown", function(e){ if(e.key==="Escape"){ closeModal(); } }, {capture:true}); })();
[km_reviews_ui]