Overview dialogs search (#1260)

* feat: add search functionality to overview components

* feat: enhance search functionality

* chore: correct typo in pull request template

* chore: update version to 1.110.0 and add peer dependencies in package-lock.json; enhance versioning.js with new features

* Fix null safety and performance in overview dialogs search (#1272)

* Initial plan

* fix: add optional chaining and optimize performance in overview dialogs

Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com>

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com>
This commit is contained in:
Azgaar 2026-01-22 13:06:13 +01:00 committed by GitHub
parent 9e0eb03618
commit f30ffd812e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 149 additions and 63 deletions

View file

@ -5369,17 +5369,29 @@
<div id="burgsBody" class="table"></div>
<div id="burgsFilters" data-tip="Apply a filter" style="padding-block: 0.1em">
<label for="burgsFilterState">State:</label>
<select id="burgsFilterState" style="width: 28%"></select>
<div
id="burgsFilters"
data-tip="Apply a filter"
style="padding-block: 0.1em; display: flex; gap: 0.5em; width: 100%"
>
<label for="burgsSearch" data-tip="Filter by name, province, state, culture, or group"
>Search: <input id="burgsSearch" type="search"
/></label>
<label for="burgsFilterCulture">Culture:</label>
<select id="burgsFilterCulture" style="width: 28%"></select>
<label for="burgsFilterState"
>State:
<select id="burgsFilterState"></select
></label>
<label for="burgsFilterCulture"
>Culture:
<select id="burgsFilterCulture"></select
></label>
</div>
<div id="burgsFooter" class="totalLine">
<div data-tip="Burgs displayed" style="margin-left: 4px">
Burgs:&nbsp;<span id="burgsFooterBurgs">0</span>
Burgs:&nbsp;<span id="burgsFooterBurgs">0 of 0</span>
</div>
<div data-tip="Average population" style="margin-left: 14px">
@ -5455,7 +5467,7 @@
<div id="routesFooter" class="totalLine">
<div data-tip="Routes number" style="margin-left: 4px">
Total routes:&nbsp;<span id="routesFooterNumber">0</span>
Routes:&nbsp;<span id="routesFooterNumber">0</span>
</div>
<div data-tip="Average length" style="margin-left: 12px">
Average length:&nbsp;<span id="routesFooterLength">0</span>
@ -5476,11 +5488,14 @@
></button>
<button id="routesLockAll" data-tip="Lock or unlock all routes" class="icon-lock"></button>
<button id="routesRemoveAll" data-tip="Remove all routes" class="icon-trash"></button>
<label for="routesSearch" data-tip="Filter by name or group" style="margin-left: 0.2em"
>Search: <input id="routesSearch" type="search"
/></label>
</div>
</div>
<div id="riversOverview" class="dialog stable" style="display: none">
<div id="riversHeader" class="header" style="grid-template-columns: 9em 4em 6em 6em 5em 9em">
<div id="riversHeader" class="header" style="grid-template-columns: 9em 4em 7em 5em 5em 9em">
<div data-tip="Click to sort by river name" class="sortable alphabetically" data-sortby="name">
River&nbsp;
</div>
@ -5533,6 +5548,9 @@
class="icon-download"
></button>
<button id="riversRemoveAll" data-tip="Remove all rivers" class="icon-trash"></button>
<label for="riversSearch" data-tip="Filter by name, type or basin" style="margin-left: 0.2em"
>Search: <input id="riversSearch" type="search"
/></label>
</div>
</div>
@ -5702,9 +5720,15 @@
<div id="markersBody" class="table"></div>
<div>
<label for="markersSearch" data-tip="Filter by type"
>Search: <input id="markersSearch" type="search"
/></label>
</div>
<div id="markersFooter" class="totalLine">
<div data-tip="Markers number" style="margin-left: 4px">
Total:&nbsp;<span id="markersFooterNumber">0</span>&nbsp;markers
<div data-tip="Markers number">
Markers: <span id="markersFooterNumber">0</span> of <span id="markersFooterTotal">0</span>
</div>
</div>
@ -8525,12 +8549,12 @@
<script defer src="modules/ui/ai-generator.js?v=1.108.8"></script>
<script defer src="modules/ui/diplomacy-editor.js?v=1.99.00"></script>
<script defer src="modules/ui/zones-editor.js?v=1.105.20"></script>
<script defer src="modules/ui/burgs-overview.js?v=1.105.15"></script>
<script defer src="modules/ui/routes-overview.js?v=1.104.3"></script>
<script defer src="modules/ui/rivers-overview.js?v=1.99.00"></script>
<script defer src="modules/ui/burgs-overview.js?v=1.110.0"></script>
<script defer src="modules/ui/routes-overview.js?v=1.110.0"></script>
<script defer src="modules/ui/rivers-overview.js?v=1.110.0"></script>
<script defer src="modules/ui/military-overview.js?v=1.108.5"></script>
<script defer src="modules/ui/regiments-overview.js?v=1.108.5"></script>
<script defer src="modules/ui/markers-overview.js?v=1.108.10"></script>
<script defer src="modules/ui/markers-overview.js?v=1.110.0"></script>
<script defer src="modules/ui/regiment-editor.js?v=1.108.5"></script>
<script defer src="modules/ui/battle-screen.js?v=1.108.5"></script>
<script defer src="modules/ui/emblems-editor.js?v=1.99.00"></script>