1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-22 01:47:08 +02:00
immich/mobile/openapi/lib/model/map_theme.dart
Daniel Dietzler a147dee4b6
feat: Maplibre (#4294)
* maplibre on web, custom styles from server

Actually use new vector tile server, custom style.json

support multiple style files, light/dark mode

cleanup, use new map everywhere

send file directly instead of loading first

better light/dark mode switching

remove leaflet

fix mapstyles dto, first draft of map settings

delete and add styles

fix delete default styles

fix tests

only allow one light and one dark style url

revert config core changes

fix server config store

fix tests

move axios fetches to repo

fix package-lock

fix tests

* open api

* add assets to docker container

* web: use mapSettings color for style

* style: add unique ids to map styles

* mobile: use style json for vector / raster

* do not use svelte-material-icons

* add click events to markers, simplify asset detail map

* improve map performance by using asset thumbnails for markers instead of original file

* Remove custom attribution

(by request)

* mobile: update map attribution

* style: map dark mode

* style: map light mode

* zoom level for state

* styling

* overflow gradient

* Limit maxZoom to 14

* mobile: listen for mapStyle changes in MapThumbnail

* mobile: update concurrency

---------

Co-authored-by: shalong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-11-09 10:10:56 -06:00

86 lines
2.4 KiB
Dart
Generated

//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.12
// ignore_for_file: unused_element, unused_import
// ignore_for_file: always_put_required_named_parameters_first
// ignore_for_file: constant_identifier_names
// ignore_for_file: lines_longer_than_80_chars
part of openapi.api;
class MapTheme {
/// Instantiate a new enum with the provided [value].
const MapTheme._(this.value);
/// The underlying value of this enum member.
final String value;
@override
String toString() => value;
String toJson() => value;
static const light = MapTheme._(r'light');
static const dark = MapTheme._(r'dark');
/// List of all possible values in this [enum][MapTheme].
static const values = <MapTheme>[
light,
dark,
];
static MapTheme? fromJson(dynamic value) => MapThemeTypeTransformer().decode(value);
static List<MapTheme>? listFromJson(dynamic json, {bool growable = false,}) {
final result = <MapTheme>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = MapTheme.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
}
/// Transformation class that can [encode] an instance of [MapTheme] to String,
/// and [decode] dynamic data back to [MapTheme].
class MapThemeTypeTransformer {
factory MapThemeTypeTransformer() => _instance ??= const MapThemeTypeTransformer._();
const MapThemeTypeTransformer._();
String encode(MapTheme data) => data.value;
/// Decodes a [dynamic value][data] to a MapTheme.
///
/// If [allowNull] is true and the [dynamic value][data] cannot be decoded successfully,
/// then null is returned. However, if [allowNull] is false and the [dynamic value][data]
/// cannot be decoded successfully, then an [UnimplementedError] is thrown.
///
/// The [allowNull] is very handy when an API changes and a new enum value is added or removed,
/// and users are still using an old app with the old code.
MapTheme? decode(dynamic data, {bool allowNull = true}) {
if (data != null) {
switch (data) {
case r'light': return MapTheme.light;
case r'dark': return MapTheme.dark;
default:
if (!allowNull) {
throw ArgumentError('Unknown enum value to decode: $data');
}
}
}
return null;
}
/// Singleton [MapThemeTypeTransformer] instance.
static MapThemeTypeTransformer? _instance;
}