/* 業務システム用の小さな補助スクリプト */ (function () { 'use strict'; /* 削除ボタンの確認 */ document.querySelectorAll('form[data-confirm]').forEach(function (f) { f.addEventListener('submit', function (e) { if (!confirm(f.dataset.confirm)) e.preventDefault(); }); }); /* 絞り込みフォームの自動送信 */ document.querySelectorAll('[data-auto-submit]').forEach(function (el) { el.addEventListener('change', function () { el.form.submit(); }); }); /* 数値のカウントアップ */ var cs = document.querySelectorAll('.count'); if (cs.length && !window.matchMedia('(prefers-reduced-motion: reduce)').matches) { cs.forEach(function (el) { var to = parseFloat(el.dataset.to), dec = parseInt(el.dataset.dec || '0', 10), s = null; function f(ts) { if (!s) s = ts; var p = Math.min((ts - s) / 900, 1), v = to * (1 - Math.pow(1 - p, 3)); el.textContent = dec ? v.toFixed(dec) : Math.round(v).toLocaleString('ja-JP'); if (p < 1) requestAnimationFrame(f); } requestAnimationFrame(f); }); } })();