mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:17:11 -05:00 
			
		
		
		
	fix(web): handle RTL languages in the map component (#12308)
This commit is contained in:
		
							parent
							
								
									d685bc1f34
								
							
						
					
					
						commit
						1783dfd393
					
				
							
								
								
									
										115
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										115
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							@ -11,6 +11,7 @@
 | 
				
			|||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@formatjs/icu-messageformat-parser": "^2.7.8",
 | 
					        "@formatjs/icu-messageformat-parser": "^2.7.8",
 | 
				
			||||||
        "@immich/sdk": "file:../open-api/typescript-sdk",
 | 
					        "@immich/sdk": "file:../open-api/typescript-sdk",
 | 
				
			||||||
 | 
					        "@mapbox/mapbox-gl-rtl-text": "^0.2.3",
 | 
				
			||||||
        "@mdi/js": "^7.4.47",
 | 
					        "@mdi/js": "^7.4.47",
 | 
				
			||||||
        "@photo-sphere-viewer/core": "^5.7.1",
 | 
					        "@photo-sphere-viewer/core": "^5.7.1",
 | 
				
			||||||
        "@photo-sphere-viewer/equirectangular-video-adapter": "^5.7.2",
 | 
					        "@photo-sphere-viewer/equirectangular-video-adapter": "^5.7.2",
 | 
				
			||||||
@ -27,7 +28,7 @@
 | 
				
			|||||||
        "svelte-gestures": "^5.0.4",
 | 
					        "svelte-gestures": "^5.0.4",
 | 
				
			||||||
        "svelte-i18n": "^4.0.0",
 | 
					        "svelte-i18n": "^4.0.0",
 | 
				
			||||||
        "svelte-local-storage-store": "^0.6.4",
 | 
					        "svelte-local-storage-store": "^0.6.4",
 | 
				
			||||||
        "svelte-maplibre": "^0.9.0",
 | 
					        "svelte-maplibre": "^0.9.13",
 | 
				
			||||||
        "thumbhash": "^0.1.1"
 | 
					        "thumbhash": "^0.1.1"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "devDependencies": {
 | 
					      "devDependencies": {
 | 
				
			||||||
@ -1446,6 +1447,13 @@
 | 
				
			|||||||
        "geojson-rewind": "geojson-rewind"
 | 
					        "geojson-rewind": "geojson-rewind"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@mapbox/geojson-types": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==",
 | 
				
			||||||
 | 
					      "license": "ISC",
 | 
				
			||||||
 | 
					      "peer": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@mapbox/jsonlint-lines-primitives": {
 | 
					    "node_modules/@mapbox/jsonlint-lines-primitives": {
 | 
				
			||||||
      "version": "2.0.2",
 | 
					      "version": "2.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
 | 
				
			||||||
@ -1454,6 +1462,25 @@
 | 
				
			|||||||
        "node": ">= 0.6"
 | 
					        "node": ">= 0.6"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@mapbox/mapbox-gl-rtl-text": {
 | 
				
			||||||
 | 
					      "version": "0.2.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-rtl-text/-/mapbox-gl-rtl-text-0.2.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-RaCYfnxULUUUxNwcUimV9C/o2295ktTyLEUzD/+VWkqXqvaVfFcZ5slytGzb2Sd/Jj4MlbxD0DCZbfa6CzcmMw==",
 | 
				
			||||||
 | 
					      "license": "BSD-2-Clause",
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "mapbox-gl": ">=0.32.1 <2.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@mapbox/mapbox-gl-supported": {
 | 
				
			||||||
 | 
					      "version": "1.5.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==",
 | 
				
			||||||
 | 
					      "license": "BSD-3-Clause",
 | 
				
			||||||
 | 
					      "peer": true,
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "mapbox-gl": ">=0.32.1 <2.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@mapbox/point-geometry": {
 | 
					    "node_modules/@mapbox/point-geometry": {
 | 
				
			||||||
      "version": "0.1.0",
 | 
					      "version": "0.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
 | 
				
			||||||
@ -3307,6 +3334,13 @@
 | 
				
			|||||||
      "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
 | 
					      "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/csscolorparser": {
 | 
				
			||||||
 | 
					      "version": "1.0.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "peer": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/cssesc": {
 | 
					    "node_modules/cssesc": {
 | 
				
			||||||
      "version": "3.0.0",
 | 
					      "version": "3.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
 | 
				
			||||||
@ -4563,6 +4597,13 @@
 | 
				
			|||||||
      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
 | 
					      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/grid-index": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==",
 | 
				
			||||||
 | 
					      "license": "ISC",
 | 
				
			||||||
 | 
					      "peer": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/handlebars": {
 | 
					    "node_modules/handlebars": {
 | 
				
			||||||
      "version": "4.7.8",
 | 
					      "version": "4.7.8",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
 | 
				
			||||||
@ -5388,6 +5429,78 @@
 | 
				
			|||||||
        "node": ">=10"
 | 
					        "node": ">=10"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/mapbox-gl": {
 | 
				
			||||||
 | 
					      "version": "1.13.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==",
 | 
				
			||||||
 | 
					      "license": "SEE LICENSE IN LICENSE.txt",
 | 
				
			||||||
 | 
					      "peer": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@mapbox/geojson-rewind": "^0.5.2",
 | 
				
			||||||
 | 
					        "@mapbox/geojson-types": "^1.0.2",
 | 
				
			||||||
 | 
					        "@mapbox/jsonlint-lines-primitives": "^2.0.2",
 | 
				
			||||||
 | 
					        "@mapbox/mapbox-gl-supported": "^1.5.0",
 | 
				
			||||||
 | 
					        "@mapbox/point-geometry": "^0.1.0",
 | 
				
			||||||
 | 
					        "@mapbox/tiny-sdf": "^1.1.1",
 | 
				
			||||||
 | 
					        "@mapbox/unitbezier": "^0.0.0",
 | 
				
			||||||
 | 
					        "@mapbox/vector-tile": "^1.3.1",
 | 
				
			||||||
 | 
					        "@mapbox/whoots-js": "^3.1.0",
 | 
				
			||||||
 | 
					        "csscolorparser": "~1.0.3",
 | 
				
			||||||
 | 
					        "earcut": "^2.2.2",
 | 
				
			||||||
 | 
					        "geojson-vt": "^3.2.1",
 | 
				
			||||||
 | 
					        "gl-matrix": "^3.2.1",
 | 
				
			||||||
 | 
					        "grid-index": "^1.1.0",
 | 
				
			||||||
 | 
					        "murmurhash-js": "^1.0.0",
 | 
				
			||||||
 | 
					        "pbf": "^3.2.1",
 | 
				
			||||||
 | 
					        "potpack": "^1.0.1",
 | 
				
			||||||
 | 
					        "quickselect": "^2.0.0",
 | 
				
			||||||
 | 
					        "rw": "^1.3.3",
 | 
				
			||||||
 | 
					        "supercluster": "^7.1.0",
 | 
				
			||||||
 | 
					        "tinyqueue": "^2.0.3",
 | 
				
			||||||
 | 
					        "vt-pbf": "^3.1.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=6.4.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/mapbox-gl/node_modules/@mapbox/tiny-sdf": {
 | 
				
			||||||
 | 
					      "version": "1.2.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==",
 | 
				
			||||||
 | 
					      "license": "BSD-2-Clause",
 | 
				
			||||||
 | 
					      "peer": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/mapbox-gl/node_modules/@mapbox/unitbezier": {
 | 
				
			||||||
 | 
					      "version": "0.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==",
 | 
				
			||||||
 | 
					      "license": "BSD-2-Clause",
 | 
				
			||||||
 | 
					      "peer": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/mapbox-gl/node_modules/kdbush": {
 | 
				
			||||||
 | 
					      "version": "3.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==",
 | 
				
			||||||
 | 
					      "license": "ISC",
 | 
				
			||||||
 | 
					      "peer": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/mapbox-gl/node_modules/potpack": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==",
 | 
				
			||||||
 | 
					      "license": "ISC",
 | 
				
			||||||
 | 
					      "peer": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/mapbox-gl/node_modules/supercluster": {
 | 
				
			||||||
 | 
					      "version": "7.1.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==",
 | 
				
			||||||
 | 
					      "license": "ISC",
 | 
				
			||||||
 | 
					      "peer": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "kdbush": "^3.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/maplibre-gl": {
 | 
					    "node_modules/maplibre-gl": {
 | 
				
			||||||
      "version": "4.0.1",
 | 
					      "version": "4.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.0.1.tgz",
 | 
				
			||||||
 | 
				
			|||||||
@ -67,6 +67,7 @@
 | 
				
			|||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@formatjs/icu-messageformat-parser": "^2.7.8",
 | 
					    "@formatjs/icu-messageformat-parser": "^2.7.8",
 | 
				
			||||||
    "@immich/sdk": "file:../open-api/typescript-sdk",
 | 
					    "@immich/sdk": "file:../open-api/typescript-sdk",
 | 
				
			||||||
 | 
					    "@mapbox/mapbox-gl-rtl-text": "^0.2.3",
 | 
				
			||||||
    "@mdi/js": "^7.4.47",
 | 
					    "@mdi/js": "^7.4.47",
 | 
				
			||||||
    "@photo-sphere-viewer/core": "^5.7.1",
 | 
					    "@photo-sphere-viewer/core": "^5.7.1",
 | 
				
			||||||
    "@photo-sphere-viewer/equirectangular-video-adapter": "^5.7.2",
 | 
					    "@photo-sphere-viewer/equirectangular-video-adapter": "^5.7.2",
 | 
				
			||||||
@ -83,7 +84,7 @@
 | 
				
			|||||||
    "svelte-gestures": "^5.0.4",
 | 
					    "svelte-gestures": "^5.0.4",
 | 
				
			||||||
    "svelte-i18n": "^4.0.0",
 | 
					    "svelte-i18n": "^4.0.0",
 | 
				
			||||||
    "svelte-local-storage-store": "^0.6.4",
 | 
					    "svelte-local-storage-store": "^0.6.4",
 | 
				
			||||||
    "svelte-maplibre": "^0.9.0",
 | 
					    "svelte-maplibre": "^0.9.13",
 | 
				
			||||||
    "thumbhash": "^0.1.1"
 | 
					    "thumbhash": "^0.1.1"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "volta": {
 | 
					  "volta": {
 | 
				
			||||||
 | 
				
			|||||||
@ -7,6 +7,7 @@
 | 
				
			|||||||
  import { mdiCog, mdiMap, mdiMapMarker } from '@mdi/js';
 | 
					  import { mdiCog, mdiMap, mdiMapMarker } from '@mdi/js';
 | 
				
			||||||
  import type { Feature, GeoJsonProperties, Geometry, Point } from 'geojson';
 | 
					  import type { Feature, GeoJsonProperties, Geometry, Point } from 'geojson';
 | 
				
			||||||
  import type { GeoJSONSource, LngLatLike, StyleSpecification } from 'maplibre-gl';
 | 
					  import type { GeoJSONSource, LngLatLike, StyleSpecification } from 'maplibre-gl';
 | 
				
			||||||
 | 
					  import mapboxRtlUrl from '@mapbox/mapbox-gl-rtl-text/mapbox-gl-rtl-text.min.js?url';
 | 
				
			||||||
  import maplibregl from 'maplibre-gl';
 | 
					  import maplibregl from 'maplibre-gl';
 | 
				
			||||||
  import { createEventDispatcher } from 'svelte';
 | 
					  import { createEventDispatcher } from 'svelte';
 | 
				
			||||||
  import {
 | 
					  import {
 | 
				
			||||||
@ -51,6 +52,8 @@
 | 
				
			|||||||
  let map: maplibregl.Map;
 | 
					  let map: maplibregl.Map;
 | 
				
			||||||
  let marker: maplibregl.Marker | null = null;
 | 
					  let marker: maplibregl.Marker | null = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void maplibregl.setRTLTextPlugin(mapboxRtlUrl, true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  $: style = (() =>
 | 
					  $: style = (() =>
 | 
				
			||||||
    getMapStyle({
 | 
					    getMapStyle({
 | 
				
			||||||
      theme: ($mapSettings.allowDarkMode ? $colorTheme.value : Theme.LIGHT) as unknown as MapTheme,
 | 
					      theme: ($mapSettings.allowDarkMode ? $colorTheme.value : Theme.LIGHT) as unknown as MapTheme,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user