Slider-input web component (#1109)

* feat: slider-input web component

* feat: slider-input web component - Brush size

* feat: slider-input - statesGrowthRate

* feat: slider-input - units editor

* feat: slider-input - dissalow invalid numbers

* chore: pump version to v1.99.05

* chore: pump version to v1.99.05

---------

Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
This commit is contained in:
Azgaar 2024-08-22 13:35:36 +02:00 committed by GitHub
parent da8c4f1e4a
commit d4aef4920c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 546 additions and 798 deletions

View file

@ -138,7 +138,7 @@
}
</style>
<link rel="preload" href="index.css?v=1.99.00" as="style" onload="this.onload=null; this.rel='stylesheet'" />
<link rel="preload" href="index.css?v=1.99.05" as="style" onload="this.onload=null; this.rel='stylesheet'" />
<link rel="preload" href="icons.css" as="style" onload="this.onload=null; this.rel='stylesheet'" />
<link rel="preload" href="libs/jquery-ui.css" as="style" onload="this.onload=null; this.rel='stylesheet'" />
</head>
@ -836,27 +836,24 @@
</td>
</tr>
<tr data-tip="Terracing rate. Set to 0 (toggle off) to improve performance">
<tr data-tip="Terracing power. Set to 0 to toggle off">
<td>Terracing</td>
<td>
<input id="styleHeightmapTerracingInput" type="range" min="0" max="20" step="1" />
<output id="styleHeightmapTerracingOutput">0</output>
<slider-input id="styleHeightmapTerracing" min="0" max="20" step="1"></slider-input>
</td>
</tr>
<tr data-tip="Layers reduction rate. Increase to improve performance">
<td>Reduce layers</td>
<td>
<input id="styleHeightmapSkipInput" type="range" min="0" max="10" step="1" value="5" />
<output id="styleHeightmapSkipOutput">5</output>
<slider-input id="styleHeightmapSkip" min="0" max="10" step="1"></slider-input>
</td>
</tr>
<tr data-tip="Line simplification rate. Increase to slightly improve performance">
<td>Simplify line</td>
<td>
<input id="styleHeightmapSimplificationInput" type="range" min="0" max="10" step="1" value="0" />
<output id="styleHeightmapSimplificationOutput">0</output>
<slider-input id="styleHeightmapSimplification" min="0" max="10" step="1"></slider-input>
</td>
</tr>
@ -874,7 +871,7 @@
<tr data-tip="Select color scheme for the element">
<td>Color scheme</td>
<td>
<select id="styleHeightmapScheme"></select>
<select id="styleHeightmapScheme" style="width: 86%"></select>
<button
id="openCreateHeightmapSchemeButton"
data-tip="Click to add a custom heightmap color scheme"
@ -889,8 +886,7 @@
<tr data-tip="Set opacity. 0: transparent, 1: solid">
<td>Opacity</td>
<td>
<input id="styleOpacityInput" type="range" min="0" max="1" step="0.01" value=".4" />
<output id="styleOpacityOutput">0.4</output>
<slider-input id="styleOpacityInput" min="0" max="1" step="0.01"></slider-input>
</td>
</tr>
</tbody>
@ -899,8 +895,7 @@
<tr data-tip="Set maximum number of items in one column">
<td>Column items</td>
<td>
<input id="styleLegendColItems" type="range" min="1" max="30" step="1" value="8" />
<output id="styleLegendColItemsOutput">8</output>
<slider-input id="styleLegendColItems" min="1" max="30" step="1"></slider-input>
</td>
</tr>
@ -915,8 +910,7 @@
<tr data-tip="Set background opacity">
<td>Opacity</td>
<td>
<input id="styleLegendOpacity" type="range" min="0" max="1" step="0.01" value="1" />
<output id="styleLegendOpacityOutput">1</output>
<slider-input id="styleLegendOpacity" min="0" max="1" step=".01"></slider-input>
</td>
</tr>
</tbody>
@ -943,7 +937,7 @@
<tr data-tip="Select texture image. Big textures can highly affect performance">
<td>Image</td>
<td>
<select id="styleTextureInput">
<select id="styleTextureInput" style="width: 86%">
<option value="">No texture</option>
<option value="./images/textures/folded-paper-big.jpg">Folded paper big</option>
<option value="./images/textures/folded-paper-small.jpg">Folded paper small</option>
@ -1027,8 +1021,7 @@
<tr data-tip="Set vignette blue propagation (in pixels)">
<td>Blur</td>
<td>
<input id="styleVignetteBlur" type="range" min="0" max="400" step="1" value="50" />
<output id="styleVignetteBlurOutput">50</output>px
<slider-input id="styleVignetteBlur" min="0" max="400" step="1"></slider-input>
</td>
</tr>
</tbody>
@ -1053,8 +1046,7 @@
<tr data-tip="Set ocean pattern opacity">
<td>Pattern opacity</td>
<td>
<input id="styleOceanPatternOpacity" type="range" min="0" max="1" step=".01" value=".2" />
<output id="styleOceanPatternOpacityOutput">0.2</output>
<slider-input id="styleOceanPatternOpacity" min="0" max="1" step=".01"></slider-input>
</td>
</tr>
@ -1118,8 +1110,7 @@
<tr data-tip="Set wind (compass) rose size">
<td>Size</td>
<td>
<input id="styleCompassSizeInput" type="range" min=".02" max="1" step=".01" value=".25" />
<output id="styleCompassSizeOutput">.25</output>
<slider-input id="styleCompassSizeInput" min=".02" max="1" step=".01"></slider-input>
</td>
</tr>
@ -1147,8 +1138,7 @@
<tr data-tip="Define the size of relief icons. All relief icons will be regenerated">
<td>Size</td>
<td>
<input id="styleReliefSizeInput" data-stored="reliefSize" type="range" min=".2" max="4" step=".01" />
<output id="styleReliefSizeOutput"></output>
<slider-input id="styleReliefSize" min=".2" max="4" step=".01"></slider-input>
</td>
</tr>
@ -1157,23 +1147,14 @@
>
<td>Density</td>
<td>
<input
id="styleReliefDensityInput"
data-stored="reliefDensity"
type="range"
min=".3"
max=".8"
step=".01"
value=".4"
/>
<output id="styleReliefDensityOutput">.4</output>
<slider-input id="styleReliefDensity" min=".3" max=".8" step=".01"></slider-input>
</td>
</tr>
</tbody>
<tbody id="styleFill">
<tr data-tip="Set fill color">
<td>Fill</td>
<td>Fill color</td>
<td>
<input id="styleFillInput" type="color" value="#5E4FA2" />
<output id="styleFillOutput">#5E4FA2</output>
@ -1183,7 +1164,7 @@
<tbody id="styleStroke">
<tr data-tip="Set stroke color">
<td>Stroke</td>
<td>Stroke color</td>
<td>
<input id="styleStrokeInput" type="color" value="#5E4FA2" />
<output id="styleStrokeOutput">#5E4FA2</output>
@ -1195,8 +1176,7 @@
<tr data-tip="Set stroke width">
<td>Stroke width</td>
<td>
<input id="styleStrokeWidthInput" type="range" min="0" max="5" step=".01" value="1" />
<output id="styleStrokeWidthOutput">1</output>
<slider-input id="styleStrokeWidthInput" min="0" max="5" step=".01"></slider-input>
</td>
</tr>
</tbody>
@ -1229,7 +1209,7 @@
<tr data-tip="Select font">
<td>Font</td>
<td>
<select id="styleSelectFont"></select>
<select id="styleSelectFont" style="width: 85%"></select>
<button id="styleFontAdd" data-tip="Add a font" class="icon-plus sideButton"></button>
</td>
</tr>
@ -1241,7 +1221,7 @@
<td>
<button id="styleFontPlus" data-tip="Increase font" class="whiteButton">+</button>
<button id="styleFontMinus" data-tip="Descrease font" class="whiteButton">-</button>
<input id="styleFontSize" type="number" min=".5" max="100" step=".1" value="14" />
<input id="styleFontSize" type="number" min=".5" max="100" step=".1" />
</td>
</tr>
</tbody>
@ -1281,16 +1261,14 @@
<tr data-tip="Define transparency of temperature leyer. Set to 0 to make it fully transparent">
<td>Fill opacity</td>
<td>
<input id="styleTemperatureFillOpacityInput" type="range" min="0" max="1" step=".01" value=".3" />
<output id="styleTemperatureFillOpacityOutput">0.3</output>
<slider-input id="styleTemperatureFillOpacityInput" min="0" max="1" step=".01"></slider-input>
</td>
</tr>
<tr data-tip="Set labels size">
<td>Labels size</td>
<td>
<input id="styleTemperatureFontSizeInput" type="range" min="0" max="30" value="8" />
<output id="styleTemperatureFontSizeOutput">8</output>
<slider-input id="styleTemperatureFontSizeInput" min="0" max="30" step="1"></slider-input>
</td>
</tr>
@ -1307,8 +1285,7 @@
<tr data-tip="Set states fill opacity. 0: invisible, 1: solid">
<td>Body opacity</td>
<td>
<input id="styleStatesBodyOpacity" type="range" min="0" max="1" step="0.01" />
<output id="styleStatesBodyOpacityOutput"></output>
<slider-input id="styleStatesBodyOpacity" min="0" max="1" step="0.01"></slider-input>
</td>
</tr>
@ -1326,24 +1303,21 @@
<tr data-tip="Set states halo effect width">
<td>Halo width</td>
<td>
<input id="styleStatesHaloWidth" type="range" min="0" max="30" step=".1" value="10" />
<output id="styleStatesHaloWidthOutput">10</output>
<slider-input id="styleStatesHaloWidth" min="0" max="30" step="0.1"></slider-input>
</td>
</tr>
<tr data-tip="Set states halo effect opacity. 0: invisible, 1: solid">
<td>Halo opacity</td>
<td>
<input id="styleStatesHaloOpacity" type="range" min="0" max="1" step="0.01" value="1" />
<output id="styleStatesHaloOpacityOutput">1</output>
<slider-input id="styleStatesHaloOpacity" min="0" max="1" step="0.01"></slider-input>
</td>
</tr>
<tr data-tip="Select halo effect power (blur). Set to 0 to make it solid line" style="margin-bottom: 1em">
<td>Halo blur</td>
<td>
<input id="styleStatesHaloBlur" type="range" min="0" max="10" step="0.01" value="4" />
<output id="styleStatesHaloBlurOutput">4</output>
<slider-input id="styleStatesHaloBlur" min="0" max="10" step="0.01"></slider-input>
</td>
</tr>
</tbody>
@ -1352,22 +1326,20 @@
<tr data-tip="Set fill transparency. Set to 0 to make it fully transparent">
<td>Fill opacity</td>
<td>
<input id="styleArmiesFillOpacity" type="range" min="0" max="1" step=".01" value="1" />
<output id="styleArmiesFillOpacityOutput">1</output>
<slider-input id="styleArmiesFillOpacity" min="0" max="1" step=".01"></slider-input>
</td>
</tr>
<tr data-tip="Set regiment box size. All regiments will be redrawn on change (position will defaulted)">
<td>Box Size</td>
<td>
<input id="styleArmiesSize" type="range" min="1" max="10" step=".1" value="3" />
<output id="styleArmiesSizeOutput">3</output>
<slider-input id="styleArmiesSize" min="0" max="10" step=".1"></slider-input>
</td>
</tr>
</tbody>
<tbody id="styleEmblems">
<tr data-tip="Set state emblems size multiplier">
<td>State Size</td>
<td>State size</td>
<td>
<input
id="emblemsStateSizeInput"
@ -1382,7 +1354,7 @@
</tr>
<tr data-tip="Set province emblems size multiplier">
<td>Province Size</td>
<td>Province size</td>
<td>
<input
id="emblemsProvinceSizeInput"
@ -1397,7 +1369,7 @@
</tr>
<tr data-tip="Set burg emblems size multiplier">
<td>Burg Size</td>
<td>Burg size</td>
<td>
<input
id="emblemsBurgSizeInput"
@ -1495,15 +1467,14 @@
<tr data-tip="Set background opacity. 0: transparent, 1: solid">
<td>Back opacity</td>
<td>
<input id="styleScaleBarBackgroundOpacityInput" type="range" min="0" max="1" step="0.01" />
<output id="styleScaleBarBackgroundOpacityOutput"></output>
<slider-input id="styleScaleBarBackgroundOpacity" min="0" max="1" step=".01"></slider-input>
</td>
</tr>
<tr data-tip="Set background fill color">
<td>Back fill</td>
<td>
<input id="styleScaleBarBackgroundFillInput" type="color" />
<input id="styleScaleBarBackgroundFill" type="color" />
<output id="styleScaleBarBackgroundFillOutput"></output>
</td>
</tr>
@ -1511,7 +1482,7 @@
<tr data-tip="Set background stroke color and width">
<td>Back stroke</td>
<td>
<input id="styleScaleBarBackgroundStrokeInput" type="color" />
<input id="styleScaleBarBackgroundStroke" type="color" />
<output id="styleScaleBarBackgroundStrokeOutput"></output>
<span>Width </span>
@ -1712,53 +1683,41 @@
<tr data-tip="Define how many states and capitals should be generated">
<td>
<i data-locked="0" id="lock_regions" class="icon-lock-open"></i>
<i data-locked="0" id="lock_statesNumber" class="icon-lock-open"></i>
</td>
<td>States number</td>
<td>
<input id="regionsInput" data-stored="regions" type="range" min="0" max="99" value="13" />
</td>
<td>
<input id="regionsOutput" data-stored="regions" type="number" min="0" max="999" value="13" />
<td colspan="2">
<slider-input id="statesNumber" data-stored="statesNumber" min="0" max="100"></slider-input>
</td>
</tr>
<tr data-tip="Define burgs percentage to form a separate province">
<td>
<i data-locked="0" id="lock_provinces" class="icon-lock-open"></i>
<i data-locked="0" id="lock_provincesRatio" class="icon-lock-open"></i>
</td>
<td>Provinces ratio</td>
<td>
<input id="provincesInput" data-stored="provinces" type="range" min="0" max="100" value="30" />
</td>
<td>
<input id="provincesOutput" data-stored="provinces" type="number" min="0" max="100" value="30" />
<td colspan="2">
<slider-input id="provincesRatio" data-stored="provincesRatio" min="0" max="100"></slider-input>
</td>
</tr>
<tr data-tip="Define how much states and cultures can vary in size. Defines expansionism value">
<td>
<i data-locked="0" id="lock_power" class="icon-lock-open"></i>
<i data-locked="0" id="lock_sizeVariety" class="icon-lock-open"></i>
</td>
<td>Size variety</td>
<td>
<input id="powerInput" data-stored="power" type="range" min="0" max="10" step=".2" value="5" />
</td>
<td>
<input id="powerOutput" data-stored="power" type="number" min="0" max="10" step=".1" value="5" />
<td colspan="2">
<slider-input id="sizeVariety" data-stored="sizeVariety" min="0" max="10" step=".1"></slider-input>
</td>
</tr>
<tr data-tip="Set state and cultures growth rate. Defines how many lands will stay neutral">
<td>
<i data-locked="0" id="lock_neutral" class="icon-lock-open"></i>
<i data-locked="0" id="lock_growthRate" class="icon-lock-open"></i>
</td>
<td>Growth rate</td>
<td>
<input id="neutralInput" data-stored="neutral" type="range" min=".1" max="2" step=".1" value="1" />
</td>
<td>
<input id="neutralOutput" data-stored="neutral" type="number" min=".1" max="2" step=".1" value="1" />
<td colspan="2">
<slider-input id="growthRate" data-stored="growthRate" min=".1" max="2" step=".1"></slider-input>
</td>
</tr>
@ -1779,14 +1738,17 @@
data-tip="Define how many organized religions and cults should be generated. Cultures will have their own folk religions in any case"
>
<td>
<i data-locked="0" id="lock_religions" class="icon-lock-open"></i>
<i data-locked="0" id="lock_religionsNumber" class="icon-lock-open"></i>
</td>
<td>Religions number</td>
<td>
<input id="religionsInput" data-stored="religions" type="range" min="0" max="50" step="1" value="15" />
</td>
<td>
<output id="religionsOutput" data-stored="religions" value="auto"></output>
<td colspan="2">
<slider-input
id="religionsNumber"
data-stored="religionsNumber"
min="0"
max="50"
step="1"
></slider-input>
</td>
</tr>
@ -1815,22 +1777,16 @@
>
<td></td>
<td>Interface size</td>
<td>
<input id="uiSizeInput" data-stored="uiSize" type="range" min=".6" max="3" step=".1" />
</td>
<td>
<input id="uiSizeOutput" data-stored="uiSize" type="number" min=".6" max="3" step=".1" />
<td colspan="2">
<slider-input id="uiSize" data-stored="uiSize" min=".6" max="3" step=".1"></slider-input>
</td>
</tr>
<tr data-tip="Set tooltip size">
<td></td>
<td>Tooltip size</td>
<td>
<input id="tooltipSizeInput" data-stored="tooltipSize" type="range" min="4" max="32" value="14" />
</td>
<td>
<input id="tooltipSizeOutput" data-stored="tooltipSize" type="number" min="0" max="256" value="14" />
<td colspan="2">
<slider-input id="tooltipSize" data-stored="tooltipSize" min="1" max="32" value="14"></slider-input>
</td>
</tr>
@ -1850,11 +1806,8 @@
<tr data-tip="Set dialog and tool windows transparency">
<td></td>
<td>Transparency</td>
<td>
<input id="transparencyInput" data-stored="transparency" type="range" min="0" max="100" />
</td>
<td>
<input id="transparencyOutput" data-stored="transparency" type="number" min="0" max="100" />
<td colspan="2">
<slider-input id="transparencyInput" data-stored="transparency" min="0" max="100"></slider-input>
</td>
</tr>
@ -4123,72 +4076,24 @@
</div>
<div id="brushesSliders" style="display: none">
<div data-tip="Change brush size" data-shortcut="+ (increase), (decrease)" style="padding-bottom: 1px">
<div style="width: 3.2em; display: inline-block"><i>Radius:</i></div>
<input
id="brushRadius"
oninput="tip('Brush radius: '+this.value); brushRadiusNumber.value = this.value"
type="range"
min="1"
max="99"
value="25"
style="width: 13em"
/>
<input
id="brushRadiusNumber"
oninput="tip('Brush radius: '+this.value); brushRadius.value = this.value"
type="number"
min="1"
max="99"
value="25"
style="border: 1px solid #d4d4d4"
/>
<div data-tip="Change brush size. Shortcut: + to increase; to decrease">
<slider-input id="heightmapBrushRadius" min="5" max="100" value="25">
<div style="width: 3.5em">Radius:</div>
</slider-input>
</div>
<div data-tip="Set the brush power">
<div style="width: 3.2em; display: inline-block"><i>Power:</i></div>
<input
id="brushPower"
oninput="tip('Brush power: '+this.value); brushPowerNumber.value = this.value"
type="range"
min="1"
max="10"
value="5"
style="width: 13em"
/>
<input
id="brushPowerNumber"
oninput="tip('Brush power: '+this.value); brushPower.value = this.value"
type="number"
min="1"
max="10"
value="5"
style="border: 1px solid #d4d4d4"
/>
<div data-tip="Change brush power">
<slider-input id="heightmapBrushPower" min="1" max="10" value="5">
<div style="width: 3.5em">Power:</div>
</slider-input>
</div>
</div>
<div id="lineSlider" style="display: none">
<div data-tip="Set change power">
<div style="width: 3.2em; display: inline-block"><i>Power:</i></div>
<input
id="linePower"
oninput="tip('Line power: '+this.value); linePowerNumber.value = this.value"
type="range"
min="-100"
max="100"
value="30"
style="width: 13em"
/>
<input
id="linePowerNumber"
oninput="tip('Line power: '+this.value); linePower.value = this.value"
type="number"
min="-100"
max="100"
value="30"
style="border: 1px solid #d4d4d4"
/>
<div data-tip="Change tool power. Shortcut: + to increase; to decrease">
<slider-input id="heightmapLinePower" min="-100" max="100" value="30">
<div style="width: 3.5em">Power:</div>
</slider-input>
</div>
</div>
@ -4454,26 +4359,10 @@
class="icon-brush"
></button>
<div id="biomesManuallyButtons" style="display: none">
<label data-tip="Change brush size" data-shortcut="+ (increase), (decrease)" class="italic"
>Brush radius:
<input
id="biomesManuallyBrush"
oninput="tip('Brush radius: '+this.value); biomesManuallyBrushNumber.value = this.value"
type="range"
min="5"
max="99"
value="15"
style="width: 4em"
/>
<input
id="biomesManuallyBrushNumber"
oninput="tip('Brush radius: '+this.value); biomesManuallyBrush.value = this.value"
type="number"
min="5"
max="99"
value="15"
/> </label
><br />
<div data-tip="Change brush size. Shortcut: + to increase; to decrease" style="margin-block: 0.3em">
Brush size:
<slider-input id="biomesBrush" min="5" max="100" value="15"></slider-input>
</div>
<button id="biomesManuallyApply" data-tip="Apply current assignment" class="icon-check"></button>
<button id="biomesManuallyCancel" data-tip="Cancel assignment" class="icon-cancel"></button>
</div>
@ -4698,26 +4587,10 @@
<button id="provincesManually" data-tip="Manually re-assign provinces" class="icon-brush"></button>
<div id="provincesManuallyButtons" style="display: none">
<label data-tip="Change brush size" data-shortcut="+ (increase), (decrease)" class="italic"
>Brush size:
<input
id="provincesManuallyBrush"
oninput="tip('Brush size: '+this.value); provincesManuallyBrushNumber.value = this.value"
type="range"
min="5"
max="99"
value="8"
style="width: 5em"
/>
<input
id="provincesManuallyBrushNumber"
oninput="tip('Brush size: '+this.value); provincesManuallyBrush.value = this.value"
type="number"
min="5"
max="99"
value="8"
/> </label
><br />
<div data-tip="Change brush size. Shortcut: + to increase; to decrease" style="margin-block: 0.3em">
Brush size:
<slider-input id="provincesBrush" min="5" max="100" value="8"></slider-input>
</div>
<button id="provincesManuallyApply" data-tip="Apply assignment" class="icon-check"></button>
<button id="provincesManuallyCancel" data-tip="Cancel assignment" class="icon-cancel"></button>
</div>
@ -5006,29 +4879,10 @@
<button id="zonesManually" data-tip="Re-assign zones" class="icon-brush"></button>
<div id="zonesManuallyButtons" style="display: none">
<div>
<label data-tip="Change brush size" data-shortcut="+ (increase), (decrease)" class="italic"
>Brush:
<input
id="zonesBrush"
oninput="tip('Brush size: '+this.value); zonesBrushNumber.value = this.value"
type="range"
min="5"
max="50"
value="7"
style="width: 9em"
/>
<input
id="zonesBrushNumber"
oninput="tip('Brush size: '+this.value); zonesBrush.value = this.value"
type="number"
min="5"
max="50"
value="7"
/>
</label>
<div data-tip="Change brush size. Shortcut: + to increase; to decrease" style="margin-block: 0.3em">
Brush size:
<slider-input id="zonesBrush" min="5" max="100" value="8"></slider-input>
</div>
<div>
<input id="zonesBrushLandOnly" class="checkbox" type="checkbox" checked />
<label for="zonesBrushLandOnly" class="checkbox-label"><i>Change land only</i></label>
@ -5253,11 +5107,11 @@
<div id="unitsBody" style="margin-left: 1.1em">
<div class="unitsHeader" style="margin-top: 0.4em">
<span class="icon-map-signs"></span>
<div>Distance:</div>
<label>Distance:</label>
</div>
<div data-tip="Select a distance unit or provide a custom name">
<div>Distance unit:</div>
<label>Distance unit:</label>
<select id="distanceUnitInput" data-stored="distanceUnit">
<option value="mi" selected>Mile (mi)</option>
<option value="km">Kilometer (km)</option>
@ -5269,34 +5123,25 @@
</select>
</div>
<i data-locked="0" id="lock_distanceScale" class="icon-lock-open"></i>
<div data-tip="Select how many distance units are in one pixel">
<div>1 map pixel =</div>
<input id="distanceScaleOutput" type="range" min=".01" max="20" step=".1" value="3" />
<input
id="distanceScaleInput"
data-stored="distanceScale"
type="number"
min=".01"
max="100"
step=".01"
value="3"
data-value="3"
/>
<i data-locked="0" id="lock_distanceScale" class="icon-lock-open"></i>
<slider-input id="distanceScaleInput" data-stored="distanceScale" min=".01" max="20" step=".1" value="3">
<label>1 map pixel:</label>
</slider-input>
</div>
<div data-tip='Area unit name, type "square" to add ² to the distance unit'>
<div>Area unit:</div>
<label>Area unit:</label>
<input id="areaUnit" data-stored="areaUnit" type="text" value="square" />
</div>
<div class="unitsHeader">
<span class="icon-signal"></span>
<div>Altitude:</div>
<label>Altitude:</label>
</div>
<div data-tip="Select an altitude unit or provide a custom name">
<div>Height unit:</div>
<label>Height unit:</label>
<select id="heightUnit" data-stored="heightUnit">
<option value="ft" selected>Feet (ft)</option>
<option value="m">Meters (m)</option>
@ -5308,26 +5153,25 @@
<div
data-tip="Set height exponent, i.e. a value for altitude change sharpness. Altitude affects temperature and hence biomes"
>
<div>Exponent:</div>
<input id="heightExponentOutput" type="range" min="1.5" max="2.2" value="2" step=".01" />
<input
<slider-input
id="heightExponentInput"
data-stored="heightExponent"
type="number"
min="1.5"
max="2.2"
value="2"
step=".01"
/>
value="2"
>
<label>Exponent:</label>
</slider-input>
</div>
<div class="unitsHeader" data-tip="Select Temperature scale">
<span class="icon-temperature-high"></span>
<div>Temperature:</div>
<label>Temperature:</label>
</div>
<div>
<div>Temperature scale:</div>
<label>Temperature scale:</label>
<select id="temperatureScale" data-stored="temperatureScale">
<option value="°C" selected>degree Celsius (°C)</option>
<option value="°F">degree Fahrenheit (°F)</option>
@ -5342,73 +5186,32 @@
<div class="unitsHeader">
<span class="icon-male"></span>
<div>Population:</div>
<label>Population:</label>
</div>
<div data-tip="Set how many people are in one population point">
<div>1 population point =</div>
<input
id="populationRateOutput"
data-stored="populationRate"
type="range"
min="10"
max="9990"
step="10"
value="1000"
/>
<input
<slider-input
id="populationRateInput"
data-stored="populationRate"
type="number"
min="10"
max="9990"
max="10000"
step="10"
value="1000"
/>
>
<label>1 population point:</label>
</slider-input>
</div>
<div data-tip="Set urbanization rate: burgs population relative to all population">
<div>Urbanization rate:</div>
<input
id="urbanizationOutput"
data-stored="urbanization"
type="range"
min=".01"
max="5"
step=".01"
value="1"
/>
<input
id="urbanizationInput"
data-stored="urbanization"
type="number"
min=".01"
max="5"
step=".01"
value="1"
/>
<slider-input id="urbanizationInput" data-stored="urbanization" min=".01" max="5" step=".01" value="1">
<label>Urbanization rate:</label>
</slider-input>
</div>
<div data-tip="Set urban density: average population per building in Medieval Fantasy City Generator">
<div>Urban density:</div>
<input
id="urbanDensityOutput"
data-stored="urbanDensity"
type="range"
min="1"
max="200"
step="1"
value="10"
/>
<input
id="urbanDensityInput"
data-stored="urbanDensity"
type="number"
min="1"
max="200"
step="1"
value="10"
/>
<slider-input id="urbanDensityInput" data-stored="urbanDensity" min="1" max="200" step="1" value="10">
<label>Urban density:</label>
</slider-input>
</div>
</div>
@ -8154,6 +7957,9 @@
</defs>
</svg>
<script src="components/fill-box.js"></script>
<script src="components/slider-input.js"></script>
<script src="libs/jquery-3.1.1.min.js"></script>
<script src="libs/jquery-ui.min.js"></script>
<script src="versioning.js"></script>
@ -8172,7 +7978,7 @@
<script src="utils/nodeUtils.js?v=1.99.00"></script>
<script src="utils/numberUtils.js?v=1.99.00"></script>
<script src="utils/polyfills.js?v=1.99.00"></script>
<script src="utils/probabilityUtils.js?v=1.99.00"></script>
<script src="utils/probabilityUtils.js?v=1.99.05"></script>
<script src="utils/stringUtils.js?v=1.99.00"></script>
<script src="utils/languageUtils.js?v=1.99.00"></script>
<script src="utils/unitUtils.js?v=1.99.00"></script>
@ -8183,15 +7989,15 @@
<script src="config/precreated-heightmaps.js"></script>
<script src="modules/heightmap-generator.js?v=1.99.00"></script>
<script src="modules/ocean-layers.js?v=1.99.00"></script>
<script src="modules/river-generator.js?v=1.99.00"></script>
<script src="modules/river-generator.js?v=1.99.05"></script>
<script src="modules/lakes.js?v=1.99.00"></script>
<script src="modules/biomes.js?v=1.99.00"></script>
<script src="modules/names-generator.js?v=1.87.14"></script>
<script src="modules/cultures-generator.js?v=1.99.00"></script>
<script src="modules/cultures-generator.js?v=1.99.05"></script>
<script src="modules/renderers/state-labels.js?v=1.96.04"></script>
<script src="modules/burgs-and-states.js?v=1.99.00"></script>
<script src="modules/burgs-and-states.js?v=1.99.05"></script>
<script src="modules/routes-generator.js?v=1.99.04"></script>
<script src="modules/religions-generator.js?v=1.99.00"></script>
<script src="modules/religions-generator.js?v=1.99.05"></script>
<script src="modules/military-generator.js?v=1.99.00"></script>
<script src="modules/markers-generator.js?v=1.99.00"></script>
<script src="modules/coa-generator.js?v=1.99.00"></script>
@ -8200,22 +8006,22 @@
<script src="libs/lineclip.min.js"></script>
<script src="libs/alea.min.js"></script>
<script src="modules/fonts.js?v=1.99.03"></script>
<script src="modules/ui/layers.js?v=1.99.00"></script>
<script src="modules/ui/layers.js?v=1.99.05"></script>
<script src="modules/ui/measurers.js?v=1.99.00"></script>
<script src="modules/ui/stylePresets.js?v=1.99.03"></script>
<script src="modules/ui/general.js?v=1.99.00"></script>
<script src="modules/ui/options.js?v=1.99.00"></script>
<script src="modules/ui/general.js?v=1.99.05"></script>
<script src="modules/ui/options.js?v=1.99.05"></script>
<script src="main.js?v=1.99.00"></script>
<script defer src="modules/relief-icons.js?v=1.99.00"></script>
<script defer src="modules/ui/style.js?v=1.99.00"></script>
<script defer src="modules/ui/editors.js?v=1.99.00"></script>
<script defer src="modules/relief-icons.js?v=1.99.05"></script>
<script defer src="modules/ui/style.js?v=1.99.05"></script>
<script defer src="modules/ui/editors.js?v=1.99.05"></script>
<script defer src="modules/ui/tools.js?v=1.99.00"></script>
<script defer src="modules/ui/world-configurator.js?v=1.99.00"></script>
<script defer src="modules/ui/heightmap-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/provinces-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/biomes-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/heightmap-editor.js?v=1.99.05"></script>
<script defer src="modules/ui/provinces-editor.js?v=1.99.05"></script>
<script defer src="modules/ui/biomes-editor.js?v=1.99.05"></script>
<script defer src="modules/ui/namesbase-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/elevation-profile.js?v=1.99.00"></script>
<script defer src="modules/ui/temperature-graph.js?v=1.99.00"></script>
@ -8229,12 +8035,12 @@
<script defer src="modules/ui/rivers-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/rivers-creator.js?v=1.99.00"></script>
<script defer src="modules/ui/relief-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/burg-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/units-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/burg-editor.js?v=1.99.05"></script>
<script defer src="modules/ui/units-editor.js?v=1.99.05"></script>
<script defer src="modules/ui/notes-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/diplomacy-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/zones-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/burgs-overview.js?v=1.99.00"></script>
<script defer src="modules/ui/burgs-overview.js?v=1.99.05"></script>
<script defer src="modules/ui/routes-overview.js?v=1.99.02"></script>
<script defer src="modules/ui/rivers-overview.js?v=1.99.00"></script>
<script defer src="modules/ui/military-overview.js?v=1.99.00"></script>
@ -8245,17 +8051,14 @@
<script defer src="modules/ui/emblems-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/markers-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/3d.js?v=1.99.00"></script>
<script defer src="modules/ui/submap.js?v=1.99.00"></script>
<script defer src="modules/ui/hotkeys.js?v=1.99.00"></script>
<script defer src="modules/ui/submap.js?v=1.99.05"></script>
<script defer src="modules/ui/hotkeys.js?v=1.99.05"></script>
<script defer src="modules/coa-renderer.js?v=1.99.00"></script>
<script defer src="libs/rgbquant.min.js"></script>
<script defer src="libs/jquery.ui.touch-punch.min.js"></script>
<script defer src="modules/io/save.js?v=1.99.00"></script>
<script defer src="modules/io/load.js?v=1.99.01"></script>
<script defer src="modules/io/load.js?v=1.99.05"></script>
<script defer src="modules/io/cloud.js?v=1.99.00"></script>
<script defer src="modules/io/export.js?v=1.99.00"></script>
<!-- Web Components -->
<script defer src="components/fill-box.js"></script>
</body>
</html>