@panoramax/web-viewer 3.2.1 → 3.2.2-develop-69587b96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panoramax/web-viewer",
3
- "version": "3.2.1",
3
+ "version": "3.2.2-develop-69587b96",
4
4
  "description": "Panoramax web viewer for geolocated pictures",
5
5
  "main": "build/index.js",
6
6
  "author": "Panoramax team",
@@ -252,4 +252,4 @@
252
252
  ]
253
253
  ]
254
254
  }
255
- }
255
+ }
package/src/Editor.js CHANGED
@@ -253,6 +253,7 @@ export default class Editor extends CoreView {
253
253
 
254
254
  const imgBgStreets = document.createElement("img");
255
255
  imgBgStreets.src = BackgroundStreets;
256
+ imgBgStreets.alt = "";
256
257
 
257
258
  labelBgStreets.appendChild(imgBgStreets);
258
259
  labelBgStreets.appendChild(document.createTextNode(this._t.gvs.map_background_streets));
@@ -272,6 +273,7 @@ export default class Editor extends CoreView {
272
273
 
273
274
  const imgBgAerial = document.createElement("img");
274
275
  imgBgAerial.src = BackgroundAerial;
276
+ imgBgAerial.alt = "";
275
277
 
276
278
  labelBgAerial.appendChild(imgBgAerial);
277
279
  labelBgAerial.appendChild(document.createTextNode(this._t.gvs.map_background_aerial));
package/src/Viewer.js CHANGED
@@ -536,7 +536,6 @@ class Viewer extends CoreView {
536
536
  setPopup(visible, content = null) {
537
537
  if(!visible) {
538
538
  this.popupContainer.classList.add("gvs-hidden");
539
- this.setFocus("pic");
540
539
  this.psv.startKeyboardControl();
541
540
  }
542
541
  else if(content) {
@@ -18,6 +18,7 @@ export default class Loader {
18
18
  // Logo
19
19
  const logo = document.createElement("img");
20
20
  logo.src = LoaderImg;
21
+ logo.alt = "";
21
22
  logo.title = this._parent._t.map.loading;
22
23
  logo.classList.add("gvs-loader-img");
23
24
  this.container.appendChild(logo);
@@ -57,6 +57,8 @@ export default class Map extends maplibregl.Map {
57
57
  attributionControl: false,
58
58
  dragRotate: false,
59
59
  pitchWithRotate: false,
60
+ touchZoomRotate: true,
61
+ touchPitch: false,
60
62
  preserveDrawingBuffer: !parent.isWidthSmall(),
61
63
  transformRequest: parent._api._getMapRequestTransform(),
62
64
  locale: parent._t.maplibre,
@@ -68,6 +70,11 @@ export default class Map extends maplibregl.Map {
68
70
  this._options = options;
69
71
  this.getContainer().classList.add("gvs-map");
70
72
 
73
+ // Disable touch rotate
74
+ if(options.touchZoomRotate === undefined) {
75
+ this?.touchZoomRotate?.disableRotation();
76
+ }
77
+
71
78
  // Handle raster source
72
79
  if(this._options.raster) {
73
80
  this._options.background = this._options.background || "streets";
@@ -786,6 +793,7 @@ export default class Map extends maplibregl.Map {
786
793
  _getPictureMarker(selected = true) {
787
794
  const img = document.createElement("img");
788
795
  img.src = selected ? MarkerSelectedSVG : MarkerBaseSVG;
796
+ img.alt = "";
789
797
  return new maplibregl.Marker({
790
798
  element: img
791
799
  });
@@ -678,7 +678,7 @@ export default class Photo extends PSViewer {
678
678
  else {
679
679
  console.error(e);
680
680
  this.overlay.show({
681
- image: `<img style="width: 200px" src="${LogoDead}" />`,
681
+ image: `<img style="width: 200px" src="${LogoDead}" alt="" />`,
682
682
  title: this._parent._t.gvs.error,
683
683
  text: label + "<br />" + this._parent._t.gvs.error_click,
684
684
  dissmisable,
@@ -88,7 +88,7 @@
88
88
  "filter_user": "Bruger",
89
89
  "filter_user_mypics": "Mine billeder",
90
90
  "filter_picture": "Billedtype",
91
- "filter_zoom_in": "Zoom ind for at gøre filtre synlige",
91
+ "filter_zoom_in": "Zoom ind for at se dette filter",
92
92
  "picture_flat": "Klassisk",
93
93
  "picture_360": "360°",
94
94
  "filter_qualityscore_help": "Klik for at aktivere eller deaktivere",
@@ -98,7 +98,7 @@
98
98
  "map_theme": "Korttema",
99
99
  "error_pic": "Det ønskede billede blev ikke fundet",
100
100
  "error_api_compatibility": "Billedserveren er ikke kompatibel med denne version af fremviseren",
101
- "filter_qualityscore": "Kvalitetsvurdering",
101
+ "filter_qualityscore": "Kvalitetsscore",
102
102
  "error_josm": "JOSM svarer ikke, kører den, og er fjernstyring aktiveret?",
103
103
  "metadata_general_seqid_link": "Gå til JSON-beskrivelse af sekvensen",
104
104
  "map_theme_default": "Klassisk",
@@ -107,7 +107,7 @@
107
107
  "map_theme_age_3": "< 1 år",
108
108
  "map_theme_age_4": "< 1 måned",
109
109
  "map_theme_type": "Kameratype",
110
- "map_theme_score": "Kvalitetsvurdering",
110
+ "map_theme_score": "Kvalitetsscore",
111
111
  "contrast": "Aktivér højere billedkontrast",
112
112
  "metadata_general_picid": "Billed-identifikator",
113
113
  "metadata_general_seqid": "Sekvens-identifikator",
@@ -125,18 +125,58 @@
125
125
  "metadata_location_latitude": "Breddegrad",
126
126
  "metadata_location_orientation": "Optageretning",
127
127
  "metadata_location_precision": "Præcision i positionering",
128
- "metadata_quality": "Kvalitetsvurdering",
129
- "metadata_quality_score": "Global vurdering",
130
- "metadata_quality_gps_score": "Positioneringsvurdering",
131
- "metadata_quality_help": "Få mere at vide om kvalitetsvurdering",
128
+ "metadata_quality": "Kvalitetsscore",
129
+ "metadata_quality_score": "Global score",
130
+ "metadata_quality_gps_score": "Positioneringsscore",
131
+ "metadata_quality_help": "Få mere at vide om kvalitetsscore",
132
132
  "map_theme_age": "Optagelsesdato",
133
133
  "metadata_location": "Placering",
134
134
  "metadata": "Metadata for billede",
135
- "metadata_location_longitude": "Længdegrad"
135
+ "metadata_location_longitude": "Længdegrad",
136
+ "metadata_quality_resolution_score": "Opløsningsscore",
137
+ "metadata_quality_missing": "ingen værdi indstillet i billedet",
138
+ "metadata_exif": "EXIF / XMP",
139
+ "metadata_exif_name": "Tag",
140
+ "metadata_exif_value": "Værdi",
141
+ "report": "Indberet billede",
142
+ "report_auth": "Denne indberetning vil blive sendt via din konto \"{a}\"",
143
+ "report_nature_label": "Problemets karakter",
144
+ "report_nature": {
145
+ "": "Vælg problemets art…",
146
+ "blur_missing": "En persons ansigt eller bils nummerplade er synlig",
147
+ "blur_excess": "Et objekt, der ikke har brug for sløring, sløres",
148
+ "inappropriate": "Billedet er upassende (ikke relevant, nøgenhed…)",
149
+ "privacy": "En privat sti eller ejendom er synlig",
150
+ "picture_low_quality": "Billedet er af meget dårlig kvalitet",
151
+ "mislocated": "Billedet er dårligt placeret på kortet",
152
+ "copyright": "Billedet krænker ophavsretten",
153
+ "other": "Enhver anden form for problem"
154
+ },
155
+ "report_whole_sequence": "Det gælder hele sekvensen",
156
+ "report_details": "Yderligere detaljer",
157
+ "report_details_placeholder": "Hvis du vil, kan du tilføje detaljer om problemet, og hvad det drejer sig om",
158
+ "report_email": "Din e-mail",
159
+ "report_email_placeholder": "Valgfri",
160
+ "report_submit": "Indsend",
161
+ "report_wait": "Sender indberetning …",
162
+ "report_success": "Indberetningen er blevet sendt. Den vil blive gennemgået så hurtigt som muligt.",
163
+ "report_failure": "Der opstod en fejl under oprettelse af indberetning: {e}. Prøv venligst igen senere.",
164
+ "qualityscore_title": "Om kvalitetsscoren",
165
+ "qualityscore_doc_2": "Bedømmelsen vises for brugerne som en A/B/C/D/E-score (A er den bedste, E den dårligste) og vises grafisk via denne skala:",
166
+ "qualityscore_doc_3": "Den beregnes ud fra GPS-præcision og billedopløsning. Et professionelt system vil have en A-rating, et 360° actionkamera vil have en B-rating, og en smartphone vil have en C/D/E-rating.",
167
+ "qualityscore_doc_link": "Yderligere oplysninger om beregningen af kvalitetsscore findes i vores dokumentation.",
168
+ "qualityscore_doc_1": "Panoramax tilbyder en kvalitetsscore for hvert billede. Det giver mulighed for nem kortfiltrering og overskuelig visning af tilgængelige billeder af høj kvalitet.",
169
+ "minimize_short": "Skjul"
136
170
  },
137
171
  "psv": {
138
172
  "loadError": "Panoramaet kan ikke indlæses",
139
173
  "twoFingers": "Brug to fingre til at navigere",
140
174
  "ctrlZoom": "Brug ctrl + scroll til at zoome ind på billedet"
175
+ },
176
+ "map": {
177
+ "loading": "Indlæser…",
178
+ "thumbnail": "Miniature af billedet, der holdes",
179
+ "not_public": "Ikke offentligt synlig",
180
+ "slow_loading": "Kortet indlæses langsomt og kan virke defekt"
141
181
  }
142
182
  }
@@ -118,9 +118,9 @@
118
118
  "map_theme_age_4": "< 1 Monat",
119
119
  "error_subtitle": "Bitte versuchen sie es später erneut, oder schauen sie in die Web-Browser-Konsole für mehr Details.",
120
120
  "moveLeft": "Nach links",
121
- "share_rss_title": "RSS Feed neuer Sequenzen auf der aktuell sichtbaren Karte",
122
- "error_webgl": "WebGL wird von diesem Browser nicht unterstützt",
123
- "metadata_general_license_link": "Zur vollen Lizenzbeschreibung gehen",
121
+ "share_rss_title": "RSS Feed neuer Sequenzen auf dem aktuell sichtbaren Kartenbereich",
122
+ "error_webgl": "WebGL wird von ihrem Browser nicht unterstützt",
123
+ "metadata_general_license_link": "Volle Lizenzbeschreibung ansehen",
124
124
  "share_embed_docs": "Mehr über die Einbettungs-Konfiguration lesen",
125
125
  "report_nature": {
126
126
  "": "Art des Problems auswählen…",
@@ -160,7 +160,12 @@
160
160
  "metadata_quality_help": "Erfahre mehr über den Qualitätswert",
161
161
  "metadata_quality_resolution_score": "Auflösungswertung",
162
162
  "metadata_quality_gps_score": "Positionswertung",
163
- "metadata_quality_score": "Gesamtwertung"
163
+ "metadata_quality_score": "Gesamtwertung",
164
+ "qualityscore_title": "Über den Qualitätsfaktor",
165
+ "qualityscore_doc_link": "Weitere Informationen zur Berechnung des Qualitätsfaktors findest du in unserer Dokumentation.",
166
+ "qualityscore_doc_1": "Panoramax bietet einen Qualitätsfaktor für jedes Bild. Es ermöglicht eine einfache Kartenfilterung und eine umfassende Anzeige der Verfügbarkeit hochwertiger Bilder.",
167
+ "qualityscore_doc_2": "Die Note wird den Benutzern als A/B/C/D/E-Bewertung angezeigt (A ist die beste, E die schlechteste) und anhand dieser Skala grafisch dargestellt:",
168
+ "qualityscore_doc_3": "Die Berechnung erfolgt auf der Grundlage der GPS-Genauigkeit und der Bildauflösung. Ein professionelles System wird mit A bewertet, eine 360-Grad-Action-Kamera mit B und ein Smartphone mit C/D/E."
164
169
  },
165
170
  "psv": {
166
171
  "twoFingers": "Nutzen sie zwei Finger zum navigieren",
@@ -22,6 +22,7 @@
22
22
  "show_psv": "Show the picture viewer",
23
23
  "show_map": "Show the map",
24
24
  "minimize": "Hide this widget, you can show it again using button in bottom left corner",
25
+ "minimize_short": "Hide",
25
26
  "options": "Options",
26
27
  "filters": "Filters",
27
28
  "layers": "Layers",
@@ -98,11 +99,16 @@
98
99
  "filter_user": "User",
99
100
  "filter_user_mypics": "My pictures",
100
101
  "filter_picture": "Picture type",
101
- "filter_zoom_in": "Zoom-in for filters to be visible",
102
+ "filter_zoom_in": "Zoom-in to see this filter",
102
103
  "picture_flat": "Classic",
103
104
  "picture_360": "360°",
104
105
  "filter_qualityscore": "Quality score",
105
106
  "filter_qualityscore_help": "Click to enable or disable",
107
+ "qualityscore_title": "About the quality score",
108
+ "qualityscore_doc_1": "Panoramax offers a Quality Score for each picture. It allows easy map filtering and comprehensive display of high-quality pictures availability.",
109
+ "qualityscore_doc_2": "The grade is shown to users as a A/B/C/D/E score (A is the best, E the worst), and shown graphically through this scale:",
110
+ "qualityscore_doc_3": "It is computed based on GPS precision and picture resolution. A professional system will have an A-rating, a 360° action camera will have a B-rating, and a smartphone will be C/D/E-rated.",
111
+ "qualityscore_doc_link": "More details about the Quality Score computation is available in our documentation.",
106
112
  "map_background": "Map background",
107
113
  "map_background_aerial": "Aerial",
108
114
  "map_background_streets": "Streets",
@@ -22,6 +22,7 @@
22
22
  "show_psv": "Afficher la visionneuse de photos",
23
23
  "show_map": "Afficher la carte",
24
24
  "minimize": "Masquer ce widget, vous pouvez l'afficher de nouveau grâce au bouton dans le coin en bas à gauche",
25
+ "minimize_short": "Masquer",
25
26
  "options": "Options",
26
27
  "filters": "Filtres",
27
28
  "layers": "Calques",
@@ -102,7 +103,12 @@
102
103
  "picture_360": "360°",
103
104
  "filter_qualityscore": "Score de qualité",
104
105
  "filter_qualityscore_help": "Cliquez pour activer ou désactiver",
105
- "filter_zoom_in": "Zoomez plus pour voir les filtres",
106
+ "qualityscore_title": "À propos du score qualité",
107
+ "qualityscore_doc_1": "Panoramax propose un Score de Qualité pour chacune de ses photos. Cela facilite le filtre et la recherche de photos de bonne qualité sur la carte.",
108
+ "qualityscore_doc_2": "Le score est affiché sous la forme d'une lettre A/B/C/D/E (A étant le meilleur, E le moins bon), et visualisable grâce à cette échelle :",
109
+ "qualityscore_doc_3": "Il est calculé en fonction de la précision du GPS ainsi que la résolution de la photo. Un matériel professionnel aura une note de A, une caméra sportive 360° une note de B, et un smartphone une note de C à E.",
110
+ "qualityscore_doc_link": "Plus d'infos sur le calcul du Score Qualité dans notre documentation.",
111
+ "filter_zoom_in": "Zoomez plus pour voir ce filtre",
106
112
  "map_background": "Fond de carte",
107
113
  "map_background_aerial": "Satellite",
108
114
  "map_background_streets": "Plan",
@@ -50,16 +50,16 @@
50
50
  "☕ Iniezione di caffeina",
51
51
  "😀 Sorridete, siete stati mappati!",
52
52
  "🐈 Condivisione delle foto di gatti",
53
- "😴 Riduzione della procastinazione",
53
+ "😴 Riduzione della procrastinazione",
54
54
  "🫖 Preparazione del tè",
55
55
  "🐧 Apertura del codice sorgente",
56
56
  "🚇 Indicizzazione delle stazioni della metro",
57
57
  "🧹 Pulizia dei metadata",
58
58
  "🚒 Invio delle foto delle stazioni dei pompieri",
59
59
  "🚲 Aggiornamento delle strade verdi",
60
- null,
60
+ "🚉 Passeggiata sulle banchine della stazione",
61
61
  "🛰️ Ricerca dei satelliti",
62
- null,
62
+ "👥 Scrittura delle persone",
63
63
  "🐟 Ricerca dei negozi di patatine fritte",
64
64
  "🧑‍💻 Debug dell’interfaccia",
65
65
  "📈 Incremento delle statistiche"
@@ -68,7 +68,7 @@
68
68
  "error_pic": "La foto richiesta non è stata trovata",
69
69
  "error_nopic": "Nessuna foto disponibile alla posizione richiesta",
70
70
  "error_api": "Il server delle foto non è disponibile",
71
- "error_webgl": "Questo browser non supporta WebGL",
71
+ "error_webgl": "Il tuo browser non supporta WebGL",
72
72
  "error_josm": "JOSM non risponde, è in esecuzione con il controllo remoto abilitato?",
73
73
  "error_api_compatibility": "Il server delle foto non è compatibile con questa versione del visualizzatore",
74
74
  "filter_date": "Data",
@@ -139,10 +139,10 @@
139
139
  "map_theme_age_1": "> 2 anni",
140
140
  "map_theme_type": "Tipo di fotocamera",
141
141
  "minimize": "Nascondi il widget, puoi mostrarlo di nuovo usando il pulsante nell’angolo in basso a sinistra",
142
- "metadata_general_license_link": "Vai alla pagina della descrizione completa della licenza",
142
+ "metadata_general_license_link": "Vedi la descrizione completa della licenza",
143
143
  "share_rss": "Feed RSS",
144
144
  "show_psv": "Mostra il visualizzatore delle foto",
145
- "share_rss_title": "Feed RSS delle nuove sequenze nell’area visibile della mappa",
145
+ "share_rss_title": "Feed RSS delle nuove sequenze nell’attuale area visibile della mappa",
146
146
  "sequence_prev": "Foto precedente della sequenza",
147
147
  "sequence_more": "Altre opzioni di riproduzione",
148
148
  "josm_live": "Abilita la sincronizzazione automatica di JOSM al caricamento delle foto",
@@ -14,7 +14,8 @@
14
14
  "🔍 EXIF metadata analyseren",
15
15
  "🏘️ 3D rendering",
16
16
  "📷 360° afbeelden initialiseren",
17
- "🟠 Kleur balancering"
17
+ "🟠 Kleur balancering",
18
+ "💯 Bereken kwaliteits-score ©"
18
19
  ],
19
20
  "share_embed_docs": "Lees meer over embedded instellingen",
20
21
  "sequence_pause": "Pauzeer sequentie",
@@ -54,12 +55,24 @@
54
55
  "expand_info": "De widget op de volledige pagina weergeven",
55
56
  "minimize": "Verberg deze widget, je kan hem terug tonen met de knop linksonder",
56
57
  "loading_labels_fun": [
57
- "🦌 Detectie van verkeersbord overlopende herten",
58
+ "🦌 Detectie verkeersborden overstekende herten",
58
59
  "🚘 Panoramax auto zoeken ©",
59
60
  "☕ Cafeïne-injectie",
60
- null,
61
- "🐈 Foto's delen van katten"
62
- ]
61
+ "😀 Gelukt, je kaart is gekaart!",
62
+ "🐈 Foto's delen van katten",
63
+ "😴 Uitstelgedrag verminderen",
64
+ "🫖 Thee zetten",
65
+ "🐧 Broncode openen",
66
+ "🚇 Indexering metrostations",
67
+ "🧹 Metadata opschonen",
68
+ "🚒 Foto's van brandweerkazernes versturen",
69
+ "🚲 Fiets- en wandelpaden bijwerken",
70
+ "🚉 Perron doorgang",
71
+ "🛰️ Satellieten zoeken",
72
+ "👥 Personas opslaan"
73
+ ],
74
+ "share_rss_title": "RSS-feed van nieuwe reeksen in het nu zichtbare kaartgebied",
75
+ "josm_live": "Schakel JOSM automatische synchronisatie in bij het laden van afbeeldingen"
63
76
  },
64
77
  "psv": {
65
78
  "twoFingers": "Gebruik twee vingers om te navigeren",
@@ -152,7 +152,7 @@
152
152
  "map_theme_score": "品質分數",
153
153
  "metadata_camera_resolution": "解析度",
154
154
  "metadata_quality": "品質分數",
155
- "metadata_quality_help": "了解有關品質分數的更多資訊",
155
+ "metadata_quality_help": "深入了解品質分數",
156
156
  "metadata_quality_gps_score": "定位分數",
157
157
  "metadata_quality_resolution_score": "解析度分數",
158
158
  "metadata_quality_missing": "相片未包含資訊",
@@ -160,7 +160,12 @@
160
160
  "metadata_quality_score": "整體分數",
161
161
  "filter_user_mypics": "我的相片",
162
162
  "filter_date_1month": "1 個月",
163
- "filter_date_1year": "1 年"
163
+ "filter_date_1year": "1 年",
164
+ "qualityscore_doc_2": "分數以 A/B/C/D/E 等級的形式顯示 (A 最佳、E 最差) ,並透過這個量尺視覺化顯示:",
165
+ "qualityscore_doc_link": "關於品質分數的計算方式,請參閱我們的文件。",
166
+ "qualityscore_title": "關於品質分數",
167
+ "qualityscore_doc_1": "Panoramax 為每張相片提供品質分數,這能幫助我們輕鬆地在地圖上篩選和顯示高品質相片。",
168
+ "qualityscore_doc_3": "它根據 GPS 精確度和相片解析度計算得出,專業設備的等級為 A、360° 運動相機的等級為 B、智慧型手機的等級為 C/D/E。"
164
169
  },
165
170
  "map": {
166
171
  "loading": "正在載入…",
@@ -31,8 +31,8 @@ export const QUALITYSCORE_VALUES = [
31
31
  { color: "#f6a020", label: "E" },
32
32
  ];
33
33
 
34
- export const QUALITYSCORE_RES_FLAT_VALUES = [1, 15, 2, 38, 3, 60, 4]; // Grade, < Px/FOV value
35
- export const QUALITYSCORE_RES_360_VALUES = [2, 15, 3, 20, 4, 38, 5]; // Grade, < Px/FOV value
34
+ export const QUALITYSCORE_RES_FLAT_VALUES = [1, 10, 2, 15, 3, 30, 4]; // Grade, < Px/FOV value
35
+ export const QUALITYSCORE_RES_360_VALUES = [3, 15, 4, 30, 5]; // Grade, < Px/FOV value
36
36
  export const QUALITYSCORE_GPS_VALUES = [5, 1.01, 4, 2.01, 3, 5.01, 2, 10.01, 1]; // Grade, < Meters value
37
37
  export const QUALITYSCORE_POND_RES = 4/5;
38
38
  export const QUALITYSCORE_POND_GPS = 1/5;
@@ -117,6 +117,7 @@ function svgToPSVLink(svg, fillColor) {
117
117
  catch(e) {
118
118
  const img = document.createElement("img");
119
119
  img.src = svg;
120
+ img.alt = "";
120
121
  return img;
121
122
  }
122
123
  }
@@ -56,6 +56,12 @@ export function createExpandableButton(id, icon, label, container, classes = [])
56
56
  btn.appendChild(fa(icon));
57
57
  if(!container._viewer.isWidthSmall()) {
58
58
  btn.appendChild(document.createTextNode(label));
59
+ if(classes.includes("gvs-filter-unset-btn")) {
60
+ const resetIcon = fa(faXmark, { classes: ["gvs-filter-unset-btn"]});
61
+ resetIcon.style.display = "none";
62
+ btn.appendChild(resetIcon);
63
+ classes = classes.filter(v => v !== "gvs-filter-unset-btn");
64
+ }
59
65
  btn.appendChild(fa(faChevronDown));
60
66
  }
61
67
  else {
@@ -64,15 +70,25 @@ export function createExpandableButton(id, icon, label, container, classes = [])
64
70
  btn.classList.add("gvs-btn", "gvs-widget-bg", "gvs-btn-expandable", ...classes);
65
71
  btn.setActive = val => {
66
72
  let span = btn.querySelector(".gvs-filters-active");
73
+ const resetIcon = btn.querySelector(".gvs-filter-unset-btn");
74
+ const downIcon = btn.querySelector(".fa-chevron-down");
67
75
  if(val && !span) {
68
76
  span = document.createElement("span");
69
77
  span.classList.add("gvs-filters-active");
70
78
  const svg = btn.querySelector("svg");
71
79
  if(svg.nextSibling) { btn.insertBefore(span, svg.nextSibling); }
72
80
  else { btn.appendChild(span); }
81
+ if(resetIcon) {
82
+ resetIcon.style.display = null;
83
+ downIcon.style.display = "none";
84
+ }
73
85
  }
74
86
  else if(!val && span) {
75
87
  span.remove();
88
+ if(resetIcon) {
89
+ resetIcon.style.display = "none";
90
+ downIcon.style.display = null;
91
+ }
76
92
  }
77
93
  };
78
94
  return btn;
@@ -112,6 +128,7 @@ export function createSearchBar(
112
128
  input.type = "text";
113
129
  input.placeholder = placeholder;
114
130
  input.id = `${id}-input`;
131
+ input.setAttribute("autocomplete", "off");
115
132
  bar.appendChild(input);
116
133
  const extendInput = () => {
117
134
  bar.classList.remove("gvs-search-bar-reduced");
@@ -103,6 +103,12 @@
103
103
 
104
104
  .gvs-mini .gvs-corner .gvs-widget-bg { box-shadow: none; }
105
105
  .gvs-widget-bg a { color: var(--widget-font-btn-direct); }
106
+ .gvs-widget-bg button.gvs-btn-link {
107
+ color: var(--widget-font-btn-direct);
108
+ background: none;
109
+ border: none;
110
+ cursor: pointer;
111
+ }
106
112
 
107
113
  .gvs-hidden,
108
114
  .gvs-focus-map .gvs-only-psv,
@@ -663,6 +669,7 @@ a.gvs-btn { text-decoration: none; }
663
669
  #gvs-filter-panel {
664
670
  width: 350px;
665
671
  max-width: 350px;
672
+ padding: 0;
666
673
  }
667
674
  #gvs-filter-panel .gvs-filter-active {
668
675
  background-color: var(--widget-bg-active);
@@ -680,11 +687,32 @@ a.gvs-btn { text-decoration: none; }
680
687
  color: var(--widget-font-active);
681
688
  background: none;
682
689
  }
683
- #gvs-filter-zoomin {
690
+ .gvs-filter-block {
691
+ position: relative;
692
+ padding: 10px 15px;
693
+ border-bottom: 2px solid var(--widget-border-div);
694
+ }
695
+ .gvs-filter-block:first-child {
696
+ padding-top: 15px;
697
+ }
698
+ .gvs-filter-block:last-child {
699
+ border-bottom: none;
700
+ padding-bottom: 15px;
701
+ }
702
+ .gvs-filter-zoomin {
703
+ z-index: 10;
704
+ background-color: rgba(255,255,255,0.8);
684
705
  text-align: center;
685
706
  font-weight: bold;
686
- margin-bottom: 15px;
687
- color: var(--orange);
707
+ position: absolute;
708
+ top: 0;
709
+ right: 0;
710
+ left: 0;
711
+ bottom: 0;
712
+ display: flex;
713
+ justify-content: center;
714
+ align-items: center;
715
+ border-radius: 25px;
688
716
  }
689
717
 
690
718
  #gvs-filter-qualityscore {