d10 theme for Island Newspapers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

38 lines
1.2 KiB

(function (Drupal) {
"use strict";
Drupal.behaviors.nouisliderYearFormat = {
attach: function (context) {
// 1. Target the slider element
const sliderEl = document.getElementById("year");
if (!sliderEl) return;
// 2. Use a small function to attach the rounding logic
const applyRounding = () => {
if (sliderEl.noUiSlider && !sliderEl.dataset.yearFormatApplied) {
sliderEl.dataset.yearFormatApplied = "true";
sliderEl.noUiSlider.on("update", function (values, handle) {
const inputId =
handle === 0 ? "nouislider-input-from" : "nouislider-input-to";
const input = document.getElementById(inputId);
if (input) {
// Round the string value ("1971.00" -> 1971)
input.value = Math.round(parseFloat(values[handle]));
}
});
}
};
// 3. Try immediately, then periodically until the slider is ready
applyRounding();
const retry = setInterval(() => {
applyRounding();
if (sliderEl.dataset.yearFormatApplied) clearInterval(retry);
}, 100);
// Stop trying after 3 seconds
setTimeout(() => clearInterval(retry), 3000);
},
};
})(Drupal);