MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 76: Line 76:


       result.innerHTML =
       result.innerHTML =
         "<strong>" + widthMiles.toLocaleString(undefined, { maximumFractionDigits: 2 }) + " miles</strong>" +
         "<strong>" + widthMiles.toLocaleString(undefined, { maximumFractionDigits: 0 }) + " miles</strong>" +
         " × " +
         " × " +
         "<strong>" + heightMiles.toLocaleString(undefined, { maximumFractionDigits: 2 }) + " miles</strong>" +
         "<strong>" + heightMiles.toLocaleString(undefined, { maximumFractionDigits: 0 }) + " miles</strong>" +
         " = " +
         " = " +
         "<strong>" + squareMiles.toLocaleString(undefined, { maximumFractionDigits: 2 }) + " mi²</strong>";
         "<strong>" + squareMiles.toLocaleString(undefined, { maximumFractionDigits: 0 }) + " mi²</strong>";
     });
     });
  });
});
(function () {
    function stripHeaderLines(text) {
        return text
            // Remove standalone short lines that look like section headers
            .replace(/(?:^|\n)\s*[A-Z][A-Za-z0-9'’\- ,()]{0,50}\s*(?=\n)/g, '\n')
            // Clean up excess blank lines
            .replace(/\n{2,}/g, '\n')
            .trim();
    }
    function cleanAdarisPopups() {
        document.querySelectorAll(
            '.mwe-popups-extract, .mwe-popups-extract p, .mwe-popups .extract, .mwe-popups .mwe-popups-extract'
        ).forEach(function (el) {
            if (!el || el.dataset.adarisCleaned === '1') {
                return;
            }
            el.textContent = stripHeaderLines(el.textContent);
            el.dataset.adarisCleaned = '1';
        });
    }
    const observer = new MutationObserver(function () {
        cleanAdarisPopups();
        setTimeout(cleanAdarisPopups, 100);
        setTimeout(cleanAdarisPopups, 300);
    });
    observer.observe(document.body, {
        childList: true,
        subtree: true,
        characterData: true
    });
    cleanAdarisPopups();
})();
mw.loader.using('mediawiki.util', function () {
  $(function () {
    var input = document.getElementById('pixelToMileInput');
    var output = document.getElementById('pixelToMileOutput');
    if (!input || !output) {
      return;
    }
    input.addEventListener('input', function () {
      var pixels = parseFloat(input.value);
      if (isNaN(pixels)) {
        output.textContent = '0 mi';
        return;
      }
      var miles = (pixels / 1000) * 50;
      output.textContent = Math.round(miles) + ' mi';
    });
  });
});
$(function () {
  var container = document.getElementById('pixel-to-mile-calculator');
  if (!container) {
    return;
  }
  container.className = 'adaris-tool-box';
  container.innerHTML =
    '<label for="pixelToMileInput"><strong>Pixels:</strong></label><br>' +
    '<input id="pixelToMileInput" type="number" placeholder="Enter pixels">' +
    '<p><strong>Distance:</strong> <span id="pixelToMileOutput">0 mi</span></p>';
  var input = document.getElementById('pixelToMileInput');
  var output = document.getElementById('pixelToMileOutput');
  input.addEventListener('input', function () {
    var pixels = parseFloat(input.value);
    if (isNaN(pixels)) {
      output.textContent = '0 mi';
      return;
    }
    var miles = (pixels / 1000) * 50;
    output.textContent = Math.round(miles) + ' mi';
   });
   });
});
});