1export const $ = (selector) => document.querySelector(selector);2export const elements = {3 volume: $("#volume-select"),4 world: $("#world-select"),5 lens: $("#lens-select"),6 lensField: $("#lens-field"),7 legend: $("#legend"),8 search: $("#pin-search"),9 searchResults: $("#dock-results"),10 dock: $("#dock"),11 dockCount: $("#dock-count"),12 dockFlag: $("#dock-flag"),13 dockFold: $("#dock-fold"),14 dockRailName: $("#dock-rail-name"),15 visibleCount: $("#visible-count"),16 viewport: $("#map"),17 globe: $("#globe"),18 globeToggle: $("#globe-toggle"),19 layers: $("#layers"),20 loading: $("#map-loading"),21 labelsHint: $("#labels-hint"),22 gridHint: $("#grid-hint"),23 soloChip: $("#solo-chip"),24 overview: $("#overview"),25 overviewShelf: $("#overview-shelf"),26 overviewDock: $("#overview-dock"),27 overviewCanvas: $("#overview-canvas"),28 overviewViewport: $("#overview-viewport"),29 gridNavigator: $("#grid-navigator"),30 gridSystem: $("#grid-system"),31 gridSystemName: $("#grid-system-name"),32 gridInput: $("#grid-input"),33 gridBack: $("#grid-back"),34 subgridToggle: $("#subgrid-toggle"),35 detail: $("#pin-detail"),36 detailTitle: $("#detail-title"),37 detailCategory: $("#detail-category"),38 detailDescription: $("#detail-description"),39 detailID: $("#detail-id"),40 detailCoordinates: $("#detail-coordinates"),41 detailCoordinatesField: $("#detail-coordinates-field"),42 detailCell: $("#detail-cell"),43 detailCellField: $("#detail-cell-field"),44 detailSource: $("#detail-source"),45 detailSourceField: $("#detail-source-field"),46 detailLinks: $("#detail-links"),47 detailDot: $("#detail-dot"),48 sidebar: $("#sidebar"),49 mobileLegend: $("#mobile-legend"),50 fatal: $("#fatal-error"),51 fatalMessage: $("#fatal-message"),52 emptyState: $("#empty-state"),53 emptyPath: $("#empty-path"),54 emptyOpen: $("#empty-open"),55 addBundles: $("#add-bundles"),56};5758export function populateSelect(select, items, labelKey, valueKey) {59 select.replaceChildren();60 items.forEach((item, index) => {61 const option = document.createElement("option");62 option.value = valueKey ? String(item[valueKey]) : (item.slug || String(index));63 option.textContent = item[labelKey];64 select.append(option);65 });66}