diff --git a/index.html b/index.html
index b4b5284e..22d43a30 100644
--- a/index.html
+++ b/index.html
@@ -2694,14 +2694,15 @@
data-tip="Hide the letter spacing section"
class="icon-text-width"
>
-
+ max="20"
+ step=".01"
+ value="0"
+ >
diff --git a/modules/ui/labels-editor.js b/modules/ui/labels-editor.js
index e707ec66..809be210 100644
--- a/modules/ui/labels-editor.js
+++ b/modules/ui/labels-editor.js
@@ -26,32 +26,32 @@ function editLabel() {
modules.editLabel = true;
// add listeners
- document.getElementById("labelGroupShow").addEventListener("click", showGroupSection);
- document.getElementById("labelGroupHide").addEventListener("click", hideGroupSection);
- document.getElementById("labelGroupSelect").addEventListener("click", changeGroup);
- document.getElementById("labelGroupInput").addEventListener("change", createNewGroup);
- document.getElementById("labelGroupNew").addEventListener("click", toggleNewGroupInput);
- document.getElementById("labelGroupRemove").addEventListener("click", removeLabelsGroup);
+ byId("labelGroupShow").on("click", showGroupSection);
+ byId("labelGroupHide").on("click", hideGroupSection);
+ byId("labelGroupSelect").on("click", changeGroup);
+ byId("labelGroupInput").on("change", createNewGroup);
+ byId("labelGroupNew").on("click", toggleNewGroupInput);
+ byId("labelGroupRemove").on("click", removeLabelsGroup);
- document.getElementById("labelTextShow").addEventListener("click", showTextSection);
- document.getElementById("labelTextHide").addEventListener("click", hideTextSection);
- document.getElementById("labelText").addEventListener("input", changeText);
- document.getElementById("labelTextRandom").addEventListener("click", generateRandomName);
+ byId("labelTextShow").on("click", showTextSection);
+ byId("labelTextHide").on("click", hideTextSection);
+ byId("labelText").on("input", changeText);
+ byId("labelTextRandom").on("click", generateRandomName);
- document.getElementById("labelEditStyle").addEventListener("click", editGroupStyle);
+ byId("labelEditStyle").on("click", editGroupStyle);
- document.getElementById("labelSizeShow").addEventListener("click", showSizeSection);
- document.getElementById("labelSizeHide").addEventListener("click", hideSizeSection);
- document.getElementById("labelStartOffset").addEventListener("input", changeStartOffset);
- document.getElementById("labelRelativeSize").addEventListener("input", changeRelativeSize);
+ byId("labelSizeShow").on("click", showSizeSection);
+ byId("labelSizeHide").on("click", hideSizeSection);
+ byId("labelStartOffset").on("input", changeStartOffset);
+ byId("labelRelativeSize").on("input", changeRelativeSize);
- document.getElementById("labelLetterSpacingShow").addEventListener("click", showLetterSpacingSection);
- document.getElementById("labelLetterSpacingHide").addEventListener("click", hideLetterSpacingSection);
- document.getElementById("labelLetterSpacingSize").addEventListener("input", changeLetterSpacingSize);
+ byId("labelLetterSpacingShow").on("click", showLetterSpacingSection);
+ byId("labelLetterSpacingHide").on("click", hideLetterSpacingSection);
+ byId("labelLetterSpacingSize").on("input", changeLetterSpacingSize);
- document.getElementById("labelAlign").addEventListener("click", editLabelAlign);
- document.getElementById("labelLegend").addEventListener("click", editLabelLegend);
- document.getElementById("labelRemoveSingle").addEventListener("click", removeLabel);
+ byId("labelAlign").on("click", editLabelAlign);
+ byId("labelLegend").on("click", editLabelLegend);
+ byId("labelRemoveSingle").on("click", removeLabel);
function showEditorTips() {
showMainTip();
@@ -66,12 +66,12 @@ function editLabel() {
const group = text.parentNode.id;
if (group === "states" || group === "burgLabels") {
- document.getElementById("labelGroupShow").style.display = "none";
+ byId("labelGroupShow").style.display = "none";
return;
}
hideGroupSection();
- const select = document.getElementById("labelGroupSelect");
+ const select = byId("labelGroupSelect");
select.options.length = 0; // remove all options
labels.selectAll(":scope > g").each(function () {
@@ -82,19 +82,17 @@ function editLabel() {
}
function updateValues(textPath) {
- document.getElementById("labelText").value = [...textPath.querySelectorAll("tspan")]
- .map(tspan => tspan.textContent)
- .join("|");
- document.getElementById("labelStartOffset").value = parseFloat(textPath.getAttribute("startOffset"));
- document.getElementById("labelRelativeSize").value = parseFloat(textPath.getAttribute("font-size"));
- let letterSpacingSize = (textPath.getAttribute("letter-spacing")) ? textPath.getAttribute("letter-spacing") : 0;
- document.getElementById("labelLetterSpacingSize").value = parseFloat(letterSpacingSize);
+ byId("labelText").value = [...textPath.querySelectorAll("tspan")].map(tspan => tspan.textContent).join("|");
+ byId("labelStartOffset").value = parseFloat(textPath.getAttribute("startOffset"));
+ byId("labelRelativeSize").value = parseFloat(textPath.getAttribute("font-size"));
+ let letterSpacingSize = textPath.getAttribute("letter-spacing") ? textPath.getAttribute("letter-spacing") : 0;
+ byId("labelLetterSpacingSize").value = parseFloat(letterSpacingSize);
}
function drawControlPointsAndLine() {
debug.select("#controlPoints").remove();
debug.append("g").attr("id", "controlPoints").attr("transform", elSelected.attr("transform"));
- const path = document.getElementById("textPath_" + elSelected.attr("id"));
+ const path = byId("textPath_" + elSelected.attr("id"));
debug.select("#controlPoints").append("path").attr("d", path.getAttribute("d")).on("click", addInterimControlPoint);
const l = path.getTotalLength();
if (!l) return;
@@ -123,7 +121,7 @@ function editLabel() {
}
function redrawLabelPath() {
- const path = document.getElementById("textPath_" + elSelected.attr("id"));
+ const path = byId("textPath_" + elSelected.attr("id"));
lineGen.curve(d3.curveBundle.beta(1));
const points = [];
debug
@@ -194,19 +192,19 @@ function editLabel() {
function showGroupSection() {
document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "none"));
- document.getElementById("labelGroupSection").style.display = "inline-block";
+ byId("labelGroupSection").style.display = "inline-block";
}
function hideGroupSection() {
document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "inline-block"));
- document.getElementById("labelGroupSection").style.display = "none";
- document.getElementById("labelGroupInput").style.display = "none";
- document.getElementById("labelGroupInput").value = "";
- document.getElementById("labelGroupSelect").style.display = "inline-block";
+ byId("labelGroupSection").style.display = "none";
+ byId("labelGroupInput").style.display = "none";
+ byId("labelGroupInput").value = "";
+ byId("labelGroupSelect").style.display = "inline-block";
}
function changeGroup() {
- document.getElementById(this.value).appendChild(elSelected.node());
+ byId(this.value).appendChild(elSelected.node());
}
function toggleNewGroupInput() {
@@ -230,7 +228,7 @@ function editLabel() {
.replace(/ /g, "_")
.replace(/[^\w\s]/gi, "");
- if (document.getElementById(group)) {
+ if (byId(group)) {
tip("Element with this id already exists. Please provide a unique name", false, "error");
return;
}
@@ -243,22 +241,22 @@ function editLabel() {
// just rename if only 1 element left
const oldGroup = elSelected.node().parentNode;
if (oldGroup !== "states" && oldGroup !== "addedLabels" && oldGroup.childElementCount === 1) {
- document.getElementById("labelGroupSelect").selectedOptions[0].remove();
- document.getElementById("labelGroupSelect").options.add(new Option(group, group, false, true));
+ byId("labelGroupSelect").selectedOptions[0].remove();
+ byId("labelGroupSelect").options.add(new Option(group, group, false, true));
oldGroup.id = group;
toggleNewGroupInput();
- document.getElementById("labelGroupInput").value = "";
+ byId("labelGroupInput").value = "";
return;
}
const newGroup = elSelected.node().parentNode.cloneNode(false);
- document.getElementById("labels").appendChild(newGroup);
+ byId("labels").appendChild(newGroup);
newGroup.id = group;
- document.getElementById("labelGroupSelect").options.add(new Option(group, group, false, true));
- document.getElementById(group).appendChild(elSelected.node());
+ byId("labelGroupSelect").options.add(new Option(group, group, false, true));
+ byId(group).appendChild(elSelected.node());
toggleNewGroupInput();
- document.getElementById("labelGroupInput").value = "";
+ byId("labelGroupInput").value = "";
}
function removeLabelsGroup() {
@@ -281,7 +279,7 @@ function editLabel() {
.select("#" + group)
.selectAll("text")
.each(function () {
- document.getElementById("textPath_" + this.id).remove();
+ byId("textPath_" + this.id).remove();
this.remove();
});
if (!basic) labels.select("#" + group).remove();
@@ -295,16 +293,16 @@ function editLabel() {
function showTextSection() {
document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "none"));
- document.getElementById("labelTextSection").style.display = "inline-block";
+ byId("labelTextSection").style.display = "inline-block";
}
function hideTextSection() {
document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "inline-block"));
- document.getElementById("labelTextSection").style.display = "none";
+ byId("labelTextSection").style.display = "none";
}
function changeText() {
- const input = document.getElementById("labelText").value;
+ const input = byId("labelText").value;
const el = elSelected.select("textPath").node();
const lines = input.split("|");
@@ -329,7 +327,7 @@ function editLabel() {
const culture = pack.cells.culture[cell];
name = Names.getCulture(culture);
}
- document.getElementById("labelText").value = name;
+ byId("labelText").value = name;
changeText();
}
@@ -340,22 +338,22 @@ function editLabel() {
function showSizeSection() {
document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "none"));
- document.getElementById("labelSizeSection").style.display = "inline-block";
+ byId("labelSizeSection").style.display = "inline-block";
}
function hideSizeSection() {
document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "inline-block"));
- document.getElementById("labelSizeSection").style.display = "none";
+ byId("labelSizeSection").style.display = "none";
}
function showLetterSpacingSection() {
- document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "none"));
- document.getElementById("labelLetterSpacingSection").style.display = "inline-block";
+ document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "none"));
+ byId("labelLetterSpacingSection").style.display = "inline-block";
}
function hideLetterSpacingSection() {
- document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "inline-block"));
- document.getElementById("labelLetterSpacingSection").style.display = "none";
+ document.querySelectorAll("#labelEditor > button").forEach(el => (el.style.display = "inline-block"));
+ byId("labelLetterSpacingSection").style.display = "none";
}
function changeStartOffset() {
diff --git a/modules/ui/style.js b/modules/ui/style.js
index f742c01d..4f003bb1 100644
--- a/modules/ui/style.js
+++ b/modules/ui/style.js
@@ -18,7 +18,7 @@
}
// store some style inputs as options
-styleElements.addEventListener("change", function (ev) {
+styleElements.on("change", function (ev) {
if (ev.target.dataset.stored) lock(ev.target.dataset.stored);
});
@@ -71,7 +71,7 @@ function getColorScheme(scheme = "bright") {
}
// Toggle style sections on element select
-styleElementSelect.addEventListener("change", selectStyleElement);
+styleElementSelect.on("change", selectStyleElement);
function selectStyleElement() {
const styleElement = styleElementSelect.value;
@@ -409,7 +409,7 @@ function selectStyleElement() {
}
// Handle style inputs change
-styleGroupSelect.addEventListener("change", selectStyleElement);
+styleGroupSelect.on("change", selectStyleElement);
function getEl() {
const el = styleElementSelect.value;
@@ -418,46 +418,46 @@ function getEl() {
else return svg.select("#" + el).select("#" + g);
}
-styleFillInput.addEventListener("input", function () {
+styleFillInput.on("input", function () {
styleFillOutput.value = this.value;
getEl().attr("fill", this.value);
});
-styleStrokeInput.addEventListener("input", function () {
+styleStrokeInput.on("input", function () {
styleStrokeOutput.value = this.value;
getEl().attr("stroke", this.value);
if (styleElementSelect.value === "gridOverlay" && layerIsOn("toggleGrid")) drawGrid();
});
-styleStrokeWidthInput.addEventListener("input", e => {
+styleStrokeWidthInput.on("input", e => {
getEl().attr("stroke-width", e.target.value);
if (styleElementSelect.value === "gridOverlay" && layerIsOn("toggleGrid")) drawGrid();
});
-styleLetterSpacingInput.addEventListener("input", e => {
+styleLetterSpacingInput.on("input", e => {
getEl().attr("letter-spacing", e.target.value);
});
-styleStrokeDasharrayInput.addEventListener("input", function () {
+styleStrokeDasharrayInput.on("input", function () {
getEl().attr("stroke-dasharray", this.value);
if (styleElementSelect.value === "gridOverlay" && layerIsOn("toggleGrid")) drawGrid();
});
-styleStrokeLinecapInput.addEventListener("change", function () {
+styleStrokeLinecapInput.on("change", function () {
getEl().attr("stroke-linecap", this.value);
if (styleElementSelect.value === "gridOverlay" && layerIsOn("toggleGrid")) drawGrid();
});
-styleOpacityInput.addEventListener("input", e => {
+styleOpacityInput.on("input", e => {
getEl().attr("opacity", e.target.value);
});
-styleFilterInput.addEventListener("change", function () {
+styleFilterInput.on("change", function () {
if (styleGroupSelect.value === "ocean") return oceanLayers.attr("filter", this.value);
getEl().attr("filter", this.value);
});
-styleTextureInput.addEventListener("change", function () {
+styleTextureInput.on("change", function () {
changeTexture(this.value);
});
@@ -476,7 +476,7 @@ function updateTextureSelectValue(href) {
}
}
-styleTextureShiftX.addEventListener("input", function () {
+styleTextureShiftX.on("input", function () {
texture.attr("data-x", this.value);
texture
.select("image")
@@ -484,7 +484,7 @@ styleTextureShiftX.addEventListener("input", function () {
.attr("width", graphWidth - this.valueAsNumber);
});
-styleTextureShiftY.addEventListener("input", function () {
+styleTextureShiftY.on("input", function () {
texture.attr("data-y", this.value);
texture
.select("image")
@@ -492,17 +492,17 @@ styleTextureShiftY.addEventListener("input", function () {
.attr("height", graphHeight - this.valueAsNumber);
});
-styleClippingInput.addEventListener("change", function () {
+styleClippingInput.on("change", function () {
getEl().attr("mask", this.value);
});
-styleGridType.addEventListener("change", function () {
+styleGridType.on("change", function () {
getEl().attr("type", this.value);
if (layerIsOn("toggleGrid")) drawGrid();
calculateFriendlyGridSize();
});
-styleGridScale.addEventListener("input", function () {
+styleGridScale.on("input", function () {
getEl().attr("scale", this.value);
if (layerIsOn("toggleGrid")) drawGrid();
calculateFriendlyGridSize();
@@ -514,52 +514,52 @@ function calculateFriendlyGridSize() {
styleGridSizeFriendly.value = friendly;
}
-styleGridShiftX.addEventListener("input", function () {
+styleGridShiftX.on("input", function () {
getEl().attr("dx", this.value);
if (layerIsOn("toggleGrid")) drawGrid();
});
-styleGridShiftY.addEventListener("input", function () {
+styleGridShiftY.on("input", function () {
getEl().attr("dy", this.value);
if (layerIsOn("toggleGrid")) drawGrid();
});
-styleRescaleMarkers.addEventListener("change", function () {
+styleRescaleMarkers.on("change", function () {
markers.attr("rescale", +this.checked);
invokeActiveZooming();
});
-styleCoastlineAuto.addEventListener("change", function () {
+styleCoastlineAuto.on("change", function () {
coastline.select("#sea_island").attr("auto-filter", +this.checked);
styleFilter.style.display = this.checked ? "none" : "block";
invokeActiveZooming();
});
-styleOceanFill.addEventListener("input", function () {
+styleOceanFill.on("input", function () {
oceanLayers.select("rect").attr("fill", this.value);
styleOceanFillOutput.value = this.value;
});
-styleOceanPattern.addEventListener("change", function () {
+styleOceanPattern.on("change", function () {
byId("oceanicPattern")?.setAttribute("href", this.value);
});
-styleOceanPatternOpacity.addEventListener("input", e => {
+styleOceanPatternOpacity.on("input", e => {
byId("oceanicPattern").setAttribute("opacity", e.target.value);
});
-outlineLayers.addEventListener("change", function () {
+outlineLayers.on("change", function () {
oceanLayers.selectAll("path").remove();
oceanLayers.attr("layers", this.value);
OceanLayers();
});
-styleHeightmapScheme.addEventListener("change", function () {
+styleHeightmapScheme.on("change", function () {
getEl().attr("scheme", this.value);
drawHeightmap();
});
-openCreateHeightmapSchemeButton.addEventListener("click", function () {
+openCreateHeightmapSchemeButton.on("click", function () {
// start with current scheme
const scheme = getEl().attr("scheme");
this.dataset.stops = scheme.startsWith("#")
@@ -678,97 +678,97 @@ openCreateHeightmapSchemeButton.addEventListener("click", function () {
});
});
-styleHeightmapRenderOcean.addEventListener("change", e => {
+styleHeightmapRenderOcean.on("change", e => {
const checked = +e.target.checked;
getEl().attr("data-render", checked);
drawHeightmap();
});
-styleHeightmapTerracing.addEventListener("input", e => {
+styleHeightmapTerracing.on("input", e => {
getEl().attr("terracing", e.target.value);
drawHeightmap();
});
-styleHeightmapSkip.addEventListener("input", e => {
+styleHeightmapSkip.on("input", e => {
getEl().attr("skip", e.target.value);
drawHeightmap();
});
-styleHeightmapSimplification.addEventListener("input", e => {
+styleHeightmapSimplification.on("input", e => {
getEl().attr("relax", e.target.value);
drawHeightmap();
});
-styleHeightmapCurve.addEventListener("change", e => {
+styleHeightmapCurve.on("change", e => {
getEl().attr("curve", e.target.value);
drawHeightmap();
});
-styleReliefSet.addEventListener("change", e => {
+styleReliefSet.on("change", e => {
terrain.attr("set", e.target.value);
ReliefIcons.draw();
if (!layerIsOn("toggleRelief")) toggleRelief();
});
-styleReliefSize.addEventListener("change", e => {
+styleReliefSize.on("change", e => {
terrain.attr("size", e.target.value);
ReliefIcons.draw();
if (!layerIsOn("toggleRelief")) toggleRelief();
});
-styleReliefDensity.addEventListener("change", e => {
+styleReliefDensity.on("change", e => {
terrain.attr("density", e.target.value);
ReliefIcons.draw();
if (!layerIsOn("toggleRelief")) toggleRelief();
});
-styleTemperatureFillOpacityInput.addEventListener("input", e => {
+styleTemperatureFillOpacityInput.on("input", e => {
temperature.attr("fill-opacity", e.target.value);
});
-styleTemperatureFontSizeInput.addEventListener("input", e => {
+styleTemperatureFontSizeInput.on("input", e => {
temperature.attr("font-size", e.target.value + "px");
});
-styleTemperatureFillInput.addEventListener("input", e => {
+styleTemperatureFillInput.on("input", e => {
temperature.attr("fill", e.target.value);
styleTemperatureFillOutput.value = e.target.value;
});
-stylePopulationRuralStrokeInput.addEventListener("input", e => {
+stylePopulationRuralStrokeInput.on("input", e => {
population.select("#rural").attr("stroke", e.target.value);
stylePopulationRuralStrokeOutput.value = e.target.value;
});
-stylePopulationUrbanStrokeInput.addEventListener("input", e => {
+stylePopulationUrbanStrokeInput.on("input", e => {
population.select("#urban").attr("stroke", e.target.value);
stylePopulationUrbanStrokeOutput.value = e.target.value;
});
-styleCompassSizeInput.addEventListener("input", shiftCompass);
-styleCompassShiftX.addEventListener("input", shiftCompass);
-styleCompassShiftY.addEventListener("input", shiftCompass);
+styleCompassSizeInput.on("input", shiftCompass);
+styleCompassShiftX.on("input", shiftCompass);
+styleCompassShiftY.on("input", shiftCompass);
function shiftCompass() {
const tr = `translate(${styleCompassShiftX.value} ${styleCompassShiftY.value}) scale(${styleCompassSizeInput.value})`;
compass.select("use").attr("transform", tr);
}
-styleLegendColItems.addEventListener("input", e => {
+styleLegendColItems.on("input", e => {
legend.select("#legendBox").attr("data-columns", e.target.value);
redrawLegend();
});
-styleLegendBack.addEventListener("input", e => {
+styleLegendBack.on("input", e => {
styleLegendBackOutput.value = e.target.value;
legend.select("#legendBox").attr("fill", e.target.value);
});
-styleLegendOpacity.addEventListener("input", e => {
+styleLegendOpacity.on("input", e => {
legend.select("#legendBox").attr("fill-opacity", e.target.value);
});
-styleSelectFont.addEventListener("change", changeFont);
+styleSelectFont.on("change", changeFont);
function changeFont() {
const family = styleSelectFont.value;
getEl().attr("font-family", family);
@@ -776,11 +776,11 @@ function changeFont() {
if (styleElementSelect.value === "legend") redrawLegend();
}
-styleShadowInput.addEventListener("input", function () {
+styleShadowInput.on("input", function () {
getEl().style("text-shadow", this.value);
});
-styleFontAdd.addEventListener("click", function () {
+styleFontAdd.on("click", function () {
addFontNameInput.value = "";
addFontURLInput.value = "";
@@ -817,20 +817,20 @@ styleFontAdd.addEventListener("click", function () {
});
});
-addFontMethod.addEventListener("change", function () {
+addFontMethod.on("change", function () {
addFontURLInput.style.display = this.value === "fontURL" ? "inline" : "none";
});
-styleFontSize.addEventListener("change", function () {
+styleFontSize.on("change", function () {
changeFontSize(getEl(), +this.value);
});
-styleFontPlus.addEventListener("click", function () {
+styleFontPlus.on("click", function () {
const current = +styleFontSize.value || 12;
changeFontSize(getEl(), Math.min(current + 1, 999));
});
-styleFontMinus.addEventListener("click", function () {
+styleFontMinus.on("click", function () {
const current = +styleFontSize.value || 12;
changeFontSize(getEl(), Math.max(current - 1, 1));
});
@@ -853,16 +853,16 @@ function changeFontSize(el, size) {
if (styleElementSelect.value === "legend") redrawLegend();
}
-styleRadiusInput.addEventListener("change", function () {
+styleRadiusInput.on("change", function () {
changeRadius(+this.value);
});
-styleRadiusPlus.addEventListener("click", function () {
+styleRadiusPlus.on("click", function () {
const size = Math.max(rn(getEl().attr("size") * 1.1, 2), 0.2);
changeRadius(size);
});
-styleRadiusMinus.addEventListener("click", function () {
+styleRadiusMinus.on("click", function () {
const size = Math.max(rn(getEl().attr("size") * 0.9, 2), 0.2);
changeRadius(size);
});
@@ -884,16 +884,16 @@ function changeRadius(size, group) {
changeIconSize(size * 2, g); // change also anchor icons
}
-styleIconSizeInput.addEventListener("change", function () {
+styleIconSizeInput.on("change", function () {
changeIconSize(+this.value);
});
-styleIconSizePlus.addEventListener("click", function () {
+styleIconSizePlus.on("click", function () {
const size = Math.max(rn(getEl().attr("size") * 1.1, 2), 0.2);
changeIconSize(size);
});
-styleIconSizeMinus.addEventListener("click", function () {
+styleIconSizeMinus.on("click", function () {
const size = Math.max(rn(getEl().attr("size") * 0.9, 2), 0.2);
changeIconSize(size);
});
@@ -918,34 +918,34 @@ function changeIconSize(size, group) {
styleIconSizeInput.value = size;
}
-styleStatesBodyOpacity.addEventListener("input", e => {
+styleStatesBodyOpacity.on("input", e => {
statesBody.attr("opacity", e.target.value);
});
-styleStatesBodyFilter.addEventListener("change", function () {
+styleStatesBodyFilter.on("change", function () {
statesBody.attr("filter", this.value);
});
-styleStatesHaloWidth.addEventListener("input", e => {
+styleStatesHaloWidth.on("input", e => {
const value = e.target.value;
statesHalo.attr("data-width", value).attr("stroke-width", value);
});
-styleStatesHaloOpacity.addEventListener("input", e => {
+styleStatesHaloOpacity.on("input", e => {
statesHalo.attr("opacity", e.target.value);
});
-styleStatesHaloBlur.addEventListener("input", e => {
+styleStatesHaloBlur.on("input", e => {
const value = Number(e.target.value);
const blur = value > 0 ? `blur(${value}px)` : null;
statesHalo.attr("filter", blur);
});
-styleArmiesFillOpacity.addEventListener("input", e => {
+styleArmiesFillOpacity.on("input", e => {
armies.attr("fill-opacity", e.target.value);
});
-styleArmiesSize.addEventListener("input", e => {
+styleArmiesSize.on("input", e => {
const value = Number(e.target.value);
armies.attr("box-size", value).attr("font-size", value * 2);
@@ -956,17 +956,17 @@ styleArmiesSize.addEventListener("input", e => {
});
});
-emblemsStateSizeInput.addEventListener("change", e => {
+emblemsStateSizeInput.on("change", e => {
emblems.select("#stateEmblems").attr("data-size", e.target.value);
drawEmblems();
});
-emblemsProvinceSizeInput.addEventListener("change", e => {
+emblemsProvinceSizeInput.on("change", e => {
emblems.select("#provinceEmblems").attr("data-size", e.target.value);
drawEmblems();
});
-emblemsBurgSizeInput.addEventListener("change", e => {
+emblemsBurgSizeInput.on("change", e => {
emblems.select("#burgEmblems").attr("data-size", e.target.value);
drawEmblems();
});
@@ -1021,7 +1021,7 @@ Object.keys(vignettePresets).forEach(preset => {
styleVignettePreset.options.add(new Option(preset, preset, false, false));
});
-styleVignettePreset.addEventListener("change", function () {
+styleVignettePreset.on("change", function () {
const attributes = JSON.parse(vignettePresets[this.value]);
for (const selector in attributes) {
@@ -1053,35 +1053,35 @@ styleVignettePreset.addEventListener("change", function () {
}
});
-styleVignetteX.addEventListener("input", e => {
+styleVignetteX.on("input", e => {
byId("vignette-rect")?.setAttribute("x", `${e.target.value}%`);
});
-styleVignetteWidth.addEventListener("input", e => {
+styleVignetteWidth.on("input", e => {
byId("vignette-rect")?.setAttribute("width", `${e.target.value}%`);
});
-styleVignetteY.addEventListener("input", e => {
+styleVignetteY.on("input", e => {
byId("vignette-rect")?.setAttribute("y", `${e.target.value}%`);
});
-styleVignetteHeight.addEventListener("input", e => {
+styleVignetteHeight.on("input", e => {
byId("vignette-rect")?.setAttribute("height", `${e.target.value}%`);
});
-styleVignetteRx.addEventListener("input", e => {
+styleVignetteRx.on("input", e => {
byId("vignette-rect")?.setAttribute("rx", `${e.target.value}%`);
});
-styleVignetteRy.addEventListener("input", e => {
+styleVignetteRy.on("input", e => {
byId("vignette-rect")?.setAttribute("ry", `${e.target.value}%`);
});
-styleVignetteBlur.addEventListener("input", e => {
+styleVignetteBlur.on("input", e => {
byId("vignette-rect")?.setAttribute("filter", `blur(${e.target.value}px)`);
});
-styleScaleBar.addEventListener("input", function (event) {
+styleScaleBar.on("input", function (event) {
const scaleBarBack = scaleBar.select("#scaleBarBack");
if (!scaleBarBack.size()) return;
@@ -1161,7 +1161,7 @@ function updateElements() {
}
// GLOBAL FILTERS
-mapFilters.addEventListener("click", applyMapFilter);
+mapFilters.on("click", applyMapFilter);
function applyMapFilter(event) {
if (event.target.tagName !== "BUTTON") return;
const button = event.target;